Table des matières

Introduction

Conditions préalables

Exigences

Composants utilisés

Description de la réflexion de route BGP

Exemples de configuration de réflexion de route

Cluster unique avec paramètres par défaut

Cluster unique avec réflexion client à client désactivée

Deux clusters, réflexion de routage intra-site et inter-site

Deux clusters, pas de réflexion client à client

Prévention des boucles et des listes de clusters

Réflexion entre le client et le non-client

Réflexion intra-grappe

Réflexion entre les clusters

MCID et prévention des boucles

Informations connexes

Introduction

Ce document décrit différents scénarios de réflexion de route BGP (Border Gateway Protocol) et d'utilisation de plusieurs ID de cluster.

Conditions préalables

Exigences

Une connaissance préalable des concepts BGP, en particulier des clusters et de la réflexion de route, est supposée.

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.

Description de la réflexion de route BGP

Un haut-parleur BGP est un routeur compatible BGP. Par défaut, les haut-parleurs BGP n'annoncent pas les préfixes appris par iBGP aux homologues iBGP - ceci est fait pour maintenir la prévention des boucles. RFC4456 introduit la fonctionnalité de réflexion de route qui supprime le besoin d'un maillage complet entre les haut-parleurs iBGP. Lorsque le réflecteur de route reflète un préfixe, il crée/modifie un attribut non transitif facultatif appelé CLUSTER_LIST en lui ajoutant son propre ID de cluster. Cet attribut est utilisé pour la prévention des boucles : lorsque le routeur reçoit une mise à jour indiquant CLUSTER_LIST qui contient l'ID de cluster propre au routeur, cette mise à jour est ignorée.

Par défaut, l'ID de cluster est défini sur la valeur d'ID de routeur BGP, mais peut être défini sur une valeur arbitraire de 32 bits. La fonction MCID (Multiple Cluster IDs) vous permet d'attribuer des ID de cluster par voisin. Ainsi, il existe 3 types de scénarios de réflexion de route.

1. Entre client et non-client

2. Entre les clients du même cluster (intra-cluster)

3. Entre les clients de différents clusters (inter-clusters)

Exemples de configuration de réflexion de route

Dans cette section, vous trouverez des scénarios de réflexion de routeur et des exemples de configuration correspondants.

Cluster unique avec paramètres par défaut

Image 1

La configuration suivante a été effectuée sur le routeur RR qui joue le rôle de réflecteur de route.

RR#show run | sec bgp

router bgp 1

bgp log-neighbor-changes

neighbor 10.0.10.2 remote-as 1

neighbor 10.0.10.2 route-reflector-client

neighbor 10.0.20.2 remote-as 1

neighbor 10.0.20.2 route-reflector-client

neighbor 10.0.40.2 remote-as 1

Dans ce cas, S1PE1 et S1PE2 sont des clients de RR alors que S2PE1 n’est pas un client. Dans les conceptions classiques, le routeur non client sert de réflecteur de route pour les routeurs du niveau hiérarchique suivant, mais dans cet exemple, seul un autre PE est utilisé pour simplifier.

RR#show ip bgp cluster-ids

Global cluster-id: 172.16.3.3 (configured: 0.0.0.0)

BGP client-to-client reflection:         Configured    Used

all (inter-cluster and intra-cluster): ENABLED

intra-cluster:                         ENABLED       ENABLED

List of cluster-ids:

Cluster-id     #-neighbors C2C-rfl-CFG C2C-rfl-USE

RR#show ip bgp 172.16.1.1

BGP routing table entry for 172.16.1.1/32, version 2

Paths: (1 available, best #1, table default)

Advertised to update-groups:

1          2

Refresh Epoch 2

Local, (Received from a RR-client)

10.0.10.2 from 10.0.10.2 (172.16.1.1)

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

rx pathid: 0, tx pathid: 0x0

RR#show ip bgp update-group 1

BGP version 4 update-group 1, internal, Address Family: IPv4 Unicast

BGP Update version : 4/0, messages 0

Topology: global, highest version: 4, tail marker: 4

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 2, replicated 2, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 1, min 0

Minimum time between advertisement runs is 0 seconds

Has 1 member:

10.0.40.2

RR#show ip bgp update-group 2

BGP version 4 update-group 2, internal, Address Family: IPv4 Unicast

BGP Update version : 4/0, messages 0

Route-Reflector Client

Topology: global, highest version: 4, tail marker: 4

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 3, replicated 6, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 1, min 0

Minimum time between advertisement runs is 0 seconds

Has 2 members:

10.0.10.2        10.0.20.2

Ces résultats montrent que RR reçoit le préfixe 172.16.1.1/32 de S1PE1 et le reflète au client S1PE2 et au non-client S2PE1. Dans ce cas particulier, la mise à jour est également renvoyée à S1PE1, mais elle se produit parce que S1PE1 et S1PE2 ont la même stratégie de routage et, par conséquent, forment le même groupe de mise à jour.

Cluster unique avec réflexion client à client désactivée

Image 2

La configuration suivante a été effectuée sur le routeur RR qui joue le rôle de réflecteur de route.

RR#show run | sec bgp

router bgp 1

no bgp client-to-client reflection

bgp log-neighbor-changes

neighbor 10.0.10.2 remote-as 1

neighbor 10.0.10.2 route-reflector-client

neighbor 10.0.20.2 remote-as 1

neighbor 10.0.20.2 route-reflector-client

neighbor 10.0.40.2 remote-as 1

Supposons que AS1 est partiellement maillé : S1PE1 et S1PE2 forment un voisinage iBGP (par exemple, ils sont situés sur le même site et vous voulez optimiser la façon dont le réseau traite les mises à jour). Dans ce cas, la réflexion client-à-client est désactivée pour le RR et la valeur 172.16.1.1/32 provient de S1PE1 uniquement vers le S2PE1 non client.

RR#show ip bgp cluster-ids

Global cluster-id: 172.16.3.3 (configured: 0.0.0.0)

BGP client-to-client reflection:         Configured    Used

all (inter-cluster and intra-cluster): DISABLED

intra-cluster:                         ENABLED       DISABLED

List of cluster-ids:

Cluster-id     #-neighbors C2C-rfl-CFG C2C-rfl-USE

RR#show ip bgp 172.16.1.1

BGP routing table entry for 172.16.1.1/32, version 5

Paths: (1 available, best #1, table default, RIB-failure(17))

Advertised to update-groups:

1

Refresh Epoch 2

Local, (Received from a RR-client)

10.0.10.2 from 10.0.10.2 (172.16.1.1)

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

rx pathid: 0, tx pathid: 0x0

RR#show ip bgp update-group 1

BGP version 4 update-group 1, internal, Address Family: IPv4 Unicast

BGP Update version : 7/0, messages 0

Topology: global, highest version: 7, tail marker: 7

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 4, replicated 4, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 1, min 0

Minimum time between advertisement runs is 0 seconds

Has 1 member:

10.0.40.2

Deux clusters, réflexion de routage intra-site et inter-site

Image 3

La configuration suivante a été effectuée sur le routeur RR qui joue le rôle de réflecteur de route.

RR#show run | sec bgp

router bgp 1

no bgp client-to-client reflection intra-cluster cluster-id 192.168.1.1

bgp log-neighbor-changes

neighbor 10.0.10.2 remote-as 1

neighbor 10.0.10.2 cluster-id 192.168.1.1

neighbor 10.0.10.2 route-reflector-client

neighbor 10.0.20.2 remote-as 1

neighbor 10.0.20.2 cluster-id 192.168.1.1

neighbor 10.0.20.2 route-reflector-client

neighbor 10.0.40.2 remote-as 1

neighbor 10.0.40.2 cluster-id 192.168.2.2

neighbor 10.0.40.2 route-reflector-client

neighbor 10.0.50.2 remote-as 1

neighbor 10.0.50.2 cluster-id 192.168.2.2

neighbor 10.0.50.2 route-reflector-client

neighbor 10.0.70.2 remote-as 1

Dans ce cas, les deux PE sur le site 1 forment le cluster 192.168.1.1 tandis que les deux PE sur le site 2 forment le cluster 192.168.2.2. S3PE1 est un non-client. Les PE sur le site 1 ont une session iBGP directe, la réflexion intra-cluster est désactivée pour le cluster 192.168.1.1, mais toujours activée pour le cluster 192.168.2.2. La réflexion inter-cluster est activée.

RR#show ip bgp cluster-ids

Global cluster-id: 172.16.3.3 (configured: 0.0.0.0)

BGP client-to-client reflection:         Configured    Used

all (inter-cluster and intra-cluster): ENABLED

intra-cluster:                         ENABLED       ENABLED

List of cluster-ids:

Cluster-id     #-neighbors C2C-rfl-CFG C2C-rfl-USE

192.168.1.1                2 DISABLED    DISABLED

192.168.2.2                2 ENABLED     ENABLED

RR#show ip bgp 172.16.1.1

BGP routing table entry for 172.16.1.1/32, version 5

Paths: (1 available, best #1, table default, RIB-failure(17))

Advertised to update-groups:

3          5

Refresh Epoch 9

Local, (Received from a RR-client)

10.0.10.2 from 10.0.10.2 (172.16.1.1)

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

rx pathid: 0, tx pathid: 0x0

RR#show ip bgp update-group 3

BGP version 4 update-group 3, internal, Address Family: IPv4 Unicast

BGP Update version : 11/0, messages 0

Topology: global, highest version: 11, tail marker: 11

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 20, replicated 20, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 1, min 0

Minimum time between advertisement runs is 0 seconds

Has 1 member:

10.0.70.2

RR#show ip bgp update-group 5

BGP version 4 update-group 5, internal, Address Family: IPv4 Unicast

BGP Update version : 11/0, messages 0

Route-Reflector Client

Configured with cluster-id 192.168.2.2

Topology: global, highest version: 11, tail marker: 11

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 22, replicated 34, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 3, min 0

Minimum time between advertisement runs is 0 seconds

Has 2 members:

10.0.40.2        10.0.50.2

Le préfixe 172.16.1.1/32 reçu de S1PE1 est reflété aux clients dans le cluster 192.168.2.2 et aux non-clients. Dans le même temps, le préfixe 172.16.4.4/32 reçu de S2PE1 est reflété à tous les clients et non-clients.

RR#show ip bgp 172.16.4.4

BGP routing table entry for 172.16.4.4/32, version 9

Paths: (1 available, best #1, table default, RIB-failure(17))

Advertised to update-groups:

3          4          5

Refresh Epoch 6

Local, (Received from a RR-client)

10.0.40.2 from 10.0.40.2 (172.16.4.4)

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

rx pathid: 0, tx pathid: 0x0

RR#show ip bgp update-group 3

BGP version 4 update-group 3, internal, Address Family: IPv4 Unicast

BGP Update version : 11/0, messages 0

Topology: global, highest version: 11, tail marker: 11

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 20, replicated 20, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 1, min 0

Minimum time between advertisement runs is 0 seconds

Has 1 member:

10.0.70.2

RR#show ip bgp update-group 4

BGP version 4 update-group 4, internal, Address Family: IPv4 Unicast

BGP Update version : 11/0, messages 0

Route-Reflector Client

Configured with cluster-id 192.168.1.1

Topology: global, highest version: 11, tail marker: 11

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 26, replicated 47, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 3, min 0

Minimum time between advertisement runs is 0 seconds

Has 2 members:

10.0.10.2        10.0.20.2

RR#show ip bgp update-group 5

BGP version 4 update-group 5, internal, Address Family: IPv4 Unicast

BGP Update version : 11/0, messages 0

Route-Reflector Client

Configured with cluster-id 192.168.2.2

Topology: global, highest version: 11, tail marker: 11

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 22, replicated 34, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 3, min 0

Minimum time between advertisement runs is 0 seconds

Has 2 members:

10.0.40.2        10.0.50.2

Vous pouvez également désactiver la réflexion de route intra-site pour le cluster 192.168.2.2, mais dans ce cas, les clients de ce cluster doivent avoir un maillage complet des sessions iBGP :

RR(config-router)#no bgp client-to-client reflection intra-cluster cluster-id 192.168.2.2

RR#sh ip bgp cluster-ids

Global cluster-id: 172.16.3.3 (configured: 0.0.0.0)

BGP client-to-client reflection:         Configured    Used

all (inter-cluster and intra-cluster): ENABLED

intra-cluster:                         ENABLED       ENABLED

List of cluster-ids:

Cluster-id     #-neighbors C2C-rfl-CFG C2C-rfl-USE

192.168.1.1                2 DISABLED    DISABLED

192.168.2.2                2 DISABLED    DISABLED

La réflexion intra-site peut également être désactivée pour tous les clusters :

RR(config-router)#no bgp client-to-client reflection intra-cluster cluster-id any

Deux clusters, pas de réflexion client à client

Image 4

La configuration suivante a été effectuée sur le routeur RR qui joue le rôle de réflecteur de route.

RR#show run | sec bgp

router bgp 1

no bgp client-to-client reflection

bgp log-neighbor-changes

neighbor 10.0.10.2 remote-as 1

neighbor 10.0.10.2 cluster-id 192.168.1.1

neighbor 10.0.10.2 route-reflector-client

neighbor 10.0.20.2 remote-as 1

neighbor 10.0.20.2 cluster-id 192.168.1.1

neighbor 10.0.20.2 route-reflector-client

neighbor 10.0.40.2 remote-as 1

neighbor 10.0.40.2 cluster-id 192.168.2.2

neighbor 10.0.40.2 route-reflector-client

neighbor 10.0.50.2 remote-as 1

neighbor 10.0.50.2 cluster-id 192.168.2.2

neighbor 10.0.50.2 route-reflector-client

neighbor 10.0.70.2 remote-as 1

Il est possible de désactiver la réflexion intra-cluster et inter-cluster. Dans ce cas, seule la réflexion entre clients et non-clients est effectuée.

RR#show ip bgp cluster-ids

Global cluster-id: 172.16.3.3 (configured: 0.0.0.0)

BGP client-to-client reflection:         Configured    Used

all (inter-cluster and intra-cluster): DISABLED

intra-cluster:                         ENABLED       DISABLED

List of cluster-ids:

Cluster-id     #-neighbors C2C-rfl-CFG C2C-rfl-USE

192.168.1.1                2 ENABLED     DISABLED

192.168.2.2                2 ENABLED     DISABLED

RR#show ip bgp 172.16.1.1

BGP routing table entry for 172.16.1.1/32, version 5

Paths: (1 available, best #1, table default, RIB-failure(17))

Advertised to update-groups:

3

Refresh Epoch 9

Local, (Received from a RR-client)

10.0.10.2 from 10.0.10.2 (172.16.1.1)

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

rx pathid: 0, tx pathid: 0x0

RR#show ip bgp 172.16.4.4

BGP routing table entry for 172.16.4.4/32, version 9

Paths: (1 available, best #1, table default, RIB-failure(17))

Advertised to update-groups:

3

Refresh Epoch 6

Local, (Received from a RR-client)

10.0.40.2 from 10.0.40.2 (172.16.4.4)

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

rx pathid: 0, tx pathid: 0x0

RR#show ip bgp update-group 3

BGP version 4 update-group 3, internal, Address Family: IPv4 Unicast

BGP Update version : 11/0, messages 0

Topology: global, highest version: 11, tail marker: 11

Format state: Current working (OK, last not in list)

Refresh blocked (not in list, last not in list)

Update messages formatted 20, replicated 20, current 0, refresh 0, limit 1000

Number of NLRIs in the update sent: max 1, min 0

Minimum time between advertisement runs is 0 seconds

Has 1 member:

10.0.70.2

Les préfixes 172.16.1.1/32 et 172.16.4.4/32 proviennent respectivement des clusters 192.168.1.1 et 192.168.2.2. Ces deux préfixes sont reflétés uniquement vers le S3PE1 non client. Dans ce cas, tous les clients doivent être entièrement maillés. En général, dans ce scénario particulier, les MCID n'ont pas vraiment de sens (le même comportement peut être obtenu avec un seul cluster), mais ils peuvent toujours être utilisés si vous voulez avoir des listes de clusters différentes pour les routes de différents voisins.

Remarque : Il n'est pas possible d'activer la réflexion intra-grappe (pour une grappe spécifique ou pour toutes les grappes) tant que la réflexion inter-grappe est désactivée.

Prévention des boucles et des listes de clusters

Lorsque RR reflète un préfixe, il ajoute l'ID de cluster à l'attribut non transitif facultatif CLUSTER_LIST. En outre, il définit l'attribut non transitif facultatif ORIGINATOR_ID sur l'ID de routeur de l'homologue, qui a annoncé le préfixe au RR.

Lorsque des MCID sont utilisés et que le RR reflète le préfixe, il utilise l'ID de cluster configuré pour l'homologue qui a annoncé ce préfixe au RR. Si aucun ID de cluster spécifique n'est configuré pour cet homologue, l'ID de cluster global est utilisé.

Voyons maintenant quelques exemples. Toutes les formes de réflexion de route sont activées pour RR. L'ID de cluster global est 172.16.3.3, les ID de cluster 192.168.1.1 et 192.168.2.2 sont définis sur les PE sur le site 1 et le site 2 respectivement (reportez-vous au schéma de topologie ci-dessus).

RR#show ip bgp cluster-ids

Global cluster-id: 172.16.3.3 (configured: 0.0.0.0)

BGP client-to-client reflection:         Configured    Used

all (inter-cluster and intra-cluster): ENABLED

intra-cluster:                         ENABLED       ENABLED

List of cluster-ids:

Cluster-id     #-neighbors C2C-rfl-CFG C2C-rfl-USE

192.168.1.1                2 ENABLED     ENABLED

192.168.2.2                2 ENABLED     ENABLED

Réflexion entre le client et le non-client

S2PE3#show ip bgp 172.16.1.1

BGP routing table entry for 172.16.1.1/32, version 2

Paths: (1 available, best #1, table default, RIB-failure(17))

Not advertised to any peer

Refresh Epoch 1

Local

10.0.10.2 (metric 20) from 10.0.70.1 (172.16.3.3)

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

Originator: 172.16.1.1, Cluster list: 192.168.1.1

rx pathid: 0, tx pathid: 0x0

S2PE3#show ip bgp 172.16.4.4

BGP routing table entry for 172.16.4.4/32, version 4

Paths: (1 available, best #1, table default, RIB-failure(17))

Not advertised to any peer

Refresh Epoch 1

Local

10.0.40.2 (metric 20) from 10.0.70.1 (172.16.3.3)

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

Originator: 172.16.4.4, Cluster list: 192.168.2.2

rx pathid: 0, tx pathid: 0x0

Le S2PE3 non client reçoit le préfixe 172.16.1.1/32 provenant du cluster 192.168.1.1 - l'ID de cluster 192.168.1.1 est ajouté à la liste des clusters. Il reçoit également le préfixe 172.16.4.4/32 provenant du cluster 192.168.2.2. L'ID de cluster 192.168.2.2 est ajouté à la liste des clusters.

S1PE1#show ip bgp 172.16.6.6

BGP routing table entry for 172.16.6.6/32, version 5

Paths: (1 available, best #1, table default, RIB-failure(17))

Not advertised to any peer

Refresh Epoch 1

Local

10.0.70.2 (metric 20) from 10.0.10.1 (172.16.3.3)

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

Originator: 172.16.6.6, Cluster list: 172.16.3.3

rx pathid: 0, tx pathid: 0x0

Le client S1PE1 reçoit le préfixe 172.16.6.6/32 provenant d’un non-client : l’ID de cluster global 172.16.3.3 est ajouté à la liste des clusters.

Réflexion intra-grappe

S1PE2#show ip bgp 172.16.1.1/32

BGP routing table entry for 172.16.1.1/32, version 8

Paths: (1 available, best #1, table default, RIB-failure(17))

Not advertised to any peer

Refresh Epoch 1

Local

10.0.10.2 (metric 20) from 10.0.20.1 (172.16.3.3)

Origin IGP, metric 0, localpref 100, valid, internal

Originator: 172.16.1.1, Cluster list: 192.168.1.1

rx pathid: 0, tx pathid: 0

S1PE2 appartient à la grappe 192.168.1.1 et reçoit le préfixe 172.16.1.1/32 provenant de S1PE1 qui appartient également à la grappe 192.168.1.1. L’ID de grappe 192.168.1.1 est ajouté à la liste des grappes.

Réflexion entre les clusters

S2PE1#show ip bgp 172.16.1.1/32

BGP routing table entry for 172.16.1.1/32, version 4

Paths: (1 available, best #1, table default, RIB-failure(17))

Not advertised to any peer

Refresh Epoch 1

Local

10.0.10.2 (metric 20) from 10.0.40.1 (172.16.3.3)

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

Originator: 172.16.1.1, Cluster list: 192.168.1.1

rx pathid: 0, tx pathid: 0x0

S1PE1#show ip bgp 172.16.4.4/32

BGP routing table entry for 172.16.4.4/32, version 4

Paths: (1 available, best #1, table default, RIB-failure(17))

Not advertised to any peer

Refresh Epoch 1

Local

10.0.40.2 (metric 20) from 10.0.10.1 (172.16.3.3)

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

Originator: 172.16.4.4, Cluster list: 192.168.2.2

rx pathid: 0, tx pathid: 0x0

S2PE1 appartient au cluster 192.168.2.2 et reçoit le préfixe 172.16.1.1/32 provenant du cluster 192.168.1.1 - l'ID de cluster est défini sur 192.168.1.1.

S1PE1 appartient au cluster 192.168.1.1 et reçoit le préfixe 172.16.4.4/32 provenant du cluster 192.168.2.2 - l'ID de cluster est défini sur 192.168.2.2.

MCID et prévention des boucles

Si le routeur reçoit la mise à jour pour le préfixe dont la liste de clusters contient l'ID de cluster propre au routeur, la mise à jour est ignorée. Si des MCID sont utilisés, la mise à jour qui contient l'un des ID de cluster configurés (global ou par voisin) sera ignorée.

Informations connexes

- RFC 4456

- BGP - ID de cluster multiples