目前LVS有四种模式,VS/NAT,VS/TUN,VS/DR和最近的淘宝的FULLNAT

(首先要明白DIP,CIP。RIP,负载均衡LB(调度器))

VS/NAT:(NAT:network address translation网络地址转换)通过网络地址转换将一组服务器构成一个高性能的,高可用的虚拟服务器(路由器用的就是NAT)

通过网络地址转换,调度器LB重写请求报文的目标地址,根据预设的调度算法,将请求分派给后端的真实服务器,真实服务器的响应报文处理后必须通过调度器,通过调度器时,报文的源地址被重写,再返回给客户,完成整个负载调度过程。

VS/TUN:(tunneling)通过隧道实现的虚拟服务器

调度器把请求报文通过IP隧道(相当于ipip或ipsec)转发至真实服务器,而真实服务器将响应处理后直接返回给客户,这种调度器只处理请求的入站报文,一般网络服务应答数据比请求报文大很多,采用VS/TUN技术后,集群系统的最大吞吐量可以提高10倍

VS/DR:(direct routing)通过直接路由实现的虚拟服务器

通过改写请求报文的目标MAC地址,将请求发给真实服务器,而真实服务器将响应后的处理结果直接返回给客户端用户,同VS/TUN技术一样,VS/DR技术可极大地提高集群系统的伸缩性,而它没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连在同一物理网段上(必须同一个局域网LAN环境,不过ARP中继可以跨越局域网,不过效果不好,很少用),RS节点的网关不需要调度器LB的DIP,而直接是IDC机房分配的上级路由器IP(这是RS带有外网IP地址的情况)。且LB无法改变请求的报文的目的端口(和NAT要区别)。当前,LB不支持WINDOWS系统,不过RS节点可以是WINDOWS系统。

DR模式效率很高,但是配置也较麻烦,因此,访问量不是特别大的公司可以用haproxy/nginx取代之。

直接对外的访问业务,例如:web服务器做RS节点,最好用公网IP地址。不直接对外的业务,例如:MySQL存储系统RS节点,最好使用内网IP地址

区别:NAT转换IP,被称为收费战模式(来回都要经过),TUN添加了一个IP头,DR将请求的数据帧的MAC地址改为选出服务器的MAC地址,TUN和DR的RS响应处理后的报文无需经过调度器LB(TUN和DR都要在所有的RS上配VIP,绑定lo本地网卡,在本地上绑定是为了防止地址冲突,也需要抑制ARP,在ARP广播上,LB和RS都会响应VIP,要让RS不要响应目标地址是VIP的请求)