VxLAN-Fabrik. Teil 2

Hallo, Habr. Ich setze meine Artikelreihe zur VxLAN EVPN-Technologie fort, die speziell zur Einführung des Kurses "Netzwerktechniker" von OTUS. Heute werden wir einen interessanten Teil der Aufgaben betrachten – das Routing. So banal es auch klingen mag, im Rahmen der Arbeit einer Netzwerkfabrik kann alles nicht so einfach sein.

VxLAN-Fabrik. Teil 2

Teil 1 der Reihe – L2-Konnektivität zwischen Servern

Im letzten Teil haben wir ein Broadcast-Domain erreicht, das über die Netzwerkfabrik auf Nexus 9000v aufgebaut wurde. Aber das ist bei weitem nicht das gesamte Spektrum der Aufgaben, die innerhalb des Rechenzentrumsnetzes gelöst werden müssen. Heute werden wir die nächste Aufgabe betrachten – das Routing zwischen Netzwerken oder zwischen VNIs.

Ich erinnere daran, dass die Spine-Leaf-Topologie verwendet wird:

VxLAN-Fabrik. Teil 2

Zunächst untersuchen wir, wie das Routing funktioniert und welche Besonderheiten es gibt.

Um das Verständnis zu erleichtern, vereinfachen wir das logische Schema und fügen einen weiteren VNI 20000 für Host-2 hinzu. Am Ende ergibt sich:

VxLAN-Fabrik. Teil 2

Wie kann in diesem Fall der Verkehr von einem Host zum anderen übertragen werden?

Es gibt zwei Optionen:

  1. Auf allen Leaf-Switches die Informationen über alle VNIs zu speichern, sodass das gesamte Routing an dem ersten Leaf im Netzwerk erfolgt;
  2. Einen speziell zugewiesenen – L3 VNI zu verwenden.

Der erste Ansatz ist einfach und bequem. Es genügt, alle VNIs auf alle Leaf-Switches zu konfigurieren. Doch die Eingabe von mehreren Hundert oder Tausend VNIs auf allen Leaf-Switches erscheint bereits als komplexe Aufgabe. Daher wird dieses Verfahren in der Praxis eher selten angewendet.

Lassen Sie uns die zweite Methode betrachten, die interessanter und etwas komplexer ist, jedoch mehr Flexibilität bei der Konfiguration der Fabrik bietet.

Wir fügen der Topologie den VRF "PROD" hinzu. Darin fügen wir das Interface VLAN 10 an den Leaf-11/12-Paaren und das Interface VLAN 20 an Leaf-21 hinzu. VLAN 20 wird mit VNI 20000 assoziiert.

vrf context PROD
  rd auto       ! Route Distinguisher ist nicht entscheidend, und wir können den automatisch generierten verwenden
  address-family ipv4 unicast
    route-target both auto      ! Wir geben den Route-target an, mit dem die Präfixe in/aus dem VRF importiert und exportiert werden
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

Um L3VNI nutzen zu können, muss ein neuer VLAN erstellt und mit dem neuen VNI assoziiert werden. Der neue VNI muss auf allen Leaf-Switches identisch sein, die an den Informationen über VLAN 10 und 20 interessiert sind.

vlan 99
  vn-segment 99000

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

vrf context PROD
  vni 99000                             ! L3 VNI einem bestimmten VRF zuordnen

Das Schema wird wie folgt dargestellt:

VxLAN-Fabrik. Teil 2

Es bleibt nur noch wenig zu tun – einen weiteren Schnittstellen hinzufügen – interface vlan 99 im VRF PROD.

interface Vlan99
  no shutdown
  vrf member PROD
  ip forward  ! Auf der Schnittstelle sollte keine IP-Adresse vorhanden sein. Wird nur zur Paketweiterleitung zwischen Leaf verwendet.

Die Logik für den Rahmenübertragungsweg von Host-1 zu Host-2 ist wie folgt:

  1. Der von Host-1 gesendete Rahmen erreicht den Leaf in VLAN 10, der mit VNI 10000 assoziiert ist;
  2. Leaf überprüft, wo sich die Zieladresse befindet und findet sie über L3 VNI auf dem zweiten Leaf-Switch;
  3. Sobald der Weg zur Zieladresse gefunden ist, packt Leaf den Rahmen in einen Header mit dem erforderlichen L3VNI 99000 – und sendet ihn zum zweiten Leaf;
  4. Der zweite Leaf-Switch empfängt die Daten aus L3VNI 99000. Er extrahiert den ursprünglichen Rahmen und überträgt ihn in das erforderliche L2VNI 20000 und weiter in VLAN 20.

Das Ergebnis dieser Arbeit entfernt die Notwendigkeit, auf allen Leaf-Switches Informationen über alle VNI, die im Netzwerk existieren, zu halten.

Somit wird, wenn wir den Datenverkehr von Host-1 zu Host-2 senden, das Paket in ein VxLAN mit dem neuen VNI – 99000 verpackt.

VxLAN-Fabrik. Teil 2

Es bleibt zu verstehen, wie genau Leaf-1 die MAC-Adresse aus einem anderen VNI erfährt. Dies geschieht ebenfalls über EVPN route-type 2 (MAC/IP).

Im Folgenden wird der Prozess der Verbreitung von Routen über ein Präfix, das sich in einem anderen VNI befindet, dargestellt:

VxLAN-Fabrik. Teil 2

Das heißt, die Adressen, die aus dem VNI 20000 stammen, haben zwei RT.
Erinnern wir uns daran, dass die aus dem Update erhaltenen Routen mit dem Route-Target, das in den VRF-Einstellungen angegeben ist, in die BGP-Tabelle gelangt (der Prozess ist etwas komplizierter, aber wir wollen in diesem Artikel nicht tiefer darauf eingehen).
Der RT wird nach der Formel: AS:VNI (wenn der automatische Modus verwendet wird) gebildet.

Beispiel für die Bildung von RT im automatischen und manuellen Modus:

vrf context PROD
  address-family ipv4 unicast
    route-target import auto - automatischer Betriebsmodus
    route-target export 65001:20000 - manueller Modus zur Erstellung des RT

Das obige Beispiel zeigt, dass die Präfixe aus einem anderen VNI zwei RT-Werte haben.
Einer davon ist 65001:99000 — ein zusätzlicher L3 VNI. Da dieser VNI auf allen Leaf-Knoten identisch ist und unter unsere Importregeln in den VRF-Einstellungen fällt, gelangt das Präfix in die BGP-Tabelle, wie aus der Ausgabe ersichtlich ist:

sh bgp l2vpn evpn

   Netzwerk            Next Hop            Metrik     LocPrf     Gewicht Pfad
Routen-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

Routen-Distinguisher: 10.255.1.21:32787
* i[2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.20]/272    ! Präfix erhalten aus VNI 20000
                      10.255.1.20                       100          0 i
*>i                   10.255.1.20                       100          0 i

Wenn wir uns das erhaltene Update genauer ansehen, sehen wir, dass dieses Präfix zwei RT hat:

Leaf11# sh bgp l2vpn evpn 5001.0008.0007
BGP-Routing-Tabelleninformationen für VRF default, Adressfamilie L2VPN EVPN
Route Distinguisher: 10.255.1.21:32787
BGP-Routing-Tabelleintrag für [2]:[0]:[0]:[48]:[5001.0008.0007]:[32]:[192.168.20.2
0]/272, Version 5164
Pfade: (2 verfügbar, beste #2)
Flags: (0x000202) (high32 00000000) in xmit-list, nicht in l2rib/evpn, nicht in HW

  Pfadtyp: intern, Pfad ist gültig, nicht beste Begründung: Nachbaradresse, kein beschrifteter Nexthop
  AS-Pfad: KEINE, Pfad interne Herkunft zu AS
    10.255.1.20 (Metrik 81) von 10.255.1.102 (10.255.1.102)
      Ursprung IGP, MED nicht gesetzt, localpref 100, Gewicht 0
      Erhaltener Label 20000 99000                                 ! Zwei Labels für den VxLAN-Betrieb
      Extcommunity: RT:65001:20000 RT:65001:99000 SOO:10.255.1.20:0 ENCAP:8     ! Zwei Werte für Route-Target, auf deren Grundlage dieser Präfix hinzugefügt wurde
          Router MAC:5001.0005.0007
      Ersteller: 10.255.1.21 Clusterliste: 10.255.1.102

In der Routing-Tabelle auf Leaf-1 kann auch das Präfix 192.168.20.20/32 beobachtet werden:

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

Haben Sie das Fehlen des Hauptpräfixes 192.168.20.0/24 in der Routing-Tabelle bemerkt?
Genau, das gibt es dort nicht. Das bedeutet, dass entfernte Leaf Informationen nur über die Hosts erhält, die in Ihrem Netzwerk vorhanden sind. Und das ist das richtige Verhalten. Wie in allen Updates oben zu sehen ist, kommen Informationen mit dem Inhalt MAC/IP. Es gibt keine Rede von irgendwelchen Präfixen.

Hier kommt das Protokoll Host Mobility Manager (HMM) ins Spiel, das die ARP-Tabelle füllt, aus der anschließend die BGP-Tabelle gefüllt wird (wir lassen diesen Prozess im Rahmen dieses Artikels außen vor). Auf der Grundlage der aus HMM erhaltenen Informationen werden EVPN-Routen vom Typ 2 gebildet (MAC/IP wird übertragen).

Was ist jedoch zu tun, wenn es notwendig ist, Informationen über einen bestimmten Präfix zu übertragen?

Für diese Art von Informationen gibt es EVPN-Routen vom Typ 5 — dies ermöglicht die Übertragung von Präfixen über die address-family l2vpn evpn (dieser Routen-Typ befindet sich zum Zeitpunkt des Schreibens des Artikels nur in der Entwurfsversion, RFC, daher kann das Verhalten dieses Routen-Typs bei verschiedenen Herstellern abweichen.)

Um Präfixe zu übertragen, müssen im BGP-Prozess für die VRF die Präfixe hinzugefügt werden, die angekündigt werden sollen:

router bgp 65001
  vrf PROD
    address-family ipv4 unicast
      redistribute direct route-map VNI20000        ! In diesem Fall kündigen wir die Präfixe, die direkt mit dem Leaf in VNI 20000 verbunden sind, an
route-map VNI20000 permit 10
  match ip address prefix-list VNI20000_OUT    ! Wir geben an, welche Prefixliste verwendet werden soll

ip prefix-list VNI20000_OUT seq 5 permit 192.168.20.0\/24   ! Wir geben an, welche Netzwerke in den EVPN route-type 5 fallen werden

Am Ende wird im Update Folgendes stehen:

VxLAN-Fabrik. Teil 2

Schauen wir uns die BGP-Tabelle an. Neben EVPN route-type 2 und 3 sind Routen des Typs 5 aufgetaucht, die Informationen zur Netznummer enthalten:

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 mit der Präfixnummer
                      10.255.1.10              0        100          0 ?
* i                   

In der Routing-Tabelle ist das Präfix ebenfalls aufgetaucht:

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

Damit schließen wir den zweiten Teil des Artikels über VxLAN EVPN ab. Im nächsten Teil werden wir verschiedene Routing-Optionen zwischen VRF betrachten.

Grundlagen des IPv6-Protokolls und dessen Unterschiede zu IPv4

Quelle: habr.com

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster