直接路由模式(LVS-DR)

在DR模式的群集中,LVS负载调度器作为群集的访问入口,但不作为网关使用;服务器池中的所有节点都各自接入Internet,发送给客户机的Web响应数据包不需要经过LVS负载调度器。

LVS-DR中的ARP问题分析

   在LVS-DR负载均衡集群中,负载均衡与节点服务器都要配置相同的VIP地址,但是在局域网中具有相同的IP地址,势必会造成各服务器ARP广播通信的混乱。

当一个ARP广播发送到LVS-DR 集群时,因为负载均衡和节点服务器都是连接到相同的网络上的,他们都会接收到ARP广播,此时应该只有前端的负载均衡器进行响应,而其他节点服务器不应该相应ARP广播。

解决方法:

对节点服务器进行处理,使其不响应针对VIP的AIP请求,使用虚口lo:0 承载VIP 地址,设置内核参数arp_ignorre=1; 系统只响应目的ip为本地RIP的AIP请求。

先准备三台虚拟机

一个调度器,两个节点服务器

(1)      所有主机关闭防火墙和selinux

   systemctl stop firewalld

   iptables -F

   setenforce 0

(2)配置负载调度器

   配置虚拟ip地址(VIP)采用虚拟接口的方式(eno16777728),为网卡eno16777728绑定VIP地址,以便响应群集访问

yum -y install ipvsadm

ifconfig eno16777728:0 192.168.200.254 netmask 255.255.255.0 

ifconfig eno16777728:0

(3)配置负载分配策略

ipvsadm -A -t 192.168.200.254:80 -s rr

ipvsadm -a -t 192.168.200.254:80 -r 192.168.200.114:80 -g -w 1

ipvsadm -a -t 192.168.200.254:80 -r 192.168.200.115:80 -g -w 1

ipvsadm -Ln

(4)配置节点服务器(两个节点服务器都安装)

使用DR模式时,节点服务器也需要配置VIP地址,并调整内核的ARP响应参数以阻止更新VIP的MAC地址,避免发生冲突,除此之外,WEB服务的配置与NAT方式类似。

 在每个节点服务器,同样需要有VIP地址192.168.200.254,但此地址仅用作发送WEB响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚拟接口lo:0来承载VIP地址,并为本机添加一条路由记录,将访问VIP的数据限制在本地以避免通信混乱

ifconfig lo:0 192.168.200.254 netmask 255.255.255.255

ifconfig lo:0

route add -host 192.168.200.254 dev lo:0

(5)安装httpd,创建测试网页(两个节点服务器都安装)

yum -y install httpd

echo “1111” > /var/www/html/index.html

systemctl start httpd

(6)调整/proc响应参数

vim /etc/sysctl.conf

sysctl -p

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

arp_ignore=1,系统只回答目的本地IP的包,也就是对广播不作响应

arp_announce=2.系统忽略ip包的源地址,而根据主机,选择本地地址

(7)测试LVS群集

 

原文地址:https://www.cnblogs.com/liyurui/p/11628363.html