本节介绍了使用真正的客户端 IP 及其配置的优点。

代理从入站连接的第 3 层标头中识别客户端 IP。不过,它并非始终是实际的客户端 IP 地址。在实际客户端和 NSX Advanced Load Balancer 之间具有代理的情况下,中间代理始终将入站连接的源 IP 地址添加到 X-Forwarded-For 标头中。在将请求转发到实际目标时,它将源 IP 地址替换为自己的 IP 地址以作为第 3 层标头中的源 IP。



真正的客户端 IP 功能可以从“X-Forwarded-For”或用户定义的标头中获取实际客户端 IP 地址,并在日志中跟踪实际客户端 IP 地址,或者根据真正的客户端 IP 地址配置一些策略(例如 HTTP 安全、HTTP 请求等)。

使用真正的客户端 IP 的优点

  • 您可以在 NSX Advanced Load Balancer 的应用程序日志中记录实际客户端 IP 地址。

  • 可以与实际服务器共享实际客户端 IP 地址(NSX Advanced Load Balancer 可以将识别的实际客户端 IP 添加为 X-Forwarded-For,并且可以配置服务器以解析该地址)。

  • 您可以根据实际客户端 IP 地址配置 HTTP 策略、SSO 策略等。

NSX Advanced Load Balancer 中的真正客户端 IP

通过实施真正的客户端 IP,支持以下功能:

  • 源 IP 始终是下游连接(入站)的 IP 标头中的 IP 地址。

  • 客户端 IP 是根据用户配置得出的。它可以源自 X-Forwarded-For 或用户指定的标头,也可以与源 IP 相同。

在使用真正的客户端 IP 时,行为如下所示:

真正的客户端 IP 配置

标头参数

方向参数

索引计数参数

行为

已禁用(默认)

X-Forwarded-For(默认)

左(默认)

1(默认)

客户端 IP = 源 IP

已启用

True-User-IP(用户定义的)

左(默认)

1(默认)

客户端 IP 是从用户定义的标头“True-User-IP”中获取的 IP;如果在请求中找不到用户定义的标头或出现格式错误,则从第 3 层标头中获取客户端 IP。IP 始终来自于第 3 层标头

对于 L4 应用程序,Source-IP 和 Client-IP 始终相同。对于 HTTP 应用程序,它们可能是不同的。默认情况下,将停用该功能。在启用真正的客户端 IP 后,指定必须从中获取客户端 IP 的所需标头。

如果用户未定义任何标头,则从 X-Forwarded-For 标头中获取客户端 IP。指定的标头需要采用以逗号分隔的 IP 地址列表格式以作为标头值。如果不是这种格式,将忽略该标头。

例如,格式(标头值格式)为 X-Forwarded-For: 1.1.1.1,2.2.2.2,3.3.3.3,4.4.4.4

到目前为止,您只能配置一个标头以获取客户端 IP。