对于我的家庭 LAN,我使用运行 Asuswrt-Merlin (374.43 LTS) 分支的 ASUS RT-N66U,这是一个非常简单和稳定的固件,并且定期更新。我的 ISP 在英国是 BT。
我一直只使用 IPv4,但决定启用 BT 支持的 IPv6。
有效的设置似乎很简单,而且大多是默认设置:
Connection Type: Native
Interface: PPP
DHCP-PD: enable
MTU: 1492
LAN Options:
Auto Configuration: Stateless
LAN Prefix Length: 64
Enable Router Advertisement: Enable
Enable DHCPv6 Server: Disable
我还使用了这些“特殊 ISP 选项”(前两个是默认的,而第三个不是):
Enable IPv6 MTU advertisement: Yes
Release addresses on exit: Yes
Prefix delegation requires address request: Yes
最后一个设置似乎出现了这个问题。
如果我将其设置为“是”,则 IPv6 可以正常工作,但我的日志中充满了这些消息——大约每秒 1 条:
dhcp6c: dhcp6c state change detected SOLICIT
除了日志消息,其他一切似乎都在工作。我的路由器没有获得全球 WAN IPv6 地址,但显然 BT 不提供。我想这可能是消息的原因:我的路由器正在请求 WAN 端全局地址,但没有得到。
但是,似乎我确实需要此设置才能从 BT 获取前缀。如果我将设置更改为“否”,那么日志消息将停止,但我也会丢失 IPv6 网关和委托前缀,当然,IPv6 将停止工作。
如果没有日志填满,我似乎无法让 IPv6 工作(并且大概每秒都会浪费 Solicit 消息)。
关于正在发生的事情以及如何进行的任何建议?
所以,为了以防万一以后有人来到这个话题,我似乎终于有了一个解决方案。
要让 IPv6 在 BT 上运行,所有设置几乎都是默认设置,除了
这似乎可行,但我也收到了上面提到的日志消息——每秒几条。实际上,我已经运行了很长时间,只是忽略了日志——大多数事情似乎都在工作。但我终于再次查看了日志问题,发现 nvram 选项中似乎是一个更明智的修复。看来我需要
disable rapid-commit for dhcp6c client
。我真的不知道为什么,但这似乎有效。所以我 SSH 进入并输入我的日志不再充满垃圾。虽然我可能仍然有问题,但我在所有客户端上都获得了正确的 IPv6,并且日志看起来不错,所以我认为这是正确的。