จากบทความ https://www.ablenet.co.th/2023/05/02/vpc/ เป็นบทความที่สอนในการ Configure vPC บน Nexus Switch ว่าจะต้อง Configure อะไรบ้าง เป็น Step by Step ไปครับ
ในบทความนี้ เราจะมาเรียนรู้ถึงส่วนประกอบของ vPC ว่ามีอะไรบ้าง ต้องใช้อะไรบ้าง รวมถึง vPC Failure Scenario ต่างๆ ที่อาจจะเกิดขึ้นกับ Nexus Switch ว่า ถ้าเกิดขึ้นแล้ว ระบบเครือข่ายของเรา จะเป็นอย่างไร ยังสามารถใช้งานได้อยู่หรือไม่ครับ
vPC คืออะไร
vPC (Virtual Port Channel) หรือที่เรียกว่า multichassis EtherChannel (MEC) เป็นฟีเจอร์ บน Nexus Switch ที่สามารถใช้งาน Port-Channel ข้าม หลายๆ Switch ได้ ซึ่งจะมีความคล้ายคลึงกับ ฟีเจอร์ Virtual Switch System (VSS) ที่ใช้งานบน Switch ตระกูล Catalyst เพียงแต่แตกต่างกันตรงที่ VSS จะทำงานโดยใช้ Single Control Plane แต่ทางฝั่ง vPC จะทำงานแบบ Dual Control Plane
ซึ่งเมื่อ Nexus Switch ทำงานแบบ Dual Control Plane นั่นหมายความว่า ตอนที่เรา Configure จะต้อง Config แยก ไปแต่ละ Switch ครับ เช่น สร้าง VLAN ก็ต้องทำแยกบน Switch แต่ละตัวครับ
vPC Architecture Components
ส่วนประกอบของ vPC จะสามารถสรุปภาพรวมได้ จากภาพ ดังนี้ครับ
Figure 1 vPC Architecture Components
1.) vPC Domain – เป็นการสร้าง Domain ของ Nexus Switch เพื่อให้อุปกรณ์ปลายทาง เช่น Leaf Switch หรือ Firewall หรือ Server มองเห็น Nexus Switch เป็นตัวเดียวกันในทาง Logical เมื่อ Packet วิ่ง จะได้วิ่งถูกทาง
2.) vPC Peer Switch – คือ Nexus Switch ที่เชื่อมต่อกันด้วย Peer-Link ซึ่งจะเห็นว่า มี 1 ตัว เป็น Primary และอีกตัว เป็น Secondary
3.) vPC Peer Link – เป็นสิ่งที่สำคัญที่สุดใน vPC ใช้ในการ Synchronize State ระหว่าง vPC Peer Switch ผ่าน vPC Control Packet (เช่น STP, Mac Address Table, Routing Information) ซึ่งทำให้เกิด illusion (ภาพลวงตา) ว่า Switch ทั้ง 2 ตัว ทำงานใน Control Plane เดียวกัน แม้ว่า Switch แต่ละตัว จะมี Control Plane ของตัวเอง
ซึ่งการ Synchronize นี้ จะช่วยให้ระบบ
- สามารถทำงานได้แบบ Redundant
- มีการส่งข้อมูล multicast, broadcast, unknown unicast และ orphaned port traffic
- ถ้า Nexus มีการใช้งานในลักษณะ L3 จะมีหน้าที่ในการทำงานของ HSRP หรือ VRRP อีกด้วย
4.) vPC Peer Keepalive Link – ทำงานใน Layer 3 (คุยกันด้วย IP) ช่วยตรวจสอบการทำงานของ vPC Peer Switch ว่ายังทำงานอยู่หรือไม่ โดยเฉพาะในกรณีที่ Peer Link มีปัญหา
มีหน้าที่ เป็นช่องทางสำรอง ในการทดสอบ Peer Link ว่า Switch อีกตัว มีปัญหา หรือ สาย Peer Link มีปัญหา หาก Peer Link ล้มเหลว แต่ Peer Keepalive Link ยังคงทำงานอยู่ จะช่วยให้ระบบสามารถระบุได้ว่า Switch อีกตัว ยังคงทำงานได้ตามปกติ หรือไม่ โดยส่ง Packet IP/UDP ผ่าน Port 3200 เพื่อเช็คว่า Switch อีกตัว ยังทำงานอยู่ โดยมี Interval 1 วินาที (ส่ง Packet เพื่อเช็คระหว่างกัน) หากไม่ได้รับการตอบกลับใน 5 วินาที ก็จะถือว่า Peer Link ล้มเหลว หรือ Switch มีปัญหา
5.) vPC Member Port – คือ Port หรือ Interface บน Nexus Switch และ อุปกรณ์ปลายทาง ที่เป็นสมาชิกใน vPC เดียวกัน
6.) Cisco Fabric Services (CFS) – เป็น Protocal ที่ใช้ในการซิงโครไนซ์สถานะและการตั้งค่า (stateful synchronization and configuration) ระหว่างสวิตช์ที่เป็น vPC peers โดย CFS จะรันโดยไม่ต้องมีการตั้งค่าใดๆ จาก admin ทำงานร่วมกันกับ vPC Peer-Link โดยมีหน้าที่ ดังนี้
- Compatibility Checks : ทำการตรวจสอบ Compatibility ของพอร์ตที่เป็น vPC Member Ports ก่อนที่จะสร้าง Port-Channel หรือ EtherChannel เพื่อยืนยันว่าพอร์ตเหล่านี้ Config เข้ากันได้ (เช่น Port Speed, VLAN เป็นต้น)
- IGMP Snooping Status Synchronization:
- IGMP Snooping เป็นฟังก์ชันที่ใช้ในการจัดการการรับส่งข้อมูล multicast ในเครือข่าย
- CFS ซิงโครไนซ์สถานะของ IGMP Snooping ระหว่าง vPC peers เพื่อให้มั่นใจว่าการจัดการ multicast traffic จะเป็นไปอย่างสอดคล้องและไม่มีการส่งข้อมูลซ้ำซ้อน
- Monitoring the Status of vPC Member Ports:
- CFS ช่วยในการตรวจสอบสถานะของ vPC Member Ports ทั้งหมด เพื่อดูว่าแต่ละ Port ยังคงทำงานอย่างถูกต้องหรือไม่
- ถ้ามีปัญหาหรือพอร์ตใดหยุดทำงาน CFS จะช่วยแจ้งสถานะนี้ให้ทั้งสองสวิตช์ในระบบ vPC ทราบ
- ARP Table Synchronization:
- ARP (Address Resolution Protocol) เป็นโปรโตคอลที่ใช้ในการแปลงที่อยู่ IP เป็นที่อยู่ MAC
- CFS ซิงโครไนซ์ ARP Table ระหว่างสวิตช์สองตัวที่เป็น vPC peers เพื่อให้มั่นใจว่าทั้งสองสวิตช์มีข้อมูลที่ตรงกันและสามารถแก้ไขที่อยู่ IP เป็น MAC ได้อย่างถูกต้องในทุกพอร์ต
7.) Orphan Device – คืออุปกรณ์ที่เชื่อมต่อกับระบบ vPC ผ่านเพียงสวิตช์เดียว ถ้าสวิตช์ที่ Orphan Device เชื่อมต่ออยู่ เกิด Down ขึ้นมา อุปกรณ์นี้จะ Loss ไปเลย เพราะไม่มี link เชื่อมไปยังสวิตช์ vPC Peer อีกตัว
8.) Orphan Port – เป็น Port ที่เชื่อมต่อระหว่าง Switch และ Orphan Device ซึ่งไม่ได้เป็น vPC Member Port แต่เป็น vPC VLAN เฉยๆ เช่น Trunk หรือ Access Port
- ถ้า vPC Peer-Link Down พอร์ตที่เป็น vPC Member Ports จะถูก Shutdown อัตโนมัติ เพื่อป้องกัน loop และ split-brain scenario แต่ Orphan Ports จะยังคงทำงานอยู่ (แล้วแต่ Config)
- ปัญหาคือ หากมีอุปกรณ์ที่ตั้งค่าเป็นแบบ NIC teaming (เช่น Server) หรือการตั้งค่าแบบ active/standby และเชื่อมต่อกับสวิตช์ทั้งสองตัวในระบบ vPC อาจเกิด Loop ได้ เนื่องจาก Orphan Port ยังคงทำงานอยู่แม้ Peer-Link จะล้มเหลว
- เราสามารถแก้ไขได้ โดยใช้คำสั่ง orphan port suspend บน Port ที่เชื่อมต่อ ระหว่าง Orphan Device และ Nexus Switch หรือทำ vPC Member Port บน Nexus Switch ทั้ง 2 ตัว กับ Orphan Device เพื่อให้ Packet สามารถวิ่งได้อย่างถูกทาง
vPC Failure Scenario
จะเป็นการแนะนำ Scenario ต่างๆ เมื่อ Link บาง Link Down ลงไป จะเกิดอะไรขึ้นกับระบบของเรา
1.) vPC Peer-Link Failure
Figure 2 vPC Peer Link Failure
ในกรณีนี้ vPC Peer-Link Failed –> ถ้า vPC Peer Switch Active ทั้ง 2 ตัว –> vPC ที่เป็น Secondary จะทำการ Shutdown vPC Member Port ทั้งหมด –> Switch ที่เป็น vPC Member ก็จะวิ่งผ่าน Nexus Primary –> ยังคงทำงานได้ ไม่มีปัญหา
2.) vPC Peer Keepalive Link Failure
Figure 3 vPC KeepAlive Link Failure
ในกรณีที่ vPC Peer Keepalive Link Failed –> จะไม่มีอะไรเกิดขึ้น ระบบยังทำงานได้ปกติ ไม่มี DownTime ไม่มีการเปลี่ยน Role ของ Nexus Switch ใดๆทั้งสิ้น
3.) vPC Peer Switch Failure
Figure 4 vPC Peer Switch Failure
ถ้ากรณี vPC Peer Switch 1 ตัว เกิด Down –> vPC KeepAlive Link จะไม่ได้รับข้อความตอบกลับจาก Switch อีกตัว –> ทำให้รู้ว่า Switch ตัวไหน Down –> Nexus Switch ตัวที่เหลืออีกตัวจะทำหน้าที่รับ – ส่ง Packet ได้ อย่างไม่มีปัญหาใดๆ
4.) Dual Active or Split Brain
ในกรณีนี้ คือ vPC Peer-Link และ vPC Peer KeepAlive Link Failed ทั้งคู่ –> Nexus Switch ทั้ง 2 ตัว จะเปลี่ยน Role ตัวเองเป็น Primary –> ระบบเกิดการไม่สเถียร และ Traffic Loss ไป
จบไปแล้วครับ กับบทความเกี่ยวกับ vPC หวังว่าบทความนี้ จะมีประโยชน์ต่อเพื่อนๆ ที่กำลังเริ่มต้น หรือเริ่มศึกษา Feature ของ Nexus Switch (NXOS) ครับผม ขอบคุณคร้าบบ
https://www.packetcoders.io/what-is-cisco-vpc-virtual-port-channel/