¿Tiene una cuenta?
Este documento describe cómo resolver un problema de inestabilidad en las rutas del Protocolo de la gateway marginal (BGP) que causa una falla recursiva de ruteo.
Los síntomas comunes de falla de ruteo recursivo en BGP son:
Eliminación y reinserción constantes de rutas BGP en la tabla de ruteo.
Pérdida de conectividad hacia los destinos aprendidos a través de BGP.
No hay requisitos específicos para este documento.
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
Consulte este diagrama de red cuando use este documento:
Consulte estas configuraciones mientras utiliza este documento:
Rtr-A |
---|
hostname RTR-A ! interface Loopback0 ip address 10.10.10.10 255.255.255.255 ! interface Serial8/0 ip address 192.168.16.1 255.255.255.252 ! router bgp 1 bgp log-neighbor-changes neighbor 20.20.20.20 remote-as 2 neighbor 20.20.20.20 ebgp-multihop 2 neighbor 20.20.20.20 update-source Loopback0 ! ip route 20.20.20.0 255.255.255.0 192.168.16.2 |
Rtr-B |
---|
hostname RTR-B ! interface Loopback0 ip address 20.20.20.20 255.255.255.255 ! interface Ethernet0/0 ip address 172.16.1.1 255.255.255.0 ! interface Serial8/0 ip address 192.168.16.2 255.255.255.252 ! router bgp 2 no synchronization bgp log-neighbor-changes network 20.20.20.20 mask 255.255.255.255 network 172.16.1.0 mask 255.255.255.0 neighbor 10.10.10.10 remote-as 1 neighbor 10.10.10.10 ebgp-multihop 2 neighbor 10.10.10.10 update-source Loopback0 no auto-summary ! ip route 10.10.10.0 255.255.255.0 192.168.16.1 ! |
Estos dos síntomas se observan con la falla de ruteo recursivo:
La inestabilidad continua de las rutas aprendidas por BGP en la tabla de IP Routing.
Observe la tabla de ruteo de forma continua durante un par de minutos para ver la inestabilidad.
RTR-A#show ip route Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP i - IS-IS, L1 - ISIS level-1, L2 - ISIS level-2, ia - ISIS inter are * - candidate default, U - per-user static route, o - ODR P - periodic downloaded static route Gateway of last resort is not set 20.0.0.0/8 is variably subnetted, 2 subnets, 2 masks B 20.20.20.20/32 [20/0] via 20.20.20.20, 00:00:35 S 20.20.20.0/24 [1/0] via 192.168.16.2 172.16.0.0/24 is subnetted, 1 subnets B 172.16.1.0 [20/0] via 20.20.20.20, 00:00:35 10.0.0.0/32 is subnetted, 1 subnets C 10.10.10.10 is directly connected, Loopback0 192.168.16.0/30 is subnetted, 1 subnets C 192.168.16.0 is directly connected, Serial8/0
Nota: Es útil utilizar el comando show ip route | include , 00:00 para observar rutas inestables cuando se trata de tablas de ruteo grandes.
Después de esperar aproximadamente un minuto, el comando show ip route cambia a esto:
RTR-A#show ip route [..] Gateway of last resort is not set 20.0.0.0/24 is subnetted, 1 subnets S 20.20.20.0 [1/0] via 192.168.16.2 10.0.0.0/32 is subnetted, 1 subnets C 10.10.10.10 is directly connected, Loopback0 192.168.16.0/30 is subnetted, 1 subnets C 192.168.16.0 is directly connected, Serial8/0
Nota: Las rutas BGP faltan en la tabla de ruteo anterior.
Cuando las rutas BGP están presentes en la tabla de ruteo, la conectividad a esas redes falla.
Para observar esto, cuando la tabla de ruteo del Rtr-A tiene la ruta aprendida por BGP 172.16.1.0/24 en su tabla de ruteo, un ping al host válido 172.16.1.1 falla.
RTR-A#show ip route 172.16.1.0 Routing entry for 172.16.1.0/24 Known via "bgp 1", distance 20, metric 0 Tag 2, type external Last update from 20.20.20.20 00:00:16 ago Routing Descriptor Blocks: * 20.20.20.20, from 20.20.20.20, 00:00:16 ago Route metric is 0, traffic share count is 1 AS Hops 1 RTR-A#ping 172.16.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds: ..... Success rate is 0 percent (0/5) RTR-A#
En Rtr-A, observe la ruta hacia el peer BGP 20.20.20.20. La ruta se mueve sistemáticamente entre los dos saltos siguientes cada minuto aproximadamente.
RTR-A#show ip route 20.20.20.20 Routing entry for 20.20.20.20/32 Known via "bgp 1", distance 20, metric 0 Tag 2, type external Last update from 20.20.20.20 00:00:35 ago Routing Descriptor Blocks: * 20.20.20.20, from 20.20.20.20, 00:00:35 ago Route metric is 0, traffic share count is 1 AS Hops 1
La ruta hacia la dirección IP de peer BGP se aprende a través del propio BGP; por lo tanto, crea una falla de ruteo recursivo.
Después de aproximadamente un minuto, la ruta cambia a:
RTR-A#show ip route 20.20.20.20 Routing entry for 20.20.20.0/24 Known via "static", distance 1, metric 0 Routing Descriptor Blocks: * 192.168.16.2 Route metric is 0, traffic share count is 1
Estos pasos describen la causa de falla de ruteo recurrente:
Consulte la configuración de Rtr-A. En esta configuración, se configura una ruta estática 20.20.20.0/24 que apunta al salto siguiente directamente conectado 192.168.16.2. Con esta ruta estática, se establece una sesión BGP con el peer Rtr-B 20.20.20.20.
Rtr-B anuncia las rutas BGP 172.16.1.0/24 y 20.20.20.20/32 a Rtr-A con su dirección IP de loopback 20.20.20.20 como en el siguiente salto.
Rtr-A recibe las rutas BGP anunciadas por Rtr-B e intenta instalar el 20.20.20.20/32. Esto es más específico que 20.20.20.0/24 que ya está configurado en Rtr-A como una ruta estática. Debido a que se prefiere la ruta coincidente más larga, se prefiere 20.20.20.20/32 sobre 20.20.20.0/24. Consulte Selección de Rutas en Routers de Cisco para obtener más información. La ruta instalada 20.20.20.20/32 tiene el salto siguiente de 20.20.20.20 (dirección IP de iguales de Rtr-B) en la tabla de ruteo. Esto conduce a una falla de ruteo recursivo ya que la ruta hacia 20.20.20.20/32 tiene un salto siguiente propio.
Para entender la razón por la que falla el ruteo recursivo en esta situación particular, debe entender cómo funciona el algoritmo de ruteo. Para cualquier ruta no conectada directamente en la tabla de ruteo cuya dirección IP de salto siguiente no es una interfaz directamente conectada del router, el algoritmo busca recursivamente en la tabla de ruteo hasta encontrar una interfaz directamente conectada a la cual puede reenviar los paquetes.
En esta situación particular, Rtr-A aprende una ruta a la red no conectada directamente 20.20.20.20/32 con un salto siguiente no conectado directamente de 20.20.20.20 (en sí mismo). El algoritmo de ruteo se ejecuta en una falla de loop de ruteo recursivo porque no puede encontrar ninguna interfaz directamente conectada a la cual enviar paquetes destinados a 20.20.20.20/32.
El router detecta que esta ruta 20.20.20.20/32 no conectada directamente tiene un error de ruteo recursivo y retira 20.20.20.20/32 de la tabla de ruteo. En consecuencia, todas las rutas aprendidas por BGP con la dirección IP del siguiente salto 20.20.20.20 también se retiran de la tabla de ruteo.
La totalidad del proceso se repite desde el Paso 1. Puede confirmar esto si ejecuta el comando debug ip routing.
Nota: Antes de ejecutar cualquier comando debug, ejecute el comando debug contra una lista de control de acceso (ACL) para una red específica para limitar el resultado de la depuración. En este ejemplo, configure una ACL para limitar el resultado de debug.
RTR-A(config)#access-list 1 permit 20.20.20.20 RTR-A(config)#access-list 1 permit 172.16.1.0 RTR-A(config)#end RTR-A#debug ip routing 1 IP routing debugging is on for access list 1 00:29:50: RT: add 20.20.20.20/32 via 20.20.20.20, bgp metric [20/0] 00:29:50: RT: add 172.16.1.0/24 via 20.20.20.20, bgp metric [20/0] 00:30:45: RT: recursion error routing 20.20.20.20 - probable routing loop 00:30:45: RT: recursion error routing 20.20.20.20 - probable routing loop 00:30:45: RT: recursion error routing 20.20.20.20 - probable routing loop 00:30:46: RT: recursion error routing 20.20.20.20 - probable routing loop 00:30:46: RT: recursion error routing 20.20.20.20 - probable routing loop 00:30:48: RT: recursion error routing 20.20.20.20 - probable routing loop 00:30:48: RT: recursion error routing 20.20.20.20 - probable routing loop 00:30:50: RT: del 20.20.20.20/32 via 20.20.20.20, bgp metric [20/0] 00:30:50: RT: delete subnet route to 20.20.20.20/32 00:30:50: RT: del 172.16.1.0/24 via 20.20.20.20, bgp metric [20/0] 00:30:50: RT: delete subnet route to 172.16.1.0/24
Si la recursión de ruta falla continuamente, aparece este mensaje de error:
%COMMON_FIB-SP-6-FIB_RECURSION: 10.71.124.25/32 has too many (8) levels of recursion during setting up switching info %COMMON_FIB-SP-STDBY-6-FIB_RECURSION: 10.71.124.25/32 has too many (8) levels of recursion during setting up switching info
Esto se debe a que las retransmisiones TCP se producen en la red habilitada para MPLS. Si un mensaje de keepalive BGP una vez no se pudo enviar al Peer BGP porque el link de transporte está inactivo, el Peer BGP vecino no acepta más paquetes keepalive aun cuando TCP retransmita el mensaje fallido a través de la trayectoria de respaldo, y finalmente conduce al peer BGP hacia abajo con vencimiento de retención de tiempo. Este problema se observa solamente cuando MPLS se configura en Catalyst6500 o Cisco7600. Esto se discute en el Id. de bug Cisco CSCsj8954 (sólo clientes registrados) .
Las soluciones a este problema se explican en detalle.
Agregue una ruta estática específica en Rtr-A para la dirección IP de peer BGP (20.20.20.20 en este caso).
RTR-A#configure terminal Enter configuration commands, one per line. End with CNTL/Z. RTR-A(config)#ip route 20.20.20.20 255.255.255.255 192.168.16.2
La configuración de una ruta estática para el prefijo 20.20.20.20/32 asegura que una ruta BGP aprendida dinámicamente 20.20.20.20/32 no se instale en la tabla de ruteo y, por lo tanto, evita la situación del loop de ruteo recursivo. Consulte Selección de Rutas en Routers de Cisco para obtener más información.
Nota: Cuando los peers EBGP se configuran para alcanzar entre sí con rutas predeterminadas, la vecindad BGP no aparece. Esto se hace para evitar la inestabilidad de ruta y los loops de ruteo.
Un ping a 172.16.1.1 confirma la solución.
RTR-A#ping 172.16.1.1 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 20/24/40 ms
El dampening de ruta es una función de BGP diseñada para minimizar la propagación de las rutas inestables a través de una conexión entre redes. Los valores recomendados por el ISP son los valores predeterminados en Cisco IOS® y sólo necesita configurar este comando para habilitarlo.
router bgp <AS number> bgp dampening
Los comandos bgp dampening establecen valores predeterminados para los parámetros de dampening como Halftime= 15 minutos, reuse = 750, Suppress = 2000 y Max Suppress Time= 60. Estos valores son configurables por el usuario, pero Cisco recomienda que no se modifique.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
10-Aug-2005 |
Versión inicial |