记一次因DHCPv6故障导致的家庭网络质量
前记
上周开始连家里WiFi发现微信的连接中要等三四秒,怀疑是微信的锅也就没管,后面发现开很多网站也得等,第一反应是不是Adguard Home的问题,于是关掉后使用运营商DNS也一样。然后宽带重拨了也没用,因为白天上班,晚上到家挺晚的了也没咋用WiFi网络,所以也没管。
排障
今天清明放假,想着一波给这个问题解决了。最先发现的是路由器管理页面首页的网络质量提示无网络,于是怀疑光猫问题,但是能正常上网啊,光猫收光什么的也都正常,于是尝试重拨账号,发现还是提示无网络。此时开始使用电脑进行拨测,尝试了一些命令,例如 curl ip.im/info
,这一尝试就发现了问题所在,我的IPv6不通了,正常系统都会优先用IPv6去解析和访问网站,但是这个命令直接超时了,提示连接超时,强制使用IPv4解析就能访问,此时确定故障是IPv6网络不可用。
解决
首先尝试系统内禁用IPv6,然后重新获取地址,发现没有用。然后就开始找路由器的问题,首先测试WAN6是正常的,然后看下发的前缀和DHCPv6分配的地址段,这一看就找到问题了,这里插一个常识:每次拨号拿到的IPv4以及IPv6前缀都不同,只有在这个段下的IPv6地址才能通,在DHCPv6模式下,路由器作为IPv6网关,给自己分配一个前缀下的地址,绝大多数的做法是是[前缀::1],然后给下面的设备分配段内地址即可。路由器的DHCPv6服务器挂了,导致前缀一直没有更新到拨号拿到的最新前缀,一直在用以前拨号拿到的老前缀给局域网设备分配IPv6,自然导致了局域网内手机电脑等设备有IPv6地址但网络不通,然而现在各种App和浏览器都会尝试IPv6优先解析和访问,所以会等待TCP连接直到超时,就得到了我眼中的微信转圈,网站白屏等。最后重启DHCPv6服务后完美解决,重新拨号使用最新前缀分发IPv6地址,一切都变回了之前的丝滑。