第154篇:MPLS 标签分配协议:LDP 工作原理
关键词:LDP、标签分发、Label Mapping、FEC、IGP 联动、LSR ID、Label Space
一、引言
LDP(Label Distribution Protocol,标签分发协议)是 MPLS 网络中最基础的标签分发协议。它运行在 IGP 之上,基于 IGP 计算的最短路径为每个 FEC 分配标签并建立 LSP。LDP 不执行路径计算,而是"借用" IGP 的路由表来建立标签转发路径。理解 LDP 的工作机制,是掌握 MPLS 数据转发和 L3VPN 的基础。
二、核心概念
2.1 LDP 协议基本架构
LDP 使用 TCP 646 端口建立邻居会话,使用 UDP 646 端口发送 Hello 报文进行邻居发现。LDP 运行在 LSR 之间,与 IGP(OSPF 或 IS-IS)紧密协同。

2.2 LDP 标识符(LDP ID)
每个 LDP Router 有一个唯一的 LDP Identifier,格式为 Router ID: Label Space ID:
| 组成部分 | 格式 | 说明 |
|---|---|---|
| Router ID | 32位 IPv4 地址 | 通常为 LoopBack 0 的 IP 地址 |
| Label Space ID | 16位整数 | 默认 0,路由器级标签空间 |
例如 LDP ID 10.1.1.1:0 表示 Router ID 为 10.1.1.1、标签空间 ID 为 0。
2.3 LDP 报文类型
| 报文类型 | 传输方式 | 用途 |
|---|---|---|
| Hello | UDP 646, 组播 224.0.0.2 | 邻居发现(发现 LDP 邻居的存在) |
| Initialization | TCP 646 | 会话建立参数协商(HoldTime、LabelDSP 等) |
| KeepAlive | TCP 646 | 维持会话活跃 |
| Address | TCP 646 | 通告本地 IP 前缀(告知对端哪些前缀可以请求标签) |
| Label Mapping | TCP 646 | 分发 FEC 到标签的绑定信息 |
| Label Withdraw | TCP 646 | 撤销已分发的标签绑定 |
| Label Release | TCP 646 | 释放标签(DoD 模式下收到 Withdraw 后的回复) |
| Notification | TCP 646 | 错误通知和状态通告 |
2.4 LDP 发现模式
| 发现模式 | 范围 | 说明 |
|---|---|---|
| 链路发现(Link Discovery) | 直连链路 | 向 224.0.0.2 发送 Hello,发现直连 LDP 邻居 |
| 发现扩展 | 非直连 | 配置 Targeted Hello 到特定地址,用于非直连 LDP 邻居 |
| IGP 发现(Auto Config) | IGP 邻居范围 | 自动在所有 IGP 邻居接口上使能 LDP |
三、技术细节
3.1 LDP 邻居建立过程

3.2 LDP 标签分发方式
| 方式 | 英文全称 | 工作机制 | 优缺点 |
|---|---|---|---|
| DU | Downstream Unsolicited | 下游主动向上游分发标签,无需上游请求 | 收敛快,但标签消息多 |
| DoD | Downstream on Demand | 下游仅在收到上游请求后才分发标签 | 收敛慢,但标签消息少 |

华为设备默认使用 DU 模式,在网络收敛速度和标签消息开销之间取得了较好的平衡。
3.3 LDP 标签绑定过程
当 LDP 运行在 IGP 之上时,标签分发遵循"下游分配、逐跳分发"原则:
- 出口 LSR:当某台 LSR 发现自己是指定 FEC 的出口(下一跳为自身)时,为该 FEC 分配一个本地标签,并向上游发送 Label Mapping
- 中转 LSR:收到下游的 Label Mapping 后,为同一 FEC 分配自己的入标签,建立入标签到出标签的映射,并继续向上游分发
- 入口 LSR:收到 Label Mapping 后,将 IP 路由前缀与入标签绑定,数据报文到达时压入标签进入 LSP
3.4 LDP 会话状态机

3.5 LDP 与 IGP 联动
LDP 的 LSP 建立依赖于 IGP 的路由信息。当 IGP 路由变化时,LDP 需要重新计算 LSP。联动方式:
| 联动方式 | 说明 |
|---|---|
| IGP → LDP | IGP 路由变化触发 LDP 标签重分发 |
| LDP → IGP | LDP Session 状态变化触发 IGP Metric 调整(IGP-MPLS 联动) |
当启用 IGP-MPLS 联动(mpls ldp igp auto-feedback enable)后,如果 LDP Session 断开,IGP 自动增大对应链路的代价,流量绕行其他路径,避免转发黑洞。
四、实战配置/案例分析
4.1 华为设备 LDP 配置
# 华为 NE40E 完整 LDP 配置
<NE40E> system-view
[NE40E] sysname Core-LSR
# 1. 配置 LoopBack 接口(LDP Router ID)
[Core-LSR] interface LoopBack 0
[Core-LSR-LoopBack0] ip address 10.1.1.1 32
# 2. 配置 IGP(IS-IS)
[Core-LSR] isis 1
[Core-LSR-isis1] network-entity 49.0001.0000.0000.0001.00
[Core-LSR-isis1] is-level level-2
[Core-LSR-isis1] cost-style wide
[Core-LSR] interface 10GE 1/0/1
[Core-LSR-10GE1/0/1] ip address 10.0.0.1 30
[Core-LSR-10GE1/0/1] isis enable 1
# 3. 全局启用 MPLS + LDP
[Core-LSR] mpls
[Core-LSR-mpls] mpls ldp
# 4. 接口启用 MPLS
[Core-LSR] interface 10GE 1/0/1
[Core-LSR-10GE1/0/1] mpls
[Core-LSR-10GE1/0/1] mpls ldp
# 5. LDP 自动配置(基于 IGP)
[Core-LSR-mpls] mpls ldp auto-config enable
# 6. 配置 LDP Router ID
[Core-LSR-mpls] mpls ldp router-id LoopBack 0
# 7. 启用 IGP-MPLS 联动
[Core-LSR-mpls] mpls ldp igp auto-feedback enable
4.2 LDP 故障排查:标签未分发
故障场景:LDP Session 状态为 Operational,但 LSP 未建立。
# Step 1: 确认 LDP Session 状态
<Core-LSR> display mpls ldp peer
Peer: 10.1.1.2
State: Operational
LabelDSP: DU
# Step 2: 检查 Address 通告
<Core-LSR> display mpls ldp local-address
IPv4 Address:
10.1.1.1/32 Active
10.0.0.1/30 Active
# 如果地址未通告,对端不会为该 FEC 生成标签
# Step 3: 检查标签信息库
<Core-LSR> display mpls ldp label-stream 10.1.1.2 32
FEC: 10.1.1.2/32
Local Label: Null
# 本地标签为Null,说明LDP未为该FEC分配标签
# Step 4: 检查路由表
<Core-LSR> display ip routing-table 10.1.1.2
# 如果IGP路由不存在,LDP不会为该FEC分配标签
# 根因:IGP路由存在但LDP未触发标签分配
# 解决方案:检查LDP的FEC过滤策略
<Core-LSR> display current-configuration | include ldp fec
4.3 LDP 标签环路检测
LDP 本身不执行环路检测(因为借用 IGP 最短路径,IGP 无环即 LDP 无环)。但可以通过 TTL 机制防止异常环路:
# 查看 LSP 的 TTL 递减
<Core-LSR> display mpls lsp verbose
NLRR: 10.1.1.5/32
INLBL: 1028, OURLBL: 1035
TTL: hop-limit (每经过一个LSR减1)
# 配置 TTL 传播
[Core-LSR-mpls] mpls ttl propagate enable
五、总结
| 项目 | 要点 |
|---|---|
| LDP 定位 | 基于 IGP 最短路径的标签分发协议,不执行路径计算 |
| 邻居发现 | UDP 646 组播 Hello(链路级)或 Targeted Hello(非直连) |
| 会话建立 | TCP 646,协商 HoldTime、LabelDSP(DU/DoD)等参数 |
| 标签分发 | 下游分配、逐跳分发,华为默认 DU 模式(主动推送) |
| IGP 联动 | IGP 路由提供 FEC 信息,IGP-MPLS 联动避免 LDP Session 断开时的黑洞 |
思考
- LDP 使用 IGP 路由表确定 FEC,如果 IGP 路由表中有多条等价路由(ECMP),LDP 如何处理?
- LDP 的 DU 和 DoD 模式在网络收敛速度上有何差异?在大规模网络中推荐使用哪种模式?
- LDP Session 建立后,如果 IGP 路由发生变化但 LDP Session 未断开,LSP 路径如何更新?
下篇预告:第155篇:LDP 邻居建立与标签分发方式(DU/DoD)