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吗?
答案 0 :(得分: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,请参阅此讨论:
更新:默认情况下,如果使用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。
Lemme知道你是否还有其他问题。