--- Vishwas Raman <vishwas@eternal-systems.com> wrote:
After Machine 2 takes over Machine 2's IP,
all it needs to do is to send a ping to all the
clients of Machine 1, which is Machine 3 in this case. According to the ARP RFC, Machine 3
at that point has to flush its arp cache, and then register a new entry MIP1:MMAC2 in its arp cache. I even tested this by using the arp, ifconfig and ping commands and it works.
If I understand it right, the ARP RFC does not say that an ICMP packet should be received for the ARP cache to be updated. Even if an ARP request is received, the ARP cache should be updated with the sender's address. And you could even send an ARP reply, without getting a request, to update other hosts' cache. This is called gratuitous ARP. I am not sure if Linux ARP implementation updates the cache when it receives gratuitous ARP packet.
-Ravi.
Are you suggesting that, all I need to do is send an ARP request to the other host for it to update its arp cache. Thanks for the input. I will look up the Linux ARP implementation, if I can get away with just sending a gratuitous ARP packet to the other host too.
-Vishwas.
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/