3. VRFs - Multiple Forwarding Tables in PEs (VRFs - Mehrere Weiterleitungstabellen in PEs)
3. VRFs: Multiple Forwarding Tables in PEs (VRFs: Mehrere Weiterleitungstabellen in PEs)
Jeder PE-Router unterhält eine Reihe separater Weiterleitungstabellen. Eine der Weiterleitungstabellen ist die "Standard-Weiterleitungstabelle". Die anderen sind die "VPN Routing and Forwarding tables" (VPN-Routing- und Weiterleitungstabellen) oder "VRFs".
3.1. VRFs and Attachment Circuits (VRFs und Anschlussleitungen)
Jede PE/CE-Anschlussleitung ist per Konfiguration mit einer oder mehreren VRFs verknüpft. Eine Anschlussleitung, die mit einer VRF verknüpft ist, wird als "VRF-Anschlussleitung" bezeichnet.
Im einfachsten und typischsten Fall ist eine PE/CE-Anschlussleitung mit genau einer VRF verknüpft. Wenn ein IP-Paket über eine bestimmte Anschlussleitung empfangen wird, wird seine Ziel-IP-Adresse in der zugehörigen VRF nachgeschlagen. Das Ergebnis dieser Suche bestimmt, wie das Paket geroutet wird. Die VRF, die vom Eingangs-PE eines Pakets zum Routen dieses bestimmten Pakets verwendet wird, wird als "Eingangs-VRF" des Pakets bezeichnet. (Es gibt auch einen Begriff der "Ausgangs-VRF" des Pakets, die sich am Ausgangs-PE des Pakets befindet; dies wird in Abschnitt 5 diskutiert.)
Wenn ein IP-Paket über eine Anschlussleitung ankommt, die mit keiner VRF verknüpft ist, wird die Zieladresse des Pakets in der Standard-Weiterleitungstabelle nachgeschlagen, und das Paket wird entsprechend geroutet. Pakete, die gemäß der Standard-Weiterleitungstabelle weitergeleitet werden, umfassen Pakete von benachbarten P- oder PE-Routern sowie Pakete von kundenorientierten Anschlussleitungen, die nicht mit VRFs verknüpft sind.
Intuitiv kann man sich die Standard-Weiterleitungstabelle als "öffentliche Routen" enthaltend vorstellen, und die VRFs als "private Routen" enthaltend. Ebenso kann man sich VRF-Anschlussleitungen als "privat" und Nicht-VRF-Anschlussleitungen als "öffentlich" vorstellen.
Wenn eine bestimmte VRF-Anschlussleitung den Standort S mit einem PE-Router verbindet, dann kann die Konnektivität von S (über diese Anschlussleitung) eingeschränkt werden, indem die Menge der Routen kontrolliert wird, die in die entsprechende VRF eingetragen werden. Die Menge der Routen in dieser VRF sollte auf Routen beschränkt sein, die zu Standorten führen, die mindestens ein VPN mit S gemeinsam haben. Dann kann ein von S über die VRF-Anschlussleitung gesendetes Paket vom PE nur dann zu einem anderen Standort S' geroutet werden, wenn S' im selben VPN wie S ist. Das heißt, die Kommunikation (über den PE-Router) wird zwischen jedem Paar von VPN-Standorten verhindert, die kein VPN gemeinsam haben. Die Kommunikation zwischen VPN-Standorten und Nicht-VPN-Standorten wird verhindert, indem Routen zu VPN-Standorten aus der Standard-Weiterleitungstabelle ausgeschlossen werden.
Wenn es mehrere Anschlussleitungen von S zu einem oder mehreren PE-Routern gibt, dann kann es mehrere VRFs geben, die verwendet werden könnten, um Verkehr von S zu routen. Um die Konnektivität von S korrekt einzuschränken, muss derselbe Satz von Routen in allen VRFs vorhanden sein. Alternativ können unterschiedliche Konnektivitätsbeschränkungen über verschiedene Anschlussleitungen von S auferlegt werden. In diesem Fall werden einige der mit den Anschlussleitungen von S verknüpften VRFs andere Sätze von Routen enthalten als andere.
Wir erlauben den Fall, dass eine einzelne Anschlussleitung mit einem Satz von VRFs verknüpft ist, anstatt mit einer einzelnen VRF. Dies kann nützlich sein, wenn man ein einzelnes VPN in mehrere "Sub-VPNs" partitionieren möchte, jedes mit unterschiedlichen Konnektivitätsbeschränkungen, und einige Eigenschaften der Pakete des Kunden verwenden möchte, um zwischen den Sub-VPNs zu wählen. Der Einfachheit halber werden wir jedoch normalerweise so sprechen, als ob eine Anschlussleitung mit einer einzelnen VRF verknüpft wäre.
3.2. Associating IP Packets with VRFs (Verknüpfung von IP-Paketen mit VRFs)
Wenn der PE-Router ein Paket von einem CE-Gerät empfängt, muss er bestimmen, über welche Anschlussleitung das Paket angekommen ist, da dies wiederum die VRF (oder den Satz von VRFs) bestimmt, die zum Weiterleiten dieses Pakets verwendet werden kann. Im Allgemeinen nimmt der PE-Router, um die Anschlussleitung zu bestimmen, über die ein Paket angekommen ist, die physische Schnittstelle zur Kenntnis, über die das Paket angekommen ist, und möglicherweise auch einige Aspekte des Layer-2-Headers des Pakets. Wenn beispielsweise die eingehende Anschlussleitung des Pakets ein Frame Relay VC ist, dann kann die Identität der Anschlussleitung durch die physische Frame Relay-Schnittstelle bestimmt werden, auf der das Paket angekommen ist, zusammen mit dem Data Link Connection Identifier (DLCI)-Feld im Frame Relay-Header des Pakets.
Obwohl die Schlussfolgerung des PE, dass ein bestimmtes Paket auf einer bestimmten Anschlussleitung angekommen ist, teilweise durch den Layer-2-Header des Pakets bestimmt werden kann, muss sichergestellt werden, dass es einem Kunden nicht möglich ist, den SP dazu zu verleiten zu glauben, dass ein auf einer Anschlussleitung empfangenes Paket tatsächlich auf einer anderen angekommen ist, indem er in die Headerfelder schreibt. Im obigen Beispiel wird die Anschlussleitung zwar teilweise durch Inspektion des DLCI-Feldes im Frame Relay-Header bestimmt, aber dieses Feld ist keins, das der Kunde frei setzen kann. Vielmehr muss es auf einen vom SP vorgegebenen Wert gesetzt werden, sonst gelangt das Paket nicht zum PE-Router.
In einigen Fällen kann ein bestimmter Standort vom Kunden in mehrere "virtuelle Standorte" unterteilt werden. Der SP kann einen spezifischen Satz von VRFs bestimmen, die zum Routen von Paketen von diesem Standort verwendet werden sollen, und dem Kunden erlauben, eine bestimmte Charakteristik im Paket zu setzen und dann diese Charakteristik zu verwenden, um eine bestimmte VRF aus dem Satz auszuwählen.
Beispielsweise könnte jeder virtuelle Standort als VLAN implementiert werden. Der SP und der Kunde könnten vereinbaren, dass für Pakete von einem bestimmten CE bestimmte VLAN-Werte bestimmte VRFs identifizieren. Wenn Pakete von diesem CE VLAN-Tag-Werte tragen, die nicht im vereinbarten Satz sind, wird der PE diese Pakete natürlich verwerfen. Eine andere Möglichkeit, dies zu erreichen, wäre die Verwendung der IP-Quelladresse. In diesem Fall verwendet der PE die IP-Quelladresse im vom CE empfangenen Paket, zusammen mit der Schnittstelle, auf der das Paket empfangen wird, um das Paket einer bestimmten VRF zuzuweisen. Auch hier kann der Kunde nur aus dem spezifischen Satz von VRFs wählen, die dieser Kunde verwenden darf.
Wenn gewünscht wird, dass ein bestimmter Host in mehreren virtuellen Standorten ist, dann muss dieser Host für jedes Paket bestimmen, mit welchem virtuellen Standort er assoziiert ist. Er kann dies beispielsweise tun, indem er Pakete von verschiedenen virtuellen Standorten auf verschiedenen VLANs oder über verschiedene Netzwerkschnittstellen sendet.
3.3. Populating the VRFs (Befüllen der VRFs)
Mit welchem Satz von Routen wird eine VRF befüllt?
Als Beispiel seien PE1, PE2 und PE3 drei PE-Router und CE1, CE2 und CE3 drei CE-Router. Angenommen, PE1 lernt von CE1 die Routen, die am Standort von CE1 erreichbar sind. Wenn PE2 und PE3 jeweils an CE2 und CE3 angeschlossen sind, und wenn es ein VPN V gibt, das CE1, CE2 und CE3 enthält, dann verwendet PE1 BGP, um an PE2 und PE3 die Routen zu verteilen, die er von CE1 gelernt hat. PE2 und PE3 verwenden diese Routen, um die VRFs zu befüllen, die jeweils mit den Standorten von CE2 und CE3 verknüpft sind. Routen von Standorten, die nicht im VPN V sind, erscheinen nicht in diesen VRFs, was bedeutet, dass Pakete von CE2 oder CE3 nicht an Standorte gesendet werden können, die nicht im VPN V sind.
Wenn wir sagen, dass der PE Routen vom CE "lernt", setzen wir keine bestimmte Lerntechnik voraus. Der PE kann Routen über einen dynamischen Routing-Algorithmus lernen, aber er kann Routen auch "lernen", wenn diese Routen konfiguriert sind (d. h. statische Routen). (In diesem Fall mag es eine gewisse poetische Lizenz sein zu sagen, dass der PE Routen vom CE "gelernt" hat.)
Der PE muss auch von anderen PEs die Routen lernen, die zu einem bestimmten VPN gehören. Die Verfahren, die verwendet werden, um die VRFs mit dem richtigen Satz von Routen zu befüllen, sind in Abschnitt 4 spezifiziert.
Wenn es mehrere Anschlussleitungen von einem bestimmten PE-Router zu einem bestimmten Standort gibt, können sie alle derselben Weiterleitungstabelle entsprechen. Aber wenn es eine Richtlinie gibt, die dies vorschreibt, können sie verschiedenen Weiterleitungstabellen entsprechen. Beispielsweise könnte die Richtlinie sein, dass eine bestimmte Anschlussleitung vom Standort nur für Intranet-Verkehr verwendet wird, während eine andere Anschlussleitung von diesem Standort nur für Extranet-Verkehr verwendet wird. (Der an die Extranet-Anschlussleitung angeschlossene CE ist beispielsweise vielleicht eine Firewall, während der an die Intranet-Anschlussleitung angeschlossene CE dies nicht ist.) In diesem Fall wären die beiden Anschlussleitungen mit verschiedenen VRFs verknüpft.
Beachten Sie, dass, wenn zwei Anschlussleitungen mit derselben VRF verknüpft sind, Pakete, die vom PE auf einer empfangen werden, genau denselben Satz von Zielen erreichen können wie Pakete, die vom PE auf der anderen empfangen werden. Also können zwei Anschlussleitungen nicht mit derselben VRF verknüpft sein, es sei denn, jeder CE ist in genau demselben Satz von VPNs wie der andere.
Wenn eine Anschlussleitung zu einem Standort führt, der in mehreren VPNs ist, kann die Anschlussleitung dennoch mit einer einzigen VRF verknüpft sein, in welchem Fall diese VRF Routen aus dem gesamten Satz von VPNs enthalten wird, zu denen der Standort gehört.