企业集群平台架构设计与实现--LVS篇(二)

2019-09-24 16:39:18 浏览数 (1)

上次文章提到了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里增加源IP信息(称为uoa)。通过在Linux主机中安装toa插件,来实现对源IP的获取。目前该方式只支持Linux的部分版本操作系统,例CentOS7/7.2。好处是简单,坏处是只支持部分操作系统并需要重编译内核。

四、业务程序自己实现。业务自行实现,例如在client端插入源IP信息,带到server端。好处是:对网络架构无要求,只要网络可通即可,只要安全做好,不容易被伪造。坏处是:需要源程序开发时就支持。

技术发展太快,原来IT头疼了五年都解决不了的问题,现在都成了负载的基本能力了。因此云计算的普及对服务商的IT自研能力实际提出了很高的要求,谁能给客户带来最便捷的服务,才能真正得到客户的好口碑。

0 人点赞