F5 BIG-IP/nginx 后端IIS服务器获取客户端ip源地址

由于前端使用了F5,还有部分是nginx,对于后端的IIS服务器的请求日志源地址c-ip都是F5或者nginx服务器,对于客户端ip访问统计比较有影响。

可以使用F5官方提供的F5XForwardedFor.dll用于IIS获取客户端的源地址ip,此dll也支持前端为nginx。原理就是让iis支持对某个字段的捕捉,此字段记录的是客户端的源地址ip,是由前端F5/NGINX所定义和传递给iis的。

此字段为X-Forwarded-For,客户端访问群集地址时,由负载均衡前段插入到请求会话中转发到后端,后端web服务器若支持此字段的获取,则可获得客户端的源地址。

继续阅读“F5 BIG-IP/nginx 后端IIS服务器获取客户端ip源地址”

iptables与F5所碰到的问题

前些时间让网络同事开通了公网的某个端口NAT到内网的某台服务器,由于此端口暴露在公网,所以在服务器上用iptables进行ip限制访问,先允许再拒绝。

配置好之后,内网测试通过,凡是不在规则里面的ip,都无法访问此端口。然而,外网却出现问题,百思不得其解啊。都走的是tcp/ip协议,怎么内网可以外网不行(外网的此端口在没有配置iptables之前是正常访问的),难道iptables没有配置正确。

找了一大圈,确认所配置的iptables是没有问题,只往源地址这边想了,是不是我把某个源地址漏掉了,造成了这种现象。

后面才发现,公司的公网IP默认都是建在F5上面,无论你需不需要做群集,所以造成了当F5转发外网访问请求到该端口时,F5的ip并不在我配置的iptables规则里面,自然就无法转发成功,所以导致外网此端口无法连通。

随之将F5的ip加入允许访问此端口的规则,外网端口访问正常。

好久没写日志了,六月最后一天,意思意思写一下了。

=========================================

晚上突然想了想,觉得应该不是F5转发请求的问题,应该是F5在自身是具备故障监控的功能,若所配置的端口不通时(iptables将F5监控该端口的数据包drop了),F5会实现故障转移自动将无法访问的主机从群集中踢出,但此在F5上针对此端口的VS的pool中只有一台主机,所以结果自然就是无法访问了。