Ahoj, Habr. Pokračujem v cykle článkov o technológii VxLAN EVPN, ktoré boli napísané špeciálne k spusteniu kurzu od OTUS. A dnes sa pozrieme na zaujímavú časť úloh — routovanie. Hoci to znie banálne, v rámci práce sieťovej fabriky to nemusí byť také jednoduché.

V predchádzajúcej časti sme dosiahli jeden vysielací doménový priestor, postavený na sieťovej fabrike na Nexus 9000v. Avšak to nie je celý spektrum úloh, ktoré je potrebné vyriešiť v rámci siete dátového centra. Dnes sa pozrieme na nasledujúcu úlohu — routovanie medzi sieťami alebo medzi VNI.
Pripomínam, že sa používa topológia Spine-Leaf:

Najprv si rozoberieme, ako prebieha routovanie a aké sú jeho špecifiká.
Na lepšie pochopenie zjednodušíme logickú schému a pridáme ešte jedno VNI 20000 pre Host-2. Celkový obraz bude vyzerať takto:

Ako je v takom prípade možné preniesť prenos od jedného Host k druhému?
Existujú dva varianty:
- Na všetkých Leaf prepínačoch uchovávať informácie o všetkých VNI, potom sa celé routovanie uskutoční na prvom Leaf v sieti;
- Použiť špeciálne vyčlenený — L3 VNI
Prvý spôsob je jednoduchý a pohodlný. Pretože stačí len vytvoriť všetky VNI na všetkých Leaf prepínačoch. Avšak zriadiť niekoľko stoviek alebo tisíc VNI na všetkých Leaf už nevyzerá ako jednoduchá úloha. Preto sa v praxi používa pomerne zriedka.
Rozoberieme druhý spôsob, ktorý je zaujímavejší a o niečo zložitejší, ale poskytuje väčšiu flexibilitu pri konfigurácii fabriky.
Pridáme do topológie VRF "PROD". Do neho pridáme interface vlan 10 na páre Leaf-11/12 a interface VLAN 20 na Leaf-21. VLAN 20 asociujeme s VNI 20000
vrf context PROD
rd auto ! Route Distinguisher nie je rozhodujúci a môžeme ho použiť vytvorený automaticky
address-family ipv4 unicast
route-target both auto ! uvádzame Route-target, s ktorým sa budú importovať a exportovať prefixy do/z 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-gatewayAby ste mohli používať L3VNI, je potrebné vytvoriť nový VLAN a asociovať ho s novým VNI. Nový VNI musí byť rovnaký na všetkých Leaf, ktoré majú záujem o informácie o VLAN 10 a 20
vlan 99
vn-segment 99000
interface nve1
member vni 99000 associate-vrf ! Vytvárame L3 VNI
vrf context PROD
vni 99000 ! Pripájame L3 VNI k určenému VRFVýsledkom bude, že schéma bude vyzerať takto:

Ešte kúsok treba dokončiť — pridať ešte jedno rozhranie — interface vlan 99 do VRF PROD
interface Vlan99
no shutdown
vrf member PROD
ip forward ! Na rozhraní by nemal byť IP. Používa sa len na presúvanie paketov medzi LeafNakoniec logika prechodu rámca od Host-1 k Host-2 je nasledujúca:
- Rámec odoslaný z Host-1 prichádza na Leaf do VLAN 10, ktorý je asociovaný s VNI 10000;
- Leaf kontroluje, kde sa nachádza cieľová adresa a nachádza ju cez L3 VNI na druhom Leaf prepínači;
- Akonáhle je nájdená trasa k cieľovej adrese, Leaf zabalí rámec do hlavičky s potrebným L3VNI 99000 — a odošle ho smerom k druhému Leaf;
- Druhý Leaf prepínač prijíma dáta z L3VNI 99000. Získa pôvodný rámec a prenáša ho do potrebného L2VNI 20000 a ďalej do VLAN 20.
Výsledkom takejto práce L3VNI odstraňuje potrebu uchovávať na všetkých Leaf prepínačoch informácie o všetkých VNI, ktoré sú v sieti.
Nakoniec, keď posielame traffic z Host-1 do Host-2, balík sa zabalí do VxLAN s novým VNI — 99000:

Zostáva pochopiť, ako presne Leaf-1 zistí o MAC adrese z iného VNI. Stáva sa to takisto pomocou EVPN route-type 2 (MAC/IP).
Nižšie je zobrazený proces rozšírenia trasy o prefixe nachádzajúcom sa v inom VNI:

To znamená, že adresy získané z VNI 20000 majú dva RT.
Pripomínam, že trasy získané z Update sa dostanú do tabuľky BGP s Route-targetom, uvedeným v nastaveniach VRF (proces je o niečo zložitejší, avšak v rámci tohto článku sa nebudeme doň hlbšie zaoberať).
Sám RT sa formuje podľa vzorca: AS:VNI (ak sa používa automatický režim).
Príklad formovania RT v automatickom a ručnom režime:
vrf context PROD
address-family ipv4 unicast
route-target import auto - automatický režim práce
route-target export 65001:20000 - ručný režim formovania RTZ výsledku vyššie je vidieť, že prefixy z iného VNI majú dve hodnoty RT.
Jedna z nich je 65001:99000 — dodatočný L3 VNI. Keďže tento VNI je rovnaký na všetkých Leaf a spadá pod naše pravidlá importu v nastaveniach VRF — prefix sa dostáva do tabuľky BGP, čo je vidieť z výstupu:
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 ! Prefix obtained from VNI 20000
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 iAk sa pozrieme podrobnejšie na získaný update, vidíme, že tento prefix má dva RT:
Leaf11# sh bgp l2vpn evpn 5001.0008.0007
Informácie o smerovacej tabuľke BGP pre VRF default, rodina adries L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
Záznam smerovacej tabuľky BGP pre [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]\/272, verzia 5164
Cesty: (2 k dispozícii, najlepšia #2)
Zástavy: (0x000202) (high32 00000000) na xmit-list, nie je v l2rib\/evpn, nie je v HW
Typ cesty: interný, cesta je platná, nie je najlepšia dôvod: Adresa suseda, žiadny označený next hop
AS-Cesta: ŽIADNE, cesta vychádza z interného AS
10.255.1.20 (metrika 81) z 10.255.1.102 (10.255.1.102)
Pôvod IGP, MED nie je nastavená, preferencia 100, hmotnosť 0
Prijatá značka 20000 99000 ! Dve značky pre prácu VxLAN
Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8 ! Dve hodnoty Route-target, na základe ktorých bol tento prefix pridaný
Router MAC:5001.0005.0007
Pôvodca: 10.255.1.21 Zoznam klastrov: 10.255.1.102V smerovacej tabuľke na Leaf-1 taktiež môžeme pozorovať prefix 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 ! Adresa Host-2
*via 10.255.1.20fault, [200/0], 01:20:20, bgp-65001, internal, tag 65001 ! Dostupné cez Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Cez VNI 99000Zaznamenali ste absenciu základného prefixu 192.168.20.0\/24 v smerovacej tabuľke?
Presne tak, tam nie je. To znamená, že vzdialené Leaf získavajú informácie len o hostiteľoch, ktorí existujú vo vašej sieti. A to je správne správanie. Hore vo všetkých update je vidno, že prichádzajú informácie o obsahu MAC\/IP. O akýchkoľvek prefixoch to nie je zmienka.
To funguje protokol Host Mobility Manager (HMM), ktorý vyplňuje ARP tabuľku, z ktorej sa následne vyplňuje BGP tabuľka (v rámci tohto článku tento proces vynecháme). Na základe informácií získaných z HMM sa vytvárajú EVPN route-type 2 (posiela sa MAC\/IP).
Avšak, čo robiť, ak je potrebné preniesť informácie o nejakom prefixe?
Pre tento typ informácií existuje EVPN route-type 5 — umožňuje prenášať prefixy cez address-family l2vpn evpn (tento typ trás je v čase písania článku iba v draft verzii. , kvôli tomu sa môže správanie tohto typu trasy líšiť u rôznych výrobcov)
Na prenášanie prefixov je potrebné pri BGP pre VRF pridať prefixy, ktoré sa budú oznamovať:
router bgp 65001
vrf PROD
address-family ipv4 unicast
redistribute direct route-map VNI20000 ! V tomto prípade oznamujeme prefixy pripojenia priamo k Leaf v VNI 20000
route-map VNI20000 permit 10
match ip address prefix-list VNI20000_OUT ! Určenie, ktorý prefix-list použiť
ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24 ! Určenie, ktoré siete budú zahrnuté do EVPN route-type 5Výsledkom bude v Update:

Pozrime sa na tabuľku BGP. Okrem EVPN route-type 2 a 3 sa objavili trasy 5. typu, ktoré obsahujú informácie o čísle siete:
Sieť Ďalší skok Metrika LocPrf Váha Cesta
Rozlišovač trasy: 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 ?
Rozlišovač trasy: 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
Rozlišovač trasy: 10.255.1.12:3
*>i[5]:[0]:[0]:[24]:[192.168.10.0]/224 ! EVPN route-type 5 s číslom prefixu
10.255.1.10 0 100 0 ?
* i V tabuľke trás sa prefix tiež objavil:
Leaf21# sh ip ro vrf PROD
192.168.10.0/24, ubest/mbest: 1/0
*via 10.255.1.10fault, [200/0], 00:14:32, bgp-65001, internal, tag 65001 ! Odľahlý prefix, dostupný cez Leaf1/2 (adresa Next-hop = virtuálna IP medzi pármi VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Prefix dostupný cez L3VNI 99000
192.168.10.10/32, ubest/mbest: 1/0
*via 10.255.1.10fault, [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, hmmNa tomto skončíme druhú časť cyklu článkov o VxLAN EVPN. V ďalšej časti preskúmame rôzne možnosti smerovania medzi VRF.
Zdroj: habr.com
