我没有发现如何在Linux上检查和更改默认的arp缓存超时。我在内核3.x中使用debian (但我认为老内核也是如此)
发布于 2015-04-21 15:37:55
60秒
您可以通过以下方式检查:
cat /proc/sys/net/ipv4/neigh/ethX/gc_stale_time然后用
echo timeout > /proc/sys/net/ipv4/neigh/ethX/gc_stale_time超时是新值。
发布于 2018-07-30 20:18:48
我承认,当我写这篇文章时,这是一个有三年历史的问题。但是我在研究同一个主题的时候遇到了这个问题,在证实观察者的回答(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*之间的活动值。
这意味着每个新缓存的ARP条目将有一个15到45秒的启动超时,除非base_reachable_time_ms的值被更改。
这假设缓存的ARP条目的当前超时值在使用前得到验证,垃圾收集速率不影响缓存条目的有效有效性。
(*通过在https://elixir.bootlin.com/linux/v4.17.11/source/net/core/neighbour.c#L115上读取代码来确认)
https://serverfault.com/questions/684380
复制相似问题