分类:
2012-02-16 23:12:49
原文地址:Linux LVS 三种负载均衡模式 作者:flashhand
1.NAT模式
NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(原地址NAT)。 如果把NAT的过程稍微变化,就可以成为负载均衡的一种方式。原理其实就是把从客户端发来的IP包的IP头目的地址在DR上换成其中一台REAL SERVER的IP地址并发至此REAL SERVER,而REAL SERVER则在处理完成后把数据经过DR主机发回给客户端,DR在这个时候再把数据包的原IP地址改为DR接口上的IP地址即可。期间,无论是进来的流 量,还是出去的流量,都必须经过DR。
2.IP隧道模式
隧道模式则类似于VPN的方式,使用网络分层的原理,在从客户端发来的数据包的基础上,封装一个新的IP头 标记(不完整的IP头,只有目的IP部)发给REAL SERVER,REAL SERVER收到后,先把DR发过来的数据包的头给解开,还原其数据包原样,处理后,直接返回给客户端,而不需要再经过DR。需要注意的 是,由于REAL SERVER需要对DR发过来的数据包进行还原,也就是说必须支持IP TUNNEL协议。所以,在REAL SERVER的内核中,必须编译支持IP TUNNEL这个选项。IP TUNNEL也在Networking options里面,如下图所示。
3.直接路由模式
直接路由模式比较特别,很难说和什么方面相似,前2种模式基本上都是工作在网络层上(三层),而直接路由模式则应该是工作在数据链路层上(二层)。其 原理为,DR和REAL SERVER都使用同一个IP对外服务。但只有DR对ARP请求进行响应,所有REAL SERVER对本身这个IP的ARP请求保持静默。也就是说,网关会把对这个服务IP的请求全部定向给DR,而DR收到数据包后根据调度算法,找出对应的 REAL SERVER,把目的MAC地址改为REAL SERVER的MAC并发给这台REAL SERVER。这时REAL SERVER收到这个数据包,则等于直接从客户端收到这个数据包无异,处理后直接返回给客户端。由于DR要对二层包头进行改换,所以DR和REAL SERVER之间必须在一个广播域,也可以简单的理解为在同一台交换机上。
NAT模式 |
IPIP模式 |
DR模式 | |
对服务器结点要求 |
服务结点可以是任何操作系统 |
必须支持IP隧道模式,目前只有Linux |
服务结点支持虚拟网卡设备,能够禁用设备的ARP响应 |
网络要求 |
拥有私有IP地址的局域网络 |
拥有合法IP地址的局域网或广域网 |
拥有合法IP地址的局域网,服务结点与均衡器必须在同一个网段 |
通常支持结点数 |
10~20个,试均衡器处理能力而定 |
较高,可以支持到100个服务结点 |
较高,可以支持到100个服务结点 |
网关 |
均衡器即为服务器结点网关 |
服务结点同自己的网关或者路由器连接,不经过均衡器 |
服务结点同自己的网关或者路由器连接,不经过均衡器 |
服务结点安全性 |
较好,采用内部IP,服务结点隐蔽 |
较差,采用公用IP地址,结点完全暴露 |
较差,采用公用IP地址,结点完全暴露 |
IP要求 |
仅需要一个合法IP地址作为VIP |
除VIP外,每个服务结点需拥有合法的IP地址,可以直接路由至客户端 |
除VIP外,每个服务结点需拥有合法的IP地址,可以直接路由至客户端 |