LVS-NAT實現方式
阿新 • • 發佈:2018-04-12
LVS-NAT LVS-NAThttps 環境準備:
註意:時間必須同步 RS服務器:192.168.27.144 (與VS服務器進行時間同步) 192.168.27.145 VS服務器(與172.18.0.1進行同步並且允許192.168.27.0網段與本機同步) DIP地址:192.168.27.105 VIP地址:172.20.101.91 CIP服務器:172.20.0.101 NTP服務器:172.18.0.1
一:在VS服務器上進行操作
1 chronyd服務(網絡時間協議)搭建 ntpdate "172.18.0.1"(手動同步) 2 啟動chronyd服務; systemctl start chronyd #chronyd是centos7上面的一個新的時間同步服務器,默認UDP的323端口 3 編輯chronyd配置文件 vim /etc/chronyd.conf server 172.18.0.1 iburst #添加此行指定與哪臺服務器進行同步,iburst代表第一次啟動就進行同步 allow 192.168.27.0/24 #取消allow前面的註釋,後面寫入IP網段或地址 local stratum 10 #取消此行註釋,意思是如果本機無法與遠程主機同步,也不影響後端服務器與本機的同步 4 重啟chronyd服務 systemctl restart chronyd #更改配置文件後重啟服務生效,服務使用的是UDP的323端口;
二:分別在RS服務器上操作
1 編輯chronyd服務的配置文件 vim /etc/chronyd.conf server 192.168.27.105 #要同步的主機IP指向VS服務器的DIP地址 2 重啟服務並且查看端口是否存在 systemctl restart chronyd #重啟chronyd服務; ss -nlup #查看是否有UDP的323端口; 3 查看同步信息 chronyc sources #使用此項命令可查看同步的信息;
三:給後端RS服務器分別設置網關
1 vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.27.105 #添加此行指定網關
2 在另一臺RS服務器上同樣設定網關;
四:在VS服務器上進行操作
1 開啟ip_forward轉發功能
echo net.ipvs.ip_forward=1 >> /etc/sysctl.conf #開啟路由轉發功能
2 使用命令生效
sysctl -p
3 使用命令查看
sysctl -a | grep ip_forward #查看是否有結果
五:給客戶端配置外網IP地址並且指定網關
1 vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1 #指定網卡名稱
IPADDR=172.20.0.101 #指定IP地址
GATEWAY=172.20.101.91 #指定目標網關,此處網關為VS服務器的VIP地址
2 重啟網卡服務
service network restart #此服務器是centos6所以使用此命令重啟網卡服務
3 測試是否能夠ping通後端RS主機以及VS服務器的DIP;
ping 192.168.27.105
ping 192.168.27.144
ping 192.168.27.145
六:分別在後端RS服務器上搭建httpd
1 在192.168.27.144上搭建httpd服務
yum install httpd #使用yum安裝httpd服務
echo "rs1" > /var/www/html/index.html #方便後續測試結果明顯 所以此處主頁內容為rs1
systemctl enable httpd #開機運行httpd服務
2 在192.168.27.145上執行同樣的操作,但主頁內容為"rs2"
3 註意:
在啟動httpd服務如果過慢可以在/etc/hosts文件中添加本機的ip地址後方對應主機名稱得以解決
七:在CIP的服務器上面進行測試
curl 192.168.27.144 #如果可以得到rs1的顯示則說明成功
八:在VS服務器上進行操作
1 yum install ipvsadm #安裝此服務
2 ipvsadm -A -t 172.20.101.91:80 -s rr
#-A : 添加VS集群
#-t : 指定目標協議為TCP協議
#172.20.101.91:80 : VIP:PORT
#-s : 指定調度算法
#rr : 輪詢算法
3 ipvsadm -a -t 172.20.101.91:80 -r 192.168.27.144 -m
#-a : 添加RS集群
#-t : 指定目標協議為TCP協議
#172.20.101.91:80 : VIP:PORT
#-r : 指定RS的IP地址
#-m : nat類型
ipvsadm -a -t 172.20.101.91:80 -r 192.168.27.145 -m
#與以上解釋同理
4 ipvsadm -ln #查看配置的集群信息,以下內容就為此實驗配置的內容
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.20.101.91:80 rr
-> 192.168.27.144:80 Masq 1 0 0
-> 192.168.27.145:80 Masq 1 0 0
5 更改調度算法
ipvsadm -E -t 172.20.101.91:80 -s wrr
#-E : 修改VS集群
#-t : 指定目標協議為TCP協議
#172.20.101.91:80 : VIP:PORT
#-s : 指定調度算法
#wrr: 加權輪詢算法
ipvsadm -e -t 172.20.101.91:80 -r 192.168.27.144 -w 3 -m
#-e : 編輯RS集群
#-t : 指定目標協議為TCP協議
#172.20.101.91:80 : VIP:PORT
#192.168.27.144:指定後端RS服務器地址
#-r : 指定RS的IP地址
#-m : nat類型
#-w : 指定權重大小
6 ipvsadm -ln #查看集群信息,顯示以下內容則代表配置成功
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.20.101.91:80 wrr
-> 192.168.27.144:80 Masq 3 0 0
-> 192.168.27.145:80 Masq 1 0 0
7 /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm #手動保存ipvsadm策略到文件中,服務停止後會自動保存此文件並清空內存內容
/sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm #手動恢復ipvsadm策略到內存中,服務啟動後會自動讀取此文件並還原到內存
8 更改為源地址hash : 只要源地址不變,永遠會調度到後端同一個RS上
ipvsadm -E -t 172.20.101.91:80 -s sh
9 將算法改為wlc算法:
ipvsadm -E -t 172.20.101.91:80 -s wlc
10 RS服務器的端口不同也沒關系,不能直接更改,只能刪除後再添加
ipvsadm -d -t 172.20.101.91:80 -r 192.168.27.144:80
ipvsadm -a -t 172.20.101.91:80 -r 192.168.27.144:8080 -m
實現https的調度
1 在RS服務器分別操作
yum install mod_ssl #此處使用自定義證書,安裝這個包就附帶證書
2 安裝完成後重啟httpd服務
systemctl restart httpd #重啟後會發現多了一個443的端口
3 在VS服務器上操作,添加集群443端口
ipvsadm -A -t 172.20.101.91:443 -s wlc
ipvsadm -a -t 172.20.101.91:443 -r 192.168.27.144:443 -m
ipvsadm -a -t 172.20.101.91:443 -r 192.168.27.145:443 -m
4 在CIP的服務器上面進行測試
curl -k https://172.20.101.91
LVS-NAT實現方式