Tere, Habr. Jätkan artiklite seeriat VxLAN EVPN tehnoloogiast, mis on kirjutatud spetsiaalselt kursuse käivitamiseks OTUSelt. Täna vaatame huvitavat osa probleemidest — marsruutimist. Kusjuures, kuigi see võib kõlada banaalselt, ei ole võrgu ettepanekute töös kõik sugugi lihtne.

Eelmises osas saavutasime ühe laiapöördusliku domeeni, mis on loodud Nexus 9000v võrguettepaneku peale. Siiski ei ole see kaugeltki kogu probleemide spekter, mida peab lahendama andmekeskustes. Täna vaatame järgmise probleemi — marsruutimist võrkude või VNIde vahel.
Kohustuseks on Spine-Leaf topoloogia:

Alustame arutelu sellest, kuidas marsruutimine toimub ja millised on selle eripärad.
Arusaamade lihtsustamiseks lihtsustame loogilist skeemi ja lisame veel ühe VNI 20000 Host-2 jaoks. Tulemuseks on:

Kuidas sellises olukorras saame edastada liiklust ühelt Hostilt teisele?
On kaks varianti:
- Hoida kõigis Leaf lülitites teavet kõigi VNIde kohta, siis toimub kogu marsruutimine esimeses Leafis võrgus;
- Kasutada spetsiaalselt eraldatud — L3 VNI
Esimene meetod on lihtne ja mugav. Kõik, mis on vajalik, on vaid kõik VNI kõikidele Leaf lülititele sisse seada. K however, seada sisse mitu sada või tuhat VNI kõikidele Leaf lülititele, ei tundu enam lihtsa ülesandena. Seetõttu kasutatakse seda töös üsna harva.
Tegelgem teise meetodiga, mis on huvitavam ja veidi keerulisem, kuid pakub suuremat paindlikkust tehase seadistamisel.
Lisame topoloogiasse VRF "PROD". Sellesse lisame liidese vlan 10 Leaf-11/12 paaris ja liidese VLAN 20 Leaf-21. VLAN 20 seostatakse VNI 20000.
vrf context PROD
rd auto ! Route Distinguisher ei ole oluline ja saame kasutada automaatselt genereeritud
address-family ipv4 unicast
route-target both auto ! määrame Route-target, millega prefikseid imporditakse ja eksporditakse VRF-i
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-gatewayL3VNI kasutamiseks on vajalik luua uus VLAN, seostada see uue VNI-ga. Uus VNI peab olema kõigil Leaf lülititel sama, kes on huvitatud VLAN 10 ja 20 teabest.
vlan 99
vn-segment 99000
interface nve1
member vni 99000 associate-vrf ! Loome L3 VNI
vrf context PROD
vni 99000 ! Sidume L3 VNI kindla VRF-igaSeetõttu kuvatakse skeem järgmiselt:

On natuke jäänud, et valmis saada — lisada veel üks liides — interface vlan 99 VRF PROD-sse
interface Vlan99
no shutdown
vrf member PROD
ip forward ! Liidesel ei tohiks olla IP-d. Kasutatakse ainult pakettide edastamiseks Leaf'i vahel.Lõpuks on raami edasiviimise loogika Host-1-st Host-2-ni järgmine:
- Raam, mille Host-1 saadab, jõuab Leaf'i VLAN 10, mis on seotud VNI 10000-ga;
- Leaf kontrollib, kus sihtaadress asub, ja leiab selle läbi L3 VNI teise Leaf'i lüliti;
- Niipea kui sihtaadressi marsruut on leitud, pakib Leaf raam üles vajalikku L3VNI 99000 päisesse — ja saadab teise Leaf'i suunas;
- Teine Leaf'i lüliti saab andmed L3VNI 99000-st. Võtab algse raami ja edastab selle vajalikku L2VNI 20000-sse ning seejärel VLAN 20-sse.
Sellise töö tulemuseks on see, et L3VNI ei nõua informatsiooni kõigi VNI-de kohta, mis on võrgus, hoidmisest kõigis Leaf'i lülitites.
Seetõttu, kui saadame liiklust Host-1-lt Host-2-le, pakendatakse pakett VxLAN-i koos uue VNI-ga — 99000:

Peame aru saama, kuidas just Leaf-1 MAC-aadressi teise VNI-st õpib. See toimub samuti EVPN route-type 2 (MAC/IP) abil.
Allpool on näidatud marsruudi levitamine prefiksist, mis asub teises VNI-s:

See tähendab, et VNI 20000-st saadud aadressidel on kaks RT-d.
Tuletan meelde, et värskenduse kaudu saadud marsruudid jõuavad BGP tabelisse, mille Route-target on määratud VRF seadetes (protsess on keerulisem, kuid seda artiklit jõudmiseks me süvitsi ei lähe).
RT kujuneb järgmise valemi järgi: AS:VNI (kui kasutatakse automaatset režiimi).
Näide RT kujundamisest automaat- ja käsirežiimis:
vrf kontekst PROD
aadressiperiood ipv4 unicast
route-target import auto - automaatne režiim
route-target export 65001:20000 - käsitsi RT kujundamise režiimÜlaltoodust on näha, et teise VNI-st pärinevad prefiksid omavad kahte RT väärtust.
Üks neist on 65001:99000 — täiendav L3 VNI. Kuna see VNI on kõigil Leaf süsteemidel ühesugune ja allub meie VRF seadete import reeglitele — prefiks jõuab BGP tabelisse, nagu näha väljast:
sh bgp l2vpn evpn
Võrk Järgmine hüppeline Maatükk LocPrf Kaal Tee
Marsruudi eristaja: 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
Marsruudi eristaja: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272 ! Eelnimetus saadud VNI 20000
10.255.1.20 100 0 i
*>i 10.255.1.20 100 0 iKui vaatame saadud uuendust lähemalt, siis on näha, et antud eelnimetusel on kaks RT:
Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP marsruutimise tabeli teave VRF default, adresseerimisperes L2VPN EVPN
Marsruudi eristaja: 10.255.1.21:32787
BGP marsruutimise tabeli kirje [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.2
0]/272, versioon 5164
Teed: (2 saadaval, parim #2)
Lipud: (0x000202) (kõrge32 00000000) xmit-listis, ei ole l2rib/evpn'is, ei ole HW
Rajatüübi: sisemine, tee on kehtiv, mitte parim põhjus: Naabruse aadress, ei ole määratud etiketti
AS-Path: EI OLE, tee allikas AS-is
10.255.1.20 (mõõt 81) aadressilt 10.255.1.102 (10.255.1.102)
Allikas IGP, MED ei ole seadistatud, kohaliku eelistuse väärtus 100, kaal 0
Saadud etiketid 20000 99000 ! Kaks etiketti VxLAN-i jaoks tööks
Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8 ! Kaks Route-target väärtust, mille alusel lisati see prefiks
Ruuter MAC:5001.0005.0007
Algataja: 10.255.1.21 Klaster nimekiri: 10.255.1.102Leaf-1 marsruutimise tabelis on samuti nähtav prefiks 192.168.20.20/32:
Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, ühendatud
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, otse
192.168.10.1/32, ubest/mbest: 1/0, ühendatud
*via 192.168.10.1, Vlan10, [0/0], 01:29:28, lokaalne
192.168.10.10/32, ubest/mbest: 1/0, ühendatud
*via 192.168.10.10, Vlan10, [190/0], 01:27:22, hmm
192.168.20.20/32, ubest/mbest: 1/0 ! Aadress Host-2
*via 10.255.1.20fault, [200/0], 01:20:20, bgp-65001, sisemine, silt 65001 ! Saadaval läbi Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Läbi VNI 99000Kas olete märganud, et peamine prefiks 192.168.20.0/24 puudub marsruutimise tabelis?
Jah, seda seal ei ole. See tähendab, et eemalduvad Leaf seadmed saavad teavet ainult nende võrgus olevate hostide kohta. Ja see on õige käitumine. Kõikide uuenduste puhul on näha, et saabub teave MAC/IP sisuga. Ükski eelnevad prefixid ei ole seotud.
See töötab Host Mobility Manager (HMM) protokolli kaudu, mis täidab ARP tabelit, millest edasi täidetakse BGP tabel (selles artiklis jätame selle protsessi välja). HMM-ist saadud teabe põhjal moodustatakse EVPN route-type 2 (edastatakse MAC/IP).
Kuid mida teha, kui on vajalik edastada teavet mõne prefixi kohta?
Sellise teabe edastamiseks on olemas EVPN route-type 5 — see võimaldab edastada prefixeid address-family l2vpn evpn kaudu (see marsruutide tüüp on artikli kirjutamise ajal alles draft versioonis , seetõttu võib selle marsruuditüübi käitumine erineda erinevate tootjate vahel)
Prefixide edastamiseks on vajalik BGP protsessi käigus VRF-is lisada prefixid, mis hakkavad olema kuulutatud:
router bgp 65001
vrf PROD
address-family ipv4 unicast
redistribute direct route-map VNI20000 ! Selles olukorras kuulutame välja prefiksid, mis on otseselt ühendatud Leaf'iga VNI 20000
route-map VNI20000 permit 10
match ip address prefix-list VNI20000_OUT ! Näitame, millist prefix-list'i kasutada
ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24 ! Näitame, millised võrgud kuuluvad EVPN route-type 5Lõpptulemusena sisaldab Update:

Vaadake BGP tabelit. Peale EVPN route-type 2,3 on lisandunud marsruudid 5 tüüpi, mis sisaldavad teavet võrgu numbri kohta:
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 prefiksiga
10.255.1.10 0 100 0 ?
* i Reitingutabelis ilmus ka prefiks:
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, sisemine, silt 65001 ! Kaug-prefiks, saadaval läbi Leaf1/2(Next-hop aadress = virtuaalne IP VPC paaris)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Prefiks on saadaval läbi L3VNI 99000
192.168.10.10/32, ubest/mbest: 1/0
*via 10.255.1.10fault, [200/0], 02:33:40, bgp-65001, sisemine, silt 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN
192.168.20.0/24, ubest/mbest: 1/0, ühendatud
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, otse
192.168.20.1/32, ubest/mbest: 1/0, ühendatud
*via 192.168.20.1, Vlan20, [0/0], 02:39:44, lokaalne
192.168.20.20/32, ubest/mbest: 1/0, ühendatud
*via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmmSellega lõpetame teise osa VxLAN EVPN artiklite tsüklist. Järgmises osas vaatame erinevaid marsruutimisvariante VRF vahel.
Allikas: habr.com
