Performance
MTU Calculator
Calculate effective MTU through tunnels and VPNs. Account for encapsulation overhead from GRE, IPsec, VXLAN, WireGuard, and more.
Base MTU
Add Encapsulation
Encapsulation Stack (0)
No encapsulation added
Click encapsulation types above to add them
Effective MTU
Total Overhead
0 bytes
Effective MTU
1500 bytes
Base MTU1500 bytes
Encapsulation Overhead−0 bytes
Maximum Payload1500 bytes
How to Use
- 1Set your base interface MTU (usually 1500 for Ethernet)
- 2Add each encapsulation layer in your network path
- 3Check the effective MTU to avoid fragmentation issues
MTU Limits
| Threshold | Impact |
|---|---|
| ≥1280 | Safe for IPv4 and IPv6 |
| 576-1279 | IPv6 may fragment or fail |
| <576 | Below IPv4 minimum, expect issues |
Common Encapsulation Overhead
| Protocol | Overhead | Effective MTU | Notes |
|---|---|---|---|
| Plain Ethernet | 0 bytes | 1500 | Standard MTU baseline |
| PPPoE (DSL) | 8 bytes | 1492 | Common for home DSL connections |
| GRE Tunnel | 24 bytes | 1476 | Basic site-to-site tunneling |
| IPsec (Tunnel Mode) | ~58 bytes | ~1442 | Varies with cipher/auth |
| WireGuard | 60 bytes | 1440 | Modern VPN, fixed overhead |
| VXLAN | 50 bytes | 1450 | Data center overlay networks |
| GRE + IPsec | ~82 bytes | ~1418 | Encrypted tunnel, stacked overhead |
| L2TP/IPsec | ~78 bytes | ~1422 | Legacy VPN, high overhead |
All values assume 1500-byte base MTU. IPsec overhead varies based on encryption algorithm and authentication method.
Why MTU Matters
- Fragmentation: Packets larger than MTU get split, adding latency and CPU overhead
- Black holes: If ICMP is blocked, Path MTU Discovery fails silently
- Performance: Wrong MTU can cause retransmissions and slow transfers
- IPv6: Requires minimum 1280 bytes; routers don't fragment
Best Practices
- Set
DF(Don't Fragment) bit and let PMTUD work - Allow ICMP "fragmentation needed" messages through firewalls
- For tunnels, set inner MTU = outer MTU − encapsulation overhead
- Consider TCP MSS clamping at tunnel endpoints
- Test with
ping -M do -s SIZE(Linux) orping -f -l SIZE(Windows)