LVS負載均衡搭建(NAT模式、DR模式、持久化連接)

一、基於NAT模式的LVS負載均衡搭建
網絡拓撲圖:
在這裏插入圖片描述
提示:
搭建服務從下往上,方便及時測試;
關閉服務從上往下,先中斷服務訪問請求。




流程
1、首先,按拓撲圖配置好網絡環境,選擇僅主機模式區分公網和內網;
1.1 客戶端
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.45.11
service network restart




1.2 負載調度器
eth0:vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.45.12
eth1:vim /etc/sysconfig/network-scripts/ifcfg-eth1
IPADDR=192.168.88.10
service network restart




1.3 真實服務器
RS1:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.88.11
GATEWAY=192.168.88.10
service network restart
route -n





RS2:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.88.12
GATEWAY=192.168.88.10
service network restart
route -n




2、在真實服務器上安裝Apache,啓動並設置爲開機自啓;
yum -y install httpd
service httpd start
chkconfig httpd on


echo “pag1” >> /var/www/html/index.html
curl 192.168.88.12
echo “pag2” >> /var/www/html/index.html
curl 192.168.88.12
#在真實服務器網頁寫入內容並測試



3、負載調度器開啓路由轉發;
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#開啓路由轉發
sysctl -p
#刷新配置文件使其生效




4、負載調度器加載ipvs模塊,安裝命令管理行工具ipvsadm;
modprobe ip_vs
#加載ipvs模塊
cat /proc/net/ip_vs
#查看當前進程有沒有加載ipvs
yum -y install ipvsadm
#安裝命令行管理工具





5、負載調度器添加集羣,設置調度規則;
ipvsadm -A -t 192.168.45.12:80 -s rr
#添加調度集羣(這裏相當於用VIP代表集羣),指定算法爲rr算法,若增加-p的話就是指定持久化連接時間(-p 120)

ipvsadm -a -t 192.168.45.12:80 -r 192.168.88.11:80 -m
ipvsadm -a -t 192.168.45.12:80 -r 192.168.88.12:80 -m
#添加真實服務器,-m指使用NAT模式得LVS負載均衡

ipvsadm -Ln
#列出當前的調度策略
service ipvsadm save
#由於上面添加的記錄放在內核裏,系統重載後會丟失,所以有必要保存當前的命令規則保證持久化
chkconfig ipvsadm on
#設置ipvs開機自啓
service ipvsadm start/stop/restart
#ipvs服務臨時管理命令






6、修改防火牆規則,添加DNAT轉換(增加規則的步驟可省略,但防火牆必須開啓);
service iptables start
iptables -L
#查看防火牆狀態,如果開啓防火牆後狀態仍爲空,可使用iptables -F先刷新一下
chkconfig iptables on
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o eth1 -j SNAT --to-source 192.168.45.12
#添加DNAT裝換,雖然防火牆會自動完成,但爲了減少錯誤,再手動添加規則匹配內網網段,目的是將源地址改爲出口(公網)地址
iptables:命令行管理工具
-t nat:指定nat表
-s 192.168.88.0/24:指定內網網段,即真實服務器所在網段
-A POSTROUTING:指定鏈
-o eth1:指定出口網卡名稱,即負載調度器與真實服務器通信的網卡名稱
-j SNAT:指定動作類型爲SNAT
–to-source 192.168.45.12:公網地址,即VIP
iptables -t nat -L
#查看NAT模式防火牆規則














7、客戶機測試。
while 2>1; do curl 192.168.45.12; sleep 1s; done
#客戶端測試
ipvsadm -Ln --stats
#負載調度器端查看調度詳情
提示:流量單位爲字節




ipvsadm -D -t 192.168.45.12:80
#刪除集羣
ipvsadm -d -t 192.168.45.12:80 -r 192.168.88.11:80
#刪除調度規則,某真實服務器
ipvsadm -a -t 192.168.45.12:80 -r 192.168.88.11:6666
#由於NAT模式支持端口映射,當真實服務器訪問端口更改時,使用此命令修改




故障點:負載調度器宕機、真實服務器宕機(負載調度器會繼續把訪問申請分配給宕機的真實服務器,導致用戶訪問請求得不到響應)
解決方案:可通過腳本監測真實服務器狀態來調整

二、基於DR模式的LVS負載均衡搭建
網絡拓撲圖
在這裏插入圖片描述
流程
1、搭建網絡環境,僅主機模式,關閉NetworkManager;
service NetworkManager stop
1.1 客戶端
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.45.11







1.2 負載調度器
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.45.12
#內部通信用
vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
IPADDR=192.168.45.100
NETMASK=255.255.255.0
#子接口作爲集羣VIP
service network restart && ping -c 4 192.168.45.100







1.3 真實服務器
RS1:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.45.13
#內部通信用
cp -a /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.45.100
NETMASK=255.255.255.255
#開啓迴環網卡子接口,配置IP與VIP一致,子網掩碼設置爲255.255.255.255是爲了只能被自己識別
service network restart && ping -c 4 192.168.45.100










RS2:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.45.14
cp -a /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.45.100
NETMASK=255.255.255.255
service network restart && ping -c 4 192.168.45.100







2、爲2臺真實服務器安裝並啓動Apache服務,添加網頁內容;
yum -y install httpd
service httpd start
echo “pag1” >> /var/www/html/index.html
echo “pag2” >> /var/www/html/index.html
curl localhost




3、修改2臺真實服務器網卡ARP通告響應行爲級別;
vim /etc/sysctl.conf
#LVS ARP
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
#在配置文件末行添加,設置當前所有網卡默認的通告和響應級別
sysctl -p
ifup lo:0 && ifconfig
route add -host 192.168.45.100 dev lo:0
#添加到迴環接口子接口的路由記錄
echo “/sbin/route add -host 192.168.45.100 dev lo:0” >> /etc/rc.local
#設置爲開機自動添加此路由記錄
route -n















4、修改負載調度器配置文件,關閉網卡重定向;
vim /etc/sysctl.conf
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
#關閉網卡重定向,不關也行
sysctl -p





modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

ipvsadm -A -t 192.168.45.100:80 -s rr
#ipvsadm -A -t 虛擬IP:80 -s rr
ipvsadm -a -t 192.168.45.100:80 -r 192.168.45.13:80 -g
#ipvsadm -a -t 虛擬IP:80 -r 網站1:80 -g
ipvsadm -a -t 192.168.45.100:80 -r 192.168.45.14:80 -g
#ipvsadm -a -t 虛擬IP:80 -r 網站2:80 -g
ipvsadm -Ln
#列出當前的調度策略
service ipvsadm save
chkconfig ipvsadm on








5、測試。
while 2>1; do curl 192.168.45.100; sleep 1s; done
ipvsadm -Ln --stats
#負載調度器查看調度詳情
提示:流量單位爲字節



ipvsadm -D -t 192.168.45.100:80
#刪除集羣
ipvsadm -d -t 192.168.45.100:80 -r 192.168.88.11:80
#刪除調度規則,某真實服務器
ipvsadm -a -t 192.168.45.100:80 -r 192.168.88.11:6666
#由於NAT模式支持端口映射,當真實服務器訪問端口更改時,先將原來的刪除,再使用此命令增加




三、持久化連接
環境:在DR模式基礎上
ipvsadm -D -t 192.168.45.100:80
#刪除先前添加的集羣
ipvsadm -A -t 192.168.45.100:80 -s rr -p 60
#重新添加集羣-p 60,指定持久化連接時間爲60S
ipvsadm -a -t 192.168.45.100:80 -r 192.168.45.13:80 -g
ipvsadm -a -t 192.168.45.100:80 -r 192.168.45.12:80 -g
#添加真實服務器
ipvsadm -lnc
#查看負載調度的真實服務器









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