首页/网络/BGP 与广域网速查/L3VPN 数据面:两层标签的转发过程
MPLS 与专线70 条

L3VPN 数据面:两层标签的转发过程

入口 PE 查 VRF 路由后压入内层(VPN 标签)与外层(隧道)标签;P 设备只换外层,出口 PE 弹外层后按内层确定 VRF 并转出。

BGP 与广域网速查网络更新于 2026-10-13

两层标签怎么走

L3VPN 的数据面靠两层标签完成:入口 PE 查 VRF 路由后压入内层 VPN 标签与外层隧道标签,中间的 P 设备只换外层标签,出口 PE 弹掉外层、按内层标签确定属于哪个 VRF,再转发给 CE。理解这条链路,就能把「路由有了但业务不通」拆成可验证的几步。

基本信息

入口 PEVRF 内查表,压入内层 VPN 标签 + 外层隧道标签
P 设备只处理外层标签,不感知 VPN 语义
出口 PE弹外层,按内层标签定位 VRF 后转发给 CE
标签顺序由外向内依次为隧道标签与 VPN 标签
PHP 行为倒数第二跳可能弹掉外层标签,出口 PE 只收到 VPN 标签,属正常

典型使用场景

  • 业务不通时定位在哪一段:区分 VRF 路由、标签分发与转发表三类问题
  • 割接后验证转发面:确认入口压标签、出口弹标签都符合预期
  • P 设备无标签转发:核对是否启用了标签分发与接口 MPLS
  • 抓包确认封装:在 PE 与 P 之间观察两层标签是否存在
  • 评审新客户方案:说明各设备承担的转发职责,便于分工排障

逐跳核查

逐跳核查
# 入口 PE:VRF 内是否有路由
show ip route vrf CUST-A 10.10.1.0
# 入口 PE:转发面标签行为(入标签/出标签/下一跳)
show mpls forwarding-table | include 10.10.1.0
# 分配出去的 VPN 标签
show ip bgp vpnv4 all labels
# P 设备:只应看到隧道标签的交换行为
show mpls forwarding-table | include 3.3.3.3

转发面逐项读法

检查点含义正常与异常
VRF 路由入口 PE 是否知道目的网段存在且下一跳正确;缺失则先查 PE-CE 引入
内层标签VPN 标签是否分配存在且与对端协商一致;缺失则出口 PE 无法定位 VRF
外层标签隧道标签是否可达下一跳与出接口正确;异常时 P 设备转发中断
出口行为弹标签与 VRF 归属弹出后按 VRF 转发给 CE;错进其他 VRF 说明标签或 RT 规划有问题
抓包可见两层 MPLS 标签,P 设备只认外层。因此 VPN 语义相关的问题(串台、走错实例)几乎都落在 PE 侧,把排查范围先收窄到两端 PE 效率最高。

易错点

  • 把 P 设备当主要故障点:P 不感知 VPN 语义,VPN 问题应优先查两端 PE
  • 只看外层标签:内层标签异常时出口 PE 无法定位 VRF,表现为标签在但业务不通
  • 把 PHP 当异常:出口 PE 只看到一层标签是倒数第二跳弹标签的正常结果
  • 忽略回程方向:去程封装正确不代表回程可用,两个方向要分别核查

数据来源与参考

  • RFC 4364: L3VPN 封装
  • RFC 3032: 标签栈
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌