LVS-NAT

1.NAT模式工作原理(在三層)

多目標的DNAT:通過修改請求報文的目標IP地址(同時可能會修改目標端口),至挑選出某RS的RIP地址實現轉發
1.RS和DIP應該使用私網地址,且RS的網關要指向DIP
2.請求和響應報文都要經由director轉發,極高負載的場景中,director可能會成爲系統瓶頸
3.RS可以使用任意OS
4.RS的RIP和Director的DIP必須要在同一IP網絡:RS的網關要指向DIP

工作流程:
在這裏插入圖片描述

(a). 當用戶請求到達Director Server,此時請求的數據報文會先到內核空間的PREROUTING鏈。 此時報文的源IP爲CIP,目標IP爲VIP
(b). PREROUTING檢查發現數據包的目標IP是本機,將數據包送至INPUT鏈
©. IPVS比對數據包請求的服務是否爲集羣服務,若是,修改數據包的目標IP地址爲後端服務器IP,然後將數據包發至POSTROUTING鏈。 此時報文的源IP爲CIP,目標IP爲RIP
(d). POSTROUTING鏈通過選路,將數據包發送給Real Server
(e). Real Server比對發現目標爲自己的IP,開始構建響應報文發回給Director Server。 此時報文的源IP爲RIP,目標IP爲CIP
(f). Director Server在響應客戶端前,此時會將源IP地址修改爲自己的VIP地址,然後響應給客戶端。 此時報文的源IP爲VIP,目標IP爲CIP

NAT模式負載均衡搭建

準備工作:
準備三臺虛擬機server1,2,3,並配置好yum源,並且安裝好ipvsadm套件
將server1上有兩塊網卡將其作爲lvs調度器,server2,3作爲後臺服務器
爲server1兩塊網卡分別配置ip 172.25.24.1 和172.25.254.124
server2,3 分別爲 172.25.24.2和172.25.24.3
在調度器server1上
1)開啓路由機制

[root@server1 ~]# vim /etc/sysctl.conf 
net.ipv4.ip_forward = 1
[root@server1 ~]# sysctl -p

2)加載nat模塊

##如果不加載此模塊,也可以在第一次訪問時成功,但是會在再次訪問時出現延遲過長,或訪問超時現象
[root@server1 ~]# modprobe iptable_nat

3)加載rule

[root@server1 ~]# ipvsadm -C
[root@server1 ~]# ipvsadm -A -t 172.25.254.124:80 -s rr
[root@server1 ~]# ipvsadm -a -t 172.25.254.124:80 -r 172.25.24.2:80 -m 
[root@server1 ~]# ipvsadm -a -t 172.25.254.124:80 -r 172.25.24.3:80 -m 
[root@server1 ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm:      [  OK  ]

在這裏插入圖片描述

在後臺服務器server2,3上
1)添加網關
因爲NAT模式下數據包的走向是原路返回,要帶着返回的數據包經過調度器會到客戶端

[root@server2 ~]# route add default gw 172.25.24.1   ##添加網關
[root@server2 ~]# ping 172.25.254.24   ##查看能否和測試機連通

在這裏插入圖片描述
2)下載httpd服務,並分別設置默認發佈頁內容爲server2,3

[root@server2 ~]# yum install httpd -y
[root@server2 ~]# vim /var/www/html/index.html 
server2
[root@server2 ~]# /etc/init.d/httpd start

測試:
在測試機172.25.254.24上嘗試訪問172.25.254.124
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章