IP : Border Gateway Protocol (BGP)

Configurando e verificando os recursos de anúncio condicional do BGP

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

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.

Pré-requisitos

Requisitos

Antes de tentar esta configuração, assegure-se de que você esteja familiar com:

Componentes Utilizados

Os recursos de anúncio condicional do BGP descritos neste documento foram introduzidos no Software Release 11.1CC e 11.2 de Cisco IOS� e estão disponíveis em umas liberações mais atrasadas.

As informações neste documento são baseadas nestas versões de software e hardware:

  • Software Release 12.2(13)T13 de Cisco IOS�

  • Cisco 2500 Series Routers

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 sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.

Material de Suporte

Normalmente, as rotas são propagadas, independentemente da existência de um caminho diferente. Os recursos de anúncio condicional do BGP usam o non-exist-map e as palavras-chaves do anunciar-mapa do comando advertise-map vizinho a fim seguir 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. Esta característica é útil para as redes de hospedagem múltiplas, em que alguns prefixos estão anunciados a um dos fornecedores somente se a informação do outro fornecedor não está atual (esta indica uma falha na sessão de peer ou na alcançabilidade parcial).

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

Convenções

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.

Nota: Para localizar informações adicionais sobre os comandos utilizados neste documento, utilize a ferramenta IOS Command Lookup.

Diagrama de Rede

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

Aqui, a interface de loopback do R103 é usada para anunciar 192.168.50.0/24 ao R102. O R102 tem uma rede BGP, 128.16.16.0/24, que seja anunciada a ambos seus external bgp (ebgp) peer, R101 e R103, à revelia.

/image/gif/paws/16137/cond_adv_01.gif

Com os recursos de anúncio condicional do BGP, você pode agora realizar estas tarefas no R102:

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

  • Se 192.168.50.0/24 não existem na tabela de BGP do R102, a seguir anuncie a rede 128.16.16.0/24 ao R101.

Com Cisco IOS� 12.2T ou umas versões mais atrasadas, a palavra-chave do existir-mapa pode ser usada para realizar também estas tarefas:

  • Se 192.168.50.0/24 existem na tabela de BGP do R102, a seguir anuncie a rede 128.16.16.0/24 ao R101.

  • Se 192.168.50.0/24 não existem na tabela de BGP do R102, a seguir não anuncie a rede 128.16.16.0/24 ao R101.

Configurar os recursos de anúncio condicional

Este documento utiliza as seguintes configurações:

Nota: O exemplo aqui discute a palavra-chave do non-exist-map. O uso da palavra-chave do existir-mapa é similar a este.

R102
hostname R102 
! 
interface Loopback0 
 ip address 128.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 128.16.16.0 mask 255.255.255.0 
 network 130.130.0.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 (128.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 130.130.0.0 255.255.0.0 Null0 
! 
access-list 60 permit 128.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 200.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 200.200.200.0 
 neighbor 10.10.10.2 remote-as 2 
!

Verificar a configuração

Exemplo 1

Este exemplo verifica que BGP olha como quando 192.168.50.0/24 estão na tabela de BGP do R102:

/image/gif/paws/16137/cond_adv_01.gif

Primeira verificação para ver se 192.168.50.0/24 existem na tabela de BGP do R102:

R102# 
show ip bgp

BGP table version is 6, local router ID is 128.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
*> 128.16.16.0/24   0.0.0.0                  0         32768 i
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 192.168.50.0     10.10.20.3               0             0 3 i
*> 200.200.200.0    10.10.10.1               0             0 1 i

Desde que 192.168.50.0/24 estão na tabela de BGP do R102, a seguir o R102 não deve anunciar 128.16.16/24 ao R101.

R102# show ip bgp neighbors 10.10.10.1 advertised-routes 
BGP table version is 6, local router ID is 128.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
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 192.168.50.0     10.10.20.3               0             0 3 i

!--- Note 128.16.16.0/24 is not advertised to neighbor 10.10.10.1.


R102# show ip bgp 128.16.16.0
BGP routing table entry for 128.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 (128.16.16.1)
      Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local, best

Verifique então o estado do anúncio condicional no 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 200.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 “está retirado” e que as redes que combinam o mapa de rotas “ANUNCIAM” não são anunciados ao par 10.10.10.1.

A fim confirmar as rotas que combinam o mapa de rotas “ANUNCIE” não são anunciados ao R101, verificam a tabela de BGP no R101:

R101# show ip bgp 128.16.16.0
% Network not in table

Exemplo 2

Este exemplo mostra que BGP olha como quando a rede 192.168.50.0/24 não existe na tabela de BGP R102:

cond_adv_02.gif

Primeiramente, feche a interface de loopback 0 no R103 de modo que o R103 já não anuncie 192.168.50.0/24 ao 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

Verifique então que o R102 não está aprendendo 192.168.50.0/24 e que a rede não está incluída na tabela de BGP R102.

R102# show ip bgp 
BGP table version is 8, local router ID is 128.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
*> 128.16.16.0/24   0.0.0.0                  0         32768 i
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 200.200.200.0    10.10.10.1               0             0 1 i

!--- Note 192.168.50.0/24 is not present.


Agora, veja quanto tempo leva para o anúncio condicional aparecer:

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 128.16.16.0/24 matches ADV MAP ADVERTISE: 
bump version to 12
*Mar  1 02:40:05.187: BGP(0): nettable_walker 128.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 128.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) 128.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

O processo de anúncio condicional é disparado pelo processo de scanner BGP, que é executado a cada 60 segundos. Isto significa que o tempo máximo para que o anúncio condicional tome o efeito é 60 segundos. O anúncio condicional pode tomar o efeito mais logo, segundo quando a rota seguida está removida da tabela de BGP e quando o exemplo seguinte do scanner de BGP ocorre. Emita estes comandos no R102 a fim verificar o estado do anúncio condicional no R102 para 10.10.10.1 vizinho:

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 200.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 e a tabela de roteamento do R101 têm 128.16.16.0/24, como mostrado aqui:

Nota: Neste exemplo de saída, os anúncios condicionais de BGP (rede 128.16.16.0/24) são enviados, além do que os anúncios normais BGP (rede 130.130.0.0/16) que um BGP Router envia a seus pares.

R101# show ip bgp
BGP table version is 18, local router ID is 200.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
*> 128.16.16.0/24   10.10.10.2               0             0 2 i
*> 130.130.0.0      10.10.10.2               0             0 2 i
*> 200.200.200.0    0.0.0.0                  0         32768 i

R101# show ip route bgp
     128.16.0.0/24 is subnetted, 1 subnets
B       128.16.16.0 [20/0] via 10.10.10.2, 00:09:32
B    130.130.0.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 no R102 a fim considerar de como as mudanças BGP “anunciam” “se retiram.”

/image/gif/paws/16137/cond_adv_01.gif

A fim reinstalar 192.168.50.0/24, emita o comando no shutdown trazer o loopback de interface 0 no R103 a “ACIMA DE”.

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 128.16.16.0/24 matches ADV MAP 
ADVERTISE: bump version to 14
*Mar  1 02:52:09.499: BGP(0): nettable_walker 128.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 128.16.16.0/24 matches advertise 
map ADVERTISE, state: Withdraw
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 send unreachable 128.16.16.0/24
*Mar  1 02:52:11.559: BGP(0): 10.10.10.1 send UPDATE 128.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

O R102 já não anuncia 128.16.16.0/24 ao R101.

R102# show ip bgp neighbors 10.10.10.1 advertised-routes 
BGP table version is 14, local router ID is 128.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
*> 130.130.0.0      0.0.0.0                  0         32768 i
*> 192.168.50.0     10.10.20.3               0             0 3 i

!--- Note 128.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 200.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.


Nota: Em uma encenação do mundo real, o AS1 e o AS3 são conectados ao Internet (BGP global). Daqui a rede 192.168.50.0/24 poderia ser propagada através de uma malha global BGP do AS3 (R101) à tabela de BGP AS1. O AS1, por sua vez, poderia propagar o prefixo 192.168.50.0 ao R102 (segundo o acordo de política entre o AS1 e o AS2). Se o R101 propaga as rotas AS3 aprendidas da malha global do BGP ao R102, a seguir o anúncio condicional pode falhar se as verificações adicionais não são colocadas no mapa não-existente.

A fim compreender melhor porque o anúncio condicional falha, considere esta encenação. O AS1 aprende 192.168.50.0/24 da malha global BGP e anuncia 192.168.50.0/24 a 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 o R102 e o R103 falha, você espera que o prefixo 192.168.50.0/24 cessa de existir na tabela de BGP do R102 e o anúncio condicional retrocede dentro e anuncia o prefixo 128.16.16.0/24 ao R101. Contudo, desde que o prefixo 192.168.50.0/24 continua a existir na tabela de BGP R102 (aprendida do R101), o anúncio condicional quebra porque o prefixo no mapa não-existente ainda existe na tabela de BGP R102. Para assegurar-se de que o prefixo 192.168.50.0/24 esteja aprendido somente da conexão direta a AS3 (R102 ao R103) para que o anúncio condicional retroceda dentro, adicionar uma indicação do as_path do fósforo sob o mapa não-existente que combina o AS_PATH do prefixo 192.168.50.0/24 instruído da conexão direta (que é neste caso AS3). A expressão regular para este caso é ^3. Para obter mais informações sobre das expressões regulares, refira a utilização de expressões regulares no BGP. Ser cuidadoso que você não pode combinar apenas o como-PATH, e para não combinar o prefixo. O fósforo como-PATH pode somente suplementar os critérios correspondentes para o prefixo combinado. Ou seja você não pode anunciar alguns prefixos a um vizinho se nenhum prefixo existe de um certo COMO #.

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

R101
hostname R102  
!  
interface Loopback0  
 ip address 128.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 128.16.16.0 mask 255.255.255.0  
 network 130.130.0.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 130.130.0.0 255.255.0.0 Null0 
! 
ip as-path access-list 1 permit ^3 
!  
access-list 60 permit 128.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  
!

Problemas conhecidos

Há um par Bug conhecido que se relacionam ao BGP e ao anúncio condicional. Para mais informação, refira os erros CSCdp18563 (clientes registrados somente) e CSCdp20320 (clientes registrados somente) no Bug Toolkit.

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 16137