Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Descrição da Reflexão de Rota BGP

Exemplos de configuração de reflexão de rota

Cluster único com configurações padrão

Cluster único com reflexão de cliente para cliente desativada

Dois clusters, reflexão de rota entre sites e dentro de cada site

Dois clusters, sem reflexão de cliente para cliente

Lista de Clusters e Prevenção de Loop

Reflexão entre cliente e não cliente

Reflexão Intracluster

Reflexão entre clusters

MCIDs e prevenção de loop

Informações Relacionadas

Introdução

Este documento descreve diferentes cenários de reflexão de rota BGP (Border Gateway Protocol) e uso de várias IDs de cluster.

Pré-requisitos

Requisitos

O conhecimento prévio dos conceitos de BGP, especialmente clusters e reflexão de rota, é assumido.

Componentes Utilizados

Este documento não se restringe a versões de software e hardware específicas.

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Descrição da Reflexão de Rota BGP

Um alto-falante BGP é um roteador ativado por BGP. Por padrão, os autofalantes de BGP não anunciam prefixos aprendidos de iBGP para peers de iBGP - isso é feito para manter a prevenção de loop. O RFC4456 apresenta o recurso de reflexão de rota que elimina a necessidade de malha completa entre os alto-falantes iBGP. Quando o refletor de rota reflete um prefixo, ele cria/modifica um atributo não transitivo opcional chamado CLUSTER_LIST adicionando sua própria ID de cluster a ele. Este atributo é usado para prevenção de loop: quando o roteador recebe uma atualização de CLUSTER_LIST que contém o próprio ID de cluster do roteador, essa atualização é descartada.

Por padrão, o ID do cluster é definido para o valor do ID do roteador BGP, mas pode ser definido para um valor arbitrário de 32 bits. O recurso MCID (Multiple cluster IDs, IDs de cluster múltiplos) permite atribuir IDs de cluster por vizinho. Assim, há 3 tipos de cenários de reflexão de rota.

1. Entre cliente e não cliente

2. Entre clientes no mesmo cluster (dentro do cluster)

3. Entre clientes em clusters diferentes (entre clusters)

Exemplos de configuração de reflexão de rota

Nesta seção, há alguns cenários de reflexão do roteador e exemplos de configuração respectivos.

Cluster único com configurações padrão

Imagem 1

A próxima configuração foi feita no roteador RR que atua como refletor de rota.

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

Nesse caso, S1PE1 e S1PE2 são clientes de RR, enquanto S2PE1 não é cliente. Em designs convencionais, o roteador não cliente serve como refletor de rota para roteadores no próximo nível de hierarquia, mas neste exemplo, apenas outro PE é usado 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

Essas saídas mostram que o RR recebe o prefixo 172.16.1.1/32 do S1PE1 e o reflete no cliente S1PE2 e no não cliente S2PE1. Nesse caso específico, a atualização também é enviada de volta ao S1PE1, mas isso acontece porque o S1PE1 e o S1PE2 têm a mesma política de roteamento e, portanto, formam o mesmo grupo de atualização.

Cluster único com reflexão de cliente para cliente desativada

Imagem 2

A próxima configuração foi feita no roteador RR que atua como refletor de rota.

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

Vamos supor que o AS1 está parcialmente engrenado: S1PE1 e S1PE2 formam vizinhança iBGP (por exemplo, eles estão localizados no mesmo site e você deseja otimizar a forma como a rede processa atualizações). Nesse caso, o RR tem a reflexão cliente-cliente desabilitada e reflete 172.16.1.1/32 vindo do S1PE1 apenas para o S2PE1 não 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

Dois clusters, reflexão de rota entre sites e dentro de cada site

Imagem 3

A próxima configuração foi feita no roteador RR que atua como refletor de rota.

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

Nesse caso, ambos os PEs no local 1 formam o cluster 192.168.1.1, enquanto ambos os PEs no local 2 formam o cluster 192.168.2.2. O S3PE1 não é um cliente. Os PEs no Site 1 têm sessão iBGP direta, a reflexão dentro do cluster está desabilitada para o cluster 192.168.1.1, mas ainda habilitada para o cluster 192.168.2.2. A reflexão entre clusters 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

O prefixo 172.16.1.1/32 recebido do S1PE1 é refletido para os clientes no cluster 192.168.2.2 e para os não clientes. Ao mesmo tempo, o prefixo 172.16.4.4/32 recebido do S2PE1 é refletido para todos os clientes e não 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

Você também pode desabilitar a reflexão de rota dentro do site para o cluster 192.168.2.2, mas nesse caso, os clientes nesse cluster devem ter uma malha completa de sessões 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

A reflexão dentro do local também pode ser desativada para todos os clusters:

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

Dois clusters, sem reflexão de cliente para cliente

Imagem 4

A próxima configuração foi feita no roteador RR que atua como refletor de rota.

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

É possível desativar a reflexão dentro do cluster e entre clusters. Neste caso, apenas a reflexão entre clientes e não clientes é realizada.

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

Os prefixos 172.16.1.1/32 e 172.16.4.4/32 são originados pelos clusters 192.168.1.1 e 192.168.2.2, respectivamente. Esses dois prefixos são refletidos apenas para o S3PE1 que não é cliente. Nesse caso, todos os clientes devem ser totalmente combinados. Geralmente, nesse cenário específico, os MCIDs não fazem sentido (o mesmo comportamento poderia ser obtido com um único cluster), mas eles ainda podem ser usados se você quiser ter listas de clusters diferentes para rotas de vizinhos diferentes.

Note: Não é possível habilitar a reflexão dentro do cluster (para cluster específico ou para todos os clusters) enquanto a reflexão entre clusters estiver desabilitada.

Lista de Clusters e Prevenção de Loop

Quando o RR reflete um prefixo, ele adiciona o ID do cluster ao atributo não transitivo opcional CLUSTER_LIST. Além disso, ele define o atributo opcional não transitivo ORIGINATOR_ID para o ID do roteador do peer, que anunciou o prefixo para o RR.

Quando os MCIDs são usados e o RR reflete o prefixo, ele usa o ID de cluster configurado para o peer que anunciou esse prefixo ao RR. Se esse peer não tiver uma ID de cluster específica configurada, a ID de cluster global será usada.

Vejamos alguns exemplos. O RR tem todas as formas de reflexão de rota habilitadas. O ID de cluster global é 172.16.3.3, os IDs de cluster 192.168.1.1 e 192.168.2.2 são definidos como PEs no local 1 e no local 2, respectivamente (consulte o diagrama de topologia acima).

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

Reflexão entre cliente e não 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

O S2PE3 não cliente recebe o prefixo 172.16.1.1/32 originado pelo cluster 192.168.1.1 - a ID de cluster 192.168.1.1 é adicionada à lista de clusters. Ele também recebe o prefixo 172.16.4.4/32 originado pelo cluster 192.168.2.2 - o ID de cluster 192.168.2.2 é adicionado à lista de 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

O cliente S1PE1 recebe o prefixo 172.16.6.6/32 originado por um não cliente - o ID de cluster global 172.16.3.3 é adicionado à lista de clusters.

Reflexão Intracluster

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

O S1PE2 pertence ao cluster 192.168.1.1 e recebe o prefixo 172.16.1.1/32 originado pelo S1PE1, que também pertence ao cluster 192.168.1.1. O ID de Cluster 192.168.1.1 é adicionado à lista de clusters.

Reflexão entre 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 pertence ao cluster 192.168.2.2 e recebe o prefixo 172.16.1.1/32 originado pelo cluster 192.168.1.1 - o ID do cluster é definido como 192.168.1.1.

S1PE1 pertence ao cluster 192.168.1.1 e recebe o prefixo 172.16.4.4/32 originado pelo cluster 192.168.2.2 - o ID do cluster é definido como 192.168.2.2.

MCIDs e prevenção de loop

Se o roteador receber a atualização para o prefixo cuja lista de clusters contém o próprio ID de cluster do roteador, a atualização será descartada. Se os MCIDs forem usados, a atualização que contiver qualquer ID de cluster configurado (global ou por vizinho) será descartada.

Informações Relacionadas

- RFC 4456

- IDs de cluster múltiplos de BGP