4. Nexus接口与链路故障诊断
在 Nexus 交换机的日常运维中,接口与链路类故障占据了相当高的比例。这类问题往往表现为业务时断时续、丢包、延迟抖动,甚至整条链路彻底不可用。与路由协议或策略类故障不同,物理层和链路层的问题通常有明确的硬件与信号特征,只要掌握正确的观察点和判断顺序,定位效率可以大幅提升。本节围绕物理层错包、CRC 校验错误、光模块 DDM 数字诊断、接口 flap 以及链路聚合异常五个核心对象展开,帮助建立从“现象”到“根因”的诊断路径。
一、物理层错包与 CRC:先分清“谁在报错”
Nexus 接口的统计信息中,与物理层直接相关的计数器主要有几类:RX_ERR(接收错误)、CRC(循环冗余校验错误)、input errors、runts、giants、frame 以及 FCS-Err。其中 CRC/FCS 错误是最具指向性的信号——它表示帧在传输过程中比特位发生了翻转,接收端计算出的校验值与帧尾携带的 FCS 不一致。CRC 错误几乎总是物理层问题,常见来源包括:光纤脏污或端面损伤、光模块发射/接收功率异常、跳线弯折半径过小、电口线缆质量差或接触不良、以及两端速率/双工不匹配。
诊断时不要只看“有没有错包”,而要看“错包增长的速度和分布”。使用以下命令观察:
show interface Ethernet1/1 counters errors
show interface Ethernet1/1 | include error|CRC|flap
show interface Ethernet1/1 transceiver details
如果 CRC 计数在持续增长,且集中在某几个端口,优先怀疑该端口的光模块或光纤链路;如果多个端口同时出现 CRC,且它们共用同一根主干光缆或同一个光配线架,则应检查公共路径。需要注意的是,show interface 中的 input errors 是多个计数器的汇总,不能单独作为判断依据,必须展开到具体计数器。
二、光模块 DDM:把“看不见的光”变成可读参数
DDM(Digital Diagnostic Monitoring,数字诊断监控)是光模块内部的一组传感器,通过 I2C 接口向交换机上报温度、供电电压、偏置电流、发射光功率和接收光功率五个关键参数。Nexus 通过 show interface transceiver details 读取这些值,并与模块厂商写入的告警门限(High Alarm / High Warn / Low Warn / Low Alarm)比较。
判断光模块是否健康,核心看两个功率值:Tx Power 反映本端发射是否正常,Rx Power 反映对端发来的光是否被正确接收。典型的多模 10G SR 模块,Tx Power 正常范围约在 -6 dBm 到 -1 dBm,Rx Power 灵敏度下限约 -11 dBm 到 -7 dBm;单模 LR 模块的 Rx 灵敏度通常可到 -14 dBm 左右。如果 Rx Power 接近或低于 Low Warn,链路就会开始出现 CRC 和丢包;如果 Rx Power 显示为 -40 dBm 或 N/A,通常意味着收无光,应检查对端是否发光、光纤是否接反或断裂。
三、接口 flap:从日志和时间线还原过程
接口 flap 指链路状态在 up/down 之间反复切换。它比“一直 down”更隐蔽,因为业务可能在两次 flap 之间短暂恢复。Nexus 上观察 flap 的主要手段是 show interface 中的 flap count 和 show logging logfile 中的 %ETHPORT-5-IF_DOWN / IF_UP 记录。诊断 flap 的关键是建立时间线:记录每次 down 和 up 的时间戳,计算间隔是否规律。规律性 flap(如每 30 秒一次)常与 STP、UDLD 或链路聚合协商有关;无规律 flap 则更偏向物理层,如光模块间歇性失效、光纤松动、供电不稳。
此外,show interface Ethernet1/1 | include flap 可以直接看到累计 flap 次数。如果 flap 次数在短时间内快速增长,即使当前接口是 up,也应视为不稳定链路,需要立即介入。
四、链路聚合异常:成员口与聚合口的双重检查
Port-Channel 故障的典型表现是:聚合口逻辑上 up,但实际带宽下降、部分流量丢失,或者成员口状态不一致。诊断时要同时检查两层:物理成员口和逻辑聚合口。使用 show port-channel summary 查看成员口是否全部处于 P(bundled)状态;如果某个成员口显示 I(individual)或 D(down),说明它没有成功加入聚合。常见原因包括:成员口速率/双工不一致、LACP 模式不匹配(active/passive)、成员口配置差异(如 MTU、VLAN、STP 端口类型不同)、以及成员口本身存在 CRC 或 flap。
LACP 协商问题可以通过 show lacp counters 和 show lacp neighbor 进一步确认。如果 LACP 报文收发计数异常,或邻居信息缺失,说明协商未完成。需要强调的是,聚合口的故障往往不是“聚合本身”的问题,而是某个成员口的物理问题被聚合逻辑掩盖了,因此排查时必须回到成员口层面。
五、把五类现象串成一条诊断链
实际排障时,这五类现象往往不是孤立的。一个典型的场景是:某成员口光模块 Rx Power 偏低,导致该口出现 CRC 错误,进而触发接口 flap,最终使 Port-Channel 成员口退出 bundled 状态,聚合带宽下降。如果只盯着“聚合异常”去查 LACP 配置,就会走弯路。因此建议的排查顺序是:先看物理层计数器(CRC、RX_ERR),再看光模块 DDM 参数,然后看 flap 时间线,最后回到聚合逻辑层确认成员口状态。这个顺序的本质是“从底层往上层查”,因为上层现象通常是底层问题的结果。
show interface transceiver details,对比不同时间点的功率值。六、一份可执行的现场检查清单
为了便于现场快速执行,下面给出一份针对本节五类问题的检查清单。清单中的命令和判断阈值均为通用参考,实际门限应以模块厂商规格和现场基线为准。
| 检查项 | 命令 / 观察点 | 正常参考 | 异常处置 |
|---|---|---|---|
| CRC / FCS 错误 | show interface counters errors |
计数为 0 或长期不增长 | 清洁光纤、更换跳线或模块 |
| Rx Power | show interface transceiver details |
高于 Low Warn 门限 | 检查对端发光与光纤路径 |
| Tx Power | 同上 | 在模块规格范围内 | 模块发射异常,考虑更换 |
| 温度 / 电压 | 同上 | 未触发 High/Low Alarm | 改善散热或检查供电 |
| 接口 flap | show interface | include flap |
flap count 稳定 | 结合日志定位 flap 原因 |
| 成员口状态 | show port-channel summary |
全部为 P(bundled) | 核对成员口配置一致性 |
| LACP 协商 | show lacp counters |
收发计数正常增长 | 检查模式与邻居信息 |
最后需要强调的是,接口与链路故障诊断的核心不是记住多少条命令,而是建立“现象—计数器—物理对象—处置动作”之间的对应关系。CRC 指向信号完整性,DDM 指向光模块健康度,flap 指向状态稳定性,聚合异常指向成员口一致性。把这四类线索分开观察、再合并判断,就能在复杂的 Nexus 网络中快速缩小故障范围。