LVS理論linux
LVS ( linux virtual server ) ,linux 虛擬服務器,是一個虛擬的服務器集羣系統,實現一個高性能,高可用的服務器,具備良好的可伸縮性,可靠性和可管理性。web
LVS 集羣採用IP 負載均衡技術和基於內容請求分發技術。調度器具備很好的吞吐率,將請求均衡的轉移到不一樣的服務器上執行,且調度器自動屏蔽掉服務器的故障。算法
虛擬服務器是負載均衡體系的基本架構,它分兩層結構:轉發器(Director)和真實服務器後端
(1)客戶端訪問集羣的vip,請求web服務。(請求報文:源cip,目標vip);服務器
(2)調度器收到請求,會修改目標ip爲rip,而且將請求根據相應的調度算法發日後端web服務器(請求報文:源cip,目標rip)架構
(3)Web服務器收到請求,發現目標ip是本身,而且也提供相應的服務,就會響應這個請求報文,而且發送給調度器。(相應報文:源rip,目標cip)負載均衡
(4)調度器收到web服務器的相應報文,會根據相應的機制判斷出用戶的目標ip是vip,這時會修改源ip爲vip發送給客戶端響應。(源vip,目標cip)運維
不足ide
1. RS/ROUTER配置策略路由性能
(1)客戶端發送請求到調度器的vip;
(2)調度器根據調度算法選擇一臺real server 進行轉發,這個時候的源ip爲cip,目標ip爲vip,若是直接轉發,目標ip就爲rip了,因此須要在vip到rip這個過程進行隧道封裝,封裝兩個ip首部,轉發的報文源cip目標vip,可是還會在ip首部再添加一個ip首部,目標地址是rip,這個過程要求支持隧道協議。
(3)當real server接受到數據包以後,因爲ip首部的目標ip是本身,就會拆開封裝,還有一個首部內容爲cip請求本身的vip,就會響應這個請求給cip。(響應報文的源ip爲vip,目標ip爲cip)
不足
1. RS配置複雜(IPIP模塊等)
2. RS上綁定VIP,風險大;
(1)首先,客戶端CIP的請求發送給LVS調度器的VIP。
(2)LVS調度器收到客戶端的請求包後,會選擇一臺real server,將數據包的MAC地址改爲選擇的Real Server的MAC地址,並經過交換機(數據鏈路層)發送給RS服務器(由於MAC地址是rs服務器,因此,rs能夠接收到該數據報。)注意:此時數據包的目的及源ip地址沒有發生任何改變。
(3)A.RS的數據鏈路層收到發送來的數據報文請求後,會從鏈路層往上傳給IP層,此時IP層須要驗證請求的目標IP地址。由於包的目標IP(即VIP)並非像常規數據報那樣爲RS的本地IP,而僅僅目的MAC地址是RS的。因此,在RS上須要綁定一個VIP,這樣包的目標ip就沒有發生變化。並且這個vip是隱藏的,不會響應arp解析。
B.RS處理數據包完成後,直接將應答返回給客戶端,此時的源ip爲vip,目標爲cip,回覆這個過程不通過調度器
不足
1. LVS-RS間必須在同一個VLAN
2. RS上綁定VIP,風險大;
– 某臺RealServer down了,怎麼辦? --- 健康檢測
– LVS自己down了,怎麼辦?---LVS冗餘
Keepalived – LVS管理軟件
– 健康檢測:支持4/7監測;
– 主備冗餘:採用VRRP協議癿HeartBeat;
– 如何配置?--- 配置文件
Keepalived –f /etc/keepalived/keepalived.conf
LVS各轉發模式運維成本高
– 新轉發模式FULLNAT:實現LVS-RealServer間跨vlan通信,而且in/out流都通過LVS;
缺乏***防護模塊
– SYNPROXY:synflood***防護模塊
– 其它TCP FLAG DDOS***防護策略
性能沒法線性擴展
– Cluster部署模式
(1)客戶端發送請求給調度器。(源cip,目標vip)
(2)Vip通過調度算法,講請求發送給real server。(源dip,目標rip)
(3)Real server 接收到請求後,發現源地址是dip,則對dip進行響應。(源rip,目標dip)
(4)調度器收到real server 的響應後,會修改數據報的源地址爲vip,目標地址爲cip進行響應。
主要思想:引入local address(內網ip地址),cip-vip轉換爲lip->rip,而 lip和rip均爲IDC內網ip,能夠跨vlan通信;