MPLS 协议深度解析
MPLS 协议深度解析
从标签结构、转发原理到 VPN 部署和 Traffic Engineering,系统性理解 Multi-Protocol Label Switching 的每一个核心机制。
1. 什么是 MPLS
MPLS(Multi-Protocol Label Switching,多协议标签交换)是一种运行在 OSI 第 2 层与第 3 层之间 的数据转发技术。它使用 定长的短标签(Label)替代传统的 IP 最长前缀匹配(Longest Prefix Match)来做出转发决策,从而大幅提升转发效率与灵活性。
1.1 为什么需要 MPLS?
传统 IP 转发存在几个核心痛点:
| 痛点 | 说明 |
|---|---|
| 逐跳最长前缀匹配 — 慢 | 每一跳路由器都需要对 IP 目的地址进行最长前缀匹配(查 FIB),在大路由表场景下耗时高。而标签匹配是精确匹配 O(1) 查表,速度极快。 |
| IP 转发只看目的地址 — 僵硬 | IP 路由只能根据目的地址选择路径,无法实现基于流量工程的灵活路径调度。MPLS 可以在入口处就确定整条 LSP(显式路径)。 |
| VPN 隔离 — 难 | 纯 IP 网络难以在共享骨干上为不同客户提供独立的地址空间和路由隔离。MPLS 的标签栈天然提供了 VPN 的隧道隔离能力。 |
1.2 MPLS 在协议栈中的位置
1 | 传统 IP 转发: |
MPLS 不替换 IP 协议,而是在以太网帧头(L2)和 IP 头(L3)之间 插入一个 4 字节的标签头。MPLS 的”多协议”特性意味着它不仅可承载 IP,还能承载 ATM、帧中继等任何三层协议。
帧类型标识: 以太网帧中,MPLS 的 EtherType 为
0x8847(单播)和0x8848(组播)。
2. Label(标签)结构详解
2.1 32-bit MPLS 标签头
每个 MPLS 标签固定为32 位(4 字节),由以下四个字段组成:
1 | MPLS Label Header · 32 bits |
各字段含义:
| 字段 | 长度 | 含义 | 取值范围 |
|---|---|---|---|
| Label | 20 bit | 标签值,是转发的唯一标识。LSR 根据此值查 LFIB 进行转发 | 0 – 1,048,575 |
| TC (Traffic Class) | 3 bit | 原名 EXP。用于 QoS 优先级映射,类似 IP DSCP | 0 – 7 |
| S (Bottom of Stack) | 1 bit | 栈底标志。S=1 表示此标签是标签栈的 最底层(下一个头就是 IP 或其他 L3 PDU) |
0 或 1 |
| TTL | 8 bit | 生存时间,机制与 IP TTL 完全相同,逐跳递减,防环 | 0 – 255 |
2.2 需要牢记的保留标签
| 标签值 | 名称 | 用途 |
|---|---|---|
| 0 | IPv4 Explicit NULL | 告诉出站 LER 不要再查 IP,直接弹出标签后按照 QoS 字段处理 |
| 1 | Router Alert | 类似 IP Router Alert,要求每跳 LSR 都”看一下”再转发 |
| 2 | IPv6 Explicit NULL | 同 Label 0,但用于 IPv6 |
| 3 | Implicit NULL | 由 PHP(倒数第二跳弹出)使用。出站 LER 向上游通告此标签,上游会在倒数第二跳弹出整个标签 |
| 4–15 | 保留 | IETF 保留,不可用于常规分配 |
| 16–1023 | 静态分配范围 | 通常保留给静态 LSP |
| 1024–1048575 | 动态分配范围 | LDP/RSVP-TE 动态分配使用 |
2.3 标签栈(Label Stack)
MPLS 允许在同一个包中 嵌套多个标签,形成一个”栈”。位于栈顶的标签决定当前的转发行为。只有最底部的标签的 S 位才为 1。
1 | 标签栈结构 · 可以嵌套 N 层 |
工作中的关键点: 在运营商 L3VPN 环境中,你会始终看到两层标签 — 外层(Transport Label)用于穿越骨干网到达远端 PE,内层(VPN Label)用于在远端 PE 上区分不同的 VPN 实例(VRF)。
L2VPN 用 1 层标签 / L3VPN 用 2 层标签(Transport + VPN)
3. 核心概念
3.1 LSR、LER 与 LSP
1 | MPLS 网络拓扑 · 核心角色 |
| 角色 | 全称 | 功能 |
|---|---|---|
| LSR | Label Switch Router | 任何支持 MPLS 的路由器。能够根据标签转发数据包。 |
| LER | Label Edge Router | 位于 MPLS 域边界的 LSR。Ingress LER 负责给 IP 包压入(Push)标签;Egress LER 负责弹出(Pop)标签恢复 IP 包。 |
| LSP | Label Switched Path | 从 Ingress LER 到 Egress LER 的一条 单向 标签交换路径。数据包沿着 LSP 逐跳标签交换转发。 |
| P Router | Provider Router | MPLS 骨干网内部的 纯转发 路由器,只做标签交换,不连接任何客户。 |
| PE Router | Provider Edge Router | 连接客户的边界路由器。负责 VPN 路由学习、标签压入/弹出、VRF 管理。 |
| CE Router | Customer Edge Router | 客户侧路由器,与 PE 交互路由协议(如 BGP/OSPF/静态),不需要感知 MPLS。 |
3.2 FEC(Forwarding Equivalence Class)转发等价类
FEC 是 MPLS 中最核心的概念之一:一组以相同方式被转发的 IP 分组 共享同一个 FEC。
在实际网络中,一个 FEC 通常对应以下之一:
- 一个 IP 目的前缀(如
10.1.1.0/24)— 最常见的分类方式 - 一个 VPN 路由(RD + 前缀)
- 一条 RSVP-TE 隧道的所有流量
- 特定的源-目的地址对(用于流量工程)
⚠️ 理解要点: FEC 只在 Ingress LER 上被确定。一旦分类完成、分配了标签,中间 LSR 只看标签转发,不再关心 IP 头。这是 MPLS 与传统 IP 转发的根本区别。
3.3 LFIB(Label Forwarding Information Base)
LFIB 是 LSR 上的标签转发表,其核心表项格式为:
1 | LFIB 表项结构: |
对比 IP FIB: IP FIB 做最长前缀匹配 → 多次比较;LFIB 用 In-Label 做 精确匹配 → 一次查表 → 硬件友好,转发性能极高。
4. 标签转发流程
4.1 三种标签操作
| 操作 | 执行位置 | 说明 |
|---|---|---|
| Push(压入) | Ingress LER | 在 IP 包前插入一个或多个 MPLS 标签。根据 FEC 分类结果选择标签值。 |
| Swap(交换) | 中间 LSR(P Router) | 用新的标签替换栈顶标签。每跳都进行:查 In-Label → 替换为 Out-Label。 |
| Pop(弹出) | Egress LER(或 PHP) | 移除栈顶标签。若还有内层标签,继续按栈顶标签转发。 |
| Swap + Push | ASBR / Inter-AS | 先弹出外层标签,再压入新的标签栈。跨域 MPLS VPN 场景。 |
1 | Push: Swap: Pop: |
4.2 PHP(Penultimate Hop Popping)倒数第二跳弹出
PHP 是 MPLS 的一项重要优化。核心思想:不要让 Egress LER 做两次查找(先查标签表弹出标签,再查 IP FIB 转发 IP 包)。
PHP 工作机制:
Egress LER 通告 Implicit NULL(Label 3) Egress LER 通过 LDP 向上游邻居通告:针对某 FEC,我的标签是
Implicit NULL (3)。倒数第二跳 LSR 收到后理解含义 上游(倒数第二跳)LSR 看到 Label 3,知道 Egress LER 不需要标签了。因此在转发数据时,直接弹出整个 MPLS 标签(而不是用 3 替换),将裸 IP 包发给 Egress LER。
Egress LER 直接查 IP FIB Egress LER 收到的是纯 IP 包,直接查 IP FIB 转发,省去了一次标签查表。
1 | 倒数第二跳 P-2 Egress PE-2 |
⚠️ 实际场景注意: 如果你需要在 Egress LER 上根据 MPLS TC/EXP 字段做 QoS 处理,则不应使用 PHP,而应使用 Explicit NULL(Label 0)。Explicit NULL 会保留标签头到达 Egress LER,这样 Egress LER 可以读取 TC 位再弹出标签。
4.3 完整转发流程示例
假设 PC-A(10.1.1.10)发送 IP 包到 PC-B(10.2.2.20),穿越一个 MPLS 网络:
1 | 完整 MPLS 转发流程 · Push → Swap → Swap → Pop |
逐步说明:
| 步骤 | 设备 | 操作 | 标签状态 |
|---|---|---|---|
| ① | PC-A → PE-1 | PC-A 发送普通 IP 包(Dst: 10.2.2.20) | 无标签 |
| ② | PE-1(Ingress LER) | 查 VRF-A 路由表,匹配 MP-BGP 学来的路由。Push 两层标签:外层 L:100(Transport,LDP 分配)+ 内层 L:500(VPN Label,MP-BGP 分配) | [L:100][L:500][IP] |
| ③ | P-1(Core LSR) | 查 LFIB:In-Label=100 → Swap 为 Out-Label=200 | [L:200][L:500][IP] |
| ④ | P-2(倒数第二跳) | 查 LFIB:In-Label=200 → Pop(PHP,Implicit NULL) | [L:500][IP] |
| ⑤ | PE-2(Egress LER) | 查 LFIB:In-Label=500 → Pop VPN Label,查 VRF-A 出接口转发 | [IP] |
| ⑥ | PE-2 → PC-B | 普通 IP 包送达终端 | 无标签 |
5. 标签分发协议
MPLS 本身 不定义路由协议,它依赖标签分发协议来在 LSR 之间建立标签映射关系。主要有以下三种:
5.1 LDP(Label Distribution Protocol)
RFC 5036 定义,部署最广泛的标签分发协议。
核心特点:
- 基于 IGP 最短路径 自动建立 LSP
- 为路由表中每个 IGP 前缀分配并分发标签
- 逐跳 LSP,路径与 IGP 路径一致
- 无带宽预留、无显式路径能力
- 部署最广泛,配置简单
- 使用 UDP 646(发现)和 TCP 646(会话)
LDP 工作机制:
1 | Step 1: 邻居发现 Step 2: 会话建立 |
LDP 的下游自主模式(Downstream Unsolicited): 默认模式下,LSR 不需要收到上游请求 就主动向所有 LDP 邻居通告标签映射。这种方式建立 LSP 速度快,但会占用更多内存。另一种模式是 Downstream on Demand,只有上游请求时才分配和通告标签。
5.2 RSVP-TE(Resource Reservation Protocol - TE)
RFC 3209 定义,用于流量工程的标签分发协议。
核心特点:
- 支持 显式路径(Explicit Route)
- 支持 带宽预留 和约束路由
- 可实现流量工程(TE)
- 使用 CSPF 算法计算满足约束的路径
- 通过 PATH / RESV 消息建立 LSP
- 配置复杂,扩展性较差(每条 LSP 都要维护状态)
RSVP-TE LSP 建立流程:
1 | Head-End Transit Transit Tail-End |
RSVP-TE 关键对象:
- ERO(Explicit Route Object): 指定 LSP 经过的严格/松散节点列表
- RRO(Record Route Object): 记录 LSP 实际经过的路径,用于环路检测
- SESSION_ATTRIBUTE: 包含 LSP 优先级、抢占策略、FRR 需求等
5.3 Segment Routing(SR)
Segment Routing 是 MPLS 的下一代演进,不再需要 LDP/RSVP-TE 协议分发标签,而是直接利用 IGP(IS-IS/OSPF)的扩展来通告 Segment ID(SID)。
SR 的核心优势:
- 无状态转发: 中间节点不需要维护 LSP 状态,只需按 SID 转发
- 简化协议栈: 不再需要 LDP,IGP 本身就承载了标签信息
- 灵活路径编程: 通过在报文头塞入有序的 SID 列表,实现任意路径
- SR-MPLS: SID 直接复用 MPLS 标签空间(20-bit Label 作为 SID)
- SRv6: 使用 IPv6 扩展头(Segment Routing Header)实现,完全脱离 MPLS
三种协议对比:
| 对比维度 | LDP | RSVP-TE | SR (SR-MPLS) |
|---|---|---|---|
| 标签分发方式 | 独立协议 LDP | RSVP-TE 信令 | IGP 扩展(无独立协议) |
| 路径控制 | 仅 IGP 最短路径 | 显式路径 + 约束路由 | SID 列表编程任意路径 |
| 带宽预留 | 不支持 | 支持 | 需配合 SR-TE / PCE |
| 状态维护 | 每前缀每邻居 | 每条 LSP 每跳 | 中间节点 无状态 |
| 扩展性 | 中等 | 差 | 优秀 |
| 成熟度 | 成熟 | 成熟 | 快速发展中 |
6. MPLS L3VPN(BGP/MPLS IP VPN)
MPLS L3VPN 是 MPLS 最广泛的应用场景,RFC 4364 定义。它让运营商在同一张物理骨干网上为不同企业客户提供 完全隔离 的虚拟专用网络。
6.1 架构与组件
1 | MPLS L3VPN 架构 |
6.2 RD 与 RT 的区别
这是面试和实战的高频考点:
| 维度 | RD (Route Distinguisher) | RT (Route Target) |
|---|---|---|
| 作用 | 解决不同 VPN 客户地址空间重叠问题 | 控制 VPN 路由的 导入和导出 |
| 格式 | 8 字节,如 100:1 |
也是 8 字节,如 100:1(但概念不同) |
| 用法 | 在 BGP 更新中,把 32-bit IPv4 前缀 + 64-bit RD 组合成 96-bit VPNv4 地址 | Export RT:VRF 导出路由时附加的 RT 属性;Import RT:VRF 收到路由时,检查 RT 是否匹配 |
| 数量 | 每 VRF 一个 RD | 一个 VRF 可以有多个 Import/Export RT |
| 影响范围 | 只用于 路由区分,不做路由导入/导出决策 | 决定路由在 VRF 之间的 可达性 |
RD 如何解决地址重叠:
1 | VPN_A 的路由: 10.1.0.0/16 + RD:100:1 → VPNv4: 100:1:10.1.0.0/16 |
RT 如何控制路由导入:
1 | VRF-A Export RT = 100:1 → 导出的路由携带 RT:100:1 |
⚠️ 实战经验: 在绝大多数简单场景中,RD 和 RT 的值设成一样的(如
100:1)就足够了。但在 Hub-Spoke 拓扑或 Extranet 场景中,RD 和 RT 必须分开设计。例如 Hub 站点的 Export RT 是 Spoke 的 Import RT,反之则不同。
6.3 L3VPN 数据转发流程
以 CE-A1 发送 IP 包到 CE-A2 为例:
1 | ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐ |
逐步说明:
| 步骤 | 设备 | 操作 |
|---|---|---|
| ① | CE-A1 → PE-1 | CE-A1 发送 IP 包(目的地址 10.2.0.0/16),通过 IGP/静态路由/EBGP 到达 PE-1。 |
| ② | PE-1 | 查 VRF-A 路由表查找目的前缀。该路由来自 PE-2 通过 MP-BGP 通告的 VPNv4 路由,携带了 PE-2 分配的 VPN Label(如 500)。压入两层标签:外层 L:100(Transport,LDP)+ 内层 L:500(VPN)。 |
| ③ | P Router | 只看外层标签 L:100,Swap 为下一跳标签。对内层 VPN Label 完全不感知。 |
| ④ | PE-2 的上游 LSR | 倒数第二跳 PHP:弹出外层 Transport Label,将只含 VPN Label 的包发给 PE-2。 |
| ⑤ | PE-2 | 收到 L:500,查 LFIB 发现 L:500 对应 VRF-A 的出接口,弹出 VPN Label,将裸 IP 包转发给 CE-A2。 |
标签栈在每一跳的变化:
1 | CE-A1 → PE-1: [Eth] [IP:Dst=10.2.2.20] [Payload] |
7. MPLS L2VPN 基础
MPLS L2VPN(二层虚拟专用网络)是基于 MPLS 隧道的二层透明传输技术,核心特点是运营商网络不感知客户三层路由,仅负责转发二层帧,客户可自主规划 IP 地址、运行内部路由协议。主流标准为 RFC 4448(Martini 方式),也就是我们常说的 VPLS / PW。
7.1 MPLS L2VPN
MPLS L2VPN 在 MPLS 骨干上为客户透传二层帧,客户两端如同直连在同一二层网络中。主要有以下几种实现方式:
| 技术 | 信令 | 拓扑 | 特点 |
|---|---|---|---|
| VPWS | LDP / BGP | 点到点 | 即 Kompella / Martini 方案,点对点伪线透传。常用于 E-Line 业务 |
| VPLS | LDP / BGP | Full-Mesh Virtual Switch | 多点到多点,PE 之间建立 Full-Mesh 伪线(Pseudowire),模拟交换机 |
| EVPN | BGP | 灵活 | 下一代 L2VPN,使用 BGP EVPN 地址族分发 MAC/IP 绑定,解决传统 VPLS 的泛洪问题 |
L2VPN vs L3VPN 的标签使用:
- L3VPN: 两层标签 — Transport Label(穿越骨干)+ VPN Label(区分 VRF)
- L2VPN(VPWS/VPLS): 两层标签 — Transport Label + VC Label(Pseudowire 标签,区分不同的虚拟电路)
外层标签机制完全相同,差异在于内层标签的语义。
L2VPN 与 L3VPN 核心区别:
| 对比维度 | MPLS L2VPN | MPLS L3VPN |
|---|---|---|
| 转发层级 | 二层帧透明传输 | 三层 IP 路由转发 |
| 路由参与 | PE 不学习客户路由,全程透明 | PE 维护 VRF 路由,与 CE 交互路由 |
| 标签层数 | 单层标签(Transport 标签) | 双层标签(Transport + VPN 标签) |
| 地址规划 | 客户两端可私有地址、可重叠 | 依靠 RD/RT 解决地址重叠 |
| 适用场景 | 跨站点二层互通、专线替代、传统局域网延伸 | 多站点三层互联、企业分支组网 |
7.2 PW(伪线)与 VPLS
PW(Pseudo-Wire,伪线)是 L2VPN 的核心载体,通过 MPLS 隧道在两个 PE 之间建立一条虚拟的二层专线,点对点透明传输以太网、PPP、HDLC 等二层帧。
VPLS(Virtual Private LAN Service,虚拟专用局域网业务)属于多点二层 VPN,可将企业多个远程站点虚拟化为一个统一局域网,支持多站点二层互通,具备 MAC 地址学习、转发、老化能力,实现类似交换机的局域网功能。
核心总结: L2VPN 核心价值是二层透明、三层自治,适合需要保留自有网络架构、自主运行路由协议的企业;L3VPN 核心价值是运营商代维路由、多租户隔离,适合轻量化分支组网场景。
Pseudowire(伪线)概念:
1 | CE-A CE-B |
8. QoS 与 Traffic Engineering
传统 LDP 基于 IGP 最短路径建立 LSP,容易导致最短路径拥堵、次优路径空闲,无法适配大带宽、低时延、负载均衡的组网需求。MPLS TE(Traffic Engineering,流量工程)通过 RSVP-TE 协议实现流量的人工调度、带宽预留、路径约束,解决网络流量不均问题。
8.1 MPLS QoS(TC / EXP 位)
MPLS 标签中的 TC(Traffic Class) 字段(原名 EXP,3 bit)用于 QoS 处理,范围 0–7,类似 IP 的 DSCP/ToS。
两种 QoS 映射模式:
| 模式 | 说明 | 适用场景 |
|---|---|---|
| Uniform Mode | IP DSCP 与 MPLS TC 及外层 MPLS TC 保持一致映射。当 IP 包进入 MPLS 域时,DSCP → TC;当标签交换时,内层 TC → 外层 TC。整个域内 QoS 行为一致。 | 运营商和客户共用同一 QoS 策略 |
| Pipe Mode | MPLS TC 由运营商独立设置,与客户 IP DSCP 无关。PE 处理客户 IP 包时使用客户的 DSCP,MPLS 域内使用运营商自己的 TC 值。 | 运营商独立管理骨干网 QoS |
8.2 MPLS Traffic Engineering (TE)
TE 允许运营商精确控制流量在网络中的路径,突破 IGP 最短路径的限制。
1 | Traffic Engineering 概念图: |
TE 的关键技术组件:
| 组件 | 说明 |
|---|---|
| IGP 扩展(OSPF-TE / IS-IS TE) | 在 IGP LSA 中通告链路的可用带宽、TE Metric、管理组(Affinity)等属性 |
| CSPF(Constrained Shortest Path First) | 在满足带宽和策略约束的前提下计算最短路径 |
| RSVP-TE 信令 | 沿 CSPF 计算的路径建立 LSP 并预留带宽 |
| FRR(Fast Reroute) | 预先计算备份路径,主路径故障时在 50ms 内切换 |
TE 核心价值:
- 负载均衡:将流量从拥堵的最短路径疏导至空闲链路,提升全网带宽利用率
- 带宽保证:通过 RSVP 带宽预留机制,为关键业务固定分配带宽,保障业务稳定性
- 路径定制:支持显式指定转发路径,规避时延高、抖动大、不安全的链路
- 故障快速切换:配合 FRR 实现毫秒级链路/节点故障切换,远快于 IGP 收敛
CSPF 约束最短路径算法:
TE 不使用传统 IGP SPF 算法,而是采用CSPF(Constraint Shortest Path First,约束最短路径优先)。CSPF 在计算路径时,不仅参考链路开销,还会校验带宽、最大跳数、链路颜色、时延等约束条件,筛选出符合业务需求的最优路径。
CSPF 计算逻辑:1. 过滤不满足约束的链路;2. 在剩余合法链路中,按照 IGP 开销计算最短路径;3. 生成 ERO 显式路径,用于 RSVP-TE 建立 LSP。
8.3 MPLS FRR 快速重路由
MPLS FRR(Fast Reroute)是 MPLS 体系的核心容错技术,可实现50ms 级故障切换,解决 IGP 收敛速度慢导致的业务丢包、中断问题,是运营商骨干网高可用的核心保障。
FRR 两种模式:
| 模式 | 全称 | 说明 |
|---|---|---|
| Facility Backup | NHOP / NNHOP Backup | 一个备份隧道保护多条主 LSP,扩展性好,最常用 |
| One-to-One Backup | Detour | 每条主 LSP 单独建立备份路径,资源消耗大 |
FRR 工作原理:
核心思想:预先备份、故障秒切。网络正常时,Ingress LER 提前为主 LSP 计算并建立备份 LSP,主链路/节点正常时流量走主路径;当主路径出现故障(链路 down、节点宕机),设备无需等待 IGP 收敛,直接将流量瞬间切换至备份路径,实现无感知切换。
主流 FRR 类型:
- 链路保护:针对主 LSP 单条链路故障,备份路径规避故障链路,保护范围小、资源占用低
- 节点保护:针对主 LSP 中间节点故障,备份路径规避故障节点,保护范围更广、可靠性更高
- TE FRR:基于 RSVP-TE 隧道实现,支持带宽预留、路径约束,适用于关键业务专线
- LDP FRR:基于 LDP 动态 LSP 实现,配置简单、部署广泛,适用于普通骨干网场景
关键指标: MPLS FRR 切换时延 ≤50ms,符合语音、视频、金融交易等实时业务的中断容忍标准,是骨干网高可用的核心技术。
9. 实战配置示例
9.1 Huawei VRP 配置
1 | # ═══════════════════════════════════════ |
9.2 Cisco IOS-XR 配置
1 | ! ═══════════════════════════════════════ |
9.3 实际部署检查清单
- 确保 IGP(OSPF/IS-IS)在骨干网内先收敛,Loopback 可达
- LDP 邻居必须在所有 P 和 PE 之间建立
- MP-BGP 邻居使用 Loopback 地址 建立,确保 LSP 到达对端 Loopback
- VRF 的 RT Import/Export 必须匹配,否则路由不会交叉导入
- PE-CE 之间使用 不同的 AS 号(EBGP)或配置 as-override / allowas-in
- PE 上务必检查
display mpls lsp或show mpls forwarding确认 LSP 完整
10. MPLS 常见故障与排查思路
MPLS 排障的核心思路:自下而上,逐层验证。
10.1 典型故障场景
- LDP 邻居无法建立:常见原因:UDP/TCP 646 端口放通异常、IGP 路由不通、LDP 全局/接口未使能、邻居 Hello 报文超时
- LSP 无法建立:常见原因:IGP 路由缺失、标签分配失败、下游未通告标签、接口 MPLS 未开启
- L3VPN 站点不通:常见原因:RD/RT 配置不匹配、VRF 绑定错误、MP-BGP 邻居异常、内层 VPN 标签分发失败
- PHP 导致 QoS 失效:常见原因:启用隐式空标签后,报文无 MPLS 头,无法读取 TC 优先级,关键业务 QoS 调度失效
- TE 隧道 UP 但无流量:常见原因:未配置静态路由/策略引流、CSPF 路径计算失败、ERO 路径配置错误
10.2 核心排查命令(通用)
1 | # 查看 LDP 邻居状态 |
10.3排障五步法
Step 1: IGP 收敛检查
确认所有 PE 的 Loopback 地址在骨干网中互相可达。
1 | # Huawei |
Step 2: LDP 邻居检查
确认 LDP Session 状态为 Operational。
1 | # Huawei |
Step 3: LSP 完整性检查
确认 Ingress → Egress 的 LSP 完整,没有断裂。
1 | # 查看完整 LSP |
Step 4: MP-BGP 邻居与 VPN 路由检查
1 | # 检查 VPNv4 邻居状态 |
Step 5: LFIB / Label 检查
1 | # 查看特定 FEC 的标签 |
10.4 常见故障原因 Top 5
| 排名 | 故障原因 | 表现 | 排查方法 |
|---|---|---|---|
| 1 | LDP 未在接口启用 | 某一跳的接口忘开 MPLS/LDP,导致 LSP 断裂 | display mpls ldp session 查看邻居状态 |
| 2 | RT Import/Export 不匹配 | VPN 路由无法交叉导入,PE 上看不到对方的 VPN 路由 | display bgp vpnv4 vpn-instance X routing-table |
| 3 | MP-BGP 使用物理口而非 Loopback | 邻居能建但 VPN 路由下一跳不可达 | 检查 peer X.X.X.X connect-interface |
| 4 | TTL 问题 | LSP Ping 通但业务不通,可能是 MPLS TTL 或 IP TTL 过期 | ping lsp 和普通 ping 对比 |
| 5 | PHP 配置与 QoS 冲突 | 使用 Implicit NULL 导致 Egress 看不到 TC 位 | 检查 LDP 的 label advertise explicit-null 配置 |
10.5 常用排障命令速查表
| 场景 | Huawei 命令 | Cisco IOS-XR 命令 |
|---|---|---|
| 查看 LDP 邻居 | display mpls ldp session |
show mpls ldp neighbor |
| 查看 LSP 表 | display mpls lsp |
show mpls forwarding |
| 查看 LFIB | display mpls lsp verbose |
show mpls forwarding detail |
| LSP Ping | ping lsp -v ip X.X.X.X 32 |
ping mpls ipv4 X.X.X.X/32 |
| LSP Traceroute | tracert lsp -v ip X.X.X.X 32 |
traceroute mpls ipv4 X.X.X.X/32 |
| 查看 VPNv4 邻居 | display bgp vpnv4 all peer |
show bgp vpnv4 unicast summary |
| 查看 VPN 路由 | display bgp vpnv4 vpn-instance X |
show bgp vpnv4 unicast vrf X |
| 查看 VRF 路由表 | display ip routing-table vpn-instance X |
show route vrf X |
11. MPLS 整体总结与技术演进
11.1 核心技术复盘
MPLS 作为 2.5 层转发技术,核心颠覆了传统 IP 逐跳最长前缀匹配的转发模式,通过标签精确匹配转发实现高性能数据传输;依靠标签栈嵌套实现多租户 VPN 隔离;依托TE、FRR实现流量灵活调度与高可用,是当前运营商骨干网、企业专线组网的基石技术。
三大核心协议适配不同场景:LDP 适配通用极简组网、RSVP-TE 适配流量工程与高可靠组网、SR-MPLS 适配未来简化、可扩展的智能组网。
11.2 技术演进趋势
传统 MPLS 存在协议栈复杂、节点状态维护压力大、扩展性有限的问题,目前行业正向 SR-MPLS 全面演进:摒弃 LDP/RSVP 复杂信令,基于 IGP 扩展分发 SID 标签,实现无状态转发、路径可编程、极简运维,完美适配 5G、云专网、大带宽低时延新型业务场景,是当下运营商网络改造的核心方向。
11.3 核心应用场景汇总
- 企业专线组网:L3VPN 实现多分支三层互联,L2VPN 实现局域网跨地域延伸
- 运营商骨干网:MPLS TE+FRR 保障骨干网流量均衡、高可靠传输
- 云数据中心互联(DCI):SR-MPLS 实现跨数据中心灵活流量调度、低时延传输
- 5G 承载网:基于 MPLS/SR-MPLS 实现 5G 基站、核心网的高可靠、低时延承载
