企業集群平台架構設計與實現–LVS篇(二)
- 2019 年 10 月 6 日
- 筆記
上次文章提到了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自研能力實際提出了很高的要求,誰能給客戶帶來最便捷的服務,才能真正得到客戶的好口碑。