首页/网络/BGP 与广域网速查/PHP 与 implicit-null:倒数第二跳弹标签
MPLS 与专线70 条

PHP 与 implicit-null:倒数第二跳弹标签

PHP(Penultimate Hop Popping):出口的前一跳直接弹出标签,出口路由器只做 IP 查表;依赖出口通过 LDP 通告 implicit-null(标签 3)实现。

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

PHP 是什么

PHP(Penultimate Hop Popping,倒数第二跳弹出)是 MPLS 的默认行为之一:出标签方向的最后一跳由倒数第二台设备执行弹出,出口设备只做 IP 查表转发。它依靠出口通过 LDP 通告隐式空标签(implicit-null,标签值 3)实现。好处是出口路由器少一次标签查表,代价是倒数第二跳要理解这条隐式标签。

基本信息

入口行为倒数第二跳弹出栈顶标签后再转发
信令出口向倒数第二跳通告隐式空标签(值 3)
收益出口设备只查 IP 表,减少一次标签处理
对照显式空标签需显式配置,弹出行为与用途不同
验证show mpls forwarding-table 中出现 Pop Label 条目

典型使用场景

  • 看转发表时解释为什么某条目的一侧没有出标签
  • 排障「最后一段标签去哪了」:确认 PHP 是否按预期工作
  • QoS 设计:弹出后 EXP 位不再存在,需评估优先级处理位置
  • 与标签合并场景对比:理解显式空标签的用途
  • 巡检基线:确认全网 PHP 行为一致,便于横向比对

核查命令

核查命令
show mpls forwarding-table 10.10.0.0                      # 观察是否为 Pop Label 条目
show mpls ldp bindings 10.10.0.0 16 detail | include 3    # 确认收到隐式空标签
!
# 出口直连场景出现 Pop Label 属正常现象,不是转发表异常
show mpls ldp discovery

标签值含义

标签值名称含义
3implicit-null倒数第二跳弹出,PHP 的默认行为
0explicit-null显式空标签,需配置,保留标签头到出口
其他普通标签中间节点执行标签交换
看到 Pop Label 不要当成故障:那是 PHP 的正常表现,出口设备本来就是靠 IP 表转发最后一段。
PHP 生效依赖出口通告隐式空标签:如果出口改用显式空标签或不做通告,倒数第二跳会执行完整交换,转发特征随之改变。
弹出后 EXP 位不再随报文存在:需要按 EXP 做优先级处理的场景,要评估是否改用显式空标签,或把优先级处理安排在其他节点。

易错点

  • 把 Pop Label 当故障:这是正常的 PHP 行为,不是转发表异常
  • 出口未通告隐式空标签:倒数第二跳做完整交换,转发与 QoS 特征都与预期不同
  • 依赖标签做末端 QoS:弹出后 EXP 已不存在,优先级策略需要安排在合适位置
  • 跨厂商对接前不核对空标签行为:显式与隐式空标签的处理差异会让转发表出现意外结果

数据来源与参考

  • RFC 3031: Penultimate Hop Popping
  • Cisco: implicit-null 行为
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌