Problema
En las plataformas Cisco Secure Firewall Firepower (versiones 7.6.4, 7.7 y 10.0.0), cuando hay varias sesiones SSH activas en el mismo dispositivo, la ejecución de un comando de larga ejecución (como un ping continuo) en una sesión mediante CLISH CLI impide que otros comandos CLI se completen en otras sesiones o CLISH. Por ejemplo, si un administrador inicia un ping continuo en una sesión SSH CLISH e intenta ejecutar los comandos show en otra sesión CLISH, los comandos subsiguientes se bloquean hasta que el comando de larga ejecución se completa o se anula. En ciertas versiones, el ping de larga ejecución no se puede cancelar desde CLISH, lo que provoca un bloqueo de CLISH o de implementación. El uso del modo experto o del motor LINA directamente (mediante system support diagnostic-cli) permite el funcionamiento sin este comportamiento de bloqueo.
Entorno
- Plataformas de hardware de Cisco Secure Firewall Firepower: Series 1000, 1200 y 4200
- Versiones de software: 7.6.4, 7.7, 10.0.0
- Varias sesiones SSH (mismos usuarios o diferentes) en el mismo dispositivo
- interfaz CLI CLISH
- Uso de CLI de diagnóstico de LINA y modo experto
- Probado con comandos: ping,
traceroute, show sip, show ip, show conn, show xlate
- Problema reproducido en dispositivos FPR1010, FPR1200 y FPR4200
- Defectos relacionados: CSCws82823, CSCwb84748
Resolución
El problema muestra estos síntomas:
- Establezca dos sesiones SSH en el dispositivo utilizando credenciales de usuario diferentes o idénticas.
- En la Sesión 1, ejecute un ping de larga duración con un conteo de repeticiones alto desde el mensaje CLISH de FTD.
> ping 1.1.1.1 repeat 2000
PRECAUCIÓN: si realiza la prueba, intente hacerlo con números de recuento más pequeños, ya que 2000 podría tardar horas en completarse.
NOTA: Un ping/traceroute en CLISH no muestra ningún carácter de progreso como se ve normalmente directamente en la CLI de LINA.
- En la sesión 2, intente ejecutar otro comando LINA en CLISH como "show sip".
> show sip
- El comando en la Sesión 2 no se completa hasta que el ping en la Sesión 1 finaliza o se anula.
Esta resolución está disponible:
- Anule el comando inicial prolongado con Ctrl+C para evitar que CLISH se bloquee y se detenga la implementación.
- En las versiones afectadas, los pings de larga ejecución en CLISH no se pueden anular con Ctrl+C o cerrando la sesión SSH.
- Si se intenta, el proceso backend continúa y CLISH permanece bloqueado para otros comandos LINA.
- Si el FTD se encuentra en tal estado, o si se sospecha que el FTD ha entrado en tal estado con un ping atascado y prolongado, es necesario reiniciar el FTD para recuperarlo.
- Para evitar CLISH/bloqueo de despliegue, ejecute comandos LINA directamente utilizando el motor LINA. Este método no muestra el comportamiento defectuoso.
> system support diagnostic-cli
firepower# ping 1.1.1.1 repeat 2000
- Los comandos ejecutados a través de la CLI de diagnóstico de LINA no bloquean los procesos de CLISH o de implementación en otras sesiones. Sin embargo, la compatibilidad del sistema con diagnostic-cli sólo permite un usuario de CLI por sesión.
Consideraciones y observaciones adicionales:
- Los comandos Traceroute generalmente se pueden abortar en CLISH, pero aún así pueden causar paralización temporal (~3 minutos) para los nuevos comandos LINA en otras sesiones.
- Las operaciones de implementación iniciadas desde Secure Firewall Management Center o el administrador de dispositivos pueden retrasarse o bloquearse si un ping de larga duración está activo en CLISH, ya que ambos procesos utilizan métodos sincrónicos y esperan a completarse (hasta 10 minutos).
- Este comportamiento de bloqueo es por diseño para las operaciones de proceso síncronas; sin embargo, la incapacidad de abortar fue introducida por el defecto.
Causa
La causa raíz es un defecto (ID de bug de Cisco CSCws82823) que quitó inadvertidamente el código requerido de ciertos comandos CLI en CLISH, impidiendo que el motor LINA reconozca y administre correctamente los comandos de larga ejecución. Esto resultó en la pérdida de la funcionalidad de anulación de Ctrl+C y causó que CLISH se bloqueara, bloqueando otros comandos y operaciones de implementación hasta que el comando de larga ejecución se completara. El comportamiento de bloqueo se debe a la naturaleza sincrónica del procesamiento de comandos CLISH.
Contenido relacionado