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

  • Bên Trong Thẻ IEEE 802.1Q – Vì Sao Một Đường Trunk Có Thể Mang Hàng Ngàn VLAN?

    Bên Trong Thẻ IEEE 802.1Q – Vì Sao Một Đường Trunk Có Thể Mang Hàng Ngàn VLAN?


    Khi kết nối hai switch với nhau, một câu hỏi rất tự nhiên được đặt ra là:

    Làm sao switch biết một frame thuộc VLAN nào khi chỉ có một sợi cáp vật lý duy nhất kết nối giữa hai switch?

    Câu trả lời nằm ở IEEE 802.1Q (802.1Q Tagging). Đây là cơ chế cho phép một liên kết vật lý duy nhất (trunk link) có thể mang lưu lượng của hàng nghìn VLAN khác nhau mà vẫn đảm bảo sự tách biệt hoàn toàn giữa chúng.
    IEEE 802.1Q là gì?


    Cisco Catalyst Switch sử dụng chuẩn IEEE 802.1Q để hỗ trợ VLAN Trunking.

    Khi một switch gửi Ethernet frame qua một trunk link, nó phải cho switch ở đầu bên kia biết:
    "Frame này thuộc VLAN nào?"

    Để thực hiện điều đó, switch sẽ chèn thêm một 802.1Q Tag dài 4 byte vào bên trong Ethernet frame.

    802.1Q Tag được chèn vào giữa:
    Destination MAC | Source MAC | Type/Length

    Sau khi gắn thẻ:
    Destination MAC | Source MAC | 802.1Q Tag | Type/Length

    Do Ethernet frame đã bị thay đổi, switch phải tính toán lại:
    • Frame Check Sequence (FCS)

    để đảm bảo tính toàn vẹn dữ liệu.
    Quá trình hoạt động của 802.1Q

    Bước 1: Frame đi vào switch


    Ví dụ:

    PC thuộc VLAN 20 gửi frame đến switch.

    Switch biết:
    Port Gi1/0/10 → VLAN 20

    Frame ban đầu:
    Dst MAC | Src MAC | Payload | FCS
    Bước 2: Frame đi qua Trunk


    Switch thêm:
    802.1Q Tag (4 bytes)

    Frame trở thành:
    Dst MAC
    Src MAC
    802.1Q Tag
    Payload
    FCS mới

    Tag này mang thông tin:
    Đây là frame của VLAN 20
    Bước 3: Switch bên kia nhận frame


    Switch nhận trunk frame:
    1. Đọc VLAN ID trong tag
    2. Xác định frame thuộc VLAN nào
    3. Loại bỏ 802.1Q Tag
    4. Chuyển frame đến các port thuộc VLAN tương ứng

    Người dùng cuối hoàn toàn không nhìn thấy VLAN tag này.
    Bên trong 802.1Q Tag có gì?


    802.1Q Tag có kích thước:
    4 Bytes = 32 bits

    Nó bao gồm các trường sau.
    1. TPID (Tag Protocol Identifier)


    Kích thước:
    16 bits

    Giá trị:
    0x8100

    Ý nghĩa:

    Cho switch biết:
    "Đây là Ethernet frame đã được gắn thẻ theo chuẩn IEEE 802.1Q."

    Nếu switch nhìn thấy:
    0x8100

    nó hiểu ngay rằng cần đọc tiếp thông tin VLAN bên trong tag.
    2. Priority (PCP – Priority Code Point)


    Kích thước:
    3 bits

    Cho phép:
    2³ = 8 mức ưu tiên
    (0-7)

    Trường này được sử dụng trong:

    IEEE 802.1p QoS

    Ví dụ:
    0 Best Effort
    5 Voice
    6 Video
    7 Network Control
    Ví dụ thực tế:

    Cuộc gọi VoIP đi qua trunk.

    Switch có thể đánh dấu:
    Priority = 5

    để đảm bảo:
    • độ trễ thấp
    • jitter thấp
    • ít bị drop packet

    Đây là lý do vì sao voice traffic thường có chất lượng tốt ngay cả khi mạng đang bận.
    3. CFI (Canonical Format Identifier)


    Kích thước:
    1 bit

    Trường này được sử dụng để tương thích với:
    • Token Ring
    • Ethernet

    Ngày nay, Token Ring gần như đã biến mất nên bit này hầu như không còn được sử dụng trong các mạng hiện đại.

    Trong chuẩn mới, bit này thường được gọi là:
    DEI (Drop Eligible Indicator)

    và có thể được dùng trong các cơ chế QoS để chỉ ra gói tin có thể bị loại bỏ khi xảy ra congestion.
    4. VLAN Identifier (VID)


    Kích thước:
    12 bits

    Cho phép:
    2¹² = 4096 giá trị

    Tuy nhiên:
    • VLAN 0: dùng cho QoS
    • VLAN 4095: reserved

    Do đó số VLAN có thể sử dụng:
    4094 VLAN
    (VLAN 1 – VLAN 4094)

    Ví dụ:
    VID = 10 → VLAN 10
    VID = 20 → VLAN 20
    VID = 100 → VLAN 100

    Chính trường này cho phép một trunk có thể mang đồng thời:
    • VLAN 10
    • VLAN 20
    • VLAN 30
    • VLAN 100
    • VLAN 500

    trên cùng một đường cáp vật lý.
    Native VLAN là gì?


    Trên trunk port, một VLAN được chỉ định là:

    Native VLAN

    Các frame thuộc VLAN này:

    không được gắn tag (untagged).

    Mặc định:
    Native VLAN = VLAN 1

    Ví dụ: VLAN 10

    Frame có tag
    VID=10 VLAN 20

    Frame có tag
    VID=20 VLAN 1 (Native VLAN)

    Frame không có tag
    Switch nhận frame untagged như thế nào?


    Khi switch nhận được một frame không có tag trên trunk:

    Nó sẽ tự động giả định:
    Frame thuộc Native VLAN

    Ví dụ:
    Switch A Native VLAN = 1
    Switch B Native VLAN = 1

    Frame untagged:
    → VLAN 1
    Nguy cơ Native VLAN Mismatch


    Ví dụ: Switch A

    Native VLAN = 1 Switch B

    Native VLAN = 20

    Switch A gửi:
    Frame untagged

    Switch B hiểu:
    Frame thuộc VLAN 20

    Kết quả:
    • Traffic leakage
    • Broadcast đi sai VLAN
    • Lỗi khó phát hiện
    • Nguy cơ bảo mật nghiêm trọng

    Cisco sẽ cảnh báo:
    %CDP-4-NATIVE_VLAN_MISMATCH
    Vì sao nên đổi Native VLAN?


    IEEE 802.1Q giữ lại Native VLAN để tương thích với các hệ thống cũ (legacy LAN) vốn sử dụng nhiều frame untagged.

    Tuy nhiên trong môi trường hiện đại, best practice là: Không sử dụng VLAN 1 cho Native VLAN


    Ví dụ:
    VLAN 999
    Best Practice trong doanh nghiệp

    Tạo VLAN riêng cho Native VLAN

    vlan 999
    name NATIVE-VLAN
    Đổi Native VLAN trên trunk

    interface GigabitEthernet1/0/1
    switchport mode trunk
    switchport trunk native vlan 999
    Không gán user vào VLAN 999


    Native VLAN chỉ dành cho:
    • protocol control traffic
    • frame untagged
    • mục đích quản trị

    Không dùng cho:
    • PC
    • Server
    • Printer
    • IP Phone

    Bật Native VLAN Tagging


    Một số nền tảng Cisco hỗ trợ:
    vlan dot1q tag native

    Lệnh này buộc:

    Ngay cả Native VLAN cũng phải được gắn tag.

    Kết quả:
    • Không còn frame untagged trên trunk
    • Giảm nguy cơ cấu hình sai
    • Tăng tính nhất quán
    • Giảm khả năng bị tấn công VLAN Hopping

    Liên hệ thực tế


    Giả sử doanh nghiệp có:
    • Engineering → VLAN 10
    • HR → VLAN 20
    • Finance → VLAN 30

    Tất cả các VLAN đều đi chung một đường trunk giữa hai switch.

    802.1Q Tag đảm bảo:
    Engineering ↔ Engineering
    HR ↔ HR
    Finance ↔ Finance

    mà không bị lẫn lưu lượng.

    Nếu Native VLAN cấu hình sai, frame untagged có thể đi nhầm VLAN, dẫn đến:
    • rò rỉ dữ liệu
    • broadcast không mong muốn
    • lỗi kết nối khó xử lý
    • nguy cơ bảo mật nghiêm trọng

    Kết luận


    IEEE 802.1Q là nền tảng của VLAN Trunking trong mạng doanh nghiệp hiện đại. Bằng cách chèn thêm 4-byte tag chứa TPID, Priority, CFI/DEI và VLAN ID, switch có thể vận chuyển lưu lượng của hàng nghìn VLAN trên cùng một liên kết vật lý mà vẫn duy trì sự phân tách hoàn toàn giữa các broadcast domain. Hiểu rõ cách hoạt động của 802.1Q TagNative VLAN không chỉ giúp bạn cấu hình trunk chính xác mà còn giúp thiết kế hệ thống mạng an toàn hơn, tránh traffic leakage, native VLAN mismatch và các cuộc tấn công như VLAN Hopping. Đây là kiến thức nền tảng mà mọi kỹ sư CCNA, CCNP và CCIE đều phải nắm vững khi triển khai mạng doanh nghiệp thực tế.​
    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