EVPN/VXLAN Architecture Deep Dive
เจาะลึกสถาปัตยกรรม EVPN/VXLAN
ประเภทเส้นทาง BGP EVPN, การค้นพบ VTEP, IRB แบบสมมาตรเทียบกับแบบไม่สมมาตร, การปราบปราม ARP และโฮมมิงหลายรายการ — ด้วยตัวอย่าง Cisco NX-OS, Arista EOS และ Junos CLI
1. ทำไมต้อง VXLAN?
IEEE 802.1Q VLAN ถูกจำกัดไว้ที่ 4,094 ID ต่อโดเมนการออกอากาศ ซึ่งเป็นข้อจำกัดอย่างหนักในศูนย์ข้อมูลที่มีผู้เช่าหลายราย โดยที่กลุ่มลูกค้าหลายพันกลุ่มต้องอยู่ร่วมกันบนโครงสร้างพื้นฐานที่ใช้ร่วมกัน VXLAN (LAN แบบขยายได้เสมือน,อาร์เอฟซี 7348) แก้ปัญหานี้โดยการห่อหุ้มเฟรมอีเทอร์เน็ตภายใน UDP/IP โดยใช้ VNI 24 บิต (VXLAN Network Identifier) เพื่อรองรับส่วนลอจิคัลได้มากถึง 16.7 ล้านส่วน
VXLAN แยกโทโพโลยีเลเยอร์ 2 เสมือนออกจากเลเยอร์ 3 ทางกายภาพที่อยู่ด้านล่าง ช่วยให้กำหนดเส้นทาง IP มาตรฐาน (ECMP, OSPF, BGP) ระหว่าง VXLAN Tunnel Endpoints (VTEP) โดยไม่ต้องขยาย VLAN ส่วนหัว UDP ภายนอกใช้พอร์ตปลายทาง4789(กำหนดโดย IANA; การใช้งานช่วงแรกๆ ใช้ 8472) ค่าใช้จ่ายในการห่อหุ้มทั้งหมดคือ ~50 ไบต์บน IPv4, ~70 ไบต์บน IPv6
2. วิธีการค้นพบ VTEP
VTEP ต้องค้นหาเพียร์ VTEP เพื่อตั้งค่าทันเนลและกระจายการรับส่งข้อมูล BUM (Broadcast, Unknown unicast, Multicast) มีการนำกลไก 3 ประการไปใช้ในทางปฏิบัติ:
| วิธี | มันทำงานอย่างไร | ข้อดี | ข้อเสีย |
|---|---|---|---|
| มัลติคาสต์ | แต่ละ VNI จะแมปกับกลุ่มมัลติคาสต์ PIM ในอันเดอร์เลย์ การรับส่งข้อมูล BUM ล้นไปยังกลุ่มนั้น | เรียบง่าย; การค้นพบเพื่อนโดยอัตโนมัติ | ต้องใช้มัลติคาสต์ PIM ในอันเดอร์เลย์ ตัวดำเนินการหลายรายปิดใช้งานมัลติคาสต์ |
| การจำลองแบบทางเข้า | VTEP แต่ละตัวจะรักษารายการ unicast ที่ชัดเจนของ VTEP ระยะไกลต่อ VNI; การรับส่งข้อมูล BUM จะถูกจำลองไปยังแต่ละเพียร์ | ไม่จำเป็นต้องใช้มัลติคาสต์ | Head-end ทำการจำลองแบบ O (N) ต่อแพ็กเก็ต BUM รายการเพียร์แบบคงที่จำเป็นต้องมีการบำรุงรักษาด้วยตนเอง |
| บีจีพี อีวีพีเอ็น | เส้นทาง RT-3 IMET โฆษณาการเป็นสมาชิก VTEP เส้นทาง RT-2 กระจายการเชื่อมโยง MAC+IP ไม่มีน้ำท่วมและเรียนรู้ | การเรียนรู้ MAC ของระนาบควบคุม การปราบปราม ARP; ปรับขนาดเป็น VTEP นับพัน; มาตรฐาน | ต้องใช้สแต็ก BGP บน VTEP หรือตัวสะท้อนเส้นทางทั้งหมด |
ศูนย์ข้อมูล Greenfield สมัยใหม่ใช้ BGP EVPN เพียงอย่างเดียว Multicast และ Ingress-replication เป็นวิธีดั้งเดิมที่ยังคงพบได้ในสภาพแวดล้อมของ Brownfield
3. ประเภทเส้นทาง BGP EVPN
BGP EVPN (อาร์เอฟซี 7432) ใช้ AFI 25 (L2VPN) / SAFI 70 (EVPN) เพื่อกระจายเส้นทางห้าประเภท RT-5 ถูกกำหนดไว้แยกกันในอาร์เอฟซี 9136(ตุลาคม 2564).
| RT | ชื่อ | วัตถุประสงค์ | ฟิลด์ NLRI ที่สำคัญ |
|---|---|---|---|
| 1 | อีเธอร์เน็ตการค้นพบอัตโนมัติ | Per-ES และ per-EVI ถอนมวลเมื่อลิงก์ล้มเหลว นามแฝงสำหรับการทำโหลดบาลานซ์แบบ multi-homing ที่แอ็คทีฟทั้งหมด | RD, ESI, รหัสแท็กอีเธอร์เน็ต, ฉลาก MPLS |
| 2 | โฆษณา MAC/IP | กระจายที่อยู่ MAC (และ IP ที่เป็นทางเลือก) เพื่อเปิดใช้งานการปราบปราม ARP และกำจัดน้ำท่วมและการเรียนรู้ | RD, ESI, แท็ก VLAN, ที่อยู่ MAC, ที่อยู่ IP (อุปกรณ์เสริม), ป้ายกำกับ L2VNI + L3VNI |
| 3 | แท็ก Multicast Ethernet แบบรวม (IMET) | โฆษณาความสามารถในการเข้าถึง VTEP ต่อ VNI ใช้เพื่อสร้างรายการการจำลองข้อมูลขาเข้าและทริกเกอร์การส่งต่อ BUM | RD, รหัสแท็กอีเทอร์เน็ต, IP ของเราเตอร์ต้นทาง (ที่อยู่ VTEP); คุณลักษณะ PMSI Tunnel มี VNI และประเภทช่องสัญญาณ |
| 4 | เส้นทางส่วนอีเธอร์เน็ต | การเลือกผู้จัดส่งที่กำหนด (DF) ในกลุ่ม PE ที่ใช้เซ็กเมนต์อีเทอร์เน็ตร่วมกัน รับประกันว่ามี PE เพียงตัวเดียวเท่านั้นที่ส่งต่อ BUM ไปยังกลุ่ม CE | RD, ESI, IP เราเตอร์ต้นทาง |
| 5 | เส้นทางคำนำหน้า IP(อาร์เอฟซี 9136) | โฆษณาคำนำหน้า IP ลงในโอเวอร์เลย์ EVPN สำหรับการกำหนดเส้นทางระหว่างซับเน็ต ต้องใช้ L3VNI เฉพาะ (การขนส่ง VNI) | RD, รหัสแท็กอีเทอร์เน็ต, ความยาวคำนำหน้า IP, คำนำหน้า IP, ที่อยู่ IP GW, ป้ายกำกับ L3VNI |
4. IRB แบบสมมาตรเทียบกับแบบอสมมาตร
Integrated Routing and Bridging (IRB) อธิบายว่า VTEP กำหนดเส้นทางการรับส่งข้อมูลระหว่างเครือข่ายย่อยที่ซ้อนทับกันอย่างไร มีการกำหนดไว้ 2 รุ่นด้วยกันอาร์เอฟซี 9135:
IRB แบบอสมมาตร:VTEP ทางเข้าดำเนินการกำหนดเส้นทาง L3 (การลด TTL, การเขียนซ้ำครั้งถัดไป) ลงในปลายทางL2VNI ก่อนทำการห่อหุ้มและส่ง VTEP ทางออกเท่านั้นที่เชื่อมต่อ — โดยจะเห็นกรอบด้านในจ่าหน้าถึง MAC สุดท้ายแล้ว VTEP ทุกตัวต้องมีโปรแกรม VNI (ซับเน็ต) ทุกตัวในเครื่อง แม้แต่รายการที่ไม่มีโฮสต์ในเครื่องก็ตาม ซึ่งจำกัดขนาด
สมมาตร IRB:VTEP ทางเข้าเส้นทางจากต้นทาง L2VNI ไปยังที่ใช้ร่วมกันL3VNI(ขนส่ง VNI หนึ่งรายการต่อ VRF) เส้นทางขาออก VTEP จะออกจาก L3VNI ไปยังปลายทางท้องถิ่น L2VNI จุดสิ้นสุดทั้งสองดำเนินการกำหนดเส้นทาง VTEP แต่ละตัวต้องการเพียง L2VNI ภายในของตัวเองเท่านั้น L3VNI เดี่ยวเป็นแบบสากล นี่คือรุ่นที่แนะนำสำหรับผ้าขนาดใหญ่
| IRB แบบอสมมาตร | IRB แบบสมมาตร | |
|---|---|---|
| L2VNI ที่จำเป็นต่อ VTEP | VNI ทั้งหมดในแฟบริค | เฉพาะเครือข่ายย่อยที่แนบในเครื่องเท่านั้น |
| L3VNI (เปลี่ยนเครื่อง VNI) | ไม่จำเป็น | จำเป็น — หนึ่งรายการต่อ VRF |
| การกำหนดเส้นทางกระโดด | ทางเข้า VTEP เท่านั้น | VTEP ทางเข้าและทางออก |
| มาตราส่วน | แย่ (VNI ทั้งหมดทุกที่) | ดี (ซับเน็ตท้องถิ่นเท่านั้น) |
| คำนำหน้า RT-5 | ไม่รองรับ | รองรับ (ใช้ L3VNI) |
5. การปราบปราม ARP
หากไม่มี EVPN คำขอ ARP จากโฮสต์จะออกอากาศไปยัง VNI และกระจายไปยัง VTEP ทุกตัวในแฟบริค ด้วย BGP EVPN เส้นทาง RT-2 จะกระจายการเชื่อมโยง MAC+IP ไปยัง VTEP ทั้งหมดทันทีที่เรียนรู้โฮสต์ เมื่อ ARP โฮสต์สำหรับ IP ระยะไกล VTEP ภายในจะตอบโดยตรงจากตารางที่เติม BGP — ไม่มีแพ็กเก็ต ARP ข้ามแฟบริค VXLAN วิธีนี้จะช่วยลด BUM ฟลัดสำหรับโฮสต์ที่รู้จัก และมีผลกระทบอย่างยิ่งในแฟบริคที่มี VM นับพันต่อ VTEP
การปราบปราม ND (Neighbor Discovery) ทำงานเหมือนกันสำหรับ IPv6 — เส้นทาง RT-2 มีที่อยู่ IPv6 ในช่อง IP ของ NLRI และ VTEP จะตอบข้อความ NS ในเครื่อง
6. มัลติโฮมและ ESI
Ethernet Segment Identifier (ESI) คือตัวระบุขนาด 10 ไบต์ที่กำหนดให้กับบันเดิลแบบลอจิคัลที่เชื่อมต่ออุปกรณ์ CE กับ PE VTEP หลายตัว มีโหมดการส่งต่อสองโหมด:
- ใช้งานครั้งเดียว: PE ส่งต่อครั้งละหนึ่งคน การเลือก DF (โดยใช้เส้นทาง RT-4) จะเลือก Designated Forwarder สำหรับแท็ก Ethernet แต่ละรายการ PE ที่ไม่ใช่ DF บล็อกการส่งต่อ BUM ไปยังเซ็กเมนต์ แต่ยังคงสามารถรับแบบผู้รับเดียวได้
- ใช้งานอยู่ทั้งหมด: PE ทั้งหมดไปข้างหน้าพร้อมกัน เปิดใช้งาน ECMP ทั่วทั้งบันเดิล (เช่น ช่องพอร์ตที่มีขาระยะไกล) เส้นทาง "นามแฝง" ของ RT-1 ช่วยให้ VTEP ระยะไกลสามารถปรับสมดุลการรับส่งข้อมูลไปยัง ESI ทั่วทั้ง PE ที่เชื่อมต่ออยู่ทั้งหมด ความคล่องตัวของ MAC ได้รับการจัดการผ่านชุมชนขยายของ MAC Mobility ใน RT-2
7. ข้อมูลอ้างอิงด่วนของ CLI ของผู้ขาย
| งาน | ซิสโก้ NX-OS | อาริสต้า EOS | จูนิเปอร์ จูโนส |
|---|---|---|---|
| แสดงเส้นทาง EVPN | show bgp l2vpn evpn |
show bgp evpn |
show route table bgp.evpn.0 |
| แสดงเพื่อน VTEP | show nve peers |
show vxlan vtep |
show evpn instance |
| แสดง MAC ที่ซ้อนทับ | show mac address-table |
show vxlan address-table |
show evpn mac-ip-table |
| แสดงแคชปราบปราม ARP | show ip arp suppression-cache detail |
show vxlan address-table detail |
show evpn mac-ip-table extensive |
| แสดงการแมป VNI-to-VRF | show nve vni |
show vxlan vni |
show evpn instance extensive |
| แสดง ESI มัลติโฮม | show nve ethernet-segment |
show bgp evpn instance |
show evpn instance extensive |
อ้างอิง
- อาร์เอฟซี 7348- VXLAN: กรอบงานสำหรับการซ้อนทับเครือข่ายเลเยอร์ 2 เสมือนบนเครือข่ายเลเยอร์ 3 (2014)
- อาร์เอฟซี 7432— VPN อีเธอร์เน็ตที่ใช้ BGP MPLS (BGP EVPN) (2015)
- อาร์เอฟซี 8365— โซลูชันการซ้อนทับการจำลองเสมือนเครือข่ายโดยใช้ Ethernet VPN (EVPN) (2018)
- อาร์เอฟซี 9135— การกำหนดเส้นทางและการเชื่อมโยงแบบรวมใน Ethernet VPN (EVPN) (2021)
- อาร์เอฟซี 9136— โฆษณาคำนำหน้า IP ใน Ethernet VPN (EVPN) (2021)
- คณะทำงาน IETF BESS— บริการที่เปิดใช้งาน BGP (แบบร่าง EVPN ที่ใช้งานอยู่)