MIKE HIGGINBOTTOM

A Digital Garden - frequent growth but a bit weedy in the back corner

GratuitousARPReply

Can be used for doing cache updates without any back-and-forth. Because it’s a reply, nobody answers it. The sender just wants every neighbour to refresh its entry, as quickly and quietly as possible. That fits situations like a failover, where a virtual IP moves to a new physical box, a NIC replacement, or a Mobile IP home agent intercepting traffic for a host that has moved away. @ref

Can be used for compatibility with stacks that behave differently. Older or unusual ARP implementations didn’t all follow RFC826’s rule to update the cache from any ARP packet. Some only updated on replies, others only on requests. That’s why Mobile IP (RFC5944) allows either form and why a lot of failover software sends both. The reply form covers stacks that ignore unsolicited requests. @ref

It can’t trigger conflict responses. That’s a disadvantage if you want ARPDuplicateAddressDetection, but it’s the point if you’re deliberately taking over an address. In a planned failover, the new owner doesn’t want to start a defence exchange with the old one. It just wants traffic redirected. @ref

The flip side is that this is exactly the packet ARPSpoofing and man-in-the-middle tools use, since an unsolicited reply claiming someone else’s IP is the easiest way to do ARPCachePoisoning. As a result, modern systems and switches tend to treat a GratuitousARPReply with more suspicion. Dynamic ARP Inspection, for example, validates them against DHCP snooping data. For legitimate announcements, RFC5227 steers implementers toward GratuitousARPRequest, and that’s what most current OSes send by default. @ref