集群 | Linux+LBC DR集群

LVSDR模式负载均衡集群!

DR模式LVS负载均衡搭建.

🔧准备.

  • 🔧 3台计算机,或3台虚拟机.
  • 🔧 操作系统Debian10.
  • 🔧 安装类型,全部最小安装.

Debian10最小安装

博客中的实验环境.

名称虚拟化平台虚拟机系统
DSKVMDebian10
RS0KVMDebian10
RS1KVMDebian10

博客中虚拟机IP及主机名配置.

IP节点
192.168.222.66DS
192.168.222.52RS0
192.168.222.215RS1
192.168.222.22VIP

配置RS0虚拟机.

RS0虚拟机配置

  • 配置RS0虚拟机网络.
cat << "EOF" >/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
#
source /etc/network/interfaces.d/*
#
# The loopback network interface
auto lo
iface lo inet loopback
#
# The enp1s0 network config;
auto enp1s0
iface enp1s0 inet static
address 192.168.222.52
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.222.255
gateway 192.168.222.1
#
# The enp1s0:0 LVS DR Mode network config;
auto enp1s0:0
iface enp1s0:0 inet static
address 192.168.222.222
#netmask 255.255.255.0
netmask 255.255.255.255
EOF
  • 重启网络.
systemctl daemon-reload && \
systemctl restart networking.service
  • 配置RS0虚拟机内核参数(永久生效).
net.ipv4.conf.enp1s0.arp_ignore = 1
net.ipv4.conf.enp1s0.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

sysctl -p

配置RS1虚拟机.

  • 配置RS1虚拟机网络.

RS1服务器IP配置

cat << "EOF" >/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
#
source /etc/network/interfaces.d/*
#
# The loopback network interface
auto lo
iface lo inet loopback
#
# The enp1s0 network config;
auto enp1s0
iface enp1s0 inet static
address 192.168.222.215
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.222.255
gateway 192.168.222.1
#
# The enp1s0:0 network config;
auto enp1s0:0
iface enp1s0:0 inet static
address 192.168.222.222
#netmask 255.255.255.0
netmask 255.255.255.255
EOF
  • 重启网络.
systemctl daemon-reload && \
systemctl restart networking.service
  • 配置RS1虚拟机内核参数(永久生效).
net.ipv4.conf.enp1s0.arp_ignore = 1
net.ipv4.conf.enp1s0.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

sysctl -p

配置DS虚拟机(调度器).

  • 配置DS虚拟机(调度器)网络.

DS服务器IP配置

cat << "EOF" >/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
#
source /etc/network/interfaces.d/*
#
# The loopback network interface
auto lo
iface lo inet loopback
#
# The enp1s0 network config;
auto enp1s0
iface enp1s0 inet static
address 192.168.222.66
netmask 255.255.255.0
#network 192.168.0.0
broadcast 192.168.222.255
gateway 192.168.222.1
#
# The enp1s0:0 network config;
auto enp1s0:0
iface enp1s0:0 inet static
address 192.168.222.222
netmask 255.255.255.0
#netmask 255.255.255.255
EOF
  • 重启网络.
systemctl daemon-reload && \
systemctl restart networking.service
  • 配置DS虚拟机(调度器)规则.
ipvsadm -C
ipvsadm -A -t 192.168.222.222:80 -s rr
ipvsadm -a -t 192.168.222.222:80 -r 192.168.222.52:80 -g
ipvsadm -a -t 192.168.222.222:80 -r 192.168.222.215:80 -g

测试LVS DR模式LBC集群.

测试LVS DR模式LBC集群

LVSDR模式工作流程.

重点将请求报文的目标 MAC 地址设定为挑选出的 RS 的 MAC 地址,当RS接收到这个数据包之后,将源MAC替换成自己的MAC,目标MAC地址为客户端地址.

  • 1,当用户请求到达 Director Server,此时请求的数据报文会先到内核空间的 PREROUTING 链.此时报文的源 IP 为 CIP,目标 IP 为 VIP,MAC地址一次为各自的MAC地址.
  • 2,PREROUTING 检查发现数据包的目标 IP 是本机,将数据包送至 INPUT 链.
  • 3,IPVS 比对数据包请求的服务是否为集群服务,若是,将请求报文中的源 MAC 地址修改为 DIP 的 MAC 地址,将目标 MAC 地址修改 RIP 的 MAC 地址,然后将数据包发至 POSTROUTING 链,此时的源 IP 和目的 IP 均未修改,仅修改了源 MAC 地址为 DIP 的 MAC 地址,目标 MAC 地址为 RIP 的 MAC 地址.
  • 4,由于 DS 和 RS 在同一个网络中,所以是通过二层来传输.POSTROUTING 链检查目标 MAC 地址为 RIP 的 MAC 地址,那么此时数据包将会发至 Real Server.
  • 5,RS 发现请求报文的 MAC 地址是自己的 MAC 地址,就接收此报文.处理完成之后,将响应报文通过 lo 接口传送给 eth0 网卡然后向外发出,此时的源 IP 地址为 VIP,目标 IP 为 CIP,并且将源MAC地址改为自己的MAC,目标MAC改为客户端MAC.
  • 6,响应报文最终送达至客户端.

DR(Direct Routing 直接路由模式)此模式时 LVS 调度器只接收客户发来的请求并将请求转发给后端服务器,后端服务器处理请求后直接把内容直接响应给客户,而不用再次经过 LVS 调度器,LVS 只需要将网络帧的 MAC 地址修改为某一台后端服务器 RS 的 MAC,该包就会被转发到相应的 RS 处理,注意此时的源 IP 和目标 IP 都没变.RS 收到 LVS 转发来的包时,链路层发现 MAC 是自己的,到上面的网络层,发现 IP 也是自己的,于是这个包被合法地接受,RS 感知不到前面有 LVS 的存在.而当 RS 返回响应时,只要直接向源 IP(即用户的 IP)返回即可,不再经过 LVS.

  • LVS/DR 模型的特性.
  • RS 可以使用私有地址,也可以是公网地址,如果使用公网地址,此时可以通过互联网对 RIP 进行直接访问.
  • RS 跟 Director Server 必须在同一个物理网络中.
  • 所有的请求报文经由 Director Server,但响应报文必须不能进过 Director Server.
  • 不支持地址转换,也不支持端口映射.
  • RS 可以是大多数常见的操作系统.
  • RS 的网关绝不允许指向 DIP(因为我们不允许他经过 director)

注意事项.

1,确保前端路由器将目标 IP 为 VIP 的请求报文发往 Director.
2,在前端网关做静态绑定.
3,在 RS 上使用 arptables.
4,在 RS 上修改内核参数以限制 arp 通告及应答级别.
5,RS 的 RIP 可以使用私网地址,也可以是公网地址,RIP 与 DIP 在同一 IP 网络,RIP 的网关不能指向 DIP,以确保响应报文不会经由 Director.
6,RS 跟 Director 要在同一个物理网络.
7,请求报文要经由 Director,但响应不能经由 Director,而是由 RS 直接发往 Client.
8,此模式不支持端口映射.

DR模型优点.

可见在处理过程中 LVS Route 只处理请求的直接路由转发,所有响应结果由各个应用服务器自行处理,并对用户进行回复,网络流量将集中在 LVS 调度器之上.

DR模型缺点.

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


   转载规则


《集群 | Linux+LBC DR集群》Bad-BoY 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
集群 | Linux+LBC+HA集群 集群 | Linux+LBC+HA集群
LBC+DR+HA(LVS DR模式-负载均衡+高可用)服务器集群!🔧准备.🔧 6台计算机,或6台虚拟机.🔧 操作系统Debian10.🔧 安装类型,全部最小安装.博客中的实验环境.物理系统Arch Linux虚拟化平台KVM虚拟机
2021-10-19
下一篇 
集群 | Linux+LBC NAT集群 集群 | Linux+LBC NAT集群
LVSNAT模式负载均衡集群!!!!警告!!!1 你可以自由转载,但请务必注明出处,写作不宜,请珍惜我的劳动成果 …2 技术应该被共享,你可以自由学习,但禁止用于任何的商业,以及各种私自盈利行为 …NAT模式LVS负载均衡搭建.🔧准备.�
2021-10-09
  目录