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ểm | Mô tả |
|---|---|
| Giao thức nền | Lớp 2 (Data Link Layer) |
| Địa chỉ MAC đích | 01-00-0C-CC-CC-CC (Multicast Cisco) |
| Địa chỉ MAC nguồn | MAC của cổng Trunk gửi |
| EtherType | 0x2003 (VTP) hoặc 0x2004 (VTP Version 3) |
| Encapsulation | Chỉ gửi qua cổng Trunk (802.1Q hoặc ISL) |
| Chu kỳ gửi | Mặc định 5 phút (300 giây) |
| Kích thước tối đa | 1500 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
| Code | Tên bản tin | Mô tả |
|---|---|---|
| 0x01 | Summary Advertisement | Quảng bá tóm tắt |
| 0x02 | Subset Advertisement | Quảng bá chi tiết VLAN |
| 0x03 | Advertisement Request | Yêu cầu quảng bá |
| 0x04 | Join Message | Tham 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ị:
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ường | Mô tả |
|---|---|
| Version, Code, Followers | Giống VTP Header |
| Domain Name | Tên VTP Domain |
| Configuration Revision | Revision Number hiện tại |
| Updater Identity | IP của Switch cập nhật |
| Update Timestamp | Thời gian cập nhật |
| MD5 Digest | Xác thực |
| VLAN Count | Số lượng VLAN hiện có |
| Followers | Số bản tin Subset Advertisement theo sau |
Cơ chế hoạt động:
Server gửi Summary Advertisement.
Client nhận, so sánh Revision Number.
Nếu Revision Number cao hơn → Client gửi Advertisement Request yêu cầu chi tiết.
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ài | Mô tả |
|---|---|---|
| VLAN ID | 2 byte | ID của VLAN (1–4094) |
| VLAN Name Length | 1 byte | Độ dài tên VLAN |
| VLAN Name | 32 byte | Tên VLAN (padding 0x00) |
| VLAN Type | 2 byte | Loại VLAN (Ethernet, FDDI, Token Ring…) |
| VLAN State | 1 byte | Trạng thái VLAN (Active/Suspended) |
| MTU Size | 2 byte | Kích thước MTU |
| 802.10 VLAN ID | 4 byte | ID cho FDDI |
| VLAN Index | 2 byte | Chỉ 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ường | Mô tả |
|---|---|
| Version, Code | Giống VTP Header |
| Domain Name | Tên domain yêu cầu |
| Start Value | VLAN ID bắt đầu yêu cầu |
| MD5 Digest | Xác thực |
d) 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 Advertisementvà 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 Advertisementvà cập nhật trực tiếp vào file lưu trữvlan.datcủ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.
Server gửi Summary Advertisement (Rev = 5).
Client nhận, thấy 5 > 3 → gửi Advertisement Request.
Server gửi Subset Advertisement chứa VLAN 10, 20, 30.
Client cập nhật VLAN Database → Revision Number = 5.
Client chuyển tiếp Summary Advertisement đến Switch kế tiếp.