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

  • VxLAN

    📦 Giải mã cấu trúc gói tin VXLAN – Làm thế nào Layer 2 có thể chạy trên Layer 3?


    Một trong những điểm "ma thuật" của VXLAN là:
    Đóng gói (Encapsulate) toàn bộ Frame Ethernet gốc vào bên trong một gói UDP/IP để truyền qua mạng Layer 3.

    Nhờ vậy, hai máy chủ ở hai Data Center khác nhau vẫn có thể hoạt động như đang ở cùng một VLAN, mặc dù bên dưới chỉ là mạng IP.
    Cấu trúc tổng thể (xem hình)


    Hay nói cách khác:
    Frame Ethernet gốc được "bọc" thêm một lớp Ethernet, IP và UDP mới trước khi đi qua mạng.

    Đây chính là cơ chế MAC-in-UDP Encapsulation.
    1. Outer MAC Header


    Đây là Frame Ethernet mới được tạo ra.

    Nó chỉ phục vụ cho việc truyền trong mạng Underlay.

    Bao gồm:
    • Destination MAC
    • Source MAC
    • EtherType

    Điểm quan trọng:

    Đây không phải MAC của máy nguồn và máy đích.

    Mà là MAC của:
    • Switch
    • Router
    • Next Hop
    • Gateway trong mạng Underlay

    Nói cách khác:
    Outer MAC chỉ giúp gói tin đi qua mạng IP.

    2. Outer IP Header


    Tiếp theo là IP Header.

    Đây là địa chỉ IP của:
    • Source VTEP
    • Destination VTEP


    3. UDP Header


    VXLAN hoạt động trên UDP.

    Destination Port luôn là
    4789

    Đây là cổng chuẩn được IANA quy định cho VXLAN.
    Vì sao VXLAN dùng UDP?


    Nếu sử dụng IP Protocol riêng, các thiết bị mạng sẽ rất khó cân bằng tải.

    UDP mang lại nhiều lợi ích:
    • ECMP
    • Load Balancing
    • Hashing
    • Hardware Offload

    Đó là lý do VXLAN sử dụng UDP thay vì tạo một giao thức IP mới.
    Source Port


    Source Port không cố định.

    Thông thường VTEP sẽ tạo giá trị này bằng cách hash:
    • MAC
    • IP
    • TCP
    • UDP

    của gói tin gốc.

    Điều này giúp:
    ECMP

    có nhiều giá trị hash khác nhau để phân bố lưu lượng lên nhiều đường truyền.

    Nếu tất cả các gói VXLAN đều có cùng Source Port thì toàn bộ traffic có thể chỉ đi trên một đường duy nhất.
    4. VXLAN Header


    Đây là phần quan trọng nhất.

    Kích thước:
    8 Bytes

    Trong đó đáng chú ý nhất là:
    VNI
    VNI (VXLAN Network Identifier)


    Đây là trường dài 24 bit.

    Nó thay thế VLAN ID truyền thống.

    Trong Ethernet:
    VLAN ID = 12 bit

    4096 VLAN

    VXLAN:
    VNI = 24 bit

    ≈16.7 triệu Segment

    Chính vì vậy hình minh họa ghi:
    16M possible segments

    Đây là ưu điểm lớn nhất của VXLAN.

    Nó giải quyết giới hạn:
    4094 VLAN

    trong Data Center truyền thống.
    5. Original Layer 2 Frame


    Đây là Frame Ethernet ban đầu.

    Nó được giữ nguyên.

    Ví dụ:
    Dst MAC
    Src MAC
    802.1Q VLAN
    IP Packet
    TCP
    Application Data

    VXLAN không sửa đổi Frame này.

    Chỉ đơn giản là:
    "Bọc" nguyên Frame vào bên trong UDP.

    Khi đến VTEP phía bên kia:
    • Gỡ bỏ VXLAN Header
    • Gỡ UDP
    • Gỡ IP
    • Khôi phục nguyên Frame Ethernet

    Máy chủ hoàn toàn không biết rằng gói tin vừa đi qua mạng Layer 3.
    Vì sao hình có ghi "Hash of inner L2/L3/L4 Header"?


    Đây là một chi tiết rất hay.

    Switch sẽ lấy thông tin của:
    • Inner MAC
    • Inner IP
    • Inner TCP/UDP

    để tạo giá trị hash.

    Ví dụ
    Server1 → Server5

    TCP 443



    Hash



    UDP Source Port

    Nhờ đó:
    • ECMP
    • Spine-Leaf
    • Fabric

    đều có thể cân bằng tải rất hiệu quả.

    Nếu không có cơ chế này thì toàn bộ traffic VXLAN có thể chỉ đi qua một liên kết duy nhất, gây lãng phí băng thông của các đường còn lại.
    Quá trình đóng gói VXLAN


    Giả sử:
    VM1



    Leaf1 (VTEP)



    IP Fabric



    Leaf2 (VTEP)



    VM2

    Quy trình diễn ra như sau:

    Bước 1: VM1 tạo Frame Ethernet bình thường.

    Bước 2: Leaf1 (VTEP) thêm:
    • Outer Ethernet Header
    • Outer IP Header
    • UDP Header (Destination Port 4789)
    • VXLAN Header chứa VNI

    Bước 3: Gói tin được truyền qua mạng IP (Underlay).

    Bước 4: Leaf2 nhận gói VXLAN và gỡ bỏ các lớp bọc bên ngoài.

    Bước 5: Frame Ethernet gốc được khôi phục và chuyển đến VM2.

    Đối với hai máy ảo, toàn bộ quá trình này hoàn toàn trong suốt (transparent). Chúng chỉ thấy mình đang giao tiếp qua một mạng Ethernet thông thường, mặc dù dữ liệu thực tế đã được vận chuyển qua một hạ tầng IP Layer 3.
    Điểm cần nhớ
    • Outer MAC: Dùng để chuyển tiếp trong mạng Underlay.
    • Outer IP: Chứa địa chỉ IP của hai VTEP.
    • UDP Port 4789: Cổng chuẩn của VXLAN.
    • VXLAN Header: Chứa VNI dài 24 bit, hỗ trợ khoảng 16,7 triệu mạng logic.
    • Original Layer 2 Frame: Được giữ nguyên và chỉ được đóng gói, không bị thay đổi.

    Đây chính là cơ chế giúp VXLAN mở rộng mạng Layer 2 trên hạ tầng Layer 3, đồng thời khắc phục giới hạn 4094 VLAN của Ethernet truyền thống và trở thành nền tảng của các Data Center hiện đại như Cisco ACI, VMware NSX, EVPN-VXLAN và các hạ tầng Cloud quy mô lớn.
    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