LVS-DR模式实现

一.环境准备

实验环境:使用5台虚拟机,1台作为Linux路由器、1台作为LVS调度器、2台作为Real Server、1台机作为客户端

客户端:
centos8:  
仅主机模式 eth0 :10.0.0.20/24 
GATEWAY:10.0.0.10/24 
路由器:
centos8:
eth0:192.168.18.84/24 NAT模式
eth1:10.0.0.10/24 仅主机模式
lvs服务器:
centos7:
DIP:eth0:192.168.18.70/24
VIP:lo:192.168.18.100/32
GATEWAY:192.168.18.84

RS服务器:
web1:centos7:
RIP:eth0:192.168.18.71  NAT模式
VIP:lo:192.168.18.100/32
GATEWAY:192.168.18.84 

web2:centos7:
RIP:eth0:192.168.18.72  NAT模式
VIP:lo:192.168.18.100/32
GATEWAY:192.168.18.84

网络拓扑结构如图所示:

 

二:配置网络环境

1)客户端网络配置为仅主机模式,并配置网络参数

 

[root@client network-scripts]# cat ifcfg-eth0 
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.20
NETMASK=255.255.255.0          
GATEWAY=10.0.0.100		
DNS1=223.5.5.5

#重启网络
[root@client network-scripts]# service NetworkManager restart

 

2)路由器添加一块网卡,一块NAT模式,一块仅主机模式并配置网络参数

 

 

[root@Router network-scripts]# cat ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.18.84
NETMASK=255.255.255.0

[root@Router network-scripts]# cat ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.10
NETMASK=255.255.255.0
#重启网络
[root@Router network-scripts]# service NetworkManager restart

#开启路由转发
[root@Router ~]# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
[root@Router ~]# sysctl -p
net.ipv4.ip_forward = 1

 

3)设置Web服务器网络参数

[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.84
[root@web1 ~]# systemctl restart network

[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.84
[root@web2 ~]# systemctl restart network

 

4)在后端服务器即RS1,RS2主机上安装http服务

[root@web1 ~]# yum -y install httpd
#自定义Web页面
[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
#自定义Web页面
[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

 

 

4)设置LVS服务器网络参数

 

[root@lvs network-scripts]# cat ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.18.70
NETMASK=255.255.255.0
GATEWAY=192.168.18.84  
[root@lvs network-scripts]# service NetworkManager restart 

 

 三、后端RealServer 抑制ARP,并添加VIP 

 

[root@web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@web1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@web1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@web1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

#web1添加VIP
[root@web1 ~]# ifconfig lo:1 192.168.18.100/32
[root@web1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:1
DEVICE=lo:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.18.100
NETMASK=255.255.255.255

[root@web2 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@web2 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@web2 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

[root@web2 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

#web2添加VIP
[root@web2 ~]# ifconfig lo:1 192.168.18.100/32
[root@web2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:1
DEVICE=lo:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.18.100
NETMASK=255.255.255.255

 

四、LVS服务器安装ipvsadm管理工具并添加VIP 

[root@lvs ~]# yum -y install ipvsadm
[root@lvs ~]# ifconfig lo:1 192.168.18.100/32
[root@lvs ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:1
DEVICE=lo:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.18.100
NETMASK=255.255.255.255

 

五、部署LVS-DR模式调度器

#创建集群服务器
[root@lvs ~]# ipvsadm -A -t 192.168.18.100:80 -s rr
#添加真实服务器
[root@lvs ~]# ipvsadm -a -t 192.168.18.100:80 -r 192.168.18.71:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.18.100:80 -r 192.168.18.72:80 -g
#查看规则列表,并保存规则
[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.18.100:80 rr
  -> 192.168.18.71:80             Route   1      0          0         
  -> 192.168.18.72:80             Route   1      0          0         
    
[root@lvs ~]# ipvsadm -S
-A -t lvs:http -s rr
-a -t lvs:http -r 192.168.18.71:http -g -w 1
-a -t lvs:http -r 192.168.18.72:http -g -w 1

 

六、客户端测试

[root@client ~]# while :;do curl 192.168.18.100;sleep 0.5;done
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
web2 192.168.18.72
web1 192.168.18.71
web2 192.168.18.72
^C

 

posted @ 2021-08-11 10:43  屈宏志  阅读(81)  评论(0编辑  收藏  举报