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. 真实服务器收到后直接处理,响应不经过负载均衡器,直接返回客户端
相关推荐
AC赳赳老秦6 小时前
DeepSeek 私有化部署避坑指南:敏感数据本地化处理与合规性检测详解
大数据·开发语言·数据库·人工智能·自动化·php·deepseek
苏宸啊7 小时前
Linux指令篇(一)
linux·运维·服务器
ZStack开发者社区8 小时前
ZStack Cloud 5.5.0正式发布
运维·服务器·网络
源代码•宸9 小时前
Golang语法进阶(并发概述、Goroutine、Channel)
服务器·开发语言·后端·算法·golang·channel·goroutine
晴天¥9 小时前
VMware+Oracle linux LVM/非LVM磁盘扩容
linux·运维·服务器
醇氧10 小时前
Ping 127.0.0.1 具有 32 字节的数据:一般故障。【二】
运维·服务器·开发语言
墨风如雪10 小时前
VPS交易避坑指南:原油、改邮、PUSH与交易所模式深度解析 (含搬瓦工/DMIT/NetCup实战)
服务器
LeenixP10 小时前
RK3576-Debian12删除userdata分区
linux·运维·服务器·数据库·debian·开发板
qq_ceiling10 小时前
H3C交换机配置M-LAG
运维·服务器·网络
土星云SaturnCloud11 小时前
液冷技术的未来:相变冷却、喷淋冷却等前沿技术探索
服务器·人工智能·ai