AUF DIESER SEITE
Routing-Richtlinien
ZUSAMMENFASSUNG Juniper Cloud-Native Contrail Networking (CN2) Version 23.3 unterstützt Routing-Richtlinien. Routing-Richtlinien ändern den Pfad und die Attribute einer Route dynamisch. Mit Version 23.3 ist die Bearbeitung und Filterung von Routen granularer.
Übersicht über Routing-Richtlinien
Contrail verwendet Routing-Richtlinien, um den Fluss des Netzwerkverkehrs zwischen virtuellen Netzwerken (VNs) zu steuern. Mit Routing-Richtlinien können Sie definieren, wie Datenverkehr basierend auf bestimmten Bedingungen weitergeleitet, gefiltert und gesteuert wird. Routing-Richtlinien definieren Bedingungen (Quell- oder Ziel-IP-Adresse, Paketattribute, Routing-Protokolle), die Pakete erfüllen müssen, damit die Richtlinie angewendet wird.
Weitere Informationen zu Routingrichtlinien finden Sie unter Routingrichtlinien.
Routing-Richtlinieninfrastruktur
Begriffe der Routing-Richtlinienliste
Routing-Richtlinien enthalten eine Reihe von Listenbegriffen. Listenbegriffe sind Bedingungen und Aktionen, die bestimmen, wie Routing-Richtlinien mit Datenverkehr umgehen. Jede Routingrichtlinie kann aus einem oder mehreren Begriffen bestehen. Jeder Ausdruck gibt eine Reihe von Bedingungen (Übereinstimmungsbedingungen) an, die erfüllt werden müssen, und die entsprechenden Aktionen, die ausgeführt werden sollen, wenn diese Bedingungen erfüllt sind. Bei einem Begriff kann es sich um eine Endregel handeln, d. h., dass bei einer Übereinstimmung mit dem angegebenen Begriff keine weiteren Begriffe ausgewertet werden und die Route basierend auf der Aktion in diesem Begriff verworfen oder akzeptiert wird.
Wenn es sich bei dem Begriff nicht um eine Endregel handelt, werden nachfolgende Begriffe für die angegebene Route ausgewertet. Das folgende Beispiel zeigt die Struktur von Listenbegriffen:
Policy { Term-1 Term-2 }
Das folgende Beispiel zeigt die Struktur der Übereinstimmungsbedingungen und -aktionen eines Begriffs:
from { match-condition-1 match-condition-2 .. .. } then { action update-action-1 update-action-2 .. .. }
Ein Begriff kann keine any
Übereinstimmungsbedingung enthalten. Beispielsweise kann kein leerer from
Wert vorhanden sein.
Wenn eine any
Übereinstimmungsbedingung vorhanden ist, werden alle Routen als mit dem Begriff übereinstimmend betrachtet. Im Gegensatz dazu kann die Bedingung then
leer sein oder die Aktion kann nicht angegeben sein.
Anwenden einer Routingrichtlinie
Eine Routingrichtlinienauswertung weist die folgenden wichtigen Punkte auf:
-
Wenn die Laufzeit einer Routingrichtlinie aus mehreren Übereinstimmungsbedingungen besteht, muss eine Route alle Übereinstimmungsbedingungen erfüllen, damit die in der Laufzeit angegebene Aktion angewendet wird.
-
Wenn ein Begriff in der Richtlinie keine Übereinstimmungsbedingung angibt, werden alle Routen anhand der Übereinstimmung ausgewertet.
-
Wenn eine Übereinstimmung auftritt, die Richtlinie jedoch keine Annahme-, Ablehnungs- oder nächste Begriffsaktion angibt, tritt eine der folgenden Aktionen ein:
-
Der nächste Term wird, falls vorhanden, ausgewertet.
-
Wenn keine anderen Begriffe vorhanden sind, wird die nächste Richtlinie ausgewertet.
-
Wenn keine anderen Richtlinien vorhanden sind, wird die Route akzeptiert. Die Standardaktion der Routing-Richtlinie ist "Akzeptieren".
-
-
Wenn keine Übereinstimmung mit einem Begriff in einer Richtlinie auftritt und nachfolgende Begriffe in derselben Richtlinie vorhanden sind, wird der nächste Begriff ausgewertet.
-
Wenn keine Übereinstimmung mit Ausdrücken in einer Richtlinie auftritt und nachfolgende Richtlinien vorhanden sind, wird die nächste Richtlinie ausgewertet.
-
Wenn bis zum Ende einer Richtlinie oder aller Richtlinien keine Übereinstimmung auftritt, wird die Route akzeptiert.
Eine Routingrichtlinie besteht aus mehreren Begriffen. Jeder Begriff besteht aus Übereinstimmungsbedingungen und Aktionen, die auf übereinstimmende Routen angewendet werden.
Jede Route wird wie folgt anhand der Richtlinie ausgewertet:
-
Die Route wird anhand des ersten Terms ausgewertet. Wenn sie übereinstimmt, wird die angegebene Aktion ausgeführt. Wenn die Aktion darin besteht, die Route anzunehmen oder abzulehnen, wird diese Aktion ausgeführt, und die Auswertung der Route wird beendet. Wenn die nächste Termaktion angegeben ist oder wenn keine Aktion angegeben ist oder wenn die Route nicht übereinstimmt, wird die Auswertung wie oben beschrieben für nachfolgende Terme fortgesetzt.
-
Wenn der letzte Nicht-Terminal-Term der angegebenen Routing-Richtlinie erreicht ist, wird die Route auf die gleiche Weise wie in Schritt 1 beschrieben mit der nächsten Richtlinie (falls vorhanden) ausgewertet.
Erstellen einer Routingrichtlinie
Im Folgenden sehen Sie ein Beispiel für ein virtuelles Netzwerk mit einer Routing-Richtlinie, auf die im routingPolicyReferences
Feld verwiesen wird.
apiVersion: core.contrail.juniper.net/v5 kind: VirtualNetwork metadata: creationTimestamp: "2023-08-24T16:52:41Z" finalizers: - virtual-network-id-deallocation.finalizers.core.juniper.net - route-target.finalizers.core.juniper.net - vn-routinginstance-delete.finalizers.core.juniper.net generation: 4 labels: back-reference.core.juniper.net/4b55d55948465b8794a75b29ea02b2d4b7cb6f0130c52ae127815c9e: Subnet_rptest-ns_rptest-subnet-1 back-reference.core.juniper.net/626783989131f732c144823b1b51ea67fd949c537f8c775e25e530d5: RoutingPolicy_rptest-ns_rptest back-reference.core.juniper.net/dd5f04a405320d130c348a4e6d02cabef25d0633cc1ff4813a3576f9: RoutingPolicy_rptest-ns_rptestCommunityReject core.juniper.net/virtualnetwork: custom-default-podnetwork custom-default-podnetwork-uid: 4761b2bc-7ae0-4c33-8b51-894b665e3ebd name: rptest-vn-1 namespace: rptest-ns resourceVersion: "6342" uid: 4761b2bc-7ae0-4c33-8b51-894b665e3ebd spec: fabricSNAT: true fqName: - default-domain - rptest-ns - rptest-vn-1 podNetwork: true routingPolicyReferences: - apiVersion: core.contrail.juniper.net/v5 fqName: - default-domain - rptest-ns - rptest kind: RoutingPolicy name: rptest namespace: rptest-ns uid: 8a142d00-f7fb-4872-85b6-11d6a576d7fe - apiVersion: core.contrail.juniper.net/v5 fqName: - default-domain - rptest-ns - rptestCommunityExample kind: RoutingPolicy name: rptestCommunityExample namespace: rptest-ns uid: 7a142d00-f7fb-4872-85b6-11d6a576d7fe v4SubnetReference: apiVersion: core.contrail.juniper.net/v5 fqName: - default-domain - rptest-ns - rptest-subnet-1 kind: Subnet name: rptest-subnet-1 namespace: rptest-ns uid: 4dd9c840-4e72-4125-97a2-f9eb5bfb756a virtualNetworkProperties: forwardingMode: l2_l3 rpf: enable status: observation: "" state: Success virtualNetworkNetworkId: 4100
Das virtualNetworkProperties.forwardingMode
Feld muss auf oder l3
gesetzt l2_l3
sein. Das Routingrichtlinienfeature gilt nicht für Verbindungen innerhalb von VNs, wenn der Weiterleitungsmodus des VN L2 ist.
Routing-Richtlinien und erweiterte BGP-Communities
Border Gateway Protocol (BGP) erweiterte Communities sind zusätzliche Attribute für BGP-Routen. Erweiterte BGP-Communitys bieten eine Methode, um Routen zusätzliche Informationen wie Routenziel oder Kapselungsprotokoll zuzuordnen. Durch das Erstellen einer Routing-Richtlinie mit erweiterten Communitys wird die Richtlinie granularer und ermöglicht es Ihnen, Routen zu verteilen und den Datenverkehr effektiv zu verwalten. Dies macht BGP Extended Communities ideal für komplexe, dynamische Routen.
CN2 bietet erweiterten Community-Support mit der Funktion "Import-Routing-Richtlinien". Diese Funktion ermöglicht die Verwendung von Richtlinienbegriffen für das Import-Routing, um erweiterte Communitys zu identifizieren und Richtlinienaktionen für das Import-Routing auszuführen, z. B. das Hinzufügen, Anpassen oder Entfernen dieser erweiterten Communitys.
CN2 unterstützt die folgenden erweiterten Communitys:
-
Routenziel
-
Kapselung
-
Sicherheitsgruppe
-
Ursprungs-VN
-
MAC-Mobilität
-
Lastenausgleich
-
Etikett
-
Farbe
Weitere Informationen zu diesen erweiterten Communitys finden Sie unter Erweiterte BGP-Communitys.
Erstellen einer Routing-Richtlinie mit BGP Extended Communities
Im Folgenden finden Sie ein Beispiel für eine Routing-Richtlinie, die mit einer erweiterten BGP-Community übereinstimmt. Im folgenden Beispiel wird ein Präfix gefunden, das termMatchCondition
im Feld angegeben ist, und die BGP-Farbgemeinschaft (color:0:100) angehängt, wenn das Präfix übereinstimmt.
apiVersion: core.contrail.juniper.net/v5 kind: RoutingPolicy metadata: namespace: color-ns name: color-rp-3 spec: routingPolicyEntries: term: - termActionList: update: asPath: expand: {} community: add: {} remove: {} set: {} extcommunity: add: community: - color:0:100 remove: {} set: {} service: add: {} remove: {} set: {} termMatchCondition: asPath: community: communityList: communityMatchAll: extcommunityList: extcommunityMatchAll: external: family: localPref: nlriRouteType: prefix: - prefix: 172.100.70.5/32 prefixType: exact prefixList:
Beachten Sie die folgenden Felder:
-
term
: Stellt eine definierte Bedingung und zugehörige Aktionen dar, die ausgeführt werden sollen, wenn Termbedingungen erfüllt sind. -
extcommunity: add:
: Gibt eine erweiterte Community an, die der Route hinzugefügt werden soll.community
: Enthält den erweiterten Community-Stringcolor:0:100
. -
termMatchCondition
: Gibt die Bedingungen an, die erfüllt sein müssen, damit die Aktionen in derterm
-
asPath, community, localPref
: Gibt zusätzlicheterm
Übereinstimmungsbedingungen an, die mit der Route übereinstimmen sollen. -
prefix
: Eine Übereinstimmungsbedingung, die angibt, dass dieterm
mit Routen mit dem exakten Präfix 172.100.70.5/32 übereinstimmt.
Die folgende Tabelle enthält zusätzliche Informationen zu den Feldern einer Routingrichtlinie.
Feld |
Richtlinien |
---|---|
Namen |
Geben Sie einen Namen für die Routing-Richtlinie ein. |
Term(s) |
|
Gemeinschaft |
Wählen Sie die Community-Zeichenfolge aus, die für die Routingrichtlinie übereinstimmen soll. Der Community-String wird mit accept-own, no-advertise, no-export, no-export-subconfed, no-reoriginate dargestellt. |
Alle übereinstimmen |
Aktivieren Sie das Kontrollkästchen, um alle Community-Zeichenfolgen abzugleichen. |
Erweiterte Community |
Wählen Sie die erweiterte Community-Zeichenfolge aus, die mit der Routingrichtlinie übereinstimmen soll. |
Alle übereinstimmen |
Aktivieren Sie das Kontrollkästchen, um den Zeichenfolgen der erweiterten Community zu entsprechen. |
Protokoll |
Wählen Sie das Protokoll für die Routing-Richtlinie aus, bei dem es sich um ein Array aus Pfadquelle oder Pfadprotokoll handelt, das übereinstimmen soll. Die Protokolle sind Schnittstelle, Aggregat, BGPaaS, Schnittstelle-Static, Service-Chain, Service-Schnittstelle, Static und xmpp. Ein Pfad gilt als dieser Bedingung entsprechend, wenn es sich bei dem Pfadprotokoll um eines der Protokolle in der Liste handelt. |
Präfixe |
Wählen Sie eine Liste der übereinstimmenden Präfixe aus. Jedes Präfix in der Liste wird als Präfix und Übereinstimmungstyp dargestellt, wobei der Präfix-Übereinstimmungstyp wie folgt aussehen kann:
Beispiel: 10.1.0.0/16 Eine Route erfüllt diese Bedingung, wenn ihr Präfix mit einem der Präfixe in der Liste übereinstimmt. |
Then |
|
Aktionen |
Wählen Sie die Aktionen aus, die auf den entsprechenden Routen ausgeführt werden sollen. Die unterstützten Aktionen und Werte sind in Tabelle 2 aufgeführt. |
Politische Maßnahmen
Aktionswert | |
---|---|
Aktion | Ablehnen – Ablehnen der Route, die diesem Begriff entspricht. Nach dem Erreichen dieses Begriffs werden keine weiteren Terme ausgewertet. Akzeptieren: Akzeptieren Sie die Route, die diesem Begriff entspricht. Nach dem Erreichen dieses Begriffs werden keine weiteren Terme ausgewertet. Weiter: Dies ist die Standardaktion, die bei der Übereinstimmung mit der Richtlinienlaufzeit ausgeführt wird. Die Route wird entsprechend der in der Richtlinienaktion angegebenen Aktualisierung aktualisiert. Die nächsten Begriffe, die in der Routingrichtlinie vorhanden sind, werden auf der Route verarbeitet. Wenn die Richtlinie keine weiteren Begriffe enthält, wird die nächste Routingrichtlinie verarbeitet, sofern vorhanden. |
Community hinzufügen Fügen Sie der vorhandenen Community eine Liste der Communitys hinzu. |
Die Community ist vom Typ unsigned 32 bit Beispiel: 64512:55555. |
Erweiterte Community hinzufügen Fügen Sie der vorhandenen Community eine Liste der erweiterten Community hinzu. |
Eine Acht-Oktett-Zeichenfolgendarstellung von value type:administrator:assigned-number , wobei type zwei Oktette, administrator vier Oktette und assigned-number zwei Oktette sind, oder es kann eine hexadezimale Darstellung der Community sein, z. B.: 0xFFffA101 . |
as-Pfad Wählen Sie verschiedene AS-Pfade aus, um Routing-Entscheidungen zu steuern |
32-Bit-Ganzzahl ohne Vorzeichen, die den as-Pfad darstellt. Beispiel: 444. |
local-preference (Lokale Präferenz) Wählen Sie die lokale Präferenz aus, um Routen zu unterscheiden und weitere Maßnahmen zu ergreifen. |
32-Bit-Ganzzahl ohne Vorzeichen, die die lokale Präferenz darstellt. Beispiel: 444. |
Med Wählen Sie die MED des BgpPath aus. |
32-Bit-Ganzzahl ohne Vorzeichen, die das MED darstellt. Beispiel: 444. |
Community entfernen Entfernen Sie eine Liste der Communitys (falls vorhanden) aus der vorhandenen Community. |
Die Community ist vom Typ unsigned 32 bit integer:unsigned 32 bit integer . |
Erweiterte Community entfernen Entfernen Sie eine Liste der erweiterten Community (falls vorhanden) aus der vorhandenen Community. |
Eine Acht-Oktett-Zeichenfolgendarstellung von value type:administrator:assigned-number , wobei type zwei Oktette, administrator vier Oktette und assigned-number zwei Oktette sind, oder es kann eine hexadezimale Darstellung der Community sein, z. B.: 0xFFffA101 . |
Community festlegen Legen Sie eine Liste der Communitys fest. |
Die Community ist vom Typ unsigned 32 bit integer:unsigned 32 bit integer . |
Erweiterte Community festlegen Legen Sie eine Liste der erweiterten Communitys fest. |
Eine Acht-Oktett-Zeichenfolgendarstellung von value type:administrator:assigned-number , wobei type zwei Oktette, administrator vier Oktette und assigned-number zwei Oktette sind, oder es kann eine hexadezimale Darstellung der Community sein, z. B.: 0xFFffA101 . |