Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Auswertung von BGP-Communities und erweiterten Communities in Übereinstimmungsbedingungen für Routing-Richtlinien

Wenn Sie BGP-Communities und erweiterte Communities als Übereinstimmungsbedingungen in einer Routing-Richtlinie verwenden, wertet die Richtlinien-Framework-Software diese wie folgt aus:

  • Jede Route wird anhand jeder benannten Community in einer Routingrichtlinienanweisung ausgewertet.from Wenn eine Route mit einer der in der Anweisung genannten Gemeinden übereinstimmt, wird die Auswertung des aktuellen Begriffs fortgesetzt.from Wenn eine Route nicht übereinstimmt, endet die Auswertung des aktuellen Terms.

  • Die Route wird für jedes Mitglied einer benannten Community ausgewertet. Die Evaluierung aller Mitglieder muss erfolgreich sein, damit die benannte Community-Evaluierung erfolgreich ist.

  • Jedes Mitglied in einer benannten Community wird entweder durch einen literalen Communitywert oder einen regulären Ausdruck identifiziert. Jedes Mitglied wird anhand jeder Community ausgewertet, die der Route zugeordnet ist. (Communities sind eine ungeordnete Eigenschaft einer Route. Zum Beispiel ist 1:2 3:4 dasselbe wie 3:4 1:2.) Es ist nur eine Community aus der Route erforderlich, damit die Mitgliederbewertung erfolgreich ist.

  • Reguläre Community-Ausdrücke werden Zeichen für Zeichen ausgewertet. Wenn eine Route z. B. die Community 1234:5678 enthält, sehen die regulären Ausdrücke neun diskrete Zeichen, einschließlich des Doppelpunkts (:), anstelle von zwei Zahlengruppen (1234 und 5678), die durch einen Doppelpunkt getrennt sind. Hier einige Zahlen zum Generationswechsel:

    Wenn es sich bei einem Community-Mitglied um einen regulären Ausdruck handelt, wird eine Zeichenfolgenübereinstimmung anstelle einer numerischen Übereinstimmung erstellt.

    Hier einige Zahlen zum Generationswechsel:

    Bei einer gegebenen Route mit einem Community-Wert von 1100:100 stimmt diese Route überein , aber nicht .community example2example1

  • Um der Routing-Richtlinie zu entsprechen, muss die Route entweder mit oder übereinstimmen.onecomm-onecomm-two

  • Für einen Abgleich muss die Route eine Community aufweisen, die 1:2 entspricht, und eine Community, die 4:5 oder 4:6 entspricht.comm-one

  • Um eine Übereinstimmung zu erzielen, muss die Route eine Community haben, die mit 7:8 übereinstimmt, und eine Community, die mit 9:10 übereinstimmt.comm-two

Mehrere Übereinstimmungen

Wenn mehrere Übereinstimmungen gefunden werden, findet keine Label-Aggregation statt. Betrachten Sie die folgende Konfiguration:

Angenommen, es werden zwei Routen mit Community-Attributen empfangen und der Community-Name lautet .target:65000:1000 origin:65200:2000"5...:.*" In diesem Fall stimmen sowohl die erweiterten Community-Attribute als auch mit dem regulären Ausdruck des Community-Namens überein.target:65000:1000origin:65200:2000 In diesem Fall findet keine Label-Aggregation statt. Im folgenden Beispiel zeigt das Feld, dass die Beschriftungen nicht aggregiert sind.Label operation

Sie können dieses Problem auf eine der folgenden Arten beheben:

  • Seien Sie im regulären Ausdruck genauer, wenn sich das erweiterte Community-Attribut des Ursprungsortes nicht mit dem Zielattribut überschneidet.

  • Geben Sie den Ursprungsort im Community-Namen an.

Beide Methoden werden in den folgenden Beispielen veranschaulicht.

Seien Sie spezifischer im regulären Ausdruck

Geben Sie den Ursprungsort im Community-Namen an

Community-Matches umkehren

Die Übereinstimmungsbedingung definiert einen regulären Ausdruck, und wenn er mit dem Community-Attribut des empfangenen Präfixes übereinstimmt, gibt Junos OS ein TRUE-Ergebnis zurück.community Ist dies nicht der Fall, gibt Junos OS das Ergebnis FALSE zurück. Die Aussage führt dazu, dass sich Junos OS gegenteilig verhält.invert-match Wenn es eine Übereinstimmung gibt, gibt Junos OS das Ergebnis FALSE zurück. Wenn es keine Übereinstimmung gibt, gibt Junos OS ein TRUE-Ergebnis zurück. Um die Ergebnisse des Community-Ausdrucksabgleichs umzukehren, schließen Sie die Anweisung in die Community-Konfiguration ein.invert-match

Erweiterter Community-Typ

Der erweiterte Community-Typ wird von regulären Ausdrücken nicht berücksichtigt. Betrachten Sie z. B. die folgenden Community-Attribute und den Community-Namen.

Ihre Rolle in der Gesellschaft:

  • 5200:1000

  • target:65000:1000

  • origin:65200:2000

Community-Attribut:

  • Community-Name Mitglieder "5...:.*"

In diesem Fall stimmen sowohl das erweiterte Community-Attribut als auch das erweiterte Community-Attribut mit dem regulären Ausdruck des Community-Namens überein.5200:1000origin:65200:2000 Daher findet die Label-Aggregation nicht statt, wie hier gezeigt:

Sie können dieses Problem beheben, indem Sie einen spezifischeren regulären Ausdruck verwenden. Sie können z. B. das Ankerzeichen () verwenden, um die Position der Ziffern zu binden, wie hier gezeigt:^

HINWEIS:

Mit der Implementierung der Funktion für große Communitys in Version 17.3 prüft Junos OS, ob der Abgleich von erweiterten oder großen Communitys mit Basis-BGP- oder Basis-BGP-Communitys mit regulären Ausdrücken verhindert wird. Mit anderen Worten, eine empfangene Community kann nur mit dem entsprechenden Wild-Community-Muster abgeglichen werden, wie normale Communities gegen Simple-Wild, erweiterte Communities gegen Extended-Wild und große Communities gegen Large-Wild-Muster. Verwenden Sie z. B. den Ausdruck, um die Ankündigung von Routen zu ermöglichen, die die erweiterte Ursprungscommunity enthalten.origin:*:65020

Mehrere Communities werden mit Ex-OP-Logik abgeglichen

Dies unterscheidet sich von der UND-Abgleichslogik, die für nicht erweiterte Communities in BGP verwendet wird.

Wenn z. B. vier Routen mit zwei Sätzen von Community-Attributen empfangen werden, kann der reguläre Ausdruck mit beiden Community-Attributen übereinstimmen. Betrachten Sie das folgende Beispiel:

  • Gemeinden—5200:1000 Ziel:65000:1000

  • Gemeinden—Ziel:65000:1000 origin:65200:2000

  • Community-Attribut – Community-Community-Name member [ "^5...:.*" origin:65.*:.* ]

Beide Beschriftungen werden aggregiert, wie hier gezeigt:

Ein ausführlicheres Beispiel für Community-Werte finden Sie hier:

Dieser reguläre Ausdruck stimmt mit Community-Werten überein, die mit 1, 3 oder 4 beginnen, sowie mit erweiterten Community-Werten vom Typ origin, deren administrativer Wert mit 2, 3 oder 6 beginnt.

Einbeziehen von BGP-Communities und erweiterten Communities in Übereinstimmungsbedingungen für Routing-Richtlinien

Um eine BGP-Community oder erweiterte Community in eine Routing-Richtlinienübereinstimmungsbedingung einzuschließen, fügen Sie die Bedingung in die Anweisung eines Richtlinienbegriffs ein:communityfrom

Darüber hinaus können Sie BGP-Community-Informationen mit einer statischen Route explizit ausschließen, indem Sie die Option verwenden.none Schließen Sie diese Option ein, wenn Sie eine einzelne Route im Teil konfigurieren, um eine im Teil angegebene Community-Option zu überschreiben.routedefaults

Sie können die Namen mehrerer Communitys in die Übereinstimmungsbedingung aufnehmen.community Wenn Sie dies tun, muss nur eine Community übereinstimmen, damit eine Übereinstimmung auftritt (der Abgleich ist im Grunde eine logische ODER-Operation).