Pregunta

As per arp(7) - Linux man page :

base_reachable_time (since Linux 2.2) Once a neighbor has been found, the entry is considered to be valid for at least a random value between base_reachable_time/2 and 3*base_reachable_time/2. An entry's validity will be extended if it receives positive feedback from higher level protocols. Defaults to 30 seconds. This file is now obsolete in favor of base_reachable_time_ms. base_reachable_time_ms (since Linux 2.6.12) As for base_reachable_time, but measures time in milliseconds. Defaults to 30000 milliseconds.

I did not understand this explanation - especially the statement about the positive feed back from higher level protocols. Somebody please clarify ?

¿Fue útil?

Solución

From the arp(7) man page,

When there is no positive feedback for an existing mapping after some time (see the /proc interfaces below), a neighbor cache entry is considered stale. Positive feedback can be gotten from a higher layer; for example from a successful TCP ACK. Other protocols can signal forward progress using the MSG_CONFIRM flag to sendmsg(2). When there is no forward progress, ARP tries to reprobe.

Basically this means that if something like a continues TCP connection is happening with a lot of successful ACKs, then it assumes the IP/MAC pair it has is valid and doesn't bother doing a new ARP request when the entry in the table would normally expire.

Otros consejos

For IPv6, the function ndisc_router_discovery can update base_reachable_time.
The IPv6 neighbor discovery protocol (which replaces ARP) gets this information and updates it.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top