Why MTU Matters for OSPF
During OSPF adjacency formation, routers exchange Database Description (DBD) packets.
Problem:
If Router A has MTU 1500 and Router B has MTU 1400:
- Router A sends a 1500-byte DBD packet
- Router B's interface rejects it (too large)
- DBD exchange fails
- Adjacency gets stuck
Symptoms of MTU Mismatch
Stuck in ExStart or Exchange State
R1# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 EXSTART/DR 00:00:35 10.1.1.2 Gi0/0
or
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 EXCHANGE/DR 00:00:38 10.1.1.2 Gi0/0
Key indicator: State never reaches FULL
Debug Output Shows Retransmissions
R1# debug ip ospf adj
*Mar 17 12:34:56: OSPF-1 ADJ Gi0/0: Send DBD to 10.1.1.2 seq 0x123
*Mar 17 12:34:57: OSPF-1 ADJ Gi0/0: Retransmitting DBD to 10.1.1.2
*Mar 17 12:34:58: OSPF-1 ADJ Gi0/0: Retransmitting DBD to 10.1.1.2
Continuous retransmissions = DBD packets not getting through
Detecting MTU Mismatch
Check Interface MTU
R1# show interface gi0/0 | include MTU
MTU 1500 bytes, BW 1000000 Kbit/sec
R2# show interface gi0/0 | include MTU
MTU 1400 bytes, BW 1000000 Kbit/sec ← MISMATCH!
Check OSPF MTU
OSPF also has a separate MTU value (defaults to interface MTU):
R1# show ip ospf interface gi0/0 | include MTU
MTU is 1500 bytes
Test with Ping
Ping with DF (Don't Fragment) bit set:
R1# ping 10.1.1.2 size 1500 df-bit
.....
Success rate is 0 percent (0/5)
Failure with large packets = MTU issue
Try smaller size:
R1# ping 10.1.1.2 size 1400 df-bit
!!!!!
Success rate is 100 percent (5/5)
Fixes for MTU Mismatch
Solution 1: Match the MTU Values (Preferred)
Set both routers to the same MTU:
R2 (increase MTU to match R1):
R2(config)# interface gi0/0
R2(config-if)# ip mtu 1500
Verify:
R2# show interface gi0/0 | include MTU
MTU 1500 bytes
Clear OSPF process to re-establish adjacency:
R2# clear ip ospf process
Reset ALL OSPF processes? [no]: yes
Check neighbor:
R2# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DR 00:00:38 10.1.1.1 Gi0/0
✅ FULL state = Fixed!
Solution 2: Use ip ospf mtu-ignore (Workaround)
Tell OSPF to ignore MTU mismatches:
R1(config)# interface gi0/0
R1(config-if)# ip ospf mtu-ignore
R2(config)# interface gi0/0
R2(config-if)# ip ospf mtu-ignore
What this does:
- OSPF skips MTU check in DBD packets
- Adjacency forms even with mismatched MTUs
⚠️ Warning:
This is a workaround, not a fix. Packets larger than the smaller MTU will still be dropped or fragmented (bad for performance).
Use only when:
- You can't change MTU (provider-managed link)
- Temporary fix while you investigate root cause
Solution 3: Lower OSPF MTU Without Changing Interface MTU
Change OSPF MTU independently:
R1(config)# interface gi0/0
R1(config-if)# ip mtu 1400
vs
R1(config)# interface gi0/0
R1(config-if)# mtu 1400
Difference:
ip mtu 1400— Changes IP MTU (affects OSPF DBD size)mtu 1400— Changes interface MTU (affects all traffic)
Use ip mtu if you only want to fix OSPF without impacting other traffic.
Common MTU Mismatch Scenarios
Scenario 1: GRE Tunnel
GRE adds 24 bytes of overhead. If physical interface MTU is 1500:
- GRE tunnel MTU = 1476 bytes
Solution:
interface tunnel 0
ip mtu 1476
ip ospf mtu-ignore ! If other side isn't adjusted
Scenario 2: Metro Ethernet with Provider Tags
Provider adds VLAN tags (4-8 bytes). Your MTU might be reduced.
Check with provider what the actual MTU is.
Scenario 3: Jumbo Frames Misconfigured
One router configured for jumbo frames (9000), the other isn't (1500).
Fix: Disable jumbo frames or enable on both sides.
Verification After Fix
1. Check Neighbor State
R1# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 FULL/DR 00:00:38 10.1.1.2 Gi0/0
✅ State: FULL
2. Check Routes
R1# show ip route ospf
O 192.168.2.0/24 [110/2] via 10.1.1.2, 00:05:23, GigabitEthernet0/0
✅ Routes learning
3. Test Large Packet Transmission
R1# ping 10.1.1.2 size 1400 df-bit
!!!!!
Success rate is 100 percent (5/5)
Best Practices
1. Standardize MTU Across Network
Enterprise standard: 1500 bytes (Ethernet default)
Document exceptions (tunnels, WAN links, etc.)
2. Avoid mtu-ignore in Production
Fix the root cause (match MTUs) instead of masking the problem.
3. Test MTU During Deployment
Before enabling OSPF:
R1# ping [neighbor-ip] size 1500 df-bit
If it fails, investigate MTU before troubleshooting OSPF.
4. Monitor for MTU Issues
Set up alerts when:
- OSPF neighbors stuck in ExStart/Exchange
- High DBD retransmission rates
Summary
Now you know:
✅ MTU mismatch symptoms — Stuck in ExStart/Exchange
✅ How to detect — Check interface MTU, test with ping
✅ Solution 1 — Match MTU values (preferred)
✅ Solution 2 — Use ip ospf mtu-ignore (workaround)
✅ Solution 3 — Adjust ip mtu independently
✅ Best practices — Standardize MTU, avoid mtu-ignore
Next Step:
MTU is one common issue. Another is duplicate Router IDs. Read Fixing Duplicate OSPF Router ID Issues next.
Screenshot Suggestions:
show ip ospf neighborstuck in EXSTARTdebug ip ospf adjshowing DBD retransmissionsshow interfacecomparing MTU values- Before/after: neighbor reaching FULL after MTU fix
Internal Links:
- ← OSPF Neighbors Not Forming (Article 18)
- ← OSPF Neighbor States (Article 3)
- → Duplicate Router ID Troubleshooting (Article 22)