Hi - Can somebody point me to the technical details on how ASR9k refreshes the ARP cache as the cache timeout is about to expire? We are trying to understand the exact process and timing of what happens to an IP to MAC mapping in the ARP cache when the cache timeout is reached.
My understanding of the ARP cache procedure:
ASR9k receives an IP / Layer 3 packet with a destination IP address within a 'connected' prefix as shown by 'show route'
ASR9k checks the ARP cache on the connected interface to see if there is an IP to MAC mapping. If so, traffic is sent to that MAC. If not, ASR9k sends out L2 broadcast asking 'who has' the IP that's needed.
The device with the IP responds with an L2 unicast message indicating the MAC and IP.
ASR9k installs the IP to MAC mapping in ARP table and the ARP cache timer starts counting up. Packets are now flowing towards the MAC in the ARP table for the destination IP.
Assume there is traffic passing from the internet through the router and down to a subscriber/CPE for a time longer than the ARP cache timeout.
**As the timer approaches the configured ARP cache timeout value, ASR9k refreshes the IP to MAC**
I don't understand the last step. When does the ASR9k refresh the IP to MAC mapping? It appears the 9k sends out an ARP broadcast 'who is' at some time just before the timer expires, but I can't find this documented anywhere.
I have read some other posts indicating that in IOS, the device calculates some random time value that it subtracts off each individual ARP entry where the device will then ARP for the IP. This prevents a flooding of ARP broadcasts if all the mappings expire at the same time, which could be really bad if you have huge broadcast domains across hardware with limited packet processing power.
I have read ASR9k documentation that states the ARP cache timeout simply ages out the entry upon timer expiration and the 9k will simply ARP again after the timer expires. I'm not seeing this in practice.