lvs-keepalive 三种模式及其原理
lvs-keepalive 三种模式及其原理
LVS(linux virtual server)----->linux虚拟服务器,目前LVS模块已经被集成在linux内核中了。
终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的web请求会发送给LVS调度器,调度器根据自己欲设算法将该请求发送给后端的某台web服务器,比如轮询调度法,一共有8中调度方法。LVS工作模式可以分为NAT模式、TUN模式和DR模式
NAT模式
NAT(network address translation) 网络地址转换,其主要原理是修改数据报头,使得位于企业内部的私有ip地址可以访问外王,以及外部用户可以访问位于公司内部的私有的ip主机。
工作原理:
-
用户通过互联网DNS服务器解析到公司负载均衡设备上的外网地址,相对于真实服务器而言,LVS外网ip又称为vip,用户通过访问vip,即可连接后端的真实服务器,而此时用户对这一切都是不可知的,用户认为自己还在访问真实的后端服务器,也不知道自己访问的vip只是一个调度器。
-
用户将请求发送至调度器上,此时LVS根据算法选择一个后端的真实服务器,将数据请求包转发给真实服务器,并在转发之前LVS会修改数据包中的目标地址以及目标端口,此时修改为真实的服务器ip地址
-
真实的服务器将响应的数据包返回给LVS调度器,调度器在响应数据包后会将源地址和源端口修改为vip及调度器相应端口,修改完成后,由调度器响应数据包发送给终端
-
LVS调度器中有一个连接Hash表,该表会记录连接请求及其转发信息,当同一个连接下一个数据包发送给调度器时,该Hash'表可以直接找到之前连接的记录,并根据记录信息选出相同真实服务器及其端口信息。
NAT优点
NAT的优点时服务器可以运行在任何支持TCP/IP的操作系统,他只需要在调度器上配置一个ip
服务器组可以用私有的ip地址。节省公网Ip地址
NAT缺点
伸缩能力有限,当服务器节点数目上升到20时,调度器本身有可能成为系统的新瓶颈,因为请求和响应的报文都需要经过调度器。
数据是原路返回的,一般通过http请求数据请求头以及包数据很小,但是返回来的数据很大,宽带是有限制的,就造成了局限性
TUN模式
工作原理
- NAT模式,所有数据包的请求的回应的哦欧需要经过调度器处理,但是在TUN模式中,将NAT模式中的问题有所解决。因为数据包的请求包往往远远小于响应数据包的大小。
- 因为响应数据包中有包含客户需要的具体数据所以,TUN的原理就是将请求与响应数据分离。,让调度器仅仅处理数据请求,让真实的服务器响应数据包直接返回给客户。
IP(隧道)是一种数据包分装技术,他可以经原始的数据包分装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),从而实现将一个目标为调度器的vip地址的数据包分装,通过隧道转发给真实的后端服务器,通过将客户端发往调度器的原始数据包分装,并在其基础上添加新的数据包头(修改目标地址为调度器选择出来的真实服务的ip地址以及对应端口),lLVS(Tun)模式要求真实的服务器可以与外部网络连接,真实服务器在受到请求数据包后直接给客户端返回响应数据。
LVS(Tun)技术对服务器有要求,即所有服务器必须支持"IP Tunneling"或者IP Encapsulation”协议。目前,VS/TUN 的后端服务器主要运行 Linux 操作系统
TUN优点
解决了NAT模式伸缩困难的问题
TUN缺点
让真实服务器暴露在公网中,而且每台机器都要配置一个公网Ip
DR模式
工作原理
- 在LVS(TUN)模式中,需要LVS调度器与真实的服务器之间创建隧道连接,这样就会增加服务器的负担。DR模式也叫路由模式,该模式中LVS依然仅承担数据的请求以及根据算法调度出合理的后端服务器,最终由后端真实服务器负责响应数据包发送返回给客户端。
- 与隧道模式不同的是,DR模式要求调度器与后端服务器必须在统一个局域网内,VIP地址需要在调度器与后端所有服务器之间共享
- 最终的真实服务器会给客户端回应数据包时需要设置源IP为VIP,目标IP为客户端IP,这样客户端访问的时调度器VIP地址,回应的源地址也是VIP,这样客户端是感觉不到后端服务器的存在。
- 由于多台计算机都设置了同样的VIP地址,所以在直接路由模式中要求调度器的VIP是对外可见的,客户端将请求数据包发送到调度器主机,而所有的真实服务器的VIP必须配置在Non-ARP的网络上ARP是一个协议。调度器根据算法在选出真实的服务器后,在不修改数据报文的情况下,将数据帧的MAC地址修改为选出的真实的MAC地址,通过交换机将该数据帧发给真实的服务器。
DR优点
解决了NAT模式伸缩困难的问题,上限不再是20多个节点,因为数据和请求分离,数据真实服务器改MAC地址以VIP的身份发给用户
解决了DR模式直接暴露公网地址给用户的风险,而是通过修改MAC地址,让用户无感知是真实服务器返回的
DR缺点
只能作用于局域网,不能跨网络,数据发送给路由器,路由器在链路层在包装一个目标地址的mac地址,路由器就通过ma地址直接找打了了服务器,服务器处理完不原路返回,自己就返回给客户端,这样带宽的限制就没有
DR模式安装
待更新...
优缺点总结
NAT 模式(Network Address Translation):
- 优点:
实现简单,易于配置和维护。
可以使用标准的 TCP/IP 协议栈,不需要修改客户端。
可以保护后端服务器的内网 IP 地址,增加安全性。 - 缺点:
负载均衡器需要对进出流量进行 NAT 转换,会增加一定的网络开销。
负载均衡器可能成为性能瓶颈。
不适合处理大量并发连接。
TUN 模式(Tunneling):
- 优点:
网络开销较小,性能较好。
可以保护后端服务器的内网 IP 地址。
部署灵活性较好,后端服务器可以位于不同的网段。 - 缺点:
需要在客户端和后端服务器上进行 IP 隧道配置,增加复杂度。
需要客户端支持隧道协议(如 GRE)。
DR 模式(Direct Routing):
*优点:
网络开销小,因为数据包不需要经过负载均衡器。
可以处理大量并发连接,性能高。
-
缺点:
需要修改客户端和后端服务器的 ARP 配置,增加复杂度。
必须确保后端服务器和负载均衡器在同一个 LAN 内,限制了部署灵活性。
无法保护后端服务器的内网 IP 地址 -
备注
-
- ARP 协议暴露内网 IP 地址:
DR 模式要求后端服务器与负载均衡器位于同一个 LAN 内,这样客户端发送的请求可以直接到达后端服务器。
为了实现这一目的,负载均衡器和后端服务器需要共享相同的 VIP(虚拟 IP 地址)。
当客户端发送请求时,会使用 ARP 协议查询 VIP 对应的 MAC 地址。这时,后端服务器必须响应 ARP 请求,暴露其内网 IP 地址。
- ARP 协议暴露内网 IP 地址:
-
- 缺乏对内网 IP 地址的保护:
在 DR 模式下,后端服务器需要直接响应客户端的请求,无法通过负载均衡器对内网 IP 地址进行隐藏或转换。
这意味着,客户端可以直接访问后端服务器的内网 IP 地址,缺乏对内网 IP 地址的保护。
- 缺乏对内网 IP 地址的保护: