วันศุกร์ที่ 12 กุมภาพันธ์ พ.ศ. 2564

Dynamic Routing over Virtual Port Channel (vPC) บน Cisco Nexus

การทำ Dynamic Routing ผ่าน Virtual Port Channel (vPC) บน Cisco Nexus Platform นั้น จะมีประเด็นอะไรให้สนใจบ้างในบทความนี้ มาดูกันดีกว่าครับ

ปกติแล้วการส่งข้อมูลผ่าน vPC บน Cisco Nexus นั้นมันจะมีกฎของมันอยู่ ถ้ามีการ forward  data ผ่าน Peer-Link แล้ว Nexus ตัวที่ได้รับ data เข้ามาจาก Peer-Link จะไม่ถูก forward ไปยัง vPC member เพื่อป้องกัน Loop


จากรูปจะเห็นว่า NXOS1 กับ NXOS2 มีการทำ vPC เชื่อมต่อลงมาหา Switch ด้านล่าง และ เชื่อมต่อไปหา Router ด้านบน ในกรณีนี้ ถ้า NXOS2 คือ Active สำหรับ  HSRP vPC แต่ data traffic นั้น forward ไปฝั่ง NXOS1 ทำให้ NXOS1 ทำการ forward data traffic ไปหา NXOS2 ที่เป็น Active (Gateway)

เมื่อ NXOS2 ได้รับ data traffic เข้ามาทาง Peer-Link ตามกฎ มันจะไม่ forward traffic ไปยัง vPC member เพื่อป้องกัน Loop ทำให้ traffic ที่ forward ผ่าน Peer-Link มาหา NXOS2 ถูก drop และใช้งานไม่ได้ จึงมี feature ที่เข้ามาช่วยแก้ไขปัญหานี้ นั่นคือ Peer-Gateway

ปกติแล้ว Peer-Gateway จะแนะนำให้ใช้งานกับพวก NAS และ Load Balance ที่มีพฤติกรรมในการตอบกลับการรับส่งข้อมูลโดยใช้ที่อยู่ MAC ของอุปกรณ์ที่ส่งแทนที่จะเป็น HSRP MAC (ซึ่งผมอาจจะไม่ได้ลงรายละเอียดในภาพของ Peer-Gateway มากในบทความนี้นะครับ แต่พอดีมันเกี่ยวข้องด้วยนิดๆหน่อยๆ ก็เลยพูดถึงให้พอเข้าใจกันเล็กน้อย)

ซึ่งที่กล่าวมานั้นในการใช้งานที่เป็นแบบ Non-vPC มันไม่เคยทำให้เกิดปัญหา (อันที่จริงคนส่วนใหญ่อาจไม่เคยสังเกตเห็นเลยด้วยซ้ำ) แต่เมื่อใช้บน vPC ก็จะทำให้เกิดปัญหาดังกล่าวได้ Peer-Gateway เข้ามาช่วยแก้ไขปัญหานี้


และเมื่อเราใช้งาน Dynamic Routing ผ่าน vPC ล่ะ มันสามารถทำงานได้เหมือนกับ Data traffic โดยใช้ Peer-Gateway หรือไม่ ??


จากรูปด้านบน จะเห็นว่ามีการใช้งาน Dynamic Routing เป็น OSPF ระหว่าง NXOS1 , NXOS2 และ Router ซึ่งระหว่าง NXOS2 และ Router ก็สามารถ peer OSPF neighbor ได้ปกติดี แล้วลองมาดูรูปด้านล่าง


จากรูปด้านล่างจะเห็นว่า รูปซ้าย ถ้า Router ทำการ peer OSPF กับ NXOS2 แล้ว OSPF packet ส่งมาทาง direct connect เลยก็จะไม่เป็นปัญหาอะไร แต่ถ้าเกิด OSPF packet ถูกส่งไปหา NXOS1 แล้ว มันต้องสามารถส่งผ่าน Peer-Link ไปหา NXOS2 ได้ถูกไหมครับ แต่กรณีมันจะไม่ได้ !! สาเหตุเพราะ OSPF จะถูก set TTL = 1 เมื่อมาถึง NXOS1 แล้ว จะเหลือ TTL = 0 ทำให้ OSPF packet ถูก drop

เช่นเดียวกันกับ รูปขวา ถ้า Router ทำการ peer OSPF กับ NXOS1 แล้วส่ง OSPF packet ไปหา NXOS2 ก็จะเกิดปัญหาเช่นเดียวกัน


มาลองดูผลการทดสอบจากรูปดีกว่าครับ

ผลที่เห็นบน NXOS1

N9K1# show ip ospf nei
 OSPF Process ID 1 VRF default
 Total number of neighbors: 2
 Neighbor ID     Pri State            Up Time  Address         Interface
 N9K2            1 FULL/DR            00:02:30 10.0.0.3        Vlan100 
 Router          1 EXSTART/BDR        00:00:02 10.0.0.254      Vlan100 

ผลที่เห็นบน Router

Router# show ip ospf nei

Neighbor ID     Pri   State           Dead Time   Address         Interface
N9K1           1   EXSTART/DROTHER    00:00:39    10.0.0.2        Port-channel1
N9K2           1   FULL/DR            00:00:34    10.0.0.3        Port-channel1


วิธีแก้ไข

ในกรณีเราจะใช้คำสั่ง "layer3 peer-router" ภายใต้ vpc domain คำสั่งนี้จะทำให้ Nexus ไม่ลดค่า TTL ลงนั่นเอง

บน NXOS1 และ NXOS2

vpc domain 1
  peer-keepalive destination 169.254.0.2 source 169.254.0.1
  peer-gateway
  layer3 peer-router

ผลที่เห็นบน NXOS1

N9K1# show ip ospf nei
 OSPF Process ID 1 VRF default
 Total number of neighbors: 2
 Neighbor ID     Pri State            Up Time  Address         Interface
 N9K2            1 FULL/DR            00:02:30 10.0.0.3          Vlan100 
 Router          1 FULL/BDR           00:00:02 10.0.0.254        Vlan100 

ผลที่เห็นบน Router

Router# show ip ospf nei

Neighbor ID     Pri   State           Dead Time   Address         Interface
N9K1           1   FULL/DROTHER       00:00:39    10.0.0.2        Port-channel1
N9K2           1   FULL/DR            00:00:34    10.0.0.3        Port-channel1


จริงๆแล้วยังมีรายละเอียดอีกมากสำหรับการใช้งาน Dynamic Routing over vPC ทั้งการต่อแบบ Orphan อีก สามารถลองติดตามอ่านข้อมูลเพิ่มเติมได้ตาม Reference ด้านล่างเลยครับ

https://networkdirection.net/articles/virtual-port-channels-vpc/vpcandroutingprotocols/

https://www.cisco.com/c/en/us/support/docs/ip/ip-routing/118997-technote-nexus-00.html

https://www.ciscolive.com/c/dam/r/ciscolive/us/docs/2017/pdf/BRKDCN-2378.pdf

https://adamraffe.com/nexus%207000/virtual%20port%20channel/2013/03/25/peer-gateway-doesnt-solve-l3-over-vpc/

https://www.youtube.com/watch?v=KPsnI6h1RIs&t=127s

ไม่มีความคิดเห็น:

แสดงความคิดเห็น