本节介绍了 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 配置代理协议的步骤:
导航到
。在应用程序选项卡中,选择 System-L4-Application。
对于类型,选择 L4。
单击启用代理协议。
选择所需的版本。
单击保存。
通过 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 地址有效的所有功能也仍然适用于这些更改。