VTP Protocol (2.3.1)

2.3.1.1. Cấu trúc bản tin VTP

a) Tổng quan về bản tin VTP

VTP hoạt động dựa trên việc trao đổi các bản tin quảng bá (VTP Advertisement) giữa các Switch trong cùng domain. Các bản tin này được gửi định kỳ hoặc khi có thay đổi cấu hình VLAN, và chỉ được truyền qua các cổng Trunk.

Đặc điểm của bản tin VTP:

Đặc điểmMô tả
Giao thức nềnLớp 2 (Data Link Layer)
Địa chỉ MAC đích01-00-0C-CC-CC-CC (Multicast Cisco)
Địa chỉ MAC nguồnMAC của cổng Trunk gửi
EtherType0x2003 (VTP) hoặc 0x2004 (VTP Version 3)
EncapsulationChỉ gửi qua cổng Trunk (802.1Q hoặc ISL)
Chu kỳ gửiMặc định 5 phút (300 giây)
Kích thước tối đa1500 byte

b) Cấu trúc chi tiết bản tin VTP

Một bản tin VTP điển hình có cấu trúc gồm VTP Header và VTP Message(s).

VTP Header (36 byte)

Trường Độ dài Mô tả
Version 1 byte Phiên bản VTP (1, 2, hoặc 3)
Code 1 byte Loại bản tin VTP (xem bảng bên dưới)
Followers 1 byte Số lượng bản tin theo sau
Message Length 2 byte Tổng độ dài bản tin VTP
Management Domain Name Length 1 byte Độ dài tên domain
Management Domain Name 32 byte Tên VTP Domain (padding bằng 0x00)
Configuration Revision Number 4 byte Số phiên bản cấu hình
Updater Identity 4 byte Địa chỉ IP của Switch gửi cập nhật
Update Timestamp 12 byte Thời gian cập nhật (ngày, tháng, năm, giờ, phút, giây)
MD5 Digest 16 byte Mã băm MD5 xác thực (nếu có password)

Các giá trị của trường Code

CodeTên bản tinMô tả
0x01Summary AdvertisementQuảng bá tóm tắt
0x02Subset AdvertisementQuảng bá chi tiết VLAN
0x03Advertisement RequestYêu cầu quảng bá
0x04Join MessageTham gia VTP Domain

c) Phân tích trường Configuration Revision Number

Đây là trường quan trọng nhất trong VTP Header:

  • Kiểu dữ liệu: 32-bit (4 byte).

  • Giá trị: Bắt đầu từ 0, tăng lên 1 mỗi khi có thay đổi VLAN (tạo, sửa, xóa).

  • Cơ chế so sánh: Khi nhận quảng bá, Switch so sánh Revision Number nhận được với Revision Number hiện tại:

    • Nếu nhận được > hiện tại → cập nhật VLAN Database.

    • Nếu nhận được ≤ hiện tại → bỏ qua.

  • Lưu ý: Chỉ Switch ở chế độ Server mới làm tăng Revision Number. Transparent không làm tăng.

⚠️ Cảnh báo: Revision Number cao có thể ghi đè toàn bộ VLAN Database của mạng → đây là nguyên nhân chính của sự cố VTP trong thực tế.

d) Phân tích trường MD5 Digest

  • Độ dài: 16 byte (128-bit).

  • Chức năng: Xác thực bản tin VTP khi có đặt password.

  • Cơ chế: MD5 được tính từ nội dung bản tin + password.

  • Lưu ý: Nếu password khác nhau → MD5 Digest khác nhau → bản tin bị từ chối.

e) Ví dụ bắt gói VTP bằng Wireshark

Khi bắt gói tin VTP trên cổng Trunk, Wireshark hiển thị:

VTP Header
    Version: 2
    Code: Summary Advertisement (0x01)
    Followers: 1
    Message Length: 80
    Domain Name Length: 3
    Domain Name: ABC
    Configuration Revision: 5
    Updater Identity: 192.168.1.1
    Update Timestamp: 2024-03-01 10:00:00
    MD5 Digest: 4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d

VTP Summary Advertisement
    Followers: 1
    VLAN Count: 5
    ...

2.3.1.2. VTP Advertisement

VTP sử dụng 3 loại bản tin quảng bá chính để đồng bộ VLAN Database:

a) Summary Advertisement (Quảng bá tóm tắt)

Mã Code: 0x01

Chức năng:

  • Được gửi định kỳ mỗi 5 phút hoặc ngay sau khi có thay đổi VLAN.

  • Chứa thông tin tóm tắt về VTP Domain và Revision Number.

  • Không chứa chi tiết VLAN – chỉ thông báo có thay đổi.

Cấu trúc:

TrườngMô tả
Version, Code, FollowersGiống VTP Header
Domain NameTên VTP Domain
Configuration RevisionRevision Number hiện tại
Updater IdentityIP của Switch cập nhật
Update TimestampThời gian cập nhật
MD5 DigestXác thực
VLAN CountSố lượng VLAN hiện có
FollowersSố bản tin Subset Advertisement theo sau

Cơ chế hoạt động:

  1. Server gửi Summary Advertisement.

  2. Client nhận, so sánh Revision Number.

  3. Nếu Revision Number cao hơn → Client gửi Advertisement Request yêu cầu chi tiết.

  4. Server gửi Subset Advertisement chứa chi tiết VLAN.

b) Subset Advertisement (Quảng bá chi tiết)

Mã Code: 0x02

Chức năng:

  • Chứa chi tiết từng VLAN (VLAN ID, tên, MTU, trạng thái…).

  • Được gửi khi:

    • Có thay đổi VLAN.

    • Client yêu cầu (qua Advertisement Request).

    • Theo sau Summary Advertisement khi có nhiều VLAN.

Cấu trúc mỗi VLAN trong Subset Advertisement:

TrườngĐộ dàiMô tả
VLAN ID2 byteID của VLAN (1–4094)
VLAN Name Length1 byteĐộ dài tên VLAN
VLAN Name32 byteTên VLAN (padding 0x00)
VLAN Type2 byteLoại VLAN (Ethernet, FDDI, Token Ring…)
VLAN State1 byteTrạng thái VLAN (Active/Suspended)
MTU Size2 byteKích thước MTU
802.10 VLAN ID4 byteID cho FDDI
VLAN Index2 byteChỉ số VLAN

c) Advertisement Request (Yêu cầu quảng bá)

Mã Code: 0x03

Chức năng:

  • Được gửi bởi Client khi:

    • Nhận Summary Advertisement có Revision Number cao hơn.

    • Vừa khởi động và cần đồng bộ VLAN Database.

    • Phát hiện có sự không đồng bộ.

  • Yêu cầu Server gửi Subset Advertisement chi tiết.

Cấu trúc:

TrườngMô tả
Version, CodeGiống VTP Header
Domain NameTên domain yêu cầu
Start ValueVLAN ID bắt đầu yêu cầu
MD5 DigestXác thực

d) Tóm tắt quy trình trao đổi bản tin VTP

Tóm tắt quy trình trao đổi bản tin VTP

Giải thích chi tiết 7 bước theo sơ đồ:

Bước 1: Thay đổi cấu hình tại Switch Server:

    • Khi quản trị viên tạo mới, sửa hoặc xóa VLAN trên VTP Server, file cấu hình vlan.dat được ghi nhận lại.

    • Ngay lập tức, chỉ số Revision Number tăng thêm (ví dụ: từ $200 \rightarrow 205$).

Bước 2: Server gửi bản tin Summary Advertisement:

    • Server gửi gói tin tóm tắt (Summary Advertisement) qua đường kết nối Trunk.

    • Bản tin này chứa: Tên VTP Domain, Revision Number mới ($205$), mã băm MD5 và dấu thời gian (Timestamp). Lưu ý: Bản tin này chưa chứa chi tiết từng VLAN, chỉ mang tính chất báo hiệu.

Bước 3: Client tiếp nhận và so sánh:

    • VTP Client nhận được bản tin Summary.

    • Client kiểm tra xem có cùng Domain và Password không, sau đó so sánh Revision Number nhận được ($205$) với chỉ số Revision hiện tại của chính nó (đang là $195$).

Bước 4: Client gửi Advertisement Request:

    • Vì nhận thấy Revision mới (205) > Revision cũ (195), Client biết rằng cấu hình của mình đã lỗi thời.

    • Client lập tức gửi ngược lại một bản tin yêu cầu (Advertisement Request) để xin toàn bộ nội dung cấu hình VLAN mới từ Server.

Bước 5: Server phản hồi bản tin Subset Advertisement:

    • Khi nhận được yêu cầu từ Client, Server đóng gói toàn bộ thông tin chi tiết các VLAN (VLAN ID, tên VLAN, trạng thái MTU, v.v.) vào một hoặc nhiều bản tin Subset Advertisement và gửi sang cho Client.

Bước 6: Client cập nhật cơ sở dữ liệu VLAN:

    • Client bóc tách dữ liệu từ Subset Advertisement và cập nhật trực tiếp vào file lưu trữ vlan.dat của mình.

Đồng thời, Client cập nhật Revision Number của nó lên bằng Server ($205$).

Bước 7: Chuyển tiếp quảng bá (Forward Advertisement):

  • Sau khi hoàn tất, Client tiếp tục chuyển tiếp (forward) các bản tin quảng bá VTP qua các cổng Trunk khác tới các Switch tiếp theo (Subsequent Switches) trong hệ thống để toàn mạng được đồng bộ.

e) Ví dụ minh họa quy trình

Giả sử Switch Server có Revision Number = 5, Client có Revision Number = 3.

  1. Server gửi Summary Advertisement (Rev = 5).

  2. Client nhận, thấy 5 > 3 → gửi Advertisement Request.

  3. Server gửi Subset Advertisement chứa VLAN 10, 20, 30.

  4. Client cập nhật VLAN Database → Revision Number = 5.

  5. Client chuyển tiếp Summary Advertisement đến Switch kế tiếp.