可以将 Edge 服务网关 (ESG) 视为传入客户端流量的代理。

关于此任务

在代理模式下,负载平衡器将自己的 IP 地址作为源地址,以将请求发送到后端服务器。后端服务器查看从负载平衡器中发送的所有流量,并直接响应负载平衡器。这种模式也称为 SNAT 模式或非透明模式。有关详细信息,请参阅NSX 管理指南

典型的 NSX 单路并联式负载平衡器部署在具有其后端服务器的相同子网上,与逻辑路由器分开。NSX 负载平衡器虚拟服务器侦听虚拟 IP 以查找来自客户端的传入请求,并将这些请求发送到后端服务器。对于返回流量,需要使用反向 NAT 以将源 IP 地址从后端服务器更改为虚拟 IP (VIP) 地址,然后将虚拟 IP 地址发送到客户端。如果不执行该操作,到客户端的连接将中断。

在 ESG 收到流量后,它执行两个操作:目标网络地址转换 (DNAT) 以将 VIP 地址更改为某个负载平衡计算机的 IP 地址;以及源网络地址转换 (SNAT) 以将客户端 IP 地址与 ESG IP 地址调换。

然后,ESG 服务器将流量发送到负载平衡服务器,负载平衡服务器将响应发送回 ESG,然后发送回客户端。该选项比串联式模式容易配置得多,但具有两个潜在问题。第一个问题是,该模式需要使用专用的 ESG 服务器,第二个问题是,负载平衡器服务器不知道原始客户端 IP 地址。HTTP/HTTPS 应用程序的一种解决方法是,在 HTTP 应用程序配置文件中启用“插入 X-Forwarded-For”,以便在发送到后端服务器的请求的 X-Forwarded-For HTTP 标头中包含客户端 IP 地址。

如果 HTTP/HTTPS 以外的应用程序要求在后端服务器上看到客户端 IP 地址,您可以将 IP 池配置为透明的。如果客户端没有位于与后端服务器相同的子网上,建议使用串联式模式。否则,您必须将负载平衡器 IP 地址作为后端服务器的默认网关。

注:

通常,可以使用三种方法确保连接完整性:

  • 串联式/透明模式

  • SNAT/代理/非透明模式(如上所述)

  • 直接服务器返回 (Direct Server Return, DSR) - 目前,不支持这种模式

在 DSR 模式下,后端服务器直接响应客户端。目前,NSX 负载平衡器不支持 DSR。

过程

  1. 例如,让我们配置一个具有 SSL 卸载的单路并联式虚拟服务器。双击 Edge,然后选择管理 > 设置 > 证书 (Manage > Settings > Certificate)以创建一个证书。
  2. 选择管理 > 负载平衡器 > 全局配置 > 编辑 (Manage > Load Balancer > Global Configuration > Edit)以启用负载平衡器服务。

  3. 选择管理 > 负载平衡器 > 应用程序配置文件 (Manage > Load Balancer > Application Profiles)以创建一个 HTTPS 应用程序配置文件。

    注:

    上面的屏幕截图使用自签名证书以仅用于说明目的。

  4. (可选)单击管理 > 负载平衡器 > 服务监控器 (Manage > Load Balancer > Service Monitoring),然后编辑默认服务监控以将其从基本 HTTP/HTTPS 更改为特定的 URL/URI(如果需要)。
  5. 选择管理 > 负载平衡器 > 池 (Manage > Load Balancer > Pools)以创建服务器池。

    要使用 SNAT 模式,请在池配置中取消选中透明 (Transparent)复选框。

    确保已列出并启用虚拟机。

  6. (可选)单击管理 > 负载平衡器 > 池 > 显示池统计信息 (Manage > Load Balancer > Pools > Show Pool Statistics)以检查状态。

    确保成员处于已启动状态。

  7. 选择管理 > 负载平衡器 > 虚拟服务器 (Manage > Load Balancer > Virtual Servers)以创建一个虚拟服务器。

    如果要将 L4 负载平衡器用于 UDP 或更高性能的 TCP,请选中启用加速 (Enable Acceleration)。如果选中启用加速 (Enable Acceleration),请确保负载平衡器 NSX Edge 上的防火墙状态为已启用 (Enabled),因为 L4 SNAT 需要使用防火墙。

    确保 IP 地址绑定到服务器池。

  8. (可选)如果使用一个应用程序规则,请在管理 > 负载平衡器 > 应用程序规则 (Manage > Load Balancer > Application Rules)中检查配置。

  9. 如果使用一个应用程序规则,请在管理 > 负载平衡器 > 虚拟服务器 > 高级 (Manage > Load Balancer > Virtual Servers > Advanced)中确保该应用程序规则与虚拟服务器相关联。

    有关支持的示例,请参见:https://communities.vmware.com/docs/DOC-31772

    在非透明模式下,后端服务器无法看到客户端 IP,但可以看到负载平衡器内部 IP 地址。作为 HTTP/HTTPS 流量的解决方法,请选中插入 X-Forwarded-For HTTP 标头 (Insert X-Forwarded-For HTTP header)。如果选中该选项,Edge 负载平衡器将添加“X-Forwarded-For”标头并且值为客户端源 IP 地址。