hello,我是网工小陈。
在第一次接触 MPLS VPN 的同学眼里,抓个包会看到这样的画面:
原本的 IP 数据包外面套了一个 MPLS 标签 有时候不是一个,而是两个甚至三个标签 标签的值还会变来变去
于是问题来了:
★“为什么要多加一个标签?”
“这些标签是谁加的、在哪加的?”
“解的时候是按什么顺序剥的?”
如果你把 MPLS VPN 想成一辆快递车运送包裹,标签就是快递单,但为了送到最终目的地,中途可能会贴上中转标签、区域标签,甚至不同快递公司之间还会再套一层外包装——这就是“套娃”的由来。
接下来,我们按从外到内、从入口到出口的顺序,把 MPLS VPN 标签的“套娃”过程讲清楚。
文章目录
1. MPLS VPN 的基本结构
一个典型的 MPLS VPN 网络中,有四类设备角色:
CE(Customer Edge)
客户侧的边缘路由器,不跑 MPLS
PE(Provider Edge)
运营商边缘路由器,负责接入 VPN 客户,跑 MPLS
P(Provider)
运营商核心路由器,只跑 MPLS,不接客户
CE-PE、PE-P、P-P
分别对应不同连接场景
MPLS VPN 最常用的是L3VPN(基于 BGP 的 MPLS VPN),核心在于:
VPNv4 路由:用 RD + IPv4 地址区分不同客户 标签转发:用两层 MPLS 标签完成从 CE 到 CE 的跨网段通信
2. “套娃”中的两个主要标签
在 MPLS VPN L3VPN 场景中,一般会看到两层标签:
外层标签(LDP/RSVP 标签)
由 LDP(或 RSVP-TE)分发,用于在 MPLS 核心中找到目标 PE 就像快递的“中转单号”,让包裹先到对的仓库(目标 PE)
内层标签(VPN 标签)
由 MP-BGP 分发,用于在目标 PE 上找到正确的 VPN 实例(VRF) 就像快递到仓库后,内部的“客户收货单号”,保证投递给正确客户的 CE
顺序:
外层标签在最外面,先被 P 路由器剥掉 内层标签在里面,最终被 PE 路由器剥掉
3. 数据流转过程:从源 CE 到目的 CE
步骤 1:CE 发包给 PE
CE 不知道 MPLS 的存在,它把数据发到 PE PE 查 VRF 路由表,决定下一跳是哪个 PE
步骤 2:PE 给包“套娃”
PE 查询 BGP 路由条目,找到目标 VPN 标签(内层) PE 再查询 LDP/RSVP,找到目标 PE 的 LSP 标签(外层) 把这两个标签依次压到 IP 包头前:外层标签在前,内层标签在后
步骤 3:核心 P 路由器转发
P 路由器只看外层标签,用 LFIB 查表,换上新的外层标签(标签交换) 内层标签保持不变,直到到达目标 PE
步骤 4:目标 PE 解外层标签
当外层标签的S(Bottom of Stack)标志为 0 时,说明还有内层标签 PE 剥掉外层标签,继续根据内层标签查找 VRF 找到对应 CE 的出接口,把数据发过去
4. 多标签的特殊场景
有时候你会抓到三层标签,比如:
LDP 外层标签 VPN 内层标签 流量工程(RSVP-TE)标签或FRR(Fast Reroute)标签
甚至在MPLS over MPLS或多段 LSP 拼接场景下,会出现更多层标签,但剥离顺序始终是从外到内。
5. 抓包分析 MPLS VPN 标签
在运维中,我们经常会用Wireshark或设备自带的display mpls forwarding-table
/show mpls forwarding-table
来定位问题。
抓包注意点:
外层标签值变化
由于 P 路由器做标签交换,每经过一个 P 节点外层标签都会变
如果外层标签完全没变,可能是 Penultimate Hop Popping(PHP,倒数第二跳剥标签)
内层标签值稳定
内层 VPN 标签在核心中不变
如果变了,说明标签分发出现了错配,可能是 BGP/MPLS VPN 会话问题
S(Bottom of Stack)位
S=0 → 还有更多标签
S=1 → 这是最内层标签(VPN 标签)
标签剥离点
最终的 PE 会剥掉 VPN 标签
倒数第二个 P 可能提前剥掉外层标签(PHP 场景)
6. 运维中容易踩的坑
标签分发协议不一致
核心设备有的用 LDP,有的用 RSVP,导致 LSP 不通
VPN 标签丢失
MP-BGP 会话没建立或路由过滤导致没有下发 VPN 标签
MTU 不够
MPLS 标签会占用 4 字节,如果链路 MTU 配得太小,会出现丢包
Penultimate Hop Popping 带来的混淆
有时抓包看不到外层标签,其实是倒数第二跳剥掉了,不是 MPLS 没工作
多段 LSP 拼接误判
在跨 AS MPLS VPN(Inter-AS)场景下,标签会在边界重新分配
7. 总结
MPLS VPN 标签“套娃”并不是为了复杂化网络,而是为了兼顾全网可扩展性与多租户隔离:
外层标签让数据包在 MPLS 核心中找到目标 PE 内层标签确保数据进入正确的 VPN 实例 “套娃”式结构让 P 路由器无需理解客户网络,只专注标签转发,减少了核心的路由负担
一句话记住:
★外层找人,内层找家,先送到门口,再送进房间。
理解了标签的加剥逻辑,再结合抓包工具和设备命令,你就能快速定位 MPLS VPN 中的大多数转发问题,不会再被多层标签吓到。

发表回复