Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment configurer et vérifier la fonctionnalité d'annonce conditionnelle du protocole BGP (Border Gateway Protocol).
Cisco recommande que vous ayez une connaissance de ce sujet :
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
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.
La caractéristique conditionnelle d'annonce de Border Gateway Protocol (BGP) fournit le contrôle supplémentaire de l'annonce de route, selon l'existence d'autres préfixes dans la table BGP.
La fonctionnalité d'annonce conditionnelle BGP décrite dans ce document a été introduite dans le logiciel Cisco IOS® versions 11.1 et 11.2 et est disponible dans les versions ultérieures.
Normalement, les routes sont propagées indépendamment de l'existence d'un chemin différent. La fonctionnalité d'annonce conditionnelle BGP utilise les mots clés non-existing-map et advertise-map de la commande neighbor advertise-map afin de suivre les routes par le préfixe de route. Si un préfixe de route n'est pas présent dans le résultat de la commande non-existing-map, alors la route spécifiée par la commande advertise-map est annoncée. Cette fonctionnalité est utile pour les réseaux multirésidentiels, dans lesquels certains préfixes sont annoncés à l'un des fournisseurs uniquement si les informations de l'autre fournisseur ne sont pas présentes (cela indique une défaillance dans la session d'appairage ou une accessibilité partielle).
Les annonces BGP conditionnelles sont envoyées en plus des annonces normales qu'un routeur BGP envoie à ses homologues.
Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.
Cette section vous fournit des informations pour configurer les fonctionnalités décrites dans ce document.
Remarque : pour obtenir des informations supplémentaires sur les commandes utilisées dans ce document, utilisez l'outil de recherche de commandes Cisco IOS. Seuls les utilisateurs Cisco enregistrés peuvent accéder aux informations et aux outils Cisco internes.
Ce document utilise la configuration réseau indiquée dans le diagramme suivant.
Ici, l'interface de bouclage de R103 est utilisée pour annoncer 192.168.50.0/24 à R102. R102 a un réseau BGP, 172.16.16.0/24, qui est annoncé à ses deux homologues BGP externes (eBGP), R101 et R103, par défaut.
Avec la fonctionnalité d'annonce conditionnelle BGP, vous pouvez maintenant accomplir ces tâches sur R102 :
Si 192.168.50.0/24 existe dans la table BGP de R102, n'annoncez pas le réseau 172.16.16.0/24 à R101.
Si 192.168.50.0/24 n'existe pas dans la table BGP de R102, annoncez le réseau 172.16.16.0/24 à R101.
Avec Cisco IOS 12.2T ou versions ultérieures, le mot clé there-map peut également être utilisé pour accomplir ces tâches :
Si 192.168.50.0/24 existe dans la table BGP de R102, annoncez le réseau 172.16.16.0/24 à R101.
Si 192.168.50.0/24 n'existe pas dans la table BGP de R102, n'annoncez pas le réseau 172.16.16.0/24 à R101.
Ce document utilise les configurations suivantes :
Remarque : l'exemple décrit le mot clé non-existing-map. L'utilisation du mot clé existe-map est similaire à celle-ci.
R102 |
---|
hostname R102 ! interface Loopback0 ip address 172.16.16.1 255.255.255.0 ! interface Serial8/0 ip address 10.10.10.2 255.255.255.0 ! interface Serial9/0 ip address 10.10.20.2 255.255.255.0 ! router bgp 2 bgp log-neighbor-changes network 172.16.16.0 mask 255.255.255.0 network 172.31.130.0 neighbor 10.10.10.1 remote-as 1 neighbor 10.10.10.1 advertise-map ADVERTISE non-exist-map NON-EXIST !--- Advertises the routes matched in the route-map ADVERTISE (172.16.16.0/24) |
R103 |
---|
hostname R103 ! interface Loopback0 ip address 192.168.50.1 255.255.255.0 ! interface Serial9/0 ip address 10.10.20.3 255.255.255.0 ! router bgp 3 bgp log-neighbor-changes network 192.168.50.0 neighbor 10.10.20.2 remote-as 2 ! |
R101 |
---|
hostname R101 ! interface Loopback0 ip address 10.200.200.1 255.255.255.0 ! interface Serial8/0 ip address 10.10.10.1 255.255.255.0 ! router bgp 1 bgp log-neighbor-changes network 10.200.200.0 neighbor 10.10.10.2 remote-as 2 ! |
Cet exemple vérifie à quoi ressemble BGP lorsque 192.168.50.0/24 est dans la table BGP R102 :
Vérifiez d'abord si 192.168.50.0/24 existe dans la table BGP de R102 :
R102#show ip bgp BGP table version is 6, local router ID is 172.16.16.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 *> 172.16.16.0/24 0.0.0.0 0 32768 i *> 172.31.130.0 0.0.0.0 0 32768 i *> 192.168.50.0 10.10.20.3 0 0 3 i *> 10.200.200.0 10.10.10.1 0 0 1 i
Puisque 192.168.50.0/24 se trouve dans la table BGP de R102, R102 ne doit pas annoncer 172.16.16.0/24 à R101.
R102#show ip bgp neighbors 10.10.10.1 advertised-routes BGP table version is 6, local router ID is 172.16.16.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 *> 172.31.130.0 0.0.0.0 0 32768 i *> 192.168.50.0 10.10.20.3 0 0 3 i !--- Note 172.16.16.0/24 is not advertised to neighbor 10.10.10.1. R102#show ip bgp 172.16.16.0 BGP routing table entry for 172.16.16.0/24, version 6 Paths: (1 available, best #1, table Default-IP-Routing-Table) Advertised to non peer-group peers: !--- This is not advertised to R101. 10.10.20.3 Local 0.0.0.0 from 0.0.0.0 (172.16.16.1) Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best
Vérifiez ensuite l'état de l'annonce conditionnelle sur R102 :
R102#show ip bgp neighbors 10.10.10.1 BGP neighbor is 10.10.10.1, remote AS 1, external link BGP version 4, remote router ID 10.200.200.1 BGP state = Established, up for 02:27:07 Last read 00:00:07, hold time is 180, keepalive interval is 60 seconds !--- Output suppressed. For address family: IPv4 Unicast BGP table version 6, neighbor version 6 Index 1, Offset 0, Mask 0x2 Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Withdraw 1 accepted prefixes consume 36 bytes Prefix advertised 3, suppressed 0, withdrawn 1 Number of NLRIs in the update sent: max 1, min 0 !--- Output suppressed.
Le résultat montre que l'annonce conditionnelle est retirée et que les réseaux qui correspondent à la route-map ADVERTISE ne sont pas annoncés à l'homologue 10.10.10.1.
Afin de confirmer que les routes qui correspondent à la route-map ADVERTISE ne sont pas annoncées à R101, vérifiez la table BGP sur R101 :
R101#show ip bgp 172.16.16.0 % Network not in table
Cet exemple montre à quoi ressemble le protocole BGP lorsque le réseau 192.168.50.0/24 n'existe pas dans la table BGP de R102 :
Tout d'abord, arrêtez l'interface de bouclage 0 sur R103 afin que R103 n'annonce plus 192.168.50.0/24 à R102.
R103(config)#interface loopback 0 R103(config-if)#shutdown R103(config-if)# 03:29:36: %LINK-5-CHANGED: Interface Loopback0, changed state to administratively down
Vérifiez ensuite que R102 n'apprend pas 192.168.50.0/24 et que le réseau n'est pas inclus dans la table BGP de R102.
R102#show ip bgp BGP table version is 8, local router ID is 172.16.16.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 *> 172.16.16.0/24 0.0.0.0 0 32768 i *> 172.31.130.0 0.0.0.0 0 32768 i *> 10.200.200.0 10.10.10.1 0 0 1 i !--- Note 192.168.50.0/24 is not present.
Observez le temps nécessaire au démarrage de l'annonce conditionnelle :
R102#debug ip bgp updates *Mar 1 02:39:18.059: BGP(0): 10.10.20.3 rcv UPDATE about 192.168.50.0/24 -- withdrawn *Mar 1 02:39:18.059: BGP(0): no valid path for 192.168.50.0/24 *Mar 1 02:39:18.079: BGP(0): nettable_walker 192.168.50.0/24 no best path *Mar 1 02:39:18.219: BGP(0): 10.10.10.1 computing updates, afi 0, neighbor version 10, table version 11, starting at 0.0.0.0 *Mar 1 02:39:18.219: BGP(0): 10.10.10.1 send unreachable 192.168.50.0/24 *Mar 1 02:39:18.219: BGP(0): 10.10.10.1 send UPDATE 192.168.50.0/24 -- unreachable *Mar 1 02:39:18.219: BGP(0): 10.10.10.1 1 updates enqueued (average=27, maximum=27) *Mar 1 02:39:18.219: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, neighbor version 10, start version 11, throttled to 11 *Mar 1 02:40:04.747: BPG(0): Condition NON-EXIST changes to Advertise *Mar 1 02:40:04.747: BGP(0): net 172.16.16.0/24 matches ADV MAP ADVERTISE: bump version to 12 *Mar 1 02:40:05.187: BGP(0): nettable_walker 172.16.16.0/24 route sourced locally *Mar 1 02:40:05.187: BGP(0): 10.10.10.1 computing updates, afi 0, neighbor version 11, table version 12, starting at 0.0.0.0 *Mar 1 02:40:05.187: BGP(0): 10.10.10.1 172.16.16.0/24 matches advertise map ADVERTISE, state: Advertise *Mar 1 02:40:05.187: BGP(0): 10.10.10.1 send UPDATE (format) 172.16.16.0/24, next 10.10.10.2, metric 0, path *Mar 1 02:40:05.187: BGP(0): 10.10.10.1 1 updates enqueued (average=52, maximum=52) *Mar 1 02:40:05.187: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms, neighbor version 11, start version 12, throttled to 12
Remarque : le résultat du débogage peut différer d'un bit selon la version du logiciel utilisé.
Le processus d'annonce conditionnelle est déclenché par le processus de l'analyseur BGP, qui s'exécute toutes les 60 secondes. Cela signifie que la durée maximale de prise d'effet de l'annonce conditionnelle est de 60 secondes. L'annonce conditionnelle peut prendre effet plus tôt, selon le moment où la route suivie est supprimée de la table BGP et quand l'instance suivante de l'analyseur BGP se produit. Émettez ces commandes sur R102 afin de vérifier l'état d'annonce conditionnelle sur R102 pour le voisin 10.10.10.1 :
R102#show ip bgp neighbors 10.10.10.1 BGP neighbor is 10.10.10.1, remote AS 1, external link BGP version 4, remote router ID 10.200.200.1 BGP state = Established, up for 02:45:27 Last read 00:00:27, hold time is 180, keepalive interval is 60 seconds !--- Output suppressed. For address family: IPv4 Unicast BGP table version 12, neighbor version 12 Index 1, Offset 0, Mask 0x2 Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Advertise 1 accepted prefixes consume 36 bytes Prefix advertised 6, suppressed 0, withdrawn 4 Number of NLRIs in the update sent: max 1, min 0 !--- Output suppressed.
La table BGP et la table de routage R101 ont 172.16.16.0/24, comme indiqué ici :
Remarque : dans cet exemple de sortie, les annonces BGP conditionnelles (réseau 172.16.16.0/24) sont envoyées, en plus des annonces BGP normales (réseau 172.31.130.0/16) qu'un routeur BGP envoie à ses homologues.
R101#show ip bgp BGP table version is 18, local router ID is 10.200.200.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 *> 172.16.16.0/24 10.10.10.2 0 0 2 i *> 172.31.130.0 10.10.10.2 0 0 2 i *> 10.200.200.0 0.0.0.0 0 32768 i
R101#show ip route bgp 172.16.0.0/24 is subnetted, 1 subnets B 172.16.16.0 [20/0] via 10.10.10.2, 00:09:32 B 172.31.130.0/16 [20/0] via 10.10.10.2, 02:48:46
Cet exemple implique la réinstallation du réseau 192.168.50.0/24 dans R102 afin de voir comment le BGP passe de Advertise à Withdraw.
Afin de réinstaller 192.168.50.0/24, émettez la no shutdown commande pour amener l'interface loopback 0 sur R103 à « UP ».
R103(config)#interface loopback 0
R103(config-if)#no shutdown
R103(config-if)#
03:49:06: %LINK-3-UPDOWN: Interface Loopback0,
changed state to up
03:49:07: %LINEPROTO-5-UPDOWN: Line protocol on
Interface Loopback0, changed state to up
!--- R102 kicks in conditional advertisement the moment the
!--- conditional network is received again.
*Mar 1 02:51:42.227: BGP(0): 10.10.20.3 rcvd UPDATE w/ attr:
nexthop 10.10.20.3, origin i, metric 0, path 3
*Mar 1 02:51:42.227: BGP(0): 10.10.20.3 rcvd 192.168.50.0/24
*Mar 1 02:51:42.247: BGP(0): Revise route installing 192.168.50.0/24 ->
10.10.20.3 to main IP table
*Mar 1 02:51:42.379: BGP(0): 10.10.10.1 computing updates, afi 0,
neighbor version 12, table version 13, starting at 0.0.0.0
*Mar 1 02:51:42.379: BGP(0): 10.10.10.1 send UPDATE (format)
192.168.50.0/24, next 10.10.10.2, metric 0, path 3
*Mar 1 02:51:42.379: BGP(0): 10.10.10.1 1 updates enqueued
(average=47, maximum=47)
*Mar 1 02:51:42.379: BGP(0): 10.10.10.1 update run completed, afi 0,
ran for 0ms, neighbor version 12, start version 13, throttled to 13
*Mar 1 02:52:09.159: BPG(0): Condition NON-EXIST changes to Withdraw
*Mar 1 02:52:09.159: BGP(0): net 172.16.16.0/24 matches ADV MAP
ADVERTISE: bump version to 14
*Mar 1 02:52:09.499: BGP(0): nettable_walker 172.16.16.0/24 route
sourced locally
*Mar 1 02:52:11.559: BGP(0): 10.10.10.1 computing updates, afi 0,
neighbor version 13, table version 14, starting at 0.0.0.0
*Mar 1 02:52:11.559: BGP(0): 10.10.10.1 172.16.16.0/24 matches advertise
map ADVERTISE, state: Withdraw
*Mar 1 02:52:11.559: BGP(0): 10.10.10.1 send unreachable 172.16.16.0/24
*Mar 1 02:52:11.559: BGP(0): 10.10.10.1 send UPDATE 172.16.16.0/24 -- unreachable
*Mar 1 02:52:11.559: BGP(0): 10.10.10.1 1 updates enqueued (average=27, maximum=27)
*Mar 1 02:52:11.559: BGP(0): 10.10.10.1 update run completed, afi 0, ran for 0ms,
neighbor version 13, start version 14, throttled to 14
R102 n'annonce plus 172.16.16.0/24 à R101.
R102#show ip bgp neighbors 10.10.10.1 advertised-routes
BGP table version is 14, local router ID is 172.16.16.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
*> 172.31.130.0 0.0.0.0 0 32768 i
*> 192.168.50.0 10.10.20.3 0 0 3 i
!--- Note 172.16.16.0/24 is not advertised.
R102#show ip bgp neighbors 10.10.10.1
BGP neighbor is 10.10.10.1, remote AS 1, external link
BGP version 4, remote router ID 10.200.200.1
BGP state = Established, up for 03:01:32
Last read 00:00:31, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
!--- Output supressed.
For address family: IPv4 Unicast
BGP table version 14, neighbor version 14
Index 1, Offset 0, Mask 0x2
Condition-map NON-EXIST, Advertise-map ADVERTISE, status: Withdraw
1 accepted prefixes consume 36 bytes
Prefix advertised 7, suppressed 0, withdrawn 5
Number of NLRIs in the update sent: max 1, min 0
!--- Output supressed.
Remarque : dans un scénario réel, AS1 et AS3 sont connectés à Internet (BGP global). Par conséquent, le réseau 192.168.50.0/24 pourrait être propagé via un maillage bgp global depuis AS3 vers la table BGP AS1 (R101). AS1, à son tour, pourrait propager le préfixe 192.168.50.0 à R102 (selon l'accord de stratégie entre AS1 et AS2). Si R101 propage les routes AS3 apprises à partir du maillage BGP global vers R102, l'annonce conditionnelle peut échouer si des vérifications supplémentaires ne sont pas placées dans le mappage non existant.
Afin de mieux comprendre pourquoi la publication conditionnelle échoue, considérez ce scénario. AS1 apprend 192.168.50.0/24 à partir du maillage bgp global et annonce 192.168.50.0/24 à AS2 (R102). R102 apprend également le préfixe 192.168.50.0/24 à partir de son appairage direct vers R103 (via la liaison R102 vers R103). Lorsque la liaison directe entre R102 et R103 échoue, vous vous attendez à ce que le préfixe 192.168.50.0/24 cesse d'exister dans la table BGP de R102 et que l'annonce conditionnelle commence et annonce le préfixe 172.16.16.0/24 à R101. Cependant, puisque le préfixe 192.168.50.0/24 continue d'exister dans la table BGP de R102 (appris de R101), l'annonce conditionnelle est rompue parce que le préfixe dans le mappage non existant existe toujours dans la table BGP de R102. Pour s'assurer que le préfixe 192.168.50.0/24 est appris uniquement à partir de la connexion directe à AS3 (R102 à R103) afin que l'annonce conditionnelle démarre, ajoutez une instruction match as_path sous la carte non-existing qui correspond à AS_PATH du préfixe 192.168.50.0/24 appris à partir de la connexion directe (qui dans ce cas est AS 3). L'expression régulière pour ce cas est ^3 . Pour plus d'informations sur les expressions régulières, référez-vous à Utilisation d'expressions régulières dans BGP . Attention, vous ne pouvez pas faire correspondre uniquement le chemin as-path, ni le préfixe. La correspondance as-path ne peut que compléter les critères de correspondance pour le préfixe correspondant. En d'autres termes, vous ne pouvez pas annoncer certains préfixes à un voisin si aucun préfixe n'existe à partir d'un certain numéro de système autonome.
La nouvelle configuration sur R102 est illustrée ici. Les ajouts sont en gras.
R101 |
---|
hostname R102 ! interface Loopback0 ip address 172.16.16.1 255.255.255.0 ! interface Serial8/0 ip address 10.10.10.2 255.255.255.0 ! interface Serial9/0 ip address 10.10.20.2 255.255.255.0 ! router bgp 2 bgp log-neighbor-changes network 172.16.16.0 mask 255.255.255.0 network 172.31.130.0 neighbor 10.10.10.1 remote-as 1 neighbor 10.10.10.1 advertise-map ADVERTISE non-exist-map NON-EXIST neighbor 10.10.20.3 remote-as 3 ! ip route 172.31.130.0 255.255.0.0 Null0 ! ip as-path access-list 1 permit ^3 ! access-list 60 permit 172.16.16.0 0.0.0.255 access-list 65 permit 192.168.50.0 0.0.0.255 ! route-map NON-EXIST permit 10 match ip address 65 match as-path 1 ! route-map ADVERTISE permit 10 match ip address 60 ! |
Informations connexes
Révision | Date de publication | Commentaires |
---|---|---|
4.0 |
26-Jun-2023 |
Recertification |
1.0 |
28-Dec-2001 |
Première publication |