實現LVS負載均衡NAT模式
1、LVS-NAT實現原理簡述
註釋:
ipvs:工作於內核上的netfilterINPUT鉤子之上的程序,可根據用戶定義的集群實現請求轉發;
VS:Virtual Server 虛擬服務
Director, Balancer 負載均衡器、分發器
RS:Real Server 後端請求處理服務器
CIP: Client IP 用戶端IP
Director Virtual IP: VIP 負載均衡器虛擬IP
Director IP: DIP 負載均衡器IP
RealServer IP: RIP 後端請求處理服務器IP
其中:VIP是讓用戶訪問的,DIP是讓後端服務器通信的
(1) 當用戶請求到達DirectorServer,此時請求的數據報文會先到內核空間的PREROUTING鏈。此時報文的源IP為CIP,目標IP為VIP
(2)PREROUTING檢查發現數據包的目標IP是本機,將數據包送至INPUT鏈
(3) IPVS比對數據包請求的服務是否為集群服務,若是,修改數據包的目標IP地址為後端服務器IP,然後將數據包發至POSTROUTING鏈。此時報文的源IP為CIP,目標IP為RIP
(4) POSTROUTING鏈通過選路,將數據包發送給RealServer
(5) Real Server比對發現目標為自己的IP,開始構建響應報文發回DirectorServer。此時報文的源IP為RIP,目標IP為CIP
(6)Director Server在響應客戶端前,此時會將源IP地址修改為自己的VIP地址,然後響應給客戶端。此時報文的源IP為VIP,目標IP為CIP
2、實驗:
實驗準備:
三臺主機,一臺負載均衡器,兩臺後端服務器
LVS-server 兩個網卡,橋接模式,僅主機模式
後端服務器:僅主機模式
(1)在LVS-server上配置
1.安裝包
yum install ipvsadm
2.開啟一個基於80端口的虛擬服務,調度方式為wrr
ipvsadm -A -t 172.17.251.106:80 -s wrr
3.配置web後端服務器real server為net工作方式,權重為1
ipvsadm -a -t 172.17.251.106:80 -r 192.168.191.107 -m -w 1
ipvsadm -a -t 172.17.251.106:80 -r 192.168.191.110 -m -w 1
4.修改內核參數,允許路由轉發
vim /etc/sysctl.conf
修改 net.ipv4.ip_forward = 1
sysctl -p 查看生效
(2)在兩個real server上添加默認路由指向DIP
route add default gw 192.168.191.106
(3)為了方便測試。
在real server上實現LNMP。可以安裝下面步驟實現
http://guanm.blog.51cto.com/13126952/1978354
在192.168.191.107上
cd /data/web
echo site1 > index.html
在192.168.191.110上
cd /data/web
echo site2 > index.html
(4)在客戶端測試
curl http://172.17.251.106/index.html
可以看到依次出現site1 ,site2 ,因為兩者的權重一樣
本文出自 “Linux 學習記錄” 博客,請務必保留此出處http://guanm.blog.51cto.com/13126952/1979127
實現LVS負載均衡NAT模式