Contenido

Introducción

Prerequisites

Requirements

Componentes Utilizados

Antecedentes

El archivo de registro de depuración Punt

Interfaz de memoria compartida de Linux (LSMPI)

El policía de Punt

Embedded Event Manager (EEM) para la recopilación de datos

Un ejemplo práctico

Ampliaciones

Introducción

Este documento describe cómo resolver problemas de fallas de mantenimiento de conexión punt.

Prerequisites

Requirements

Conocimientos básicos de Cisco IOS® XE.

Componentes Utilizados

Este documento se basa en los routers Cisco IOS XE como CSR8000v, ASR1000 e ISR4000 Series.

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 tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Antecedentes

La ruta de punt en los sistemas basados en Cisco IOS XE es una ruta de datos interna. Ésta es la ruta en la que tiene lugar la comunicación entre el plano de control y el plano de datos.

Esta ruta interna se utiliza para transmitir paquetes del plano de control para el consumo del router.

Cuando esta ruta falla, puede ver este tipo de error en el registro.

%IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 60 seconds

Los mensajes de activación son mensajes que monitorean el estado de la trayectoria entre el QFP y el RP.

Esta ruta es fundamental para que el sistema funcione.

Si estas señales de mantenimiento no se reciben en 5 minutos, puede ver un registro crítico como este:

%IOSXE_INFRA-2-FATAL_NO_PUNT_KEEPALIVE:  Keepalive not received for 300 seconds resetting

El sistema se restablece para recuperarse de esta condición.

El archivo de registro de depuración de Punt

En el caso de que se produzcan fallos de mantenimiento de arranque y se restablezcan debido a él, el sistema crea un archivo denominado punt_debug.log que recopila los datos relevantes para comprender el comportamiento en el momento del problema.

Nota: Asegúrese de tener el sistema actualizado con la última versión del software Cisco IOS XE para el archivo punt_debug.log que se va a generar.

Este archivo contiene la ejecución de estos comandos varias veces para comprender los diferentes contadores.

show platform software infra punt-keepalive

show platform software infra lsmpi

show platform software infrastructure lsmpi driver

show platform software infra lsmpi bufusage

show platform software punt-policer

show platform software status control-processor brief

show process cpu platform sorted

show platform software infrastructure punt

show platform hardware qfp active statistics drop

show platform hardware qfp active infra punt statistics type per-cause

show platform hardware qfp active infrastructure bqs queue output default all

Nota: Dentro de punt_debug.log, usted se centra en los indicadores de error y la gran cantidad de paquetes que pueden causar el problema.

Interfaz de memoria compartida de Linux (LSMPI)

Este componente se utiliza para transmitir paquetes y mensajes del procesador de reenvío al procesador de ruteo.

El policía de Punt

El regulador de punt es un mecanismo de protección del plano de control que permite que el sistema proteja y controle los paquetes del plano de control.

Con el comando show platform software punt-policer, puede ver los paquetes conformes y los descartados debido a este regulador.

----------------- show platform software punt-policer ------------------

Per Punt-Cause Policer Configuration and Packet Counters

Punt                                Config Rate(pps)     Conform Packets                   Dropped Packets               Config Burst(pkts)  Config Alert

Cause  Description                   Normal   High     Normal           High             Normal           High             Normal   High     Normal   High

-------------------------------------------------------------------------------------------------------------------------------------------------------------

2    IPv4 Options                  874      655      0                0                0                0                874      655      Off      Off

3    Layer2 control and legacy     8738     2185     0                0                0                0                8738     2185     Off      Off

4    PPP Control                   437      1000     0                0                0                0                437      1000     Off      Off

—— snip : output omitted for brevity  ——

El comando show platform software infrastructure punt muestra los datos de contador sobre las causas de punt.

------------------ show platform software infrastructure punt ------------------

LSMPI interface internal stats:

enabled=0, disabled=0, throttled=0, unthrottled=0, state is ready

Input Buffers = 51181083

Output Buffers = 51150283

—— snip : output omitted for brevity  ——

EPC CP RX Pkt cleansed 0

Punt cause out of range 0

IOSXE-RP Punt packet causes:

3504959 ARP request or response packets

27 Incomplete adjacency packets

—— snip : output omitted for brevity  ——

FOR_US Control IPv4 protcol stats:

2369262 TCP packets

FOR_US Control IPv6 protcol stats:

6057 ICMPV6 packets

Packet histogram(500 bytes/bin), avg size in 119, out 95:

Pak-Size      In-Count        Out-Count

0+:      51108211         51144723

500+:         22069             2632

1000+:          2172                0

1500+:          3170                0

Estos datos son relevantes para entender lo que puede estar impactando en la trayectoria de mantener vivo el punt.

Embedded Event Manager (EEM) para la recopilación de datos

En el caso de que punt_debug.log no proporcione suficientes datos para diagnosticar el problema, se pueden utilizar scripts EEM para obtener más puntos de datos en el momento del problema.

event manager applet punt_script authorization bypass

event syslog pattern "IOSXE_INFRA-4-NO_PUNT_KEEPALIVE" maxrun 1000

action 0.0 cli command "enable"

action 0.1 set i "0"

action 0.2 cli command "test platform software punt-keepalive ignore-fault"

action 0.3 while $i lt 10

action 0.4 syslog msg "iteration $i"

action 0.9 cli command "show clock | append bootflash:qfp_lsmpi.txt"

action 1.0 cli command "show platform software infrastructure lsmpi | append bootflash:qfp_lsmpi.txt"

action 1.1 cli command "show platform software infrastructure lsmpi driver | append bootflash:qfp_lsmpi.txt"

action 1.2 cli command "show platform software infrastructure lsmpi driver 0 | append bootflash:qfp_lsmpi.txt"

action 1.3 cli command "show platform software infrastructure lsmpi bufusage | append bootflash:qfp_lsmpi.txt"

action 1.4 cli command "show platform software infrastructure lsmpi bufusage 0 | append bootflash:qfp_lsmpi.txt"

action 1.5 cli command "show platform software infrastructure punt-keepalive | append bootflash:qfp_lsmpi.txt"

action 1.6 cli command "show platform software infrastructure punt | append bootflash:qfp_lsmpi.txt"

action 1.7 cli command "show platform software punt-policer | append bootflash:qfp_lsmpi.txt"

action 1.8 cli command "show platform hardware qfp active infrastructure punt stat type per-cause | append bootflash:qfp_lsmpi.txt"

action 1.9 cli command "show platform hardware qfp active infrastructure punt statistics type punt-drop | append bootflash:qfp_lsmpi.txt"

action 1.a cli command "show platform hardware qfp active infrastructure punt statistics type inject-drop | append bootflash:qfp_lsmpi.txt"

action 1.b cli command "show platform hardware qfp active infrastructure bqs queue output default interface-string internal0/0/rp:0 hier detail | append bootflash:qfp_lsmpi.txt"

action 1.c cli command "show platform hardware qfp active statistics drop | append bootflash:qfp_lsmpi.txt"

action 1.d cli command "show platform hardware qfp active datapath utilization | append bootflash:qfp_lsmpi.txt"

action 1.e cli command "show platform hardware qfp active datapath infrastructure sw-hqf | append bootflash:qfp_lsmpi.txt"

action 1.f cli command "show platform hardware qfp active datapath infrastructure sw-distrib | append bootflash:qfp_lsmpi.txt"

action 1.g cli command "show platform hardware qfp active datapath infrastructure sw-pktmem | append bootflash:qfp_lsmpi.txt"

action 1.h cli command "show platform software status control-processor brief | append bootflash:qfp_lsmpi.txt"

action 2.0 increment i

action 2.1 wait 3

action 2.4 end

action 3.0 syslog msg "End of data collection. Please transfer the file at bootflash:qfp_lsmpi.txt"

action 5.0 cli command "debug platform hardware qfp active datapath crashdump"

Nota: Los comandos contenidos en el script varían en función de la plataforma en la que está configurado.

Esta secuencia de comandos le permite comprender el lsmpi, los recursos y el estado de punt durante el tiempo de emisión.

El script EEM incluye el comando debug platform hardware qfp active datapath crashdump que genera el vaciado de memoria qfp, necesario para el equipo de desarrolladores y el TAC.

Nota: Si va a presentar un caso ante el TAC de Cisco, proporcione el archivo principal generado por el script.

Si se necesita un seguimiento de paquetes, esta enmienda se puede agregar al script:

En primer lugar, configure la configuración de seguimiento de paquetes, que se puede realizar fuera del script EEM:

debug platform packet-trace packet 8192 fia-trace circular

debug platform condition both

debug platform packet-trace copy packet both L2

A continuación, inícielo y deténgalo con estas acciones en el script EEM:

action 6.2 cli command "debug platform condition start"

acción 6.3 espera 8

action 6.4 cli command "debug platform condition stop"

Luego, vuelque los datos con estos comandos en un archivo separado:

action 6.5 cli command "show platform packet-trace statistics | append bootflash:traceAll.txt"

action 6.6 cli command "show platform packet-trace summary | append bootflash:traceAll.txt"

action 6.7 cli command "show platform packet-trace packet all decode | append bootflash:traceAll.txt"

Esta lógica de acciones de seguimiento de paquetes se agrega justo después de la sentencia end del ciclo while dentro del script EEM.

Este script le permite entender qué tipo de paquetes pueden estar causando el problema.

La traza de paquetes es una función documentada en Resolución de Problemas con la Función de Rastreo de Paquetes de Ruta de Datos IOS XE

Un ejemplo práctico

CSR8000v se está reiniciando constantemente.

Después de extraer el informe del sistema, puede observar un crashdump, y un archivo de núcleo iosd que indica que punt mantiene activas las funciones relacionadas dentro del seguimiento de la pila.

Nota: Para la decodificación de seguimiento de pila, se requiere la asistencia del TAC.

Sin embargo, el archivo crashinfo está en texto sin formato y puede ver estos síntomas:

Jan 15 14:29:41.756 AWST: %IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 160 seconds

Jan 15 14:30:01.761 AWST: %IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 180 seconds

Jan 15 14:30:21.766 AWST: %IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 200 seconds

Jan 15 14:30:41.776 AWST: %IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 220 seconds

Jan 15 14:31:01.780 AWST: %IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 240 seconds

Jan 15 14:31:41.789 AWST: %IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 280 seconds

Jan 15 14:32:01.791 AWST: %IOSXE_INFRA-4-NO_PUNT_KEEPALIVE:  Keepalive not received for 300 seconds

Jan 15 14:32:01.791 AWST: %IOSXE_INFRA-2-FATAL_NO_PUNT_KEEPALIVE:  Keepalive not received for 300 seconds resetting

%Software-forced reload

Exception to IOS Thread:

Frame pointer 0x7F0AE0EE29A8, PC = 0x7F0B342C16D2

UNIX-EXT-SIGNAL: Aborted(6), Process = PuntInject Keepalive Process

-Traceback= 1#7b5996c3

El proceso afectado es el proceso PuntInject Keepalive.

El sistema debe activar una señal de interrupción cuando el keepalive alcance la marca de umbral de 300 segundos.

El archivo punt_debug.log revela algunas fallas de transmisión dentro del comando show platform software infrastructure lsmpi driver:

Reason for TX drops (sticky):

Bad packet len   : 0

Bad buf len      : 0

Bad ifindex      : 0

No device        : 0

No skbuff        : 0

Device xmit fail : 82541   >>>>>>>>>>>>>>>>>>>>> Tx failure

Este es un error genérico.

Este contador aumenta dentro de las muestras tomadas en el archivo.

El script EEM se proporcionó para obtener más datos sobre los recursos, la ruta de datos de punt y otros comandos relacionados con la infraestructura.

Al verificar los contadores de punt de tráfico lsmpi, verá que los paquetes del plano de control EIGRP son notables. Estos son paquetes identificados como para nosotros paquetes:

17660574 For-us data packets

543616 RP<->QFP keepalive packets

1004 Glean adjacency packets

3260636 BFD control packets

122523839 For-us control packets<<<<

FOR_US Control IPv4 protcol stats:

153551 TCP packets

2663105 GRE packets

104394559 EIGRP packets<<<<

Más adelante, se observó que el hipervisor tenía una suscripción excesiva, lo que afectó a los recursos informáticos subyacentes.

El CSR8000v se implementó en otro hipervisor, lo que ayudó a mitigar el problema.

Ampliaciones

La mejora para la generación automática de archivos de núcleo qfp se introdujo a partir de la versión 17.15 del IOS XE de Cisco mediante el ID de bug de Cisco CSCwf85505