部署LVS-DR群集

目录

一、LVS-DR工作原理

1、LVS-DR数据包流向分析

2、DR模式的特点

3、DR缺点模式的优缺点:

优点

缺点

LVS-DR 模式中ARP问题

问题一

 解决方法:

问题二

解决方法:

arp_announce=2


一、LVS-DR工作原理

LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一种工作模式

  • LVS-DR模式,Director Server 作为群集的访问入口,不作为网关使用。
  • 节点Director Server 与Real Server 需要在同一个网络中,返回给客户端的数据不需要经过Director Server。
  • 为了对整个群集的访问,Dreector Server和Real Server都需要配置VIP地址

1、LVS-DR数据包流向分析

1、Clinent向目标VIP发出请求,Director(负载均衡器)接收

  • 源ip:客户端ip,目标ip:虚拟ip,源MAC:客户端MAC地址,目标MAC:负载均衡器的MAC地址

3、RealServer_1收到这个帧,解封装后发现目标IP与本机匹配(RealSERVERS事先绑定了VIP),于是处理这个报文,随后重新封装报文,发送到局域网。

  • 源ip:虚拟ip,目标ip:客户机ip,源MAC:真实ens33网卡MAC,目标MAC:客户端MAC
  • 注意:如果跨网段,则报文通过路由器经由internet返回给用户

4、Client将收到回复报文,Client认为得到正常的服务,而不会知道是那一台服务器处理的。

详细流程分析

客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。
Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。
Real Server 直接将响应报文传送到客户端。

2、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 地址。

3、DR缺点模式的优缺点:

优点

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

缺点

所有的调度器和节点服务器在同一个广播域,不支持异地容灾

LVS-DR 模式中ARP问题

问题一

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

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

 解决方法:

ari_ignore=1

防止网关路由器去发送ARP广播时,调度器和节点服务器都会进行响应,这会导致ARP缓存表混乱;不对非本地物理网卡的ARP请求进行响应,因为VIP承载 lo:0

问题二

RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址

此时路由器的路由表进行更新,VIP的MAC地址由原先的均衡器变为节点服务器,路由器根据ARP表项,会将新来的请求报文转发给节点服务器,导致均衡器的VIP失效,又会造成VIP的紊乱

解决方法:

arp_announce=2

系统不使用响应数据的源IP地址(VIP)来做为本机进行的ARP请求报文的源IP地址,而是发送报文的物理网卡的IP地址,这样可以防止网关路由器接受到的源IP(VIP)地址来做ARP请求报文后,有去更新ARP缓存,会导致外网再发送请求时,数据包到不了调度器
 

你可能感兴趣的:(lvs,服务器,linux)