60秒
次の方法で確認できます:
cat /proc/sys/net/ipv4/neigh/ethX/gc_stale_time
で変更します
echo timeout > /proc/sys/net/ipv4/neigh/ethX/gc_stale_time
タイムアウトは新しい値です
これを書いている時点で、これは 3 年前の質問であることを認めます。しかし、同じ主題を調査しているときにこの質問に出くわし、watchmansky の回答 (https://serverfault.com/a/684381/188907) を裏付ける過程で、少なくとも存在する状況についてもう少し学びました。今日。
https://linux.die.net/man/7/arpによると、設定
gc_stale_time
古いエントリがないかどうか ARP キャッシュをチェックする頻度に影響します。 (または ガベージ コレクション 、したがって、設定名の先頭に「gc_」があります。)
一方、値
base_reachable_time_ms
実際には ARP キャッシュ エントリが有効な期間を制御し、デフォルトは 30000 ミリ秒です。しかし、それぞれの新しい ARP キャッシュ エントリは、実際には base_reachable_time_ms / 2 and 3*base_reachable_time_ms / 2
の間のどこかにランダムに設定された有効期限の値を受け取ります。 *。
これは、base_reachable_time_ms
の値が指定されていない限り、新しくキャッシュされた ARP エントリの開始タイムアウトが 15 ~ 45 秒になることを意味します。
これは、キャッシュされた ARP エントリの現在のタイムアウト値が使用前に検証され、ガベージ コレクション レートがキャッシュ エントリの有効な有効性に影響しないことを前提としています。
(* https://elixir.bootlin.com/linux/v4.17.11/source/net/core/neighbour.c#L115 でコードを読んで確認)