實現NAT模式的LVS
阿新 • • 發佈:2017-10-24
lvs-nat模式
實驗:實現NAT模式的LVS
環境:先將網咯拓撲圖搭建好,關閉iptables和selinux,在vs服務器上和real server上確定能訪問web服務(httpd)
四臺主機,兩臺real server服務器,一臺客戶端機,一臺vs機器
客戶端的地址:172.18.77.66
vs服務器地址:VIP地址:172.18.77.77
DIP地址:192.168.77.77
網路拓撲:
在vs服務器上配置策略:
[root@centos7 ~]#echo 1 > /proc/sys/net/ipv4/ip_forward [root@centos7 ~]#vim /etc/sysctl.conf 為了方便可以直接修改配置文件永久保存 net.ipv4.ip_forward=1 [root@centos7 ~]#ipvsadm -A -t 172.18.77.77:80 -s rr 加的vs的VIP地址 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.7 -m 管理集群服務 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.6 -m RS服務器地址:rs1 : 192.168.77.7 rs2 : 192.168.77.6 在rs服務器上都配有返回數據的網關是vs調度器的內網地址 DIP: route add default gw 192.168.77.77 最後測試: [root@centos6 ~]#curl 172.18.77.77 這是rs2機器 [root@centos6 ~]#curl 172.18.77.77 這是rs-1機器 [root@centos6 ~]#curl 172.18.77.77 這是rs2機器 [root@centos6 ~]#curl 172.18.77.77 這是rs-1機器 現在修改策略:采用權重 [root@centos7 ~]#ipvsadm -C 清空策略 [root@centos7 ~]#ipvsadm -Ln 查看定義的策略 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn [root@centos7 ~]#ipvsadm -A -t 172.18.77.77:80 -s wrr 加權輪詢 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.6 -m -w 3 權重為3,默認不寫就是1次 [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:80 -r 192.168.77.7 -m [root@centos7 ~]#ipvsadm -Ln IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 172.18.77.77:80 wrr -> 192.168.77.6:80 Masq 3 0 0 -> 192.168.77.7:80 Masq 1 0 0 測試: [root@centos6 ~]#for i in {1..10};do curl 172.18.77.77;done 這是rs-1機器 這是rs2機器 這是rs2機器 這是rs2機器 這是rs-1機器 這是rs2機器 這是rs2機器 這是rs2機器 這是rs-1機器 這是rs2機器
測試結果表明,由於加了權重rs2的服務器處理的數據是rs1處理數據的三倍(3:1)
保存及重載規則:
cat /usr/lib/systemd/system/ipvsadm.service 保存:建議保存至/etc/sysconfig/ipvsadm ipvsadm-save -n > /etc/sysconfig/ipvsadm ipvsadm -S > /etc/sysconfig/ipvsadm systemctl stop ipvsadm.service 停止服務也會保存定義的策略,同時清空策略 重載: ipvsadm-restore < /etc/sysconfig/ipvsadm ipvsadm -R < /etc/sysconfig/ipvsadm systemctl restart ipvsadm.service 當服務開啟時,定義的策略會打開用ipvsadm -Ln查看
NAT模型實現https負載均衡集群
註意:RS: 都要提供同一個私鑰和同一個證書
在real server實現自簽名證書
[root@ZhangLin ~]#cd /etc/pki/tls/certs/ [root@ZhangLin certs]#make httpd.crt 為了將私鑰和證書分開可以這樣做,不分開的話是.pem結尾 [root@ZhangLin certs]#mv httpd.* /etc/httpd/conf.d/ [root@ZhangLin certs]#cd /etc/httpd/conf.d/ [root@ZhangLin conf.d]#yum install -y mod_ssl 安裝模塊 註意:這裏的安裝可能有epel源的幹擾,可先關閉epel源 root@ZhangLin conf.d]#vim ssl.conf 修改證書和私鑰路徑,其他默認不變 SSLCertificateFile /etc/httpd/conf.d/httpd.crt SSLCertificateKeyFile /etc/httpd/conf.d/httpd.key [root@ZhangLin conf.d]#systemctl restart httpd 現在可以測試: [root@ZhangLin conf.d]#curl -k https://192.168.77.7 這是rs-1機器 [root@centos6 ~]#curl -k https://192.168.77.7在客戶端也可以直連測試 這是rs-1機器
上述是一臺rs服務器,如果是同一版本系統(centos 7或centos 6)可以直接復制到其他機器;
由於做實驗沒在同一操作系統上所以還得在做一次
scp httpd.key httpd.crt 192.168.77.6:/etc/httpd/conf.d/
在centos 6上也要安裝ssl_mod模塊,和上述一樣修改證書和私鑰文件路徑,重啟服務測試
在vs服務器上添加real server服務 [root@centos7 ~]#ipvsadm -A -t 172.18.77.77:443 -s rr [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:443 -r 192.168.77.7 -m [root@centos7 ~]#ipvsadm -a -t 172.18.77.77:443 -r 192.168.77.6 -m 測試: [root@centos6 ~]#curl -k https://172.18.77.77 這是rs2機器 [root@centos6 ~]#curl -k https://172.18.77.77 這是rs-1機器
httpd和https 是同類型的服務,實現統一調度,集群為一個服務,所以將他們不同的端口打包成一個服務,需要使用mark標記
借助於防火墻標記來分類報文,而後基於標記定義集群服務;可將多個不同的應用使用同一個集群服務進行調度
實現方法:
在Director主機打標記:
iptables -t mangle -A PREROUTING -d 172.18.77.77 -p tcp –m multiport --dports 80,443 -j MARK --set-mark 18
-d 後面是目標地址,vip的地址
在Director主機基於標記定義集群服務:
ipvsadm -A -f 18 默認是wlc算法,也可以指定:後面加上 -s wrr
然後將rs服務加進來
ipvsadm -a -f 18 -r 192.168.77.7 -g -w 3 加權重 ipvsadm -a -f 18 -r 192.168.77.6
本文出自 “13147090” 博客,謝絕轉載!
實現NAT模式的LVS