Problema
Nas plataformas Cisco Secure Firewall Firepower (versões 7.6.4, 7.7 e 10.0.0), quando várias sessões SSH estão ativas no mesmo dispositivo, a execução de um comando de execução longa (como um ping contínuo) em uma sessão usando CLI CLI impede que outros comandos CLI sejam concluídos em outras sessões ou CLISH. Por exemplo, se um administrador inicia um ping contínuo em uma sessão SSH CLISH e tenta executar os comandos show em outra sessão CLISH, os comandos subsequentes travam até que o comando de execução longa seja concluído ou anulado. Em determinadas versões, o comando o ping de execução longa não pode ser anulado do CLISH, levando a um travamento de CLISH ou implantação. O uso do modo especialista ou do mecanismo LINA diretamente (via system support diagnostic-cli) permite a operação sem esse comportamento de bloqueio.
Ambiente
- Plataformas de hardware Cisco Secure Firewall Firepower: Séries 1000, 1200 e 4200
- Versões de software: 7.6.4, 7.7, 10.0.0
- Várias sessões SSH (usuários iguais ou diferentes) para o mesmo dispositivo
- interface CLISH CLI
- Modo de especialista e uso de CLI de diagnóstico LINA
- Testado com comandos: ping,
traceroute, show sip, show ip, show conn, show xlate
- Problema reproduzido nos dispositivos FPR1010, FPR1200 e FPR4200
- Defeitos relacionados: CSCws82823, CSCwb84748
Resolução
O problema mostra estes sintomas:
- Estabeleça duas sessões SSH para o dispositivo usando credenciais de usuário diferentes ou idênticas.
- Na Sessão 1, execute um ping de longa duração com uma contagem de repetição alta a partir do prompt FTD CLISH.
> ping 1.1.1.1 repeat 2000
CUIDADO: se estiver realizando um teste, tente isso com números de contagem menores, como 2000, pode levar horas para ser concluído.
OBSERVAÇÃO: um ping/traceroute no CLISH não mostra nenhum caractere de progresso como normalmente visto diretamente no CLI LINA.
- Na Sessão 2, tente executar outro comando LINA no CLISH, como "show sip".
> show sip
- O comando na Sessão 2 não é concluído até que o ping na Sessão 1 termine ou seja anulado.
Esta resolução está disponível:
- Anule o comando inicial prolongado com Ctrl+C para evitar o travamento de CLISH e a paralisação da implantação.
- Nas versões afetadas, pings de longa execução no CLISH não podem ser anulados por Ctrl+C ou fechando a sessão SSH.
- Se houver uma tentativa, o processo de back-end continuará e CLISH permanecerá bloqueado para outros comandos LINA.
- Se o FTD for encontrado nesse estado, ou se houver suspeita de que o FTD entrou nesse estado com um ping travado e prolongado, será necessário reinicializar o FTD para recuperar.
- Para evitar travamento de CLISH/implantação, execute comandos LINA usando o mecanismo LINA diretamente. Esse método não exibe o comportamento defeituoso.
> system support diagnostic-cli
firepower# ping 1.1.1.1 repeat 2000
- Os comandos executados através da CLI de diagnóstico LINA não bloqueiam CLISH ou processos de implantação em outras sessões. No entanto, o suporte do sistema diagnostic-cli permite apenas um usuário da CLI por sessão.
Considerações e observações adicionais:
- Os comandos traceroute geralmente podem ser abortados no CLISH, mas ainda podem causar paralisação temporária (~3 minutos) para novos comandos LINA em outras sessões.
- As operações de implantação iniciadas no Secure Firewall Management Center ou no Gerenciador de dispositivos podem ser atrasadas ou bloqueadas se um ping de longa duração estiver ativo no CLISH, pois ambos os processos usam métodos síncronos e aguardam a conclusão (até 10 minutos).
- Esse comportamento de bloqueio é projetado para operações de processo síncronas; no entanto, a incapacidade de abortar foi introduzida pelo defeito.
Causa
A causa raiz é um defeito (Cisco Bug ID CSCws82823) que removeu inadvertidamente o código necessário de certos comandos CLI no CLISH, impedindo que o mecanismo LINA reconhecesse e gerenciasse corretamente os comandos de longa execução. Isso resultou na perda da funcionalidade de anulação de Ctrl+C e fez com que o CLISH travasse, bloqueando outros comandos e operações de implantação até que o comando de longa execução fosse concluído. O comportamento de bloqueio é devido à natureza síncrona do processamento do comando CLISH.
Conteúdo relacionado