Inleiding
Dit document beschrijft hoe u BGP Community-waarden kunt gebruiken om het routeringsbeleid in upstream-providernetwerken te beheren.
Voorwaarden
Vereisten
Voor dit document is inzicht nodig in het BGP-routingprotocol (Bborder Gateway Protocol) en de werking ervan.
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies. De informatie in dit document is echter gebaseerd op deze softwareversie:
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Terwijl gemeenschappen zelf het BGP Best Path-proces niet wijzigen, kunnen gemeenschappen als vlaggen worden gebruikt om een reeks routes te markeren. Routers van upstream-serviceproviders kunnen deze vlaggen dan gebruiken om specifieke routeringsregels (bijvoorbeeld de lokale voorkeur) toe te passen binnen hun netwerk.
Providers koppelen uw configureerbare gemeenschapswaarden aan de bijbehorende lokale voorkeurwaarden binnen het providernetwerk. U kunt specifiek beleid hebben dat de wijziging van LOCAL_PREF in de reeks van het providernetwerk en de overeenkomstige communautaire waarden in hun routing updates vereist.
Een community is een groep prefixes die een deel van de algemene eigenschap delen en kan worden geconfigureerd met het BGP community-kenmerk. Het BGP community attribuut is een optionele transitieve attribuut van variabele lengte. De eigenschap bestaat uit een reeks van vier octetwaarden die een gemeenschap specificeren. De waarden van gemeenschaps-kenmerken worden in de eerste twee octetten gecodeerd met een AS-nummer (Autonomous System), waarbij de andere twee octetten worden gedefinieerd door het AS. Een prefix kan meer dan één community-kenmerk hebben. Een BGP-luidspreker die meerdere community-kenmerken in een prefix ziet, kan handelen op basis van één, enkele of alle kenmerken. Een router heeft de optie om een communautair attribuut toe te voegen of te wijzigen alvorens de router de attributen aan andere edelen overgaat. Raadpleeg BGP-casestudy’s voor meer informatie over het attribuut community.
Het attribuut local preferred is een indicatie aan het AS welke pad de voorkeur heeft om een bepaald netwerk te bereiken. Wanneer er meerdere paden zijn naar dezelfde bestemming, wordt het pad met de hogere voorkeur gekozen (de standaardwaarde van het lokale voorkeurskenmerk is 100). Raadpleeg casestudy’s voor meer informatie.
Conventies
Raadpleeg Cisco Technical Tips Conventions (Conventies voor technische tips van Cisco) voor meer informatie over documentconventies.
Configureer en controleer het routingbeleid
Opmerking: om extra informatie te vinden over de opdrachten die in dit document worden gebruikt, gebruikt u de Command Lookup Tool.
Ter vereenvoudiging wordt ervan uitgegaan dat het attribuut community en het attribuut local preferred mapping wordt ingesteld tussen de upstream service provider (AS 100) en uw apparaat (AS 30).
Lokale voorkeur |
Communitywaarden |
130 |
100:300 |
125 |
100:250 |
Als de prefixes worden aangekondigd met een community attribuut gelijk aan 100:300, dan stelt de upstream service provider de lokale voorkeur van die routes in op 130 en 125 als de community attribuut gelijk is aan 100:250.
Dit geeft u controle over het routeringsbeleid binnen het dienstverlener netwerk als u de communautaire waarden van de prefixes die aan de dienstverlener worden aangekondigd verandert.
In het netwerkdiagram, wil AS 30 dit routeringsbeleid met de communautaire attributen gebruiken.
-
Het verkeer van AS 100 dat bestemd is voor netwerk 10.0.10.0/24 wordt via de R1-R3-link verzonden. Als de R1-R3 link mislukt, gaat al het verkeer door R2-R3.
-
Het verkeer van AS 100 dat bestemd is voor netwerk 10.1.0.0/24 wordt via de R2-R3-link verzonden. Als de R2-R3 link mislukt, gaat al het verkeer door R1-R3.
Om dit routebeleid te bereiken, kondigt R3 zijn prefixes op deze wijze aan:
Aan R1:
- 10.0.10.0/24 met een community-kenmerk 100:300
- 10.1.0.0/24 met een community-kenmerk 100:250
Aan R2:
Zodra BGP-buren R1 en R2 de prefixes van R3 ontvangen, passen R1 en R2 het geconfigureerde beleid toe op basis van mapping tussen de community- en lokale voorkeurkenmerken (weergegeven in de vorige tabel) en bereiken ze zo het routeringsbeleid dat door u wordt gedicteerd (de AS 30). R1 installeert de prefixes in de BGP-tabel.
R2 installeert het prefix in de BGP tabel:
Aangezien een hogere lokale voorkeur in de BGP-padselectiecriteria de voorkeur geniet, wordt het pad met een lokale voorkeur van 130 (130 is groter dan 125) geselecteerd als het beste pad binnen AS 100 en is het geïnstalleerd in de IP-routeringstabel van R1 en R2. Zie BGP-algoritme voor beste padselectie voor meer informatie over de BGP-padselectiecriteria.
Netwerkdiagram
BGP-netwerken
Configuraties
Dit document gebruikt de volgende configuraties:
R3-
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
hostname R1
!
interface Loopback0
ip address 10.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
V2
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
Verificatie
R1 ontvangt prefixes 10.0.10.0/24 en 10.1.0.0/24 met communities 100:300 en 100:250, zoals getoond in het volgende show ip bgp opdrachtuitvoerresultaat.
Opmerking: Zodra deze routes in de BGP-tabel zijn geïnstalleerd op basis van het ingestelde beleid, worden prefixes met community 100:300 toegewezen aan lokale voorkeur 130 en prefixes met community 100:250 worden toegewezen aan lokale voorkeur 125.
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
!--- Received prefix 10.1.0.0/24 over iBGP from 10.10.12.2 (R2) with local preference 130
30 10.10.13.3 from 10.10.13.3 (198.51.100.1) 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 10.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
show ip bgp Met de opdracht op R1 wordt bevestigd dat het beste pad dat op R1 is geselecteerd, de lokale voorkeur heeft (LoclPrf) = 130. Op dezelfde manier ontvangt R2 prefixes 10.0.10.0/24 en 10.1.0.0/24 met communities 100:250 en 100:300, zoals vet weergegeven in deze show ip bgp opdrachtoutput:
Opmerking: Zodra deze routes in de BGP-tabel zijn geïnstalleerd, op basis van het geconfigureerde beleid, worden prefixes met community 100:300 aan lokale voorkeur 130 toegewezen en prefixes met community 100:250 aan lokale voorkeur 125 toegewezen.
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 (10.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.1.0.0 BGP routing table entry for 10.1.0.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.1.0.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
Deze show ip bgp opdrachtoutput op R2 bevestigt dat het beste pad dat is geselecteerd op R2 are met lokale voorkeur (loclPrf) = 130. De IP-route om 10.0.10.0/24 te prefixeren geeft de voorkeur aan de R1-R3-link om uit AS 100 te stappen naar AS 30. De show ip route opdracht R1 en R2 bevestigt deze voorkeur.
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
De IP-route om 10.1.0.0/24 te prefixeren geeft de voorkeur aan R2-R3-link om uit AS 100 te stappen naar AS 30. show ip route De opdracht R1 en R2 bevestigt deze voorkeur.
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.
Als één link mislukt, bijvoorbeeld de R1-R3 link, moet al het verkeer de R2-R3 link volgen. U kunt dit verkeer simuleren als u de koppeling tussen R1-R3 uitschakelt.
R1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. R1(config)#interface serial8/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
Let op de IP-routingtabel voor prefix 10.0.10.0/24 en 10.1.0.0/24 op R1 en R2. Gebruik de R2-R3 link om AS 100 te verlaten.
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
Deze show opdrachtoutput toont aan dat de route naar prefixes10.0.10.0/24 en 10.1.0.0/24 verwijst naar de volgende hop 10.10.12.2, (R2), die wordt verwacht. Nu, neem een blik bij IP die lijst op R2 verpletteren om volgende-hop van prefix 10.0.10.0/24 en 10.1.0.0/24 te controleren. De volgende hop moet R3 zijn voor het geconfigureerde beleid om met succes te kunnen werken.
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
De volgende hop 10.10.23.3 is R3 seriële 9/0 interface op de R2-R3 link. Dit bevestigt dat het geconfigureerde beleid naar verwachting werkt.
Gerelateerde informatie