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 模式工作原理简化版:
- 用户请求发到负载均衡器(Director)的 VIP
- 负载均衡器把请求的目标地址换成某台真实服务器(RS)的地址,转发过去
- 真实服务器处理后,把结果返回给负载均衡器
- 负载均衡器把结果的源地址换成 VIP,再发给用户
LVS TUN 模式简化原理:
- 客户端请求发到负载均衡器(Director)的 VIP
- 负载均衡器不在修改原请求,只是给它套个新 "信封"(外层 IP:负载均衡器内网 IP→真实服务器隧道 IP)
- 真实服务器收到后,拆掉外层 "信封",发现里面是发给自己 lo 接口 VIP 的请求,开始处理
- 处理完后,直接从自身网卡发响应,源 IP 是 VIP,目标 IP 是客户端
LVS DR 模式简化原理:
- 客户端请求发到负载均衡器的 VIP
- 负载均衡器只改请求的 MAC 地址(换成某台真实服务器的 MAC),IP 地址不变
- 真实服务器收到后直接处理,响应不经过负载均衡器,直接返回客户端