Referenz zu BGP-Routenrichtlinienattributen

Auf dieser Seite werden Beispiel-BGP-Routenrichtlinien mit der Common Expression Language (CEL) für Cloud Router gezeigt.

Übereinstimmende Attribute

In der folgenden Tabelle werden Übereinstimmungsattribute beschrieben, die für BGP-Routenrichtlinien verfügbar sind:

Attribute

Beschreibung

communities

Liste der Communitys, die der BGP-Route zugeordnet sind

destination

IP-Bereich für die BGP-Route

Abgleichvorgänge

In der folgenden Tabelle werden Übereinstimmungsvorgänge beschrieben, die für BGP-Routenrichtlinien verfügbar sind:

Vorgang

Beschreibung

communities.matchesEvery(65001:1234)

Gibt "true" zurück, wenn Communities eine Obermenge der Liste 65001:1234 sind.

Ein community_value ist ein 32-Bit-Feld, das in zwei 16-Bit-Abschnitte unterteilt ist. Traditionell codieren die ersten 16 Bit des Werts die autonome Systemnummer (AS) des Netzwerks, aus dem die Community stammt. Cloud Router erzwingt diese Konvention jedoch nicht. Die zweiten 16 Bit des Werts codieren eine eindeutige Zahl, die vom Ursprungs-AS zugewiesen wird.

Nur auf Import beschränkt.

destination == '192.168.0.0/24'

Gibt true zurück, wenn eine BGP-Route mit 192.168.0.0/24 übereinstimmt (genaue Übereinstimmung).

destination != '192.168.0.0/24'

Gibt true zurück, wenn eine BGP-Route nicht mit 192.168.0.0/24 übereinstimmt (genaue Übereinstimmung).

destination.inAnyRange(r)

Gibt true zurück, wenn eine BGP-Route im Bereich r liegt, wobei r eine der folgenden Optionen ist:

  • Ein String mit einem CIDER-codierten Präfix, z. B. 192.168.0.0/24, ist.
  • Der abstrakte Typ, der von prefix() zurückgegeben wird, oder eine der fließenden Methoden, die Sie für prefix() aufrufen können, z. B. longer(), ist.
  • Eine heterogene Liste, bei der jedes Element einen der zuvor beschriebenen Werte haben muss.

Kann mit ! negiert werden.

prefix('192.168.0.0/24')

Gibt ein Präfixobjekt zurück, das den CIDR-Bereich 192.168.0.0/24 darstellt, der mit destination.inAnyRange() verwendet wird.

prefix('192.168.0.0/24').longer()

Gibt ein Präfixbereichsobjekt zurück, das eine Kopie von prefix() ist. Das Ende des Bereichs ist auf das maximale Familienwert für das Eingabepräfix (/32 oder /128) und der Anfang des Bereichs auf die Länge des Eingabepräfixes plus eins festgelegt.

prefix().orLonger()

Gibt ein Präfixbereichsobjekt zurück, das eine Kopie von prefix() ist, wobei das Ende des Bereichs auf den maximalen Wert der Adressfamilie des Eingabepräfixes (/32 oder /128) festgelegt ist.

prefix().lengthRange(20, 30)

Gibt ein Präfixbereichsobjekt zurück, das eine Kopie von prefix() ist, wobei der Anfang des Bereichs auf /20 und das Ende auf /30 gesetzt ist.

prefix().upTo(30)

Gibt ein Präfixbereichsobjekt zurück, das eine Kopie von prefix() ist, wobei das Ende des Bereichs auf /30 des Eingabepräfixes gesetzt ist.

x || y

Gibt true zurück, wenn entweder x oder y gleich true ist.

x und y müssen boolesche Ausdrücke sein, die entweder das Attribut communities oder das Attribut destination verwenden.

Aufgrund der Regeln für ||-Vorgänge (OR) sind alle Bedingungen effektiv null oder mehr destination-Übereinstimmungsvorgänge, die durch OR verbunden sind.

(D0 || D1 || ... || Dm)

Die folgende Tabelle zeigt ein Beispiel für die Verwendung von prefix zum Erstellen komplexer regulärer Ausdrücke im Vergleich zu einigen Routeranbietern:

Cloud Router Cisco Juniper Erklärung

'192.168.0.1'

192.168.0.1

192.168.0.1

Enthält genau das Präfix 192.168.0.1/32

'192.168.0.0/24'

prefix('192.168.0.0/24')

192.168.0.0/24

192.168.0.0/24 exact

Enthält genau das Präfix 192.168.0.0/24

prefix('192.168.0.0/24').longer()

192.168.0.0/24 ge 25 le 32

192.168.0.0/24 longer

Stimmt mit dem Bereich zwischen 192.168.0.0/25 und 192.168.0.0/32 überein.

prefix('192.168.0.0/24').orLonger()

192.168.0.0/24 le 32

192.168.0.0/24 orlonger

Stimmt mit dem Bereich zwischen 192.168.0.0/24 und 192.168.0.0/32 überein.

prefix('192.168.0.0/24').lengthRange(25, 30)

192.168.0.0/24 ge 25 le 30

192.168.0.0/24 prefix-length-range /25-/30

Stimmt mit dem Bereich zwischen 192.168.0.0/25 und 192.168.0.0/30 überein.

prefix('192.168.0.0/24').upTo(30)

192.168.0.0/24 le 30

192.168.0.0/24 up to /30

Bereich in 192.168.0.0/24 mit 192.168.0.0/30 abgleichen

Aktionsattribute

In der folgenden Tabelle werden die Aktionsattribute beschrieben, die für BGP-Routenrichtlinien verfügbar sind:

Attribut

Beschreibung

Beschränkungen

asPath

Die Liste der AS-Nummern, die die BGP-Routenaktualisierung durchlaufen hat

Export und Import

communities

Die Liste der Communities der Route

Nur exportieren

med

Der Multipath Exit Diskriminator (MED) der Route

Export und Import

Aktionsvorgänge

In der folgenden Tabelle werden die Aktionsvorgänge beschrieben, die für BGP-Routenrichtlinien verfügbar sind:

Vorgang

Beschreibung

Beschränkungen

accept()

Akzeptiert die BGP-Route und beendet die weitere Auswertung der BGP-Routenrichtlinien oder -bedingungen, einschließlich aller Aktionen, die nach dieser Route folgen.

Keine

drop()

Die BGP-Route wird herausgefiltert und die weitere Auswertung von BGP-Richtlinien oder -Begriffen wird beendet, einschließlich aller nachfolgenden Aktionen.

Keine

nextPolicy()

Beendet die Ausführung der verbleibenden Begriffe in dieser BGP-Routenrichtlinie (einschließlich aller Aktionen nach diesem Begriff) und fährt mit der nächsten angewendeten BGP-Routenrichtlinie fort (falls vorhanden).

Keine

asPath.prependSequence([1, 2, 3])

Fügt dem AS-PATH-Attribut eine Liste von AS-Nummern als Sequenz vor.

Die Argumente müssen Ganzzahlen im Bereich von 32 Bit sein.

Keine

communities.add(65001:1234)

Fügt der Liste der Communitys den Communitywert hinzu.

Der Community-Wert kann eine einzelne Community oder eine Liste sein.

Alle Communitywerte, die private Communitys sind, die den folgenden ASNs von Google zugeordnet sind, werden von Cloud Router ignoriert:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Nur exportieren

communities.remove(65001:1234)

Der Communitywert wird aus der Liste der Communities entfernt.

Der Community-Wert kann eine einzelne Community oder eine Liste sein.

Alle Communitywerte, die private Communitys sind, die den folgenden ASNs von Google zugeordnet sind, werden von Cloud Router ignoriert:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Nur exportieren

communities.replaceAll(65001:1234)

Ersetzt die Liste der Communities durch den Communitywert, der leer sein kann.

Alle Communitywerte, die private Communitys sind, die den folgenden ASNs von Google zugeordnet sind, werden von Cloud Router ignoriert:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Nur exportieren

med.set(12345)

Legt MED auf 12345 fest.

Keine