Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mtu

    🚨 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”:
    • 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
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X