2.LVS的三種模式
目錄
一、LVS-NAT模式
1.工作流程
(1)當用戶請求到達Director Server,此時請求的資料報文會先到核心空間的PREROUTING
鏈;此時報文的源IP為CIP,目標IP為VIP
(2)PREROUTING
檢查發現數據包的目標IP是本機,將資料包傳送至INPUT
鏈;
(3)IPVS對比資料包請求的服務是否為叢集服務,若是,修改資料包的目標IP地址為後端伺服器IP,然後將資料包傳送至POSTROUTING
(4)
POSTROUTING
鏈通過選路,將資料包傳送給Real Server;(5)Real Server對比發現目標為自己的IP,開始構建響應報文傳送回給Director Server;此時報文的源IP為RIP,目標IP為CIP;
(6)Director Server 在響應客戶端前,此時會將源IP地址修改為自己的VIP地址,然後響應給客戶端;此時報文的源IP為VIP,目標IP為CIP;
2.NAT模式的特性
(1)RS和DIP都應該使用私網地址,且RS的閘道器要指向DIP
(2)請求和響應報文都要經由Director轉發
(極高負載的場景,Director可能會成為系統瓶頸)
(3)支援埠對映
(4)RS可用使用任意作業系統
(5)RS的RIP和Director的DIP必須在同一IP網路
3.NAT模式的缺點
對Dierctor Server壓力會比較大,因為請求和響應都需經由它
二、LVS-DR模式
1.工作流程
(1)當用戶請求到達Director Server,此時請求的資料報文會先到核心空間的PREROUTING
鏈;此時報文的源IP為CIP,目標IP為VIP;
(2)PREROUTING
檢查發現數據包的目標IP是本機,將資料包傳送至INPUT
鏈;
(3)IPVS對比資料包請求的服務是否為叢集服務,若是,將請求的報文的源MAC地址修改為DIP的MAC地址,將目標MAC地址修改為RIP的MAC地址,然後將資料包傳送至POSTROUTING
鏈;此時的源IP和目的IP均為修改,僅修改了源MAC地址為DIP的MAC地址,目標MAC地址為RIP的MAC地址
(4)由於DS和RS在同一網路中,所以是通過二層來傳輸;POSTROUTING
(5)RS發現請求報文的MAC地址是自己的MAC地址,就接收此報文;處理完成之後,將響應報文通過lo介面傳送給eth0網絡卡然後向外發出;此時的源IP地址為VIP,目標IP為CIP;
(6)響應報文最終送達至客戶端
2.DR模式的特性
(1)確保前端路由器將目標IP為VIP的請求報文傳送Director;
a.在前端閘道器做靜態繫結;
b.在RS上使用arptables;
c.在RS上修改核心引數以限制arp通告及應答級別;
修改RS上核心引數(arp_ignore和arp_announce)將RS上的VIP配置在lo介面上的別名上,並限制其不能響應對VIP地址解析請求
(2)RS的RIP可以使用私網地址,也可以是公網地址;
RIP與DIP在同一網路;
RIP的閘道器不能指向DIP,以確保響應報文不會經由Director
(3)RS和DS要在同一個物理網路
(4)請求報文要經由Dierctor,但響應不能經由Director,而是直接由RS法往客戶端
(5)不支援埠對映
3.DR模式的缺點
RS和DS必須在同一機房中
三、LVS-TUN模式
1.工作流程
(1)當用戶請求到達Director Server,此時請求的資料報文會先到核心空間的PREROUTING
鏈;此時報文的源IP為CIP,目標IP為VIP;
(2)PREROUTING
檢查發現數據包的目標IP是本機,將資料包傳送至INPUT
鏈;
(3)IPVS對比資料包請求的服務是否為叢集服務,若是,在請求報文的首部再次封裝一層IP報文,封裝源IP為DIP,目標IP為RIP;然後發至POSTROUTING
,此時,源IP為DIP,目標IP為RIP;
(4)POSTROUTING
鏈根據最新封裝的IP報文,將資料包傳送至RS(因為在外側封裝多了一層IP首部,所以可以理解為此時通過隧道傳輸);此時源IP為DIP,目標IP為RIP;
(5)RS接收到報文後發現是自己的IP地址,就將報文接收下來,拆掉最外層的IP後,會發現裡面還有一層IP首部,而且目標的自己的lo介面VIP,那麼此時RS開始處理此請求,處理完成之後,通告lo介面傳送給eth0網絡卡,然後向外傳遞;此時的源IP地址為VIP,目標IP為CIP;
(6)響應報文最終送至客戶端
2.TUN模式的特性
(1)DIP,VIP,RIP都應該是公網地址;
(2)RS的閘道器不能,也不可能指向DIP;
(3)請求報文要經由Dierctor,但響應不能經由Director
(4)不支援埠對映
(5)RS的OS得支援隧道功能
四、總結
企業中最常用的是DR實現方式,但NAT配置上比較簡單和方便