上次文章提到了SLB(Service Load Balance)负载均衡器,在公有云中主要使用NAT模式进行地址翻译,但部分服务商的SLB只支持FULL NAT模式,造成无法获取终端访问者的Source IP,怎么解决?
在项目中,客户使用访问者的Source IP,原因很多:1、进行访问区域的数据分析。2、控制恶意攻意。。。 这是客户的正常诉求。
实际解决办法有四个:
一、升级服务商的SLB服务,彻底支持NAT模式,使客户的服务器不需要安装任何的插件都能够支持获得终端访问者的Source IP地址。目前该NAT模式只支持TCP四层协议,不支持UDP、HTTP和HTTPS模式。目前阿里云支持该模式。该方式对用户来讲最方便。
二、针对HTTP、HTTPS,可以采用在IIS、Apache中安装插件的方式进行获取。原理为负载均衡将用户的源IP放进了HTTP协议的X-FORWARD-FOR字段中,获取用户的IP地址,必须用第三方插件。好处是配置简单,坏处是容易被伪造。
三、在Linux中安装TOA、UOA插件。负载均衡在4层的option字段里增加源IP信息,比如在tcp option里增加源IP信息(称为toa)、udp option里增加源I