是否有另一种方法可以在不更改超时的情况下防止会话重置?
您已经提到过在您的旧 Cisco 负载平衡器上未使用 keepalive,因此我将重点介绍您可以使用 F5 做什么。
你需要解决两个问题......
- 当 TCP 会话从状态表中到期时,F5 向客户端发送重置
- F5 过期后删除 TCP 会话
这两个问题看似相关,但在 F5 上却有不同的解决方案。
解决TCP 重置:
默认情况下,F5 会重置超时的 TCP 会话。您可以reset on timeout disable
在 TCP 配置文件中禁用该行为。然而,所有这些都是阻止 F5 重置客户端连接,但是下次有人休息几个小时时,会话仍然会从 F5 的状态表中过期,然后在 xterm 中再次移动鼠标指针.
在 F5 中解决Session 过期:
使用loose initiation enable
在TCP的个人资料。 loose initiation
允许 F5 在看到未知 TCP 数据包时在 TCP 状态表中创建一个条目。只要这些连接是可信的,并且在您的公司内部,打开loose initiation
就没有问题。
从本质上讲,loose initiation
使 F5 的行为更像路由器而不是负载平衡器,这正是您在这种情况下所需要的。xterm 会话创建一个源自 TCP/6000 到客户端的 TCP 套接字。在这种情况下,无论如何您都不会对 xterm 会话进行负载平衡。
最终解决方案:
您的最终个人资料应如下所示...
profile fastL4 fwd_fastL4_5m_loose {
defaults from fastL4
reset on timeout disable
idle timeout 300
loose initiation enable
}
virtual route_outbound {
destination any:any
mask none
ip forward
profile fwd_fastL4_5m_loose
}
从技术上讲,您可以将超时从 900 秒更改为 300 秒,因为您在route_outbound
服务上启用了松散会话启动。 F5 解决方案文档 7595是转发此类虚拟服务器配置的良好参考……请参阅标题为“使用 BIG-IP LTM 转发虚拟服务器模拟无状态 IP 路由”的部分。