Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment dépanner les pannes punt keep alive.
Connaissances de base de Cisco IOS® XE.
Ce document est basé sur les routeurs Cisco IOS XE tels que les gammes CSR8000v, ASR1000 et ISR4000.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Dans les systèmes basés sur Cisco IOS XE, le chemin ponctuel est un chemin de données interne. Il s’agit du chemin sur lequel s’effectue la communication entre le plan de contrôle et le plan de données.
Ce chemin interne est utilisé pour transmettre les paquets du plan de contrôle pour la consommation du routeur.
Lorsque ce chemin échoue, vous pouvez voir ce type d'erreur dans le journal.
%IOSXE_INFRA-4-NO_PUNT_KEEPALIVE: Keepalive not received for 60 seconds
Les messages keep alive sont des messages qui surveillent l'état du chemin entre le QFP et le RP.
Ce chemin est essentiel au fonctionnement du système.
Si ces messages de test d'activité ne sont pas reçus dans les 5 minutes, vous pouvez voir un journal critique comme celui-ci :
%IOSXE_INFRA-2-FATAL_NO_PUNT_KEEPALIVE: Keepalive not received for 300 seconds resetting
Le système se réinitialise afin de récupérer de cette condition.
En cas de panne punt keep alive et de réinitialisations dues à celle-ci, le système crée un fichier appelé punt_debug.log qui collecte les données pertinentes pour comprendre le comportement au moment du problème.
Remarque : Assurez-vous que le système est à jour avec la dernière version du logiciel Cisco IOS XE pour le fichier punt_debug.log à générer.
Ce fichier contient ces commandes exécutées plusieurs fois afin de comprendre différents compteurs.
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 tri
show platform software infrastructure punt
show platform hardware qfp active statistics drop
show platform hardware qfp active infra punt statistics type par cause
show platform hardware qfp active infrastructure bqs queue output default all
Remarque : Dans le fichier punt_debug.log, vous vous concentrez sur les indicateurs d'erreur et la grande quantité de paquets pouvant provoquer le problème.
Ce composant est utilisé pour transmettre des paquets et des messages du processeur de transfert au processeur de routage.
Le régulateur de point est un mécanisme de protection du plan de contrôle qui permet au système de protéger et de contrôler les paquets du plan de contrôle.
Avec la commande show platform software punt-policer, vous pouvez voir les paquets conformes et les paquets abandonnés en raison de ce policer.
----------------- 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 ——
La commande show platform software infrastructure punt montre les données du compteur sur les causes 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
Ces données sont pertinentes pour comprendre ce qui peut avoir un impact sur le chemin punt keep alive.
Si le fichier punt_debug.log ne fournit pas suffisamment de données pour diagnostiquer le problème, le script EEM peut être utilisé pour obtenir plus de points de données au moment du problème.
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"
Remarque : Les commandes contenues dans le script varient en fonction de la plate-forme sur laquelle il est configuré.
Ce script vous permet de comprendre lsmpi, les ressources et l'état punt pendant le problème.
Le script EEM inclut la commande debug platform hardware qfp active datapath crashdump qui génère le core dump qfp, nécessaire à l'équipe de développeurs et au TAC.
Remarque : Si vous soumettez un dossier au TAC Cisco, veuillez fournir le fichier de base généré par le script.
Si une trace de paquet est nécessaire, cette modification peut être ajoutée au script :
Commencez par configurer la trace des paquets, ce qui peut être fait à partir du script EEM :
debug platform packet-trace packet 8192 fia-trace circulaire
debug platform condition both
debug platform packet-trace copy packet les deux L2
Ensuite, démarrez et arrêtez-le avec les actions suivantes dans le script EEM :
action 6.2 commande cli "debug platform condition start"
action 6.3 attente 8
action 6.4 commande cli "debug platform condition stop"
Ensuite, copiez les données avec ces commandes dans un fichier séparé :
action 6.5, commande cli « show platform packet-trace statistics » | append bootflash:traceAll.txt"
action 6.6 cli, commande "show platform packet-trace summary | append bootflash:traceAll.txt"
action 6.7 cli, commande "show platform packet-trace packet all decode | append bootflash:traceAll.txt"
Cette logique d'actions de suivi de paquet est ajoutée juste après l'instruction de fin du cycle while dans le script EEM.
Ce script vous permet de comprendre quel type de paquets peut être à l'origine du problème.
Packet Trace est une fonctionnalité documentée dans Dépannage avec la fonctionnalité Packet Trace de Datapath IOS XE
Un routeur CSR8000v redémarre constamment.
Après avoir extrait le rapport système, vous pouvez observer un crashdump, et un fichier de noyau iosd indiquant punt keep alive des fonctions liées dans la trace de la pile.
Remarque : Pour le décodage de la trace de la pile, une assistance TAC est requise.
Cependant, le fichier crashinfo est en texte clair et vous pouvez voir ces symptômes :
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
Le processus affecté est le processus de maintien de la connexion PuntInject.
Le système doit déclencher un signal d'abandon lorsque le keepalive atteint le seuil de 300 secondes.
Le fichier punt_debug.log révèle quelques échecs de transmission dans la commande 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
Il s'agit d'un échec générique.
Ce compteur augmente dans plusieurs échantillons pris dans le fichier.
Le script EEM a été fourni pour obtenir plus de données sur les ressources, le chemin de données punt et d'autres commandes liées à l'infrastructure.
En vérifiant les compteurs de points de trafic lsmpi, vous voyez que les paquets du plan de contrôle EIGRP sont remarquables. Il s'agit de paquets identifiés comme pour nous paquets :
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<<<<
Par la suite, il a été constaté que l'hyperviseur était en sursouscription, ce qui a eu un impact sur les ressources de calcul sous-jacentes.
Le routeur CSR8000v a été déployé dans un autre hyperviseur, ce qui a permis d'atténuer le problème.
L'amélioration pour la génération automatique de fichier de noyau qfp a été introduite en démarrant la version 17.15 de Cisco IOS XE via l'ID de bogue Cisco CSCwf85505
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
21-Nov-2024 |
Première publication |