Բարև, Հաբր: Շարունակում եմ VxLAN EVPN տեխնոլոգիայի վերաբերյալ հոդվածների շարքը, որը գրվել են հատուկ դասընթացի մեկնարկի համար
Վերջին մասում մենք ձեռք բերեցինք մեկ հեռարձակման տիրույթ, որը կառուցված էր Nexus 9000v-ի վրա ցանցային հյուսվածքի վրա: Այնուամենայնիվ, սա խնդիրների ամբողջ շարքը չէ, որոնք պետք է լուծվեն տվյալների կենտրոնի ցանցում: Եվ այսօր մենք կանդրադառնանք հաջորդ առաջադրանքին՝ երթուղիներ ցանցերի կամ VNI-ների միջև:
Հիշեցնեմ, որ Spine-Leaf տոպոլոգիան օգտագործվում է.
Նախ, եկեք տեսնենք, թե ինչպես է երթուղավորումը տեղի ունենում և ինչ առանձնահատկություններ ունի:
Հասկանալու համար եկեք պարզեցնենք տրամաբանական դիագրամը և ավելացնենք ևս մեկ VNI 20000 Host-2-ի համար: Արդյունքը հետևյալն է.
Ինչպե՞ս կարող եք այս դեպքում երթևեկությունը փոխանցել մի Հոսթից մյուսին:
Գոյություն ունեն երկու տարբերակ.
- Պահպանեք բոլոր VNI-ների մասին տեղեկությունները բոլոր Leaf անջատիչների վրա, այնուհետև բոլոր երթուղումները տեղի կունենան ցանցի առաջին Leaf-ի վրա;
- Օգտագործեք հատուկ L3 VNI
Առաջին մեթոդը պարզ և հարմար է. Քանի որ դուք պարզապես պետք է տեղադրել ամբողջ VNI-ն բոլոր Leaf անջատիչների վրա: Այնուամենայնիվ, բոլոր Leafs-ի համար մի քանի հարյուր կամ հազար VNI-ներ տեղադրելն այլևս պարզ խնդիր չէ: Հետեւաբար, այն բավականին հազվադեպ է օգտագործվում աշխատանքի մեջ:
Դիտարկենք 2-րդ մեթոդը, որն ավելի հետաքրքիր է և մի փոքր ավելի բարդ, բայց ավելի մեծ ճկունություն է տալիս գործարանի ստեղծման հարցում:
VRF տոպոլոգիայում ավելացնենք «PROD»: Դրան մենք կավելացնենք ինտերֆեյս 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 switch-ը տվյալներ է ստանում L3VNI 99000-ից: Այն վերցնում է բնօրինակ շրջանակը և փոխանցում այն պահանջվող L2VNI 20000-ին, այնուհետև VLAN 20-ին:
Այս աշխատանքի արդյունքում L3VNI-ն վերացնում է բոլոր Leaf անջատիչների վրա ցանցում գտնվող բոլոր VNI-ների մասին տեղեկատվությունը պահելու անհրաժեշտությունը:
Արդյունքում, երբ մենք ուղարկում ենք տրաֆիկ Host-1-ից Host-2, փաթեթը փաթեթավորվում է VxLAN-ի ներսում նոր VNI - 99000:
Մնում է տեսնել, թե ինչպես է Leaf-1-ը իմանում MAC հասցեի մասին մեկ այլ VNI-ից: Դա տեղի է ունենում նաև EVPN երթուղու 2-րդ տիպի (MAC/IP) միջոցով:
Հետևյալը ցույց է տալիս մեկ այլ VNI-ում տեղադրված նախածանցի մասին երթուղու տարածման գործընթացը.
Այսինքն, VNI 20000-ից ստացված հասցեներն ունեն երկու RT:
Հիշեցնեմ, որ Update-ից ստացված երթուղիները հայտնվում են BGP աղյուսակում՝ VRF կարգավորումներում նշված Route-target-ով (գործընթացը մի փոքր ավելի բարդ է, բայց մենք չենք խորանա այս հոդվածում):
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-ը նույնն է բոլոր Leafs-ում և ընկնում է մեր ներմուծման կանոնների ներքո 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 աղյուսակը (այս հոդվածի նպատակների համար մենք բաց կթողնենք այս գործընթացը): ՀՄՄ-ից ստացված տեղեկատվության հիման վրա ձևավորվում է EVPN երթուղի-տիպ 2 (փոխանցվում է MAC/IP-ով):
Այնուամենայնիվ, ի՞նչ անել, եթե անհրաժեշտություն կա նախածանցի մասին տեղեկատվություն փոխանցելու:
Այս տեսակի տեղեկատվության համար կա EVPN երթուղու տիպ 5. այն թույլ է տալիս նախածանցներ փոխանցել 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
Արդյունքում, Update-ը կունենա.
Եկեք նայենք 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-ների միջև երթուղիների տարբեր տարբերակներ:
Source: www.habr.com