侧边栏壁纸
博主头像
J&S Blog

顺着一路星光,去往有你的嘉处

  • 累计撰写 14 篇文章
  • 累计创建 5 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

LVS-DR

Administrator
2026-05-24 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

DR模式概述

DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。DR模式可以极大的提高集群系统的伸缩性。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。DR模式是互联网使用比较多的一种模式。如果要提供互联网业务,要求每台服务器都具有外网IP地址

DR模式工作原理

  1. 客户端192.168.1.10向目标vip:192.168.1.88发出请求

  2. 调度器收到客户端请求后,根据负载均衡算法选择一台active的realserver(假设是cong12),并把数据包的目标地址的MAC地址修改为cong12的MAC地址,然后把数据包发送到内网里。

  3. cong12服务器在局域网收到这个数据包,发现数据包的目的地址和本机匹配(因为所有的realserver配置了相同的VIP),MAC地址和本机匹配,于是这个包被合法接受,开始处理数据包,随后重新封装报文,发送到局域网。

    注意:RS**返回响应时,直接向源IP(即客户端的IP)返回数据包,不再经过LVS调度器。**

  4. 如果client与LVS同一网段,那么client(192.168.1.10)将收到这个回复报文。如果跨了网段,那么报文通过gateway/路由器经由Internet返回给用户。

    lvs-dr做的事情很少,也很简单,所以它的效率很高,不比硬件负载均衡设备差多少。数据包、数据帧的大致流向是这样的:client --> lVS --> RS --> client

DR模式特点

  1. 保证前端路由将目标地址为VIP报文统统发给DireActor Server,而不是RSA

  2. RS可以使用私有地址;也可以是公网地址,如果使用公网地址,此时可以通过互联网对RIP进行直接访问

  3. RS跟Director Server必须在同一个物理网络中

  4. 所有的请求报文经过Director Server,但响应报文不会经过Director Server

  5. 不支持地址转换,也不支持端口映射

  6. RS可以是大多数常见的操作系统

  7. RS的网关绝不允许指向DIP

  8. RS上的lo接口配置VIP地址

缺陷:唯一的缺陷在于它要求LVS调度器及所有应用服务器在同一个网段中,因此不能实现集群的跨网段应用。

配置LVS-DR集群

DR模式要求三个节点VIP要在相同网段注意!

配置vip

ip addr add 192.168.1.88/24 dev  ens33

创建负载均衡策略

ipvsadm -A -t 192.168.1.88:80 -s rr
​
ipvsadm -a -t 192.168.1.88:80 -r 192.168.1.22:80 -g 
ipvsadm -a -t 192.168.1.88:80 -r 192.168.1.23:80 -g 
​
ipvsadm --save -n > /etc/sysconfig/ipvsadm
​

后端两台服务器相同配置

关闭ARP转发

同一个广播域: 配置了多个相同的VIP 是不允许的, 要想实现,就必须让外面的网络, 无法发现这个VIP的存在。因此在Linux里面, 可以修改内核参数, 实现接口IP的广播不响应、不广播。

#临时修改
echo 1 > /proc/sys/net/ipv4/conf/ens33/arp_ignore 
arp_ignore:定义了网卡在响应外部ARP请求时候的响应级别,即当ARP请求发过来后发现自己正是请求的地址是否响应。
​
0:默认值,不管哪块网卡接收到了ARP请求,只要发现本机有这个MAC都给与响应
​
1:总是使用最合适的网卡来响应,一个主机有多块网卡,其中一块网卡接收到了ARP请求,发现所请求的MAC是本机另一块网卡的,这个时候接收到ARP请求的这块网卡就一定不响应,只有发现请求的MAC是自己的才给与响应。
​
#临时修改
 [root@cong12 ~]# echo 2 >  /proc/sys/net/ipv4/conf/ens33/arp_announce
arp_announce: 的作用是控制系统在对外发送arp请求时,如何选择arp请求数据包的  源IP地址。
有三个值:
0:默认值,允许使用任意网卡上的IP地址作为arp请求的源IP。
1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。
2:选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。
​
#永久修改(注意网卡名称)
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
或:
net.ipv4.conf.ens33.arp_ignore = 1
net.ipv4.conf.ens33.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
​

配置虚拟IP地址(VIP)

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
------
DEVICE=lo:0
IPADDR=192.168.1.88
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback
------

重启网卡

systemctl restart network 

0
LVS
博主关闭了所有页面的评论