LVS——DR模式

1.  实验环境:

                 server1(3号)       web1              IP:172.25.254.1

                 server2(2号)        web2             IP:172.25.254.2

                 server3(3号)          LB                IP: 172.25.254.3

                 foundation13        client             IP:172.25.254.250

2.   在client上搭建rhel6.5的网络YUM源:

3. 因为3号主机是LB,所以为了安装某些需要的套件,需要在其上配置如下的yum源:

4. 给1号、2号、3号主机配置相同的VIP(虚拟IP:172.25.254.100):

    1号主机:

           配置命令: ip addr add 172.25.254.100/32 dev eth0

           配置结果:

     2号主机:

                 用另外一种配置命令:ifconfig eth0:0 172.25.254.100 netmask 255.255.255.255 up

                  配置结果:

 

     3号主机:

                  直接列出配置结果:

5. 在3号主机中下载IPVS的管理工具ipvsadm:

6.  在LB主机,也就是3号主机上配置虚拟服务器、后端真实服务器、调度方法以及工作模式:

           使用该命令:ipvsadm -A -t 172.25.254.100:80 -s rr

                                  -A  表示添加一个虚拟服务器, -t 表示添加tcp的端口, -s 表示配置调度方法, rr 表示 LB的调度方式是轮询。

           使用该命令: ipvsadm -a -t 172.25.254.100:80 -r 172.25.254.1:80 -g

                                  -a  表示添加一个真实服务器, -t表示添加tcp的端口号,-r 后面亘的是真实服务器的IP和tcp端口号, -g表示采用DR的工作模式。

             配置过程及结果如下:

ipvsadm -l   和  ipvsadm  -ln 都可以显示配置的ipvs内容, 前者显示的时候将IP解析成了主机名,后者直接显示IP:

    若想将配置内容永久保存,可以使用命令:

     查看保存后的文件内容:

     ipvsadm  -C 命令可以清空所有的配置,进行重新配置IPVS的规则内容。

7.  开启1号主机和2号主机的httpd服务:

8. 现在进行一个小测试:

我们在client上面访问虚拟服务器:

实验结果明显不对,用arp -an 命令看一下arp的缓存内容:

发现VIP 和后面的MAC地址形成了映射关系,这个MAC是谁的呢?我们检查一下发现是server1的MAC地址,如下图:

      难怪实验现象不对,因为在同一个局域网中,当client主机的http请求报文的目的IP是172.25.254.100的时候,而在我们当前的实验环境下,一个局域网中有1号、2号、3号主机都有相同的IP(VIP),在http报文寻找目的地的时候,会先通过arp协议广播一个报文,这个报文的目的是得到谁是VIP的主机,谁是这个主机,该主机接收这个请求,然后返回该主机的MAC地址给client,供其在数据链路层传输传输数据; 而当有多个相同的目标IP时,那就是谁响应的快,client就会屏蔽掉其它主机,将http报文传送给第一个响应的主机。

      所以,现阶段响应的结果时随机的,不信我们再测试:

我们的目的当然是只让3号主机LB响应客户端的http请求了,那么该怎么解决这一问题呢?下面接解决这一问题。

9.  在1号、2号主机上配置arp抑制:

    首先在1号、2号主机上下载arp内存空间的管理工具: arptables

     注意!!!arptables的基本思路和iptables一样;不过,arptables处理arp协议有关的包!!!

1号、2号主机上都配置策略: arptables  -A  IN  -d  172.25.254.100  -j  DROP

                          -A 意思是添加arptable的匹配规则, IN表示当arp相关的包进来时, -d 表示目标地址是172.25.254.100, -j 表示匹配上规则后做的动作,  DROP表示丢弃。

用命令arptables  -L 查看配置规则:

要想使该规则永久生效,则做如下配置:

在主机2上做同样的配置。

 10.   测试:

结果如下图,表明实验成功:

但是为了保险期间,我们在1号、2号主机上再配置一条arp规则:arptables -A OUT -s 172.25.254.100 -j mangle --mangle-ip-s 172.25.254.1

               配置这条规则的目的是,假若上调匹配规则出现了失误没匹配上,这条规则同样可以起到arp抑制的作用。 意思是,若要发送一个arp回应报文时,若源地址是VIP:172.25.254.100 则将arp报文发送给172.25.254.1这台主机,也就是自己。

                做到这,博主猜想那么,在1号、2号主机上只配置这两条规则中的任意一个都是可行的。

               故,清空之前配置的arp规则: arptables  -F, 然后只添加后面一条:

      2号主机做同样的配置,这里不再赘图。

在client主机上做测试:

 

       其实,除了上面的方法,该实验还有第二种做法,第二种做法和第一种方法在思路上是一样的,不同之处在于处理arp抑制的方式。下面我们用第二种方法来实现该实验。

1.    在上一个实验的基础上,我们重启1号、2号主机,重启后因为在1、2主机上的vip和arptbles规则都是临时配置所以都会失效,这样省的我们一个一个清除。

2. 配置文件/etc/sysctl.conf,配置内容如下:

在1号、2号主机上都要做上面的配置。

然后用命令  sysctl -p 通知系统:

arp_ignore和arp_announce内核参数的含义可以参考:https://www.jianshu.com/p/a682ecae9693

3. 在回环接口上绑定vip:

      1号主机:

         2号主机:

4. 开启1号、2号主机上的httpd服务:

5.  测试现象:

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值