DR NAT TUN
1,DR 直接路由模式
①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的源MAC地址改为自己DIP的MAC地址,目标MAC改为了RIP的MAC地址,并将此包发送给RS。
③.RS发现请求报文中的目的MAC是自己,就会将次报文接收下来,处理完请求报文后,将响应报文通过lo接口送给eth0网卡直接发送给客户端。
负载均衡器和Realserver 都使用同一个IP对外服务,但只有DR对于外(ARP)请求进行响应,网关会把对这个IP的请求全部定向给DR,然后DR根据调度算法找出对应的RealServer,把目的MAC地址改为RealServer的MAC,并将请求发给它,当RealServer处理完请求后,由于IP一致,可以直接将数据返回给客户。
由于负载均衡器要对二层包头进行改换,所以负载均衡器和真实服务器必须在一个广播域,简单理解在一台交换机上。
优点:与vs-Tun相比,VS-DR这种实现方式不需要隧道结构,因此可以使用大多数操作系统做为物理服务器。
缺点:不足 负载均衡器的网卡必须与物理网卡在一个物理段上。
注意:需要设置lo接口的VIP不能响应本地网络内的arp请求
2,NAT
①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP(客户端IP),后面统称为CIP),目标地址为VIP(负载均衡器前端地址,后面统称为VIP)。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将客户端请求报文的目标地址改为了后端服务器的RIP地址并将报文根据算法发送出去。
③.报文送到Real Server后,由于报文的目标地址是自己,所以会响应该请求,并将响应报文返还给LVS。
④.然后lvs将此报文的源地址修改为本机并发送给客户端。
就是把客户端发来的数据包的IP头部在负载均衡器上换成RS的IP地址,RS处理完成后把数据在给负载均衡器,把数据包的IP头部改回来,期间无论是进来的流量还是出去的流量,都必须经过负载均衡器。
优点:集群中的物理服务器可以使用任何支持TCP/IP操作系统,只有负载均衡器需要一个合法的IP地址。
缺点:扩展性有限 负载均衡器会成为整个系统的瓶颈,大量的数据会导致变慢
注意:在NAT模式中,Real Server的网关必须指向LVS,否则报文无法送达客户端
3,IP隧道模式(VS-TUN)
①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP。
②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将在客户端请求报文的首部再封装一层IP报文,将源地址改为DIP,目标地址改为RIP,并将此包发送给RS。
③.RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会处理次请求报文,并将响应报文通过lo接口送给eth0网卡直接发送给客户端。
internet服务请求包都很小,而应答包通常都很大,隧道模式,将客户端发来的数据包封装一个新的IP头部标记发给RS,RS解开包头,还原数据,处理后直接返回给客户端,不需要在经过负载均衡器
由于RS需要对数据包还原,必须支持IPTUNNEL协议,所以在RS内核中,必须编译支持IPTUNNEL这个选项。
优点:减少了负载均衡器的大量数据流动,负载均衡不再是系统的瓶颈,跑在公网上就能进行不同地域的分发。
缺点:RS节点需要合法IP,这种方式需要所有的服务器支持"IpTunneling"(网络隧道)
(
IP Encapsulation)
协议,服务器可能只局限在部分Linux系统上。
(IP封装)
注意:需要设置lo接口的VIP不能在公网上出现