Introduction
Ce document décrit comment utiliser les valeurs de la communauté BGP pour contrôler la politique de routage dans les réseaux de fournisseurs en amont.
Conditions préalables
Exigences
Ce document nécessite une compréhension du protocole de routage BGP (Border Gateway Protocol) et de son fonctionnement.
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques. Cependant, les informations contenues dans ce document sont basées sur cette version du logiciel :
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Bien que les communautés elles-mêmes ne modifient pas le processus BGP Best Path, les communautés peuvent être utilisées comme indicateurs afin de marquer un ensemble de routes. Les routeurs des fournisseurs de services en amont peuvent ensuite utiliser ces indicateurs pour appliquer des stratégies de routage spécifiques (par exemple, la préférence locale) au sein de leur réseau.
Les fournisseurs mappent entre vos valeurs de communauté configurables et les valeurs de préférence locales correspondantes au sein du réseau du fournisseur. Vous pouvez avoir des politiques spécifiques qui nécessitent la modification de LOCAL_PREF dans le réseau du fournisseur défini et les valeurs de communauté correspondantes dans leurs mises à jour de routage.
Une communauté est un groupe de préfixes qui partagent une certaine propriété commune et peuvent être configurés avec l'attribut de la communauté BGP. L' attribut de la communauté BGP est un attribut transitif facultatif de longueur variable. L'attribut se compose d'un ensemble de quatre valeurs d'octet qui spécifient une communauté. Les valeurs d'attribut de communauté sont codées avec un numéro de système autonome (AS) dans les deux premiers octets, les deux autres octets étant définis par le système autonome. Un préfixe peut avoir plus d'un attribut de la communauté. Un haut-parleur BGP qui voit plusieurs attributs de communauté dans un préfixe peut agir en fonction d'un, de certains ou de tous les attributs. Un routeur peut ajouter ou modifier un attribut de la communauté avant de transmettre l'attribut à d'autres homologues. Pour en savoir plus sur l'attribut de la communauté, consultez les Études de cas BGP.
L'attribut de préférence locale indique au système autonome le chemin préféré pour atteindre un certain réseau. Lorsqu'il existe plusieurs chemins vers la même destination, c'est le chemin avec la préférence la plus élevée qui est choisi (la valeur par défaut de l'attribut de préférence locale est 100). Pour plus d'informations, reportez-vous à Études de cas.
Conventions
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Configuration et contrôle de la politique de routage
Remarque : Pour obtenir des informations supplémentaires sur les commandes utilisées dans ce document, utilisez l'outil Command Lookup Tool.
Par souci de simplification, le mappage d'attribut de communauté et d'attribut de préférence locale est supposé être établi entre le fournisseur de services en amont (AS 100) et votre périphérique (AS 30).
|
Préférence locale
|
Valeurs de la communauté
|
|
130
|
100:300
|
|
125
|
100:250
|
Si les préfixes sont annoncés avec un attribut de communauté égal à 100:300, alors le fournisseur de services en amont définit la préférence locale de ces routes sur 130 et 125 si l'attribut de communauté est égal à 100:250.
Cela vous permet de contrôler la stratégie de routage au sein du réseau du fournisseur de services si vous modifiez les valeurs de communauté des préfixes annoncés au fournisseur de services.
Dans le schéma de réseau , l'AS 30 veut utiliser cette politique de routage avec les attributs de communauté.
-
Le trafic entrant du système autonome 100 destiné au réseau 10.0.10.0/24 transite par la liaison R1-R3. Si la liaison R1-R3 échoue, tout le trafic transite par R2-R3.
-
Le trafic entrant du système autonome 100 destiné au réseau 10.1.0.0/24 transite par la liaison R2-R3. Si la liaison R2-R3 échoue, tout le trafic transite par R1-R3.
Pour atteindre cette stratégie de routage, R3 annonce ses préfixes de la manière suivante :
À R1 :
- 10.0.10.0/24 avec un attribut de la communauté 100:300
- 10.1.0.0/24 avec un attribut de la communauté 100:250
À R2 :
Une fois que les voisins BGP R1 et R2 reçoivent les préfixes de R3, R1 et R2 appliquent la stratégie configurée basée sur le mappage entre les attributs de préférence locale et de communauté (illustrés dans le tableau précédent), et atteignent ainsi la stratégie de routage dictée par vous (AS 30). R1 installe les préfixes dans la table BGP.
R2 installe le préfixe dans sa table BGP :
Puisqu'une préférence locale plus élevée est préférée dans les critères de sélection de chemin BGP, le chemin avec une préférence locale de 130 (130 est supérieur à 125) est sélectionné comme meilleur chemin dans AS 100, et est installé dans la table de routage IP de R1 et R2. Pour plus d'informations sur les critères de sélection de chemin BGP, référez-vous à Algorithme de sélection de meilleur chemin BGP.
Diagramme du réseau

Configurations
Ce document utilise les configurations suivantes :
| Configuration de R3 |
hostname R3
!
interface Loopback0
ip address 10.0.10.1 255.255.255.0
!
interface Loopback1
ip address 10.1.0.1 255.255.255.0
!
interface GigabitEthernet1
ip address 10.10.13.3 255.255.255.0
!--- Interface connected to R1
!
interface GigabitEthernet2
ip address 10.10.23.3 255.255.255.0
!--- Interface connected to R2
!
router bgp 30
bgp router-id interface Loopback0
network 10.0.10.0 mask 255.255.255.0
network 10.1.0.0 mask 255.255.255.0
!--- 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.
!
ip bgp-community new-format
!--- Allows you to configure the BGP community
!--- attribute in AA:NN format.
!
access-list 101 permit ip 10.0.10.0 0.0.0.255 any
access-list 102 permit ip 10.1.0.0 0.0.0.255 any
!
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
|
| Configuration de R1 |
hostname R1
!
interface Loopback0
ip address 10.200.200.1 255.255.255.0
!
interface GigabitEthernet1
ip address 10.10.12.1 255.255.255.0
!--- Connected to R2
!
interface GigabitEthernet2
ip address 10.10.13.1 255.255.255.0
!--- Connected to R3
!
router bgp 100
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
|
| Configuration de R2 |
hostname R2
!
interface Loopback0
ip address 192.168.50.1 255.255.255.0
!
interface GigabitEthernet1
ip address 10.10.12.2 255.255.255.0
!--- Connected to R1
!
interface GigabitEthernet2
ip address 10.10.23.2 255.255.255.0
!--- Connected to R3
!
router bgp 100
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.
!
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
|
Vérification
R1 reçoit les préfixes 10.0.10.0/24 et 10.1.0.0/24 avec les communautés 100:300 et 100:250, comme indiqué dans le résultat de sortie de la commande suivante show ip bgp .
Remarque : Une fois que ces routes sont installées dans la table BGP basée sur la stratégie configurée, la préférence locale 130 est attribuée aux préfixes avec la communauté 100:300 et la préférence locale 125 est attribuée aux préfixes avec la communauté 100:250.
R1#show ip bgp 10.0.10.0
BGP routing table entry for 10.0.10.0/24, version 19
Paths: (1 available, best #1, table default)
Advertised to update-groups:
4
Refresh Epoch 1
30
10.10.13.3 from 10.10.13.3 (10.0.10.1)
Origin IGP, metric 0, localpref 130, valid, external, best
Community: 100:300
rx pathid: 0, tx pathid: 0x0
Updated on Oct 31 2025 16:47:42 UTC
!--- 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 20
Paths: (2 available, best #1, table default)
Advertised to update-groups:
6
Refresh Epoch 1
30
10.10.12.2 from 10.10.12.2 (192.168.50.1)
Origin IGP, metric 0, localpref 130, valid, internal, best
rx pathid: 0, tx pathid: 0x0
Updated on Oct 31 2025 16:47:42 UTC
Refresh Epoch 1
30
10.10.13.3 from 10.10.13.3 (10.0.10.1)
Origin IGP, metric 0, localpref 125, valid, external
Community: 100:250
rx pathid: 0, tx pathid: 0
Updated on Oct 31 2025 16:47:42 UTC
!--- Received prefix 10.1.0.0/24 over iBGP from 10.10.12.2 (R2) with local preference 130
!--- 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 20, local router ID is 10.200.200.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
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
R1#show ip bgp summary
BGP router identifier 10.200.200.1, local AS number 100
BGP table version is 20, main routing table version 20
2 network entries using 496 bytes of memory
3 path entries using 408 bytes of memory
5/2 BGP path/bestpath attribute entries using 1440 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
2 BGP community entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2416 total bytes of memory
BGP activity 4/2 prefixes, 15/12 paths, scan interval 60 secs
2 networks peaked at 15:24:53 Oct 31 2025 UTC (04:38:04.419 ago)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.12.2 4 100 242 243 20 0 0 03:31:31 1
10.10.13.3 4 30 219 219 20 0 0 03:16:06 2
La show ip bgp commande sur R1 confirme que le meilleur chemin sélectionné sur R1 est avec une préférence locale (LocalPrf) = 130. De même, R2 reçoit les préfixes 10.0.10.0/24 et 10.1.0.0/24 avec les communautés 100:250 et 100:300, comme indiqué en gras dans le résultat de cette show ip bgp commande :
Remarque : Une fois que ces routes sont installées dans la table BGP basée sur la stratégie configurée, la préférence locale 130 est attribuée aux préfixes avec la communauté 100:300 et la préférence locale 125 est attribuée aux préfixes avec la communauté 100:250.
R2#show ip bgp 10.0.10.0
BGP routing table entry for 10.0.10.0/24, version 13
Paths: (2 available, best #1, table default)
Advertised to update-groups:
6
Refresh Epoch 1
30
10.10.12.1 from 10.10.12.1 (10.200.200.1)
Origin IGP, metric 0, localpref 130, valid, internal, best
rx pathid: 0, tx pathid: 0x0
Updated on Oct 31 2025 16:47:42 UTC
Refresh Epoch 1
30
10.10.23.3 from 10.10.23.3 (10.0.10.1)
Origin IGP, metric 0, localpref 125, valid, external
Community: 100:250
rx pathid: 0, tx pathid: 0
Updated on Oct 31 2025 16:47:42 UTC
!--- Prefix 10.0.10.0/24 with community 100:250 received from 10.10.23.3 (R3) is assigned local preference 125
!--- 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 11
Paths: (1 available, best #1, table default)
Advertised to update-groups:
5
Refresh Epoch 1
30
10.10.23.3 from 10.10.23.3 (10.0.10.1)
Origin IGP, metric 0, localpref 130, valid, external, best
Community: 100:300
rx pathid: 0, tx pathid: 0x0
Updated on Oct 31 2025 16:47:42 UTC
!--- 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 13, local router ID is 192.168.50.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
x best-external, a additional-path, c RIB-compressed,
t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path
*>i 10.0.10.0/24 10.10.12.1 0 130 0 30 i
* 10.10.23.3 0 125 0 30 i
*> 10.1.0.0/24 10.10.23.3 0 130 0 30 i
R2#show ip bgp summary
BGP router identifier 192.168.50.1, local AS number 100
BGP table version is 13, main routing table version 13
2 network entries using 496 bytes of memory
3 path entries using 408 bytes of memory
5/2 BGP path/bestpath attribute entries using 1440 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
2 BGP community entries using 48 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2416 total bytes of memory
BGP activity 6/4 prefixes, 18/15 paths, scan interval 60 secs
2 networks peaked at 16:18:51 Oct 31 2025 UTC (03:55:29.816 ago)
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.10.12.1 4 100 255 254 13 0 0 03:42:55 1
10.10.23.3 4 30 233 232 13 0 0 03:27:29 2
Cette sortie de show ip bgp commande sur R2 confirme que le meilleur chemin sélectionné sur R2 est avec une préférence locale (loclPrf) = 130. La route IP vers le préfixe 10.0.10.0/24 préfère que la liaison R1-R3 sorte du système autonome 100 vers le système autonome 30. La show ip route commande sur R1 et R2 confirme cette préférence.
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 03:28:31 ago
Routing Descriptor Blocks:
* 10.10.13.3, from 10.10.13.3, 03:28:31 ago
opaque_ptr 0x7F19642ACC28
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
!--- On R1, the IP route to prefix 10.0.10.0/24 points to next hop 10.10.13.3 which is R3 interface on the R1-R3 link.
R2#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.1 03:29:07 ago
Routing Descriptor Blocks:
* 10.10.12.1, from 10.10.12.1, 03:29:07 ago
opaque_ptr 0x7F14CD5E7D00
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
!--- On R2, IP route to prefix 10.0.10.0/24 points to next hop R1 (10.10.12.1) on its iBGP link
!--- Thus traffic to network 10.0.10.0/24 from R2 exits through R2-R1 and then R1-R3 link from AS 100 towards AS 30
La route IP vers le préfixe 10.1.0.0/24 préfère que la liaison R2-R3 sorte du système autonome 100 vers le système autonome 30. La commande exécutée sur show ip route R1 et R2 confirme cette préférence.
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 03:31:41 ago
Routing Descriptor Blocks:
* 10.10.23.3, from 10.10.23.3, 03:31:41 ago
opaque_ptr 0x7F14CD5E7A90
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
!--- On R2, IP route to prefix 10.1.0.0/24 points to next hop 10.10.23.3 which is R3 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 03:33:03 ago
Routing Descriptor Blocks:
* 10.10.12.2, from 10.10.12.2, 03:33:03 ago
opaque_ptr 0x7F19642AC748
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
!--- 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.
Si une liaison échoue, par exemple la liaison R1-R3, tout le trafic doit suivre la liaison R2-R3. Vous pouvez simuler ce trafic si vous arrêtez la liaison entre R1 et R3.
R1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#interface gigabitEthernet 2
R1(config-if)#shutdown
R1(config-if)#
*Oct 31 21:26:31.423: %BGP-5-NBR_RESET: Neighbor 10.10.13.3 reset (Interface flap)
*Oct 31 21:26:31.461: %BGP-5-ADJCHANGE: neighbor 10.10.13.3 Down Interface flap
*Oct 31 21:26:31.461: %BGP_SESSION-5-ADJCHANGE: neighbor 10.10.13.3 IPv4 Unicast topology base removed from session Interface flap
*Oct 31 21:26:33.373: %LINK-5-CHANGED: Interface GigabitEthernet2, changed state to administratively down
*Oct 31 21:26:34.378: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2, changed state to down
Notez la table de routage IP pour les préfixes 10.0.10.0/24 et 10.1.0.0/24 sur R1 et R2. Utilisez la liaison R2-R3 afin de sortir du système autonome 100.
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:17 ago
Routing Descriptor Blocks:
* 10.10.12.2, from 10.10.12.2, 00:01:17 ago
opaque_ptr 0x7F19642AC880
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
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 04:41:06 ago
Routing Descriptor Blocks:
* 10.10.12.2, from 10.10.12.2, 04:41:06 ago
opaque_ptr 0x7F19642AC748
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
La sortie de la show commande précédente montre que la route vers les préfixes 10.0.10.0/24 et 10.1.0.0/24 pointe vers le tronçon suivant 10.10.12.2 (R2), qui est attendu. Maintenant, jetez un oeil à la table de routage IP sur R2 pour vérifier le tronçon suivant des préfixes 10.0.10.0/24 et 10.1.0.0/24. Le tronçon suivant doit être R3 pour la stratégie configurée afin de fonctionner correctement.
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:34 ago
Routing Descriptor Blocks:
* 10.10.23.3, from 10.10.23.3, 00:04:34 ago
opaque_ptr 0x7F14CD5E7820
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
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 04:44:05 ago
Routing Descriptor Blocks:
* 10.10.23.3, from 10.10.23.3, 04:44:05 ago
opaque_ptr 0x7F14CD5E7A90
Route metric is 0, traffic share count is 1
AS Hops 1
Route tag 30
MPLS label: none
Le tronçon suivant 10.10.23.3 est l'interface GigabitEthernet2 de R3 sur la liaison R2-R3. Ceci confirme que la stratégie configurée fonctionne comme prévu.
Informations connexes