ยินดีต้อนรับสู่ show running-config ครับ

บล็อก show running-config นี้สร้างไว้เพื่อเป็นแหล่งรวบรวมเทคนิคการตั้งค่าอุปกรณ์เครือข่าย Cisco ไม่ว่าจะเป็น Cisco IOS Router, Cisco Catalyst Swtich, Cisco ASA Firewall, Cisco Mars เป็นต้น รวมทั้งอาจจะมีเทคนิคการตั้งค่าอุปกรณ์ในยี่ห้ออื่น ๆ บ้างเล็กน้อยครับ

ซึ่งบทความในบล็อกนี้ก็จะรวบรวมมาจากประสบการณ์ส่วนตัวของกระผมเองครับ (หากมีข้อผิดพลาดก็ขออภัยไว้ล่วงหน้าเลยละกันนะครับ) และก็อยากใช้พื้นที่แห่งนี้เป็นแหล่งในการแลกเปลี่ยนความรู้ รวมไปถึงวิธีการหรือเทคนิคการตั้งค่าอุปกรณ์เครือข่าย กับทุก ๆ คนครับ

Wednesday, March 23, 2011

การตั้งค่าและใช้งาน VTP บน Cisco Catalyst Switch

configure VTP on Cisco Catalyst Switch

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 Mode           ซึ่งจริง ๆ แล้วในการใช้งาน 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 ภายในระบบเครือข่าย กันดีกว่าครับ

  1. ทำการตั้งค่า VTP Domain บนสวิตซ์ทุกตัวให้ตรงกัน
  2. ทำการตั้งค่าโหมดการทำงานของ VTP บนสวิตซ์ ว่าจะให้ตัวไหนทำหน้าที่เป็น Server ตัวไหนเป็น Client
  3. ทำการตั้งค่าที่เกี่ยวข้องกับ VTP อื่น ๆ เช่น เวอร์ชั่นที่จะใช้งานหรือพาสเวิร์ดในการเข้าใช้งาน Domain บนสวิตซ์ทุก ๆ ตัว
  4. ทำการตั้งค่าและตรวจสอบว่าพอร์ตที่เชื่อมต่อระหว่างสวิตซ์นั้นได้กำหนดเป็น Trunk Port เอาไว้เรียบร้อยแล้ว
  5. ทำการสร้างหรือปรับแต่งข้อมูล VLAN บนสวิตซ์ที่ทำหน้าที่เป็น VTP Server
  6. ตรวจสอบข้อมูล VLAN บนสวิตซ์แต่ละตัว

          สำหรับตัวอย่างการตั้งค่าในวันนี้นั้น ก็ตามรูปด้านล่างเลยครับ คือจะมีสวิตซ์ทั้งหมด 4 ตัว โดยใช้ชื่อว่า Switch A, B,C และ D เรียงตามลำดับนะครับ โดย Switch A นั้นทำงานในโหมด VTP Server, Switch B และ D ทำงานในโหมด VTP Client, และ Switch C ทำงานในโหมด VTP Transparent ครับ

VTP           ในขั้นตอนแรกนี้ก็จะเป็นการตั้งค่าที่เกี่ยวกับ 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)

2 comments :