Grundlegendes zum Definieren von BGP-Communities und erweiterten Communities
Um eine BGP-Community oder erweiterte Community als Routing-Policy-Übereinstimmungsbedingung zu verwenden, definieren Sie die Community wie in den folgenden Abschnitten beschrieben:
Definieren von BGP-Communities für die Verwendung in Übereinstimmungsbedingungen für Routingrichtlinien
Um eine benannte BGP-Community zu erstellen und die Community-Mitglieder zu definieren, fügen Sie die folgende Anweisung ein:community
[edit policy-options] community name { invert-match; members [ community-ids ]; }
name identifiziert die Gemeinschaft. Er kann Buchstaben, Zahlen und Bindestriche (-) enthalten und bis zu 255 Zeichen lang sein. Um Leerzeichen in den Namen einzufügen, schließen Sie den gesamten Namen in Anführungszeichen (" ") ein.
community-ids Identifiziert ein oder mehrere Mitglieder der Community. Jede Community-ID besteht aus zwei Komponenten, die Sie im folgenden Format angeben:
as-number:community-value;
as-number– AS-Nummer des Community-Mitglieds. Es kann ein Wert zwischen 0 und 65.535 sein. Sie können die folgende Notation verwenden, um die AS-Nummer anzugeben:
Ziffernfolge.
Sternchen (*): Ein Platzhalterzeichen, das mit allen AS-Nummern übereinstimmt. (In der Definition des Community-Attributs funktioniert das Sternchen auch wie in beschrieben.)Tabelle 1
Punkt (.) – Ein Platzhalterzeichen, das mit einer beliebigen Ziffer in einer AS-Nummer übereinstimmt.
Gruppe von AS-Nummern: Eine einzelne AS-Nummer oder eine Gruppe von AS-Nummern in Klammern. Wenn Sie die Nummern auf diese Weise gruppieren, können Sie eine gemeinsame Operation für die Gruppe als Ganzes ausführen und der Gruppe Vorrang geben. Die gruppierten Zahlen können ihrerseits Operatoren für reguläre Ausdrücke enthalten. Weitere Informationen zu regulären Ausdrücken finden Sie unter .Verwenden regulärer UNIX-Ausdrücke in Community-Namen
community-value– Kennung des Community-Mitglieds. Dabei kann es sich um eine Zahl zwischen 0 und 65.535 handeln. Sie können die folgende Notation verwenden, um die Community-ID anzugeben:
Ziffernfolge.
Sternchen (*): Ein Platzhalterzeichen, das mit allen Community-Werten übereinstimmt. (In der Definition des Community-Attributs funktioniert das Sternchen auch wie in beschrieben.)Tabelle 1
Punkt (.) – Ein Platzhalterzeichen, das mit einer beliebigen Ziffer in einer Community-Wertzahl übereinstimmt.
Gruppe von Community-Wertnummern: Eine einzelne Community-Wertnummer oder eine Gruppe von Community-Wertnummern, die in Klammern eingeschlossen sind. Wenn Sie den regulären Ausdruck auf diese Weise gruppieren, können Sie eine gemeinsame Operation für die Gruppe als Ganzes ausführen und der Gruppe Vorrang einräumen. Der gruppierte Pfad kann selbst Operatoren für reguläre Ausdrücke enthalten.
Sie können auch einen der folgenden bekannten Communitynamen (definiert in RFC 1997, BGP Communities Attribute) in die Option für die Anweisung aufnehmen.community-idsmembers
Dadurch werden die Routen, die Sie angeben , mit dem konfigurierten Namen oder Community-Wert gekennzeichnet.[policy-options policy-statement]
In einer separaten Konfiguration müssen Sie auch einen Filter für die importierten Routen in Ihrer BGP-Importrichtlinie erstellen.
no-advertise: Routen in diesem Community-Namen dürfen nicht für andere BGP-Peers angekündigt werden.
no-export: Routen in dieser Community dürfen nicht außerhalb der Grenzen einer BGP-Konföderation angekündigt werden. Ein eigenständiges autonomes System, das nicht Teil einer Konföderation ist, sollte selbst als Konföderation betrachtet werden.
no-export-subconfed: Routen in dieser Community dürfen nicht für externe BGP-Peers angekündigt werden, einschließlich Peers in den ASs anderer Mitglieder innerhalb einer BGP-Konföderation.
Sie können die folgenden IPv6-Unicast-Adressen-Community-Namen (definiert in RFC 5701, BGP Communities Attribute) einschließen, um IPv6-Unicast-Adressen-spezifische erweiterte Community zu berücksichtigen:
[edit policy-options] policy-statement send-direct { term 1 { then { community add community-name; community add community-name; community add community-name; accept; } } } community community-name members [ipv6-target:<IPv6 unicast address>:operator-defined local values ipv6-target:<IPv6 unicast address>:operator-defined local values
]; community community-name members [ipv6-origin:<IPv6 unicast address>:operator-defined local values ipv6-origin:<IPv6 unicast address>:operator-defined local values
]; community community-name members [ipv6-extended:type-and-subtype value:<IPv6 unicast address>:operator-defined local values
ipv6-extended:type-and-subtype value:<IPv6 unicast address>:operator-defined local values ];
identifiziert die VPN-IPv6-Ziel-Unicastadresse, die in einer Richtlinienübereinstimmung verwendet wird. identifiziert die Quelle der IPv6-Unicastadresse in einer Richtlinienübereinstimmung. identifiziert das erweiterte Format der IPv6-Unicastadresse in einer Richtlinienübereinstimmung.ipv6-targetipv6-originipv6-extended
Verwenden regulärer UNIX-Ausdrücke in Community-Namen
Wenn Sie die Mitglieder einer benannten BGP-Community (in der Anweisung) angeben, können Sie reguläre Ausdrücke im UNIX-Stil verwenden, um die AS-Nummer und die Mitglieds-ID anzugeben.members [ community-ids ]
Ein regulärer Ausdruck besteht aus zwei Komponenten, die Sie im folgenden Format angeben:
term operator;
term Identifiziert die Zeichenfolge, die übereinstimmen soll.
Gibt an, wie der Begriff übereinstimmen muss. Listet die Operatoren für reguläre Ausdrücke auf, die in Community-IDs unterstützt werden.operatorTabelle 1 Sie platzieren einen Operator unmittelbar danach ohne Leerzeichen, mit Ausnahme der Operatoren für senkrechte Striche ( ) und Bindestriche (), die Sie zwischen zwei Begriffen platzieren, und Klammern, mit denen Sie Ausdrücke einschließen. Zeigt Beispiele für die Definition mithilfe von regulären Community-Ausdrücken. term|
–
Tabelle 2community-ids
Der Operator ist optional.
Die regulären Ausdrücke der Community sind identisch mit den regulären UNIX-Ausdrücken. Beide implementieren die erweiterten (oder modernen) regulären Ausdrücke, wie sie in POSIX 1003.2 definiert sind.
Reguläre Ausdrücke der Community werten die in angegebene Zeichenfolge Zeichen für Zeichen aus.term
Wenn Sie z. B. als angeben, sehen die regulären Ausdrücke neun diskrete Zeichen, einschließlich des Doppelpunkts (), anstelle von zwei Zahlengruppen ( und ), die durch einen Doppelpunkt getrennt sind.1234:5678
term
:
1234
5678
In Junos OS Version 9.1 und höher können Sie 4-Byte-AS-Nummern angeben, wie in RFC 4893, BGP-Unterstützung für den AS-Nummernraum mit vier Oktetten, definiert, sowie die 2-Byte-AS-Nummern, die in früheren Versionen des Junos-Betriebssystems unterstützt werden.
Administrator |
Definition von Übereinstimmungen |
---|---|
|
Zumindest und bei den meisten Wiederholungen von . |
|
Exakte Wiederholungen von . müssen eine positive ganze Zahl sein. |
|
oder mehrere Wiederholungen von . müssen eine positive ganze Zahl sein. |
|
Keine oder mehr Wiederholungen von . |
|
Eine oder mehrere Wiederholungen von . |
|
Null oder eine Wiederholung von . |
|
Einer der beiden Begriffe auf beiden Seiten der Pipe. |
|
Zwischen einem Start- und einem Endbereich, einschließlich. |
|
Zeichen am Anfang eines regulären Ausdrucks für Community-Attribute. |
|
Zeichen am Ende eines regulären Ausdrucks für Community-Attribute. |
|
Satz von Zeichen. Ein Charakter aus dem Set kann übereinstimmen. Um den Anfang und das Ende eines Bereichs anzugeben, verwenden Sie einen Bindestrich (). |
|
Gruppe von Begriffen, die in Klammern eingeschlossen sind. Wenn sie in Anführungszeichen ohne dazwischenliegende Leerzeichen ("" ) eingeschlossen sind, wird ein NULL-Wert angegeben. |
|
Zeichen (z. B. Leerzeichen, Tabulator, Fragezeichen und eckige Klammern), die in einem regulären Ausdruck für Communityattribute in Anführungszeichen gesetzt sind, weisen auf Sonderzeichen hin. |
Übereinstimmendes Community-Attribut |
Regulärer Ausdruck |
Beispielhafte Übereinstimmungen |
---|---|---|
AS-Nummer ist 56 oder 78. Der Community-Wert ist eine beliebige Zahl. |
^((56) | (78)):(.*)$ |
56:1000 78:64500 |
Die AS-Nummer ist 56. Der Community-Wert ist eine beliebige Zahl, die mit 2 beginnt. |
^56:(2.*)$ |
56:2 56:222 56:234 |
AS-Nummer ist eine beliebige Zahl. Der Community-Wert ist eine beliebige Zahl, die mit 5, 7 oder 9 endet. |
^(.*):(.*[579])$ |
1234:5 78:2357 34:64509 |
AS-Nummer ist 56 oder 78. Der Community-Wert ist eine beliebige Zahl, die mit 2 beginnt und mit 2 bis 8 endet. |
^((56) | (78)):(2.*[2–8])$ |
56:22 56:21197 78:2678 |
Definieren von erweiterten BGP-Communitys für die Verwendung in Übereinstimmungsbedingungen für Routing-Richtlinien
Um eine benannte BGP-Community zu erstellen und die Community-Mitglieder zu definieren, fügen Sie die folgende Anweisung ein:community
[edit policy-options] community name { members [ community-ids ]; }
name
identifiziert die Gemeinschaft. Er kann Buchstaben, Zahlen und Bindestriche (-) enthalten und bis zu 255 Zeichen lang sein. Um Leerzeichen in den Namen einzufügen, schließen Sie den gesamten Namen in Anführungszeichen (" ") ein.
community-ids
Identifiziert ein oder mehrere Mitglieder der Community. Jede Community-ID besteht aus drei Komponenten, die Sie im folgenden Format angeben:
type:administrator:assigned-number
type
ist der Typ der erweiterten Community und kann entweder der numerische 16-Bit-Bezeichner einer bestimmten erweiterten BGP-Community oder einer der folgenden Typen sein:
-
bandwidth
– Richtet die Community für erweiterte Bandbreite ein. Durch die Angabe der Verbindungsbandbreite können Sie den Datenverkehr ungleichmäßig auf verschiedene BGP-Pfade verteilen.HINWEIS:Das Verbindungsbandbreitenattribut funktioniert nicht gleichzeitig mit dem Lastenausgleich pro Präfix.
-
domain-id
: Gibt die OSPF-Domäne an, von der die Route stammt. -
origin
: Gibt an, wo die Route ihren Ursprung hat. -
rt-import
– Gibt die zu installierende Route in der Routing-Tabelle an.HINWEIS:Sie müssen die Route anhand einer IP-Adresse und nicht anhand einer AS-Nummer identifizieren.
-
src-as
: Gibt den AS an, von dem aus die Route stammt. Sie müssen eine AS-Nummer angeben, keine IP-Adresse.HINWEIS:Sie müssen den AS anhand einer AS-Nummer identifizieren, nicht anhand einer IP-Adresse.
-
target
– Gibt das Ziel an, zu dem die Route führt.HINWEIS:Für eine Importrichtlinie für eine VPN-Routing- und Weiterleitungsinstanz (VRF) müssen Sie mindestens ein Routenziel angeben. Darüber hinaus können Sie keine Platzhalterzeichen oder regulären Ausdrücke im Routenziel für eine VRF-Importrichtlinie verwenden. Jeder Wert, den Sie für ein Routenziel für eine VRF-Importrichtlinie konfigurieren, muss ein einzelner Wert sein.
administrator
ist der Administrator. Es handelt sich entweder um eine AS-Nummer oder ein IPv4-Adresspräfix (IP Version 4), je nach Art der erweiterten Community.
assigned-number
Identifiziert den lokalen Anbieter.
In Junos OS Version 9.1 und höher können Sie 4-Byte-AS-Nummern angeben, wie in RFC 4893, BGP-Unterstützung für den AS-Nummernraum mit vier Oktetten, definiert, sowie die 2-Byte-AS-Nummern, die in früheren Versionen des Junos-Betriebssystems unterstützt werden. Im Nur-Zahlen-Format können Sie einen Wert im Bereich von 1 bis 4.294.967.295 konfigurieren. Um eine erweiterte Community zu konfigurieren, die eine 4-Byte-AS-Nummer im einfachen Zahlenformat enthält, hängen Sie den Buchstaben "L" an das Ende der Nummer an.target
origin
Beispiel: Eine Ziel-Community mit der 4-Byte-AS-Nummer 334.324 und einer zugewiesenen Nummer 132 wird als dargestellt.target:334324L:132
4-Byte-ASes können nur als Teil erweiterter Communitys angegeben werden, und daher ist der Buchstabe "L" in einer BGP-Basisgemeinschaft für reguläre Ausdrücke nicht zulässig. Wenn Sie z. B. Übereinstimmungen mit einer erweiterten Community zulassen möchten, verwenden Sie erweiterte Community-Ausdrücke wie und anstelle von origin:334324L:*
target:334324L:*
334324L:*
In Junos OS Version 9.2 und höher können Sie auch die AS-Punkt-Notation verwenden, wenn Sie eine 4-Byte-AS-Nummer für die und erweiterte Communitys definieren.target
origin
Geben Sie zwei ganze Zahlen an, die durch einen Punkt verbunden sind: ..16-bit high-order value in decimal16-bit low-order value in decimal Beispielsweise wird die 4-Byte-AS-Zahl, die im einfachen Zahlenformat als 65546 dargestellt wird, in AS-Punkt-Notation als 1,10 dargestellt.
Beispiele: Definieren von BGP Extended Communities
Konfigurieren Sie eine Ziel-Community mit einem administrativen Feld von und einer zugewiesenen Anzahl von :10458
20
[edit policy-options] community test-a members [ target:10458:20 ];
Konfigurieren Sie eine Ziel-Community mit dem Verwaltungsfeld 10.1.1.1 und der zugewiesenen Nummer 20:
[edit policy-options] community test-a members [ target:10.1.1.1:20 ];
Konfigurieren Sie eine Ursprungs-Community mit dem Verwaltungsfeld 10.1.1.1 und der zugewiesenen Nummer 20:
[edit policy-options] community test-a members [ origin:10.1.1.1:20 ];
Konfigurieren Sie eine Ziel-Community mit einer 4-Byte-AS-Nummer im administrativen Feld 100000 und einer zugewiesenen Nummer 130:
[edit policy-options] community test-b members [ target:100000L:130 ];