Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Descripción de BGP Route Reflection

Ejemplos de Configuración de Route Reflection

Clúster único con configuración predeterminada

Clúster único con reflexión de cliente a cliente deshabilitada

Reflexión de Rutas entre Sitios y Dentro de Sitios con Dos Clusters

Dos clústeres, sin reflexión entre clientes

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

IdLlMali y prevención de bucles

Información Relacionada

Introducción

Este documento describe diferentes escenarios de reflexión de rutas del Protocolo de gateway fronterizo (BGP) y el uso de varios ID de clúster.

Prerequisites

Requirements

Se asume el conocimiento previo de los conceptos de BGP, especialmente los clústeres y la reflexión de rutas.

Componentes Utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

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 pares iBGP; esto se hace para mantener la prevención de loops. RFC4456 introduce la función de reflexión de rutas 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 no transitivo opcional denominado CLUSTER_LIST agregándole su propio identificador de clúster. Este atributo se utiliza para la prevención de loops: cuando el router recibe una actualización que CLUSTER_LIST contiene el ID de clúster propio del router, esta actualización se descarta.

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

1. Entre clientes y no clientes

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

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

Ejemplos de Configuración de Route Reflection

En esta sección hay algunos escenarios de reflexión del router y ejemplos de configuración respectivos.

Clúster único con configuración predeterminada

Imagen 1

La siguiente configuración se ha realizado 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 no cliente sirve como reflector de ruta para los routers en el siguiente nivel de jerarquía, pero en este ejemplo, simplemente otro PE se utiliza 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#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

Estos resultados muestran que RR recibe el prefijo 172.16.1.1/32 de S1PE1 y lo refleja en el cliente S1PE2 y en el no cliente S2PE1. En este caso en 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 reflexión de cliente a cliente deshabilitada

Imagen 2

La siguiente configuración se ha realizado 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 AS1 está parcialmente mallado: S1PE1 y S1PE2 forman una vecindad iBGP (por ejemplo, se encuentran en el mismo sitio y desea optimizar la forma en que la red procesa las actualizaciones). En este caso, RR tiene la reflexión de cliente a cliente inhabilitada y refleja 172.16.1.1/32 que proviene de S1PE1 solamente al S2PE1 que no es 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

Reflexión de Rutas entre Sitios y Dentro de Sitios con Dos Clusters

Imagen 3

La siguiente configuración se ha realizado 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 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 del Sitio 1 forman el clúster 192.168.1.1, mientras que los dos PE del Sitio 2 forman el clúster 192.168.2.2. S3PE1 no es un cliente. Los PE en el Sitio 1 tienen sesión iBGP directa, la reflexión dentro del clúster está inhabilitada para el clúster 192.168.1.1, pero aún así habilitada 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 en los clientes del clúster 192.168.2.2 y en 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 rutas dentro del sitio para el clúster 192.168.2.2, pero en este caso, los clientes en ese clúster deben tener una malla completa de 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 deshabilitar 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 entre clientes

Imagen 4

La siguiente configuración se ha realizado 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 deshabilitar la reflexión dentro del clúster y entre clústeres. En este caso, sólo se realiza 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 son originados por los clústeres 192.168.1.1 y 192.168.2.2, respectivamente. Ambos prefijos se reflejan sólo en el S3PE1 no cliente. En este caso, todos los clientes deben tener una malla completa. Generalmente, en este escenario en particular, los MCID no tienen sentido (el mismo comportamiento se podría lograr 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 (para un clúster específico o para todos los clústeres) mientras la reflexión entre clústeres esté deshabilitada.

Lista de clústeres y prevención de bucles

Cuando RR refleja un prefijo, agrega el ID de clúster al atributo opcional no transitivo CLUSTER_LIST. Además, 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 IdLlMali 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 un ID de clúster específico configurado, se utiliza un ID de clúster global.

Veamos algunos ejemplos. RR tiene habilitadas todas las formas de reflexión de rutas. 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 están configurados 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#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 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 del clúster está establecido 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 del clúster está establecido en 192.168.2.2.

IdLlMali y prevención de bucles

Si el router recibe la actualización para el prefijo cuya lista de clústeres contiene el ID de clúster propio del router, la actualización se descarta. Si se utilizan IdLlMali, se descartará cualquier actualización que contenga alguno de los Id. de clúster configurados (globales o por vecino).

Información Relacionada

- RFC 4456

- ID de clúster BGP múltiple