写点什么

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

  • 2023-08-28
    北京
  • 本文字数:1568 字

    阅读完需:约 5 分钟

四层负载均衡的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 转载请注明来源

发布于: 刚刚阅读数: 7
用户头像

拥抱技术,与开发者携手创造未来! 2018-11-20 加入

我们将持续为人工智能、大数据、云计算、物联网等相关领域的开发者,提供技术干货、行业技术内容、技术落地实践等文章内容。京东云开发者社区官方网站【https://developer.jdcloud.com/】,欢迎大家来玩

评论

发布
暂无评论
四层负载均衡的NAT模型与DR模型推导 | 京东物流技术团队_负载均衡_京东科技开发者_InfoQ写作社区