|
本帖最后由 szsqzhilong 于 2017-5-3 17:22 编辑
最近看到很多坛友在不同的论坛问华硕无线路由器掉线是怎么回事。我这边参考了一些帖子以及做了一些验证。现在分享给大家:CHH首发
首先看一下有个坛友的分析:
----------------------------------我是分割线
楼主苦逼程序员一枚,也是技术宅一个,入手的是华硕RT-AC66u,杭州电信100M光纤入户,PPPoE拨号方式上网。
跟很多人一样,我也发现PPPoE经常断开重连,起初怀疑是电信光宽带的问题,前前后后投诉了差不多10次,电信上门仪器测试,线路测试,各种方式都试过,还是一样,最后换了光猫依旧无改善
最后电信方面没办法了,叫我不要用路由,用windows拨号,看看会不会出现这样的问题,开玩笑!!用电脑拨号,我家里的手机、平板之类的怎么办?还有一系列的智能wifi插座都没法用了,想想其实问题也不大,断一下很快连上,玩游戏也就表现为卡顿一下,除了有点不爽,倒也还能勉强接受,就算了,没再去找电信扯皮了(无奈啊.........)
以上是背景,,交代完毕。
最近闲来无事,手痒,于是又来折腾这个问题。电信解决不了,那么咱就自己来,谁让咱是搞技术的呢?
鉴于还无法定位问题原因,最简单的办法就是排除法。首先,用TP-Link拨号,持续一个星期,没有断线,这让我很好奇,难道身价如此之高的AC66u,还比不上身价只有AC66u的十分之一的TP-Link?我只能说这不科学!!
开始以为是对非windows主机拨号都有限制,但是TP-Link也不是windows主机啊,莫非TP-Link是模拟windows主机的PPPoE拨号?
用wireshark抓包,发现TP-Link和windows主机拨号的包还是有区别的,再用RT-AC66u拨号,抓包后发现,RT-AC66u拨号和TP-Link拨号是一样的,这尼玛!!这什么情况??难道真的是AC66u软件不稳定导致的?
拨号是一样的,那好。只有尝试分析一下拨号后的行为了,运气好的话说不定能发现点什么、、、
宽带一次只能用一个路由器拨号,我先打开抓包工具,用RT-AC66u拨号,拨号成功后一直等,观察到RT-AC66u拨号断线重拨3次之后,断开电源,保存抓包数据,判断依据是wan口的公网IP发生变化了。时间花了很久,大概4个小时。
接下来,同样用TP-Link拨号,抓包4个小时,保存抓包数据,接下来分析两次抓包数据的不同。
一番分析,结合自己对PPPoE的了解,终于发现了问题所在:“RT-AC66u拨号断线的原因是电信对echo请求没有响应,导致超时后自动断开”。而TP-Link拨号,是不主动发送echo请求的,只被动回应来自电信PPPoE服务器的echo请求。这就是问题所在!!
找到问题的根源了,那么我就顺便看看为什么4个小时断网重连3次,telnet到RT-AC66u,输入用户名和密码,打开/tmp/ppp/options.wan0,发现存在如下两个属性:
lcp-echo-interval 6
lcp-echo-failure 10
好家伙,6秒一次lcp-echo请求,10次收不到,就认为pppoe断开了。这本来也是正常的,国外用户没这个问题就是明证,可恶的电信运营商,为了节省服务器资源,不响应路由器发送的echo请求。咱们普通消费者也没办法——
按照这个原理,那也应该是60秒断线一次啊,为啥4个小时才断3次??
原来服务器会主动间隔一段时间,发送一次echo请求,让路由器回应,证明PPPoE没有断开,每次路由器收到服务器发来的echo请求,就立即回应,然后知道PPPoE没有断开,重新开始计时这60秒。抓包数据显示,在断线前60秒内,确实没有收到电信PPPoE服务器发来的echo请求,然后自己发出去的
echo请求请求,电信服务器又不响应,然后可怜的RT-AC66u就以为PPPoE拨号连接断开了,于是重拨。。。
PS:
经过查阅相关资料,以及抓包核实,号windows下默认不发送请求,只回应来自对方的echo请求,这也是windows自带PPPoE拨号稳定不断线的原因。
发现这个问题后,我就把这个问题反馈给了华硕官方售后,一天后收到答复说已把问题反馈给后端开发人员,也不知道处理得怎么样了,一直在等新版正式固件发布。
------------------------我是分割线
参考来源:www.52asus.com
然后有看到涵哥的具体验证,在征得涵哥的同意,将其内容发布在这:
-------我是分割线
看到你的帖子之后,涵哥这边也进行了验证,发现这个问题如你所说,确实是运营商的问题,应为运营商没有响应造成的。涵哥这边的运营商是正常响应的,所以没有这个问题。
以下为涵哥的验证步骤:
1.确认一下涵哥的AC68U的lcp-echo的时间间隔是不是和你的一样,
LCP.png (16.47 KB, 下载次数: 0)
下载附件
1
7 天前 上传
看了一下,和你的一模一样
2.然后就是抓包了,涵哥这边也是PPPOE的线路。发现当路由器每发一次lcp的request封包,就会有一个HUAWEI的设备进行reply。如下
LCP request.png (116.13 KB, 下载次数: 0)
下载附件
2
7 天前 上传
所以,每次都会有响应,这样AC68U就不会断线了。
3.但是因为涵哥用的是HUAWEI的猫,所以怀疑是不是HUAWEI的猫在做reply,(内心想着猫不会这么高大上),所以毅然的做了检查。如下
LCP request MAC.png (198.65 KB, 下载次数: 0)
下载附件
3
7 天前 上传
对比了一下,果然不是猫在做回应。那估计就是运营商的设备在做回应,想到这,感觉涵哥是幸福的,毕竟运营商能及时回应。
所以,最终的结论就是,有些华硕路由器WAN口掉线时,不是因为路由器本身原因,而是运营商懒得回应造成的。这个需要投诉
------------我是分割线
响应的解决办法涵哥也给出来了,可以参考一下:
--------------
首先,你不要开双wan,然后在拨号成功之后,telnet进去
1.killall pppd
2.vi /tmp/ppp/options.wan0 ->移除lcp那两行
3.pppd file /tmp/ppp/options.wan0
-------------
根据这个办法,那个坛友貌似已经解决了这个问题。
参考来源:www.52asus.com
最后,希望大家看了以后,都能明白自己的网络为啥会断线。有些真的是因为运营商的偷懒造成的。
|
|