运维企业专题(5)LVS高可用与负载均衡中篇——VS/DR模式配置详解

实验准备

1.下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源
2.准备三台虚拟机,为了区分主机名与IP分别为
server1 172.25.6.1
server2 172.25.6.2
server3 172.25.6.3
3.我们将server1(172.25.6.1)作为调度器,server2、server3作为后端服务器,物理机作为客户端
(当然你如果从作者的运维企业部分1开始看的,这些配置不是问题)

1.VS/DR配置过程详解

1)调度器server1上相关配置如下

<1>yum源修改(因为一般的配置只能获得基础的包,不能获得ipvsadm)

vim /etc/yum.repos.d/rhel-source.repo
[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.6.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

在这里插入图片描述
在这里插入图片描述

注意:为了方便起见,我们可以之间将这个yum源的配置文件发送给server2、server3

scp /etc/yum.repos.d/rhel-source.repo [email protected]:/etc/yum.repos.d
scp /etc/yum.repos.d/rhel-source.repo [email protected]:/etc/yum.repos.d

<2>安装ipvsadm调度器

yum install ipvsadm -y
ipvsadm -l				##查看调度器规则
lsmod
lsmod | grep ip_vs

<3>添加外网ip地址(使客户端访问外网)

ip addr add 172.25.6.100/24 dev eth0
ip addr

在这里插入图片描述

<4>编写调度器规则(让客户端在访问172.25.6.100的时候采用轮循)

ipvsadm -A -t 172.25.6.100:80 -s rr		##rr调度算法详情参考前篇
ipvsadm -D -t 172.25.6.100:80			##如果你不小心手残加错了,用它删除

<5>添加调度策略

ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.2:80 -g
ipvsadm -a -t 172.25.6.100:80 -r 172.25.6.3:80 -g
ipvsadm -l
/etc/init.d/ipvsadm save				##保存策略

在这里插入图片描述

注意:如果按照作者前面的实验做了,那么现在你还需要做一件事,将httpd的端口改回80

vim /etc/httpd/conf/httpd.conf 
/etc/init.d/httpd restart

在这里插入图片描述

2)后端服务器server2、server3配置如下(二者配置相同,此处以server2为例)

<1>安装apache服务,编写默认发布页

yum install httpd -y
vim /var/www/html/index.html
/etc/init.d/httpd start

在这里插入图片描述
在这里插入图片描述
<2>添加IP

ip addr add 172.25.6.100/32 dev eth0			##注意这里的IP网段是32,也就是说这是唯一的IP
ip addr

在这里插入图片描述

3)在客户端上测试(以下操作全都在客户端做)

curl 172.25.6.100

在这里插入图片描述

arp -an | grep 100	#此时172.25.6.100的MAC地址,绑定为server1调度器的MAC地址

在这里插入图片描述

在这里插入图片描述

arp -d 172.25.2.100			##清除MAC地址,并重新访问
curl 172.25.2.100

这时我们发现,这一次100绑定在了后端服务器server3上,因此对于客户端的响应后端服务器也并没有实现轮循,你可以多尝试几次,验证一下MAC的绑定是随机的,还是有一定的规律

在这里插入图片描述

在这里插入图片描述

注意:此时的客户端进行访问的时候,100会随机选取MAC地址,后端谁抢到就是谁的,(因为arpip广播)


2.解决随机选择MAC地址的问题

由上面的实验可以得知,只有当172.25.6.100上绑定了调度器的MAC地址时实现负载均衡,由此有如下解决方案:

以下操作在后端服务器server2、server3上配置,操作相同,以server2为例

1)安装arptables火墙策略,查看火墙策略

yum search arptables
yum install arptables_jf.x86_64 -y
arptables -L

在这里插入图片描述

2)编写火墙策略

arptables -A IN -d 172.25.6.100 -j DROP	#将此ip屏蔽掉
arptables -A OUT -s 172.25.6.100 -j mangle --mangle-ip-s 172.25.6.2		#让访问100的ip出去是8.2
arptables -L
/etc/init.d/arptables_jf save			##保存策略

在这里插入图片描述

3)在客户端测试

清除100上的MAC地址

arp -d 172.25.6.100

访问调度器——实现了负载均衡

curl 172.25.6.100

在这里插入图片描述

后端服务器各访问了三次
在这里插入图片描述

为了排除其他干扰因此,再次清除MAC地址,进行测试

在这里插入图片描述
在这里插入图片描述

VS/DR模式配置成功 !!! 😃😃😃

版权声明:本文为meltsnow原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/meltsnow/article/details/89378559