LVS负载均衡群集部署——DR直接路由模式

目录

一、LVS-DR模式

二、数据流向 

三、DR特性

1、DR模式的特点

2、DR模式注意点

3、DR的优点和缺点

优点

缺点

四、DR中的ARP问题

问题一

问题二

五、DR LVS负载均衡群集部署

1、环境准备

2、配置网卡,并重启网络 

 3、调整proc的响应参数

刷新策略并查看,之后加载模块

​编辑

 清空ipvsadm并 配置负载分配策略

 加载并查询

4、Web 服务器设置

 配置网卡lo:0

 创建站点文件

 开机执行命令​编辑

 调整/proc响应参数  

设置路由 

客户机登录网页测试 


一、LVS-DR模式

Director Server作为群集的访问入口,但不作为网关使用,后端服务器池中的Real Server与Director Server在同一个物理网络中,发送给客户机的数据包不需要经过Director Server。为了响应对整个群集的访问,DS(前端负载均衡节点服务器)与RS(后端真实服务器)都需要配置有VIP地址。

每个Real Server上都有两个IP:VIP(负载均衡对外提供访问的 IP 地址)和RIP(负载均衡后端的真实服务器 IP 地址),但是VIP是隐藏的,就是不能提供解析等功能,只是用来做请求回复的源IP的,Director上只需要一个网卡,然后利用别名来配置两个IP:VIP和DIP(负载均衡与后端服务器通信的 IP 地址),在DIR接收到客户端的请求后,DIR根据负载算法选择一台rs sever的网卡mac作为客户端请求包中的目标mac,通过arp转交给后端RS serve处理,后端再通过自己的路由网关回复给客户端。
 

二、数据流向 

  1. 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
  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
  6. 响应报文最终送达至客户端

三、DR特性

1、DR模式的特点

  1. Director Server 和 Real Server 必须在同一个物理网络中
  2. Real Server 可以使用私有地址,也可以使用公网地址,如果使用公网地址,可以通过互联网对 RIP 进行直接访问
  3. Director Server作为群集的访问入口,但不作为网关使用
  4. 所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server
  5. Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server
  6. Real Server 上的 lo 接口配置 VIP 的 IP 地址

2、DR模式注意点

  •  保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS。
  • 解决方案是:修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。
  • arp_ignore=1表示系统只响应目的IP为本地IP的ARP请求。
  • arp_announce=2表示系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址。

3、DR的优点和缺点

优点

负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为 超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈。使用VS-DR方式,如果你的负载均衡器拥有100M的全双工网卡的话,就能使得整个 Virtual Server能达到1G的吞吐量。甚至更高;
 

缺点

需要所有的DIR和RIP都在同一广播域;不支持异地容灾。

四、DR中的ARP问题

问题一

在LVS-DR负载均衡集群中,负载均衡与节点服务器都要配置相同的VIP地址,势必会造成各服务器ARP通信紊乱,ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收ARP广播,只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播

解决方案 

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

问题二

RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址
发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP) 作为ARP请求包中的源IP地址,而不使用发送接口的IP地址,路由器收到ARP请求后,将更新ARP表项,原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址,导致Director的VIP失效
 

解决方案

对节点服务器进行处理,设置内核参数arp_ announce=2,系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

以上问题需要修改内核配置

 修改 /etc/sysctl.conf 文件
 
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

五、DR LVS负载均衡群集部署

1、环境准备

DR 服务器:192.168.169.4
Web 服务器1:192.168.169.201
Web 服务器2:192.168.169.202
vip:192.168.169.200 

2、配置网卡,并重启网络 

##关闭防火墙和增强机制
[root@zrk4 ~]# systemctl stop firewalld
[root@zrk4 ~]# systemctl disable firewalld
[root@zrk4 ~]# setenforce 0
setenforce: SELinux is disabled
 
 
##安装ipvsadm工具
[root@zrk4 ~]# yum install -y ipvsadm
 
##配置虚拟IP地址
[root@zrk4 ~]# cd /etc/sysconfig/network-scripts/

 

 3、调整proc的响应参数

##调整/proc的响应参数
[root@zrk4 network-scripts]# vim /etc/sysctl.conf
 
##刷新配置
[root@zrk4 network-scripts]# sysctl -p
 
##加载模块并查看信息
[root@zrk4 network-scripts]# modprobe ip_vs
[root@zrk4 network-scripts]# cat /proc/net/ip_vs
 
##保存负载的策略,并重新启动服务
[root@zrk4 network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@zrk4 network-scripts]# systemctl restart ipvsadm.service
 
##清空策略
[root@zrk4 network-scripts]# ipvsadm -C      
 
##制定策略  
##-a:添加真实服务器;-t:指定VIP地址及TCP端口;-r:指定RIP地址及TCP端口;-g:指定DR模式
[root@zrk4 network-scripts]# ipvsadm -A -t 192.168.169.200:80 -s rr
[root@zrk4 network-scripts]# ipvsadm -a -t 192.168.169.200:80 -r 192.168.169.201:80 -g
[root@zrk4 network-scripts]# ipvsadm -a -t 192.168.169.200:80 -r 192.168.169.202:80 -g
 
##查看并保存策略
[root@DR network-scripts]# ipvsadm -ln
[root@DR network-scripts]# ipvsadm-save > /etc/sysconfig/ipvsadm

刷新策略并查看,之后加载模块

 清空ipvsadm并 配置负载分配策略

 加载并查询

4、Web 服务器设置

这里配置列两台Web服务器,仅显示一台
 
##关闭防火墙和增强机制
[root@zrk201 ~]# systemctl stop firewalld
[root@zrk201 ~]# setenforce 0
 
##安装httpd服务并开启
[root@zrk201 ~]# yum install -y httpd
[root@zrk201 ~]# systemctl start httpd
 
##创建一个站点文件
[root@zrk201 ~]# echo "201 is ready" > /var/www/html/index.html
 
 
##添加回环网卡并配置IP地址和掩码
[root@zrk201 network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.169.200
NETMASK=255.255.255.255
NETWORK=127.0.0.1
ONBOOT=yes
 
##重启网络
[root@zrk201 network-scripts]# systemctl restart network
 
##添加路由
ifup lo:0
ifconfig lo:0
[root@zrk201 html]# route add -host 192.168.169.200 dev lo:0
 
##添加执行权限
[root@zrk201 html]# chmod +x /etc/rc.d/rc.local
 
##调整proc相应参数
[root@zrk201 html]vim /etc/sysctl.conf
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
 
[root@Web html]sysctl -p
 

 配置网卡lo:0

 创建站点文件

 

 开机执行命令

 调整/proc响应参数  

设置路由 

客户机登录网页测试 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值