LVS三种模式
1.NAT模式
? nat模式是在负载均衡器DS上进行IP地址的改写,client端发过来的数据包的目的地址由负载均衡服务器DS的虚拟IP变成真实服务器RS,回数据包的时候目的地址由DS变为client。
NAT模式实现过程:
? 发送过程: client IP -> Virtual IP (经过DS改写) client IP -> RS IP
? 数据包回复过程: RS IP -> client IP(经过DS改写后)Virtual IP -> client IP
优点: 集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址
缺点: 扩展性有限,当服务器节点(普通的pc操作系统)数据增长到20个或者更多的时候,负载均衡器就会成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生。
为什么要写IP?
对于用户而言并不会预先知道RS的地址,整个LVS对他应该是透明的,客服不应该 了解DS和RS到底做了写什么,所以只需要把包对给DS的VIP,数据包达到DS后,经过调度算法分配给一台RS,把数据包的目的IP改成RS的IP。此时RS再收到数据包时就知道这是一个发给我的包,进行处理后再会给DS,由DS转发回去,往返数据包都要通过NAT改写,DS的性能便成为瓶颈
2.DR模式(直连路由)
? 所谓的直连路由,是指二层转发,就是说再二层转发上进行,既然是在二层转发,所以DS和RS就得在同一个网段。
DR模式实现过程:
? 数据包发送: client IP -> Virtual IP
? 经过DS改写后: client IP (MAC改成DS IP 的MAC) -> Virtual IP (RS MAC)
可以看到,虽然IP是client的,但是MAC却被偷梁换柱了,改成了DS的MAC了,不过既然是二层转发,所以结果是一样,此时的RS也有一个回环地址是VIP,RS看到这个包的目的MAC是自己就会接受去处理,处理完毕后就会封装上Virtual IP 发送给client
优点:和TUN(隧道模式)一样,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客服端,与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数据操作系统作为物理服务器。
缺点:要求负载均衡器的网卡必须与物理网卡在一个物理上(小缺点,只能说不足)
3.TUN(隧道模式)
? 隧道模式本质就是在原来的基础上加一层封装
隧道模式实现过程:
? 数据包发送: client IP -> Virtual IP
? 经过DS改写后:DS IP (cline IP -> Virtual IP)RS IP
(RS服务器上应该有回环口被设置为VIP 和DS的VIP一致(原因:RS收到DS IP (client IP -> Virtual IP) RS IP这个包过后,拆掉外边的包装,变成client IP -> Virtual IP ,正好他的回环口就是VIP ,RS就是认为这是个发给我的包,处理后直接使用VIP 发送给源地址client IP ,不需要DS再次改写)
优点: 负载均衡器只负责将请求包分发给端接点服务器,而将RS将应答包直接发给用户,所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,就能处理很巨大的请求量,这种方式,一台负载均衡器就能够为很多RS进行分发,而且跑在公网上就能进行不同的地域分发。
缺点: 隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling” (IP Encapsulation)协议,服务器可能局限于部分Linux上。
|