返回介绍

最佳实践 21:模式选择

发布于 2025-04-20 17:44:41 字数 4036 浏览 0 评论 0 收藏

LVS 集群中,支持以下 3 种转发模式:LVS-NAT、LVS-DR、LVS-Tun。下面将对这 3 个转发模式逐一介绍。

LVS-NAT

NAT 是该项目实现的第一种转发模式,和思科 LocalDirector 这一款产品具有相同的实现方法( https://en.wikipedia.org/wiki/Cisco_LocalDirector )。如果希望搭建一个 LVS 集群的测试环境,可以采用这个转发模式,这个模式是最简单的设置,同时不需要对后端服务器做任何设置上的变更。

LVS-NAT 基于 NAT(网络地址转换)技术,网络数据流程如下。

1)负载均衡器在收到客户端请求后,改写目的 IP 地址为后端服务器真实 IP 和/或端口号,转发给后端服务器。

2)后端服务器处理完成后,回复给负载均衡器。

3)负载均衡器改写源 IP 为虚拟 IP,发送给客户端。

由此可见,负载均衡器是串联在整个架构中。

一个最简单的 LVS-NAT 测试架构如图 4-1 所示。

LVS-DR

LVS-DR 中的 DR 是 Direct Routing 的缩写,译为直接路由。

以图 4-2 来说明 LVS-DR 转发模式下的数据通信情况。

该架构图中的基本信息见表 4-1。

图 4-1 一个最简单的 LVS-NAT 测试架构

图 4-2 LVS-DR 架构图

表 4-1 图 4-2 中服务器基本信息表

客户端使用以下命令进行测试:

curl http://10.1.6.18/index.html

数据流程如下:

步骤 1 Client 发起 Arp Request,请求 10.1.6.18 的 MAC 地址,负载均衡器回复(文件:LVS_Client_Arp_Request.pcap,Frame 1215),如图 4-3 所示。

图 4-3 Client 的 Arp Request

注意目标 MAC和目的 IP,请求获取 10.1.6.18 的 MAC 地址。

负载均衡器回复(文件:LVS_Client_Arp_Request.pcap,Frame 1216),如图 4-4 所示。

图 4-4 负载均衡器的 Arp Response

步骤 2 Client 连接 10.1.6.18 的 80 端口,发送 TCP SYN(文件:LVS_Client_Arp_Request.pcap,Frame 1217),如图 4-5 所示。

图 4-5 Client 发送 TCP SYN

此处,目的 MAC为负载均衡器 LVS1 的 MAC 地址,目的 IP为虚拟 IP。

步骤 3 负载均衡器 LVS1 进行包转发。

步骤 4 后端服务器 Web1 收到请求的数据,处理并回复给 Client(文件:LVS_Web1_Request_Receive.pcap,Frame 321),如图 4-6 所示。

图 4-6 Web1 收到改写了目的 MAC 的 TCP SYN

从此处的和步骤对比可以看到,Web1 收到的包 Ethernnet 的目的 MAC 已经被 LVS1 修改成了 Web1 的 MAC 地址(文件:LVS_Web1_Request_Receive.pcap,Frame 322),如图 4-7 所示。

Web1 的回包:

从此处的 Web1 的回包 Ethernet 的目的 MAC为 Client 的 MAC,IP 层的目的 IP为 Client 的 IP,可以得知,该回包没有再经过 LVS1。

从以上步骤可以看到 DR(直接路由)的含义:请求经过负载均衡器调度后,后端服务器的响应数据流量直接返回给客户端,回包不经过负载均衡器。

图 4-7 Web1 回复 Clinet 的 TCP SYN+ACK

LVS-Tun

LVS-Tun 是 LVS 原创的一种转发模式,基于 LVS-DR。负载均衡器 LVS 代码把原始的包(源客户端 IP 到虚拟 IP)封装成 ipip 包,目的地址是后端服务器的真实 IP,然后进入 OUTPUT 链,并路由到后端服务器。后端服务器解封 ipip 包并处理,以源地址虚拟 IP、目的地址客户端 IP 直接回复给客户端。

LVS-Tun 是为了解决后端服务器和负载均衡器不在同一个物理区域所设计(跨网段)。

3 种模式对比与推荐

从对后端服务器的要求上来看,LVS-NAT 仅仅要求后端服务器网关指向负载均衡器的内网地址,无任何其他要求;LVS-DR 模式要求后端服务器禁用对虚拟 IP 的 ARP 响应,后端服务器网关不指向负载均衡器;LVS-Tun 要求后端服务支持 ipip 解封包,部分操作系统不支持。

从吞吐量上来看,LVS-DR 最高,LVS-NAT 最低。

从配置简便性上来看,LVS-NAT 最低,LVS-DR 和 LVS-Tun 均较为复杂。

本书推荐在应用中使用 LVS-DR 模式,这个也是目前运维架构中应用最多的 4 层开源负载均衡转发策略。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。