VxLAN továrna. Část 2.

Ahoj, Habr. Pokračuji v cyklu článků o technologii VxLAN EVPN, které byly napsány speciálně k spuštění kurzu "Síťový inženýr" od OTUS. A dnes se podíváme na zajímavou část úloh — routování. Ačkoliv to může znít banálně, v rámci práce síťové fabriky může být vše složitější.

VxLAN továrna. Část 2.

1. část cyklu — L2 konektivita mezi servery

V minulé části jsme dosáhli jednoho broadcast domény, postavené na síťové fabrice na Nexus 9000v. Avšak to není celý rozsah úloh, které je třeba vyřešit v rámci datového centra. Dnes prozkoumáme další úkol — routování mezi sítěmi nebo mezi VNI.

Připomínám, že se používá topologie Spine-Leaf:

VxLAN továrna. Část 2.

Nejprve si vysvětlíme, jak probíhá routování a jaké má své zvláštnosti.

Abychom to usnadnili, zjednodušíme logické schéma a přidáme další VNI 20000 pro Host-2. V konečném důsledku to bude vypadat takto:

VxLAN továrna. Část 2.

Jak lze v takovém případě přenést provoz od jednoho hostitele k druhému?

Existují dvě možnosti:

  1. Na všech Leaf přepínačích uchovávat informace o všech VNI, potom veškeré routování proběhne na prvním Leaf v síti;
  2. Použít speciálně vyhrazený — L3 VNI

První způsob je jednoduchý a pohodlný. Je totiž třeba pouze zavést všechny VNI na všechny Leaf přepínače. Avšak zavést několik set nebo tisíc VNI na všechny Leaf už se nezdá jako jednoduchý úkol. Proto se v praxi používá poměrně zřídka.

Prozkoumáme druhý způsob, který je zajímavější a o něco složitější, ale poskytuje větší flexibilitu v nastavení fabriky.

Přidáme do topologie VRF "PROD". Do něj přidáme interface vlan 10 na páru Leaf-11/12 a interface VLAN 20 na Leaf-21. VLAN 20 asociujeme s VNI 20000.

vrf context PROD
  rd auto       ! Route Distinguisher není zásadní a můžeme použít automaticky vytvořený
  address-family ipv4 unicast
    route-target both auto      ! uvádíme Route-target, se kterým budou importovány a exportovány 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-gateway

Abychom mohli použít L3VNI, je nutné vytvořit nový VLAN a asociovat ho s novým VNI. Nový VNI musí být stejný na všech Leaf, které mají zájem o informace o VLAN 10 a 20.

vlan 99
  vn-segment 99000

interface nve1
  member vni 99000 associate-vrf        ! Vytváříme L3 VNI

vrf context PROD
  vni 99000                             ! Připojujeme L3 VNI k určitému VRF

Výsledná schéma bude vypadat takto:

VxLAN továrna. Část 2.

Zbývá jen trochu doplnit — přidat další rozhraní — interface vlan 99 do VRF PROD

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! Na rozhraní by neměla být IP adresa. Používá se pouze pro přenos datových paketů mezi Leaf

Logika přenosu rámce z Host-1 do Host-2 je následující:

  1. Rámec, který je odeslán z Host-1, přichází na Leaf v VLAN 10, která je asociována s VNI 10000;
  2. Leaf kontroluje, kde se nachází cílová adresa, a nachází ji prostřednictvím L3 VNI na druhém Leafovém přepínači;
  3. Jakmile je nalezena cesta k cílové adrese, Leaf zabalí rámec do hlavičky s požadovaným L3VNI 99000 — a odešle jej směrem k druhému Leafu;
  4. Druhý Leaf přepínač přijímá data z L3VNI 99000. Vyjme původní rámec a převede jej do potřebného L2VNI 20000 a dále do VLAN 20.

Výsledkem této práce L3VNI odstraňuje potřebu uchovávat na všech Leafových přepínačích informace o všech VNI, které existují v síti.

Když posíláme provoz z Host-1 do Host-2, paket se zabalí do VxLAN s novým VNI — 99000:

VxLAN továrna. Část 2.

Je třeba pochopit, jak přesně Leaf-1 zjistí MAC adresu z jiného VNI. Děje se to také pomocí EVPN route-type 2 (MAC/IP).

Následuje proces šíření trasy o prefixu nacházejícím se v jiném VNI:

VxLAN továrna. Část 2.

To znamená, že adresy získané z VNI 20000 mají dvě RT.
Připomínám, že trasy získané z Update se dostanou do tabulky BGP s Route-target, jak je uvedeno v nastavení VRF (proces je poněkud složitější, avšak v rámci tohoto článku se nebudeme hlouběji zabývat).
Samotné RT se vytváří podle vzorce: AS:VNI (pokud je použito automatické režimu).

Příklad tvorby RT v automatickém a ručním režimu:

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - automatický režim
    route-target export 65001:20000 - ruční režim tvorby RT

Z výše uvedeného je patrné, že prefixy z jiného VNI mají dva hodnoty RT.
Jedna z nich je 65001:99000 — dodatečný L3 VNI. Protože tento VNI je stejný na všech Leaf a spadá pod naše importní pravidla v nastavení VRF — prefix se dostane do tabulky BGP, jak lze vidět z výstupu:

sh bgp l2vpn evpn

   Síť            Další skok           Metrika     LocPrf     Hmotnost Cesta
Rozlišovač trasy: 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

Rozlišovač trasy: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]\/272    ! Prefix získaný z VNI 20000
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

Pokud se podíváme podrobněji na obdrženou aktualizaci, lze vidět, že tento prefix má dvě RT:

Leaf11# sh bgp l2vpn evpn 5001.0008.0007
Informace o BGP routovací tabulce pro VRF default, adresní rodina L2VPN EVPN
Rozlišovač trasy: 10.255.1.21:32787
Záznam BGP routovací tabulky pro [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]\/272, verze 5164
Cesty: (2 dostupné, nejlepší #2)
Flagy: (0x000202) (high32 00000000) na xmit-list, není v l2rib/evpn, není v HW

  Typ cesty: interní, cesta je platná, není nejlepší důvod: Adresa souseda, žádný označený next-hop
  AS-Cesta: ŽÁDNÝ, cesta nesená interně do AS
    10.255.1.20 (metrika 81) od 10.255.1.102 (10.255.1.102)
      Původ IGP, MED není nastaven, lokální preference 100, hmotnost 0
      Přijatý štítek 20000 99000                                 ! Dva štítky pro práci s VxLAN
      Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8     ! Dva hodnoty Route-target, na základě kterých byl přidán tento prefix
          Router MAC:5001.0005.0007
      Původce: 10.255.1.21 Seznam clusterů: 10.255.1.102

V routovací tabulce na Leaf-1 lze také pozorovat prefix 192.168.20.20\/32:

Leaf11# sh ip route vrf PROD
192.168.10.0/24, ubest/mbest: 1/0, připojeno
 *via 192.168.10.1, Vlan10, [0/0], 01:29:28, přímé
192.168.10.1/32, ubest/mbest: 1/0, připojeno
 *via 192.168.10.1, Vlan10, [0/0], 01:29:28, lokální
192.168.10.10/32, ubest/mbest: 1/0, připojeno
 *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, interní, tag 65001 ! Přístupné přes Leaf-2
(evpn) segid: 99000 tunnelid: 0xaff0114 encap: VXLAN ! Přes VNI 99000

Všimli jste si, že v routovací tabulce chybí hlavní prefix 192.168.20.0\/24?
Přesně tak, tam není. To znamená, že vzdálené Leaf dostávají informace pouze o hostech, kteří jsou ve vaší síti. A to je správné chování. V předchozích aktualizacích je vidět, že přicházejí informace o obsahu MAC\/IP. O žádných prefixech se nediskutuje.

Funguje protokol Host Mobility Manager (HMM), který vyplňuje ARP tabulku, ze které se pak vyplňuje BGP tabulka (v rámci tohoto článku tento proces opustíme). Na základě informací získaných z HMM se vytvářejí EVPN route-type 2 (přenáší se MAC\/IP).

Co však dělat, pokud je potřeba přenést informace o nějakém prefixu?

Pro tento typ informací existuje EVPN route-type 5 — umožňuje přenášet prefixy přes address-family l2vpn evpn (tento typ tras na moment psaní článku se nachází pouze v draft verzi) RFC, kvůli tomu se může chování tohoto typu trasy lišit u různých výrobců)

Pro přenos prefixů je nutné v procesu BGP pro VRF přidat prefixy, které budou vyhlašovány:

router bgp 65001
  vrf PROD
    address-family ipv4 unicast
      redistribute direct route-map VNI20000        ! V tomto případě vyhlašujeme prefixy připojení přímo k Leaf ve VNI 20000
route-map VNI20000 permit 10
  match ip address prefix-list VNI20000_OUT    ! Určujeme, jaký prefix-list použít

ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0\/24   ! Určujeme, které sítě budou zahrnuty do EVPN route-type 5

V konečném důsledku bude v aktualizaci:

VxLAN továrna. Část 2.

Podívejme se na tabulku BGP. Kromě EVPN route-type 2,3 se objevily trasy typu 5, které obsahují informace o čísle sítě:

Síť            Další skok            Metoda     LocPrf     Váha Trajektorie
Politik návrhu 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 ?

Politik návrhu 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

Politik návrhu trasy: 10.255.1.12:3
*>i[5]:[0]:[0]:[24]:[192.168.10.0]\/224      ! EVPN route-type 5 s číslem prefixu
                      10.255.1.10              0        100          0 ?
* i                   

V tabulce tras se prefix také objevil:

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, interní, tag 65001 ! Vzdálený prefix, dostupný přes Leaf1/2 (adresa Next-hop = virtuální IP mezi párem VPC)
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN ! Prefix dostupný přes L3VNI 99000

192.168.10.10/32, ubest/mbest: 1/0
 *via 10.255.1.10fault, [200/0], 02:33:40, bgp-65001, interní, tag 65001
(evpn) segid: 99000 tunnelid: 0xaff010a encap: VXLAN

192.168.20.0/24, ubest/mbest: 1/0, připojeno
 *via 192.168.20.1, Vlan20, [0/0], 02:39:44, přímé
192.168.20.1/32, ubest/mbest: 1/0, připojeno
 *via 192.168.20.1, Vlan20, [0/0], 02:39:44, lokální
192.168.20.20/32, ubest/mbest: 1/0, připojeno
 *via 192.168.20.20, Vlan20, [190/0], 02:35:46, hmm

Na tomto končíme druhou část cyklu článků o VxLAN EVPN. V další části probereme různé možnosti směrování mezi VRF.

Základy protokolu IPv6 a jeho rozdíly od IPv4

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster