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

  • Trunking và VLAN Tagging

    Trunk (Trunk Links) và Gắn Thẻ VLAN (VLAN Tagging)

    Tình huống thực tế


    Bạn vừa hoàn tất việc cấu hình VLAN trên hai switch access. Mỗi phòng ban như Engineering, HR và Finance đều đã được gán vào VLAN riêng, đồng thời bạn cũng đã xác minh rằng các cổng được cấu hình chính xác.

    Mọi thứ hoạt động tốt… cho đến khi bạn kết nối hai switch với nhau.

    Lúc này, bạn phát hiện ra rằng:
    • Các thiết bị cùng VLAN và cùng switch có thể giao tiếp với nhau.
    • Nhưng các thiết bị thuộc cùng một VLAN nhưng nằm trên hai switch khác nhau lại hoàn toàn không thể liên lạc.

    Ví dụ:
    SW1 SW2
    PC1(VLAN10) PC4(VLAN10)
    PC2(VLAN10) PC5(VLAN10)

    Mặc dù tất cả đều thuộc VLAN 10 nhưng:
    PC1 ❌ PC4
    PC1 ❌ PC5

    không thể giao tiếp.

    Nguyên nhân là VLAN chỉ tồn tại cục bộ (locally significant) trên từng switch nếu giữa các switch chưa có cơ chế truyền thông tin VLAN.

    Để giải quyết vấn đề này, chúng ta cần một phương pháp cho phép lưu lượng của nhiều VLAN đi qua kết nối giữa các switch nhưng vẫn duy trì sự cô lập (segmentation) của từng VLAN. Đây chính là vai trò của 802.1Q Trunking.
    Nếu không có Trunk thì sao?


    Không sử dụng trunk đồng nghĩa với việc mỗi VLAN phải có một kết nối vật lý riêng.

    Ví dụ:

    Có ba VLAN:
    • VLAN 10 – Engineering
    • VLAN 20 – HR
    • VLAN 30 – Finance

    Khi đó:
    SW1 ---------------- SW2 (VLAN10)
    SW1 ---------------- SW2 (VLAN20)
    SW1 ---------------- SW2 (VLAN30)

    Cần:
    • 3 dây cáp
    • 3 cổng switch ở mỗi đầu

    Nếu có:
    • 20 VLAN
    • 50 VLAN
    • 100 VLAN

    thì cách làm này hoàn toàn không khả thi.
    VLAN Trunking


    Thay vì sử dụng nhiều kết nối vật lý, chúng ta chỉ cần:
    SW1 ======== Trunk ======== SW2

    Một đường vật lý duy nhất có thể mang lưu lượng của:
    • VLAN 10
    • VLAN 20
    • VLAN 30
    • hàng trăm VLAN khác.

    Quá trình này được gọi là:
    VLAN Trunking

    Trunk là gì?


    Trunk là một kết nối Point-to-Point giữa hai thiết bị mạng, thường là:
    • Switch ↔ Switch
    • Switch ↔ Router
    • Switch ↔ Server có NIC hỗ trợ VLAN Tagging
    • Switch ↔ Hypervisor (VMware ESXi, Hyper-V, KVM)

    được sử dụng để vận chuyển lưu lượng của nhiều VLAN trên cùng một kết nối vật lý.

    Ví dụ:
    Switch ===== Trunk ===== Switch

    hoặc
    Switch ===== Trunk ===== Router

    (Router-on-a-Stick)
    Access Port và Trunk Port khác nhau như thế nào?

    Access Port


    Chỉ thuộc về một VLAN duy nhất.

    Ví dụ:
    interface Fa0/1
    switchport mode access
    switchport access vlan 10

    Fa0/1 chỉ mang:
    VLAN 10
    Trunk Port


    Không thuộc về một VLAN cụ thể.

    Nó hoạt động như một "đường cao tốc dùng chung" (shared conduit) cho nhiều VLAN.

    Ví dụ:
    interface Gi0/1
    switchport mode trunk

    Gi0/1 có thể mang:
    VLAN10
    VLAN20
    VLAN30
    VLAN100
    VLAN200
    ...
    Lưu ý


    Mặc định trên Cisco Catalyst:
    Trunk sẽ mang tất cả các VLAN đã được cấu hình trên switch.

    Ví dụ:

    Switch có:
    VLAN1
    VLAN10
    VLAN20
    VLAN30

    Sau khi cấu hình:
    switchport mode trunk

    thì tất cả các VLAN trên đều được phép đi qua trunk.

    Trong thực tế, các kỹ sư CCNP/CCIE thường giới hạn VLAN được phép:
    switchport trunk allowed vlan 10,20,30

    để:
    • tăng bảo mật;
    • giảm Broadcast không cần thiết;
    • giảm khả năng VLAN Hopping Attack;
    • giảm kích thước STP domain.

    VLAN Tagging hoạt động như thế nào?


    Khi nhiều VLAN cùng chia sẻ một đường trunk, switch phải biết frame thuộc VLAN nào.

    Giải pháp là:
    Gắn thêm một VLAN Tag vào Ethernet Frame.

    Tag này chứa:

    VID (VLAN Identifier)

    cho biết frame thuộc VLAN nào.

    Switch ở đầu bên kia sẽ đọc VID này để quyết định:
    • Frame thuộc VLAN nào.
    • Forward đến những cổng nào.

    Ví dụ từng bước

    Bước 1 – Broadcast được tạo


    Giả sử:
    PC1 ----- Fa0/1 (VLAN10) ----- SW1

    PC1 gửi ARP Request:
    Who has 192.168.10.1?

    Đây là Broadcast:
    FF:FF:FF:FF:FF:FF

    SW1 nhận frame tại:
    Fa0/1

    và biết rằng:
    Fa0/1 ∈ VLAN10
    Bước 2 – Gắn VLAN Tag


    SW1 phải chuyển Broadcast này sang SW2.

    Trước khi gửi qua trunk:
    Fa0/23

    SW1 chèn:
    802.1Q Tag
    VID = 10

    Frame trở thành:
    Broadcast
    +
    802.1Q Tag
    +
    VID = 10
    Bước 3 – SW2 xử lý


    SW2 nhận frame từ trunk:
    Fa0/23

    SW2 đọc:
    VID = 10

    và hiểu:
    Đây là lưu lượng của VLAN 10.

    SW2 sau đó:
    • Loại bỏ VLAN Tag (de-tagging)
    • Chỉ Forward tới các cổng thuộc VLAN10.

    Ví dụ:
    Fa0/1
    Fa0/2

    Không gửi đến:
    VLAN20
    VLAN30
    Ví dụ với VLAN 20


    Giả sử:
    PC3 (VLAN20)

    gửi Broadcast.

    SW1:
    Tag VID=20

    Send over trunk

    SW2:
    Read VID=20

    Remove tag

    Forward only to VLAN20 ports

    Broadcast của VLAN20 sẽ không bao giờ xuất hiện trong VLAN10.

    Đây chính là cơ chế duy trì:
    Broadcast Domain Isolation

    của VLAN.
    802.1Q Tag nằm ở đâu?


    Ethernet Frame ban đầu:
    Destination MAC
    Source MAC
    Type
    Payload
    FCS

    Sau khi gắn Tag:
    Destination MAC
    Source MAC
    802.1Q Tag
    Type
    Payload
    FCS

    Tag có kích thước:
    4 bytes

    bao gồm: TPID (Tag Protocol Identifier)


    Giá trị:
    0x8100

    cho biết frame có gắn thẻ 802.1Q. TCI (Tag Control Information)


    Chứa:
    • PCP (Priority Code Point)
    • DEI (Drop Eligible Indicator)
    • VLAN ID (VID)

    Trong đó:

    VID dài:
    12 bits

    cho phép:
    2^12 = 4096 VLAN

    Giá trị sử dụng:
    1 – 4094
    Câu hỏi ôn tập


    PC1 gửi Broadcast.

    Broadcast chỉ được chuyển tới các PC nằm trong cùng VLAN với PC1, dù chúng ở switch nào.

    Nếu theo sơ đồ:
    PC1 ∈ VLAN10
    PC2 ∈ VLAN10
    PC7 ∈ VLAN10

    thì đáp án đúng là:

    PC2 và PC7

    Các máy:
    PC4
    PC5
    PC6

    nằm trong VLAN khác sẽ không nhận được Broadcast.
    Kết luận


    Trunking và VLAN Tagging là hai công nghệ nền tảng giúp mở rộng VLAN trên nhiều switch mà vẫn duy trì sự phân đoạn mạng.

    802.1Q thực hiện điều này bằng cách:
    1. Gắn VLAN ID vào Ethernet Frame.
    2. Cho phép nhiều VLAN cùng chia sẻ một kết nối vật lý.
    3. Duy trì Broadcast Domain riêng biệt cho từng VLAN.
    4. Giảm số lượng cổng và cáp cần triển khai.
    5. Giúp hệ thống mạng doanh nghiệp có khả năng mở rộng cao.

    Trong các doanh nghiệp lớn, nơi các phòng ban như Engineering, HR và Finance trải rộng trên nhiều tầng hoặc nhiều tòa nhà, trunking là cơ chế bắt buộc để các thiết bị cùng VLAN có thể giao tiếp với nhau mà vẫn bảo đảm tính cô lập và bảo mật của từng miền quảng bá (Broadcast Domain).​
    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