LDP 是什么
LDP(标签分发协议)负责在 IGP 已收敛的基础上为各前缀分发标签绑定:设备通过链路层的 hello 发现邻居,用 TCP 建立会话,然后按 FEC(转发等价类,通常是前缀)交换标签映射。它不计算路由,只把 IGP 已经算好的路径转换成标签转发项。
基本信息
| 发现 | UDP 646,链路 hello 使用组播 224.0.0.2 |
|---|---|
| 会话 | TCP 646,传输地址通常用 loopback 地址 |
| 绑定 | 按 FEC 交换 label mapping(前缀到标签) |
| 依赖 | 先有 IGP 路由,再有对应标签绑定 |
| 本地标签 | 每台设备为前缀分配本地标签并通告给邻居 |
| 验证 | show mpls ldp discovery / neighbor / bindings |
典型使用场景
- 骨干启用标签转发,为 MPLS VPN 提供承载
- 城域网内用 LDP 简化核心转发
- 排障标签路径:逐台核对某前缀的入标签与出标签
- 新设备接入:确认邻居发现与会话是否建立
- 迁移到分段路由前梳理现有标签分发关系
状态核查
状态核查
show mpls ldp discovery # 邻居发现状态(hello 层面)
show mpls ldp neighbor # 会话是否 Oper
show mpls ldp bindings 10.1.1.0 24 # 指定前缀的标签绑定
show mpls forwarding-table 10.1.1.0 24 # 实际转发项:入标签与出标签两段式建立过程
| 阶段 | 承载 | 失败时的表现 |
|---|---|---|
| 邻居发现 | UDP 646 与组播 hello | discovery 里看不到对端标识 |
| 会话建立 | TCP 646,用传输地址 | 发现正常但 neighbor 状态非 Oper |
| 标签交换 | 会话内交换 label mapping | 会话正常但 bindings 缺少目标前缀 |
| 转发生效 | 生成转发项 | 有绑定但转发项缺失 |
hello 通但会话不通,问题通常在 TCP 或传输地址(通常是 loopback)的可达性,而不是发现机制本身。
检查顺序:discovery 看发现、neighbor 看会话、bindings 看绑定、forwarding-table 看转发,四步能快速定位卡在哪一层。
端口与地址速查
| 项目 | 取值 | 说明 |
|---|---|---|
| 发现报文 | UDP 646 | 链路 hello 定期发送 |
| 组播地址 | 224.0.0.2 | 本地链路范围内发现邻居 |
| 会话报文 | TCP 646 | 可靠传输标签映射 |
| 传输地址 | 通常为 loopback | 两端的会话标识来源 |
标签分配是按前缀进行的:只有存在于 IGP 路由表中的前缀才会生成对应绑定,这也解释了为什么标签问题常要先回到路由表去查。
标签值本身由设备本地分配,两端数值不同是正常的:转发时本机发出的是邻居通告的标签,核对时看的是「入标签到出标签的映射」而不是两侧数值是否相等。