Contenido

Introducción

Descripción de BGP Route Reflection

Ejemplos de Configuración de Route Reflection

Clúster único con configuración predeterminada

Clúster único con reflejo cliente a cliente desactivado

Dos clústeres, reflejo de ruta dentro del sitio y entre sitios

Dos clústeres, sin reflexión de cliente a cliente

Lista de clústeres y prevención de bucles

Reflexión entre cliente y no cliente

Reflexión dentro del clúster

Reflexión entre clústeres

MCID y prevención de loops

Referencias

Conversaciones relacionadas de la comunidad de soporte de Cisco

Introducción

En este artículo se describen diferentes escenarios de reflexión de ruta del protocolo de gateway fronterizo (BGP) y uso de varios ID de clúster. Se asume el conocimiento previo de los conceptos BGP, especialmente los clústeres y la reflexión de ruta.

Descripción de BGP Route Reflection

Un altavoz BGP es un router habilitado para BGP. De forma predeterminada, los altavoces BGP no anuncian los prefijos aprendidos de iBGP a los peers iBGP - esto se hace para mantener la prevención de loop. RFC4456 introduce la función de reflexión de ruta que elimina la necesidad de una malla completa entre los altavoces iBGP. Cuando el reflector de ruta refleja un prefijo, crea o modifica un atributo opcional no transitorio denominado CLUSTER_LIST agregándole su propio ID de clúster. Este atributo se utiliza para la prevención de loops: cuando el router recibe actualización que CLUSTER_LIST contiene el ID de clúster del router, se descarta esta actualización.

De forma predeterminada, el ID de clúster se establece en el valor de ID del router BGP, pero se puede establecer en un valor arbitrario de 32 bits. La función Varios ID de clúster (MCID) permite asignar ID de clúster por vecino. Por lo tanto, hay 3 tipos de escenarios de reflexión de ruta.

1. Entre cliente y no cliente

2. Entre clientes en el mismo clúster (dentro del clúster)

3. Entre clientes de diferentes clústeres (entre clústeres)

Ejemplos de Configuración de Route Reflection

A continuación se muestran algunos escenarios de reflexión del router y los respectivos ejemplos de configuración.

Clúster único con configuración predeterminada

Figure 1

Se ha realizado la siguiente configuración en el router RR que actúa como reflector de ruta.

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

En este caso, S1PE1 y S1PE2 son clientes de RR mientras que S2PE1 no es cliente. En los diseños convencionales, el router que no sea cliente será reflector de ruta para los routers en el siguiente nivel de jerarquía, pero en este ejemplo sólo se utiliza otro PE para simplificar.

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#sh 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

Estos resultados muestran que RR recibe el prefijo 172.16.1.1/32 de S1PE1 y lo refleja al cliente S1PE2 y al cliente S2PE1 que no es cliente. En este caso particular, la actualización también se envía de vuelta a S1PE1, pero sucede porque S1PE1 y S1PE2 tienen la misma política de ruteo y, por lo tanto, forman el mismo grupo de actualización.

Clúster único con reflejo cliente a cliente desactivado

Figure 2

Se ha realizado la siguiente configuración en el router RR que actúa como reflector de ruta.

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

Supongamos que el AS1 está parcialmente mallado: S1PE1 y S1PE2 forman un vecindario iBGP (por ejemplo, se encuentran en el mismo sitio y queremos optimizar la forma en que se actualizan los procesos de red). En este caso, RR tiene la reflexión cliente-a-cliente inhabilitada y refleja 172.16.1.1/32 que viene de S1PE1 solamente al S2PE1 no cliente.

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

Dos clústeres, reflejo de ruta dentro del sitio y entre sitios

Figure 3

Se ha realizado la siguiente configuración en el router RR que actúa como reflector de ruta.

RR#sh 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

En este caso, ambos PE en el Sitio 1 forman el clúster 192.168.1.1 mientras que ambos PE en el Sitio 2 forman el clúster 192.168.2.2. S3PE1 no es cliente. Los PE en el Sitio 1 tienen sesión iBGP directa, la reflexión dentro del clúster se inhabilita para el clúster 192.168.1.1, pero aún así se habilita para el clúster 192.168.2.2. La reflexión entre clústeres está habilitada.

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

El prefijo 172.16.1.1/32 recibido de S1PE1 se refleja a los clientes del clúster 192.168.2.2 y a los no clientes. Al mismo tiempo, el prefijo 172.16.4.4/32 recibido de S2PE1 se refleja en todos los clientes y no clientes.

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

También puede inhabilitar la reflexión de ruta dentro del sitio para el clúster 192.168.2.2, pero en este caso los clientes en ese clúster deberían tener una malla completa de las sesiones 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 reflexión dentro del sitio también se puede inhabilitar para todos los clústeres:

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

Dos clústeres, sin reflexión de cliente a cliente

Figure 4

Se ha realizado la siguiente configuración en el router RR que actúa como reflector de ruta.

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

Es posible inhabilitar tanto la reflexión dentro del clúster como la reflexión entre clústeres. En este caso, sólo se realizará la reflexión entre clientes y no clientes.

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

Los prefijos 172.16.1.1/32 y 172.16.4.4/32 se originan por los clústeres 192.168.1.1 y 192.168.2.2, respectivamente. Ambos prefijos se reflejan solamente en el S3PE1 que no es cliente. En este caso, todos los clientes deben estar completamente mallados. Generalmente, en este escenario en particular, los MCID no tienen sentido realmente (el mismo comportamiento podría lograrse con un solo clúster), pero todavía se pueden utilizar si desea tener diferentes listas de clústeres para las rutas de diferentes vecinos.

Nota: No es posible habilitar la reflexión dentro del clúster (ya sea para un clúster específico o para todos los clústeres) mientras se inhabilita la reflexión entre clústeres.

Lista de clústeres y prevención de bucles

Cuando RR refleja un prefijo, agrega el ID de clúster al atributo opcional no transitorio CLUSTER_LIST. También establece el atributo opcional no transitivo ORIGINATOR_ID en el ID de router del par, que ha anunciado el prefijo al RR.

Cuando se utilizan MCID y RR refleja el prefijo, utiliza el ID de clúster configurado para el par que ha anunciado ese prefijo al RR. Si ese par no tiene el ID de clúster específico configurado, se utiliza el ID de clúster global.

Veamos algunos ejemplos. RR tiene habilitadas todas las formas de reflexión de ruta. El ID de clúster global es 172.16.3.3, los ID de clúster 192.168.1.1 y 192.168.2.2 se establecen en PE en el sitio 1 y el sitio 2 respectivamente (consulte el diagrama de topología anterior).

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

Reflexión entre cliente y no cliente

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

El S2PE3 no cliente recibe el prefijo 172.16.1.1/32 originado por el clúster 192.168.1.1 - el ID de clúster 192.168.1.1 se agrega a la lista de clústeres. También recibe el prefijo 172.16.4.4/32 originado por el clúster 192.168.2.2 - el ID de clúster 192.168.2.2 se agrega a la lista de clústeres.

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

El cliente S1PE1 recibe el prefijo 172.16.6.6/32 originado por un no cliente - el ID de clúster global 172.16.3.3 se agrega a la lista de clústeres.

Reflexión dentro del clúster

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 pertenece al clúster 192.168.1.1 y recibe el prefijo 172.16.1.1/32 originado por S1PE1 que también pertenece al clúster 192.168.1.1. El ID de clúster 192.168.1.1 se agrega a la lista de clústeres.

Reflexión entre clústeres

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#sh 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 pertenece al clúster 192.168.2.2 y recibe el prefijo 172.16.1.1/32 originado por el clúster 192.168.1.1 - el ID de clúster se establece en 192.168.1.1.

S1PE1 pertenece al clúster 192.168.1.1 y recibe el prefijo 172.16.4.4/32 originado por el clúster 192.168.2.2 - el ID de clúster se establece en 192.168.2.2.

MCID y prevención de loops

Si el router recibe la actualización para el prefijo que contiene el ID de clúster del router, la actualización se descarta. Si se utilizan MCID, se descartaría la actualización que contiene cualquiera de los ID de clúster configurados (global o por vecino).

Referencias

RFC 4456

ID de clúster BGP-múltiple