一.环境准备
实验环境:使用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