Hello David
First of all, this is not standard ARP behavior. In other words, it’s not something that is defined as part of the protocol. This is a device/vendor-specific behavior.
There are several reasons why Cisco has chosen to implement ARP in this way, and all of them have to do with the role and functionality of the Cisco device, as an intermediary device and not an end host. The reasons include:
- Avoid ARP Broadcasts for Local Communication: Network devices need to communicate with themselves in certain situations (i.e. when implementing dynamic routing protocols, validating routing table updates, and performing self-checks with control traffic). Having a static ARP entry for its own IP address means it doesn’t need to broadcast an ARP request to resolve its own IP address to a MAC address. This reduces unnecessary ARP traffic on the network and ensures quicker local communication.
- Prevent ARP Spoofing and Security Attacks: Static ARP entries can protect against certain types of security attacks, such as ARP spoofing or ARP poisoning. By having a static ARP entry for its own IP address, the Cisco device can avoid being tricked into sending traffic to an attacker’s device.
- Maintain Stability in Critical Network Functions: Some network protocols and features, such as high availability configurations (HSRP, VRRP, GLBP) and certain routing protocols, rely on the device consistently knowing its own MAC and IP address without relying on dynamic ARP resolutions. Static ARP entries ensure that these critical functions operate without interruption.
You wouldn’t see this behavior on end devices such as a Windows PC, because they don’t have mechanisms that use their own IP address, so no ARP requests would be necessary. It is the specific role of network devices that has made Cisco decide to implement their ARP mechanism in this way, for the benefits that I described above.
I hope this has been helpful!
Laz