首页/网络/BGP 与广域网速查/MPLS MTU 问题排查:从探测到修正
MPLS 与专线70 条

MPLS MTU 问题排查:从探测到修正

排查 MPLS 承载下的 MTU 问题:用 df-bit 逐步放大测试包定位临界值,核对两端 mpls mtu 与物理 MTU,并确认 PMTUD 所需 ICMP 未被过滤。

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

MPLS 承载下的 MTU 排查

每层 MPLS 标签占 4 字节,承载 L3VPN 时业务报文要多出 8 字节,再加上隧道封装,实际可用 MTU 会明显小于 1500。典型症状是小包通、大包不通或大流量时断时续。排查思路很直接:先用带 df-bit 的探测包找到临界值,再核对两端接口 MTU 与 MPLS MTU,最后确认 PMTUD 依赖的 ICMP 报错没有被过滤。

基本信息

标签开销每层标签 4 字节,L3VPN 通常两层共 8 字节
探测方法ping 配合 size 递增与 df-bit 置位
关键参数接口 MTU 与 mpls mtu 两处值,两端应一致
依赖机制PMTUD 需要 ICMP 不可达消息正常送达
适用平台Cisco IOS/IOS-XE、华为 VRP、Juniper Junos,命令名称略有差异

典型使用场景

  • 客户反馈部分网站打不开:常见于 MSS 与 MTU 不匹配导致的大包丢弃
  • 新链路投入使用:先做一次 MTU 探测,建立可用包长的基线
  • 跨设备厂商标接:两端对 MPLS MTU 的默认取值可能不同
  • 隧道叠加 MPLS:多重封装下需要重新确认有效 MTU
  • 变更后回归验证:改过接口或隧道参数后重做一次探测

探测与核对

探测与核对
# 逐步加大探测包,找到临界大小
ping 10.10.1.1 size 1400 df-bit repeat 5
ping 10.10.1.1 size 1472 df-bit repeat 5
# 核对物理 MTU 与 MPLS MTU
show interfaces GigabitEthernet0/1 | include MTU
show running-config interface GigabitEthernet0/1 | include mpls mtu
# Linux 侧探测与 MSS 处理(业务主机)
ping -M do -s 1472 10.10.1.1

常见表现与定位

现象可能原因核对动作
小包通、大包不通标签开销使有效 MTU 小于业务假设值探测临界值并对业务侧做 MSS 处理
大流量时断断续续PMTUD 失效,大包被静默丢弃确认 ICMP 不可达消息可达且未被过滤
单向不通回程路径 MTU 更小两个方向分别探测,不要只测一侧
调整为巨帧后仍不通中间设备不支持该帧长逐跳核对链路与设备的 MTU 设置
调整 MPLS MTU 前先确认中间设备不会丢弃超长帧:本地放开了但中间丢,症状会比调整前更隐蔽。变更后立即做双向大包验证并记录基线。
探测结果连设备型号、链路类型与测试时间一起记录:不同平台对 MPLS MTU 的默认取值并不完全相同,有了可比基线,后续变更与扩容才有判断依据。

易错点

  • 忽略 ICMP 被过滤:PMTUD 失效后表现为特定方向大包不通,容易被误判为链路故障
  • 只调一端:双向路径的 MTU 可能都需要覆盖,单侧调整往往只解决一半
  • 用普通 ping 下结论:不置 df-bit 时探测包会被分片,测不出真实 MTU
  • 改了参数不重测:调整后未做双向验证,问题在业务高峰期才重新暴露

数据来源与参考

  • Cisco: MPLS MTU 排障
  • RFC 3032: MPLS 帧封装
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌