5. Weiterleitung
5. Weiterleitung (Forwarding)
Wenn die Zwischenrouter im Backbone keine Informationen über die Routen zu den einzelnen VPN haben, wie wird ein Paket (packet) von einem VPN-Standort zu einem anderen weitergeleitet?
Wenn ein PE-Router ein IP-Paket von einem CE-Gerät empfängt, wählt er anhand des Ingress-Attachment Circuits (ingress attachment circuit) einen bestimmten VRF aus, in dem die Zieladresse des Pakets nachgeschlagen wird.
Angenommen, es wird eine Übereinstimmung gefunden; daraus ergibt sich der „Next Hop“ (next hop) des Pakets.
Ist der Next Hop des Pakets über einen VRF-Attachment Circuit direkt von diesem PE aus erreichbar (d. h. der Egress-Attachment Circuit (egress attachment circuit) liegt auf demselben PE wie der Ingress-Attachment Circuit), wird das Paket an diesen Egress-Attachment Circuit gesendet, ohne dass ein MPLS-Label auf den Label-Stapel (label stack) des Pakets gelegt (push) wird.
Liegen Ingress- und Egress-Attachment Circuit auf demselben PE, sind aber unterschiedlichen VRF zugeordnet, und ist die im VRF des Ingress-Attachment Circuits zur Zieladresse passendste Route ein Aggregat (aggregate) mehrerer Routen im VRF des Egress-Attachment Circuits, kann ein Nachschlag in diesem Egress-VRF nötig sein.
Ist der Next Hop des Pakets nicht über einen VRF-Attachment Circuit erreichbar, muss das Paket das Backbone mindestens einen Hop durchqueren. Es hat also einen „BGP Next Hop“ (BGP Next Hop), und dieser BGP Next Hop weist der zur Zieladresse passendsten Route ein MPLS-Label (label) zu. Dieses Label heißt „VPN-Routen-Label“ (VPN route label). Das IP-Paket wird in ein MPLS-Paket umgewandelt, dessen einziges Label auf dem Stapel dieses VPN-Routen-Label ist.
Das Paket muss dann zum BGP Next Hop getunnelt (tunneled) werden.
Unterstützt das Backbone MPLS, geschieht dies wie folgt:
-
Die PE-Router (und ggf. ASBR) müssen ihre eigenen /32-Präfixe bei der Neuverteilung von VPN-IPv4-Adressen in die IGP-Routing-Tabelle des Backbones eintragen. Dies ermöglicht MPLS, für die Route zu jedem PE-Router in jedem Knoten des Backbones ein Label zuzuweisen. Zur Interoperabilität (interoperability) zwischen verschiedenen Implementierungen ist die Unterstützung von LDP zum Aufbau der Label-Switched-Paths (label switched path) durch das Backbone erforderlich. Andere Methoden zum Aufbau dieser Pfade sind jedoch zulässig. (Manche davon benötigen diese /32-Präfixe im IGP möglicherweise nicht.)
-
Gibt es Traffic-Engineering-Tunnel (traffic engineering) zum BGP Next Hop, und ist einer oder mehrere für das Paket nutzbar, wird einer davon gewählt. Der Tunnel ist mit einem MPLS-Label, dem „Tunnel-Label“ (tunnel label), verknüpft. Das Tunnel-Label wird auf den MPLS-Label-Stapel gelegt, und das Paket wird zum Next Hop des Tunnels weitergeleitet.
-
Andernfalls:
-
Das Paket hat einen „IGP Next Hop“ (IGP Next Hop), also den Next Hop entlang der IGP-Route zum BGP Next Hop.
-
Ist der BGP Next Hop identisch mit dem IGP Next Hop und wird Penultimate-Hop-Popping (penultimate hop popping) genutzt, wird das Paket mit nur dem VPN-Routen-Label zum IGP Next Hop gesendet.
-
Andernfalls weist der IGP Next Hop der zur BGP-Next-Hop-Adresse passendsten Route ein Label zu. Dieses Label heißt „Tunnel-Label“. Es wird als oberstes Label auf den Stapel des Pakets gelegt. Das Paket wird dann zum IGP Next Hop weitergeleitet.
-
-
MPLS transportiert das Paket dann durch das Backbone zum BGP Next Hop, wo das VPN-Label untersucht wird.
Unterstützt das Backbone kein MPLS, kann das nur das VPN-Routen-Label tragende MPLS-Paket mit der Technik aus [MPLS-in-IP-GRE] zum BGP Next Hop getunnelt werden. Wenn das Paket aus dem Tunnel austritt, befindet es sich beim BGP Next Hop, wo das VPN-Label untersucht wird.
Beim BGP Next Hop hängt die Behandlung des Pakets vom VPN-Routen-Label ab (siehe Abschnitt 4.3.2). In vielen Fällen kann der PE aus diesem Label den Attachment Circuit bestimmen, über den das Paket (zu einem CE-Gerät) gesendet wird, sowie den passenden Layer-2-Header (data link layer) der Schnittstelle. In anderen Fällen kann der PE nur bestimmen, dass das Paket in einem bestimmten VRF nach seiner Zieladresse nachgeschlagen werden muss, bevor es an ein CE-Gerät gesendet wird. Es gibt auch Zwischenfälle: Das VPN-Routen-Label kann den Egress-Attachment Circuit bestimmen, aber ein weiterer Nachschlag (z. B. ARP) zur Bestimmung des Layer-2-Headers auf diesem Circuit ist nötig.
Die Informationen des MPLS-Headers selbst und/oder die mit dem Label assoziierten Informationen können auch genutzt werden, um Quality of Service (QoS) auf der Schnittstelle zum CE bereitzustellen.
Auf jeden Fall: Trifft ein Paket am Ingress-PE als unmarkiertes IP-Paket ein, verlässt es den Egress-PE ebenfalls wieder als unmarkiertes Paket.
Dass Pakete mit VPN-Routen-Label durch das Backbone getunnelt werden, hält alle VPN-Routen aus den P-Routern heraus. Dies ist entscheidend für die Skalierbarkeit (scalability) des Ansatzes.