DR模式LVS搭建
DR模式LVS搭建
DR模式需要三台虚拟机,三台虚拟机只需要有“公网”IP,但在这种模式下又多了一个VIP。对应的机器和IP如下:
调度器dir:192.168.200.130
真实服务器rs1:192.168.200.131
真实服务器rs2:192.168.200.132
VIP:192.168.200.110 (虚拟IP 仅主机IP)
首先把两台rs的网关改成原始网关,不能继续设置为dir的IP地址了。然后我们需要在dir上编写一个shell脚本,脚本内容如下:
[root@dir ~]# vim /usr/local/sbin/lvs_dr.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
ipv=/usr/sbin/ipvsadm
vip=192.168.200.110
rs1=192.168.200.131
rs2=192.168.200.132
#注意这里的网卡名字
ifconfig ens33:2 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip dev ens33:2
$ipv -C
$ipv -A -t $vip:80 -s wrr:iL:
$ipv -a -t $vip:80 -r $rs1:80 -g -w 1
$ipv -a -t $vip:80 -r $rs2:80 -g -w 1
两台rs上也需要编写脚本,脚本内容如下:
[root@rs1 ~]# vim /usr/local/sbin/lvs_rs.sh //两台rs上添加的内容一致
#/bin/bash
vip=192.168.200.110
#把vip绑定在lo上,是为了实现rs直接把结果返回给客户端
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip lo:0
#以下操作为更改arp内核参数,目的是为了让rs顺利发送mac地址给客户端
#参考文档www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
分别在三台机器上执行各自脚本;
[root@dir ~]# bash /usr/local/sbin/lvs_dr.sh
[root@rs1 ~]# bash /usr/local/sbin/lvs_rs.sh
[root@rs2 ~]# bash /usr/local/sbin/lvs_rs.sh
执行完三个脚本后,就可以测试了。但这次不可以直接在dir上用curl命令直接测试了,因为VIP在三台机器上都有设置。所以只能用浏览器来测试结果
IP:192.168.233.84 测试结果:rs1
IP:192.168.233.85 测试结果:rs2
IP:192.168.133.100 测试结果:rs2