第123篇:DLDP 单向链路检测——防光模块故障
关键词
DLDP、单向链路、光模块故障、单通、光纤交叉、环路防护
一、什么是单向链路?
1.1 光模块的"单通"
以太网光模块使用两根光纤:一收一发。当其中一根光纤故障时,就会形成单向链路:
正常:双向通信
SW1 ──── TX ────► RX ──── SW2
SW1 ◄──── RX ──── TX ──── SW2
单向链路(单通):
SW1 ──── TX ────► RX ──── SW2(正常发送)
SW1 ◄┄┄┄ RX ┄┄┄┄ TX ┄┄┄┄ SW2(接收故障)
1.2 单向链路的危害
单向链路是 STP 和 VRRP 的天敌:
| 场景 | 后果 |
|---|---|
| STP 网络 | 阻塞端口收不到 BPDU → 误以为链路断开 → 放开阻塞端口 → 环路 |
| VRRP 网络 | Backup 收不到 Master 的 VRRP 通告 → 成为 Master → 双 Master |
| 路由协议 | 路由邻居 Down 但链路物理 Up → 路由黑洞 |
二、DLDP 的工作原理
2.1 DLDP 是什么
DLDP(Device Link Detection Protocol)是华为的私有协议,专门检测光纤单通。它通过在链路两端发送和接收 DLDP 报文来判断链路是否双向可达。
2.2 检测流程
1. 启用 DLDP 后,设备在端口上发送 DLDP 报文
2. 报文包含本端信息(Device ID、Port ID)
3. 对端收到后回复自己的 DLDP 报文
4. 如果本端能收到对端的 DLDP 报文 → 双向链路
5. 如果只发不收 → 单向链路 → DLDP 将端口置为 Shutdown/告警
2.3 DLDP 的状态
| 状态 | 说明 |
|---|---|
| Initial | 未启用 |
| Inactive | 光纤物理 Down |
| Active | 光纤物理 Up,DLDP 开始发送报文 |
| Advertisement | 双向正常,定期发送 DLDP 报文 |
| Probe | 未收到对端 DLDP 报文,进入探测模式 |
| Disable | 探测确认单向 → 关闭端口 |
三、DLDP 配置
3.1 基本配置
# ===== 全局启用 DLDP =====
dldp enable
# ===== 接口启用 DLDP =====
interface GigabitEthernet0/0/1
dldp enable
# ===== 配置 DLDP 模式 =====
interface GigabitEthernet0/0/1
dldp mode normal # 普通模式:单向链路时告警
# 或
dldp mode enhanced # 增强模式:单向链路时 Shutdown 端口
3.2 配置参数
# DLDP 参数调优
dldp interval 5 # DLDP 报文发送间隔(默认 5 秒)
dldp work-interval 10 # 检测超时倍数(3-10)
# 端口 Shutdown 后自动恢复
dldp unidirectional-shutdown auto
3.3 查看 DLDP 状态
# 查看 DLDP 整体状态
display dldp
-----------------------------------------------
DLDP global state: Enable
Interval: 5s
Work interval: 10
Interface GE0/0/1
DLDP state: Advertisement ← 双向正常
Neighbor: SW2 (00e0-fc12-3456)
Last down reason: None
Interface GE0/0/2
DLDP state: Disable
Last down reason: Unidirectional
四、DLDP 与 STP / LACP 的配合
4.1 DLDP + STP 增强防护
STP Loop Guard 只能防 BPDU 收不到的情况,但无法区分是单向链路还是无 BPDU 的正常链路。而 DLDP 可以直接检测光纤状态。
| 防护机制 | 防护范围 | 不足 |
|---|---|---|
| STP Loop Guard | 区分不了单向链路 | 可能误判 |
| DLDP | 精确检测单向链路 | 不处理环路本身 |
| 推荐:DLDP + Loop Guard | 完整防御 | — |
4.2 DLDP + LACP
LACP(链路聚合控制协议)也可以检测链路,但只检测聚合组内的链路。DLDP 可以检测单条物理链路的单向问题。
五、实战案例
5.1 案例:光纤单通导致的 STP 环路
现象:某数据中心突然出现广播风暴,所有交换机 CPU 100%。
排查:
1. display stp brief → 端口 GE0/0/1 状态为 Alternate(阻塞)
2. display logbuffer → 大量 MAC 漂移告警,端口在 GE0/0/1 和 GE0/0/24 间漂移
3. 检查端口计数器 → GE0/0/1 Rx 正常,Tx 正常,但对端的 SW2 说收不到(单通)
根因:SW1 到 SW2 的光纤接收端故障(SW1 能发送,但收不到 SW2 的 BPDU),STP 推测链路中断,放开阻塞端口 → 环路。
解决方案:
# 在 SW1 和 SW2 上启用 DLDP
dldp enable
interface GigabitEthernet0/0/1
dldp enable
dldp mode enhanced # 单向链路时直接 Shutdown
5.2 案例:光纤交叉接错
现象:某新部署链路流量异常,部分 VLAN 不通。
排查:
正常接线:
SW1(GE0/0/1) ──── 纤1 ──── SW2(GE0/0/1)
SW1(GE0/0/2) ──── 纤2 ──── SW2(GE0/0/2)
错误接线(交叉):
SW1(GE0/0/1) ──── 纤1 ──── SW2(GE0/0/1) ← TX→RX 正常
SW1(GE0/0/2) ──── 纤2 -+ ↑
└── SW2(GE0/0/2) ← TX→TX(单通!)
DLDP 检测到后显示:
display dldp interface GigabitEthernet0/0/2
-----------------------------------------------
DLDP state: Disable
Reason: Unidirectional
Neighbor: SW2 (00e0-fc12-3456)
Neighbor port: GigabitEthernet0/0/2
六、DLDP 的局限性
| 局限 | 说明 |
|---|---|
| 华为私有协议 | 只能华为设备之间使用 |
| 不能跨交换机 | 只检测直连链路 |
| 增加 CPU 负担 | 需定期发送 DLDP 报文 |
| 不能检测中间设备 | 有中间光传输设备时无效 |
七、总结
| 知识点 | 核心要点 |
|---|---|
| 单向链路 | 光纤单通,双向链路变单向 |
| 危害 | STP 误判形成环路 |
| DLDP 本质 | 收发 DLDP 报文检测单向链路 |
| 模式 | Normal(告警)/ Enhanced(Shutdown) |
| 最佳实践 | 核心链路启用 DLDP Enhanced |
| 与 STP 配合 | DLDP + Loop Guard 组合防护 |
八、思考
- 光模块单通为什么会导致 STP 环路?
- DLDP 的两种工作模式有什么区别?
- DLDP 状态为 Disable 且原因为 Unidirectional 时,端口处于什么状态?
- 如果两端设备不是华为的(如华为接思科),DLDP 还能工作吗?
- 在链路聚合(Eth-Trunk)中,DLDP 还适用吗?
下篇预告:第124篇《LLDP 与 CDP——邻居自动发现协议》——讲解 LLDP 如何自动发现直连邻居设备的信息,以及它在网络运维中的典型应用。