เฮ้ ฮับ ฉันยังคงบทความเกี่ยวกับเทคโนโลยี VxLAN EVPN ซึ่ง เขียนขึ้นโดยเฉพาะสำหรับการเปิดตัวหลักสูตร
ในส่วนสุดท้าย เราบรรลุโดเมนการออกอากาศหนึ่งโดเมนที่สร้างขึ้นบนโครงสร้างเครือข่ายบน Nexus 9000v อย่างไรก็ตาม นี่ไม่ใช่งานทั้งหมดที่ต้องแก้ไขภายในกรอบของเครือข่ายศูนย์ข้อมูล และวันนี้เราจะพิจารณางานต่อไปนี้ - การกำหนดเส้นทางระหว่างเครือข่ายหรือระหว่าง VNI
ฉันขอเตือนคุณว่ามีการใช้โทโพโลยี Spine-Leaf:
ในการเริ่มต้น เราจะวิเคราะห์ว่าการกำหนดเส้นทางเกิดขึ้นได้อย่างไรและมีคุณสมบัติใดบ้าง
เพื่อความเข้าใจ ลองลดความซับซ้อนของไดอะแกรมลอจิกและเพิ่ม VNI 20000 สำหรับ Host-2 ผลลัพธ์คือ:
ในกรณีนี้ คุณจะโอนทราฟฟิกจากโฮสต์หนึ่งไปยังอีกโฮสต์หนึ่งได้อย่างไร?
มีสองตัวเลือก:
- เก็บข้อมูลเกี่ยวกับ VNI ทั้งหมดบนสวิตช์ Leaf ทั้งหมด จากนั้นการกำหนดเส้นทางทั้งหมดจะเกิดขึ้นบน Leaf ตัวแรกในเครือข่าย
- ใช้เฉพาะ - L3 VNI
วิธีแรกง่ายและสะดวก เนื่องจากคุณจะต้องเริ่ม VNI ทั้งหมดบนสวิตช์ Leaf ทั้งหมดเท่านั้น อย่างไรก็ตาม การใช้งาน VNI สองสามร้อยหรือหลายพันบนทั้ง Leaf ดูเหมือนจะไม่ใช่งานง่ายอีกต่อไป ดังนั้นในการทำงานจึงใช้ค่อนข้างน้อย
เราจะวิเคราะห์วิธีที่ 2 ว่าน่าสนใจกว่าและซับซ้อนกว่าเล็กน้อย แต่ให้ความยืดหยุ่นในการตั้งโรงงานมากกว่า
เพิ่ม "PROD" ให้กับโทโพโลยี VRF มาเพิ่มอินเทอร์เฟซ vlan 10 ในคู่ Leaf-11/12 และอินเทอร์เฟซ VLAN 20 บน Leaf-21 VLAN 20 เชื่อมโยงกับ VNI 20000
vrf context PROD
rd auto ! Route Distinguisher не принципиален и можем использовать сформированный автоматически
address-family ipv4 unicast
route-target both auto ! указываем Route-target с которым будут импортироваться и экспортироваться префиксы в/из VRF
vlan 20
vn-segment 20000
interface nve 1
member vni 20000
ingress-replication protocol bgp
interface Vlan10
no shutdown
vrf member PROD
ip address 192.168.20.1/24
fabric forwarding mode anycast-gateway
ในการใช้ L3VNI คุณต้องสร้าง VLAN ใหม่ เชื่อมโยงกับ VNI ใหม่ VNI ใหม่จะต้องเหมือนกันในทุก Leafs ที่สนใจข้อมูล VLAN 10 และ 20
vlan 99
vn-segment 99000
interface nve1
member vni 99000 associate-vrf ! Создаем L3 VNI
vrf context PROD
vni 99000 ! Привязываем L3 VNI к определенному VRF
ดังนั้นไดอะแกรมจะมีลักษณะดังนี้:
ยังเหลืออีกเล็กน้อย - เพิ่มอีกหนึ่งอินเทอร์เฟซ - อินเทอร์เฟซ vlan 99 ใน VRF PROD
interface Vlan99
no shutdown
vrf member PROD
ip forward ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf
เป็นผลให้ตรรกะของการส่งผ่านเฟรมจาก Host-1 ไปยัง Host-2 เป็นดังนี้:
- เฟรมที่ส่งโดย Host-1 มาถึง Leaf ใน VLAN 10 ซึ่งเชื่อมโยงกับ VNI 10000
- Leaf ตรวจสอบว่าที่อยู่ปลายทางอยู่ที่ไหนและค้นหาผ่าน L3 VNI บนสวิตช์ Leaf ที่สอง
- ทันทีที่พบเส้นทางไปยังที่อยู่ปลายทาง Leaf จะบรรจุเฟรมลงในส่วนหัวที่มี L3VNI 99000 ที่จำเป็น และส่งไปยัง Leaf ที่สอง
- สวิตช์ Leaf ตัวที่สองรับข้อมูลจาก L3VNI 99000 รับเฟรมดั้งเดิมและถ่ายโอนไปยัง L2VNI 20000 ที่จำเป็น จากนั้นไปยัง VLAN 20
ผลจากการทำงานนี้ L3VNI ไม่จำเป็นต้องเก็บข้อมูลเกี่ยวกับ VNI ทั้งหมดที่อยู่ในเครือข่ายบนสวิตช์ Leaf ทั้งหมด
เป็นผลให้เมื่อเราส่งทราฟฟิกจาก Host-1 ไปยัง Host-2 แพ็กเก็ตจะถูกบรรจุภายใน VxLAN ด้วย VNI - 99000 ใหม่:
คงต้องดูว่า Leaf-1 เรียนรู้เกี่ยวกับที่อยู่ MAC จาก VNI อื่นได้อย่างไร สิ่งนี้เกิดขึ้นด้วยความช่วยเหลือของ EVPN route-type 2 (MAC / IP)
ต่อไปนี้แสดงขั้นตอนการเผยแพร่เส้นทางเกี่ยวกับคำนำหน้าที่อยู่ใน VNI อื่น:
นั่นคือ ที่อยู่ที่ได้รับจาก VNI 20000 มี RT สองรายการ
ฉันขอเตือนคุณว่าเส้นทางที่ได้รับจากการอัปเดตจะอยู่ในตาราง BGP โดยระบุเป้าหมายเส้นทางในการตั้งค่า VRF (กระบวนการค่อนข้างซับซ้อนกว่า แต่เราจะไม่พูดถึงบทความนี้)
RT นั้นเกิดจากสูตร: AS:VNI (หากใช้โหมดอัตโนมัติ)
ตัวอย่างของการสร้าง RT ในโหมดอัตโนมัติและโหมดแมนนวล:
vrf context PROD
address-family ipv4 unicast
route-target import auto - автоматический режим работы
route-target export 65001:20000 - ручной режим формирования RT
ด้วยเหตุนี้ คุณจะเห็นว่าคำนำหน้าจาก VNI อื่นมีค่า RT สองค่า
หนึ่งในนั้น 65001:99000 คือ L3 VNI เพิ่มเติม เนื่องจาก VNI นี้เหมือนกันใน Leaf ทั้งหมดและอยู่ภายใต้กฎการนำเข้าของเราในการตั้งค่า VRF คำนำหน้าจะเข้าสู่ตาราง BGP ซึ่งสามารถดูได้จากเอาต์พุต:
sh bgp l2vpn evpn
<.....>
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:32777 (L2VNI 10000)
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216
10.255.1.10 100 32768 i
*>l[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]/272
10.255.1.10 100 32768 i
*>l[3]:[0]:[32]:[10.255.1.10]/88
10.255.1.10 100 32768 i
Route Distinguisher: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272 ! Префикс полученный из VNI 20000
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 i
หากเราตรวจสอบการอัปเดตที่ได้รับอย่างใกล้ชิดยิ่งขึ้น เราจะเห็นว่าคำนำหน้านี้มี RT สองตัว:
Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP routing table information for VRF default, address family L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
BGP routing table entry for [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.2
0]/272, version 5164
Paths: (2 available, best #2)
Flags: (0x000202) (high32 00000000) on xmit-list, is not in l2rib/evpn, is not i
n HW
Path type: internal, path is valid, not best reason: Neighbor Address, no labeled nexthop
AS-Path: NONE, path sourced internal to AS
10.255.1.20 (metric 81) from 10.255.1.102 (10.255.1.102)
Origin IGP, MED not set, localpref 100, weight 0
Received label 20000 99000 ! Два label для работы VxLAN
Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8 ! Два значения Route-target, на основе, которых добавили данный префикс
Router MAC:5001.0005.0007
Originator: 10.255.1.21 Cluster list: 10.255.1.102
<......>
ในตารางเส้นทางบน Leaf-1 คุณยังสามารถดูคำนำหน้า 192.168.20.20/32:
Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, attached
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, direct
192.168.10.1/32, ubest/mbest: 1/0, attached
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, local
192.168.10.10/32, ubest/mbest: 1/0, attached
*via 192.168.10.10, Vlan10, [190/0], 01:27:22, hmm
192.168.20.20/32, ubest/mbest: 1/0 ! Адрес Host-2
*via 10.255.1.20%default, [200/0], 01:20:20, bgp-65001, internal, tag 65001 ! Доступный через Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Через VNI 99000
สังเกตเห็นคำนำหน้าหลักที่หายไป 192.168.20.0/24 ในตารางเส้นทางหรือไม่
ถูกต้องเขาไม่อยู่ที่นั่น นั่นคือ Leafs ระยะไกลจะได้รับข้อมูลเกี่ยวกับโฮสต์ที่อยู่ในเครือข่ายของคุณเท่านั้น และนี่คือพฤติกรรมที่ถูกต้อง ข้างต้น ในการอัปเดตทั้งหมด คุณจะเห็นว่าข้อมูลมาพร้อมกับเนื้อหาของ MAC / IP ไม่มีคำนำหน้าที่จะพูดถึง
นี่คือโปรโตคอล Host Mobility Manager (HMM) ซึ่งจะเติมตาราง ARP ซึ่งมีการเติมตาราง BGP เพิ่มเติม (เราจะละเว้นกระบวนการนี้ภายในกรอบของบทความนี้) ตามข้อมูลที่ได้รับจาก HMM เส้นทางประเภท 2 EVPN จะถูกสร้างขึ้น (ส่งโดย MAC / IP)
อย่างไรก็ตาม หากจำเป็นต้องส่งข้อมูลเกี่ยวกับคำนำหน้าล่ะ
สำหรับข้อมูลประเภทนี้ มี EVPN route-type 5 - อนุญาตให้คุณส่งคำนำหน้าผ่าน address-family l2vpn evpn (เส้นทางประเภทนี้ในขณะที่เขียนนี้อยู่ในเวอร์ชันร่างเท่านั้น
ในการโอนคำนำหน้า จำเป็นต้องเพิ่มคำนำหน้าในกระบวนการ BGP สำหรับ VRF ซึ่งจะโฆษณา:
router bgp 65001
vrf PROD
address-family ipv4 unicast
redistribute direct route-map VNI20000 ! В данном случае анонсируем префиксы подключение непосредственно к Leaf в VNI 20000
route-map VNI20000 permit 10
match ip address prefix-list VNI20000_OUT ! Указываем какой использовать prefix-list
ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24 ! Указываем какие сети будут попадать в EVPN route-type 5
ดังนั้น การอัปเดตจะเป็น:
ลองดูที่ตาราง BGP นอกจากเส้นทางประเภท EVPN 2,3 แล้ว ยังมีเส้นทางประเภท 5 ซึ่งมีข้อมูลเกี่ยวกับหมายเลขเครือข่าย:
<......>
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 10.255.1.11:3
* i[5]:[0]:[0]:[24]:[192.168.10.0]/224
10.255.1.10 0 100 0 ?
*>i 10.255.1.10 0 100 0 ?
Route Distinguisher: 10.255.1.11:32777
* i[2]:[0]:[0]:[48]:[5001.0007.0007]:[0]:[0.0.0.0]/216
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
* i[2]:[0]:[0]:[48]:[5001.0007.0007]:[32]:[192.168.10.10]/272
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
* i[3]:[0]:[32]:[10.255.1.10]/88
10.255.1.10 100 0 i
*>i 10.255.1.10 100 0 i
Route Distinguisher: 10.255.1.12:3
*>i[5]:[0]:[0]:[24]:[192.168.10.0]/224 ! EVPN route-type 5 с номером префикса
10.255.1.10 0 100 0 ?
* i
<.......>
คำนำหน้าปรากฏในตารางเส้นทางด้วย:
Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
*via 10.255.1.10%default, [200/0], 00:14:32, bgp-65001, internal, tag 65001 ! Удаленный префикс, доступный через Leaf1/2(адрес Next-hop = virtual IP между парой VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Префикс доступен через L3VNI 99000
192.168.10.10/32, ubest/mbest: 1/0
*via 10.255.1.10%default, [200/0], 02:33:40, bgp-65001, internal, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN
192.168.20.0/24, ubest/mbest: 1/0, attached
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, direct
192.168.20.1/32, ubest/mbest: 1/0, attached
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, local
192.168.20.20/32, ubest/mbest: 1/0, attached
*via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmm
นี่เป็นการสรุปส่วนที่สองของชุดบทความเกี่ยวกับ VxLAN EVPN ในส่วนถัดไป เราจะพิจารณาตัวเลือกต่างๆ สำหรับการกำหนดเส้นทางระหว่าง VRF
ที่มา: will.com