Hi,<br />   We are experimenting using csync2 along with DRBD to setup a failover machine and have the following setup<br />   The machines are connected to each other using different networks on each of the interfaces, we use quagga to do the dynamic routing<br />   <br />   host foo<br />   eth0: 192.168.0.1<br />   eth1: 192.168.0.5<br />   lo:1  192.168.0.9 (DRBD)<br />   lo:2 192.168.3.1 (Virtual IP to be taken over by on failover)<br />   <br />   host bar<br />   eth0: 192.168.1.1<br />   eth1: 192.168.1.5<br />   lo:1  192.168.1.9 (DRBD)<br />   <br />   the /etc/hosts file in bar is<br />   <br />   foo 192.168.0.1<br />   foo 192.168.0.5<br />   foo 192.168.0.9<br />   <br />   csync2.cfg looks like this<br />   <br />   group mygroup<br /> {<br />        host  foo bar;<br /><br />        key /etc/csync2.key_mygroup;<br /><br />        include /home/;<br /><br />        auto none;<br /> }<br />   <br />   The problem I am having is that when we down the eth0 on foo and do a csync2 (on foo), our network routing takes care of reaching bar, but bar looks at the IP and it gets 192.168.0.5 and since it is different from 192.168.0.1 the connection is refused, I have looked at the csync2 source and am thinking of the following solutions<br />   <br />   1. In daemon.c  in case A_HELLO: we can remove the check (!memcmp(hp-&gt;h_addr, &peername.sin_addr, hp-&gt;h_length)) and since its a private network we do not have security issues<br />   <br />   2. alternatively we loop through the hp-&gt;h_addr_list and verify if any of the address matches the address we get.<br />   <br />   What am I missing here, Is there an easy way of doing this without having to modify the code ?.<br />   <br />Thanks,<br />Kiran