1. 程式人生 > >lvs的工作模式

lvs的工作模式

LVS的工作模式

LVS(Linux Virtual Server)
特點:跨平臺:windows、linux
作用:實現負載均衡
核心元件
ip_vs:linux的核心功能模組,工作在核心,依賴該核心模組實現負載均衡功能
ipvsadm:應用層程式,該程式可以和核心中的ip_vs模組通訊,實現對負載均衡的管理和控制
補充
keepalived也可以對ip_vs進行管理
概念
ClientIP:CIP
RealServerIP:RIP
DirectorIP:DIP
VirtualIP:VIP
一 .DR ( Direct Routing )模式,直接路由模式
1.原理:
第一步:客戶端的請求會發送到及房,此時僅僅DR可以接收這個請求
目標IP MAC都是DR,所以DR可以接收這個請求
第二步:DR收到請求之後,會重新封裝請求
1)會通過預先定義好的演算法找出一個RS的mac地址
2)然後將這個請求報文的目標mac改為這個mac
3)最後將這個修改mac後的請求報文傳送出去
第三步:因為這是內部網路,所有所有節點都可以接收這個請求資料包
1)判斷目標IP mac是否與自己的ip mac相同,只有相同才會接收和處理這個請求
2)處理完成後,會將處理結果直接傳送個客戶端(不再經過DR)

**補充1:為了讓DR RS可以接收請求,要求都需要有相同的哪個IP,這個IP就是VIP,但是這樣會導致IP衝突
解決方式;將vip繫結在本地的迴環介面之上(lo)
補充2:因為多個節點都有vip,因此客戶端在請求獲取mac地址的時候,就會出現arp爭搶的問題
解決方式:在RS上設定arp抑制(不讓RS對arp請求做出應答)**

2.ARP請求:獲取ip所對應的mac地址

cliet           =====>      DR            =====>        RS
ip  :1.1.1.1               ip  : 1.1.1.2               ip  : 1.1.1.3
mac : aa:aa:aa:aa:aa:aa     mac : bb:bb:bb:bb:bb:bb     mac : cc:cc:cc:cc:cc:cc


客戶端傳送的請求:
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目標:1.1.1.2
	目標mac:bb:bb:bb:bb:bb:bb
	源埠:1234
	目標埠:80

DR重新封裝以後的報文
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目標:1.1.1.2
	目標mac: cc:cc:cc:cc:cc:cc
	源埠:1234
	目標埠:80

3.DR模式總結:
1. 排程器僅僅修改目標mac
2. 響應報文是直接傳送給客戶端,不再經過排程器
3. RS必須要和DR在用一個區域網中
4. DR無法修改請求報文中的目標埠,因此RS的埠必須和DR一致
5. DR和所有的RS都需要配置VIP
6. 所有的RS都需要配置ARP抑制
7. RS必須可以直接和外網通訊
8. DR模式效率相對高,配置複雜,所以如果訪問量小(pv<2000),建議用更簡單的nginx haproxy

二.NAT模式
1.原理:
第一步:客戶端傳送請求,請求報文中的目標ip都是VIP
第二步:DR接收請求報文,然後通過演算法找出一個RS,然後將請求報文中的目標IP改為找出的RS的RIP
第三步:RS接收到DR轉發的請求之後,會進行處理,然後將處理的結果傳送DIP(源ip是RIP,目標ip是CIP),傳送給DR
第四步:DR收到RS所返回的資料,然後會修改這個資料包,將源IP地址改為VIP,然後就可以傳送給客戶端了

補充:RS無法直接給客戶端返回資料
解決方式:將DR的內網絡卡作為所有RS的閘道器
注意:DR需要啟動路由轉發功能

2.ARP請求:獲取ip所對應的mac地址

cliet           =====>      DR            =====>        RS
ip  :1.1.1.1               vip  : 1.1.1.2              ip  : 1.1.1.3
mac : aa:aa:aa:aa:aa:aa     mac : bb:bb:bb:bb:bb:bb     mac : cc:cc:cc:cc:cc:cc


客戶端傳送的請求:
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目標:1.1.1.2
	目標mac:bb:bb:bb:bb:bb:bb
	源埠:1234
	目標埠:80

DR重新封裝以後的報文
	源ip:1.1.1.1 
	源mac:aa:aa:aa:aa:aa:aa
	目標:1.1.1.3
	目標mac: bb:bb:bb:bb:bb:bb
	源埠:1234
	目標埠:80

返回資料
	源ip:1.1.1.3
	源mac: cc:cc:cc:cc:cc:cc
	目標ip:1.1.1.1 
	目標mac:aa:aa:aa:aa:aa:aa

3.NAT模式總結
1.排程器在接收客戶端的請求的時候,修改的是目標IP;在給客戶端返回資料的時候,修改的是源IP
2.DIP和RIP必須在同一個網路,而且可以僅僅是一個私有地址
3.RS不需要連線外網也能正常工作(RS被保護起來)
4.請求的資料和應答的資料都需要經過DR的處理,所以在高併發的情況下,DR壓力較大
5.NAT模式的使用場景後端節點較少的情況(RS<20)
6.RS的閘道器地址必須指向DR的內網絡卡IP地址
7.DR需要至少兩個網絡卡(一個連外網,一個連線內網)
DR需要開啟路由轉發功能

三.TUNNEL模式
瞭解
在原有報文的基礎,新增一個新的IP頭

四.FULLNAT模式
這是nat模型的擴充套件,RS和DR可以不再同一個網路
RIP 和DIP 可以是私有地址,他們也可以不再同一個網路,RS的閘道器可以不指向DR的內網絡卡IP