IP : Protocolo de puerta de enlace fronteriza (BGP)

Configurando y verificando la función condicional del anuncio BGP

17 Octubre 2016 - Traducción Automática
Otras Versiones: PDFpdf | Inglés (22 Agosto 2015) | Comentarios


Contenido


Introducción

La Función de aviso condicional de BGP (Border Gateway Protocol) proporciona control adicional sobre el anuncio de ruteo, dependiendo de la existencia de otros prefijos en la tabla BGP.

prerrequisitos

Requisitos

Antes de intentar esta configuración, asegúrese de que usted es familiar con:

Componentes Utilizados

La función condicional del anuncio BGP descrita en este documento fue introducida en el Software Release 11.1CC y 11.2 del ½ del ¿Â de Cisco IOSï y está disponible en versiones posteriores.

La información que contiene este documento se basa en las siguientes versiones de software y hardware.

  • Software Release 12.2(13)T13 del ½ del ¿Â de Cisco IOSïÂ

  • Cisco 2500 Series Routers

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 la red está funcionando, asegúrese de haber comprendido el impacto que puede tener cualquier comando.

Teoría Precedente

Generalmente, las rutas se propagan independientemente de la existencia de una trayectoria diferente. La función condicional del anuncio BGP utiliza el non-exist-map y las palabras claves del hacer publicidad-mapa del comando advertise-map vecino para seguir las rutas por el prefijo de la ruta. Si un prefijo de ruta no estuviese presente en el resultado del comando non-exist-map, entonces la ruta especificada por el comando advertise-map se encuentra anunciada. Esta característica es útil para las redes con varias conexiones, en las cuales algunos prefijos se hacen publicidad a uno de los proveedores solamente si la información del otro proveedor no está presente (ésta indica un error en la sesión de peer o la accesibilidad parcial).

Además de los anuncios normales de BGP que un router envía a sus pares, también se envían anuncios condicionales de BGP.

Convenciones

Para obtener más información sobre las convenciones del documento, consulte las Convenciones de Consejos Técnicos de Cisco.

Configurar

En esta sección encontrará la información para configurar las funciones descritas en este documento.

Nota: Para obtener información adicional sobre los comandos que se utilizan en este documento, use la herramienta IOS Command Lookup

Diagrama de la red

Este documento utiliza la configuración de red que se muestra en el siguiente diagrama.

Aquí, el Loopback Interface del R103 se utiliza para anunciar 192.168.50.0/24 al R102. El R102 tiene una red de BGP, 128.16.16.0/24, que se anuncia a ambos sus pares del BGP externo (eBGP), R101 y R103, por abandono.

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

Con la función condicional del anuncio BGP, usted puede ahora lograr estas tareas en el R102:

  • Si existe 192.168.50.0/24 en la tabla BGP de R102, no anuncie la red 128.16.16.0/24 a R101.

  • Si 192.168.50.0/24 no existe en la tabla BGP R102, después haga publicidad de la red 128.16.16.0/24 al R101.

Con el ½ 12.2T del ¿Â de Cisco IOSï o versiones posteriores, la palabra clave del existir-mapa se puede utilizar para lograr estas tareas también:

  • Si 192.168.50.0/24 existe en la tabla BGP R102, después haga publicidad de la red 128.16.16.0/24 al R101.

  • Si 192.168.50.0/24 no existe en la tabla BGP R102, después no haga publicidad de la red 128.16.16.0/24 al R101.

Configure la Función de aviso condicional

En este documento, se utilizan estas configuraciones:

Nota: El ejemplo aquí discute la palabra clave del non-exist-map. El uso de la palabra clave del existir-mapa es similar a esto.

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 
!

Verifique la Configuración

Ejemplo 1

Este ejemplo verifica qué BGP parece cuando 192.168.50.0/24 está en la tabla BGP R102:

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

En primer lugar controle para ver si 192.168.50.0/24 existe en la tabla BGP 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

Puesto que 192.168.50.0/24 está en la tabla BGP R102, después el R102 no debe hacer publicidad de 128.16.16/24 al 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

Entonces marque el estatus del aviso condicional en el 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.



La salida muestra que el aviso condicional “está retirado” y que las redes que hacen juego el route-map “HACEN PUBLICIDAD” no se anuncian al par 10.10.10.1.

Para confirmar las rutas que hacen juego el route-map “HAGA PUBLICIDAD” no se anuncian al R101, marcan la tabla BGP en el R101:

R101# show ip bgp 128.16.16.0
% Network not in table

‘Ejemplo 2’

Este ejemplo muestra qué BGP parece cuando la red 192.168.50.0/24 no existe en la tabla BGP R102:

cond_adv_02.gif

Primero, apague el Loopback Interface 0 en el R103 de modo que el R103 anuncie no más 192.168.50.0/24 al 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

Entonces verifique que el R102 no esté aprendiendo 192.168.50.0/24 y que la red no está incluida en la tabla 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.


Ahora observe cuánto tarda en activarse el anuncio condicional:

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

El proceso del escáner de BGP, que se ejecuta cada 60 segundos, acciona el proceso de anuncio condicional. Esto significa que el tiempo máximo para que el aviso condicional tome el efecto es 60 segundos. El aviso condicional puede tomar el efecto más pronto, dependiendo de cuando la ruta seguida se quita de la tabla BGP y cuando ocurre el caso siguiente del escáner BGP. Publique estos comandos en el R102 para verificar al estado del aviso condicional en el R102 para 10.10.10.1 vecino:

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.



La tabla BGP y la tabla de ruteo R101 tiene 128.16.16.0/24, como se muestra aquí:

Nota: En esta salida de muestra, los anuncios BGP condicionales (red 128.16.16.0/24) se envían, además de los anuncios de BGP normales (red 130.130.0.0/16) que un router BGP envía a sus 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

Ejemplo 3

Este ejemplo implica la reinstalación de la red 192.168.50.0/24 en el R102 para considerar de cómo los cambios BGP “hacen publicidad” “se retiran.”

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

Para reinstalar 192.168.50.0/24, publique el comando no shutdown de traer el Interface Loopback 0 en el R103 a “ENCIMA 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

El R102 hace publicidad no más de 128.16.16.0/24 al 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: En un escenario del mundo real, el AS1 y el AS3 están conectados con Internet (BGP global). Por lo tanto la red 192.168.50.0/24 se podría propagar a través de una malla global BGP del AS3 a la tabla BGP AS1 (R101). El AS1, a su vez, podría propagar el prefijo 192.168.50.0 al R102 (dependiendo del acuerdo de políticas entre el AS1 y el AS2). Si el R101 propaga las rutas AS3 aprendidas de la malla BGP global al R102, después el aviso condicional puede fallar si los controles adicionales no se ponen en la correspondencia no exista.

Para entender mejor porqué el aviso condicional falla, considere este escenario. El AS1 aprende 192.168.50.0/24 de la malla global BGP y anuncia 192.168.50.0/24 a AS2 (R102). R102 también aprende el prefijo 192.168.50.0/24 de su par directo a R103 (por el link R102 a R103). Cuando el link directo entre el R102 y el R103 falla, usted cuenta con que el prefijo 192.168.50.0/24 deje de existir en la tabla BGP R102 y el aviso condicional golpea adentro y anuncia el prefijo con el pie 128.16.16.0/24 al R101. Sin embargo, puesto que el prefijo 192.168.50.0/24 continúa existiendo en la tabla BGP R102 (aprendida del R101), el aviso condicional se rompe porque el prefijo en la correspondencia no exista todavía existe en la tabla BGP R102. Para asegurarse de que el prefijo 192.168.50.0/24 esté aprendido solamente de la conexión directa a AS3 (R102 al R103) para que el aviso condicional golpee con el pie adentro, agregue una declaración del as_path de la coincidencia bajo la correspondencia no exista que hace juego el AS_PATH del prefijo 192.168.50.0/24 docto de la conexión directa (que en este caso está COMO 3). La expresión normal para este caso es ^3. Para más información sobre las expresiones normales, refiérase con las expresiones normales en el BGP. Guárdese que usted no puede hacer juego apenas la como-trayectoria, y no hacer juego el prefijo. La como-trayectoria de la coincidencia puede complementar solamente los criterios concordantes para el prefijo correspondido con. Es decir usted no puede hacer publicidad de algunos prefijos a un vecino si ningún prefijo existe de un seguro COMO #.

La nueva configuración en el R102 se muestra aquí. Las inclusiones están en negrita.

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 conocidos

Hay un par de bug conocido que se relacionan con el BGP y el aviso condicional. Para más información, refiera a los bug CSCdp18563 (clientes registrados solamente) y CSCdp20320 (clientes registrados solamente) en el Bug Toolkit.


Información Relacionada


Document ID: 16137