Size core MTU for an MPLS label stack at 4 bytes per label, including VPN and entropy labels.
Labels are pushed in front of the customer packet, so they consume MTU rather than riding on top of it. A typical L3VPN packet carries a transport label plus a VPN label, and fast-reroute, entropy labels or SR stacks add more, each costing another 4 bytes. MPLS MTU shortfalls are the classic "ping works, applications hang" fault: small packets pass, full-size TCP segments are dropped, and because the core is label-switched the ICMP needed-fragmentation message often never reaches the sender.
MPLS MTU
Each MPLS label is a 4-byte shim holding a 20-bit label, 3-bit traffic class, 1-bit bottom-of-stack flag and an 8-bit TTL, so required MTU = customer MTU + 4 × labels.
Effective payload
Payload allowed by a given core MTU = core MTU − label bytes.
Each MPLS label is a 4-byte shim holding a 20-bit label, 3-bit traffic class, 1-bit bottom-of-stack flag and an 8-bit TTL, so required MTU = customer MTU + 4 × labels. Labels are pushed in front of the customer packet, so they consume MTU rather than riding on top of it. A typical L3VPN packet carries a transport label plus a VPN label, and fast-reroute, entropy labels or SR stacks add more, each costing another 4 bytes.
MPLS MTU shortfalls are the classic "ping works, applications hang" fault: small packets pass, full-size TCP segments are dropped, and because the core is label-switched the ICMP needed-fragmentation message often never reaches the sender.
This calculator takes 5 inputs: Customer IP MTU, Transport labels, VPN / service label, Entropy or flow label, Configured core MTU. The pre-filled defaults are a realistic starting point — replace them with figures from your own environment for a result you can act on.
Set the core well above the arithmetic minimum — 9000-byte jumbo frames end the problem permanently, and 1600 is the common minimum. Sizing to the exact requirement leaves no room for the next label you add.