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. 真实服务器收到后直接处理,响应不经过负载均衡器,直接返回客户端
相关推荐
小白跃升坊19 小时前
PHP2Shell:AI 两天挖出 9.2 分漏洞,让全球 70% 网站连夜打补丁!1Panel 已经把修复版本封装好,推到了你的应用商店里。
php·开源安全·1panel·ai安全·漏洞披露
Json____1 天前
PHP 突发严重安全漏洞,AI 开始改变网络安全的攻防方式
人工智能·web安全·php·it学习·wwwoop.com
catchadmin1 天前
PHP 8.7 协程新提案 让跨协程代码共享请求身份
开发语言·php
福建佰胜张工1 天前
SMC 薄型气爪 MHF2-16D1 深度解析:平行开闭、低剖面结构在自动化装配中的选型与落地
java·服务器·安全·自动化
Web极客码1 天前
我用 Claude 分析 Redis 哨兵日志,实现跨机房数据不一致自动对齐
数据库·redis·php
xuefeiniao1 天前
PHP2Shell漏洞修复
运维·服务器·php
ServBay1 天前
AI说代码没漏洞?马上被 PHP 打脸了
aigc·php·ai编程
便利店10241 天前
系统活动一抓留存!深入 Linux C/C++ 调试工具之 sysdig
linux·运维·服务器·sysdig
g3voip1 天前
工业防水电话到底怎么选?隧道、管廊与码头的需求差异
服务器·网络·信息与通信·ip
tq10861 天前
对PHP漏洞的思考
php