Gratuitous ARP
Normally an ARPOP_REQUEST is sent because the
sender wants to talk to a given IP address and needs to find out the associated L2
address. But sometimes the sender generates an ARPOP_REQUEST to inform the receivers about some information, instead of asking
for information. This is called gratuitous ARP
and is commonly used in the following situations:
Change of L2 address
Duplicate address detection
Virtual IP
Each is described in the subsections that follow.
Change of L2 Address
We already saw in the section "Reasons
That Neighboring Protocols Are Needed" in Chapter 26, that a change of L2 address (which invalidates neighbour entries for other nodes on the network) cannot be
detected without the help of a protocol. Instead of waiting for the old association to
expire and forcing each node to start a new protocol transaction (and therefore suffer a
temporary black hole), it makes sense to trigger the update of the association in
advance. The node that changed the address accomplishes the update through gratuitous
ARP. See net/irda/irlan/irlan_eth.c for an example.

Figure 28-2. Example of ARP usage
Duplicate Address Detection
No two hosts on a local network should have the same L3 address, but this problem can happen, especially in big networks with a mix of static and dynamic (that is, DHCP-based) configurations. The most common reasons for duplicate addresses are the presence ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access