LVS-NAT模式實現
阿新 • • 發佈:2021-08-11
一.環境準備
實驗環境:使用4臺虛擬機器,1臺作為Linux路由器、1臺作為LVS排程器、2臺作為Real Server、1臺機作為客戶端:
客戶端: centos8:192.168.50.20/24 僅主機模式 無GW,直接訪問同網段的vip lvs伺服器: centos7: eth0:192.168.18.70/24 NAT模式 eth1:192.168.50.10/24 僅主機模式 RS伺服器: web1:centos7:192.168.18.71 GATEWAY:192.168.18.70 NAT模式 web2:centos7:192.168.18.72 GATEWAY:192.168.18.70 NAT模式
網路拓撲結構如圖所示:
二、LVS伺服器安裝ipvsadm管理工具
#配置網路後無法連線外網,需事先安裝相關軟體
[root@lvs ~]# yum -y install ipvsadm
在後端伺服器即RS1,RS2主機上安裝http服務,並自定義web頁面
[root@web1 ~]# yum -y install httpd [root@web1 ~]# echo "web1 192.168.18.71" > /var/www/html/index.html [root@web1 ~]# systemctl start httpd [root@web1 ~]# curl 192.168.18.71 web1 192.168.18.71 [root@web2 ~]# yum -y install httpd [root@web2 ~]# echo "web2 192.168.18.72" > /var/www/html/index.html [root@web2 ~]# systemctl start httpd [root@web2 ~]# curl 192.168.18.72 web2 192.168.18.72
三、配置網路環境
1)設定LVS伺服器網路引數
lvs伺服器新增一塊網絡卡eth1,並設定網路為僅主機模式
配置LVS網絡卡地址
[root@lvs ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.18.70 NETMASK=255.255.255.0 [root@lvs ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.50.10 NETMASK=255.255.255.0 #開啟路由轉發 [root@lvs ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf [root@lvs ~]# sysctl -p net.ipv4.ip_forward = 1
2)設定Real Server網路引數
[root@web1 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.18.71
NETMASK=255.255.255.0
GATEWAY=192.168.18.70
[root@web2 network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.18.72
NETMASK=255.255.255.0
GATEWAY=192.168.18.70
3)客戶端設定網路為僅主機模式
配置client網絡卡地址
[root@client network-scripts]# cat ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.50.20
四、部署LVS-NAT模式排程器
1)建立叢集伺服器
[root@lvs ~]# ipvsadm -A -t 192.168.50.10:80 -s wrr
2)新增真實伺服器
[root@lvs ~]# ipvsadm -a -t 192.168.50.10:80 -r 192.168.18.71:80 -m
[root@lvs ~]# ipvsadm -a -t 192.168.50.10:80 -r 192.168.18.72:80 -m
[root@lvs ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.50.10:80 wrr
-> 192.168.18.71:80 Masq 1 0 0
-> 192.168.18.72:80 Masq 1 0 0
3) 客戶端驗證
[root@client network-scripts]# while :;do curl 192.168.50.10;sleep 0.5;done
web1 192.168.18.71
web2 192.168.18.72
web1 192.168.18.71
web2 192.168.18.72
web1 192.168.18.71
web2 192.168.18.72
web1 192.168.18.71
web2 192.168.18.72
web1 192.168.18.71
web2 192.168.18.72
web1 192.168.18.71
web2 192.168.18.72
web1 192.168.18.71
^C