zoukankan      html  css  js  c++  java
  • 2.LVS的三种模式

    一、LVS-NAT模式

    1.工作流程

    (1)当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链;此时报文的源IP为CIP,目标IP为VIP
    (2)PREROUTING检查发现数据包的目标IP是本机,将数据包发送至INPUT链;
    (3)IPVS对比数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发送至POSTROUTING链;此时报文的源IP为CIP,目标IP为RIP;
    (4)POSTROUTING链通过选路,将数据包发送给Real Server;
    (5)Real Server对比发现目标为自己的IP,开始构建响应报文发送回给Director Server;此时报文的源IP为RIP,目标IP为CIP;
    (6)Director Server 在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端;此时报文的源IP为VIP,目标IP为CIP;

    2.NAT模式的特性

    (1)RS和DIP都应该使用私网地址,且RS的网关要指向DIP
    (2)请求和响应报文都要经由Director转发
    (极高负载的场景,Director可能会成为系统瓶颈)
    (3)支持端口映射
    (4)RS可用使用任意操作系统
    (5)RS的RIP和Director的DIP必须在同一IP网络

    3.NAT模式的缺点

    对Dierctor Server压力会比较大,因为请求和响应都需经由它

    二、LVS-DR模式

    1.工作流程

    (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)响应报文最终送达至客户端

    2.DR模式的特性

    (1)确保前端路由器将目标IP为VIP的请求报文发送Director;
    a.在前端网关做静态绑定;
    b.在RS上使用arptables;
    c.在RS上修改内核参数以限制arp通告及应答级别;
    修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口上的别名上,并限制其不能响应对VIP地址解析请求
    (2)RS的RIP可以使用私网地址,也可以是公网地址;
    RIP与DIP在同一网络;
    RIP的网关不能指向DIP,以确保响应报文不会经由Director
    (3)RS和DS要在同一个物理网络
    (4)请求报文要经由Dierctor,但响应不能经由Director,而是直接由RS法往客户端
    (5)不支持端口映射

    3.DR模式的缺点

    RS和DS必须在同一机房中

    三、LVS-TUN模式

    1.工作流程

    (1)当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链;此时报文的源IP为CIP,目标IP为VIP;
    (2)PREROUTING检查发现数据包的目标IP是本机,将数据包发送至INPUT链;
    (3)IPVS对比数据包请求的服务是否为集群服务,若是,在请求报文的首部再次封装一层IP报文,封装源IP为DIP,目标IP为RIP;然后发至POSTROUTING,此时,源IP为DIP,目标IP为RIP;
    (4)POSTROUTING链根据最新封装的IP报文,将数据包发送至RS(因为在外侧封装多了一层IP首部,所以可以理解为此时通过隧道传输);此时源IP为DIP,目标IP为RIP;
    (5)RS接收到报文后发现是自己的IP地址,就将报文接收下来,拆掉最外层的IP后,会发现里面还有一层IP首部,而且目标的自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后,通告lo接口发送给eth0网卡,然后向外传递;此时的源IP地址为VIP,目标IP为CIP;
    (6)响应报文最终送至客户端

    2.TUN模式的特性

    (1)DIP,VIP,RIP都应该是公网地址;
    (2)RS的网关不能,也不可能指向DIP;
    (3)请求报文要经由Dierctor,但响应不能经由Director
    (4)不支持端口映射
    (5)RS的OS得支持隧道功能

    四、总结

    企业中最常用的是DR实现方式,但NAT配置上比较简单和方便

    作者:ccku
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。
  • 相关阅读:
    springcloud 入门 11 (Hystrix Dashboard)
    springcloud 入门 10 (eureka高可用)
    springcloud 入门 9 (消息总线)
    springboot 学习之路 20 (整合RabbitMQ)
    springcloud 入门 8 (config配置中心)
    springcloud 入门 7 (zuul路由网关)
    springcloud 入门 6 (断路器hystrix)
    springcloud 入门 5 (feign源码分析)
    springcloud 入门 4 (rebbon源码解读)
    Java实现多线程下载 URL以及URLConnection
  • 原文地址:https://www.cnblogs.com/ccku/p/13669499.html
Copyright © 2011-2022 走看看