LVS-负载均衡集群-NAT工作原理-DR工作原理

14 篇文章 0 订阅


负载均衡集群

1.集群是什么?

1.集群技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。

2.集群组成后,可以利用多个计算机和组合进行海量请求处理(负载均衡),从而获得很高的处理效率,也可以用多个计算机做备份(高可用),是的任何一个机器坏了整个系统还是能正常与运行。

2.负载均衡集群技术

1.负载均衡:负载均衡集群为企业需求提供了可解决容量问题的有效方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。

2.负载通常包括应用程序处理负载和网络流量负载,每个节点都可以承担一定的处理负载,并且可以实现处理负载在节点之间的动态分配,以实现负载均衡。

3.效果图

在这里插入图片描述

4.负载均衡的分类

1.根据所采用的设备对象(软/硬件负载均衡)
2.应用的OSI网络层次(网络层次上的负载均衡)
3.应用的地理结构(本地/全局负载均衡)

OSI网络层几个分类

1.二层负载均衡(MAC) 一般是用虚拟的mac地址方式,外部对虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应。

2.三层负载均衡(IP) 一般采用虚拟IP地址方式,外部对虚拟的IP地址请求,负载均衡接收后分配后端实际的IP地址响应。

3.四层负载均衡(tcp/ IP+port) 在三层负载均衡的基础上,用IP+port接受,再转发到对应的机器。

4.七层负载均衡(http/url/IP) 根据虚拟的url或者IP,主机名接收请求,再转向相应的处理服务器。在实际应用中,比较常见的就是四层或七层堵在均衡。

四层负载均衡(IP+port)

实现四层负载均衡的软件有:

  • F5:硬件负载均衡器,功能很好,但是成本很高。
  • lvs:重量级的四层负载软件
  • nginx:轻量级的四层负载软件,带缓存功能,正则表达式较灵活(1.9)
  • haproxy:模拟四层转发,较灵活
七层负载均衡(虚拟的url或主机IP)
  1. 在四层负载均衡的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别来决定是否要进行负载均衡。
  2. 实现七层负载均衡的软件有:
    • haproxy:天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
    • nginx:只在http协议和mail协议上功能比较好,性能与haproxy差不多;
    • apache:功能较差
    • Mysql proxy:功能尚可。
四层与七层的区别

四层:
基于ip+port
类似于:路由器
性能:高;无需解析内容
安全性:低
七层:
基于虚拟的url+主机IP
类似于:代理服务器
性能:中;需要算法识别 URL,Cookie 和 HTTP head 等信息
功能:会话保持。

LVS实现四层负载均衡

1.LVS介绍

LVS 是 Linux Virtual Server的简称,也就是 Linux 虚拟服务器。

2、LVS 优势与不足
1、优势

高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。

稳定性强是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。

成本低廉硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。

配置简单LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。

支持多种算法支持多种论调算法,可根据业务场景灵活调配进行使用

支持多种工作模型可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。

应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等

3、不足

工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。

4.LVS核心组件和专业属于
1.核心组件

LVS的管理工具和内核模块 ipsadm/ipvs
ipvsadm:用户空间的命令行工具,用于管理集群服务及集权服务上的RS等;
ipvs:工作于内核上的程序,可根据用户定义的集群实现请求转发;

2、专业术语

VS:Virtual Server #虚拟服务

Director, Balancer #负载均衡器、分发器

RS:Real Server #后端请求处理服务器

CIP: Client IP #用户端IP

VIP:Director Virtual IP #负载均衡器虚拟IP

DIP:Director IP #负载均衡器IP

RIP:Real Server IP #后端请求处理服务器IP

3.LVS负载均衡四种工作模式

LVS/NAT:网络地址转换模式,进站/出站的数据流量经过分发器(IP负载均衡,他修改的是IP地址)利用三层功能。
LVS/DR:直接路由模式,只有进站的数据流量经过分发器(数据链路层负载均衡,因为他修改的是目的mac地址)–利用二层功能mac地址。
LVS/TUN: 隧道模式,只有进站的数据流量经过分发器。
LVS/full-nat:双向转换:通过请求报文的源地址为DIP,目标为RIP来实现转发:对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发

4.LVS四种工作模式原理、以及优缺点比较
1、NAT模式(VS-NAT)

在这里插入图片描述
原理:就是把客户端发来的数据包的IP头的目的地址,在负载均衡器上换成其中一台RS的IP地址,并发至此RS来处理,RS处理完成后把数据交给经过负载均衡器,负载均衡器再把数据包的源IP地址改为自己的IP,将目的地址改为客户端IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过负载均衡器。
优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。
缺点:扩展性有限。当服务器节点(普通PC服务器)增长过多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包的流向都经过负载均衡器。当服务器节点过多时,大量的数据包都交汇在负载均衡器那,速度就会变慢!

个人理解

客户端发送数据包传送给lvs的vip,VIP接受数据包将数据包转发给dip(ipvsadm -a -t 192.168.0.108:80 -r 192.168.72.128:80 -m 做的链接 端口映射)然后,将数据包转发给rip,rip经过处理返回给dip,dip做路由转发(相当于网关地址),将数据包传回

客户端IP和lvs虚拟服务IP在同一网段,dip和两台服务器IP在同一网段

NAT工作原理补充

在这里插入图片描述

1.客户端发出请求数据包经过网络到达LVS,数据包源IP为CIP,目的IP为VIP。

2.然后数据包进入PREROUTING链中,根据目的路由,确定目标地址是否为本机IP地址,随后将数据包转发至INPUT链中,源IP和目的IP不变。

3.IP虚拟服务器对比数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将书库发送至POSTROUTING链。此时报文的源IP为CIP,目标IP为RIP

4.POSTROUTING链通过挑选合适的RS,然后将数据包发送给RS。

5.RS发现目标IP是自己的IP,开始构建响应报文发回给DS。此时报文的源IP为RIP,目标IP为CIP。

6.Director Server在响应客户端前,此时将源IP修改为自己的VIP地址,然后响应给客户端。此时报文的源IP为VIP,目标IP 为CIP,返回给客户端。

2、直接路由(Direct routing)模式(LVS-DR)

在这里插入图片描述

原理:
负载均衡器和RS都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有RS对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的RS,把目的MAC地址改为RS的MAC(因为IP一致)并将请求分发给这台RS。这时RS收到这个数据包,处理完成之后,由于IP一致,可以直接将数据返给客户,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。
优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。
缺点:(不能说缺点,只能说是不足)要求负载均衡器的网卡必须与物理网卡在一个物理段上。

个人理解

客户端传送数据包,传给lvs dip ,dip将数据包传送给两台服务器,服务器关闭apr协议,保持静默,防止两个io:vip 争抢数据包,然后用lvs的dip的mac地址来访问,最后服务将包直接返回给客户端

DR工作原理补充

在这里插入图片描述
DR 实现原理过程如下:

1.当客户端用户发送请求给 www.baidu.com 网站时,首先经过 DNS 解析到 IP 后并向百度服务器发送请求,数据包经过网络到百度 LVS 负载均衡服务器。

这时到达 LVS 网卡时的数据包包括:源 IP 地址(客户端地址)、目的 IP 地址(百度对外服务器 IP 地址,也就是 VIP)、源
MAC 地址(CMAC / LVS 连接路由器的 MAC 地址)、目标 MAC 地址(VMAC / VIP 对应的 MAC 地址)。

2.数据包到达网卡后,经过链路层到达 PREROUTING 链,进行查找路由,发现目的 IP 是 LVS 的 VIP,这时就会发送至 INPUT 链中并且数据包的 IP 地址、MAC 地址、Port 都未经过修改。

3.数据包到达 INPUT 链中,LVS 会根据目的 IP 和 Port(端口)确认是否为 LVS 定义的服务。

如是定义过的 VIP 服务,会根据配置的服务信息,从 RealServer 中选择一个后端服务器 RS1,然后 RS1
作为目标出方向的路由,确定下一跳信息及数据包通过具体的哪个网卡发出,最好将数据包通过 INET_HOOK 到 OUTPUT 链中。

4.数据包通过 POSTROUTING 链后,目的 MAC 地址将会修改为 RealServer 服务器 MAC 地址(RMAC)源 MAC 地址修改为 LVS 与 RS 同网段的 IP 地址的 MAC 地址(DMAC)此时,数据包将会发至 RealServer 服务器。

5.数据包到达 RealServer 服务器后,发现请求报文的 MAC 地址是自己的网卡 MAC 地址,将会接受此报文,待处理完成之后,将响应报文通过 lo 接口传送给 eth0 网卡然后向外发出。

3、IP隧道(Tunnel)模式(VS-TUN)

在这里插入图片描述
原理:
互联网上的大多Internet服务的请求包很短小,而应答包通常很大。那么隧道模式就是,把客户端发来的数据包,封装一个新的IP头标记(仅目的IP)发给RS,RS收到后,先把数据包的头解开,还原数据包,处理后,直接返回给客户端,不需要再经过负载均衡器。注意,由于RS需要对负载均衡器发过来的数据包进行还原,所以说必须支持IPTUNNEL协议。所以,在RS的内核中,必须编译支持IPTUNNEL这个选项

​ 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器能够为很多RS进行分发。而且跑在公网上就能进行不同地域的分发。

​ 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持”IP Tunneling”(IP Encapsulation)协议,服务器可能只局限在部分Linux系统上。

4、FULL-NAT模式

原理:
客户端对VIP发起请求,Director接过请求发现是请求后端服务。Direcrot对请求报文做full-nat,把源ip改为Dip,把目标ip转换为任意后端RS的rip,然后发往后端,rs接到请求后,进行响应,相应源ip为Rip目标ip还是DIP,又内部路由路由到Director,Director接到响应报文,进行full-nat。将源地址为VIP,目标地址改为CIP

5.四者的区别

lvs-nat与lvs-fullnat:请求和响应报文都经由Director

lvs-nat:RIP的网关要指向DIP

lvs-fullnat:RIP和DIP未必在同一IP网络,但要能通信

lvs-dr与lvs-tun:请求报文要经由Director,但响应报文由RS直接发往Client

lvs-dr:通过封装新的MAC首部实现,通过MAC网络转发

lvs-tun:通过在原IP报文外封装新IP头实现转发,支持远距离通信

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值