【问题标题】:ipv6 neigh entries getting failedipv6 neigh 条目失败
【发布时间】:2011-06-26 00:10:27
【问题描述】:
我有一堆失败的 ipv6 neigh 条目:
6000::2828:2802 dev eth2 lladdr 00:1f:a0:02:0e:b2 STALE
7000::1e1e:1e01 dev eth1 FAILED
8000::1e1e:1e01 dev eth1 FAILED
4000::1414:149e dev eth2 lladdr 00:03:00:04:00:09 PERMANENT
5000::1e1e:1e01 dev eth1 FAILED
3000::a0a:a3a dev eth1 lladdr 00:03:00:03:00:09 PERMANENT
现在,当我使用 flush 删除这些条目时,它没有说明要刷新。你们知道如何刷新或删除这些条目吗?如果我删除该条目,它会进入失败状态。我可以更改这些值的时间,因此它会在 10 秒内自动删除。
【问题讨论】:
标签:
linux-kernel
ipv6
ads
neighbours
【解决方案1】:
当您执行类似的操作时,它们应该完全消失
ip -6 neigh del 3000::a0a:a3a dev eth1
但更重要的是:这些地址是虚假的。它们永远不应该在任何地方使用......在您的邻居发现表中看到它们意味着您的系统认为它们处于链接状态,并且不应该是这种情况。
我建议你先看看你的网络配置。您的接口可能配置了错误的前缀长度前缀...
【解决方案2】:
是的,您可以在 10 秒内将它们移除。
$ sysctl net.ipv6.neigh.default
...
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_stale_time = 60
...
gc_interval 是几秒钟后开始清理以删除过时条目。
gc_stale_time 是几秒钟后,条目被标记为过时。
您可以将这两个值都设置为10。您可以在net.ipv6.neigh.eth1 下专门为eth1 覆盖这些值。
$ sysctl -w net.ipv6.neigh.eth1.gc_interval=10
$ sysctl -w net.ipv6.neigh.eth1.gc_stale_time=10