问题
在Cisco安全防火墙Firepower平台(版本7.6.4、7.7和10.0.0)上,当多个SSH会话对同一设备处于活动状态时,使用CLISH CLI在一个会话中执行长时间运行的命令(例如连续ping)会阻止其他CLI命令在其他会话或CLISH中完成。例如,如果管理员在某个SSH CLISH会话中启动连续ping并尝试在另一个CLISH会话中执行show命令,后续命令将一直挂起,直到长时间运行的命令完成或被中止。在某些版本中无法中止该命令CLISH,导致CLISH或部署锁定。直接使用专家模式或LINA引擎(通过系统支持diagnostic-cli),允许不发生此阻止行为的操作。
环境
- 思科安全防火墙Firepower硬件平台:1000、1200和4200系列
- 软件版本:7.6.4、7.7、10.0.0
- 多个SSH会话(相同或不同的用户)连接到同一设备
- CLISH CLI界面
- 专家模式和LINA诊断CLI用法
- 使用命令测试:ping、
traceroute、show sip、show ip、show conn、show xlate
- FPR1010、FPR1200和FPR4200设备上重现的问题
- 相关问题:CSCws82823、CSCwb84748
分辨率
问题显示以下症状:
- 使用不同的或相同的用户凭证建立与设备的两个SSH会话。
- 在会话1中,从FTD CLISH提示符运行具有高重复计数的长期运行ping。
> ping 1.1.1.1 repeat 2000
注意:如果进行测试,请使用较小的计数数字尝试此操作,例如2000可能需要几个小时才能完成。
注意:CLISH中的ping/traceroute不会显示任何进程字符,这通常在LINA CLI中直接可见。
- 在会话2中,尝试在CLISH中运行另一个LINA命令,例如“show sip”。
> show sip
- 在会话1中的ping完成或中止之前,会话2中的命令不会完成。
此解决方案可用:
- 使用Ctrl+C中止初始延长命令,以避免CLISH锁定和部署延迟。
- 在受影响的版本中,Ctrl+C或通过关闭SSH会话无法中止CLISH中长时间运行的ping。
- 如果尝试后端,则后端进程继续,并且CLISH对于其他LINA命令保持锁定状态。
- 如果发现FTD处于这种状态,或者怀疑该FTD已进入这种状态,并且长时间处于停滞状态,则需要重新启动FTD才能恢复。
- 要避免CLISH/部署锁定,请直接使用LINA引擎运行LINA命令。此方法不会出现有缺陷的行为。
> system support diagnostic-cli
firepower# ping 1.1.1.1 repeat 2000
- 通过LINA诊断CLI执行的命令不会阻止其他会话中的CLISH或部署进程。但system support diagnostic-cli只允许每个会话一个CLI用户。
其他注意事项和意见:
- Traceroute命令通常在CLISH中中止,但在其他会话中对于新LINA命令仍可能导致临时延迟(约3分钟)。
- 如果长时间运行的ping在CLISH中处于活动状态,则从安全防火墙管理中心或设备管理器发起的部署操作可能会延迟或阻塞,因为这两个进程都使用同步方法并等待完成(最长10分钟)。
- 这种阻塞行为是为同步过程操作设计的;然而,无法中止是由于缺陷引起的。
原因
根本原因是存在缺陷(Cisco Bug ID CSCws82823),该缺陷无意中从CLISH中的某些CLI命令中删除了所需的代码,导致LINA引擎无法正确识别和管理长时间运行的命令。这导致Ctrl+C中止功能丢失,并导致CLISH锁定,阻止其他命令和部署操作,直到长时间运行的命令完成。阻塞行为是由于CLISH命令处理的同步性质引起的。
相关内容