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. 真实服务器收到后直接处理,响应不经过负载均衡器,直接返回客户端
相关推荐
waves浪游几秒前
基础开发工具(下)
linux·运维·服务器·开发语言·c++
Miki Makimura4 分钟前
KVStore 多行文章型键值扩展解析:切片存储与客户端多行交互
运维·服务器·网络·学习
qq_334466861 小时前
excel VBA应用
java·服务器·excel
运维管理2 小时前
Linux系统笔记--Base
开发语言·php
Kingsaj2 小时前
uni-app打包app -- 在用户首次启动 App 时,强制弹出一个“用户协议与隐私政策”的确认对话框。
服务器·ubuntu·uni-app
黑云压城After2 小时前
纯css实现加载动画
服务器·前端·css
全栈软件开发2 小时前
最新版T5友价互站网源码商城PHP源码交易平台 完整带手机版源码网系统源码
android·开发语言·php
蒲公英源码2 小时前
uniapp开源ERP多仓库管理系统
mysql·elementui·uni-app·php
zorro_z2 小时前
ThinkPHP8学习篇(十一):模型关联(一)
php
海蓝可知天湛3 小时前
Ubuntu24.10禁用该源...+vmware无法复制黏贴“天坑闭环”——从 DNS 诡异解析到 Ubuntu EOL 引发的 apt 404排除折腾记
linux·服务器·安全·ubuntu·aigc·bug