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