对于我的家庭 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 消息)。
对于正在发生的事情以及如何进行有什么建议吗?
答案1
所以,万一将来有人遇到这个话题,我似乎终于找到了解决方案。
为了让 IPv6 在 BT 上运行,所有设置几乎都是默认的,除了
Prefix delegation requires address request: Yes
这似乎有效,但我也收到了上述日志消息 - 每秒几条。实际上,我已经运行了很长时间,只是忽略了日志 - 大多数事情似乎都有效。但我最终再次查看了日志问题,并找到了似乎更合理的修复方法,即在 nvram 选项中。看来我需要disable rapid-commit for dhcp6c client
。我真的不知道为什么,但这似乎有效。所以我通过 SSH 登录并输入
nvram set ipv6_isp_opt=8
nvram commit && reboot
我的日志不再充满垃圾信息。虽然可能仍有问题,但我在所有客户端上都获得了正确的 IPv6,而且日志看起来不错,所以我认为这是正确的。