configure VTP on Cisco Catalyst Switch
VTP (VLAN Trunk Protocol) เป็นโปรโตคอลที่ช่วยลดขั้นตอนในการจัดการ VLAN ของสวิตซ์ในระบบเครือข่าย โดยมันทำให้สามารถทำการเปลี่ยนแปลงการตั้งค่า VLAN ต่าง ๆ บนจุดศูนย์กลางเพียงที่เดียว ไม่ต้องไปทำการตั้งค่าบนสวิตซ์ทุก ๆ ตัว ซึ่งทำให้การจัดการ VLAN บนระบบเครือข่ายมีความสะดวกมากยิ่งขึ้น
VTP ในปัจจุบันนี้ มีทั้งหมด 3 เวอร์ชั่น โดยความแตกต่าง ๆ หลัก ๆ ระหว่างเวอร์ชั่น 1 และเวอร์ชั่น 2 ก็คือ บนเวอร์ชั่น 2 นั้นมีความสามารถในการรองรับการทำงานร่วมกับ Token Ring VLAN ได้ ส่วนในเวอร์ชั่น 3 จะมีลักษณะการใช้งานที่ต่างกันออกไป ซึ่งจะไม่ขอพูดถึงในบทความนี้นะครับ
โปรโตคอล VTP นี้ เป็นโปรโตคอลที่ออกแบบและพัฒนาโดย Cisco สามารถนำไปใช้งานได้กับอุปกรณ์ Cisco เท่านั้น ทำงานในระดับ Layer 2 ทำงานผ่าน Trunk Port (จึงควรที่จะทำการตั้งค่า Trunk Port ที่ใช้เชื่อมต่อระหว่างสวิตซ์ให้เรียบร้อยก่อนการใช้งาน VTP) มีหน้าที่ในการจัดการข้อมูล VLAN ในระบบเครือข่าย โดยมันจะทำหน้าที่กระจายข้อมูลการตั้งค่า VLAN จากศูนย์กลางไปยังสวิตซ์ทุก ๆ ตัวภายในโดเมนเดียวกัน
การทำงานของ VTP จะมีอยู่ 3 โหมด โดยจะมีวิธีการทำงานที่ต่างกันออกไป ดังนี้
- Server : ในโหมดนี้ จะสามารถทำการสร้าง, แก้ไข, ลบ และรวมถึงการตั้งค่าอื่น ๆ ที่เกี่ยวข้องกับ VLAN เช่น การตั้งค่า VTP Pruning และการตั้งค่า VTP Version โดย VTP Server จะทำหน้าที่ในการประกาศข้อมูลที่เกี่ยวกับ VLAN ไปยังสวิตซ์ทุก ๆ ตัวที่อยู่ในโดเมนเดียวกันผ่านทาง Trunk Port เพื่อที่จะทำให้สวิตซ์ทุก ๆ ตัวในโดเมนมีข้อมูล VLAN ที่ตรงกัน และโดยปกติสวิตซ์จากโรงงานทุกตัวจะถูกกำหนดค่ามาในโหมดนี้
- Client : ในโหมดนี้ จะไม่สามารถสร้าง, แก้ไข หรือลบ VLAN ได้ ทำได้เพียงกระจายข้อมูล VLAN ที่ได้รับมาไปยังสวิตซ์ตัวอื่น ๆ เพื่อให้สวิตซ์ทุก ๆ ตัวในโดเมนมีข้อมูล VLAN ที่ตรงกัน
- Transparent : ในโหมดนี้ จะไม่มีส่วนร่วมในการใช้งาน VTP คือ สวิตซ์ที่ทำงานในโหมดนี้นั้นจะไม่รับเอาข้อมูล VLAN ที่ได้รับมาจากสวิตซ์ตัวอื่น ๆ มาใช้งาน แต่จะทำการส่งต่อข้อมูล VLAN นั้นไปยัง สวิตซ์ตัวอื่น ๆ ในโดเมนเดียวกันให้ โดยสวิตซ์ที่ทำงานในโหมดนี้จะสามารถสร้าง, แก้ไข และลบ VLAN ได้ เฉพาะบนตัวของมันเองเท่านั้น
ซึ่งจริง ๆ แล้วในการใช้งาน VTP ในระบบเครือข่าย สามารถใช้เพียงโหมด Client และ Server เท่านั้นก็ได้ แต่โหมด Transparent นี้จะมีไว้เพื่อที่อาจจะมีการใช้งานสวิตซ์บางตัวในระบบเครือข่าย ที่มีการใช้งาน VLAN ที่ไม่เหมือนกับสวิตซ์ตัวอื่น ๆ ในระบบ เช่น ไม่ต้องการให้ VLAN ที่มีอยู่บนสวิตซ์ที่ใช้โหมด Transparent ไปใช้งานอยู่บนสวิตซ์ตัวอื่น ๆ เป็นต้น
ทีนี้ก่อนที่จะเข้าสู่ตัวอย่างการตั้งค่า ยังมีค่าอีกค่านึงที่มีความสำคัญเป็นอย่างยิ่งต่อการใช้งาน VTP นั่นก็คือค่า Configuration Revision Number เป็นค่าตัวเลขขนาด 32 บิต ใช้แสดงระดับของการปรับปรุงแพ็ตเก็ต VTP โดยเมื่อมีการปรับปรุงแก้ไขค่าที่เกี่ยวข้องกับ VLAN เกิดขึ้นหนึ่งครั้ง ก็จะมีการเพิ่มค่านี้ขึ้น 1 ค่า เพื่อที่จะนำมาใช้ในการตรวจสอบว่า ข้อมูล VLAN ที่ได้รับมานี้ มีสถานะที่ update มากกว่าข้อมูลที่ใช้งานในปัจจุบันหรือไม่ โดยถ้าสวิตซ์พบว่าข้อมูล VLAN ที่ได้รับมามีค่า Configuration Revision Number สูงกว่าข้อมูลบนตัวมัน มันก็จะนำข้อมูล VLAN ที่ได้รับมานี้มาใช้งานทันที เนื่องจากมันจะเชื่อว่าเป็นข้อมูลที่ update กว่าของมัน ในการที่จะรีเซตค่านี้ใหม่ ก็ให้ทำการเปลี่ยนชื่อ VTP Domain ไปเป็นชื่ออื่น ๆ ก่อนที่จะเปลี่ยนชื่อกลับมาชื่อเดิมอีกครั้ง
ค่า Configuration Revision Number นี้ ควรให้ความสำคัญ โดยเฉพาะเมื่อมีการเพิ่มหรือปรับเปลี่ยนสวิตซ์ที่ใช้งานอยู่บนระบบเครือข่าย ก็ควรตรวจสอบก่อนว่าค่า Configuration Revision Number ของสวิตซ์ที่จะนำไปเพิ่มหรือปรับเปลี่ยนนี้ไม่สูงกว่าค่า Configuration Revision Number ที่มีการใช้งานอยู่ในปัจจุบัน เนื่องจาก จากประสบการณ์ตรงของผมนั้น ที่ไซต์ลูกค้าไซต์หนี่ง มีการใช้งาน VTP และมีสวิตซ์ตัวนึง (ที่ทำงานในโหมด Client) เกิดเสียขึ้นมา รุ่นน้องที่ออฟฟิต จึงรีบนำสวิตซ์ที่เคยมีการใช้งานจากที่อื่นอยู่แล้วไปเปลี่ยนให้ลูกค้า โดยที่สวิตซ์ตัวที่จะนำไปเปลี่ยนนี้ทำงานอยู่ในโหมด Client เช่นกัน แต่กลับลืมที่จะตรวจสอบค่า Configuration Revision Number นี้ ปรากฎว่า สวิตซ์ตัวนี้ดันมีค่า Configuration Revision Number ที่สูงกว่าสวิตซ์ทุก ๆ ตัวบนเครือข่ายนั้น ทำให้สวิตซ์ตัวอื่น ๆ เชื่อถือข้อมูล VLAN ของสวิตซ์ตัวนี้ แทนที่จะเชื่อถือค่า VTP ที่ได้รับมาจาก VTP Server แล้วทำยังไงล่ะทีนี้ งานเข้าสิครับพี่น้อง ระบบล่มทั้งระบบ ไม่สามารถใช้งานได้ เนื่องจากค่า VLAN Databased ถูกลบออกไปหมด ก็ต้องมาทำการ Add Vlan เพิ่มเข้าไปใหม่เอาครับ
เมื่อรู้จักกับค่าต่าง ๆ ที่มีการใช้งานกันไปแล้ว เรามาดูขั้นตอนการตั้งค่าและใช้งาน VTP ภายในระบบเครือข่าย กันดีกว่าครับ
- ทำการตั้งค่า VTP Domain บนสวิตซ์ทุกตัวให้ตรงกัน
- ทำการตั้งค่าโหมดการทำงานของ VTP บนสวิตซ์ ว่าจะให้ตัวไหนทำหน้าที่เป็น Server ตัวไหนเป็น Client
- ทำการตั้งค่าที่เกี่ยวข้องกับ VTP อื่น ๆ เช่น เวอร์ชั่นที่จะใช้งานหรือพาสเวิร์ดในการเข้าใช้งาน Domain บนสวิตซ์ทุก ๆ ตัว
- ทำการตั้งค่าและตรวจสอบว่าพอร์ตที่เชื่อมต่อระหว่างสวิตซ์นั้นได้กำหนดเป็น Trunk Port เอาไว้เรียบร้อยแล้ว
- ทำการสร้างหรือปรับแต่งข้อมูล VLAN บนสวิตซ์ที่ทำหน้าที่เป็น VTP Server
- ตรวจสอบข้อมูล VLAN บนสวิตซ์แต่ละตัว
สำหรับตัวอย่างการตั้งค่าในวันนี้นั้น ก็ตามรูปด้านล่างเลยครับ คือจะมีสวิตซ์ทั้งหมด 4 ตัว โดยใช้ชื่อว่า Switch A, B,C และ D เรียงตามลำดับนะครับ โดย Switch A นั้นทำงานในโหมด VTP Server, Switch B และ D ทำงานในโหมด VTP Client, และ Switch C ทำงานในโหมด VTP Transparent ครับ
ในขั้นตอนแรกนี้ก็จะเป็นการตั้งค่าที่เกี่ยวกับ VTP ทั้งหมดบนสวิตซ์ทุก ๆ ตัวนะครับ ซึ่งก็คือการกำหนดค่าโดเมน, การกำหนดโหมดการทำงาน, การตั้งค่า VTP Version, การตั้ง Password ลงบนสวิตซ์แต่ละตัวครับ และสามารถใช้คำสั่ง "show vtp status" ในการตรวจสอบการตั้งค่าได้ครับ
ตัวอย่าง
Switch-A(config)#vtp domain running-config
Changing VTP domain name from NULL to running-config
Switch-A(config)#vtp mode server
Device mode already VTP SERVER.
Switch-A(config)#vtp version 1
VTP mode already in V1.
Switch-A(config)#vtp password cisco123
Setting device VLAN database password to cisco123
Switch-B(config)#vtp domain running-config
Switch-B(config)#vtp mode client
Switch-B(config)#vtp version 1
Switch-B(config)#vtp password cisco123
Switch-C(config)#vtp domain running-config
Switch-C(config)#vtp mode transparent
Switch-C(config)#vtp version 1
Switch-C(config)#vtp password cisco123
Switch-D(config)#vtp domain running-config
Switch-D(config)#vtp mode client
Switch-D(config)#vtp version 1
Switch-D(config)#vtp password cisco123
Switch-A(config)#do show vtp status
VTP Version : 2
Configuration Revision : 1
Maximum VLANs supported locally : 255
Number of existing VLANs : 5
VTP Operating Mode : Server
VTP Domain Name : running-config
VTP Pruning Mode : Disabled
VTP V2 Mode : Disabled
VTP Traps Generation : Disabled
MD5 digest : 0xFF 0x86 0xCC 0x90 0x01 0x59 0xB5 0x1F
Configuration last modified by 0.0.0.0 at 3-1-93 00:19:24
Local updater ID is 0.0.0.0 (no valid interface found)
จากนั้นก็ให้ทำการตั้งค่าหรือตรวจสอบว่าพอร์ตที่ใช้ในการเชื่อมต่อระหว่างสวิตซ์ทั้งหมดเป็น Trunk Port โดยการตั้งค่านี้จะต้องทำบนสวิตซ์ทุก ๆ ตัว และทุก ๆ พอร์ตที่ใช้ในการเชื่อมต่อระหว่างสวิตซ์นะครับ (จากตัวอย่างด้านล่าง คำสั่ง "switchport trunk encapsulation dot1q" ใช้กับสวิตซ์บางรุ่นเท่านั้น)
ตัวอย่าง
Switch-A(config)#interface GigabitEthernet 1/1
Switch-A(config-if)#switchport trunk encapsulation dot1q
Switch-A(config-if)#switchport mode trunk
Switch-A(config-if)#exit
Switch-B#show interfaces trunk
Port Mode Encapsulation Status Native vlan
Gig1/1 on 802.1q trunking 1
Gig1/2 on 802.1q trunking 1
Port Vlans allowed on trunk
Gig1/1 1-1005
Gig1/2 1-1005
Port Vlans allowed and active in management domain
Gig1/1 1
Gig1/2 1
Port Vlans in spanning tree forwarding state and not pruned
Gig1/1 1
Gig1/2 1
เมื่อทำการตั้งค่าและตรวจสอบสถานะของพอร์ตที่ใช้ในการเชื่อมต่อระหว่างสวิตซ์ว่าเป็น Trunk Port เรียบร้อยแล้ว ในขั้นตอนต่อมาก็ให้ทำการตั้งค่า VLAN ที่เราต้องการจะใช้งานในระบบเครือข่ายของเรา ลงในสวิตซ์ที่ทำหน้าที่เป็น VTP Server ได้เลยครับ
ตัวอย่าง
Switch-A(config)#vlan 10
Switch-A(config-vlan)#name Engineer
Switch-A(config-vlan)#exit
Switch-A(config)#vlan 20
Switch-A(config-vlan)#name Sale
Switch-A(config-vlan)#exit
เมื่อทำการกำหนดค่า VLAN ลงบนสวิตซ์ที่ทำหน้าที่เป็น VTP Server แล้ว ก็ให้ตรวจสอบบนสวิตซ์แต่ละตัวนะครับว่ามี VLAN ที่เราทำการตั้งค่าไปหรือไม่
ตัวอย่าง
Switch-A(config)#do 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
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig1/2
10 Engineer active
20 Sale active
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Switch-B#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
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
10 Engineer active
20 Sale active
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Switch-C#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
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
Switch-D#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
Fa0/9, Fa0/10, Fa0/11, Fa0/12
Fa0/13, Fa0/14, Fa0/15, Fa0/16
Fa0/17, Fa0/18, Fa0/19, Fa0/20
Fa0/21, Fa0/22, Fa0/23, Fa0/24
Gig1/2
10 Engineer active
20 Sale active
1002 fddi-default active
1003 token-ring-default active
1004 fddinet-default active
1005 trnet-default active
จากตัวอย่างด้านบนจะเห็นว่า VLAN ที่เราทำการกำหนดค่าลงบนสวิตซ์ที่ทำหน้าที่ VTP Server นั้น จะถูกนำไปใช้งานบนสวิตซ์ที่ทำงานในโหมด VTP Client แต่สวิตซ์ที่ทำงานในโหมด VTP Transpanrent นั้นจะไม่นำ VLAN ดังกล่าวมาใช้งาน และเพื่อน ๆ ก็สามารถทดลองเพิ่ม VLAN ลงบนสวิตซ์ที่ทำงานในโหมด VTP Transparent เพิ่อทดสอบได้ว่า VLAN ที่ทำการกำหนดไปนี้จะถูกส่งต่อไปใช้งานในสวิตซ์ตัวอื่น ๆ หรือไม่ครับ
ตัวอย่าง
Switch-C(config)#vlan 30
Switch-C(config-vlan)#name Finance
Switch-C(config-vlan)#exit
เมื่อทำการเพิ่ม VLAN ลงบนสวิตซ์ที่ทำงานในโหมด VTP Transparent เรียบร้อยแล้วก็ให้ตรวจสอบ VLAN บนสวิตซ์แต่ละตัวอีกครั้งนะครับ ว่ามีความแตกต่างจากเดิมอย่างไรบ้าง
เพียงเท่านี้ก็เรียบร้อยแล้วครับกับการใช้งาน VTP ซึ่งจะช่วยในการอำนวยความสะดวกในการตั้งค่า VLAN ได้มากทีเดียว เนื่องจากเราจะสามารถทำการเปลี่ยนแปลงค่า VLAN ต่าง ๆ ในระบบเครือข่ายของเราได้จากศูนย์กลางเพียงที่เดียวเท่านั้น ไม่ต้องไปทำการตั้งค่าลงในสวิตซ์ทุก ๆ ตัวครับ
ในบทความนี้เพื่อน ๆ สามารถที่จะทดลองทำ LAB ได้ด้วยตัวเองแบบง่าย ๆ นะครับ เพียงแค่นำสวิตซ์มาต่อกันตามภาพ (อาจจะใช้ Packet Tracer ก็ได้ครับ) ก็สามารถที่จะทดลองการตั้งค่าตามตัวอย่างในบทความนี้ได้แล้วครับ
แต่ในการใช้งาน VTP นั้นก็มีข้อควรระวังอย่างทีผมบอกไว้ในตอนต้นนะครับ คือค่า Configuration Revision Number ที่จะต้องระวังไม่นำสวิตซ์ที่ทำงานในโหมด VTP Client ที่มีค่า Configuration Revision Number นี้สูงกว่า VTP Server เนื่องจากมันจะส่ง Update ไปยัง VTP Server ให้มี VLAN ตรงกับ VTP Client ตัวนั้น ซึ่งจะทำให้งานเข้าอย่างหนักมาก ๆ ได้ครับ วิธีแก้หรือป้องกันง่าย ๆ ก็คือให้ทำการเปลียนชื่อ VTP Domain ก่อนการใช้งานครับ (การเปลี่ยนชื่อ VTP Domain จะเป็นการรีเซตค่า Configuration Revision Number)
เยี่ยยมครับ
ReplyDeleteขอบคุณครับ
ReplyDelete