本节介绍了使用真正的客户端 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。