1. 程式人生 > 其它 >LVS-NAT模式實現

LVS-NAT模式實現

一.環境準備

實驗環境:使用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