关于负载均衡:四层负载均衡的NAT模型与DR模型推导-京东物流技术团队

导读

本文首先讲述四层负载平衡技术的特点,而后通过发问的形式推导出四层负载均衡器的NAT模型和DR模型的工作原理。通过本文能够理解到四层负载平衡的技术特点、NAT模型和DR模型的工作原理、以及NAT模型和DR模型的优缺点。读者能够重点关注NAT模型到DR模型演进的起因(一种技术的诞生必定是为了补救现有技术的有余)。除此之外,读者能够多多关注一些根本的、底层的常识,比方内核空间、用户空间、计算机网络等。 为了叙述不便,文中将“四层负载均衡器” 简称为“FLB” (Four-tier Load Balancer)。

一、FLB在网络中的根本拓扑

FLB工作在OSI七层网络参考模型的第四层(传输管制层),FLB上必须具备两个IP地址,VIP和DIP。VIP是裸露给客户端的拜访地址;DIP是FLB的散发IP,将数据包通过DIP所在的网卡发送给后端的实在提供服务的服务器(前面简称“RS”(Real Server)),如下图。

图1 FLB的根本网络拓扑图

其中CIP为客户端的ip,RIP为RS的ip。

二、四层负载平衡技术的特点

因为FLB工作在传输管制层,因而它对数据包的解决(转发)总是运行在内核态,不会产生内核态和用户态的切换。

尽管FLB工作在传输管制层,然而它并不会和client进行三次握手,它只是“偷窥”数据包中的ip地址和端口号,而后依据配置的规定进行数据包的转发,速度极快。

三、提出问题

在图1中,如果client发送数据包最终达到server1,因为client数据包的目标ip为VIP,当server1收到数据包时,发现数据包的目标ip居然不是本人的ip,那岂不会抛弃数据包?

四、NAT模型

NAT(Network Address Translation)模型,针对3中的问题,能够在FLB中减少对客户端的目标地址vip的地址转换,将vip转换成后端某一RS的ip,而后再将数据包发送进来,具体的网络拓扑如图2。

图2 FLB的NAT 模型的根本网络拓扑图

须要留神的是,下面的后端的server的默认网关须要配置成负载平衡服务器的地址。这样server响应的数据包能力回到负载平衡服务器上。

NAT模型的弊病

很显著的一点是,在做NAT地址转换时,会耗费负载平衡服务器cpu的算力。大多数状况下,client向server申请的数据报文很小,而server向client响应的数据报文很大,这就是“非对称”的。在通过NAT的形式实现负载平衡时,client申请报文和server返回的数据报文都要通过负载平衡服务器进行网络地址转换,如果申请的并发流量很大,那么大量并发的响应报文返回到FLB时,负载平衡服务器的网络带宽就会成为瓶颈

五、DR(Direct Route)模型

间接路由模式能够解决NAT模型的两个弊病。DR模式不通过NAT地址转换,而是将server端返回的数据包的源ip间接写成VIP发送进来。这其中波及到几个要点:

  • 因为server返回的数据包的源ip要写成vip,而不是rip,那么在server本地须要配置vip。并且这个vip必须是对外暗藏的,也就是说外界(客户端、负载均衡器)不能间接拜访到server中的vip,而是必须拜访负载均衡器裸露的vip。
  • 在负载均衡器中,接管到client的数据包的源ip是cip,目标ip是负载均衡器裸露的vip,那么负载均衡器如何能力将该数据包发送给server呢?(因为server的vip是暗藏的,负载平衡服务器只能看到rip)。在DR模式中,是通过MAC地址坑骗的形式来实现。负载平衡服务器接管到client的申请数据包之后,将目标MAC地址替换为后端某一台server1的MAC地址(替换之前,目标MAC地址为负载均衡器的MAC地址),而后将数据包发送进来,进行点到点通信,这样server1就收到了client的数据包。 点对点通信依赖的是MAC地址(数据链路层)。
  • 基于上述内容:要实现负载均衡器和后端server点对点通信,因而束缚了:负载平衡服务器的DIP和后端的server必须在同一个机房(局域网)。

依据下面的推导,DR模型的根本网络拓扑如图3所示。

图 3 FLB的DR 模型的根本网络拓扑图

在RS中如何配置VIP,如何实现VIP暗藏?且听下回分解:LVS DR模型试验搭建与验证。

作者:京东物流 伍泓全

起源:京东云开发者社区 自猿其说Tech 转载请注明起源