Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Informations générales

Conventions

Configurer

Diagramme du réseau

Configuration de la fonctionnalité d'annonce conditionnelle

Vérifier la configuration

Exemple 1

Exemple 2

Exemple 3

Informations connexes

Introduction

Ce document décrit comment configurer et vérifier la fonctionnalité d'annonce conditionnelle du protocole BGP (Border Gateway Protocol).

Conditions préalables

Exigences

Cisco recommande que vous ayez une connaissance de ce sujet :

- Études de cas BGP

Composants utilisés

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.

Informations générales

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.

Conventions

Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.

Configurer

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.

Diagramme du réseau

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.

Configuration du réseau

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.

Configuration de la fonctionnalité d'annonce conditionnelle

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)

!--- only if the routes matched in route-map NON-EXIST (192.168.50.0/24)

!--- do not exist in the BGP table.

neighbor 10.10.20.3 remote-as 3

!

ip route 172.31.130.0 255.255.0.0 Null0

!

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

!

route-map ADVERTISE permit 10

match ip address 60

!

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

!

Vérifier la configuration

Exemple 1

Cet exemple vérifie à quoi ressemble BGP lorsque 192.168.50.0/24 est dans la table BGP R102 :

Vérifier la configuration

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

Exemple 2

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 :

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

Exemple 3

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.

Comment BGP passe de Annoncer à Retirer

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

- BGP : Foire aux questions

- Examiner les études de cas sur le protocole de passerelle frontalière

- Assistance technique de Cisco et téléchargements