Sveiki, Habr. Tęsiu straipsnių seriją apie VxLAN EVPN technologiją, kuri buvo parašyti specialiai kurso pradžiai
Paskutinėje dalyje „Nexus 9000v“ pasiekėme vieną transliavimo domeną, sukurtą ant tinklo audinio. Tačiau tai nėra visas užduočių spektras, kurį reikia išspręsti duomenų centro tinkle. Ir šiandien pažvelgsime į kitą užduotį – maršruto parinkimą tarp tinklų arba tarp VNI.
Leiskite jums priminti, kad naudojama Spine-Leaf topologija:
Pirmiausia pažiūrėkime, kaip vyksta maršrutas ir kokias funkcijas jis turi.
Kad suprastume, supaprastinkime loginę diagramą ir pridėkite kitą VNI 20000, skirtą Host-2. Rezultatas yra:
Kaip tokiu atveju galite perkelti srautą iš vieno pagrindinio kompiuterio į kitą?
Yra dvi parinktys:
- Išsaugokite informaciją apie visus VNI visuose Leaf jungikliuose, tada visas maršrutas įvyks pirmame tinklo lape;
- Naudokite tam skirtą L3 VNI
Pirmasis metodas yra paprastas ir patogus. Kadangi jums tiesiog reikia įdiegti visus VNI ant visų Leaf jungiklių. Tačiau kelių šimtų ar tūkstančių VNI nustatymas visiems Leafams nebeatrodo paprasta užduotis. Todėl darbe jis naudojamas gana retai.
Pažvelkime į 2 metodą, kuris yra įdomesnis ir šiek tiek sudėtingesnis, tačiau suteikia daugiau lankstumo nustatant gamyklą.
Prie VRF topologijos pridėkime „PROD“. Prie jo pridėsime sąsają vlan 10 „Leaf-11/12“ poroje ir sąsają VLAN 20 „Leaf-21“. VLAN 20 yra susietas su 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
Norėdami naudoti L3VNI, turite sukurti naują VLAN ir susieti jį su naujuoju VNI. Naujasis VNI turi būti vienodas visuose VLAN 10 ir 20 informacija dominančiuose lapuose
vlan 99
vn-segment 99000
interface nve1
member vni 99000 associate-vrf ! Создаем L3 VNI
vrf context PROD
vni 99000 ! Привязываем L3 VNI к определенному VRF
Dėl to diagrama atrodys taip:
Belieka šiek tiek nuveikti - pridėkite dar vieną sąsają - sąsają vlan 99 VRF PROD
interface Vlan99
no shutdown
vrf member PROD
ip forward ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf
Dėl to kadro perdavimo iš Host-1 į Host-2 logika yra tokia:
- „Host-1“ atsiųstas kadras patenka į „Leaf“ VLAN 10, susietą su VNI 10000;
- Leaf patikrina, kur yra paskirties adresas, ir suranda jį per L3 VNI antrajame Leaf jungiklyje;
- Kai tik randamas maršrutas į paskirties adresą, Leaf supakuoja kadrą į antraštę su reikiamu L3VNI 99000 ir siunčia jį į antrąjį lapą;
- Antrasis Leaf jungiklis gauna duomenis iš L3VNI 99000. Jis paima originalų kadrą ir perkelia jį į reikiamą L2VNI 20000, o paskui į VLAN 20.
Dėl šio darbo L3VNI nebereikia saugoti informacijos apie visus tinkle esančius VNI visuose Leaf jungikliuose.
Dėl to, kai siunčiame srautą iš Host-1 į Host-2, paketas yra supakuotas VxLAN viduje su nauju VNI - 99000:
Belieka pamatyti, kaip tiksliai Leaf-1 sužino apie MAC adresą iš kito VNI. Tai taip pat vyksta naudojant EVPN maršruto tipą 2 (MAC/IP).
Toliau parodytas maršruto skleidimo apie priešdėlį, esantį kitame VNI, procesas:
Tai yra, iš VNI 20000 gauti adresai turi du RT.
Priminsiu, kad iš Update gauti maršrutai patenka į BGP lentelę su VRF nustatymuose nurodytu Route-target (procesas kiek sudėtingesnis, bet į šį straipsnį nesigilinsime).
Pats RT formuojamas pagal formulę: AS:VNI (jei naudojamas automatinis režimas).
RT formavimo automatiniu ir rankiniu režimu pavyzdys:
vrf context PROD
address-family ipv4 unicast
route-target import auto - автоматический режим работы
route-target export 65001:20000 - ручной режим формирования RT
Aukščiau pateiktas rezultatas rodo, kad priešdėliai iš kito VNI turi dvi RT reikšmes.
Vienas iš jų yra 65001:99000 – papildomas L3 VNI. Kadangi šis VNI yra vienodas visuose lapuose ir jam taikomos mūsų importavimo taisyklės VRF nustatymuose, priešdėlis patenka į BGP lentelę, kurią galima pamatyti iš išvesties:
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
Jei atidžiau pažvelgsime į gautą naujinimą, pamatysime, kad šis priešdėlis turi du 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
<......>
Maršrutizavimo lentelėje Leaf-1 taip pat galite pamatyti priešdėlį 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
Pastebėjote, kad maršruto parinkimo lentelėje nėra pagrindinio priešdėlio 192.168.20.0/24?
Tiesa, jo ten nėra. Tai reiškia, kad nuotoliniai lapai gauna informaciją tik apie jūsų tinkle esančius pagrindinius kompiuterius. Ir tai yra teisingas elgesys. Virš visų atnaujinimų galite matyti, kad informacija pateikiama su MAC/IP turiniu. Apie jokius priešdėlius nėra kalbos.
Taip veikia Host Mobility Manager (HMM) protokolas, kuris užpildo ARP lentelę, iš kurios užpildoma BGP lentelė (šiame straipsnyje šį procesą praleisime). Remiantis iš HMM gauta informacija, suformuojamas EVPN maršruto tipas 2 (perduodamas MAC/IP).
Tačiau ką daryti, jei reikia perduoti informaciją apie priešdėlį?
Šio tipo informacijai yra EVPN maršruto tipas 5 - jis leidžia perduoti priešdėlius per adresų šeimą l2vpn evpn (šio tipo maršrutai rašymo metu yra tik juodraštinėje versijoje
Norint perduoti prefiksus, būtina pridėti priešdėlių, kurie bus reklamuojami VRF BGP procese:
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
Dėl to atnaujinimas turės:
Pažiūrėkime į BGP lentelę. Be EVPN maršruto tipo 2,3, pasirodė 5 tipo maršrutai, kuriuose yra informacijos apie tinklo numerį:
<......>
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
<.......>
Priešdėlis taip pat pasirodė maršruto lentelėje:
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
Taip baigiama antroji straipsnių apie VxLAN EVPN dalis. Kitoje dalyje apžvelgsime įvairias maršruto tarp VRF parinktis.
Šaltinis: www.habr.com