记一次诡异的断网问题
缘起
最近终于空出点时间,就折腾把吃灰很久的台式机开起来,下载了epic和stream上的几个游戏。
然后诡异的情况就出现了:
1、千兆的局域网,二百兆的宽带,下载速度却只有8~10MB,看起来只有百兆带宽
2、客厅的电视突然就报没网络了,且使用无线连接的电脑ping路由器延迟高达300+ms
这样看来局域网肯定是出问题了,要么是物理路由器负载太高,要么是openwrt虚拟机有性能问题。
折腾过程
网络情况
家里的网络,入口是华硕路由器作为拨号的主路由,光猫不负责拨号;然后通过局域网一台openwrt虚拟机,对局域网提供网关服务。
情况详细分析
经过在台式机、连接物理路由器wifi情况下,分别测了下带宽,发现台式机的有线网络只有百兆带宽,而连接物理华硕路由器的机器上,网速有200兆。
这样看来,肯定是局域网的openwrt虚拟机对应的网络有线局域网存在问题了。
而且台式机在下载时,同时连接有线局域网的电视机就没有网络了,而暂停下载后,电视机的网络就会恢复,向openwrt虚拟机的ping也会恢复正常。
这样的话能够明显:
1、当前有线局域网只有100MB了
2、当前无线网是没有的问题,网速正常,但是由于也使用了局域网的openwrt作为网关,可能也会变慢
进而在华硕路由器的后台发现,当前openwrt虚拟机对应的物理端口,显示为100MB,而不是1000MB。
这样的话问题就比较明显了,是局域网的设备在路由器的网速协商上,被协商到100MB了,而实际宽带是200MB的,这样的话在台式机下载时,整个有线局域网是被完全占满的。
因此也就有了电视机没法联网,ping值很高的情况,应该是有线局域网完全满载了,因为游戏的下载服务器cdn质量很好,导致的网络满载,但在华硕路由器以及带宽这一侧其实没有满载,最终就是openwrt虚拟机对应的100MB的局域网满了。
修复过程
通过上面的分析,现在要解决的问题就是:为什么华硕路由器会判定千兆的局域网的端口为100MB而不是1000MB。
通过分析前段时间的操作,发现是由于新增了一台老的h61主板的设备,其只有板载的100MB网卡,很有可能协商时由于错误情况。把整个端口判定为100MB了。
通过把这台h61的百兆设备关机,然后重新插拔华硕路由器的端口,发现识别为1000MB了。
重新试了台式机下载游戏的场景,也都没有问题了。
总结
这次的根本问题,是华硕路由器和局域网的设备在协商端口速率时,协商到了100MB,导致整个有线局域网都是100MB,此时200MB的大数据量下载会把带宽占满。
解决方法也很简单,准备把h61的主板增加一个千兆网卡使用了,这样应该就不会出现协商错误。另外也会看下是否是openwrt虚拟机没有正确上报端口速率导致的问题(因为网络中另一台百兆的树莓派没有导致协商失败过)。
参考文档
https://github.com/DHDAXCW/NanoPi-R4S-R4SE/issues/84
发表评论