Fabbrica VxLAN. Parte 2

Ciao Habr. Continuo la serie di articoli sulla tecnologia VxLAN EVPN, che sono stati scritti appositamente per il lancio del corso "Ingegnere di rete" di OTUS. E oggi considereremo una parte interessante dei compiti: il routing. Non importa quanto banale possa sembrare, tuttavia, come parte del lavoro di una fabbrica di rete, tutto può non essere così semplice.

Fabbrica VxLAN. Parte 2

1 parte del ciclo: connettività L2 tra i server

Nell'ultima parte, abbiamo ottenuto un dominio di trasmissione costruito su un tessuto di rete su un Nexus 9000v. Tuttavia, questa non è l'intera gamma di attività che devono essere risolte nell'ambito della rete del data center. E oggi considereremo la seguente attività: instradamento tra reti o tra VNI.

Permettetemi di ricordarvi che viene utilizzata la topologia Spine-Leaf:

Fabbrica VxLAN. Parte 2

Per cominciare, analizzeremo come avviene il routing e quali caratteristiche ha.

Per capire, semplifichiamo il diagramma logico e aggiungiamo un altro VNI 20000 per Host-2. Il risultato è:

Fabbrica VxLAN. Parte 2

Come puoi, in questo caso, trasferire il traffico da un Host all'altro?

Ci sono due opzioni:

  1. Mantieni le informazioni su tutte le VNI su tutti gli switch Leaf, quindi tutto il routing avverrà sulla prima Leaf nella rete;
  2. Usa dedicato - L3 VNI

Il primo modo è semplice e conveniente. Dal momento che devi solo avviare tutti i VNI su tutti gli switch Leaf. Tuttavia, l'esecuzione di poche centinaia o migliaia di VNI sull'intero Leaf non sembra più un compito facile. Pertanto, nel lavoro è usato abbastanza raramente.

Analizzeremo il metodo 2, in quanto più interessante e leggermente più complicato, ma che offre maggiore flessibilità nell'allestimento della fabbrica.

Aggiungiamo "PROD" alla topologia VRF. Aggiungiamo l'interfaccia vlan 10 sulla coppia Leaf-11/12 e l'interfaccia VLAN 20 su Leaf-21. La VLAN 20 è associata alla 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

Per utilizzare L3VNI, è necessario creare una nuova VLAN, associarla alla nuova VNI. La nuova VNI deve essere la stessa su tutte le Leaf interessate alle informazioni VLAN 10 e 20.

vlan 99
  vn-segment 99000

interface nve1
  member vni 99000 associate-vrf        ! Создаем L3 VNI

vrf context PROD
  vni 99000                             ! Привязываем L3 VNI к определенному VRF

Di conseguenza, il diagramma sarà simile a questo:

Fabbrica VxLAN. Parte 2

Resta da finire un po ': aggiungi un'altra interfaccia - interfaccia vlan 99 in VRF PROD

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! На интерфейсе не должно быть IP. Используется только для пересылки пакетов между Leaf

Di conseguenza, la logica del passaggio del frame da Host-1 a Host-2 è la seguente:

  1. Un frame inviato da Host-1 arriva su una Leaf nella VLAN 10, che è associata alla VNI 10000;
  2. Leaf controlla dove si trova l'indirizzo di destinazione e lo trova tramite L3 VNI sul secondo switch Leaf;
  3. Non appena viene trovato il percorso verso l'indirizzo di destinazione, la Leaf impacchetta il frame in un'intestazione con il necessario L3VNI 99000 - e lo invia verso la seconda Leaf;
  4. Il secondo switch Leaf riceve i dati da L3VNI 99000. Ottiene il frame originale e lo trasferisce al L2VNI 20000 richiesto e quindi alla VLAN 20.

Come risultato di questo lavoro, L3VNI elimina la necessità di conservare le informazioni su tutti i VNI presenti sulla rete su tutti gli switch Leaf.

Di conseguenza, quando inviamo traffico da Host-1 a Host-2, il pacchetto viene impacchettato all'interno di VxLAN con il nuovo VNI - 99000:

Fabbrica VxLAN. Parte 2

Resta da vedere come esattamente Leaf-1 apprende l'indirizzo MAC da un altro VNI. Questo accade anche con l'aiuto di EVPN route-type 2 (MAC/IP).

Quanto segue mostra il processo di propagazione di un instradamento su un prefisso situato in un altro VNI:

Fabbrica VxLAN. Parte 2

Cioè, gli indirizzi ricevuti da VNI 20000 hanno due RT.
Permettetemi di ricordarvi che i percorsi ricevuti da Update rientrano nella tabella BGP con il Route-target specificato nelle impostazioni VRF (il processo è un po' più complicato, ma non entreremo in questo articolo).
L'RT stesso è formato dalla formula: AS:VNI (se si utilizza la modalità automatica).

Un esempio di formazione RT in modalità automatica e manuale:

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - автоматический режим работы
    route-target export 65001:20000 - ручной режим формирования RT

Di conseguenza, puoi vedere sopra che i prefissi di un'altra VNI hanno due valori RT.
Uno di questi 65001:99000 è un VNI L3 aggiuntivo. Poiché questo VNI è lo stesso su tutte le Leaf e rientra nelle nostre regole di importazione nelle impostazioni VRF, il prefisso entra nella tabella BGP, che può essere vista dall'output:

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

Se osserviamo più da vicino l'aggiornamento ricevuto, possiamo vedere che questo prefisso ha due 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
<......>

Nella tabella di routing su Leaf-1, puoi anche vedere il prefisso 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

Notare il prefisso primario mancante 192.168.20.0/24 nella tabella di routing?
Esatto, lui non c'è. Cioè, i Leaf remoti ricevono informazioni solo sugli host che si trovano sulla tua rete. E questo è il comportamento corretto. Sopra, in tutti gli aggiornamenti, puoi vedere che le informazioni vengono fornite con il contenuto di MAC / IP. Non ci sono prefissi di cui parlare.

Questo è il protocollo Host Mobility Manager (HMM), che riempie la tabella ARP da cui viene ulteriormente riempita la tabella BGP (ometteremo questo processo nell'ambito di questo articolo). Sulla base delle informazioni ricevute dall'HMM, vengono formati EVPN di tipo route 2 (trasmessi da MAC/IP).

Tuttavia, cosa succede se è necessario trasmettere informazioni su un prefisso?

Per questo tipo di informazioni esiste EVPN route-type 5 - consente di inviare prefissi tramite address-family l2vpn evpn (questo tipo di route al momento in cui scriviamo è solo nella versione bozza RFC, per questo motivo, diversi produttori possono avere un comportamento diverso di questo tipo di percorso)

Per trasferire i prefissi, è necessario aggiungere i prefissi nel processo BGP per VRF, che verrà pubblicizzato:

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

Di conseguenza, Update sarà:

Fabbrica VxLAN. Parte 2

Diamo un'occhiata alla tabella BGP. Oltre al tipo di percorso EVPN 2,3, sono apparsi percorsi di tipo 5 che contengono informazioni sul numero di rete:

<......>
   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
<.......>                   

Il prefisso è apparso anche nella tabella di routing:

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

Questo conclude la seconda parte di una serie di articoli su VxLAN EVPN. Nella parte successiva, prenderemo in considerazione varie opzioni per l'instradamento tra VRF.

Fondamenti di IPv6 e come differisce da IPv4

Fonte: habr.com

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster