一、LVS介紹
1.工作範圍
操作系統:LVS基於內核網絡層面工作;
網絡傳輸:工作在ISO模型的4層,主要對數據鏈路層和網絡層進行操作
2.工作原理
IPVS程序
IPVS:在內核的netfilter 的INPUT鏈之前運行的一個程序,根據工作模式不同,IPVS進行相應的操作。
IPVS:通過ipvsadm進行操作
#爲什麼放在INPUT鏈之前
因爲客戶端在訪問服務時,訪問的是負載均衡器的服務,客戶端並不知道負載均衡器提供的是虛擬服務;
所以,在負載均衡器的PREROUTING之後向INPUT走去
如果,在PREROUTING判斷,可能會有流向FORWARD的
3.在下面介紹各種模式的工作時會用到下面專有名詞
VS:Virtual Server #虛擬服務
Director, Balancer #負載均衡器、分發器
RS:Real Server #後端請求處理服務器
CIP: Client IP #用戶端IP
Director Virtual IP: VIP #負載均衡器虛擬IP
Director IP: DIP #負載均衡器IP
Real Server IP: RIP #後端請求處理服務器IP
二、LVS——NAT工作模式
1.介紹
NAT模式請求包,從client->VS->RS
NAT模式迴應包,從RS->VS->client
NAT模式主要工作在網絡層,通過轉換IP地址實現
2.client發出請求(源IP:CIP,目標IP:VIP)->VS(IPVS轉換地址)->RS
1.請求進入RS,遇到VIP的PREROUTING鏈,因爲目標IP是VIP,所以轉到INPUT上
2.在INPUT上被IPVS攔着,將目標IP轉換爲RIP;因爲目標IP不是VIP,所以轉到POSTROUTING,通過DIP發到RS
3.RS(源IP:RIP,目標IP:CIP)->VS(POSTROUTING轉換地址)->client
注意:RS需要將網關指向DIP,否則數據不會從VS經過;
如果數據不從VS發出,就無法將源地址轉換爲VIP;
從而使數據直接從RS發出到client
在client發現這個迴應包不是VIP發出的,我不要!(client請求的是VIP)
無法完成數據傳輸
1.RS通過網關DIP將數據發往VS
2.VS的PREROUTING進入後發現目標地址不是本機,發到FORWARD
3.FORWORD發送到POSTROUTING
4.在POSTROUTING將源IP從RIP轉換爲VIP,發走到client
4.缺點
1.迴應包也從VS通過,給VS帶來大量的流量傳輸壓力
迴應包一般攜帶大量數據,
所以DR模式,讓迴應包直接從RS發往client
三、LVS——DR工作模式
1.介紹
DR模式請求包,從client->VS->RS
DR模式迴應包,直接RS->client
1.DR工作在 數據鏈路層 ,通過轉換 MAC地址 實現
注意:
a.只有在同一物理網段時,主機間的通信使用MAC地址實現的;所以RS和VS要在同一物理網段
2.DR的迴應包並不會從VS轉發,而是直接通過RS發出
注意:
a.這就要求RS要有一個與VIP相同的IP
b.但是同一物理網段的IP地址不能衝突,否則會出現-在數據包進入本網段之前,廣播尋找VIP時,出現多個響應的情況
3.所以,RS的迴環網卡上設置一個別名IP地址(與VIP相同),並且禁止RS對廣播的任何迴應
實現
a.RS與VS通過MAC地址通訊(RIP對應的MAC地址)
4.所以進入RS時(源IP:CIP,目標IP:VIP)(源MAC:DIP_MAC,目標MAC:RIP_MAC),通過MAC地址連接
不管IP地址,只用MAC地址
5.從RS發出時(源IP:VIP,目標IP:CIP)(源MAC:RIP_MAC,目標IP:DIP_MAC),通過IP地址發出網絡
不管MAC地址,只用IP地址
2.client發出請求->VS->RS
1.client 發出請求(源IP:CIP,目標IP:VIP)(源MAC:CIP_MAC)
2.鍵入VS所在網段時,交換機廣播,誰是VIP,給我MAC地址
VS和RS都有VIP,RS的廣播迴應被禁止,就無法回覆
於是只有VS迴應廣播(數據包目標MAC爲VS_VIP_MAC),請求數據包進入VS中
3.數據包進入VS經過PREROUTING到達INPUT鏈之前,被IPVS攔着
IPVS把(源MAC:CIP_MAC,目標MAC:VS_VIP_MAC)換爲(源MAC:DIP_MAC,目標MAC:RIP_MAC),通過MAC地址傳輸到同物理網段的RS上
IP地址不做轉換
3.RS迴應包->client
4.RS上有兩個地址RIP和VIP(別名)
進入RS時(源IP:CIP,目標IP:VIP)
所以RS相應的迴應包(源IP:VIP,目標IP:CIP)
5.RS——>client
client不在此物理網段,所以不用管MAC地址如何
6.進入client網段,廣播找到client對應MAC地址。
7.client收到包,發現與自己發出的請求包IP對應,是自己要的;接受
4.缺點
DR的缺陷是 VS和RS必須要在同一物理網段,
TUN模式可以讓迴應包從RS——>client
也不要求VS和RS要在同一物理網段
四、LVS——TUN工作模式
TUN模式可以讓迴應包從RS——>client
也不要求VS和RS要在同一物理網段
注意:RS也要設置不能在公網出現的VIP
1.介紹(CIP到VIP的信,VS用快遞送到RS)
如果實現上述功能,則需要VS->RS傳輸過程中,不能使用IP地址,也不能使用MAC地址
需要用IP隧道技術實現虛擬服務器
這種方式是在集羣的節點不在同一個網段時可用的轉發機制,是將IP包封裝在其他網絡流量中的方法。
爲了安全的考慮,應該使用隧道技術中的VPN,也可使用租用專線。
缺點
集羣所能提供的服務是基於TCP/IP的Web服務、Mail服務、News服務、DNS服務、Proxy服務器等等.
2.client發出請求->VS(協議封裝)->RS
1.client 發出請求(源IP:CIP,目標IP:VIP)到VS
2.數據包進入VS經過PREROUTING到達INPUT鏈之前,被IPVS攔着
用隧道協議把請求包封裝起來
形成【源IP:DIP(源IP:CIP,目標IP:VIP)目標IP:RIP】
3.通過外層封裝的協議傳輸到RS上
3.RS->client
RS也要設置不能在公網出現的VIP
RS根據外層協議接受DIP的請求包
解包之後發現,裏面還有一層數據包,是請求自己VIP的
迴應包通過RS_VIP發送到client
五、LVS——full_NAT工作模式
與NAT相似也是通過IP地址轉化,
與NAT區別及工作方式
NAT模式只轉換目標地址VIP->RIP
從RS->VS是通過網關的設置實現的
full_NAT模式在IPVS上,把源地址和目標地址全部轉換髮給RS
(源IP:CIP,目標IP:VIP)轉換爲(源IP:DIP,目標IP:RIP)
RS接收到以後以爲是VS的請求,迴應包(源IP:RIP,目標IP:DIP)不用通過網關發送。
VS收到RS的迴應,再把(源IP:RIP,目標IP:DIP)轉換爲源IP:VIP,目標IP:CIP)發送給client