🚨 MTU – “Sát thủ thầm lặng” khiến mạng chạy bình thường… nhưng ứng dụng thì chết!
Trong rất nhiều case troubleshooting thực tế, có một kiểu lỗi cực kỳ “khó chịu”:
👉 Thủ phạm rất thường gặp: MTU mismatch / MTU issue
Bài này sẽ giúp bạn hiểu sâu bản chất + cách xử lý chuẩn CCNP/CCIE.
1. MTU là gì? Và tại sao nó quan trọng?
MTU (Maximum Transmission Unit) là kích thước tối đa (bytes) mà một interface có thể gửi đi tại Layer 2.
Ví dụ:
Một frame Ethernet tiêu chuẩn gồm:
👉 Tổng payload TCP tối đa:
MSS (Maximum Segment Size) = 1500 - 20 - 20 = 1460 bytes
📌 Điều này cực kỳ quan trọng:
2. Một packet thực tế trông như thế nào?
Ví dụ trong tài liệu: (trang 1)
Một frame có thể gồm:
👉 Tổng:
1514 bytes trên wire
💡 Insight:
3. Lab mô phỏng MTU issue
Topology đơn giản: (trang 2)
MTU mặc định:
MTU 1500 bytes
IP MTU 1500 bytes
4. Test bằng ping với DF-bit (cực quan trọng)
Dùng ping extended:
Set DF bit: yes
Sweep size: 1495 → 1505
Kết quả: (trang 3)
👉 Kết luận:
MTU path = 1500
5. Khi giảm MTU – vấn đề bắt đầu xuất hiện
Giảm MTU trên R2:
interface fa0/0
mtu 1400
📌 Lúc này:
6. Điều gì xảy ra trong thực tế?
Ping vẫn OK:
Nhưng HTTP fail: (trang 4)
👉 Wireshark cho thấy:
💥 Kết quả:
7. Tại sao lại xảy ra?
Vì:
👉 Host vẫn gửi MSS = 1460
👉 Nhưng network chỉ cho phép 1400
➡️ Mismatch giữa:
8. 2 cách xử lý chuẩn CCIE
Cách 1: Cho phép fragmentation (không khuyến khích)
ip mtu 1400
👉 Router sẽ fragment packet
❌ Nhược điểm:
Cách 2 (BEST PRACTICE): Điều chỉnh TCP MSS
interface fa0/1
ip tcp adjust-mss 1360
📌 Ý nghĩa:
👉 Host sẽ gửi payload nhỏ hơn
9. Verify bằng Wireshark
Sau khi fix: (trang 5)
👉 Perfect match MTU
10. Debug thực tế
debug ip tcp transactions
Kết quả: (trang 6)
advertising MSS 1360
👉 Xác nhận router đang rewrite MSS thành công
11. Insight cực quan trọng (CCIE level)
💡 1. MTU có 3 loại (rất nhiều người nhầm):
💡 2. MSS KHÔNG phải lúc nào cũng giống nhau:
💡 3. Vấn đề MTU thường xuất hiện khi:
💡 4. Symptom kinh điển:
12. Best Practice thực chiến
✔ Luôn:
✔ Khi làm VPN:
🔥 Kết luận
MTU issue là một trong những lỗi:
👉 Một CCNP có thể config được network
👉 Nhưng một CCIE phải nhìn thấy những thứ invisible như MTU
Trong rất nhiều case troubleshooting thực tế, có một kiểu lỗi cực kỳ “khó chịu”:
- Ping OK
- Routing OK
- Nhưng:
- Web không load
- SSH/Telnet treo
- VPN chập chờn
👉 Thủ phạm rất thường gặp: MTU mismatch / MTU issue
Bài này sẽ giúp bạn hiểu sâu bản chất + cách xử lý chuẩn CCNP/CCIE.
1. MTU là gì? Và tại sao nó quan trọng?
MTU (Maximum Transmission Unit) là kích thước tối đa (bytes) mà một interface có thể gửi đi tại Layer 2.
Ví dụ:
- Ethernet mặc định: 1500 bytes
Một frame Ethernet tiêu chuẩn gồm:
- Ethernet header: 14 bytes
- IP header: 20 bytes
- TCP header: 20 bytes
- Payload (data)
👉 Tổng payload TCP tối đa:
MSS (Maximum Segment Size) = 1500 - 20 - 20 = 1460 bytes
📌 Điều này cực kỳ quan trọng:
- TCP không gửi payload lớn hơn MSS
- MSS được trao đổi trong 3-way handshake
2. Một packet thực tế trông như thế nào?
Ví dụ trong tài liệu: (trang 1)
Một frame có thể gồm:
- 1460 bytes payload
- 20 bytes TCP
- 20 bytes IP
- 14 bytes Ethernet
👉 Tổng:
1514 bytes trên wire
💡 Insight:
- Ethernet chịu được
- Nhưng khi đi qua:
- PPPoE
- GRE
- IPsec
👉 Header tăng → MTU hiệu dụng giảm → lỗi xuất hiện
3. Lab mô phỏng MTU issue
Topology đơn giản: (trang 2)
- R1 ↔ R2
- Server phía R1
- Client phía R2
MTU mặc định:
MTU 1500 bytes
IP MTU 1500 bytes
4. Test bằng ping với DF-bit (cực quan trọng)
Dùng ping extended:
Set DF bit: yes
Sweep size: 1495 → 1505
Kết quả: (trang 3)
- Packet 1500 → OK
- Packet 1501 → FAIL
👉 Kết luận:
MTU path = 1500
5. Khi giảm MTU – vấn đề bắt đầu xuất hiện
Giảm MTU trên R2:
interface fa0/0
mtu 1400
📌 Lúc này:
- TCP MSS = 1360 (1400 - 40)
6. Điều gì xảy ra trong thực tế?
Ping vẫn OK:
- Vì packet nhỏ
Nhưng HTTP fail: (trang 4)
👉 Wireshark cho thấy:
- IP packet = 1500 bytes
- Nhưng MTU = 1400
💥 Kết quả:
- Packet bị drop (DF-bit)
- Không fragment được
- Kết nối fail
7. Tại sao lại xảy ra?
Vì:
👉 Host vẫn gửi MSS = 1460
👉 Nhưng network chỉ cho phép 1400
➡️ Mismatch giữa:
- End-host expectation
- Network reality
8. 2 cách xử lý chuẩn CCIE
Cách 1: Cho phép fragmentation (không khuyến khích)
ip mtu 1400
👉 Router sẽ fragment packet
❌ Nhược điểm:
- Tốn CPU
- Giảm hiệu năng
- Dễ bị drop
Cách 2 (BEST PRACTICE): Điều chỉnh TCP MSS
interface fa0/1
ip tcp adjust-mss 1360
📌 Ý nghĩa:
- Intercept TCP SYN
- Rewrite MSS
👉 Host sẽ gửi payload nhỏ hơn
9. Verify bằng Wireshark
Sau khi fix: (trang 5)
- MSS = 1360
- Total IP packet = 1400
👉 Perfect match MTU
10. Debug thực tế
debug ip tcp transactions
Kết quả: (trang 6)
advertising MSS 1360
👉 Xác nhận router đang rewrite MSS thành công
11. Insight cực quan trọng (CCIE level)
💡 1. MTU có 3 loại (rất nhiều người nhầm):
- Layer 2 MTU
- IP MTU
- TCP MSS
💡 2. MSS KHÔNG phải lúc nào cũng giống nhau:
- Có thể khác giữa 2 chiều
💡 3. Vấn đề MTU thường xuất hiện khi:
- PPPoE (MTU 1492)
- GRE (-24 bytes)
- IPsec (-50~60 bytes)
- VXLAN / Overlay
💡 4. Symptom kinh điển:
- Ping OK
- Small packet OK
- Large packet FAIL
- Web load chậm / fail
12. Best Practice thực chiến
✔ Luôn:
- Dùng ping df-bit để test path MTU
- Kiểm tra MSS trong Wireshark
- Áp dụng ip tcp adjust-mss tại edge
✔ Khi làm VPN:
- MSS adjust gần như bắt buộc
🔥 Kết luận
MTU issue là một trong những lỗi:
- Khó phát hiện
- Dễ gây hiểu nhầm
- Nhưng lại xuất hiện cực nhiều trong thực tế
👉 Một CCNP có thể config được network
👉 Nhưng một CCIE phải nhìn thấy những thứ invisible như MTU