4. VPN Route Distribution (VPN-Routenverteilung)
4. VPN Route Distribution (VPN-Routenverteilung)
In diesem Abschnitt beschreiben wir die Verfahren, die verwendet werden, um VPN-Routen an PE-Router und von PE-Routern zu verteilen.
4.1. The VPN-IPv4 Address Family (Die VPN-IPv4-Adressfamilie)
Wir haben oben darauf hingewiesen, dass, selbst wenn zwei VPNs überlappende Adressräume haben, die Routen von ihnen unterschiedlich sind. Wenn sie über BGP verteilt werden, sollte es möglich sein, sie voneinander zu unterscheiden.
Wenn daher BGP zur Verteilung einer bestimmten VPN-Route verwendet wird, verteilt BGP keine IPv4-Adresse. Stattdessen verteilt es eine Adresse eines anderen Typs, die wir als "VPN-IPv4-Adresse" bezeichnen. Eine VPN-IPv4-Adresse ist 12 Oktette lang und beginnt mit einem 8-Oktett-Feld, das wir als Route Distinguisher (Routenunterscheidungsmerkmal, RD) bezeichnen, gefolgt von einer 4-Oktett-IPv4-Adresse.
Wenn zwei VPNs dieselben IPv4-Adresspräfixe verwenden, übersetzen die PE-Router diese IPv4-Adresspräfixe in VPN-IPv4-Adresspräfixe. Dies geschieht, indem ein 8-Oktett-RD vor das IPv4-Adresspräfix geschoben wird. Wenn die RDs unterschiedlich sind, dann sind die übersetzten VPN-IPv4-Adressen unterschiedlich. Einzelheiten zur Funktion des RD finden Sie in Abschnitt 4.2.
VPN-IPv4-Adressen und IPv4-Adressen gehören zu verschiedenen Adressfamilien. BGP Multiprotocol Extensions (BGP-Multiprotokoll-Erweiterungen) [BGP-MP] ermöglichen es BGP, Routen zu transportieren, die zu verschiedenen "Adressfamilien" gehören. Die Verfahren zur Verteilung von VPN-IPv4-Routen sind in Abschnitt 4.3 spezifiziert.
4.2. Route Distinguishers (Routenunterscheidungsmerkmale)
Der RD ermöglicht die Transformation einer ansonsten nicht eindeutigen IPv4-Adresse in eine eindeutige VPN-IPv4-Adresse.
Der RD, der eine IPv4-Adresse in eine VPN-IPv4-Adresse übersetzt, muss keine Eins-zu-eins-Entsprechung mit dem VPN haben, zu dem diese IPv4-Adresse gehört (und tut dies tatsächlich auch nicht). Wenn ein RD an eine IPv4-Route angehängt wird, um eine VPN-IPv4-Route zu erstellen, wird dieser RD nur verwendet, um potenziell nicht eindeutige IPv4-Routen zu unterscheiden.
Ein Dienstanbieter kann einen einzelnen RD allen Routen innerhalb eines bestimmten VPNs zuweisen. In diesem Fall identifiziert der RD dieses VPN effektiv eindeutig.
Ein Dienstanbieter kann auch verschiedenen Routen, die von verschiedenen Standorten innerhalb desselben VPNs stammen, unterschiedliche RDs zuweisen. Es ist sogar möglich, verschiedenen Routen, die vom selben Standort stammen, unterschiedliche RDs zuzuweisen.
Im allgemeinsten Fall kann eine bestimmte Route von mehreren PE-Routern verteilt werden, und jeder kann einen anderen RD verwenden. BGP behandelt diese Routen als unterschiedliche Routen, unabhängig davon, ob sie dasselbe IPv4-Präfix haben oder nicht.
Die Codierungsstruktur des RD ist wie folgt:
- 2-Byte-Typfeld
- 6-Byte-Wertfeld
Das Typfeld bestimmt die Interpretation des Wertfeldes. Dieses Dokument definiert die folgenden drei Typen:
- Typ 0: Das Wertfeld enthält eine 2-Byte-Autonomous System Number (Autonomes Systemnummer, ASN), gefolgt von einer beliebigen 4-Byte-Nummer.
- Typ 1: Das Wertfeld enthält eine 4-Byte-IP-Adresse, gefolgt von einer beliebigen 2-Byte-Nummer.
- Typ 2: Das Wertfeld enthält eine 4-Byte-ASN, gefolgt von einer beliebigen 2-Byte-Nummer.
Die Verwendung von Typ 1 RDs ermöglicht die Generierung eines eindeutigen FDs für jede VRF auf jedem PE-Router, ohne dass eine zentrale Zuteilungsstelle erforderlich ist. Man verwendet einfach die IP-Adresse des PE-Routers als den IP-Adressteil des RD und verwendet auf jeder VRF einen anderen Teil für die beliebige Nummer.
Typ 2 RDs werden für 4-Byte-Autonomous System Numbers [BGP-AS4] verwendet.
Wir empfehlen, dass Dienstanbieter ihre zugewiesene ASN verwenden, wenn sie Typ 0 oder Typ 2 RDs verwenden, und eine IP-Adresse aus ihrem eigenen Adressraum verwenden, wenn sie Typ 1 RDs verwenden. Dies stellt sicher, dass RDs global eindeutig sind.
4.3. VPN-IPv4 Route Distribution (VPN-IPv4-Routenverteilung)
Wenn ein PE-Router weiß, dass eine Route, die er über eine bestimmte PE/CE-Schnittstelle gelernt hat, zu einem bestimmten VPN gehört, und wenn er so konfiguriert ist, dass er diese Route an andere PE-Router verteilt, übersetzt er die entsprechende IPv4-Route in eine VPN-IPv4-Route. Das detaillierte Verfahren ist wie folgt:
- Wählen Sie einen RD.
- Stellen Sie diesen RD der IPv4-Route voran.
- Setzen Sie bei Bedarf das Next Hop (Nächster Hop)-Attribut der Route auf die Adresse des PE-Routers selbst (normalerweise seine Loopback-Adresse).
- Fügen Sie alle anderen BGP-Attribute hinzu, die erforderlich sein könnten.
- Verteilen Sie die generierte VPN-IPv4-Route an seine BGP-Nachbarn.
Wenn andere PE-Router diese Routen empfangen, können sie diese Routen in bestimmte VRFs importieren, wenn sie die entsprechenden Richtlinien (als Route Targets, siehe unten) konfiguriert haben. Beim Import wird die VPN-IPv4-Route wieder in eine IPv4-Route konvertiert (der RD wird entfernt).
4.3.1. The Route Target Attribute (Das Route Target-Attribut)
Jede VPN-Route ist mit einem oder mehreren Route Target (Routenziel, RT)-Attributen verknüpft. RT-Attribute sind eine Art von BGP Extended Community (Erweiterte BGP-Community)-Attribut [BGP-EXTCOMM].
Wenn ein PE-Router eine VPN-Route in BGP exportiert, verknüpft er diese Route mit einem Satz von RTs. Die Zuweisung dieser RTs wird durch Konfiguration bestimmt. In der Regel hat jede VRF eine oder mehrere Listen von "Export-RTs". Wenn Routen aus dieser VRF exportiert werden, werden diese RTs an die Route angehängt.
Ebenso hat jede VRF eine oder mehrere Listen von "Import-RTs". Wenn ein PE-Router eine VPN-IPv4-Route empfängt, überprüft er den Satz von RTs, den die Route transportiert. Wenn einer der von der Route transportierten RTs mit einem der RTs in der Liste der Import-RTs einer bestimmten VRF übereinstimmt, wird die Route in diese VRF importiert.
Das RT-Attribut definiert effektiv die "Mitgliedschaft" dieser Route. Durch Steuerung dessen, welche VRFs welche spezifischen RTs importieren, kann der SP beliebig komplexe VPN-Topologien (Full Mesh, Hub-and-Spoke usw.) aufbauen.
4.3.2. Route Distribution via BGP (Routenverteilung über BGP)
PE-Router tauschen VPN-IPv4-Routen über IBGP (Internal BGP) oder EBGP (External BGP) aus.
Wenn sich zwei PEs im selben autonomen System befinden, tauschen sie Routen über eine IBGP-Sitzung aus. Um eine vollvermaschte IBGP-Verbindung zu vermeiden, werden in der Regel BGP Route Reflectors (Routenreflektoren) [BGP-RR] verwendet. P-Router führen normalerweise kein BGP aus und warten keine VPN-Routen.
4.3.3. Route Distribution via Route Reflectors (Routenverteilung über Routenreflektoren)
Routenreflektoren können verwendet werden, um nicht nur IPv4-Routen, sondern auch VPN-IPv4-Routen zu reflektieren. Der Routenreflektor selbst muss die Topologie eines VPNs nicht kennen. Er empfängt einfach BGP-Update-Nachrichten und leitet sie an andere BGP-Router weiter.
4.3.4. How Common is the RD? (Wie verbreitet ist der RD?)
Der RD kann auf mehreren Ebenen zugewiesen werden. Die gängigste Praxis ist die Zuweisung eines eindeutigen RD für jede VRF. Es ist jedoch auch möglich, einen RD für jedes VPN zuzuweisen (alle VRFs, die zu diesem VPN gehören, verwenden denselben RD), oder für jede VRF an jedem Standort einen anderen RD zuzuweisen. Der entscheidende Punkt ist, dass der RD die potenziell überlappenden IPv4-Adressräume unterscheiden können muss.
4.3.5. Building VPNs using Route Targets (Aufbau von VPNs mit Route Targets)
Durch intelligente Nutzung von Import- und Export-RTs können komplexe VPN-Topologien aufgebaut werden. Um beispielsweise ein Full-Mesh-VPN zu erstellen, werden alle Standorte mit denselben Import- und Export-RTs konfiguriert. Um ein Hub-and-Spoke-VPN zu erstellen, exportieren Spoke-Standorte RT1 und importieren RT2, während Hub-Standorte RT2 exportieren und RT1 importieren.
4.3.6. Route Selection (Routenauswahl)
Wenn ein PE-Router mehrere Routen zum gleichen VPN-IPv4-Präfix empfängt, verwendet er die Standard-BGP-Pfadauswahlregeln, um den besten Pfad auszuwählen. Beachten Sie, dass, selbst wenn das zugrunde liegende IPv4-Präfix dasselbe ist, wenn der RD unterschiedlich ist, BGP sie als völlig unterschiedliche Routen betrachtet und daher nicht zwischen ihnen wählt. Die Routenauswahl findet nur statt, wenn der RD derselbe ist und das IPv4-Präfix ebenfalls dasselbe ist.