VxLAN gamykla. 2 dalis

Sveiki, Habr. Tęsiu straipsnių seriją apie VxLAN EVPN technologiją, kuri buvo parašyti specialiai kurso pradžiai "Tinklo inžinierius" iš OTUS. Ir šiandien pažvelgsime į įdomią užduoties dalį - maršruto parinkimą. Kad ir kaip banaliai tai skambėtų, tačiau tinklo gamyklos darbe viskas gali būti ne taip paprasta.

VxLAN gamykla. 2 dalis

1 ciklo dalis – L2 ryšys tarp serverių

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:

VxLAN gamykla. 2 dalis

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:

VxLAN gamykla. 2 dalis

Kaip tokiu atveju galite perkelti srautą iš vieno pagrindinio kompiuterio į kitą?

Yra dvi parinktys:

  1. Išsaugokite informaciją apie visus VNI visuose Leaf jungikliuose, tada visas maršrutas įvyks pirmame tinklo lape;
  2. 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:

VxLAN gamykla. 2 dalis

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:

  1. „Host-1“ atsiųstas kadras patenka į „Leaf“ VLAN 10, susietą su VNI 10000;
  2. Leaf patikrina, kur yra paskirties adresas, ir suranda jį per L3 VNI antrajame Leaf jungiklyje;
  3. Kai tik randamas maršrutas į paskirties adresą, Leaf supakuoja kadrą į antraštę su reikiamu L3VNI 99000 ir siunčia jį į antrąjį lapą;
  4. 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:

VxLAN gamykla. 2 dalis

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:

VxLAN gamykla. 2 dalis

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 RFC, todėl skirtingų gamintojų šio tipo maršruto elgsena gali skirtis)

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:

VxLAN gamykla. 2 dalis

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.

IPv6 protokolo pagrindai ir jo skirtumai nuo IPv4

Šaltinis: www.habr.com

Добавить комментарий