IP : Protocolo de puerta de enlace fronteriza (BGP)

Troubleshooting de CPU Alto Causado por el Proceso de Router de BGP o Escaneo de BGP

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


Contenido


Introducción

Este documento describe las situaciones en las cuales un router del½ del¿Â del Cisco IOSï pudo experimentar CPU elevada el utilización debido a al proceso del router BGP (Border Gateway Protocol) o al proceso del escáner BGP, tal y como se muestra en de la salida del comando show process cpu. La duración del funcionamiento elevado de la CPU varía según varias condiciones, en particular el tamaño de la tabla de ruteo de Internet y el número de rutas que mantiene un router determinado en sus tablas de ruteo y BGP.

El comando show process cpu muestra la tasa de utilización de la CPU en los últimos cinco segundos, un minuto y cinco minutos. Los números de uso de la CPU no proveen una verdadera indicación lineal de la utilización con respecto a la carga ofrecida. Éstos son algunos de los motivos principales:

  • En una red del mundo real, la CPU debe operar con diversas funciones de mantenimiento de sistema, por ejemplo la administración de la red.

  • La CPU debe procesar las actualizaciones de ruteo periódicas y las generadas por un evento.

  • Existen otras operaciones adicionales del sistema interno, tales como consultas sobre la disponibilidad de recursos, que no son proporcionales a la carga del tráfico.

Usted puede también utilizar el comando show processes cpu para obtener una cierta indicación de actividad de la CPU.

Una vez que usted lee este documento, usted debe entender el papel de cada proceso BGP y cuando cada proceso se ejecuta. Además, usted debe entender la convergencia BGP y las técnicas para optimizar el tiempo de convergencia.

Antes de comenzar

Convenciones

Consulte Convenciones de Consejos TécnicosCisco para obtener más información sobre las convenciones del documento.

prerrequisitos

Este documento requiere una comprensión de cómo interpretar el comando show process cpu. Refiera a resolver problemas CPU elevada la utilización en los routeres Cisco como material de referencia.

Componentes Utilizados

La información en este documento se basa en el Cisco IOS Software Release 12.0.

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.

Introducción a los procesos BGP

Un proceso del Cisco IOS, consiste en generalmente los hilos individuales y los datos asociados que realizan las tareas, tales como mantenimiento del sistema, conmutando los paquetes, y implementar los Routing Protocol. Varios procesos del Cisco IOS ejecutados en el router permiten al BGP para ejecutarse. Utilice la CPU del proceso de la demostración | incluya el comando BGP para ver la utilización de la CPU a causa de los procesos BGP.

Esta tabla enumera la función de los procesos BGP y muestra que cada proceso se ejecuta en los momentos diferentes, dependiendo de las tareas que maneja. Porque el escáner BGP y los procesos del router BGP son responsables de una gran cantidad de cálculos, usted puede ver CPU elevada debido a cualquiera uno de estos procesos. Las secciones siguientes discuten estos procesos minuciosamente.

Nombre del proceso Descripción Intervalo
Abierto BGP Establece los pares BGP. En la inicialización, al establecer una conexión TCP con un peer BGP.
BGP I/O Administra el envío a cola y el procesamiento de paquetes BGP, como ACTUALIZACIONES y SEÑALES DE MANTENIMIENTO. A medida que se reciben los paquetes de control de BGP.
Escáner BGP Recorre la tabla BGP y confirma el alcance del próximo salto. El escáner BGP también verifica los anuncios condicionales para determinar si debe o no anunciar prefijos de condición y además, realiza la amortiguación de rutas. En un entorno del MPLS VPN, el escáner BGP importa y las rutas de las exportaciones en un VPN Routing and Forwarding determinado citan como ejemplo (VRF). Una vez por minuto.
Router BGP Calcula el mejor trayecto BGP y procesa cualquier “movimiento” de ruta. También envía y recibe rutas, establece pares e interactúa con la base de información de ruteo (RIB). Una vez por segundo y cuando se agrega, extrae o configura nuevamente el software de un par BGP.

Alto uso de CPU debido al escáner BGP

CPU elevada debido al proceso del escáner BGP se puede esperar por las duraciones breves en un router llevar un tabla de Internet Routing grande. Una vez por minuto, el escáner BGP camina por la tabla RIB BGP y desarrolla importantes tareas de mantenimiento. Estas tareas incluyen revisar el salto siguiente mencionado en la tabla BGP del router y verificar que pueden alcanzar a los dispositivos de salto siguiente. De este modo, una tabla BGP grande requiere una cantidad de tiempo equivalente para ser transitada y validada.

Porque el proceso del escáner BGP se ejecuta a través de la tabla BGP entera, la duración del funcionamiento elevado de la CPU varía con la cantidad de vecinos y el número de rutas aprendidas por el vecino. Para capturar esta información, use los comandos show ip bgp summary y show ip route summary.

El proceso del escáner BGP recorre la tabla BGP para poner al día cualquier estructura de datos y recorre la tabla de ruteo para los propósitos de la redistribución de ruta. (En este contexto, la tabla de ruteo también se la conoce como base de información de ruteo (RIB), que el router emite cuando usted ejecuta el comando show ip route.) Ambas tablas se salvan por separado en la memoria del router y pueden ser ciclos de la CPU muy grandes, así consumidores.

La siguiente salida de muestra del comando debug ip bgp updates captura una ejecución del escáner BGP, que comienza a escanear desde el prefijo cuyo número es menor o desde 0.0.0.0.

router# 
2d17h: BGP: scanning routing tables 
2d17h: BGP: 3.0.0.0 computing updates, neighbor version 8, 
     table version 9, starting at 0.0.0.0 
2d17h: BGP: 3.0.0.0 update run completed, ran for 0ms, neighbor
     version 8, start version 9, throttled to 9, check point net 0.0.0.0 
2d17h: BGP: 4.0.0.0 computing updates, neighbor version 8, 
     table version 9, starting at 0.0.0.0 
2d17h: BGP: 4.0.0.0 update run completed, ran for 4ms, neighbor
     version 8, start version 9, throttled to 9, check point net 0.0.0.0 
router#

Mientras se ejecuta el escáner BGP, los procesos de baja prioridad deben esperar un período mayor de tiempo para acceder a la CPU. Un proceso de baja prioridad controla los paquetes del Protocolo de mensajes de control de Internet (ICMP) tales como pings. Los paquetes que se dirigen al router, o que se originan en él, pueden sufrir una latencia mayor de la esperada ya que el proceso ICMP debe aguardar detrás del escáner BGP. El ciclo es que el escáner BGP se ejecuta por algún tiempo y se suspende, y entonces los funcionamientos ICMP. Por el contrario, los pings enviados a través de un router deben ser conmutados vía Cisco Express Forwarding (CEF) y no deben experimentar algún tipo de latencia adicional. Al resolver problemas los puntos periódicos en el tiempo de espera, compare las horas de reenvío para los paquetes remitidos a través de un router contra paquetes procesado directamente por el CPU en el router.

Nota: Los comandos Ping que especifican las opciones IP, tales como ruta de registro, también requieren el procesamiento directo por el CPU y pueden experimentar retardos más largos de la expedición.

Utilice el proceso de la demostración | incluya el comando del escáner BGP de ver la prioridad de la CPU. El valor de “Lsi” en la siguiente salida de muestra utiliza "L" para referirse a un proceso de prioridad baja.

6513# show processes | include BGP Scanner
 172 Lsi 407A1BFC       29144     29130    1000 8384/9000  0 BGP Scanner

CPU elevado debido a proceso de router BGP

El proceso del router BGP se ejecuta alrededor una vez por segundo para marcar para saber si hay trabajo. La convergencia BGP define la duración entre el tiempo en que establecen al primer peer BGP y la punta en la cual se converge el BGP. Para asegurar los tiempos de convergencia posibles más cortos, el router BGP consume todos los ciclos de la CPU libres. Sin embargo, luego de comenzar, abandona (o suspende) la CPU de manera intermitente.

El tiempo de convergencia es una medición directa de cuánto tiempo el router BGP pasa en el CPU, no el tiempo total. Este procedimiento muestra a funcionamiento elevado de la CPU durante la convergencia BGP e intercambia los prefijos BGP por dos pares del BGP externo (eBGP).

  1. Capture una línea de base del uso normal de la CPU antes de comenzar la prueba.

    router# show process cpu
      CPU utilization for five seconds: 0%/0%; one minute: 4%; five minutes: 5%
  2. Una vez que empieza la prueba, la CPU alcanza el 100% de utilización. El comando show process cpu muestra que la causa del funcionamiento elevado de la PC es el router BGP, indicado por el 139 (la ID de proceso del IOS para el router BGP) en el siguiente resultado.

    router# show process cpu
      CPU utilization for five seconds: 100%/0%; one minute: 99%; five minutes: 81%
    
    !--- Output omitted.
    
    139     6795740   1020252       6660 88.34% 91.63% 74.01%   0 BGP Router
  3. Monitoree al router capturando las salidas múltiples del resumen y de los comandos show process cpu BGP del IP de la demostración durante el evento. El comando show ip bgp summary captura el estado de los vecinos BGP.

    router# show ip bgp summary
      Neighbor    V    AS  MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down State/PfxRcd
      10.1.1.1    4  64512  309453  157389    19981    0  253 22:06:44 111633
      172.16.1.1  4  65101  188934    1047    40081   41    0 00:07:51 58430
  4. Cuando el router completa el intercambio de prefijos con sus pares BGP, las tasas de utilización de CPU deberían retornar a sus niveles normales. Los promedios calculados de un minuto y cinco minutos también volverán a reducirse y pueden tener valores mayores que los normales durante un período superior que el índice de cinco segundos.

    router# show process cpu
      CPU utilization for five seconds: 3%/0%; one minute: 82%; five minutes: 91%
  5. Utilice la salida capturada de los comandos show anteriores para calcular el tiempo de convergencia de BGP. En particular, utilice la columna "Up/Down" (arriba/abajo) del comando show ip bgp summary y compare las horas de inicio y fin de mayor uso de la CPU. Generalmente, la convergencia BGP puede demorar varios minutos cuando se intercambia una tabla de ruteo de Internet grande.

Nota: CPU elevada encendido el dispositivo podía también ser debido a la inestabilidad de la tabla BGP. Si el router está recibiendo dos copias de la tabla de ruteo, una del peering EBGP con el ISP y la otra del IBGP que mira en la red. La causa raíz para esto es la cantidad de memoria en el dispositivo. Cisco recomienda un mínimo de 1 carruaje de RAM para una copia única del tabla de Internet Routing. Para evitar esta inestabilidad, aumente el RAM en el dispositivo o filtre los prefijos para aliviar la tabla BGP y la memoria ocupadas por él.

Mejoras de rendimiento

Mientras que el número de rutas en el tabla de Internet Routing crece, hace tan también el tiempo que toma para que converja el BGP. Por lo general, la convergencia se define como el proceso por el cual todas las tablas de ruta se llevan a un estado de congruencia. El BGP es considerado para converger cuando las siguientes condiciones son verdaderas:

  • Todos los routers han sido aceptados.

  • Todas las rutas han sido instaladas en la tabla de ruteo.

  • La versión de tabla para todos los pares iguala la versión de tabla de la tabla BGP.

  • El InQ y el OutQ para todos los pares es cero.

Esta sección describe algunas mejoras del rendimiento IOS para reducir el tiempo de la convergencia BGP, que dan lugar a una reducción funcionamiento elevado de la CPU de un debido a un proceso BGP.

Cola para conexiones de pares TCP

En lugar de colocar datos en cola una vez por segundo, BGP ahora coloca datos en cola dinámicamente desde la cola de salida (OutQ) de BGP al zócalo TCP para cada par hasta que las OutQ se hayan vaciado completamente. Dado que BGP ahora transmite a mayor velocidad, BGP converge más rápidamente.

Grupos de Pares BGP

Mientras que ayudan a simplificar la configuración BGP, los grupos de peer de BGP también pueden aumentar el scalability. Todos los miembros de grupos de pares deben compartir una política de salida común. Por lo tanto, los mismos paquetes de actualización pueden enviarse a cada miembro del grupo, lo cual reduce la cantidad de ciclos de la CPU que necesita BGP para anunciar rutas a los pares. En otras palabras, con grupos de pares, BGP recorre la tabla de BGP sólo en el líder del grupo de pares, filtra los prefijos a través de las políticas de salida y genera actualizaciones, que envía al líder del grupo de pares. A su vez, el arranque de cinta replica las actualizaciones para agrupar a los miembros con quienes se sincroniza. Sin los grupos de peer, el BGP debe recorrer la tabla para cada par, filtrar los prefijos con las políticas de salida, y generar las actualizaciones que se envían solamente al un par.

MTU de trayecto y el comando ip tcp path-mtu-discovery

Un límite en la cantidad de bytes limitan a todas las sesiones TCP que se puede transportar en un solo paquete. El tamaño predeterminado de de este límite, conocido como Tamaño de segmento máximo (MSS), es 536 bytes. En otras palabras, TCP desintegra paquetes en una cola transmitida en segmentos de 536 byte antes de transmitir los paquetes a la capa IP. Utilice a los vecinos BGP del IP de la demostración | incluya el comando data máximo de visualizar el MSS de los peeres BGP:

Router# show ip bgp neighbors | include max data 
Datagrams (max data segment is 536 bytes): 
Datagrams (max data segment is 536 bytes): 
Datagrams (max data segment is 536 bytes): 
Datagrams (max data segment is 536 bytes): 

La ventaja de una MSS de 536 bytes es que no es probable que los paquetes sean fragmentados en un dispositivo IP a lo largo del trayecto al destino, dado que la mayoría de los links utiliza una MTU de 1500 bytes como mínimo. La desventaja es que paquetes más pequeños aumentan la cantidad de ancho de banda usada al Transport Overhead. Puesto que el BGP construye una conexión TCP a todos los pares, veces 536 del byte MSS de una convergencia BGP de las influencias.

La solución es activar la característica Trayecto MTU (PMTU), usando el comando ip tcp path-mtu-discovery. Usted puede utilizar esta característica para determinar dinámicamente cómo es grande el valor MSS puede estar sin crear los paquetes que necesitan ser hechos fragmentos. El PMTU permite que el TCP determine la talla del MTU más pequeña entre todos los links en una sesión TCP. El TCP entonces utiliza este valor MTU, menos el espacio para el IP y los encabezados TCP, como el MSS para la sesión. Si una sesión de TCP sólo atraviesa segmentos Ethernet, entonces el MSS será de 1460 bytes. Si sólo recorre segmentos de paquete sobre SONET (POS), el MSS será de 4430 bytes. El aumento en el MSS a partir del 536 a 1460 o 4430 bytes reduce los gastos indirectos TCP/IP, que ayuda al BGP para converger más rápidamente.

Después de habilitar el PMTU, utilice otra vez a los vecinos BGP del IP de la demostración | incluya el comando data máximo de ver el valor MSS por el par:

Router# show ip bgp neighbors | include max data 
Datagrams (max data segment is 1460 bytes): 
Datagrams (max data segment is 1460 bytes): 
Datagrams (max data segment is 1460 bytes): 
Datagrams (max data segment is 1460 bytes): 

Aumentar las colas de entrada de interfaz

Si BGP está anunciando miles de rutas a muchos pares, TCP debe transmitir miles de paquetes en poco tiempo. Los peeres BGP reciben estos paquetes y envían los reconocimientos de TCP al BGP de conversación de la publicidad, que hace al BGP de conversación recibir una inundación de TCP ACK en un período corto. Si los ACK (Acuse de recibo) llegan a una velocidad demasiado alta para el procesador de ruta, los paquetes se almacenan en colas de interfaz entrantes. De forma predeterminada, las interfaces de ruta utilizan un tamaño de cola de entrada de 75 paquetes. Además, los paquetes de control especiales como BGP UPDATES utilizan una cola especial con descarte selectivo de paquetes (SPD). Esta cola especial contiene 100 paquetes. Durante la convergencia BGP, los ACK de TCP pueden llenar rápido los 175 sitios de memoria intermedia de entrada y se deben descartar los paquetes recién llegados. En routers con 15 o más pares BGP e intercambio de la tabla de ruteo de Internet completa, pueden observarse más de 10,000 rechazos por interfaz por minuto. A continuación se proporciona un ejemplo de salida desde un router 15 minutos posteriores al reinicio:

Router# 
show interface pos 8/0 | include input queue 
Output queue 0/40, 0 drops; input queue 0/75, 278637 drops 
Router#

Aumentando la profundidad de la cola de entrada de la interfaz (usando la control-cola <1-4096> en el comando) las ayudas reducen el número de TCP caído ACK, que reduce la cantidad del trabajo BGP debe hacer para converger. Normalmente, un valor de 1000 problemas de las resoluciones causados por las caídas de entradas en la cola.

Nota: Las Cisco 12000 Series ahora utilizan un valor predeterminado de la margen SPD de 1000. Conservan el tamaño de cola de entrada predeterminado de 75. Use el comando show spd para ver estas colas de entrada especiales.

Mejoras adicionales en el IOS 12.0(19)S

El IOS 12.0(19)S incluye diversas optimizaciones del código del grupo de par BGP que tienen como objetivo mejorar el paquete y la réplica de actualización. Antes de que discutamos estas mejoras, miremos el embalaje y la replicación de la actualización más detalladamente.

Una actualización de BGP consiste en una combinación de atributos (por ejemplo MED = 50 y LOCAL_PREF = 120) y los prefijos de la lista de redes de una información de alcance de la capa (NLRI) que comparten esa combinación de atributos. Se reducen cuanto más prefijos NLRI EL BGP puede enumerar en una sola actualización, cuanto más rápidamente el BGP puede converger desde los gastos indirectos (tales como IP, TCP, y encabezados BGP). El “embalaje de la actualización” refiere al embalaje del NLRI en las actualizaciones de BGP. Por ejemplo, si una tabla BGP lleva a cabo 100,000 rutas con 15,000 combinaciones del atributo único, el BGP necesita enviar solamente 15,000 actualizaciones si el NLRI pila de discos con el 100 por ciento de eficacia.

Nota: El por ciento cero de eficacia del embalaje significa que el BGP necesitaría enviar 100,000 actualizaciones en este entorno.

Use el comando show ip bgp peer-group para ver la eficiencia de las actualizaciones de BGP.

Si el miembro de un grupo de pares está en sincronización, un router BGP recibe un mensaje de actualización formateado para el líder del grupo de pares y lo replica para dicho miembro. Resulta más eficaz replicar una actualización para un miembro de grupo de pares que darle un nuevo formato a la actualización. Por ejemplo, supongamos que un grupo de pares tiene 20 miembros y todos los miembros necesitan recibir 100 mensajes BGP. Una replicación de cien por ciento significa que un router BGP formatea los 100 mensajes para el líder del grupo de pares y duplica esos mensajes a los otros 19 miembros del grupo de pares. Para confirmar las mejoras en la replicación, compare el número de mensajes replicados al número de mensajes formatados, como se muestra por el comando show ip bgp peer-group. Las mejoras marcan una diferencia importante en los tiempos de convergencia y permiten que BGP sea compatible con más pares. Veamos un ejemplo.

Use el comando show ip bgp peer-group para comprobar la eficiencia del paquete de actualizaciones y de la replicación de actualizaciones. La siguiente salida es de una prueba de convergencia con 6 grupos de pares, 20 pares en cada uno de los primeros 5 grupos de pares (pares eBGP) y 100 pares en el sexto grupo de pares (pares BGP internos, iBGP). También, la tabla BGP que fue utilizada tenía 36,250 combinaciones de atributo.

La salida de muestra siguiente del grupo de peers BGP del IP de la demostración | incluya el comando replicado en un router que ejecuta IOS 12.0(18)S visualiza la siguiente información:

Update messages formatted 836500, replicated 1668500 
Update messages formatted 1050000, replicated 1455000 
Update messages formatted 660500, replicated 1844500 
Update messages formatted 656000, replicated 1849000 
Update messages formatted 501250, replicated 2003750 

!-- The first five lines are for eBGP peer groups.
 
Update messages formatted 2476715, replicated 12114785 

!-- The last line is for an iBGP peer group.

Para calcular la velocidad de replicación para cada grupo de peer, divida el número de actualizaciones replicadas por el número de actualizaciones formatadas:

1668500/836500 = 1.99 1455000/1050000 = 1.38 1844500/660500 = 2.79 1849000/656000 = 2.81 2003750/501250 = 3.99 12114785/2476715 = 4.89

Si el BGP replicado perfectamente, entonces los grupos de peers de eBGP cada uno tendría una velocidad de replicación de 19 porque hay 20 pares en el grupo de peer. La actualización se debe formatar para el líder de grupo de peer y después replicar a los otros 19 pares, proporcionando a una velocidad de replicación óptima de 19. La velocidad de replicación ideal para el grupo de peers de iBGP sería 99 puesto que hay 100 pares.

Si BGP comprimido se actualiza perfectamente, sólo habremos formateado 36,250 actualizaciones. Necesitaríamos generar únicamente 36,250 actualizaciones para cada grupo de pares, ya que ésa es la cantidad de combinaciones de atributos en la tabla BGP. El grupo de pares iBGP formatea 2,500,000 actualizaciones aproximadamente mientras que cada grupo de pares eBGP genera de 500,000 a 1,000,000 de actualizaciones.

En un router que ejecuta IOS 12.0(19)S, el grupo de peers BGP del IP de la demostración | incluya el comando replicado proporciona esta información:

Update messages formatted 36250, replicated 688750 
Update messages formatted 36250, replicated 688750 
Update messages formatted 36250, replicated 688750 
Update messages formatted 36250, replicated 688750 
Update messages formatted 36250, replicated 688750 
Update messages formatted 36250, replicated 3588750

Nota: El empaquetado de actualización es óptimo. Se les da formato a exactamente 36.250 actualizaciones para cada grupo de interlocutores.

688750/36250 = 19 688750/36250 = 19 688750/36250 = 19 688750/36250 = 19 688750/36250 = 19 3588750/36250 = 99

Nota: La duplicación de la actualización también es perfecta.

Resolución de problemas

Utilice estos procedimientos para resolver problemas CPU elevada debido al escáner BGP o al router BGP:

  • Recopile la información sobre su topología BGP. Determine la cantidad de pares BGP y la cantidad de rutas que se anuncian para cada par. ¿La duración de la condición razonable alta de la CPU se relaciona con su entorno?

  • Determine cuando CPU elevada sucede. ¿Coincide con un recorrido regularmente programado de la tabla de BGP?

  • Ejecute el comando show ip bgp flap-statistics. ¿La alta CPU siguió la inestabilidad de interfaz?

  • Realice un ping a través del router y luego otro desde el router. Los ecos de ICMP se administran como un proceso de prioridad baja. El documento que entiende los comandos ping and traceroute explica esto más detalladamente. Asegure que los reenvíos periódicos no sean afectados.

  • Asegúrese de que los paquetes puedan seguir un trayecto de reenvío rápido marcando si la transferencia rápida y/o el CEF están habilitados en el entrante y las interfaces de salida. Asegúrese de que usted no vea el comando no ip route-cache cef en la interfaz o el comando no ip cef en la configuración global. Para habilitar el CEF en el modo de configuración global, utilice el comando ip cef.

  • Obtenga la salida de estos comandos:

    Comando Descripción
    Muestre el resumen del cef de los mls Visualiza el número de rutas en la tabla del Layer 3 Switching del hardware del Multilayer Switching (MLS) para todos los protocolos.
    muestre las máximo-rutas del cef de los mls Visualiza la configuración del sistema máxima actual de la ruta.
    muestre la excepción del cef de los mls Visualiza la información sobre el estatus de la excepción del Cisco Express Forwarding.

  • Verifique el DRAM en el router. Según la recomendación, debe haber un mínimo de 512 MB del espacio en DRAM por el peer BGP que envía la tabla completa de Internet Routing. Si el router tiene dos pares EBGP que funcionen con la tabla completa de Internet Routing, después se recomienda un mínimo 1 GB de espacio en DRAM. El espacio en DRAM mencionado aquí es apenas la memoria requerida para el BGP. Las otras funciones que se ejecutan en el router requerirán el espacio en DRAM adicional.


Información Relacionada


Document ID: 107615