lvs集群技术(Linux virual server)

LVS(Linux Virtual Server,Linux 虚拟服务器)集群技术是一种基于 Linux 操作系统的负载均衡集群解决方案,主要用于在多台服务器之间分配网络请求,提高服务的可用性、可靠性和扩展性。它由我国科学家章文嵩博士于 1998 年提出并主导开发,目前已成为 Linux 内核的一部分,被广泛应用于高并发、高可用的网络服务场景(如电商平台、门户网站、云服务等)。

实验环境:

server1(调度器)、server2(真实服务器)、server3(真实服务器)、server4(测试机)

一、NAT模式(网络地址转换)

1.实验环境设定

client:

IP:172.254.25.111

lvs:

IP:172.25.254.100

RS1:

IP:192.168.0.10

RS2:

IP:192.168.0.20

调好实验环境后:

2.让lvs走nat模式:

3.发现80端口连不了

4.检查火墙是否打开,如果打开要关闭

写RS1和RS2永久网关:

RS1:

RS2:

最后检查RS1和RS2都没有问题,nat实现:

二、DR 模式(直接路由)

1.在两台rs主机中设定lo不对外响应

RS2:

RS1:

2.设置IP,80端口,tcp协议,轮询算法;-g表示直连路由

3.实验效果:

三、TUN模式(IP隧道)

TUN模式:

LVS 的 TUN 模式(IP 隧道模式)是一种高效的负载均衡实现方式,特别适合跨地域、大规模的分布式集群。其核心原理是通过 IP 隧道技术将客户端请求封装后转发给真实服务器,真实服务器直接响应客户端,形成非对称的流量路径。

TUN 模式的数据传输流程:

1. 客户端发送请求

客户端向 LVS 集群的虚拟 IP(VIP)发起请求,请求包的源 IP 是客户端 IP,目标 IP 是 VIP

2. 负载调度器接收请求并选择服务器

负载调度器(通常是一台专用服务器)通过网络接口接收客户端请求,根据预设的负载均衡算法(如轮询、最少连接),从可用的真实服务器池中选择一台服务器

3. 调度器封装请求并通过 IP 隧道转发

调度器将原始请求包([Client_IP → VIP])封装在一个新的 IP 包中,新 IP 包的源 IP 是调度器的物理 IP(DIP),目标 IP 是选定真实服务器的 IP(RIP)。调度器通过 IP 隧道(如ipip协议)将封装包发送给真实服务器

4. 真实服务器接收并解封装请求

真实服务器的网络接口(需支持 IP 隧道)接收封装包,剥离外层 IP 头,获取原始请求包,真实服务器处理请求时,看到的源 IP 是客户端 IP,目标 IP 是 VIP(与客户端发送的原始请求一致)

5. 真实服务器直接响应客户端

处理完请求后,真实服务器直接向客户端返回响应(无需经过调度器),响应包的源 IP 是 VIP,目标 IP 是客户端 IP,客户端认为响应来自 VIP

四、fullent模式

fullent模式:

LVS 的 FULLNET 模式是 NAT 模式的一种扩展,全称为 FULL - NAT 模式。它在请求和响应方向上都会进行地址和端口的转换

fullent模式的数据传输过程:

1. 客户端发送请求

客户端向 LVS 集群的虚拟 IP(VIP)发起请求,请求包的源 IP 是客户端 IP(CIP),目标 IP 是 VIP。

2. 负载调度器接收请求并选择服务器

负载调度器(Director Server,DS)接收客户端请求,根据负载均衡算法从真实服务器池中选择一台真实服务器(Real Server,RS)。

3. 调度器修改请求的源 IP 和目标 IP

调度器将请求包的源 IP 修改为 DS 的 IP 地址(DIP) ,目标 IP 修改为 RS 的 IP 地址(RIP), 此时,请求包的流向变为:[DIP → RIP]。

4. 真实服务器接收请求并处理

RS 接收到请求包(源 IP 为 DIP,目标 IP 为 RIP),RS 处理请求,生成响应包,响应包的源 IP 为 RIP,目标 IP 为 DIP。

5. 真实服务器将响应发送给调度器

RS 将响应包发送给 DS(因为响应包的目标 IP 是 DIP)。

6. 调度器再次修改响应的源 IP 和目标 IP

调度器将响应包的源 IP 修改为 VIP ,目标 IP 修改为客户端 IP(CIP), 此时,响应包的流向变为:[VIP → CIP]。

7. 客户端接收响应

客户端接收到响应包,认为响应来自 VIP

相关推荐
修己xj6 小时前
服务器无法解析域名?一次 DNS 配置缺失的排查与修复
运维
爱吃奥利奥_wen9 小时前
SQL Server 基础语法详解:从建库建表到约束与增删改查
服务器·数据库·oracle
xbzb11 小时前
自定义 yum 软件源:Linux 上 createrepo,Windows 上纯 Python 也能造
linux·运维·windows·python·yum·createrepo
Android系统攻城狮11 小时前
Linux FFmpeg深度解析之avio_open调用流程与实战(三十八)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
瑞克-桑切斯12 小时前
ERP 企业生产管理系统部署手册
运维·docker·云原生·容器·eureka
江屿风13 小时前
【Git-组件】【Git入门:从文档灾难到版本掌控】流食般投喂
运维·笔记·git·组件·版本控制
我不会起名字32213 小时前
K8s 节点磁盘打满导致 Pod 被驱逐:4 类占用与回收顺序
运维·kubernetes·k8s·diskpressure·evicted
雪落漂泊13 小时前
Linux进程(五):进程地址空间篇
linux·运维·服务器
瑞克-桑切斯13 小时前
docker mail商城
运维·docker·容器
AR-26710-14 小时前
Linux Day32——网络,ROCE-IB与以太网
linux·运维