ADC

连接故障转移

连接故障转移有助于防止对部署在分布式环境中的应用程序的访问中断。在 Citrix ADC 高可用性 (HA) 设置中, 连接故障转移 (或 连接镜像-CM)是指在发生故障转移时保持已建立的 TCP 或 UDP 连接处于活动状态。新的主 Citrix ADC 设备具有故障转移之前建立的连接的相关信息,并将继续为这些连接提供服务。故障切换后,客户端仍保持与同一物理服务器的连接。新的主设备将信息与新的辅助设备同步。如果设置了 L2Conn 参数,则第 2 层连接参数也将与辅助连接参数同步。

注意:

考虑 HA 设置,客户端与主节点建立会话,然后再与后端服务器建立会话。当在此状态下触发故障转移时,从现有客户端和服务器节点收到的新主节点上的数据包将被视为陈旧的数据包,并重置客户端和服务器连接。而如果启用了无状态连接故障切换(USIP 处于开启状态),故障转移后,当您从客户端或服务器节点接收数据包时,连接不会重置。相反,客户端和服务器连接是动态创建的。

您可以在无状态模式或有状态模式下设置连接故障转移。在无状态连接故障转移模式下,HA 节点不交换有关故障转移连接的任何信息。此方法没有运行时开销。

在有状态连接故障切换模式下,主设备将故障转移连接的数据与新的辅助设备同步。

如果您的部署具有长期连接,则连接故障转移非常有用。例如,如果您通过 FTP 下载大文件,并且在下载过程中发生故障转移,则连接中断并中止下载。但是,如果在有状态模式下配置连接故障切换,则即使在故障转移之后,下载也会继续进行。

连接故障转移在 Citrix ADC 设备上的工作原理

在无状态连接故障转移中,新的主设备尝试根据其收到的数据包中包含的信息重新创建数据包流。

在状态故障转移中,为了维护有关镜像连接的当前信息,主设备会向辅助设备发送消息。辅助设备维护与数据包相关的数据,但仅在发生故障转移时才使用这些数据。如果发生故障转移,新的主(旧辅助)设备将开始使用有关镜像连接的存储数据并接受流量。在过渡期间,客户端和服务器可能会遇到短暂的中断和重新传输。

注意:

验证主设备是否能够在辅助设备上授权自己。要验证密码的正确配置,请使用 rpcnode 命令行中的 show 命令或使用 GUI 中 网络 菜单中的 RPC 选项。

具有连接故障转移的基本 HA 配置包含下图所示的实体。

图 1. 连接故障转移实体图

连接-故障转移

注意

发生以下任一事件后,不支持连接故障转移:

- An upgrade to a later release.
- An upgrade to a later build within the same release, if the new build uses a different HA version.

支持的设置

只能在负载平衡虚拟服务器上配置连接故障切换。无法在内容交换虚拟服务器上配置它。如果在连接到内容交换虚拟服务器的负载平衡虚拟服务器上启用连接故障切换,则连接故障切换不起作用,因为负载平衡虚拟服务器最初不接受流量。

下表介绍了连接故障转移支持的设置。

表 1. 连接故障转移-支持的设置

设置 无国籍 有状态
服务类型 任何。 ANY、UDP、TCP、FTP、SSL_BRIDGE。
负载均衡方法 ANY 服务类型支持的所有方法。但是,如果未设置源 IP 持久性,则必须使用 SRCIPSRCPORTHASH 方法。 所有方法都适用于受支持的服务类型。
持久性类型 SOURCEIP 持久性。 支持适用于受支持服务类型的所有类型。
USIP 必须开启。 没有限制。它可以是开启或关闭。
服务绑定 服务只能绑定到一个虚拟服务器。 服务可以绑定到一个或多个虚拟服务器。
Internet 协议 (IP) 版本 IPv4 和 IPv6 IPV4 和 IPv6
冗余支持 群集和高可用性 高可用性

注意:

只有基于连接的交换服务(例如 TCP)才支持有状态连接故障转移。由于 HTTP 使用基于请求的切换,因此它不支持连接故障转移。在 SSL 中,现有连接将在故障转移后重置。

受连接故障转移影响的功能

下表列出了配置连接故障转移时受影响的功能。

表 2. 连接故障转移如何影响 Citrix ADC 功能

功能 连接故障转移的影响
SYN 保护 对于任何连接,如果在设备发出 SYN-ACK 之后但在收到最终确认之前发生故障切换,则连接故障切换不支持该连接。客户端必须重新发出建立连接的请求。
浪涌保护 如果故障转移发生在与服务器建立连接之前,新主设备将尝试与服务器建立连接。它还会重新传输浪涌保护期间保存的所有数据包。
关闭访问权限 如果启用,则访问关闭功能优先于连接故障切换。
应用程序防火墙 不支持应用程序防火墙功能。
公司 在高可用性模式下不支持独立网络配置。
TCP 缓存 TCP 缓冲与连接镜像不兼容。
关闭响应 故障转移后,NatPCB 可能不会在响应时关闭。

使用 GUI 配置连接故障转移

导航到流量管理 > 负载平衡 > 虚拟服务器。打开虚拟服务器,在“高级设置”中单击“保护”,然后选择“连接故障转移有状态”。

使用 CLI 配置连接故障转移

在命令提示符处:

set lb vserver <vServerName> -connFailover <Value>
show lb vserver <vServerName>
<!--NeedCopy-->

示例:

set lb vserver Vserver-LB-1 -connFailover stateful
Done
<!--NeedCopy-->

在虚拟服务器上禁用连接故障转移时,分配给虚拟服务器的资源将被释放。

使用 CLI 禁用连接故障转移

在命令提示符处:

set lb vserver <vServerName> -connFailover <Value>
show lb vserver <vServerName>
<!--NeedCopy-->

示例:

set lb vserver Vserver-LB-1 -connFailover disable
Done
<!--NeedCopy-->

使用 GUI 禁用连接故障转移

导航到 流量管理> 负载平衡> 虚拟服务器。打开虚拟服务器,在 保护中,将 连接故障转移 选择为已禁用。

连接故障转移