本帖最后由 newkit 于 2020-11-20 02:47 编辑
请教这个为何要关闭?wan是宽带,我说的掉线,是内网的设备掉啊,即路由器和智能设备之间的链接断开了。
不过这ac86U很奇怪,即使wifi啥的断流,wan始终是正常的,也就是说有线网络稳如狗,当然,这也得归功于光猫。
*********************
搜到这个,看来确实可能导致问题!
华硕路由器导致离奇的智能家居设备掉线问题排查把遇到的一次智能家居设备(我主要基本都是米家设备)离线的问题分析讲一下
因为不想写太长,所以涉及的名词请自行搜索了解……不作科普
解决方式该问题应该普遍存在于ASUS包括刷了merlin固件的ASUS路由器
关闭“系统管理->开启 WAN 中断的浏览器导页通知”,可以完全避免触发该Bug
问题现象
有时从手机客户端发现智能设备离线,但从路由器管理界面能看到智能设备的WiFi正常链接,从同局域网内Ping该设备也正常(这种情况我也存在)
从路由器端使用tcpdump抓包,发现设备发送DNS请求解析域名,但路由器应答了10.0.0.1,导致设备后续的连接服务器均失败
当使用路由器中的“开启 WAN 中断的浏览器导页通知”功能时,在 WAN 中断时(如每48小时重新拨号等),路由器内的firewall会修改iptables,将所有的DNS请求REDIRECT到18018端口,wanduck监听18018,对所有DNS请求都应答10.0.0.1用于引导用户访问到路由器断网的提示页面
当 WAN 恢复时,上述iptables规则会被删除,按设计预期流量应正常通过路由器访问互联网,但可能程序猿忘了个事情……
REDIRECT涉及到conntrack,只需要一个链接的第一个包匹配iptables规则,接下来无论iptables规则如何变化,只要conntrack内的对应条目仍然有效,REDIRECT就会起效,而 wanduck 是一个持续运行的程序,即使 WAN 正常,只要有DNS请求发到18018端口,它就会应答,再加上智能家居设备因为连不上服务器会不断的发送DNS解析请求。而对于conntrack来说,它看到了智能设备的DNS请求,也看到了wanduck的DNS应答,那么它认为链接是活动状态REDIRECT则一直生效。
于是只要 WAN 中断时,有设备发送了DNS解析请求,wanduck应答了DNS解析,设备发现自己连不上真正的服务器于是不断的尝试重新解析,重复得到错误DNS应答,导致该REDIRECT关系永远不会过期移除,设备也就永远跳不出这个死循环了(其实只要此时两边有一方停下来一段时间,或者 WAN 恢复时谁来flush conntrack就好)
**************************
继续观察,但愿有效!
|