网络问题里有一类特别耗时间:现象是间歇性的,压力测试测不出来,在软件层怎么查都查不到根因。
这一类问题,大概率在物理层。
物理层排查的好消息是:顺序是固定的,而且从最便宜的件开始。
一、光模块插上去,端口不亮
现象:光模块插进去,端口不亮,或者亮了但协商不上预期速率。
最常见的原因:厂商编码校验。不少交换机和网卡会读取光模块 EEPROM 里的厂商信息,不在白名单上的直接拒绝。这是厂商的商业策略,不是技术缺陷,所以「模块本身是好的」和「这台设备认不认」是两个独立的问题。
其他三个原因:
- 波长不匹配:850nm(多模)、1310nm、1550nm(单模)对不上,光进不去
- 模式不匹配:单模模块配多模光纤,或者反过来
- 速率不匹配:两端模块速率不一致,协商不上
怎么做:按设备的官方支持列表选型,或者选可改编码的兼容模块。采购时把编码、波长、模式、速率、传输距离都写清楚,不要只写「万兆光模块」。
提醒:这类故障看起来像网卡坏了,其实网卡一点事没有。在换网卡之前,先换一个确定兼容的模块试试——成本差几十倍。
二、万兆口只跑出千兆
现象:链路是通的,但速率停在低档。
三个原因,按排查顺序:
- 自协商失败。两端只能退到共同支持的最低速率。 先看两端的协商状态——多数交换机和网卡都能显示「协商结果」和「本端能力」。
- 线缆等级不够或模块不匹配。铜缆的类别、DAC 线的长度、 光模块与对端的匹配,任何一项不达标都会掉档。
- 驱动或固件版本过旧,不支持该速率模式。这一条在新换的网卡上尤其常见—— 卡是新的,驱动是系统自带的老版本。
顺序:先看两端协商状态(不花钱),再换线换模块(花小钱),最后才怀疑网卡(花大钱)。
换件之前先排除配置,这一句能省下不少冤枉钱。
三、丢包查了三天,最后是一根线
现象:偶发丢包和重传,业务时快时慢;做压力测试的时候又测不出来。
这是最耗人的一类。原因往往极其朴素:
- 接触不良:接头没插到位,或者长期震动后松动
- 线缆弯折半径过小:光纤尤其敏感,超过最小弯曲半径就会有衰减
- 光纤端面脏污:指纹、灰尘,在万兆以上速率下足以造成误码
- 线缆老化:长期在高温或紫外环境下的跳线
怎么确认是物理层:看端口的 CRC 错误计数和误码计数。
关键在于看增量:清零之后观察一段时间,如果计数在稳定累加,那就是物理层问题,不用再在软件层查了。这一步能直接省掉几天。
处理顺序(从便宜到贵):
- 清洁光纤端面,重新插拔(免费,而且经常有效)
- 换跳线(几十块)
- 换光模块(几百块)
- 换网卡或换交换机端口(几千块起)
跳线和模块便宜,先试它们。绝大多数偶发丢包在前两步就解决了。
排查顺序总表
| 现象 | 先看 | 再看 | 最后才 |
|---|---|---|---|
| 端口不亮 | 模块兼容性、波长/模式 | 换一个已知兼容的模块 | 怀疑网卡/端口 |
| 速率降档 | 两端协商状态 | 线缆等级、模块匹配 | 驱动固件版本 |
| 偶发丢包 | CRC/误码计数增量 | 清洁端面、换跳线 | 换模块、换卡 |
| 完全不通 | 两端配置、VLAN | 物理链路、光功率 | 换件 |
一条通用原则:物理层的问题,在软件层怎么查都查不出来。所以在花三天读日志之前,先花三分钟看一眼 CRC 计数。
关于备件
光模块的编码、波长、速率、传输距离都要对上,我们的料号库对每个模块料号记录这几项以及适配的设备型号。
网卡、光模块、跳线这类件多为库房常备,可以在备件料号速查里按品牌或料号搜。查不到的把清单发过来人工核。
本文描述的是这类设备的常见故障模式,不是某一台机器的具体案例。
