运维企业专题——LVS的DR模式搭建

LVS的DR模式

原理部分请看作者博文
https://blog.csdn.net/zhaoliang_Guo/article/details/96862679

准备工作
准备三个rhel7.3虚拟机,设置ip和hostname如下,并搭建好yum源

IP hostname
172.25.254.1 server1
172.25.254.2 server2
172.25.254.3 server3

DR模式的搭建

1.把server1当作DS,现在server1上下载ipvsadm并配置

yum install ipvsadm -y

下载好后需要建下面这个文件,否则无法启动ipvsadm

touch /etc/sysconfig/ipvsadm

然后重新启动ipvsadm

systemctl start ipvsadm

配置ipvsadm的配置文件

vim /etc/sysconfig/ipvsadm-config 

 14 # Save current ipvs rules on restart.
 15 #   Value: yes|no,  default: no
 16 # Saves all ipvs rules to /etc/sysconfig/ipvsadm if ipvsadm gets
 17 # restarted.
 18 IPVS_SAVE_ON_RESTART="yes"
 19 

把18行的no改为yes,目的是让我们重新启动ipvsadm的时候,把写的策略保存进去
在这里插入图片描述
编写策略

[[email protected] ~]# ipvsadm -A -t 172.25.254.100:80 -s rr		此ip是vip(虚拟ip)
[[email protected] ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.2:80 -g
[[email protected] ~]# ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.3:80 -g
[[email protected] ~]# cat /etc/sysconfig/ipvsadm
[[email protected] ~]# systemctl restart ipvsadm.service 
[[email protected] ~]# cat /etc/sysconfig/ipvsadm
-A -t 172.25.254.100:80 -s rr
-a -t 172.25.254.100:80 -r 172.25.254.2:80 -g -w 1
-a -t 172.25.254.100:80 -r 172.25.254.3:80 -g -w 1

在这里插入图片描述
此时我们还需要添加vip,

ip addr add 172.25.254.100/24 dev eth0

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

  • 1.添加vip ###是为了回包

       ip addr add 172.25.254.100/24 dev eth0
    

    http在之前已经做过,把它启动

      [[email protected] ~]# cat /var/www/html/index.html 
      server2 www.gzl.com
      [[email protected] ~]# systemctl start httpd
    

在这里插入图片描述
在server3虚拟机

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

这样做好后仍然存在问题
因为DS和RS都有一个一样的ip,有可能client,直接访问到了rs,这是我们不想看到的
因为这样的话可能会受到DDOS攻击,也没有起到负载均衡的作用

所以我们的RS需要arptables来防止,如果RS上接受到访问vip的请求就拒绝掉
这样访问vip时只能有DS接受,可以通过vip转换为mac地址来调度RS
RS数据返回时,不会回包,直接返回给client,但返回时它的ip需要是vip所以需要转换一下

操作:
在server2和server3上安装arptables

yum install -y arptables.x86_64

安装好后,编写策略

[[email protected] ~]# arptables -A INPUT -d 172.25.254.100 -j DROP
[[email protected] ~]# arptables -A OUTPUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.2

编写好后还需要将策略导入文件

[[email protected] ~]# arptables-save > /etc/sysconfig/arptables 
[[email protected] ~]# cat /etc/sysconfig/arptables 
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD ACCEPT
-A INPUT -j DROP -d 172.25.13.100 
-A OUTPUT -j mangle -s 172.25.0.100 --mangle-ip-s 172.25.13.2 

在这里插入图片描述
在server3上同样操作

[[email protected] conf.d]# arptables -A INPUT -d 172.25.13.100 -j DROP
[[email protected] conf.d]# arptables -A OUTPUT -s 172.25.0.100 -j mangle --mangle-ip-s 172.25.13.3
[[email protected] conf.d]# arptables-save > /etc/sysconfig/arptables
[[email protected] conf.d]# cat /etc/sysconfig/arptables 
*filter
:INPUT ACCEPT
:OUTPUT ACCEPT
:FORWARD ACCEPT
-A INPUT -j DROP -d 172.25.13.100 
-A OUTPUT -j mangle -s 172.25.0.100 --mangle-ip-s 172.25.13.3 

在这里插入图片描述
在真实主机上测试:

curl  172.25.254.100

在这里插入图片描述

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