本节介绍了 NSX Advanced Load Balancer 代理协议支持。

默认情况下,NSX Advanced Load Balancer SE 源 NAT (SNAT) 是发送到服务器的流量。由于 SNAT,应用程序服务器日志将显示 SE 的第 3 层 IP 地址,而不是客户端的原始 IP 地址。

HTTP 的协议扩展(例如 X-Forwarded-For 标头插入标头)需要了解底层协议(例如 HTTP)。对于第 3 层应用程序,NSX Advanced Load Balancer 支持代理协议(代理协议规范)的版本 1(用户可读格式)和版本 2(二进制格式),该协议将原始连接参数(例如客户端 IP 地址)传送到后端服务器。对于第 4 层 SSL 应用程序,支持版本 1。NSX Advanced Load Balancer SE 不要求了解封装的协议,并且处理传输的信息对性能造成的影响非常小。

注:

对于通过 SSL 提供服务的应用程序,必须将服务器配置为接受代理协议,否则,SSL 握手可能会失败。

代理协议规范格式:

PROXY TCP4 (real source address) (proxy address) (TCP source port) (TCP destination port) (CRLF sequence)

示例 V1 代理协议行:

PROXY TCP4 12.97.16.194 136.179.21.69 31646 80\r\n

应用程序支持

必须将应用程序配置为捕获代理标头中嵌入的 IP 地址,而代理标头又嵌入在 TCP 选项中。有关更多信息,请参见代理协议规范

通过 UI 配置代理协议

以下是通过 UI 配置代理协议的步骤:

  1. 导航到模板 > 配置文件

  2. 应用程序选项卡中,选择 System-L4-Application

  3. 对于类型,选择 L4

  4. 单击启用代理协议

  5. 选择所需的版本。

  6. 单击保存

通过 CLI 配置代理协议

以下 CLI 命令序列启用代理协议支持和要使用的协议版本。

configure applicationprofile System-L4-Application
applicationprofile> tcp_app_profile
applicationprofile:tcp_app_profile> proxy_protocol_enabled
applicationprofile:tcp_app_profile> proxy_protocol_version proxy_protocol_version_1
applicationprofile:tcp_app_profile> save
applicationprofile> save

代理协议的 IPv6 支持

代理协议支持 IPv6 地址。可以在 PROXY 标头中发送 IPv6 地址。以下是 PROXY 标头的格式:

PROXY TCP6 (real source IPv6 address) (proxy IPv6 address) (TCP source port) (TCP destination port) (CRLF sequence)

以下是将 IPv6 地址作为源 IPv6 地址和代理 IPv6 地址的示例。

PROXY TCP6 3ffe::1:600:f8ff:ff95:50df 2001::9d38:6ab8:1d49:4c1a:b94b:d2c1 31646 80\r\n

适用于 IPv4 地址或对 IPv4 地址有效的所有功能也仍然适用于这些更改。