2

Akamai 在 True-Client-IP 标头中返回客户端 IP。这可以在 Akamai 设置中禁用,以便 Akamai 在 HTTP-X-Forwarded-For 标头中返回客户端 IP,但这将包含多个 IP 地址(客户端 IP、代理 1、代理 2 等)。

我需要在 F5 负载平衡器后面的 Web 服务器(IIS 7.5)中检索客户端 IP。

我需要在 F5 中做什么?

F5 会直接将 True-Client-IP 标头传递给 Web 服务器吗?

或者,我是否应该更改 Akamai 设置以在 HTTP-X-Forwarded-For 标头中返回客户端 IP?

4

1 回答 1

3

我会使用 X-Forwarded-For 因为 BIG-IP 已经有规定可以通过它。

根据 BIG-IP 的版本,您可以在 iRule 或更新版本中完成此操作,X-Forwarded 是在您的 HTTP 配置文件中启用的功能。然后您只需要配置 IIS 以接受该新数据。

https://devcentral.f5.com/questions/big-ip-http-profile-insert-x-forwarded-for-enabled

这应该让你开始。如果您是 11.x TMOS 之前的版本,请参阅此讨论:

https://devcentral.f5.com/questions/how-to-setup-x-forwarded-for-http-header-to-preserve-the-original-client-ip-address-for-traffic-translated-by- a-snat--25436

更新:默认情况下,如果使用 SNAT,您将看到 SNAT 池的 IP。X-Forwarded-For 是为 Web 应用程序发送客户端数据的标准方法。在 11.x BIG-IP 中,您可以创建 HTTP 配置文件并检查 X-Forwarded-For,这将简单地将外部数据发送到 Web 服务器。我认为 IIS 7.5 仍然需要设置自定义日志过滤器来捕获它,较新的 8.X 它可以作为一个选项使用而无需做太多。

如果您使用 SNAT(大多数人都这样做),这就是全部。我们这样做是因为大多数人不使用 BIG-IP 作为出站网关,而 SNAT 纠正了异步路由问题。但是,如果您使用 BIG-IP 作为 IIS 服务器的出站网关,则可以绕过 SNAT 要求;入站和出站流量都通过 BIG-IP。在这些情况下,不需要 SNAT,您始终可以从外部获取源 IP 数据。

缺点是大多数时候,BIG-IP 不是外围设备,而且可能还有其他设备混淆了源 IP。因为 X-Forwarded-For 是 HTTP 有效负载中的单独标头,所以它可以绕过更改源 IP 问题。

因此,选择 X-Forwarded-For。

让我知道您是否还有其他问题。

于 2015-10-21T16:19:49.000 回答