在现网部署MPLS时,LDP协议的实际运行状态往往比理论模型复杂得多。当你在华为设备上开启Wireshark抓包,面对满屏的LDP报文,是否曾困惑于如何将抽象的协议状态机与具体字段对应?本文将以真实抓包数据为核心,带你逐层拆解LDP会话建立的全过程。
搭建符合企业级标准的MPLS实验环境是分析的基础。推荐使用华为CE系列交换机或AR路由器,配置时需特别注意:
bash复制# 开启全局MPLS功能
sysname LSR1
mpls lsr-id 1.1.1.1
mpls
mpls ldp
bash复制interface GigabitEthernet0/0/0
ip address 10.1.1.1 255.255.255.0
mpls
mpls ldp
提示:传输地址默认使用LSR-ID,若需修改需确保路由可达。错误配置会导致后续TCP连接失败。
抓包要点:
udp.port == 646 || tcp.port == 646当抓取到UDP 646端口的报文时,重点关注以下字段:
| 字段名 | 示例值 | 实际意义 |
|---|---|---|
| Source IP | 10.1.1.1 | 发送接口IP地址 |
| Destination IP | 224.0.0.2 | 组播地址 |
| Hold Time | 0x000f (15s) | 邻居保持时间 |
| Transport Addr | 1.1.1.1 | 后续TCP连接的源地址 |
典型问题排查:
mpls ldp在华为设备上验证传输地址:
bash复制display mpls ldp peer 2.2.2.2 verbose
输出关键信息:
code复制Peer: 2.2.2.2:0
Transport Address: 2.2.2.2
Hold Time: 15 sec
当看到TCP三次握手报文时,注意:
code复制No. Time Source Destination Protocol Info
1 0.000000 1.1.1.1 2.2.2.2 TCP [SYN] Seq=0
2 0.000123 2.2.2.2 1.1.1.1 TCP [SYN, ACK] Seq=0 Ack=1
3 0.000135 1.1.1.1 2.2.2.2 TCP [ACK] Seq=1 Ack=1
Initialization报文中需要验证的参数:
华为设备默认采用:
code复制DU + Ordered + Liberal
分析Label Mapping报文时注意TLV结构:
在华为设备上检查LSP状态:
bash复制display mpls lsp include 100.1.1.1 32
输出示例:
code复制LSP Information: LDP LSP
FEC In/Out Label In/Out IF Next Hop
100.1.1.1/32 1026/NULL -/- -
现象:TCP连接建立后立即断开
抓包分析:
解决方案:
bash复制# 修改标签分发方式保持一致
mpls ldp
label-distribution { dependent | independent }
现象:LFIB表中缺少特定FEC的标签
排查步骤:
在华为设备实验室环境中,通过对比理论模型与真实报文交互,能更深入理解LDP协议的运行机制。实际运维中遇到的90%以上LDP问题,都可以通过系统化的抓包分析定位到根本原因。