O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve como solucionar problemas de falhas de punt keep alive.
Conhecimento básico no Cisco IOS® XE.
Este documento é baseado nos roteadores Cisco IOS XE como CSR8000v, ASR1000 e ISR4000 Series.
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
O caminho de punt em sistemas baseados no Cisco IOS XE é um caminho de dados interno. Esse é o caminho onde ocorre a comunicação entre o plano de controle e o plano de dados.
Esse caminho interno é usado para transmitir pacotes de plano de controle para consumo do roteador.
Quando esse caminho falha, você pode ver esse tipo de erro no registro.
%IOSXE_INFRA-4-NO_PUNT_KEEPALIVE: Keepalive not received for 60 seconds
As mensagens keep alive são mensagens que monitoram a integridade do caminho entre o QFP e o RP.
Esse caminho é crítico para o sistema operar.
Se esses keep alives não forem recebidos em 5 minutos, você poderá ver um log crítico como este:
%IOSXE_INFRA-2-FATAL_NO_PUNT_KEEPALIVE: Keepalive not received for 300 seconds resetting
O sistema é redefinido para se recuperar dessa condição.
No caso de falhas de manutenção de atividade de punt e reinicializações devido a elas, o sistema cria um arquivo chamado punt_debug.log que coleta dados relevantes para entender o comportamento no momento do problema.
Note: Certifique-se de ter o sistema atualizado com a versão mais recente do software Cisco IOS XE para que o arquivo punt_debug.log seja gerado.
Esse arquivo contém esses comandos executados várias vezes para entender contadores diferentes.
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 ative statistics drop
show platform hardware qfp ative infra punt statistics type per-cause
show platform hardware qfp ative infrastructure bqs queue output default all
Note: No arquivo punt_debug.log, você se concentra nos indicadores de erro e na grande quantidade de pacotes que podem causar o problema.
Este componente é usado para transmitir pacotes e mensagens do processador de encaminhamento para o processador de roteamento.
O punt policer é um mecanismo de proteção do plano de controle que permite que o sistema proteja e policie os pacotes do plano de controle.
Com o comando show platform software punt-policer, você pode ver os pacotes em conformidade e os descartados devido a esse vigilante.
----------------- 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 ——
O comando show platform software infrastructure punt mostra dados do contador sobre 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
Esses dados são relevantes para entender o que pode estar afetando o caminho do punt keep alive.
Caso o arquivo punt_debug.log não forneça dados suficientes para diagnosticar o problema, o script EEM pode ser usado para obter mais pontos de dados no momento do 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"
Note: Os comandos contidos no script variam de acordo com a plataforma em que ele está configurado.
Esse script permite que você compreenda o lsmpi, os recursos e o estado de punt durante o tempo de ocorrência.
O script EEM inclui o comando debug platform hardware qfp ative datapath crashdump que gera o dump central qfp, necessário para a equipe do desenvolvedor e o TAC.
Note: Se estiver preenchendo um caso com o TAC da Cisco, forneça o arquivo central gerado pelo script.
Se um rastreamento de pacote for necessário, esta emenda pode ser adicionada ao script:
Primeiro, defina a configuração de rastreamento de pacotes, que pode ser feita a partir do script EEM:
debug platform packet-trace packet 8192 fia-trace circular
debug platform condition both
debug platform packet-trace copy packet ambos L2
Em seguida, inicie e pare-o com estas ações no script EEM:
ação 6.2 comando cli "debug platform condition start"
ação 6.3 aguardar 8
ação 6.4 comando cli "debug platform condition stop"
Em seguida, descarte os dados com estes comandos em um arquivo separado:
action 6.5 cli command "show platform packet-trace statistics | append bootflash:traceAll.txt"
ação 6.6 comando cli "show platform packet-trace summary | append bootflash:traceAll.txt"
action 6.7 cli command "decodificação total show platform packet-trace packet | append bootflash:traceAll.txt"
Essa lógica de ações de rastreamento de pacote é adicionada logo após a instrução end do ciclo while no script EEM.
Esse script permite que você entenda que tipo de pacotes pode estar causando o problema.
O rastreamento de pacotes é um recurso documentado em Troubleshooting com o IOS XE Datapath Packet Trace Feature
Um CSR8000v é reinicializado constantemente.
Depois de extrair o relatório do sistema, você pode observar um crashdump e um arquivo central iosd indicando funções relacionadas ao punt keep alive no rastreamento de pilha.
Note: Para a decodificação de rastreamento de pilha, é necessária a assistência do TAC.
No entanto, o arquivo crashinfo está em texto claro e você pode ver estes sintomas:
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
O processo afetado é o processo de manutenção de atividade PuntInject.
O sistema deve disparar um sinal de interrupção quando o keepalive atingir o limite de 300 segundos.
O arquivo punt_debug.log revela algumas falhas de transmissão no 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
Esta é uma falha genérica.
Esse contador aumenta em várias amostras do arquivo.
O script EEM foi fornecido para obter mais dados sobre os recursos, o caminho de dados punt e outros comandos relacionados à infraestrutura.
Ao verificar os contadores de punt de tráfego lsmpi, você verá que os pacotes de plano de controle do EIGRP são notáveis. Estes são pacotes identificados como para pacotes de uso:
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<<<<
Mais tarde, descobriu-se que o hipervisor tinha excesso de assinaturas, afetando os recursos de computação subjacentes.
O CSR8000v foi implantado em outro hipervisor e isso ajudou a atenuar o problema.
O aprimoramento para a geração automática de arquivos qfp core foi introduzido a partir da versão 17.15 do Cisco IOS XE através da ID de bug CSCwf85505
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
21-Nov-2024 |
Versão inicial |