LVS中四种工作模型

£可爱£侵袭症+ 提交于 2019-12-25 19:37:10

  LVS 是 Linux Virtual Server 的简称,也就是 Linux 虚拟服务器。现在 LVS 已经是 Linux 标准内核的一部分,从 Linux2.4 内核以后,已经完全内置了 LVS 的各个功能模块,无需给内核打任何补丁,可以直接使用 LVS 提供的各种功能。
LVS 自从1998年开始,发展到现在已经是一个比较成熟的技术项目了。

一、LVS集群的工作架构:在这里插入图片描述

LVS 架设的服务器集群系统有三个部分组成:

(1) 最前端的负载均衡层,用 Load Balancer 表示

(2) 中间的服务器集群层,用 Server Array 表示

(3) 最底端的数据共享存储层,用 Shared Storage 表示

二、LVS集群的工作机制

VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。LVS是内核
级功能,工作在INPUT链的位置,将发往INPUT的流量进行“处理”

三、LVS集群的工作模式

  1、lvs-nat:修改请求报文的目标IP,多目标的IP的DNAT
  2、lvs-dr 操作封装的MAC地址
  3、lvs-tun:在原请求IP报文之外新加上一个IP首部
  4、lvs-fullnat:修改请求报文的源和目标IP地址

3.1、LVS的NAT模式
在这里插入图片描述
vs-nat:本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发
(1)RIP和DIP应在同一个IP网络,且应使用私网地址;RS的网关要指向DIP
(2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
(3)支持端口映射,可修改请求报文的目标PORT
(4)VS必须是Linux系统,RS可以是任意OS系统

3.2、LVS-DR模式
在这里插入图片描述

DR模式的特点:

  1. Director和各RS都配置有VIP
  2. 确保前端路由器将目标IP为VIP的请求报文发往Director在前端网关做静态绑定VIP和Director的MAC地址
    在RS上使用arptables工具
arptables -A IN -d $VIP -j DROP arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP

在RS上修改内核参数以限制arp通告及应答级别

/proc/sys/net/ipv4/conf/all/arp_ignore /proc/sys/net/ipv4/conf/all/arp_announce 
  1. RS的RIP可以使用私网地址,也可以是公网地址;RIP与DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director
  2. RS和Director要在同一个物理网络
  3. 请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client
  4. 不支持端口映射(端口不能修败)
  5. RS可使用大多数OS系统

环境抓包:
在这里插入图片描述
在lvs上抓包:第一个包
在这里插入图片描述
在这里插入图片描述
第二个包:
在这里插入图片描述
在这里插入图片描述
第三个包、
在这里插入图片描述
SRCmac:
在这里插入图片描述
目的MAC:
在这里插入图片描述
3.3、LVS-TUN模式
在这里插入图片描述
TUN模式特点:
8. DIP, VIP, RIP可以是公网地址
9. RS的网关一般不能指向DIP
10. 请求报文要经由Director,但响应不经由Director
11. 不支持端口映射
12. RS的OS须支持隧道功能
3.3、LVS-FULLNAT模式
通过同时修改请求报文的源IP地址和目标IP地址进行转发
CIP --> DIP
VIP --> RIP

fullnat模式特点:
13. VIP是公网地址,RIP和DIP是私网地址,且通常不在同一IP网络;因此,RIP的网关一般不会指向DIP
14. RS收到的请求报文源地址是DIP,因此,只需响应给DIP;但Director还要将其发往Client
15. 请求和响应报文都经由Director
16. 支持端口映射
注意:此类型kernel默认不支持

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!