网络时快时慢,我们一般的排查顺序
从定范围到看端口、ping 网关、查 DNS 和出口流量,讲我们现场用了两年的一套排查顺序和命令。
第一步先定范围:是一台还是一片
接到网络慢的电话,我们先问三句话:是所有机器都慢还是就一台?是有线慢还是无线也慢?是访问外网慢还是访问内网的文件服务器也慢?这三个问题的答案基本能把范围缩到一半。只有一台慢,问题在这台机器的网卡、网线或者系统;同一个交换机下的都慢,问题在上联或者这台交换机;全公司都慢,重点看出口和核心。我们在电话里问完,会先让对方报一下机器地址和接到哪个口,到现场直接对得上。

第二步看端口状态和错误包
到现场先登录交换机看端口:速率是不是协商成千兆全双工,如果落到百兆或者半双工,先换线换口试试。再看端口统计里的错误包和冲突计数,CRC 错误、丢包计数一直在涨,基本是线缆或者模块的问题。我们随身带一个简易测线仪和两根已知完好的跳线,换上去对比。这一步能解决现场大约三成的问题,而且成本最低,一根线十几块钱,换完就好。如果交换机不支持查看统计,我们就换一个口、换一段线做对比,办法笨但有效。还有一个常见现象是某个口每隔几分钟掉一次线,多半是网口弹片松了或者水晶头没卡紧,换一个头就能解决。
第三步 ping 网关,看延迟和抖动
接着在有问题的机器上 ping 网关,发 100 个包,看平均延迟、最大延迟和丢包。正常内网应该小于 1ms,丢包为零。如果延迟忽高忽低、有几个包明显偏大,多半存在环路或者广播风暴,需要看交换机的 CPU 占用和生成树状态。我们遇到过一次某层楼有人把一根网线的两头都插在同一个交换机上,形成环路,整层网络时快时慢,查了两天才找到。现在我们把环路保护和端口限速在接入交换机上默认打开。
第四步往外看:DNS 和出口链路
内网没问题再看外网。先用域名解析工具对比直接解析和换一个公共 DNS 的响应时间,解析慢会让网页半天打不开,看起来像网速慢。再看出口:如果用的是拨号宽带,看有没有人开下载占满上行。上行占用最容易被忽略,一台机器在同步数据,整个公司的网络都会卡。我们在出口做流量统计,按内网地址排序,谁占了多少一目了然。再往上一步,用 tracert 看路径,哪一跳开始延迟变大,问题就在那一跳附近。我们一般同时开两个窗口,一个 ping 网关,一个 ping 外网地址,对比曲线就能分清是内网还是出口的问题。
私接设备是最常见的元凶
把上面几步走完,还有一类高频原因:有人自己带了小路由器或者随身热点插在网口上。这类设备如果在内网开了地址分配服务,其他机器可能拿到错误的网关,一会儿能上网一会儿不能。我们的排查办法是在电脑上查看网关的物理地址,跟真实网关对比,对不上就顺着找。找到之后的处理不是没收设备,而是跟对方说明影响,或者单独给他划一个访客段。限速这件事我们一般先跟甲方商量,不要悄悄做。常见做法是按地址段限速,办公段每台给一定的上下行额度,下载和备份放到夜间不限速的时间段,双方都能接受。
我们实际的做法
天门一个四层办公楼,反映下午两三点网络特别慢。我们按上面的顺序走了一遍:内网 ping 正常,端口没有错误包,最后在出口流量统计里看到一台机器上行占了八成,是有人在同步备份。我们跟对方商量把备份时间挪到晚上,同时给这台机器做了限速,问题解决了,整个排查不到两小时。做完这类项目我们会留一份网络拓扑图给甲方,图上标设备、地址和上联关系,下次再出问题可以少走很多弯路。