全面分析:Web基础架构负载均衡LVS机制的原理( 二 )

  • RS:Real Server 。后端真实的工作服务器 。
  • VIP:向外部直接面向用户请求 , 作为用户请求的目标的IP地址 。
  • DIP:Director Server IP , 主要用于和内部主机通讯的IP地址 。
  • RIP:Real Server IP , 后端服务器的IP地址 。
  • CIP:Client IP , 访问客户端的IP地址 。
  • LVS 的工作模式主要有 4 种:
    • DR
    • NAT
    • TUNNEL
    • Full-NAT
    • TUN
     
    返里挑选常用的 DR、NAT、Full-NAT、TUN 来简单介绍一下 。
    DR(Dynamic Route 动态路由)
    通过为请求报文重新封装一个MAC首部进行转发 , 源MAC是DIP所在的接口的MAC , 目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT , 以及目标IP/PORT均保持不变;
    全面分析:Web基础架构负载均衡LVS机制的原理

    文章插图
     
    请求由LVS接受 , 由真实提供服务的服务器(RealServer, RS)直接返回给用户 , 返回的时
    候不经过 LVS 。
    流程分析
    DR 模式下需要LVS和绑定同一个 VIP(RS 通过将 VIP绑定在 loopback 实现) , 此时报文的源IP为CIP , 目标IP为VIP;
    源地址
    目的地址
    CIP
    VIP
    源MAC地址
    目的MAC地址
    CIP-MAC
    VIP-MAC
     
    1. 当用户请求到达DS后 , LVS只需要将网络帧的MAC地址修改为某一台RS的 MAC , 该包就会被转发到相应的RS处理 , 注意此时的源IP和目标IP都没变 , LVS 只是做了一下移花接木
     
    IPVS比对数据包请求的服务是否为集群服务 , 若是 , 将请求报文中的源MAC地址修改为DIP的MAC地址 , 将目标MAC地址修改RIP的MAC地址 ,  此时的源IP和目的IP均未修改 , 仅修改了源MAC地址为DIP的MAC地址 , 目标MAC地址为RIP的MAC地址;
    源地址
    目的地址
    CIP
    【全面分析:Web基础架构负载均衡LVS机制的原理】VIP
    源MAC地址
    目的MAC地址
    DIP-MAC
    RIP-MAC
     
    1. 由于DS和RS在同一个网络中 , 所以是通过二层来传输 。目标MAC地址为RIP的MAC地址 , 那么此时数据包将会发至RS 。
    2. RS 收到 LVS 转发来的包 , 链路层发现 MAC 是自己的 , 到上面的网络层 , 发现 IP 也是自己的 , 于是返个包被合法地接受 , RS 感知不到前面有 LVS 的存在 。处理完成之后 , 将响应报文通过lo接口传送给eth0网卡然后向外发出 , 此时的源IP地址为VIP , 目标IP为CIP;
     
    源地址
    目的地址
    VIP
    CIP
     
    1. 响应报文最终送达至客户端 , 而当 RS 返回响应时 , 只要直接向源 IP(即用户的 IP)返回即可 , 不再经过 LVS 。DR 模式是性能最好的一种模式
     
    这种模式下 , 有几个要点:
     
    主要是这种模式在于 , 通过LVS只是在请求阶段做转发 , 而且修改的也不是IP地址 , 而是MAC地址 , 针对于修改后的MAC地址会自动转发到对应网段内MAC主机的服务器上面 , 之后因为IP都没有改变 , 之后实际RS可以直接发送给目标Client服务器 , 这种性能最好 , 但是对网络层面要求比较高 , 对网络扩展角度而言控制力度略低 。
    NAT?.NETwork Address Translation 网络地址准换)
    • NAT是一种外网和内网地址映射的技术
    • NAT模式下 , 网络报的进出都要经过LVS的处理
    原理 
    多目标IP的DNAT , 通过将请求报文中的目标地址和目标端口修改为选出来的RS的RIP和PORT实现转发 。
    全面分析:Web基础架构负载均衡LVS机制的原理

    文章插图
     
    流程分析
    1. LVS需要作为RS的网关 , 当包到达LVS 时LVS 做目标地址转换(DNAT) 。此时报文的源IP为CIP , 目标IP为VIP;


      推荐阅读