VxLAN tovarna. Del 2

Pozdravljen, Habr. Nadaljujem s ciklom člankov o tehnologiji VxLAN EVPN, ki so bili napisani posebej za zagon tečaja "Omrežni inženir" od OTUS. In danes bomo obravnavali zanimiv del nalog — usmerjanje. Kako banalno se to lahko sliši, a v okviru delovanja omrežne fabrike je lahko vse skupaj precej zapleteno.

VxLAN tovarna. Del 2

1. del cikla — L2 povezanost med strežniki

V prejšnjem delu smo dosegli en širokopasovni domen, zgrajen nad omrežno fabriko na Nexus 9000v. Vendar to še zdaleč ni celotni spekter nalog, ki jih je treba rešiti v okviru DC omrežja. In danes bomo obravnavali naslednjo nalogo — usmerjanje med omrežji ali med VNI.

Opomnim, da se uporablja topologija Spine-Leaf:

VxLAN tovarna. Del 2

Najprej razberimo, kako poteka usmerjanje in katere so posebnosti.

Za razumevanje poenostavimo logično shemo in dodamo še en VNI 20000 za Host-2. Tako dobimo:

VxLAN tovarna. Del 2

Kako lahko v takem primeru prenesemo promet od enega Host-a do drugega?

Obstajata dva načina:

  1. Na vseh Leaf stikala ohranjamo informacije o vseh VNI, tako da se vse usmerjanje zgodi na prvem Leaf v omrežju;
  2. Uporabiti posebej dodeljen — L3 VNI

Prvi način je preprost in priročen. Potrebno je le zaužiti vse VNI na vseh Leaf stikalah. Vendar pa se zdi, da je uvedba več sto ali tisoč VNI na vsa Leaf že precej zahtevna naloga. Zato se ta način v praksi uporablja precej redko.

Razmislimo o drugem načinu, ki je bolj zanimiv in nekoliko bolj zapleten, vendar nudi večjo fleksibilnost pri nastavljanju fabrike.

Dodali bomo v topologijo VRF "PROD". Vanjo dodamo interface vlan 10 na paru Leaf-11/12 in interface VLAN 20 na Leaf-21. VLAN 20 povežemo z VNI 20000.

vrf context PROD
  rd auto       ! Route Distinguisher ni ključnega pomena in lahko uporabimo samodejno ustvarjeno vrednost
  address-family ipv4 unicast
    route-target both auto      ! določimo Route-target, s katerim bomo uvažali in izvažali prefikse v/iz 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

Za uporabo L3 VNI je potrebno ustvariti nov VLAN, ga povezati z novim VNI. Nov VNI mora biti enak na vseh Leaf, ki jih zanima informacija o VLAN 10 in 20.

vlan 99
  vn-segment 99000

interface nve1
  member vni 99000 associate-vrf        ! Ustvarimo L3 VNI

vrf context PROD
  vni 99000                             ! Povezujemo L3 VNI z določenim VRF

Kot se bo shema predstavila takole:

VxLAN tovarna. Del 2

Še malo je potrebno dokončati — dodati še en vmesnik — interface vlan 99 v VRF PROD

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! Na vmesniku ne sme biti IP naslova. Uporablja se le za preusmerjanje paketov med Leaf

Torej je logika prehoda okvira od Host-1 do Host-2 naslednja:

  1. Okvir, poslan iz Host-1, prispe na Leaf v VLAN 10, ki je povezan z VNI 10000;
  2. Leaf preveri, kje se nahaja ciljni naslov in ga najde preko L3 VNI na drugem Leaf stikali;
  3. Ko je pot do ciljnega naslova najdena, Leaf zapakira okvir v glavo z ustreznim L3VNI 99000 — in ga pošlje proti drugemu Leaf;
  4. Drugi Leaf stikalo prejme podatke iz L3VNI 99000. Izvleče prvotni okvir in ga prenese v ustrezen L2VNI 20000 in naprej v VLAN 20.

Rezultat takšnega delovanja L3VNI odpravlja potrebo po hranjenju informacij o vseh VNI-jih v omrežju na vseh Leaf stikalih.

Torej, ko pošiljamo promet od Host-1 do Host-2, se paket zapakira v notranjost VxLAN z novim VNI — 99000:

VxLAN tovarna. Del 2

Ostaja razumeti, kako natančno Leaf-1 izve za MAC naslov iz drugega VNI. To se zgodi tudi s pomočjo EVPN route-type 2 (MAC/IP).

Spodaj je prikazan postopek širjenja poti o prefiksu, ki se nahaja v drugem VNI:

VxLAN tovarna. Del 2

Torej, naslovi, pridobljeni iz VNI 20000, imajo dva RT.
Spominjam vas, da se poti, pridobljene iz Update, uvrstijo v BGP tabelo z Route-target, določenim v nastavitvah VRF (postopek je nekoliko bolj zapleten, toda v okviru tega članka se ne bomo poglabljali).
Sam RT se oblikuje po formuli: AS:VNI (če se uporablja avtomatski način).

Primer oblikovanja RT v avtomatskem in ročnem načinu:

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - avtomatski način delovanja
    route-target export 65001:20000 - ročni način oblikovanja RT

Zgoraj je torej razvidno, da prefiksi iz drugega VNI imajo dve vrednosti RT.
Ena izmed njih je 65001:99000 — dodatni L3 VNI. Ker je ta VNI enak na vseh Leaf in ustreza našim pravilom uvoza v nastavitvah VRF — prefiks pride v BGP tabelo, kar lahko vidimo iz izhoda:

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.20]/272, version 5164
Paths: (2 available, best #2)
Flags: (0x000202) (high32 00000000) on xmit-list, is not in l2rib/evpn, is not in 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 в таблице маршрутизации?
Точно, его там нет. То есть удаленные Leaf получают информацию только о хостах, что есть в вашей сети. И это правильное поведение. Выше во всех обновлениях видно, что приходит информация с содержанием MAC/IP. Ни о каких префиксах речи не идет.

Это работает протокол Host Mobility Manager (HMM), который заполняет ARP таблицу, из которой дальше заполняется BGP таблица (в рамках данной статьи опустим этот процесс). На основе информации, полученной из HMM, формируются EVPN route-type 2 (передается MAC/IP).

Однако, что делать, если есть необходимость передать информацию о каком-либо префиксе?

Za to vrsto informacij obstaja EVPN route-type 5 — omogoča prenos prefiksov preko address-family l2vpn evpn (ta vrsta poti je ob pisanju članka v osnutku) RFC, zato se lahko obnašanje te vrste poti med različnimi proizvajalci razlikuje)

Za prenos prefiksov je potrebno med procesom BGP za VRF dodati prefikse, ki bodo napovedani:

router bgp 65001
  vrf PROD
    address-family ipv4 unicast
      redistribute direct route-map VNI20000        ! V tem primeru napovedujemo prefikse povezave neposredno na Leaf v VNI 20000
route-map VNI20000 permit 10
  match ip address prefix-list VNI20000_OUT    ! Določimo, katero prefix-list uporabiti

ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0/24   ! Določimo, kateri omrežni prefiksi bodo vključeni v EVPN route-type 5

Na koncu bo v posodobitvi:

VxLAN tovarna. Del 2

Poglejmo BGP tabelo. Poleg EVPN route-type 2,3 so se pojavile tudi poti 5. tipa, ki vsebujejo informacije o številu omrežja:

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 s številko prefiksa
                      10.255.1.10              0        100          0 ?
* i                   

V tabeli usmerjanja se je prefiks tudi pojavil:

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

S tem končamo drugi del cikla člankov o VxLAN EVPN. V naslednjem delu bomo obravnavali različne možnosti usmerjanja med VRF.

Osnove protokola IPv6 in njegove razlike od IPv4

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster