Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Konventionen

Konfigurieren und Steuern der Routing-Richtlinie

Netzwerkdiagramm

Konfigurationen

R3

R1

R2

Verifizierung

Zugehörige Informationen

Einleitung

In diesem Dokument wird beschrieben, wie Sie mithilfe der BGP-Community-Werte die Routing-Richtlinie in Upstream-Anbieternetzwerken steuern.

Voraussetzungen

Anforderungen

Dieses Dokument erfordert ein Verständnis des BGP-Routing-Protokolls und seiner Funktionsweise.

Verwendete Komponenten

Dieses Dokument ist nicht auf bestimmte Software- und Hardware-Versionen beschränkt. Die Informationen in diesem Dokument basieren jedoch auf den folgenden Software- und Hardwareversionen:

- Cisco IOS®-Softwareversion 12.2(27)

- Router der Cisco 2500 Serie

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle verstehen.

Hintergrundinformationen

Communitys selbst ändern den BGP Best Path-Prozess zwar nicht, können aber als Flags verwendet werden, um eine Reihe von Routen zu kennzeichnen. Upstream-Service-Provider-Router können diese Flags verwenden, um spezifische Routing-Richtlinien (z. B. die lokalen Präferenzen) in ihrem Netzwerk anzuwenden.

Die Anbieter ordnen Ihre konfigurierbaren Community-Werte und die entsprechenden lokalen Präferenzwerte im Anbieternetzwerk zu. Sie können spezifische Richtlinien festlegen, die die Änderung von LOCAL_PREF im Anbieternetzwerk erfordern, indem die entsprechenden Community-Werte in den Routing-Updates festgelegt werden.

Eine Community ist eine Gruppe von Präfixen, die eine gemeinsame Eigenschaft verwenden und mit dem BGP Community-Attribut konfiguriert werden können. Das BGP Community-Attribut ist ein optionales transitives Attribut variabler Länge. Das Attribut besteht aus vier Oktettwerten, die eine Community angeben. Die Community-Attributwerte werden in den ersten beiden Oktetten mit einer AS-Nummer (Autonomous System) kodiert, während die anderen beiden Oktette vom AS definiert werden. Ein Präfix kann mehr als ein Community-Attribut haben. Ein BGP-Sprecher, der mehrere Community-Attribute in einem Präfix sieht, kann auf Grundlage eines, einiger oder aller Attribute agieren. Ein Router kann ein Community-Attribut hinzufügen oder ändern, bevor der Router das Attribut an andere Peers übergibt. Weitere Informationen zum Community-Attribut finden Sie in den BGP-Anwenderberichten.

Das lokale Präferenzattribut ist ein Hinweis auf das AS, über welchen Pfad ein bestimmtes Netzwerk erreicht werden soll. Wenn mehrere Pfade zum gleichen Ziel vorhanden sind, wird der Pfad mit der höheren Präferenz ausgewählt (der Standardwert des Attributs für die lokale Präferenz ist 100). Weitere Informationen finden Sie unter Anwenderberichte .

Konventionen

Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps von Cisco zu Konventionen).

Konfigurieren und Steuern der Routing-Richtlinie

Anmerkung: Um weitere Informationen zu den in diesem Dokument verwendeten Befehlen zu erhalten, verwenden Sie das Command Lookup Tool.

Zur Vereinfachung wird davon ausgegangen, dass zwischen dem Upstream-Service-Provider (AS 100) und Ihrem Gerät (AS 30) die Community-Attribut- und lokale Präferenzattribute-Zuordnung eingerichtet wird.

Lokale Präferenz

Community-Werte

130

100:300

125

100:250

Wenn die Präfixe mit einem Community-Attribut von 100:300 angekündigt werden, legt der Upstream-Dienstanbieter die lokale Präferenz dieser Routen auf 130 und 125 fest, wenn das Community-Attribut 100:250 entspricht.

Dadurch haben Sie die Kontrolle über die Routing-Richtlinie im Service Provider-Netzwerk, wenn Sie die Community-Werte der Präfixe ändern, die dem Service Provider angekündigt wurden.

Im Netzwerkdiagramm möchte das AS 30 diese Routing-Richtlinie mit den Community-Attributen verwenden.

- Der eingehende Datenverkehr von AS 100, der an das Netzwerk 10.0.10.0/24 gerichtet ist, durchläuft die R1-R3-Verbindung. Wenn die Verbindung R1-R3 ausfällt, wird der gesamte Datenverkehr durch R2-R3 geleitet.

- Der eingehende Datenverkehr von AS 100, der an das Netzwerk 10.1.0.0/24 gerichtet ist, verläuft über die R2-R3-Verbindung. Wenn die R2-R3-Verbindung ausfällt, wird der gesamte Datenverkehr durch R1-R3 geleitet.

Um diese Routing-Richtlinie zu erreichen, kündigt R3 seine Präfixe wie folgt an:

An R1:

- 10.0.10.0/24 mit einem Community-Attribut 100:300

- 10.1.0.0/24 mit einem Community-Attribut 100:250

An R2:

- 10.0.10.0/24 mit einem Community-Attribut 100:250

- 10.1.0.0/24 mit einem Community-Attribut 100:300

Sobald die BGP-Nachbarn R1 und R2 die Präfixe von R3, R1 und R2 empfangen haben, wenden Sie die konfigurierte Richtlinie auf der Grundlage der Zuordnung zwischen den Community-Attributen und den lokalen Präferenzattributen an (siehe vorherige Tabelle) und erreichen so die von Ihnen (das AS 30) diktierte Routing-Richtlinie. R1 installiert die Präfixe in der BGP-Tabelle.

- 10.0.10.0/24 mit einer lokalen Präferenz von 130

- 10.1.0.0/24 mit einer lokalen Präferenz von 125

R2 installiert das Präfix in seiner BGP-Tabelle:

- 10.0.10.0/24 mit einer lokalen Präferenz von 125

- 10.1.0.0/24 mit einer lokalen Präferenz von 130

Da in den BGP-Pfadauswahlkriterien eine höhere lokale Präferenz bevorzugt wird, wird der Pfad mit einer lokalen Präferenz von 130 (130 ist größer als 125) als der beste Pfad innerhalb von AS 100 ausgewählt und in der IP-Routing-Tabelle von R1 und R2 installiert. Weitere Informationen zu den BGP-Pfadauswahlkriterien finden Sie unter BGP Best Path Selection Algorithm.

Netzwerkdiagramm

BGP-Netzwerke

Konfigurationen

In diesem Dokument werden folgende Konfigurationen verwendet:

- R3

- R1

- R2

R3

Current configuration : 2037 bytes

!

version 12.2

!

hostname R3

!

interface Loopback0

ip address 10.0.10.0 255.255.255.0

!

interface Ethernet0/0

ip address 10.1.0.0 255.255.255.1

!

interface Serial8/0

ip address 10.10.13.3 255.255.255.0

!--- Interface connected to R1.

!

interface Serial9/0

ip address 10.10.23.3 255.255.255.0

!--- Interface connected to R2.

!

router bgp 30

network 10.0.10.0 mask 255.255.255.0

network 10.1.0.0 mask 255.255.255.1

!--- Network commands announce prefix 10.0.10.0/24

!--- and 10.1.0.0/24.

neighbor 10.10.13.1 remote-as 100

!--- Establishes peering with R1.

neighbor 10.10.13.1 send-community

- !--- Without this command, the community attributes !--- are not sent to the neighbor.

neighbor 10.10.13.1 route-map Peer-R1 out

!--- Configures outbound policy as defined by

!--- route-map "Peer-R1" when peering with R1.

neighbor 10.10.23.2 remote-as 100

!--- Establishes peering with R2.

neighbor 10.10.23.2 send-community

!--- Configures to send community attribute to R2.

neighbor 10.10.23.2 route-map Peer-R2 out

!--- Configures outbound policy as defined by

!--- route-map "Peer-R2" when peering with R2.

no auto-summary

!

ip classless

ip bgp-community new-format

!--- Allows you to configure the BGP community

!--- attribute in AA:NN format.

!

access-list 101 permit ip host 10.0.10.0 host 255.255.255.0

access-list 102 permit ip host 10.1.0.0 host 255.255.255.1

!

!

route-map Peer-R1 permit 10

match ip address 101

set community 100:300

!--- Sets community 100:300 for routes matching access-list 101.

!

route-map Peer-R1 permit 20

match ip address 102

set community 100:250

!--- Sets community 100:250 for routes matching access-list 102.

!

route-map Peer-R2 permit 10

match ip address 101

set community 100:250

!--- Sets community 100:250 for routes matching access-list 101.

!

route-map Peer-R2 permit 20

match ip address 102

set community 100:300

!--- Sets community 100:300 for routes matching access-list 102.

!

end

R1

Version 12.2

!

hostname R1

!

interface Loopback0

ip address 200.200.10.1 255.255.255.0

!

interface Serial8/0

ip address 10.10.13.1 255.255.255.1

!--- Connected to R3.

!

interface Serial10/0

ip address 10.10.12.1 255.255.255.0

!--- Connected to R2.

!

router bgp 100

no synchronization

bgp log-neighbor-changes

neighbor 10.10.12.2 remote-as 100

!--- Establishes peering with R2.

neighbor 10.10.12.2 next-hop-self

neighbor 10.10.13.3 remote-as 30

!--- Establishes peering with R3.

neighbor 10.10.13.3 route-map Peer-R3 in

!--- Configures the inbound policy as defined by

!--- route-map "Peer-R3" when peering with R3.

no auto-summary

!

ip bgp-community new-format

!--- Allows you to configure the BGP community

!--- attribute in AA:NN format.

ip community-list 1 permit 100:300

ip community-list 2 permit 100:250

!--- Defines community list 1 and 2.

!

route-map Peer-R3 permit 10

match community 1

set local-preference 130

!--- Sets local preference 130 for all routes

!--- matching community list 1.

!

route-map Peer-R3 permit 20

match community 2

set local-preference 125

!--- Sets local preference 125 for all routes

!--- matching community list 2.

!

route-map Peer-R3 permit 30

!--- Without this permit 30 statement, updates that do not

!--- match the permit 10 or permit 20 statements are dropped.

!

end

R2

Version 12.2

!

hostname R2

!

interface Loopback0

ip address 10.0.10.0 255.255.255.0

!

interface Serial9/0

ip address 10.10.23.2 255.255.255.1

!--- Connected to R3.

!

interface Serial10/0

ip address 10.10.12.2 255.255.255.0

!--- Connected to R1.

!

router bgp 100

no synchronization

bgp log-neighbor-changes

neighbor 10.10.12.1 remote-as 100

!--- Establishes iBGP peering with R1.

neighbor 10.10.12.1 next-hop-self

neighbor 10.10.23.3 remote-as 30

!--- Establishes peering with R3.

neighbor 10.10.23.3 route-map Peer-R3 in

!--- Configures inbound policy as defined by

!--- route-map "Peer-R3" when peering with R3.

no auto-summary

!

ip bgp-community new-format

!--- Allows you to configure the BGP community

!--- attribute in AA:NN format.

!

ip community-list 1 permit 100:300

ip community-list 2 permit 100:250

!--- Defines community list 1 and 2.

!

route-map Peer-R3 permit 10

match community 1

set local-preference 130

!--- Sets local preference 130 for all routes

!--- matching community list 1.

!

route-map Peer-R3 permit 20

match community 2

set local-preference 125

!--- Sets local preference 125 for all routes

!--- matching community list 2.

!

route-map Peer-R3 permit 30

!--- Without this permit 30 statement, updates that do not

!--- match the permit 10 or permit 20 statements are dropped.

!

end

Verifizierung

R1 empfängt die Präfixe 10.0.10.0/24 und 10.1.0.0/24 mit den Communitys 100:300 und 100:250, wie im nächsten show ip bgp comman output result gezeigt wird.

Anmerkung: Nachdem diese Routen auf Basis der konfigurierten Richtlinie in der BGP-Tabelle installiert wurden, werden Präfixe der Community 100:300 mit der lokalen Präferenz 130 zugewiesen und Präfixe mit der Community 100:250 mit der lokalen Präferenz 125 zugewiesen.

R1# show ip bgp 10.0.10.0

BGP routing table entry for 10.0.10.0/24, version 2

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Advertised to non peer-group peers:

10.10.12.2

30

10.10.13.3 from 10.10.13.3 (10.0.10.0)

Origin IGP, metric 0, localpref 130, valid, external, best

Community: 100:300

!--- Prefix 10.0.10.0/24 with community 100:300 received from

!--- 10.10.13.3 (R3) is assigned local preference 130.

R1# show ip bgp 10.1.0.0

BGP routing table entry for 10.1.0.0/24, version 4

Paths: (2 available, best #1, table Default-IP-Routing-Table)

Advertised to non peer-group peers:

10.10.13.3

30

10.10.12.2 from 10.10.12.2 (10.1.0.0)

Origin IGP, metric 0, localpref 130, valid, internal, best

.0!--- Received prefix 10.1.0.0/24 over iBGP from 10.10.12.2

!--- (R2) with local preference 130.

!--- (R2) with local preference 130.

30

10.10.13.3 from 10.10.13.3 (198.50.100.0)

Origin IGP, metric 0, localpref 125, valid, external

Community: 100:250

!--- Prefix 10.1.0.0/24 with community 100:250 received from

!--- 10.10.13.3 (R3) is assigned local preference 125.

R1# show ip bgp

BGP table version is 4, local router ID is 200.200.10.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*> 10.0.10.0/24    10.10.13.3            0    130      0 30 i

*>i 10.1.0.0/24    10.10.12.2            0    130      0 30 i

*                   10.10.13.3            0    125      0 30 i

Der Befehl show ip bgp auf R1 bestätigt, dass der beste auf R1 ausgewählte Pfad mit lokaler Präferenz (LoclPrf) = 130 lautet. Ähnlich erhält R2 die Präfixe 10.0.10.0/24 und 10.1.0.0/24 für die Communitys 100:250 und 100:300, wie in der Befehlsausgabe show ip bgp fett dargestellt:

Anmerkung: Sobald diese Routen auf Basis der konfigurierten Richtlinie in der BGP-Tabelle installiert sind, werden Präfixe der Community 100:300 mit der lokalen Präferenz 130 zugewiesen, und Präfixe mit der Community 100:250 werden mit der lokalen Präferenz 125 zugewiesen.

R2# show ip bgp 10.0.10.0

BGP routing table entry for 10.0.10.0/24, version 2

Paths: (2 available, best #2, table Default-IP-Routing-Table)

Advertised to non peer-group peers:

10.10.23.3

30

10.10.23.3 from 10.10.23.3 (10.0.10.0)

Origin IGP, metric 0, localpref 125, valid, external

Community: 100:250

!--- Prefix 10.0.10.0/24 with community 100:250 received from

!--- 10.10.23.3 (R3) is assigned local preference 125.

30

10.10.12.1 from 10.10.12.1 (200.200.10.1)

Origin IGP, metric 0, localpref 130, valid, internal, best

!--- Received prefix 10.0.10.0/24 over iBGP from 10.10.12.1

!--- (R1) with local preference 130.

R2# show ip bgp 10.0.10.0

BGP routing table entry for 10.0.10.0/24, version 3

Paths: (1 available, best #1, table Default-IP-Routing-Table)

Advertised to non peer-group peers:

10.10.12.1

30

10.10.23.3 from 10.10.23.3 (10.0.10.0)

Origin IGP, metric 0, localpref 130, valid, external, best

Community: 100:300

!--- Prefix 10.1.0.0/24 with community 100:300 received from

!--- 10.10.23.3 (R3) is assigned local preference 130.

R2# show ip bgp

BGP table version is 3, local router ID is 192.168.50.1

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network          Next Hop            Metric LocPrf Weight Path

*  10.0.10.0/24      10.10.23.3           0    125      0 30 i

*>i                  10.10.12.1           0    130      0 30 i

*> 10.1.0.0/24       10.10.23.3           0    130      0 30 i

Diese Ausgabe des Befehls show ip bgp auf R2 bestätigt, dass der beste auf R2 ausgewählte Pfad mit lokaler Präferenz (loclPrf) = 130 ist. Die IP-Route zum Präfix 10.0.10.0/24 bevorzugt die R1-R3-Verbindung, um AS 100 zu AS 30 zu verlassen. Der Befehl show ip route auf R1 und R2 bestätigt diese Präferenz.

R1# show ip route 10.0.10.0

Routing entry for 10.0.10.0/24

Known via "bgp 100", distance 20, metric 0

Tag 30, type external

Last update from 10.10.13.3 3d21h ago

Routing Descriptor Blocks:

* 10.10.13.3, from 10.10.13.3, 3d21h ago

Route metric is 0, traffic share count is 1

AS Hops 1

!--- On R1, the IP route to prefix 10.0.10.0/24 points

!--- to next hop 10.10.13.3 which is R3 serial 8/0

!--- interface on the R1-R3 link.

R2# show ip route 10.1.0.0

Routing entry for 10.1.0.0/24

Known via "bgp 100", distance 200, metric 0

Tag 30, type internal

Last update from 10.10.12.1 3d21h ago

Routing Descriptor Blocks:

* 10.10.12.1, from 10.10.12.1, 3d21h ago

Route metric is 0, traffic share count is 1

AS Hops 1

!--- On R2, IP route to prefix 10.1.0.0/24 points

!--- to next hop R1 (10.10.12.1) on its iBGP link.

!--- Thus traffic to network 10.1.0.0/24 from R2

!--- exits through R2-R1 and then R1-R3 link from

!--- AS 100 towards AS 30.

Die IP-Route zum Präfix 10.1.0.0/24 bevorzugt die R2-R3-Verbindung, um AS 100 zu AS 30 zu verlassen. Der Befehl show ip route auf R1 und R2 bestätigt diese Präferenz.

R2# show ip route 10.1.0.0

Routing entry for 10.1.0.0/24

Known via "bgp 100", distance 20, metric 0

Tag 30, type external

Last update from 10.10.23.3 3d22h ago

Routing Descriptor Blocks:

* 10.10.23.3, from 10.10.23.3, 3d22h ago

Route metric is 0, traffic share count is 1

AS Hops 1

!--- On R2, IP route to prefix 10.1.0.0/24 points

!--- to next hop 10.10.23.3 which is R3 serial 9/0

!--- interface on R2-R3 link.

R1# show ip route 10.1.0.0

Routing entry for 10.1.0.0/24

Known via "bgp 100", distance 200, metric 0

Tag 30, type internal

Last update from 10.10.12.2 3d22h ago

Routing Descriptor Blocks:

* 10.10.12.2, from 10.10.12.2, 3d22h ago

Route metric is 0, traffic share count is 1

AS Hops 1

!--- On R1, IP route to prefix 10.1.0.0/24 points

!--- to next hop R2 (10.10.12.2) on its iBGP link.

!--- Thus traffic to network 10.1.0.0/24 from R1

!--- exits through R1-R2 and then R2-R3 link

!--- from AS 100 towards AS 30.

Wenn eine Verbindung ausfällt, z. B. die Verbindung R1-R3, muss der gesamte Datenverkehr der Verbindung R2-R3 folgen. Sie können diesen Datenverkehr simulieren, wenn Sie die Verbindung zwischen R1-R3 ausschalten.

R1# conf t

Enter configuration commands, one per line. End with CNTL/Z.

R1(config)#int s8/0

R1(config-if)#shut

R1(config-if)#

3d22h: %BGP-5-ADJCHANGE: neighbor 10.10.13.3 Down Interface flap

3d22h: %LINK-5-CHANGED: Interface Serial8/0, changed state to

administratively down

3d22h: %LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0,

changed state to down

Beachten Sie die IP-Routing-Tabelle für das Präfix 10.0.10.0/24 und 10.1.0.0/24 für R1 und R2. Verwenden Sie die Verbindung R2-R3, um den AS 100 zu verlassen.

R1# show ip route 10.0.10.0

Routing entry for 10.0.10.0/24

Known via "bgp 100", distance 200, metric 0

Tag 30, type internal

Last update from 10.10.12.2 00:01:47 ago

Routing Descriptor Blocks:

* 10.10.12.2, from 10.10.12.2, 00:01:47 ago

Route metric is 0, traffic share count is 1

AS Hops 1

R1# show ip route 10.1.0.0

Routing entry for 10.1.0.0/24

Known via "bgp 100", distance 200, metric 0

Tag 30, type internal

Last update from 10.10.12.2 3d22h ago

Routing Descriptor Blocks:

* 10.10.12.2, from 10.10.12.2, 3d22h ago

Route metric is 0, traffic share count is 1

AS Hops 1

Diese show-Befehlsausgabe zeigt, dass die Route zu den Präfixen 10.0.10.0/24 und 10.1.0.0/24 auf den nächsten Hop 10.10.12.2 (R2) zeigt, der erwartet wird. Sehen Sie sich nun die IP-Routing-Tabelle auf R2an, um Next-Hop des Präfix 10.0.10.0/24 und 10.1.0.0/24 zu überprüfen. Der nächste Hop muss R3 für die konfigurierte Richtlinie sein, damit sie erfolgreich funktioniert.

R2# show ip route 10.0.10.0

Routing entry for 10.0.10.0/24

Known via "bgp 100", distance 20, metric 0

Tag 30, type external

Last update from 10.10.23.3 00:04:10 ago

Routing Descriptor Blocks:

* 10.10.23.3, from 10.10.23.3, 00:04:10 ago

Route metric is 0, traffic share count is 1

AS Hops 1

R2# show ip route 10.1.0.0

Routing entry for 10.1.0.0/24

Known via "bgp 100", distance 20, metric 0

Tag 30, type external

Last update from 10.10.23.3 3d22h ago

Routing Descriptor Blocks:

* 10.10.23.3, from 10.10.23.3, 3d22h ago

Route metric is 0, traffic share count is 1

AS Hops 1

Der nächste Hop 10.10.23.3 ist die R3 Serial 9/0-Schnittstelle auf der R2-R3-Verbindung. Dadurch wird bestätigt, dass die konfigurierte Richtlinie wie erwartet funktioniert.

Zugehörige Informationen

- RFC 1998

- BGP-Fehlerbehebung

- BGP: Häufig gestellte Fragen

- Lastverteilung mit BGP

- Technischer Support und Dokumentation