LVS三种模式及原理

LVS 的三种模式(NAT、DR、TUN)在流量路径、转发机制、网络限制、性能等方面有显著区别,以下是核心差异对比:

对比项 NAT 模式(网络地址地址转换) DR 模式(直接路由) TUN 模式(IP 隧道)
核心转发原理 双向修改 IP 地址:- 请求阶段:目标 IP 从 VIP 改为 RS 内网 IP- 响应阶段:源 IP 从 RS 内网 IP 改为 VIP 修改 MAC 地址:- 仅将请求包的目标 MAC 改为 RS 的 MAC,IP 不变(仍为 VIP) IP 隧道封装:- 请求包被封装在新 IP 包中(外层目标 IP 为 RS 隧道 IP),内层保留 VIP
流量路径 所有流量(请求 + 响应)必须经过 LVS 仅请求经过 LVS,响应由 RS 直接返回客户端 仅请求经过 LVS,响应由 RS 直接返回客户端
网段限制 无限制(LVS 与 RS 可跨网段) 必须同网段(LVS 与 RS 需二层互通) 无限制(支持跨网段,通过隧道通信)
LVS 角色 流量唯一出入口(瓶颈) 仅转发请求,不处理响应 仅转发请求,不处理响应
RS 配置要求 简单:只需将网关指向 LVS 内网 IP 复杂:- lo 接口绑定 VIP(/32 掩码)- 关闭 ARP 响应(避免 VIP 冲突) 复杂:- 绑定 VIP- 支持 GRE 隧道协议
性能 低(LVS 处理所有流量,易成为瓶颈) 极高(LVS 仅处理请求,响应直连客户端) 高(略低于 DR,因隧道封装消耗少量资源)
支持 RS 数量 少(通常 10-20 台) 多(数百台,受限于二层网络规模) 多(支持跨机房大规模集群)
适用场景 小规模网络、低成本内部服务(如测试环境) 高并发、同网段部署(如电商、门户网站) 跨网段 / 跨机房的分布式集群

一句话总结核心差异:

  • NAT 模式:靠改 IP 地址转发,所有流量走 LVS,简单但性能低;
  • DR 模式:靠改 MAC 地址转发,响应不经过 LVS,性能高但需同网段;
  • TUN 模式:靠隧道封装转发,支持跨网段,性能接近 DR 但配置复杂。

实际生产中,DR 模式因高性能成为主流,NAT 适合入门测试,TUN 用于跨网段特殊场景。

TUN模式:-i

LVS: VIP:192.168.146.100 DIP:192.168.146.200

RS1: VIP:192.168.146.100 RIP:192.168.146.101

RS2: VIP:192.168.146.100 RIP:192.168.101

原理:

LVS NAT 模式工作原理简化版:

  1. 用户请求发到负载均衡器(Director)的 VIP
  2. 负载均衡器把请求的目标地址换成某台真实服务器(RS)的地址,转发过去
  3. 真实服务器处理后,把结果返回给负载均衡器
  4. 负载均衡器把结果的源地址换成 VIP,再发给用户

LVS TUN 模式简化原理:

  1. 客户端请求发到负载均衡器(Director)的 VIP
  2. 负载均衡器不在修改原请求,只是给它套个新 "信封"(外层 IP:负载均衡器内网 IP→真实服务器隧道 IP)
  3. 真实服务器收到后,拆掉外层 "信封",发现里面是发给自己 lo 接口 VIP 的请求,开始处理
  4. 处理完后,直接从自身网卡发响应,源 IP 是 VIP,目标 IP 是客户端

客户端请求

  1. 客户端发送请求:客户端(CIP)向调度器(DIP)发送请求报文,报文的源IP为CIP,目标IP为VIP。

  2. 调度器封装报文:调度器接收到请求后,在原有报文的IP首部(CIP-VIP)外再封装一层IP首部(DIP-RIP),然后将封装后的报文发送给真实服务器(RS)。

真实服务器处理

  1. 真实服务器接收报文:RS收到封装后的报文,发现最外层的目标IP是自己的IP(RIP),于是接收该报文。

  2. 拆除封装并处理请求:RS拆除最外层的IP封装(DIP-RIP),发现内层报文的目标IP是自己的lo接口VIP,于是开始处理请求。

响应客户端

  1. 真实服务器响应:RS处理完请求后,通过lo接口将响应报文发送到ens33网卡,然后直接返回给客户端。此时响应报文的源IP为VIP,目标IP为CIP。

LVS DR 模式简化原理:

  1. 客户端请求发到负载均衡器的 VIP
  2. 负载均衡器只改请求的 MAC 地址(换成某台真实服务器的 MAC),IP 地址不变
  3. 真实服务器收到后直接处理,响应不经过负载均衡器,直接返回客户端
相关推荐
BingoGo18 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack18 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair1 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean3 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩3 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
JaguarJack3 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
海天鹰3 天前
【免费】PHP主机=域名+解析+主机
服务器