LVS負載均衡服務的工作原理及方式

一、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發出到clientclient發現這個迴應包不是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_MAC2.鍵入VS所在網段時,交換機廣播,誰是VIP,給我MAC地址
        VSRS都有VIPRS的廣播迴應被禁止,就無法回覆
        於是只有VS迴應廣播(數據包目標MACVS_VIP_MAC),請求數據包進入VS3.數據包進入VS經過PREROUTING到達INPUT鏈之前,被IPVS攔着
        IPVS把(源MAC:CIP_MAC,目標MAC:VS_VIP_MAC)換爲(源MAC:DIP_MAC,目標MAC:RIP_MAC),通過MAC地址傳輸到同物理網段的RSIP地址不做轉換        

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:RIP3.通過外層封裝的協議傳輸到RS

3.RS->client

RS也要設置不能在公網出現的VIP

RS根據外層協議接受DIP的請求包
解包之後發現,裏面還有一層數據包,是請求自己VIP的
迴應包通過RS_VIP發送到client

五、LVS——full_NAT工作模式

與NAT相似也是通過IP地址轉化,
與NAT區別及工作方式

NAT模式只轉換目標地址VIP->RIPRS->VS是通過網關的設置實現的
full_NAT模式在IPVS上,把源地址和目標地址全部轉換髮給RS
        (源IP:CIP,目標IP:VIP)轉換爲(源IP:DIP,目標IP:RIPRS接收到以後以爲是VS的請求,迴應包(源IP:RIP,目標IP:DIP)不用通過網關發送。
    VS收到RS的迴應,再把(源IP:RIP,目標IP:DIP)轉換爲源IP:VIP,目標IP:CIP)發送給client
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章