通过使用连接镜像功能,可以在高可用性部署中的所有服务引擎之间保留或同步 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 层连接镜像的更多信息,请参见: