Auf dieser Seite
Beispiel: Konfigurieren einer Routingrichtlinie, um internen Peers die beste externe Route anzukündigen
Die BGP-Protokollspezifikation, wie in RFC 1771 definiert, gibt an, dass ein BGP-Peer seinen internen Peers den externen Pfad mit höherer Präferenz ankündigen muss, auch wenn dieser Pfad insgesamt nicht der beste ist (mit anderen Worten, selbst wenn der beste Pfad ein interner Pfad ist). In der Praxis folgen bereitgestellte BGP-Implementierungen dieser Regel nicht. Die Gründe für die Abweichung von der Spezifikation sind wie folgt:
Minimierung der Menge der beworbenen Informationen. BGP skaliert entsprechend der Anzahl der verfügbaren Pfade.
Vermeiden von Routing- und Weiterleitungsschleifen.
Es gibt jedoch mehrere Szenarien, in denen das in RFC 1771 spezifizierte Verhalten, die beste externe Route anzukündigen, von Vorteil sein kann. Eine Begrenzung der Pfadinformationen ist nicht immer wünschenswert, da die Pfadvielfalt dazu beitragen kann, die Wiederherstellungszeiten zu verkürzen. Durch die Ankündigung des besten externen Pfads können auch interne BGP (IBGP)-Routenoszillationsprobleme behoben werden, wie in RFC 3345, Border Gateway Protocol (BGP) Persistent Route Oscillation Condition, beschrieben.
Die advertise-external
Anweisung ändert das Verhalten eines BGP-Sprechers, um IBGP-Peers den besten externen Pfad anzukündigen, selbst wenn der beste Gesamtpfad ein interner Pfad ist.
Die advertise-external
Anweisung wird sowohl auf Gruppen- als auch auf Nachbarebene unterstützt. Wenn Sie die Anweisung auf Nachbarebene konfigurieren, müssen Sie sie für alle Nachbarn in einer Gruppe konfigurieren. Andernfalls wird die Gruppe automatisch in verschiedene Gruppen aufgeteilt.
Die conditional
Option schränkt das Verhalten der advertise-external
Einstellung ein, sodass die externe Route nur dann angekündigt wird, wenn der Routenauswahlprozess den Punkt erreicht, an dem die MED-Metrik (Multiple Exit Discriminator) ausgewertet wird. So wird eine externe Route nicht angekündigt, wenn sie z.B. einen AS-Pfad hat, der schlechter (länger) ist als der des aktiven Pfades. Die conditional
Option schränkt die Ankündigung externer Pfade bis zum MED-Schritt des Routenauswahlprozesses auf den Zeitpunkt ein, in dem der beste externe Pfad und der aktive Pfad gleich sind. Beachten Sie, dass die Kriterien für die Auswahl des besten externen Pfads dieselben sind, unabhängig davon, ob die conditional
Option konfiguriert ist oder nicht.
Junos OS bietet auch Unterstützung für die Konfiguration einer BGP-Exportrichtlinie, die mit dem Status einer angekündigten Route übereinstimmt. Sie können aktive oder inaktive Routen wie folgt abgleichen:
policy-options { policy-statement name{ from state (active|inactive); } }
Dieser Qualifizierer stimmt nur überein, wenn er im Kontext einer Exportrichtlinie verwendet wird. Wenn eine Route von einem Protokoll angekündigt wird, das inaktive Routen ankündigen kann (z. B. BGP), stimmt dies mit Routen überein, state inactive
die als Ergebnis der advertise-inactive
and-Anweisungen advertise-external
angekündigt wurden.
Die folgende Konfiguration kann beispielsweise als BGP-Exportrichtlinie für interne Peers verwendet werden, um Routen, die aufgrund der advertise-external
Einstellung angekündigt wurden, mit einer benutzerdefinierten Community zu markieren. Diese Community kann später von den empfangenden Routern verwendet werden, um solche Routen aus der Weiterleitungstabelle herauszufiltern. Ein solcher Mechanismus kann verwendet werden, um Bedenken auszuräumen, dass Werbepfade, die vom Absender nicht für die Weiterleitung verwendet werden, zu Weiterleitungsschleifen führen könnten.
user@host# show policy-options policy-statement mark-inactive { term inactive { from state inactive; then { community set comm-inactive; } } term default { from protocol bgp; then accept; } then reject; } community comm-inactive members 65536:65284;
Anforderungen
Junos OS 9.3 oder höher ist erforderlich.
Überblick
Dieses Beispiel zeigt drei Routing-Geräte. Gerät R2 verfügt über eine externe BGP-Verbindung (EBGP) zu Gerät R1. Gerät R2 verfügt über eine IBGP-Verbindung zu Gerät R3.
Gerät R1 wirbt mit 172.16.6.0/24. Gerät R2 legt die lokale Einstellung in einer Importrichtlinie für die Routen von Gerät R1 nicht fest, und daher hat 172.16.6.0/24 die lokale Standardeinstellung von 100.
Gerät R3 kündigt 172.16.6.0/24 mit einer lokalen Präferenz von 200 an.
Wenn die advertise-external
Anweisung auf Gerät R2 nicht konfiguriert ist, wird 172.16.6.0/24 nicht von Gerät R2 für Gerät R3 angekündigt.
Wenn die advertise-external
Anweisung auf Gerät R2 in der Sitzung für Gerät R3 konfiguriert ist, wird 172.16.6.0/24 von Gerät R2 für Gerät R3 angekündigt.
Wenn advertise-external conditional
172.16.6.0/24 auf Gerät R2 in der Sitzung für Gerät R3 konfiguriert ist, wird es von Gerät R2 gegenüber Gerät R3 nicht angekündigt. Wenn Sie die then local-preference 200
Einstellung auf Gerät R3 entfernen und die path-selection as-path-ignore
Einstellung auf Gerät R2 hinzufügen (wodurch die Pfadauswahlkriterien bis zum MED-Schritt des Routenauswahlprozesses gleich werden), wird 172.16.6.0/24 von Gerät R2 für Gerät R3 angekündigt.
Um die advertise-external
Anweisung auf einem Routenreflektor zu konfigurieren, müssen Sie die clusterinterne Reflektion mit der no-client-reflect
Anweisung deaktivieren, und der Clientcluster muss vollständig vernetzt sein, um das Senden redundanter Routenankündigungen zu verhindern.
Wenn ein Routinggerät als Routenreflektor für einen Cluster konfiguriert ist, wird eine vom Routenreflektor angekündigte Route als intern betrachtet, wenn sie von einem internen Peer mit derselben Cluster-ID empfangen wird oder wenn für beide Peers keine Cluster-ID konfiguriert ist. Eine Route, die von einem internen Peer empfangen wird, der zu einem anderen Cluster gehört, d. h. mit einer anderen Cluster-ID, wird als extern betrachtet.
Topologie
Abbildung 1 zeigt das Beispielnetzwerk an.

CLI-Schnellkonfiguration Zeigt die Konfiguration für alle Geräte in Abbildung 1an.
In diesem Abschnitt #configuration148__policy-advertise-external-st werden die Schritte auf Gerät R2 beschrieben.
Konfiguration
CLI-Schnellkonfiguration
Um dieses Beispiel schnell zu konfigurieren, kopieren Sie die folgenden Befehle, fügen Sie sie in eine Textdatei ein, entfernen Sie alle Zeilenumbrüche, ändern Sie alle Details, die für Ihre Netzwerkkonfiguration erforderlich sind, und kopieren Sie dann die Befehle und fügen Sie sie in die CLI auf Hierarchieebene [edit]
ein.
Gerät R1
set interfaces fe-1/2/0 unit 0 description to-R2 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group ext type external set protocols bgp group ext export send-static set protocols bgp group ext peer-as 200 set protocols bgp group ext neighbor 10.0.0.2 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 from route-filter 172.16.6.0/24 exact set policy-options policy-statement send-static term 1 then accept set policy-options policy-statement send-static term 2 then reject set routing-options static route 172.16.6.0/24 reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 100
Gerät R2
set interfaces fe-1/2/0 unit 0 description to-R1 set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.2/30 set interfaces fe-1/2/1 unit 0 description to-R3 set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.5/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group ext type external set protocols bgp group ext peer-as 100 set protocols bgp group ext neighbor 10.0.0.1 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int advertise-external set protocols bgp group int neighbor 192.168.0.3 set protocols ospf area 0.0.0.0 interface fe-1/2/1.0 set protocols ospf area 0.0.0.0 interface lo0.0 passive set routing-options router-id 192.168.0.2 set routing-options autonomous-system 200
Gerät R3
set interfaces fe-1/2/0 unit 6 family inet address 10.0.0.6/30 set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int export send-static set protocols bgp group int neighbor 192.168.0.2 set protocols ospf area 0.0.0.0 interface fe-1/2/0.6 set protocols ospf area 0.0.0.0 interface lo0.0 passive set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then local-preference 200 set policy-options policy-statement send-static term 1 then accept set routing-options static route 172.16.6.0/24 reject set routing-options static route 0.0.0.0/0 next-hop 10.0.0.5 set routing-options autonomous-system 200
Verfahren
Schritt-für-Schritt-Anleitung
Im folgenden Beispiel müssen Sie durch verschiedene Ebenen in der Konfigurationshierarchie navigieren. Weitere Informationen zum Navigieren in der CLI finden Sie unter Verwenden des CLI-Editors im Konfigurationsmodus im Junos OS CLI-Benutzerhandbuch.
So konfigurieren Sie Gerät R2:
Konfigurieren Sie die Geräteschnittstellen.
[edit interfaces] user@R2# set fe-1/2/0 unit 0 description to-R1 user@R2# set fe-1/2/0 unit 0 family inet address 10.0.0.2/30 user@R2# set fe-1/2/1 unit 0 description to-R3 user@R2# set fe-1/2/1 unit 0 family inet address 10.0.0.5/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Konfigurieren Sie OSPF oder ein anderes Interior Gateway Protocol (IGP).
[edit protocols ospf area 0.0.0.0] user@R2# set interface fe-1/2/1.0 user@R2# set interface lo0.0 passive
Konfigurieren Sie die EBGP-Verbindung mit Gerät R1.
[edit protocols bgp group ext] user@R2# set type external user@R2# set peer-as 100 user@R2# set neighbor 10.0.0.1
Konfigurieren Sie die IBGP-Verbindung mit Gerät R3.
[edit protocols bgp group int] user@R2# set type internal user@R2# set local-address 192.168.0.2 user@R2# set neighbor 192.168.0.3
Fügen Sie die
advertise-external
Anweisung der IBGP-Gruppenpeering-Sitzung hinzu.[edit protocols bgp group int] user@R2# set advertise-external
Konfigurieren Sie die AS-Nummer (Autonomous System) und die Router-ID.
[edit routing-options ] user@R2# set router-id 192.168.0.2 user@R2# set autonomous-system 200
Ergebnisse
Bestätigen Sie im Konfigurationsmodus Ihre Konfiguration, indem Sie die show interfaces
Befehle , show protocols
, show policy-options
und show routing-options
eingeben. Wenn die Ausgabe nicht die gewünschte Konfiguration anzeigt, wiederholen Sie die Anweisungen in diesem Beispiel, um die Konfiguration zu korrigieren.
user@R2# show interfaces fe-1/2/0 { unit 0{ description to-R1; family inet { address 10.0.0.2/30; } } } fe-1/2/1 { unit 0 { description to-R3; family inet { address 10.0.0.5/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group ext { type external; peer-as 100; neighbor 10.0.0.1; } group int { type internal; local-address 192.168.0.2; advertise-external; neighbor 192.168.0.3; } } ospf { area 0.0.0.0 { interface fe-1/2/1.0; interface lo0.0 { passive; } } }
user@R2# show routing-options router-id 192.168.0.2; autonomous-system 200;
Wenn Sie mit der Konfiguration des Geräts fertig sind, rufen Sie den Konfigurationsmodus auf commit
.
Verifizierung
Vergewissern Sie sich, dass die Konfiguration ordnungsgemäß funktioniert.
- Verifizieren des aktiven BGP-Pfads
- Überprüfen der externen Routenankündigung
- Verifizieren der Route auf Gerät R3
- Experimentieren mit der bedingten Option
Verifizieren des aktiven BGP-Pfads
Zweck
Stellen Sie auf Gerät R2 sicher, dass sich das Präfix 172.16.6.0/24 in der Routingtabelle befindet und über den erwarteten aktiven Pfad verfügt.
Action!
user@R2> show route 172.16.6 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 00:00:07, localpref 200, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0 [BGP/170] 03:23:03, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0
Bedeutung
Gerät R2 empfängt die Route 172.16.6.0/24 sowohl von Gerät R1 als auch von Gerät R3. Die Route von Gerät R3 ist der aktive Pfad, der durch das Sternchen (*) gekennzeichnet ist. Der aktive Pfad hat die höchste lokale Präferenz. Selbst wenn die lokalen Einstellungen der beiden Routen gleich wären, würde die Route von Gerät R3 aktiv bleiben, da es den kürzesten AS-Pfad hat.
Überprüfen der externen Routenankündigung
Zweck
Stellen Sie sicher, dass auf Gerät R2 die Route 172.16.6.0/24 für Gerät R3 angekündigt wird.
Action!
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 1 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path 172.16.6.0/24 10.0.0.1 100 100 I
Bedeutung
Gerät R2 kündigt die Route 172.16.6.0/24 zu Gerät R3 an.
Verifizieren der Route auf Gerät R3
Zweck
Stellen Sie sicher, dass das Präfix 172.16.6.0/24 in der Routing-Tabelle von Gerät R3 enthalten ist.
Action!
user@R3> show route 172.16.6.0/24 inet.0: 7 destinations, 8 routes (7 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[Static/5] 03:34:14 Reject [BGP/170] 06:34:43, localpref 100, from 192.168.0.2 AS path: 100 I, validation-state: unverified > to 10.0.0.5 via fe-1/2/0.6
Bedeutung
Gerät R3 verfügt über die statische Route und die BGP-Route für 172.16.6.0/24.
Beachten Sie, dass die BGP-Route auf Gerät R3 ausgeblendet wird, wenn die Route nicht erreichbar ist oder wenn der nächste Hop nicht aufgelöst werden kann. Um diese Anforderung zu erfüllen, enthält dieses Beispiel eine statische Standardroute auf Gerät R3 (static route 0.0.0.0/0 next-hop 10.0.0.5
).
Experimentieren mit der bedingten Option
Zweck
Erfahren Sie, wie die conditional
Option im Kontext des BGP-Pfadauswahlalgorithmus funktioniert.
Action!
Fügen Sie auf Gerät R2 die
conditional
Option hinzu.[edit protocols bgp group int] user@R2# set advertise-external conditional user@R2# commit
Überprüfen Sie auf Gerät R2, ob die Route 172.16.6.0/24 für Gerät R3 angekündigt wird.
user@R2> show route advertising-protocol bgp 192.168.0.3
Wie erwartet wird die Strecke nicht mehr ausgeschrieben. Möglicherweise müssen Sie einige Sekunden warten, um dieses Ergebnis zu sehen.
Deaktivieren Sie auf Gerät R3 die
then local-preference
Richtlinienaktion.[edit policy-options policy-statement send-static term 1] user@R3# deactivate logical-systems R3 then local-preference user@R3# commit
Stellen Sie auf Gerät R2 sicher, dass die lokalen Einstellungen der beiden Pfade gleich sind.
user@R2> show route 172.16.6.0/24 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 172.16.6.0/24 *[BGP/170] 08:02:59, localpref 100 AS path: 100 I, validation-state: unverified > to 10.0.0.1 via fe-1/2/0.0 [BGP/170] 00:07:51, localpref 100, from 192.168.0.3 AS path: I, validation-state: unverified > to 10.0.0.6 via fe-1/2/1.0
Fügen Sie auf Gerät R2 die
as-path-ignore
Anweisung hinzu.[edit protocols bgp] user@R2# set path-selection as-path-ignore user@R2# commit
Überprüfen Sie auf Gerät R2, ob die Route 172.16.6.0/24 für Gerät R3 angekündigt wird.
user@R2> show route advertising-protocol bgp 192.168.0.3 inet.0: 8 destinations, 9 routes (8 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 172.16.6.0/24 10.0.0.1 100 100 I
Wie erwartet wird die Route jetzt angekündigt, da die AS-Pfadlänge ignoriert wird und die lokalen Einstellungen gleich sind.