diajengwd - stock.adobe.com

Netzwerke mit VXLAN/EVPN: Lernprozess und Paketweiterleitung

EVPN-VXLAN ersetzt Flood and Learn durch Control-Plane-Learning mit BGP EVPN. Wir erklären die Route-Typen 2, 3 und 5, Ingress Replication, ARP/ND-Suppression sowie IRB-Modelle.

Es gibt unterschiedliche Arten des Lernens und Weiterleitens von Datenpaketen innerhalb von EVPN-VXLAN-Fabrics. Dieser zweite Artikel der Serie stellt die Methoden zum Erlernen der Erreichbarkeitsinformationen und den Paketweiterleitungsprozess dar. Der erste Artikel behandelte die Netzwerkarchitekturen für VXLAN/EVPN.

Lernprozess: Flood and Learn

Traditionelle Ethernet-Switches erstellen ihre Weiterleitungs- beziehungsweise MAC-Adress-Tabellen basierend auf den gelernten Layer-2-Quelladressen an den jeweiligen physischen Ports. Wenn eine MAC-Adresse noch nicht bekannt ist, wird normalerweise ein sogenanntes Unknown Unicast Flooding durchgeführt, bei dem die Daten an alle Ports außer den eingehenden gesendet werden.

In VXLAN gibt es verschiedene Methoden, um die Tabellen für die Weiterleitungsentscheidungen zu erstellen. Grundsätzlich muss das Ziel des Lernens eine Zuordnung von MAC-Adresse zu VTEP-IP sein, damit spätere Unicast-Frames zur jeweiligen Ziel-MAC in VXLAN-Frames gekapselt werden können. Eine dieser Methoden ist das sogenannte Data Plane Learning. Auch hier wird das Lernen von Quelladressen eingesetzt. Für die Weiterleitung von Unknown Unicasts, Broadcasts und Multicast-Frames im Overlay-Segment wird jedoch Multicasting im Underlay, also im Layer-3-Transportnetz, verwendet. Diese Methode wird auch als Flood and Learn bezeichnet. Die teilnehmenden VTEPs für ein VNI treten einer definierten Multicast-Gruppe bei, und VTEPs senden Datenverkehr an diese Multicast-Adresse. Diese Lösung hat jedoch den Nachteil, dass das Underlay-Netzwerk Multicasting unterstützen muss, was einige Kunden in WANs oder Rechenzentrumsnetzwerken manchmal nicht können oder möchten. Zudem leidet diese Variante daran, dass der Datenverkehr zum Lernen geflutet werden muss, was ein Problem in größeren Netzen darstellt und folglich die Skalierbarkeit behindert. Nach dem Aufbau ihrer Weiterleitungstabellen mit Zuordnung der Ziel-MAC-Adresse zu den entsprechenden VTEPs leiten die VTEPs die Pakete über den in UDP gekapselten Tunnel weiter.

Beispieldarstellung eines VXLAN-Overlay-Netzwerks.
Abbildung 1: Beispieldarstellung eines VXLAN-Overlay-Netzwerks mit einem VXLAN L2VNI.

Optimierter Lernprozess: BGP EVPN für VXLAN

Um den Lernprozess zu optimieren und das Fluten von Datenpaketen zu minimieren, kann BGP EVPN in Kombination mit VXLAN zum Einsatz kommen. Dazu wurde in Multiprotocol BGP (MP-BGP) die Adressfamilie L2VPN EVPN eingeführt, die MAC- und IP-Adressen von Hosts, IP-Netze, VRFs und VTEP-Informationen als Information in BGP in sogenannten Routen-Typen übermitteln.

MP-BGP EVPN verfügt über mehrere Routen-Typen, wobei wir die wichtigsten für eine grundlegende Fabric vorstellen:

  • Routen-Typ 2 (MAC/IP Advertisement Route) dient der Bekanntgabe von MAC- und IP-Adressen für die Erreichbarkeit von einzelnen Hosts.
  • Routen-Typ 3 (Inclusive Multicast Ethernet Tag Route) dient der Bekanntgabe der VTEP Adressen für die Ingress Replikation.
  • Über Routen-Typ 5 (IP Route) können IP-Netze mit Präfixlänge bekannt gegeben werden.

Es gibt noch weitere Routen-Typen, die aber für diesen Artikel nicht relevant sind.

Das Underlay-Netz dient der IP-Erreichbarkeit der VTEPs und das Overlay-Netz dient dem Austausch der L2VPN EVPN Routeninformationen, damit die VTEPs wissen, hinter welchem anderen VTEP sich der Host mit der gewünschten MAC-/IP-Adresse verbirgt.

Der Lernprozess beginnt am Leaf-Switch mit der VTEP-Funktion. Sobald ein Server oder Endgerät ein Paket, wie beispielsweise eine ARP- oder DHCP-Anfrage, an den Leaf-Switch sendet, lernt dieser klassisch den eingehenden Port mit MAC-Adresse und gegebenfalls auch die IP-Adresse. Im Anschluss verteilt der VTEP die MAC/IP-Information an die anderen VTEPs, sodass diese wissen, über welchen VTEP sich diese MAC/IP-Adresse verbirgt. Somit müssen die anderen VTEPs für das Lernen keinen Datenverkehr fluten, sondern erhalten die Erreichbarkeitsinformationen vorab per BGP.

MAC-Adress-Lernen über BGP EVPN.
Abbildung 2: MAC-Adress-Lernen über BGP EVPN in vier Schritten.

Broadcast-, Unknown-Unicast- und Multicast-Datenverkehr muss jedoch auch bei dieser Variante an alle VTEPs geflutet werden. Dazu gibt es zwei Verteilalgorithmen: Multicast oder Headend/Ingress Replication. Bei der Multicast-Verteilung werden die gefluteten Pakete an die Multicast-IP-Adresse gesendet, die dem VXLAN Netzwerk Identifier (VNI) zugewiesen sind. Diese Multicast-IP-Adresse müssen alle VTEPs gleichmäßig zugewiesen haben, sodass diese Anfragen korrekt in den entsprechenden VNIs ankommen. Bei der Ingress Replication werden die zu flutenden Datenpakete an die entsprechend über Route-Typen 3 gelernten VTEPs per Unicast weitergeleitent. In Folge ist in diesem Fall kein Multicast im Underlay notwendig, was beispielsweise vorteilhaft für WAN-Links ist.

Multi-Mandantenfähigkeit

VXLAN mit BGP EVPN ist Multi-Mandantenfähig. Um dies sicherzustellen, nutzt es virtuelle Routing-Instanzen mit Virtual Routing and Forwarding (VRF). So können sogar überlappende IP-Adressen in unterschiedlichen Mandanten genutzt werden. Um eine Differenzierung zwischen den VRFs zu haben, nutzt MP-BGP sogenannte Route Distinguisher, also Routen-Unterscheider. Der Route Distinguishers ist 8 Byte lang und enthält drei Felder: Typ, ASN oder IP-Adresse und ein frei wählbarer numerischer Wert. Häufig kommt die sogenannte Typ-1-Schreibweise mit BGP-Router-ID, einem Doppelpunkt und einer eindeutigen Nummerierung zum Einsatz. Im Fall von der Router-ID 192.0.2.1 für einen fiktiven BGP-Router und das erste VRF wäre dies also 192.0.2.1:1. Die Typ 1 Schreibweise kommt auch bei der Auto-Generierung zum Einsatz, wie sie beispielsweise Cisco verwendet. Die MAC- und IP-Informationen werden dann in der BGP-VPN-Tabelle mit RD und der gelernten Information abgelegt.

Um die Routen zwischen den VTEPs auszutauschen, braucht es jedoch auch Route-Targets als erweiterte BGP Communities. Deren Wert setzt sich aus dem autonomen System (AS) im BGP und der VXLAN VNI zusammen, also beispielsweise 65001:10001 für das AS 65001 und die VNI 10001.

Routenaustausch über Route Targets.
Abbildung 3: Routenaustausch über Route Targets.

Switching innerhalb der Fabric

Für das eigentliche Layer-2-Forwarding prüft der VTEP die Ziel-MAC-Adresse des Frames anhand der zuvor gelernten EVPN-Typ-2-Routen. Ist die Ziel-MAC lokal bekannt, wird der Frame direkt an den entsprechenden Port weitergeleitet. Handelt es sich um eine entfernte MAC-Adresse im gleichen L2VNI, kapselt der Quell-VTEP den Frame in ein VXLAN-Paket ein und sendet es über das IP-Unterlay-Netzwerk und die Spines an den Ziel-VTEP/Leaf, der die Ziel-MAC-Adresse hostet. Dieses Paket enthält als äußere IP-Adresse die lokale VTEP-IP als Quelle und die Remote-VTEP-IP als Ziel im äußeren IP-Header. Als UDP-Zielport im äußeren Header wird der Port 4789 zugewiesen. Im VXLAN-Header wird die zugehörige VNI eingetragen, um die Broadcast-Domäne eindeutig zu identifizieren. Am Ziel-Leaf entkapselt der Remote-VTEP das VXLAN-Paket, stellt den ursprünglichen Ethernet-Frame aus dem inneren Header und den Nutzdaten wieder her und leitet ihn anhand seiner lokalen MAC-Tabelle an den entsprechenden Ausgangs-Port weiter.

Bei Broadcast-, Unknown-Unicast- oder Multicast-Traffic (BUM) wird der Frame an alle relevanten VTEPs im gleichen VNI gesendet, entweder per Multicast Flooding oder über eine vorher definierte Replikationsliste auf Basis von EVPN-Type-3-Routen im Fall von einer Head-End-Replikation. Durch diesen proaktiven MAC-Austausch via Control Plane entfällt das klassische Flood-and-Learn-Verfahren, was die Effizienz und Skalierbarkeit der Fabric erhöht. Lokales Switching erfolgt direkt ohne Kapselung, während Remote-Switching durch VXLAN-Tunneling und IP-Transport über das Underlay ermöglicht wird.

In einer EVPN-VXLAN-Fabric dient zudem ARP/ND Suppression dazu, die Menge an Broadcast-, Unknown-Unicast- und Multicast-Verkehr (BUM) deutlich zu reduzieren, indem ARP/ND-Anfragen nicht mehr unkontrolliert in der gesamten Broadcast-Domain geflutet werden. Stattdessen wird die EVPN-Control-Plane genutzt, um IP-zu-MAC-Informationen gezielt und vorab zu verteilen.

Im klassischen Layer-2-Netz sendet ein Endgerät, das die MAC-Adresse zu einer bekannten IP herausfinden möchte, eine ARP-Anfrage als Broadcast an alle Teilnehmer der Broadcast-Domain. In einem VXLAN-Overlay würde diese Anfrage, sofern kein lokaler Treffer vorhanden ist, über das Underlay an alle VTEPs mit derselben VNI repliziert werden. Das erzeugt zusätzlichen BUM-Traffic und belastet unnötig Bandbreite und CPU-Ressourcen, vor allem in großen Fabrics.

EVPN löst dieses Problem, indem es IP-zu-MAC-Bindungen über BGP EVPN Typ-2 Routen verteilt. Jeder VTEP lernt beim Empfang eines ARP-Pakets oder eines GARP (Gratuitous ARP) sowohl die MAC- als auch die IP-Adresse des Endgeräts und kündigt diese Kombination per Typ-2-Route an alle anderen VTEPs im selben VNI an. Diese Einträge werden im ARP/ND-Cache des VTEPs hinterlegt.

Wenn nun ein Host eine ARP-Anfrage sendet, prüft der lokale VTEP, ob er die IP-zu-MAC-Zuordnung bereits in seiner Tabelle kennt. Falls ja, wird die Anfrage nicht ins Overlay geflutet, sondern der VTEP antwortet lokal als Proxy-ARP im Namen des Zielhosts. Nur wenn kein Eintrag vorhanden ist, wird der ARP-Request noch als BUM-Traffic per Head-End-Replication oder Multicast im Underlay an die anderen VTEPs geschickt.

Dieses Verfahren hat mehrere Vorteile: Die Broadcast-Last im Overlay sinkt drastisch, die Netzwerke skalieren besser, und die Endgeräte werden von unnötigen Broadcasts entlastet. Zusätzlich wird die ARP-Lernzeit reduziert, da die IP-zu-MAC-Informationen oft schon vor der ersten Anfrage in der Contro Plane bekannt sind.

Routing innerhalb der Fabric

In einer EVPN VXLAN Fabric wird das Layer 3 Forwarding (Routing) durch die Kombination von EVPN (Ethernet VPN) und VXLAN realisiert. Dabei spielen vor allem die Konzepte Asymmetric Integrated Routing and Bridging (IRB) und Symmetric IRB eine zentrale Rolle. Diese Mechanismen ermöglichen ein Routing zwischen verschiedenen VXLAN-Segmenten (VNI).

Beim Asymmetric IRB wird der eingehende Traffic zunächst lokal in das Ziel-VLAN geroutet und anschließend wieder in VXLAN gekapselt, falls das Ziel in einem anderen VNI auf einem Remote-VTEP liegt. Der Ablauf beginnt damit, dass ein Host in VLAN 10 beispielsweise einen Host in VLAN 20 erreichen will. Der lokale VTEP routet ihn anhand seiner VRF-Routing-Tabelle in VLAN 20 und kapselt ihn erneut mit der VNI von VLAN 20, um ihn zum Remote-VTEP zu senden. Der Remote-VTEP bridged den Verkehr anschließend wie gewohnt in VLAN 20. Das Routing erfolgt also nur auf der Quellseite, während die Zielseite reines Layer-2-Forwarding macht. Diese Methode ist einfach zu implementieren und benötigt keine zusätzlichen VNIs für Layer 3, führt aber zu einem asymmetrischen Forwarding-Pfad und erfordert, dass der Quell-VTEP alle VLANs kennt, zwischen denen geroutet werden soll.

Beim Symmetric IRB hingegen wird für das Routing ein dediziertes Layer-3-VNI verwendet, das in beiden Richtungen gleich genutzt wird. In diesem Fall hält jeder VTEP für jede VRF sowohl die L2VNIs der VLANs als auch ein zusätzliches L3-VNI vor. Wenn ein Host in VLAN 10 mit einem Host in VLAN 20 kommuniziert, kapselt der Quell-VTEP das Paket zunächst in das Layer-3-VNI und sendet es zum Ziel-VTEP. Dort erfolgt die Entkapselung, das Routing in das Ziel-VLAN und die lokale Zustellung. Da beide Richtungen den gleichen Layer-3-Pfad nutzen, ist der Verkehrsfluss symmetrisch, und es genügt, dass jeder VTEP nur die VLANs kennt, die lokal vorhanden sind. Diese Methode ist skalierbarer und flexibler, insbesondere in großen Umgebungen, erfordert aber mehr VNIs und etwas komplexere Konfiguration.

Erfahren Sie mehr über LAN-Design und Netzwerkbetrieb