OPENWRT断流问题得以解决
前言
目前没有出现网页解析失败的问题,但是仍会间歇性出现网络缓慢或断网问题,文章可能存在事实性错误
前阵子被 openwrt 拨号断流的问题折腾得心力交瘁,使用了一段时间的光猫拨号以后,甚至产生了“为什么非得要路由器拨号”的想法。
这阵子在 V 站、闲鱼、恩山无线论坛和 H 大的 immortalwrt-mt798x 项目 issue 中分别请教了问题,得到了很多热心网友的建议,但还是没有解决问题。
后来加了 immortalwrt 官方的社群,在群里咨询大佬后,有大佬给出建议,然后我找到了问题的根源!
简单来说:域名解析的时候被转发到群晖去了。
问题排查
在社群中描述了详细的情况后,大佬给出了他的思路,按照思路排查下去,症结浮出水面。
大佬首先让我执行 uci show dhcp
,查看结果只有一个 IPV6
设置的问题,即我在 LAN
口将 DHCPv6
设置成了中继模式(hybrid)。而 WAN 口拨号后,自动生成的 wan_6
接口是能获取到 PD 前缀的,大佬说这个能不开就不开。
问题不在这里,于是我分别执行大佬给出的两条命令,然后持续 nslookup
域名,当出现错误时对比两者的情况。
第一条命令:
tcpdump -i br-lan udp port 53 -w /tmp/lan.pcap |
这条命令是使用 tcpdump
抓包 LAN
口,把数据记录在 lan.pcap
文件中。
第二条命令:
tcpdump -i pppoe-wan udp port 53 -w /tmp/wan.pcap |
和上条很相似,不过是抓包 WAN
口,把数据记录在 wan.pcap
文件中。
在持续执行 nslookup
的时候,除了有一个域名我输错,此外没有发生解析异常。在终止了 nslookup
后,我查看了 lan.pcap
文件,问题一目了然:
我执行 nslookup
之后,域名解析被转发到了局域网的黑群晖设备中。
此前卖家建议在群晖里手动设置 DNS
,以便开机后能正常同步时间,所以我把群晖的 DNS
手动设置成了 114.114.114.114
,并且貌似最后一段我还不小心写成了 144
!
难怪时不时出现域名解析不正常的情况,原来就是群晖中设置了错误的 DNS
的锅。
解决方法也很简单,把群晖的 DNS
设置为自动,为了保险起见,在群晖中关闭了 DHCP Server
:
再次开启抓包,执行 nslookup
后 DNS
显然没再被转发到群晖去了:
最后
在得到这个思路以前,我联系了运营商,对方告知他们最近没有升级宽带服务器和后台,但是对“是否因为整治 PCDN
限制光猫桥接使用”这个问题没有正面回答。最后又转到分公司来,师傅说后面约个时间,找一个专业的师傅上门看看。
其实我内心知道宽带线路和光猫是没有问题的,也不认为他们能检测出什么问题来。最后我请大佬发个收款码,请他喝一杯奶茶。大佬很低调,给了我 immortalwrt
项目官方爱发电的链接,于是我捐赠给了项目官方。
为我错怪的 IPV6
,为我错怪的路由器硬件,为我错怪的路由器插件道歉!
回想起来,一开始我就确定是 DNS
解析的问题,但是由于找不到更多解决方案,甚至抓包也没抓到路由器 LAN
口,导致一直没有解决问题。每次刷新固件后总有问题被解决的错觉,而现在,应该是真的解决了!