Contents

Introdução

Pré-requisitos

Requisitos

Componentes Utilizados

Informações de Apoio

Conventions

Configurar

Diagrama de Rede

Configurar o Recurso de Anúncio Condicional

Verificar a configuração

Exemplo 1

Exemplo 2

Exemplo 3

Informações Relacionadas

Introdução

Este documento descreve como configurar e verificar o recurso de anúncio condicional do Border Gateway Protocol (BGP).

Pré-requisitos

Requisitos

A Cisco recomenda ter conhecimento deste tópico:

- Estudos de caso de BGP

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.

Informações de Apoio

A característica de anúncio condicional do Border Gateway Protocol (BGP) fornece um controle adicional do anúncio da rota dependendo da existência de outros prefixos na tabela de BGP.

O recurso de anúncio condicional BGP descrito neste documento foi introduzido no Cisco IOS® Software Release 11.1 e 11.2 e está disponível em versões posteriores.

Normalmente, as rotas são propagadas, independentemente da existência de um caminho diferente. O recurso de anúncio condicional BGP usa as palavras-chave non-exist-map e advertise-map do comando neighbor advertise-map para rastrear rotas pelo prefixo da rota. Se o prefixo de rota não estiver presente no resultado do comando non-exist-map, a rota especificada pelo comando advertise-map será anunciada. Esse recurso é útil para redes multihomed, nas quais alguns prefixos são anunciados a um dos provedores somente se as informações do outro provedor não estiverem presentes (isso indica uma falha na sessão de peering ou acessibilidade parcial).

Os anúncios BGP condicionais são enviados além dos anúncios normais que um roteador BGP envia aos peers.

Conventions

Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.

Configurar

Nesta seção, você encontrará informações para configurar os recursos descritos neste documento.

Observação: para encontrar informações adicionais sobre os comandos usados neste documento, use a ferramenta Cisco IOS Command Lookup. Somente usuários registrados da Cisco podem acessar ferramentas e informações internas da Cisco.

Diagrama de Rede

Este documento utiliza a configuração de rede mostrada neste diagrama.

Aqui, a interface de loopback de R103 é usada para anunciar 192.168.50.0/24 para R102. O R102 tem uma rede BGP, 172.16.16.0/24, que é anunciada para seus peers BGP externos (eBGP), R101 e R103, por padrão.

Instalação de rede

Com o recurso de anúncio condicional de BGP, você pode realizar estas tarefas em R102:

- Se 192.168.50.0/24 existe na tabela BGP do R102, não anuncie a rede 172.16.16.0/24 para R101.

- Se 192.168.50.0/24 não existir na tabela BGP de R102, anuncie a rede 172.16.16.0/24 para R101.

Com o Cisco IOS 12.2T ou versões posteriores, a palavra-chave exist-map também pode ser usada para realizar estas tarefas:

- Se 192.168.50.0/24 existir na tabela BGP de R102, anuncie a rede 172.16.16.0/24 para R101.

- Se 192.168.50.0/24 não existir na tabela de BGP do R102, não anuncie a rede 172.16.16.0/24 ao R101.

Configurar o Recurso de Anúncio Condicional

Este documento utiliza as seguintes configurações:

Observação: o exemplo aqui discute a palavra-chave non-exist-map. O uso da palavra-chave exist-map é semelhante a este.

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

!

Verificar a configuração

Exemplo 1

Este exemplo verifica a aparência do BGP quando 192.168.50.0/24 está na tabela de BGP de R102:

Verificar a configuração

Primeiro, verifique se 192.168.50.0/24 existe na tabela de BGP do 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

Como 192.168.50.0/24 está na tabela BGP de R102, R102 não deve anunciar 172.16.16.0/24 a 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

Em seguida, verifique o status do anúncio condicional em 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.

A saída mostra que o anúncio condicional é retirado e que as redes que correspondem ao mapa de rota ADVERTISE não são anunciadas ao peer 10.10.10.1.

Para confirmar se as rotas que correspondem ao mapa de rota ADVERTISE não foram anunciadas para R101, verifique a tabela BGP em R101:

R101#show ip bgp 172.16.16.0

% Network not in table

Exemplo 2

Este exemplo mostra a aparência do BGP quando a rede 192.168.50.0/24 não existe na tabela de BGP de R102:

192.168.50.0/24 Não Existe na Tabela de BGP do R102

Primeiro, desligue a interface de loopback 0 em R103 para que R103 não anuncie mais 192.168.50.0/24 para 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

Em seguida, verifique se R102 não aprende 192.168.50.0/24 e se a rede não está incluída na tabela de 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.

Observe quanto tempo leva para o anúncio condicional começar:

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

Observação: a saída de depuração pode variar um pouco dependendo da versão de software usada.

O processo de anúncio condicional é disparado pelo processo de scanner BGP, que é executado a cada 60 segundos. Isso significa que o tempo máximo para que o anúncio condicional entre em vigor é de 60 segundos. O anúncio condicional pode ter efeito antes, dependendo de quando a rota rastreada é removida da tabela BGP e quando ocorre a próxima instância do scanner BGP. Emita estes comandos em R102 para verificar o estado do anúncio condicional em R102 para o vizinho 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.

A tabela de BGP do R101 e a tabela de roteamento têm 172.16.16.0/24, como mostrado aqui:

Observação: neste exemplo de saída, os anúncios condicionais de BGP (rede 172.16.16.0/24) são enviados, além dos anúncios normais de BGP (rede 172.31.130.0/16) que um roteador BGP envia a seus pares.

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

Exemplo 3

Este exemplo envolve a reinstalação da rede 192.168.50.0/24 em R102 para ver como o BGP muda de Advertise para Withdraw .

Como o BGP muda de Anunciar para Retirar

Para reinstalar o 192.168.50.0/24, emita o  no shutdown  comando para ativar a interface loopback 0 em R103.

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ão anuncia mais 172.16.16.0/24 para 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.

Observação: em um cenário real, AS1 e AS3 estão conectados à Internet (BGP global). Assim, a rede 192.168.50.0/24 poderia ser propagada através de uma malha bgp global do AS3 para a tabela BGP do AS1 (R101). O AS1, por sua vez, poderia propagar o prefixo 192.168.50.0 para R102 (dependendo do acordo de política entre AS1 e AS2). Se o R101 propagar rotas AS3 aprendidas da malha BGP global para R102, o anúncio condicional poderá falhar se verificações adicionais não forem colocadas no mapa não existente.

Para entender melhor por que o anúncio condicional falha, considere esse cenário. O AS1 aprende 192.168.50.0/24 a partir da malha bgp global e anuncia 192.168.50.0/24 para AS2 (R102). O R102 também identifica o prefixo 192.168.50.0/24 de sua correspondência direta com o R103 (pelo R102 para o enlace R103). Quando o link direto entre R102 e R103 falhar, você espera que o prefixo 192.168.50.0/24 deixe de existir na tabela BGP de R102 e o anúncio condicional seja iniciado e anuncie o prefixo 172.16.16.0/24 para R101. No entanto, como o prefixo 192.168.50.0/24 continua a existir na tabela de BGP de R102 (aprendido de R101), o anúncio condicional é interrompido porque o prefixo no mapa inexistente ainda existe na tabela de BGP de R102. Para garantir que o prefixo 192.168.50.0/24 seja aprendido somente da conexão direta ao AS3 (R102 a R103) para que o anúncio condicional inicie, adicione uma instrução match as_path sob o  mapa inexistente que corresponda ao AS_PATH do prefixo 192.168.50.0/24 aprendido da conexão direta (que, neste caso, é AS 3). A expressão regular para este caso é  ^3 . Para obter mais informações sobre expressões regulares, consulte Uso de expressões regulares no BGP . Esteja ciente de que você não pode corresponder apenas as-path, e não corresponder o prefixo. O comando  match as-path só pode complementar os critérios de correspondência para o prefixo correspondente. Em outras palavras, você não pode anunciar alguns prefixos a um vizinho se nenhum prefixo existir de um determinado AS #.

A nova configuração em R102 é mostrada aqui. As adições estão em negrito.

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

!

Informações Relacionadas

- BGP: perguntas frequentes

- Examinar estudos de caso do Border Gateway Protocol

- Suporte técnico e downloads da Cisco