60 secondi
puoi verificarlo con:
cat /proc/sys/net/ipv4/neigh/ethX/gc_stale_time
e cambialo con
echo timeout > /proc/sys/net/ipv4/neigh/ethX/gc_stale_time
timeout è il nuovo valore
Riconosco che mentre scrivo questo, questa è una domanda vecchia di tre anni. Ma mi sono imbattuto in questa domanda durante la ricerca sullo stesso argomento e nel processo di conferma della risposta di watchmansky (https://serverfault.com/a/684381/188907), ho imparato qualcosa in più sulla situazione, almeno così com'è oggi.
Secondo https://linux.die.net/man/7/arp, l'impostazione
gc_stale_time
influisce sulla frequenza con cui la cache ARP viene controllata per le voci obsolete. (O spazzatura raccolta , da qui "gc_" all'inizio del nome dell'impostazione.)
Nel frattempo, il valore
base_reachable_time_ms
in realtà controlla per quanto tempo è valida una voce della cache ARP e il valore predefinito è 30000 millisecondi. Ma ogni nuova voce della cache ARP riceverà effettivamente un valore time to live impostato casualmente da qualche parte tra base_reachable_time_ms / 2 and 3*base_reachable_time_ms / 2
*.
Ciò significa che ogni nuova voce ARP memorizzata nella cache avrà un timeout iniziale compreso tra 15 e 45 secondi, a meno che il valore di base_reachable_time_ms
è cambiato.
Ciò presuppone che il valore di timeout corrente per una voce ARP memorizzata nella cache sia convalidato prima dell'uso e che il tasso di raccolta dei rifiuti non influenzi l'effettiva validità delle voci della cache.
(*Confermato leggendo il codice su https://elixir.bootlin.com/linux/v4.17.11/source/net/core/neighbour.c#L115)