通过使用连接镜像功能,可以在高可用性部署中的所有服务引擎之间保留或同步 TCP/UDP 连接和流表信息。默认情况下,在发生故障切换事件时,以前的主节点将关闭所有现有的连接,故障切换后的新主节点或主 SE 必须与客户端和后端服务器建立新的连接。
如果启用了连接镜像功能,新的主节点将具有建立的所有现有连接的信息。在故障切换事件后成为主 SE 的 SE 继续处理现有的连接,而不会造成任何服务中断。该功能提供无缝的高可用性故障切换。
NSX Advanced Load Balancer 仅为 TCP 配置文件类型“TCP 快速路径”提供连接镜像支持。TCP 快速路径配置文件不会为 TCP 连接提供代理。它将客户端直接连接到目标服务器,并将客户端的目标虚拟服务地址转换为所选目标服务器的 IP 地址。
该功能不支持客户端 IP 持久性。
有关 NSX Advanced Load Balancer 上支持的 TCP/UDP 配置文件的更多信息,请参见“TCP-UDP 配置文件”。
用例
默认情况下,如果在活动/活动高可用性部署或传统高可用性故障切换中发生扩展事件,所有活动连接不会转移到新的主节点。在新的主 SE 或新的主节点与客户端和后端服务器建立新的 TCP 连接时,这会导致用户应用程序中断。
在后端服务器为多个用户托管大量连接时,该功能可以最大限度减少任务关键型应用程序的服务中断。
部署模式
NSX Advanced Load Balancer 上的连接镜像支持以下部署模式。
部署了默认网关和“保留客户端 IP”功能的传统活动/备用高可用性模式。如果启用了保留客户端 IP 功能,则在客户端 IP 地址和后端服务器 IP 地址之间建立服务器端 TCP 连接。可以在该部署模式下进行连接镜像,因为 TCP 连接独立于 SE 的接口 IP 地址,即使连接在任一 SE 上终止也是如此。
在后端服务器上启用了 SNAT IP 的传统活动/备用高可用性模式。
如果启用了 SNAT IP,则在 SNAT IP 地址和后端服务器 IP 地址之间建立服务器端 TCP 连接。可以在该部署模式下进行连接镜像,因为 TCP 连接独立于 SE 的接口 IP 地址,即使连接在任一 SE 上终止也是如此。
该功能不支持以下部署模式:
具有接口 IP 地址的标准传统活动/备用模式。在该模式下,服务器端 TCP 连接是在主节点 SE 的接口 IP 和服务器 IP 之间建立的。在主节点发生故障时,对等 SE 必须建立新的 TCP 连接,因为新的主节点具有不同的接口 IP。
具有活动/活动模式或 N+M 模式的弹性高可用性。
为虚拟服务启用了源 NAT IP 地址的活动/活动模式。
在该模式下,不会同步 TCP 连接,因为服务器端 TCP 连接是在各个 SE 的 SNAT IP 地址和后端服务器 IP 地址之间建立的。
设置为 TCP 代理模式的 TCP 配置文件类型不支持连接镜像。启用 TCP 代理将导致 NSX Advanced Load Balancer 终止来自客户端的入站连接。对于来自客户端并发送到服务器的任何应用程序数据,将通过新的 TCP 连接转发到该服务器。
在 TCP 代理模式下,所有连接在 SE 中终止,因此,将连接同步到对等 SE 是极其复杂的,而且很容易出错。
通过 CLI 启用连接镜像
可以使用 CLI 将 System-TCP-Fast-Path 配置文件中的 connection_mirror 标记值设置为 true
以启用连接镜像功能。默认情况下,TCP 快速路径配置文件中的 connection_mirror 标记值设置为 False
,如下面的 show networkprofile System-TCP-Fast-Path 命令输出所示。
[admin-10.1.1.1]: > show networkprofile System-TCP-Fast-Path +---------------------------+------------------------------------------------------+ | Field | Value | +---------------------------+------------------------------------------------------+ | uuid | networkprofile-8fb03f55-5b46-41be-9b89-0f125c9662fb | | name | System-TCP-Fast-Path | | profile | | | type | PROTOCOL_TYPE_TCP_FAST_PATH | | tcp_fast_path_profile | | | session_idle_timeout | 300 sec | | enable_syn_protection | False | | connection_mirror | False | | tenant_ref | admin | +---------------------------+------------------------------------------------------+
要启用该功能,请使用 networkprofile 命令启用 tcp_fast_path_profile 中的 connection_mirror 标记。
登录到 NSX Advanced Load Balancer CLI,然后运行以下命令:
[admin:10.1.1.1]: > configure networkprofile System-TCP-Fast-Path Updating an existing object. Currently, the object is: +---------------------------+-----------------------------------------------------+ | Field | Value | +---------------------------+-----------------------------------------------------+ | uuid | networkprofile-2c4f833d-5f2f-49f8-a9fe-e1aac04a0bf4 | | name | System-TCP-Fast-Path | | profile | | | type | PROTOCOL_TYPE_TCP_FAST_PATH | | tcp_fast_path_profile | | | session_idle_timeout | 300 sec | | enable_syn_protection | False | | connection_mirror | False | | tenant_ref | admin | +---------------------------+-----------------------------------------------------+ [admin:10.1.1.1]: networkprofile> connection_mirror <CR> connection_mirror the object description Help string not found for argument name The name of the network profile. tenant_ref Help string not found for argument [admin:10.1.1.1]: networkprofile> connection_mirror Overwriting the previously entered value for connection_mirror [admin:10.1.1.1]: networkprofile> save +---------------------------+-----------------------------------------------------+ | Field | Value | +---------------------------+-----------------------------------------------------+ | uuid | networkprofile-2c4f833d-5f2f-49f8-a9fe-e1aac04a0bf4 | | name | System-TCP-Fast-Path | | profile | | | type | PROTOCOL_TYPE_TCP_FAST_PATH | | tcp_fast_path_profile | | | session_idle_timeout | 300 sec | | enable_syn_protection | False | | connection_mirror | True | | tenant_ref | admin | +---------------------------+-----------------------------------------------------+
您可以使用以下命令验证连接镜像是否正常工作,该命令指示连接已镜像到备用服务引擎:
[admin:10-140-4-46]: > show virtualservice vs_conn_mirror tcpstat |grep mir | mirror_conn_list_on_active | 49999 | | mirrored_connections_on_standby | 49999 |
有关第 4 层连接镜像的更多信息,请参见: