Cisco ASA IPsec隧道断开发送RST致连接中断问题咨询
Cisco ASA在IPsec隧道中断重置时的RST发送行为分析
我来帮你理清这个问题:在你遇到的这种IPsec隧道短暂中断(10秒)并重新初始化SA的场景下,Cisco ASA确实会发送RST数据包,强制终止原本通过隧道传输的现有连接,这正是你看到Jenkins主从断开、SSH会话重置的原因。
背后的核心逻辑
- 连接状态跟踪机制:ASA会全程维护所有经过它的连接状态表,包括走IPsec隧道的流量。当隧道意外中断时,ASA会立刻将这些隧道内的连接标记为"无效"——因为原来的加密传输路径已经不存在了。
- RST触发的时机:当隧道中断后,如果LAN-1或LAN-2还有流量试图沿用旧连接(比如Jenkins的心跳包、SSH的会话数据),ASA检测到这些流量无法通过失效隧道传输,就会默认发送RST数据包给通信两端,直接终止连接。
- 10秒中断的影响:哪怕隧道很快恢复并重建SA,原来的连接状态在ASA的连接表中已经被清除或标记为无效。隧道恢复后,旧的Jenkins连接、SSH会话也没法自动续上,因为ASA已经发RST让两端彻底断开了。
怎么验证和缓解?
验证方法
你可以通过ASA的日志确认这个行为:
- 先启用日志功能:
logging enable,再设置缓冲区大小:logging buffer-size 100000 - 查看日志时,找类似
%ASA-6-302014: Teardown TCP connection ... for outside ... reason "IPsec tunnel down"的条目,这类日志会明确说明是隧道中断导致连接被拆除并发送了RST。
缓解思路
- 调整隧道中断通知配置:启用
ipsec disconnect-notify命令,让ASA在隧道即将中断时通知对等体,一定程度上减少连接硬中断的概率。 - 优化隧道存活检测:调整
isakmp keepalive的间隔和重试次数,让隧道能更快检测到中断并完成重建,缩短中断窗口。 - 应用层适配:给Jenkins配置自动重连从节点的规则,SSH会话可以用
autossh这类工具实现自动重连,从应用层面规避底层隧道中断的影响。
补充一句:如果是SA到期正常续约这种平滑的隧道重建,ASA一般不会发RST;但像你遇到的这种意外短暂中断,就会触发RST发送的默认行为。
内容的提问来源于stack exchange,提问作者Satish
相关产品推荐
相关产品推荐

