LVS-DR工作原理
Lvs-dr的工作原理:Deiector收到请求,将请求转发给了我们的realserver,但是接下来的工作就是我们的realserver和我们的客户端进行通讯了
为什么需要DR? 因为NAT模式效率太低。
DR方式特点?成本?都是公网地址
lvs-DR 是基于2层的转发, 所以在LVS中所有的模式, 效率是最好的
实战 配置LVS-DR集群
准备3台Centos7系统
Centos7-1(分发器) 192.168.151.11 IP
192.168.151.12 VIP
Centos7-2(relaServer) 192.168.152.13 IP
Centos7-3(relaServer) 192.168.152.13 IP
Centos7-1(分发器)
Centos7-1(分发器) yum install -y ipvsadm
Centos7-1(分发器) ipvsadm -A -t 192.168.152.12:80 -s rr
Centos7-1(分发器) ipvsadm -a -t 192.168.152.12:80 -r 192.168.152.13 -g
Centos7-1(分发器) ipvsadm -a -t 192.168.152.12:80 -r 192.168.152.14 -g
-g 表示DR模式
注:三个LVS 模式中,只有NAT模式需要开启路由转发功能,DR和TUN模式不需要开启。
Centos7-2(relaServer)
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:1
vim ifcfg-lo:1
DEVICE=lo:1
IPADDR=192.168.152.12 VIP地址
NETMASK=255.255.255.255
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
ONBOOT=yes
NAME=loopback
关闭ARP转发(在两台RS上都需要同样的操作)
同一个广播域:配置了多个相同的VIP 是不允许的, 要想实现,就必须让外面的网络, 无法发现这个VIP的存在。
因此 在Linux里面, 可以修改内核参数, 实现接口IP的广播不响应、不广播
arp_ignore = 1 表示只回答目标IP是访问本地网络对应接口的arp请求 arp_announce = 2 只宣告本机网卡直连网络所在的ip的arp广播
[root@centos7-1 ~]# echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore
[root@centos7-1 ~]# echo 2 > /proc/sys/net/ipv4/conf/ens33/arp_announce
vim /etc/sysctl.conf
添加最后两行
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
sysctl -p
Centos7-3(relaServer)
操作步骤同Centos7-2(relaServer)
测试
访问VIP