เมื่อเรามี Switch หลายตัวในระบบเครือข่าย เช่น มี Switch อยู่ 20 ตัว และต้องใช้งาน VLAN ทั้งหมด 50 VLAN หากต้องเข้าไปสร้าง VLAN ทีละตัวบน Switch ทุกตัว จะต้องใช้เวลาเป็นจำนวนมาก และยังมีโอกาสตั้งค่าผิดพลาดได้ง่าย ปัญหานี้แก้ได้ด้วยฟีเจอร์ที่ชื่อว่า VTP (VLAN Trunking Protocol) ซึ่งช่วยให้เราสร้าง แก้ไข หรือลบ VLAN บน Switch เพียงตัวเดียว แล้ว Switch ตัวอื่น ๆ ในระบบจะ Sync ข้อมูล VLAN ตามให้โดยอัตโนมัติ
VTP เป็น Protocol ของ Cisco ที่ทำงานในลักษณะ Server-Client โดยส่งข้อมูล VLAN (VTP Advertisement) ผ่าน Trunk Port ระหว่าง Switch ทั้งนี้ VTP จะจัดการเฉพาะฐานข้อมูล VLAN เท่านั้น ส่วนการกำหนดว่า Interface ใดอยู่ VLAN ใด (Access Port) ผู้ดูแลระบบยังต้องตั้งค่าเองบน Switch แต่ละตัว
การใช้งาน VTP จะช่วยให้เรา:
- สร้าง / แก้ไข / ลบ VLAN จากที่เดียว แล้วกระจายไปยัง Switch ทุกตัวใน Domain เดียวกัน
- ลดเวลาการตั้งค่าและลดความผิดพลาดจากการสร้าง VLAN ไม่ครบหรือชื่อไม่ตรงกัน
- มั่นใจได้ว่าฐานข้อมูล VLAN ของทุก Switch ตรงกันเสมอ
สิ่งที่ต้องรู้ก่อนตั้งค่า VTP
1. VTP Domain
คือชื่อกลุ่มของ VTP ซึ่ง Switch จะแลกเปลี่ยนข้อมูล VLAN กันได้ก็ต่อเมื่อมีชื่อ Domain ตรงกันเท่านั้น
2. VTP Mode
VTP มี 3 Mode โดยแต่ละ Mode ต่างกันดังนี้
| Server | Client | Transparent | |
|---|---|---|---|
| สร้าง/แก้ไข/ลบ VLAN | ได้ | ไม่ได้ | ได้ (เฉพาะ Local) |
| Sync ข้อมูล VLAN ตาม Server | Sync | Sync | ไม่ Sync |
| ส่งต่อ VTP Advertisement | ส่งต่อ | ส่งต่อ | ส่งต่อ |
ค่า Default ของ Cisco Switch คือ Server Mode และในหนึ่ง Domain สามารถมี VTP Server ได้มากกว่า 1 ตัว
3. Configuration Revision Number
เป็นตัวเลขที่เริ่มต้นจาก 0 และจะเพิ่มขึ้นทีละ 1 ทุกครั้งที่มีการเพิ่ม ลบ หรือแก้ไข VLAN เมื่อ Switch ได้รับ VTP Advertisement จะเปรียบเทียบค่า Revision กับของตัวเอง ถ้าค่าที่ได้รับมาสูงกว่า จะ Update ฐานข้อมูล VLAN ของตัวเองทันที แต่ถ้าน้อยกว่าจะ Drop ทิ้ง
4. VTP Password
โดยปกติ VTP Advertisement ส่งแบบ Clear Text เราสามารถเพิ่มความปลอดภัยได้ด้วยการตั้ง Password ซึ่งต้องตั้งให้ตรงกันทุกตัวใน Domain
** เงื่อนไขที่ VTP จะทำงานได้ คือ ชื่อ VTP Domain ต้องตรงกัน, VTP Password ต้องตรงกัน, VTP Version ต้องตรงกัน และ Link ระหว่าง Switch ต้องเป็น Trunk เท่านั้น เพราะ VTP Advertisement ส่งผ่าน Trunk Port
Lab Topology
บทความนี้จะใช้ Switch 3 ตัว เชื่อมต่อกันด้วย Trunk Link โดยกำหนดให้ SW1 เป็น VTP Server ส่วน SW2 และ SW3 เป็น VTP Client

ขั้นตอนการตั้งค่า
1. ตั้งค่า Trunk Port ระหว่าง Switch
ตั้งค่า Interface ที่เชื่อมระหว่าง Switch ให้เป็น Trunk ทุกตัว
SW1#configure terminal SW1(config)#interface gigabitEthernet 0/1 SW1(config-if)#switchport trunk encapsulation dot1q SW1(config-if)#switchport mode trunk SW1(config-if)#exit
ทำเช่นเดียวกันบน SW2 (Gi0/1, Gi0/2) และ SW3 (Gi0/1) จากนั้นตรวจสอบด้วยคำสั่ง show interfaces trunk ต้องเห็น Port อยู่ในสถานะ trunking
SW1#show interfaces trunk
Port Mode Encapsulation Status Native vlan
Gi0/1 on 802.1q trunking 1
2. ตั้งค่า VTP บน SW1 (VTP Server)
กำหนดชื่อ Domain และ Password (SW1 เป็น Server Mode อยู่แล้วโดย Default จึงไม่จำเป็นต้องใส่คำสั่ง vtp mode server แต่แนะนำให้ใส่เพื่อทบทวนความเข้าใจของผู้คอนฟิกเอง)
SW1(config)#vtp mode server
SW1(config)#vtp domain ABLENET
SW1(config)#vtp password abc123
3. ตั้งค่า VTP บน SW2 และ SW3 (VTP Client)
SW2(config)#vtp mode client
SW2(config)#vtp domain ABLENET
SW2(config)#vtp password abc123
SW3(config)#vtp mode client
SW3(config)#vtp domain ABLENET
SW3(config)#vtp password abc123
ตรวจสอบสถานะ VTP ด้วยคำสั่ง show vtp status
SW2#show vtp status
VTP Version : running VTP1 (VTP2 capable)
Configuration Revision : 0
Maximum VLANs supported locally : 1005
Number of existing VLANs : 5
VTP Operating Mode : Client
VTP Domain Name : ABLENET
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0x8C 0x29 0x40 0xDD 0x7F 0x7A 0x63 0x17
จุดที่ต้องดูคือ VTP Operating Mode และ VTP Domain Name ต้องถูกต้องตามที่ออกแบบไว้
4. สร้าง VLAN บน VTP Server
สร้าง VLAN ที่ต้องการใช้งานบน SW1 เพียงตัวเดียว
SW1(config)#vlan 10 SW1(config-vlan)#name SALE SW1(config-vlan)#exit SW1(config)#vlan 20 SW1(config-vlan)#name ENGINEER SW1(config-vlan)#exit SW1(config)#vlan 30 SW1(config-vlan)#name SERVER SW1(config-vlan)#exit
5. ตรวจสอบผลลัพธ์การ Sync บน SW2 และ SW3
กลับมาดูที่ SW2 และ SW3 โดยไม่ต้องสร้าง VLAN เอง จะพบว่า VLAN 10, 20, 30 ถูกสร้างให้โดยอัตโนมัติ
SW2#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
Fa0/5, Fa0/6, Fa0/7, Fa0/8
10 SALE active
20 ENGINEER active
30 SERVER active
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup
และเมื่อดูค่า Revision จะเห็นว่าเพิ่มขึ้นเป็น 3 (สร้าง VLAN ไป 3 ครั้ง) ตรงกันทุกตัว
SW2#show vtp status
VTP Version : running VTP1 (VTP2 capable)
Configuration Revision : 3
VTP Operating Mode : Client
VTP Domain Name : ABLENET
หากทดลองสร้าง VLAN บน SW2 ซึ่งเป็น Client Mode จะไม่สามารถทำได้ และระบบจะแจ้งเตือนดังนี้
SW2(config)#vlan 50 %VTP VLAN configuration not allowed when device is in CLIENT mode.
6. กำหนด Access Port ให้กับเครื่อง Client
VTP จัดการเฉพาะฐานข้อมูล VLAN ส่วนการ Mapping Port เข้า VLAN ยังต้องตั้งค่าเองบน Switch แต่ละตัว เช่น ต้องการให้ Port Fa0/1 ของ SW2 อยู่ VLAN 10
SW2(config)#interface fastEthernet 0/1 SW2(config-if)#switchport mode access SW2(config-if)#switchport access vlan 10 SW2(config-if)#exit
ตรวจสอบด้วย show vlan brief จะเห็น Fa0/1 ถูกย้ายมาอยู่ใน VLAN 10 แล้ว
SW2#show vlan brief
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Fa0/2, Fa0/3, Fa0/4, Fa0/5
10 SALE active Fa0/1
20 ENGINEER active
30 SERVER active
ข้อควรระวัง : Revision Number อาจทำให้ลบ VLAN ทั้งระบบ
VTP Server ก็เป็น VTP Client ในตัวเอง หมายความว่า Switch ทุกตัว (รวมถึง Server) จะ Sync ตามใครก็ตามที่มี Revision Number สูงกว่า สถานการณ์อันตรายที่พบบ่อยคือ การนำ Switch เก่าที่เคยใช้ทดสอบใน Lab (ซึ่งมีค่า Revision สูง และชื่อ Domain ตรงกัน) มาเสียบเข้าระบบ Production Switch ทั้งระบบจะ Sync ตามฐานข้อมูล VLAN ของ Switch ตัวนั้นทันที ซึ่งอาจทำให้ VLAN ทั้งหมดหายไปทั้งระบบ
ดังนั้น ก่อนนำ Switch ใหม่หรือ Switch มือสองเข้าระบบ ให้ตรวจสอบค่า Revision ด้วย show vtp status ก่อนทุกครั้ง และ Reset ค่า Revision ให้เป็น 0 ซึ่งทำได้ 2 วิธีคือ เปลี่ยน VTP Mode เป็น Transparent แล้วเปลี่ยนกลับ หรือเปลี่ยนชื่อ VTP Domain เป็นชื่ออื่นชั่วคราวแล้วเปลี่ยนกลับ
SW-New(config)#vtp mode transparent
Setting device to VTP TRANSPARENT mode.
SW-New(config)#vtp mode client
Setting device to VTP CLIENT mode.
SW-New#show vtp status | include Revision
Configuration Revision : 0