首页/网络/BGP 与广域网速查/implicit-null 与 explicit-null 的取舍
MPLS 与专线70 条

implicit-null 与 explicit-null 的取舍

implicit-null(3)不占栈位、适合常规场景;explicit-null(0)保留标签以携带 EXP 位,适合需要按 EXP 做 QoS 的出口链路。

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

两种空标签的区别

MPLS 转发靠标签栈,最后一跳要不要留标签,取决于使用哪种空标签。隐式空标签(implicit-null,取值 3)的做法是:倒数第二跳直接把标签弹出,出口路由器收到的是普通 IP 报文,标签栈在这一跳就结束了,不占带宽也更省转发开销。显式空标签(explicit-null,取值 0)则保留标签送到出口路由器,由它来弹标签,好处是标签头部依然存在,EXP 位可以被出口链路的队列机制读取,用于区分优先级。所以取舍点很明确:常规转发用默认的隐式空标签,出口需要按 EXP 做 QoS 时才有必要改成显式空标签。

基本信息

implicit-null取值 3,倒数第二跳弹出
explicit-null取值 0,出口路由器弹出
Cisco 命令mpls ldp explicit-null(全局配置)
华为命令label advertise explicit-null(MPLS 视图,按版本核对)
默认行为多数实现默认隐式空标签
适用条件出口链路需要按 EXP 位分类排队

典型使用场景

  • 核心到汇聚的常规转发:保持默认,无需额外配置
  • 出口链路需要按标签 EXP 做优先级调度
  • 专线交付要求端到端保留标签:按合同与技术方案确认是否启用
  • 排障时确认转发路径:观察标签是弹出还是保留可判断空标签类型
  • 与第三方设备对接前:确认对方对空标签的处理方式是否一致

配置与验证

配置与验证
# Cisco:全局启用显式空标签
mpls ldp explicit-null
# 华为 MPLS 视图(按版本核对命令)
# label advertise explicit-null
# 查看转发表,Untagged 或 Pop 标签可判断行为
show mpls forwarding-table | include Untagged|Pop|explicit
# 查看 LDP 本地标签绑定
show mpls ldp bindings | include 0|3
# 华为侧对照
 display mpls lsp verbose

空标签对比

类型取值转发行为与代价
implicit-null3倒数第二跳弹标签,出口收纯 IP 包,开销小
explicit-null0出口收带标签报文,可读 EXP 做 QoS
派生影响—改变空标签类型会触发转发项更新,需评估收敛
空标签类型由各设备自行决定并通告给邻居,因此同一条 LSP 上不同网段可能采用不同方式;看到部分路径 Untagged 属正常现象,不必逐项对齐。
只有出口链路确实依赖 EXP 分类时启用显式空标签才有收益;若无 QoS 需求,多保留一层标签只是增加转发处理。

易错点

  • 认为空标签类型必须全网统一:实际由本地决定并逐段通告,不一致不影响转发
  • 为「保险」全部启用显式空标签:增加了出口处理开销,却没带来任何 QoS 收益
  • 变更空标签类型后未观察转发项刷新:变更会引起 LSP 重新计算,临时丢包被误判为故障
  • 排查丢包时忽略出口这一跳:隐式空标签下出口收的是纯 IP 报文,抓包看到的形态与预期不同
  • 对接时假设对端也支持显式空标签:部分实现或老版本行为不同,需以实测为准

数据来源与参考

  • RFC 3032: Reserved Label Values
  • Cisco: mpls ldp explicit-null
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌