rocky9.2的lvs的NAT模式下的基本使用的详细示例

文章目录

  • 前言
    • 什么是LVS?(Linux Virtual Server)
    • LVS的组成
      • 1. 负载均衡器(Load Balancer)
      • 2. 后端服务器池(Real Servers)
      • 3. IPVS(IP Virtual Server)
      • 4. 调度算法(Scheduling Algorithms)
      • 5. 转发模式(Forwarding Methods)
      • 6. Health Check(健康检查)
      • 7. Keepalived
      • 8. 控制接口(Control Interface)
  • 使用示例(NAT模式)
    • 基本环境
    • 实现过程
      • 1.安装ipvsadm
      • 2.开启路由转发
      • 3.创建虚拟服务器
      • 4.web1.web2添加访问页面
      • 5.访问
    • 访问不到的原因
      • 1.lvs主机没有开启路由转发功能
      • 2.web主机的网关没有指向lvs主机

前言

什么是LVS?(Linux Virtual Server)

LVS 是 Linux Virtual Server 的缩写,它是一种用于构建高度可扩展、高性能和高可用性服务器集群的负载均衡解决方案。LVS 通常用于互联网服务中来实现服务器的负载均衡和高可用性,目的是通过将请求分发到多个服务器,来提高系统的处理能力和可靠性。

LVS的组成

LVS(Linux Virtual Server)主要由以下几个核心组成部分构成,它们共同合作来实现负载均衡和高可用性功能

1. 负载均衡器(Load Balancer)

这是 LVS 系统的核心部分,负责接收客户端的请求并将这些请求分发到后端的服务器池中。它主要通过调度算法和不同的转发模式(如 NAT、DR、TUN)来决定请求的分配方式。

2. 后端服务器池(Real Servers)

后端服务器池是实际提供服务的服务器集合。客户端的请求会被负载均衡器转发到这些服务器上。每台服务器通常运行相同的应用或服务,以确保负载均衡分配的均匀性。后端服务器在实际工作中被称为 Real Servers。

3. IPVS(IP Virtual Server)

IPVS 是 LVS 的核心组件,负责基于 IP 层进行负载均衡。它是 Linux 内核中的一个模块,允许系统将客户端的网络流量按照设定的规则转发到后端服务器上。IPVS 支持多种调度算法来分配网络流量,并支持不同的传输协议(如 TCP、UDP 等)。

4. 调度算法(Scheduling Algorithms)

调度算法决定了 LVS 如何将进入的网络请求分发到后端服务器。LVS 支持多种调度算法,

以下是一些常见的算法示例
轮询(Round Robin): 逐个循环分配请求。
加权轮询(Weighted Round Robin): 根据服务器的性能设置权重,权重越高的服务器将收到更多的请求。
最少连接(Least Connections): 将请求发送给当前连接数最少的服务器。
源地址哈希(Source Hash Scheduling): 基于客户端的 IP 地址哈希,将来自同一 IP 的请求始终发送到同一台服务器。

5. 转发模式(Forwarding Methods)

LVS 提供了三种主要的转发模式,用于将客户端请求转发到后端服务器上:

包括以下模式
NAT 模式(Network Address Translation): 通过修改数据包的源地址和目的地址,将请求转发到后端服务器,且返回的响应数据也需要通过负载均衡器来修改并发送给客户端。
简单来说 就是LVS 的 NAT 模式(网络地址转换)就像一个中间人:客户端请求先发送到负载均衡器,负载均衡器再修改数据包的目标地址并转发给后端服务器。后端服务器处理请求后,把响应发回负载均衡器,负载均衡器再修改数据包的源地址,最终将响应发送给客户端。这样,客户端和服务器都只看到负载均衡器的地址,而不知道彼此的真实地址。这个模式适合小规模网络,因为所有流量都要经过负载均衡器,可能成为瓶颈。

DR 模式(Direct Routing): 负载均衡器只负责将请求发给后端服务器,后端服务器直接将响应发送给客户端,不经过负载均衡器,这减少了负载均衡器的压力。
简单来说就是 LVS 的 DR 模式(直接路由)就像是直接派送:客户端的请求首先到达负载均衡器,负载均衡器仅负责将请求转发给后端服务器,而不修改数据包。后端服务器直接将响应发送给客户端,而不是经过负载均衡器。这样,负载均衡器只处理入站请求,出站响应不经过它,减轻了它的负载,适合处理大量流量。不过,需要所有服务器和负载均衡器位于同一网络环境中(共享相同的网关)

TUN 模式(IP Tunneling): 使用 IP 隧道技术,允许后端服务器位于不同的网络中,通过隧道将请求转发给后端服务器,后端服务器直接将响应发送给客户端。
简单来说就是 LVS 的 TUN 模式(隧道模式)像是中转快递:客户端的请求先到达负载均衡器,负载均衡器通过 IP 隧道将请求转发给后端服务器,但与 DR 模式不同的是,后端服务器处理完后直接通过公网将响应发送给客户端。这种模式可以让后端服务器位于不同网络,甚至跨数据中心处理请求,适合大规模、跨区域的高流量场景,不过需要服务器支持 IP 隧道协议(IPIP)。

6. Health Check(健康检查)

LVS 通常会结合健康检查机制来监控后端服务器的状态,确保服务器在健康状态下处理请求。如果某个服务器发生故障,LVS 会自动将该服务器排除在调度之外,防止将请求转发到故障服务器。常用的健康检查工具包括 Keepalived 和 Heartbeat。

7. Keepalived

Keepalived 是一个高可用性和负载均衡解决方案,通常与 LVS 配合使用。它负责管理 LVS 的健康检查和故障切换,当主负载均衡器出现故障时,可以自动将流量切换到备用的负载均衡器,从而确保服务的高可用性。这个以后会再出一篇详细描述

8. 控制接口(Control Interface)

LVS 提供了一些控制工具来管理和配置负载均衡器和服务器池。最常用的工具是 ipvsadm,它允许管理员添加、删除和修改 LVS 的调度规则,并监控 LVS 的运行状态。

使用示例(NAT模式)

基本环境

主机

ip主机名服务
200.0.0.0.1client客户端
200.0.0.1,192.168.10.12lvslvs
192.168.10.13web1httpd
192.168.10.14web2httd

rocky网卡路径

cd /etc/NetworkManager/system-connections

需要注意的是
web1 web2网卡的网关都要指向lvs,即192.168.10.12
lvs主机需要开启路由转发

rocky9.2的双网卡配置请看
链接: https://blog.csdn.net/lwxvgdv/article/details/142334821

实现过程

1.安装ipvsadm

ipvsadm是在负载调度器上使用的LVS 群集管理工具,通过调用ip_vs模块来添加、删除服务器 节点,以及查看群集的运行状态。手动安装 ipvsadm 软件包。

lvs主机上

yum -y install ipvsadm
ipvsadm -v

在这里插入图片描述

2.开启路由转发

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 
sysctl -p

3.创建虚拟服务器

ipvsadm -A -t 200.0.0.2:80 -s rr

解释
-A:添加一个新的虚拟服务。
-t 200.0.0.2:80:指定虚拟 IP 地址和端口,这里是 200.0.0.2 的 80 端口。
-s rr:设置调度算法为轮询(round-robin)

添加服务器节点(web1 web2)

ipvsadm -a -t 200.0.0.2:80 -r 192.168.10.13:80 -m -w 1
ipvsadm -a -t 200.0.0.2:80 -r 192.168.10.14:80 -m -w 1

解释
第一条命令
-a:添加真实服务器。
-t 200.0.0.2:80:指定虚拟服务。
-r 192.168.10.13:80:指定真实服务器 IP 和端口。
-m:使用 NAT 模式(直接映射)。
-w 1:设置权重为 1,表示负载均衡时的分配比例。

第二条命令 功能相同,只是指定的真实服务器为 192.168.10.14。

4.web1.web2添加访问页面

web1

yum -y install httpd
echo web1 > /var/www/html/index.html
systemctl restart httpd

web2

yum -y install httpd
echo web2 > /var/www/html/index.html
systemctl restart httpd

5.访问

client主机访问
在这里插入图片描述

访问不到的原因

1.lvs主机没有开启路由转发功能

命令

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf 
sysctl -p

2.web主机的网关没有指向lvs主机

lvs主机的ip为192.168.10.12
web1的网卡配置

[connection]
id=ens33
uuid=2060138f-8d43-365c-a863-cb0bcbc3e730
type=ethernet
autoconnect-priority=-999
interface-name=ens33[ethernet][ipv4]
method=manual
address1=192.168.10.13/24,192.168.10.12
dns=192.168.10.2;8.8.8.8[ipv6]
addr-gen-mode=eui64
method=auto[proxy]

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143210.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

论文阅读 | 基于流模型和可逆噪声层的鲁棒水印框架(AAAI 2023)

Flow-based Robust Watermarking with Invertible Noise Layer for Black-box DistortionsAAAI, 2023,新加坡国立大学&中国科学技术大学本论文提出一种基于流的鲁棒数字水印框架,该框架采用了可逆噪声层来抵御黑盒失真。 一、问题 基于深度神经网络…

Nginx从入门到入土(二): 学习内容与安装

Nginx学习内容 1.理解Nginx在实际项目中的应用场景 2.理解正向代理和反向代理 3.Nginx在Linux和Windows上的安装 4.Nginx的运行模型概念与日志管理 5.Nginx.config核心配置文件与配置HTTPS证书 6.基于Nginx解决跨域,实现防盗链,缓存,压…

【深度学习实战—11】:基于Pytorch实现谷歌QuickDraw数据集的下载、解析、格式转换、DDP分布式训练、测试

✨博客主页:王乐予🎈 ✨年轻人要:Living for the moment(活在当下)!💪 🏆推荐专栏:【图像处理】【千锤百炼Python】【深度学习】【排序算法】 目录 😺〇、仓库…

DevEco Profiler调优工具(一)

一、Profiler调优工具简介 设备应用选择区:选择调优设备(目前仅支持真机),进程列表及当前应用进程 会话列表区:已创建的调优分析任务,单击某会话数据区显示其调优内容;选择设备和进程后&#xf…

高原生态系统揭秘:食物网结构揭示食肉动物共存机制

凌恩推出eDNA多营养级联合分析助您攻克高原生境中不同营养级物种群落关联机制研究难题 北京大学姚蒙团队在《Current Biology》期刊上(IF9.2)发表了关于青藏高原食肉动物的食物网结构及其共存机制和群落构成的文章。该研究通过分析青藏高原三种食肉动物群落中食肉动物的食性&a…

从HarmonyOS升级到HarmonyOS NEXT-环信SDK数据迁移

前言:2024年6月21日 HarmonyOS NEXT (后续称之为 NEXT) 正式发布,随着 NEXT 稳定版的逐渐临近,各个应用及SDK正在忙于适配 NEXT 系统,同样也面临着系统升级时如何对数据的迁移适配。本文通过使用环信 SDK 介…

本地连线上Redis访问不通

可能原因: 1、服务器没有开放 Redis的默认端口:6379 2、在服务器中添加访问规则 3、修改Redis的配置 修改宝塔中Redis的配置文件: redis配置修改: 1、requirepass是用来设置访问密码的 2、注释bind 127.0.0.1:改为 bind 0.0.0.0…

Redis - 深入理解Redis事务

目录 Redis是如何实现事务的?事务中执行的命令出现错误,会回滚事务吗?同一个连接可以重复开启事务吗?多个客户端同时开启事务会怎样?使用Redis事务只用MULTI和EXEC吗?Redis中的WATCH机制是怎么实现的&#…

在 Stable Diffusion 1.5 中 Lora, Dreambooth, Textual Inversion的详解指北

Lora, Dreambooth and Textual Inversion 说明 您是否想象过您可爱的宠物与埃菲尔铁塔合影的画面,或者想象过如何生成一张带有您朋友面孔的人工智能图像? 是的,通过稳定扩散技术的微调,这完全是可能的! 创建这些场景…

设备稳定流畅视频体验,乐鑫ESP32-S3芯片方案无线音视频传输通信

在快节奏的现代生活中,家庭安全和便利性成为了人们日益关注的话题。随着物联网技术的发展,智能家居安全系统正逐渐成为守护家庭的新选择。 家居安全如门锁和警报器,这些产品通过先进的传感器、摄像头和智能分析技术,不仅能够实时…

vulnhub-prime1

目录 靶场环境解题过程 靶场环境 项目ip靶机(prime)未知攻击机(kali)10.128.129.128 解题过程 打开靶机,我们只能看见一个登录界面,上面只有半截提示 我们首先要做的是主机发现,因为是网络适…

Flag_AGtivity_clear_top网页编程指南如何退出多activity程序

activity的启动模式:FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT。 1. 如果已经启动了四个Activity:A,B,C和D。在D Activity里,我们要跳到B Activity,同时希望C finish掉,可以在start…

安卓好软-----跳过app应用开屏广告的小工具 无需root权限

工具特点; 软件很小。而且权限不多。无需root权限。测试效果还是不错的 应用利用了安卓系统的辅助功能API,可以读取您手机屏幕上显示的所有内容,并且可以以您的名义进行屏幕点击等操作。 * 轻量无广告,不联网,也不需要任…

PostgreSQL技术内幕11:PostgreSQL事务原理解析-MVCC

文章目录 0.简介1.MVCC介绍2.MVCC常见的实现方式3.PG的MVCC实现3.1 可见性判断3.2 提交/取消 0.简介 本文主要介绍在事务模块中MVCC(多版本并发控制)常见的实现方式,优缺点以及PG事务模块中MVCC(多版本并发控制)的实现。 1.MVCC…

香港科技大学工学院2025/2026年度硕士研究生(MSc)项目招生宣讲会——哈尔滨工业大学(深圳)

🔔香港科技大学工学院2025/2026年度硕士研究生(MSc)项目招生宣讲会 🕙时间:2024年9月24日(星期二) 19:00 🏠地点:哈尔滨工业大学(深圳)T5栋教学楼603室 🎆2…

如何在ubuntu中安装code-server搭建一个在线编程环境

code-server 是一个开源项目,它允许你在浏览器中运行 Visual Studio Code。通过 code-server,你可以远程访问一个运行 Visual Studio Code 的服务器,并在任何设备上使用浏览器来编辑代码。这使得你可以在轻量级设备上(如平板电脑或…

HDMI色块移动——FPGA学习笔记13

一、方块移动原理 二、实验任务 使用FPGA开发板上的HDMI接口在显示器上显示一个不停移动的方块,要求方块移动到边界处时能够改变移动方向。显示分辨率为800*480,刷新速率为90hz。(480p分辨率为800*480,像素时钟频率Vga_clk 800x4…

EmguCV学习笔记 VB.Net 11.9 姿势识别 OpenPose

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

spring boot 定时器配置

1、首先在主类上加EnableScheduling注解 2、在应用类上加Scheduled注解,同时记得添加spring的组件注解Component,不然无法成功

JavaEE初阶——初识EE(Java诞生背景,CPU详解)

阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能帮到你! 目录 零:Java的发展背景介绍 一:EE的概念 二:计算机的构成 1:CU…