首页 理论教育 Linux虚拟服务器的IP负载均衡技术

Linux虚拟服务器的IP负载均衡技术

时间:2023-10-17 理论教育 版权反馈
【摘要】:服务节点无法和客户端直接通信,无论是请求数据还是应答数据,都需要经过负载均衡器进行IP包处理工作。(三)用Direct Routing实现虚拟服务器和IPIP模式一样,DR模式也是采用单工的连接方式,应答数据不再经过均衡器而直接返回给客户端。服务节点也必须拥有能够到达客户端的合法IP地址。

Linux虚拟服务器的IP负载均衡技术

LVS实现了三种IP负载均衡技术,它们分别为通过网络地址转换实现的集群(VS/NAT),通过IP隧道技术实现的集群(VS/TUN)和采用直接路由实现的集群(VS/UR)。下面将仔细分析其工作原理及其优缺点,在这里先做以下约定:称客户的Socket和服务器的Socket之间的数据通信为连接,无论它们是使用TCP协议还是UDP协议。

(一)用网络地址转换(NAT)实现虚拟服务器(VS/NAT)

NAT的网络结构呈现为一种类似防火墙的私有网结构,中间的虚线表示网络隔离带。通过内部IP地址,将服务节点池同互联网隔离开来。服务节点无法和客户端直接通信,无论是请求数据还是应答数据,都需要经过负载均衡器进行IP包处理工作。

NAT中主要的工作就是改写IP包的源、目的地址信息,使发向VIP的请求数据经过改写后重新指向内部主机;同样,内部的应答数据经过负载均衡器改写后,以VIP作为源地址发至请求者。这样的模式也称作网络地址转换(也有的叫作IP地址伪装),我们在代理服务器、Iptables、透明网关等应用中,都使用到这种模型,可以说这是一件比较成熟的技术。

使用NAT方式,要对进入和流出集群的网络包进行改写包头地址的工作,在负荷比较重的时候会影响整个集群的性能,负载均衡器容易成为瓶颈。

(二)用IP Tunneling实现虚拟服务器(VS/TUN)

IP Tunneling(隧道)又称为IP Encapsulation(IP封装),是一种把IP数据包(包括IP数据包包头和IP数据包数据)封装在一个新的IP数据包里的技术,在这个新的IP数据包里原来的IP数据包仅仅作为它的数据部分。这样一来,目的地址为一个IP地址的数据包在经过封装以后就能够重定向到另一个IP地址。IP封装技术被广泛地应用于Mobile-IP(移动IP)、IP-Multicast(IP组播)领域。(www.xing528.com)

IP模式采用的是开放的网络结构,服务节点拥有合法的互联网IP地址,可以通过路由路径将应答包直接返回给客户端。因此,负载均衡器仅仅处理进入集群的请求数据包,而返回包不经过路由器。因此,这种模式称作单工连接模式(单方向连接工作模式)。负载均衡器和服务节点的连接可以是LAN,也可以在不同的网络上,只需要保证负载均衡器能够将IP包发送至服务节点即可。

负载均衡器收到客户端的请求包后,通过IPIP协议为该IP包重新处理,形成以选定的服务节点为目的IP的新的IP包,原有的IP包数据则封装在新的IP包里。服务节点收到均衡器发来的IPIP数据后,将该包解开,根据其内的客户端地址(源地址)将处理结果直接返回给客户端,而应答包的源地址则成为集群的虚拟地址VIP。

IPIP模式的技术在其他领域也有体现,因为对IP进行重新封装,整个过程对应用层仍然是透明的。PPTP协议就是对IP隧道协议的一种应用。不过,目前IPIP仅仅在Linux系统上实现。该协议必须在Kernel中打开设备选项支持,通过Tunel设备绑定VIP,服务节点在返回应答数据时,可以以VIP作为源地址构筑应答包。

(三)用Direct Routing实现虚拟服务器(VS/DR)

和IPIP模式一样,DR模式也是采用单工的连接方式,应答数据不再经过均衡器而直接返回给客户端。服务节点也必须拥有能够到达客户端的合法IP地址。而且,DR模式中,负载均衡器和服务节点必须位于同一个网段

负载均衡器接收到客户端请求后,选择合适的服务节点,然后改写请求包的MAC地址部分,使之成为目的服务节点的MAC地址,再将此包广播到均衡器所在的网段。由于每个服务节点都拥有一个虚拟的网络设备,这些设备上绑定了和均衡器一样的VIP,只是该设备并不响应对VIP的RAP解析,不会和均衡器的VIP地址冲突。负载均衡器收到符合自身MAC的IP包后,经过处理后直接将应答数据返回给客户,而此时的源地址仍然是VIP。这样,在客户端看来,访问的和接受响应的始终是集群的VIP地址。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈