LVS DR模式搭建

目录

一、DR模式概述

一、与NET模式的区别

二、操作命令图

 三、搭建流程

一、首先配置三台虚拟机并配置环境(关闭防火墙,宽容模式)

二、ping通百度

三、在115.3的(lvs)虚拟机上安装 ipvsadm

四、调整ARP参数

五、配置虚拟IP地址

 六、加载 ip_vs模块

 七、启动 ipvsadm服务

八、在虚服务器添加真实服务器

 九、配置两个节点

十、调整从节点的ARP参数

 十一、配置虚拟IP地址

 十二、添加回环路由

 四、验证结果

五、验证抓包结果


一、DR模式概述

LVS(Linux Virtual Server)中的DR模式(Direct Routing)是其负载均衡的一种工作模式。在DR模式中,LVS通过修改目标服务器的网络配置,将来自客户端的请求直接发送到后端服务器,而不经过负载均衡器。

下面是DR模式的工作原理及其特点:

1. 工作原理:
   - 当客户端发送请求到负载均衡器时,负载均衡器会检查后端服务器的状态和负载情况,并选择一个合适的后端服务器。
   - 负载均衡器会将请求的目标地址修改为后端服务器的IP地址,并转发请求给客户端。
   - 后端服务器接收到请求后,响应数据直接返回给客户端,绕过了负载均衡器。

2. 特点:
   - 负载均衡器只在请求开始和响应结束时参与通信,不会对请求的数据进行修改,减少了负载均衡器的开销。
   - 后端服务器拥有自己的真实IP地址,可以直接与客户端进行通信,提高了系统性能和传输效率。
   - 负载均衡器不需要对请求进行NAT(Network Address Translation)转换,减少了网络转发的开销。

需要注意的是,DR模式要求负载均衡器和后端服务器在同一子网内,并且后端服务器需要配置回应ARP请求的能力。此外,负载均衡器通常会通过一些其他技术,如IP路由表、链路层技术等,将从后端服务器返回的响应数据正确地路由回给客户端。

总之,LVS的DR模式在负载均衡中提供了一种高效的、直接路由到后端服务器的解决方案,可以提高系统的性能和扩展性。

一、与NET模式的区别

LVS(Linux Virtual Server)中的DR模式(Direct Routing)和NET模式是其负载均衡的两种常见工作模式,它们在负载均衡的实现方式和一些技术细节上存在区别。

以下是LVS DR模式和NET模式的主要区别:

1. 工作方式:
   - DR模式:在DR模式中,LVS将客户端请求的目标IP地址修改为后端服务器的真实IP地址,并直接将请求转发给后端服务器。后端服务器直接与客户端进行通信,绕过负载均衡器。
   - NET模式:在NET模式中,LVS会将客户端请求的目标IP地址修改为负载均衡器的虚拟IP地址,然后通过IP转发技术(如IP Masquerading或IP Tunneling)将数据转发给后端服务器。后端服务器经过负载均衡器将响应数据返回给客户端。

2. 网络配置:
   - DR模式:在DR模式下,后端服务器必须要配置回应ARP请求的能力,并且负载均衡器和后端服务器需要在同一子网内,以确保请求可以正确路由到后端服务器。
   - NET模式:在NET模式下,后端服务器无需配置回应ARP请求的能力,并且负载均衡器和后端服务器可以处于不同的网络子网中。

3. 性能和效率:
   - DR模式:由于负载均衡器不需要主动转发请求和响应数据,DR模式在性能和效率上通常更高。后端服务器直接用自己的IP地址与客户端通信,减少了负载均衡器的开销。
   - NET模式:NET模式需要负载均衡器主动参与请求和响应的转发,因此相比DR模式,可能会在性能和效率上略有损失。

需要根据具体的应用场景和需求来选择DR模式还是NET模式。DR模式适用于后端服务器和负载均衡器在同一子网内的情况,同时对性能要求较高的场景。而NET模式更适用于后端服务器和负载均衡器位于不同网络子网的场景,或者需要使用特定的转发技术的情况。

二、操作命令图

 三、搭建流程

一、首先配置三台虚拟机并配置环境(关闭防火墙,宽容模式)

主lvs安装ipvsadm、两台从节点需要安装epel源和nginx

三台虚拟机的ip分别为  192.168.115.3

                                     192.168.115.4

                                      192.168.115.5

二、ping通百度

 

三、在115.3的(lvs)虚拟机上安装 ipvsadm

四、调整ARP参数

 

安装成功后,在115.3的(lvs)虚拟机上 调整ARP参数

 

五、配置虚拟IP地址

 更改ens33:0

重启并查看地址 ip a 查看 (在两个节点上配置子网掩码是32,在lvs上配置子网掩码是24

 六、加载 ip_vs模块

 七、启动 ipvsadm服务

要注意直接输入 systemctl start ipvsadm 启动会报错。

 错误原因是缺少文件或目录

 创建文件和目录 

再次启动,则成功

八、在虚服务器添加真实服务器

 提示这个界面说明 LVS 配置完成

保存策略并查看

 

 九、配置两个节点

vim /etc/sysconfig/network-scripts/ifcfg-ens33

十、调整从节点的ARP参数

 

 

 

 十一、配置虚拟IP地址

 

 验证  (从节点子网掩码变成了32,两台从节点都要这么显示) 

 十二、添加回环路由

这是一个用于添加路由的命令。具体来说,它添加了一个到主机(host)地址192.168.115.200/32的路由,使用了一个名为lo:0的虚拟网络接口设备来传送数据。这条路由指示任何发送到192.168.115.200/32的数据包都应通过虚拟网络接口设备lo:0发送。这通常用于创建本地环回或回环接口

 

 route -n

 四、验证结果

进入网站输入 192.168.115.200 测试

 再次刷新

 会 1 2 来回切换

五、验证抓包结果

 成功 

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【云原生】Docker私有仓库 RegistryHabor

目录 1.Docker私有仓库(Registry) 1.1 Registry的介绍 1.2 Registry的部署 步骤一:拉取相关的镜像 步骤二:进行 Registry的相关yml文件配置(docker-compose) 步骤三:镜像的推送 2. Regist…

自动化测试之Selenium

自动化测试Selenium介绍环境搭建如何操作浏览器定位元素css类选择器定位元素xpath定位元素css选择语法xpath选择语法 常用操作添加等待打印信息浏览器更多操作键盘事件鼠标事件特殊场景只选复选框iframe标签下拉框处理弹窗显示上传文件 关闭浏览器切换窗口截图 自动化测试 自动…

kafka复习:(11)auto.offset.reset的默认值

在ConsumerConfig这个类中定义了这个属性的默认值,如下图 也就是默认值为latest,它的含义是:如果没有客户端提交过offset的话,当新的客户端消费时,把最新的offset设置为当前消费的offset. 默认是自动提交位移的,每5秒…

Java后端开发面试题——消息中间篇

RabbitMQ-如何保证消息不丢失 交换机持久化: Bean public DirectExchange simpleExchange(){// 三个参数:交换机名称、是否持久化、当没有queue与其绑定时是否自动删除 return new DirectExchange("simple.direct", true, false); }队列持久化…

HTML番外篇(五)-移动端适配

一、媒体查询 1.认识媒体查询 媒体查询是一种提供给开发者针对不同设备需求进行定制化开发的一个接口。 你可以根据设备的类型(比如屏幕设备、打印机设备)或者特定的特性(比如屏幕的宽度)来修改你的页面。 媒体查询的使用方式主要有三种:…

人工智能技术

人工智能技术是什么? 人工智能技术(Artificial Intelligence Technology,AI技术)是一种模仿人类智能和思维方式的计算机技术,旨在使计算机能够执行需要人类智能才能完成的任务。这些任务包括理解自然语言、解决问题、…

鼠标拖拽盒子移动

目录 需求思路代码页面展示【补充】纯js实现 需求 浮动的盒子添加鼠标拖拽功能 思路 给需要拖动的盒子添加鼠标按下事件鼠标按下后获取鼠标点击位置与盒子边缘的距离给 document 添加鼠标移动事件鼠标移动过程中,将盒子的位置进行重新定位侦听 document 鼠标弹起&a…

c#设计模式-创建型模式 之 原型模式

概述 原型模式是一种创建型设计模式,它允许你复制已有对象,而无需使代码依赖它们所属的类。新的对象可以通过原型模式对已有对象进行复制来获得,而不是每次都重新创建。 原型模式包含如下角色: 抽象原型类:规定了具…

Flink流批一体计算(16):PyFlink DataStream API

目录 概述 Pipeline Dataflow 代码示例WorldCount.py 执行脚本WorldCount.py 概述 Apache Flink 提供了 DataStream API,用于构建健壮的、有状态的流式应用程序。它提供了对状态和时间细粒度控制,从而允许实现高级事件驱动系统。 用户实现的Flink程…

Docker微服务实战

文章目录 业务需求IDEA编写代码编写Dockerfile构建镜像运行容器网页端访问测试 业务需求 利用Docker部署应用服务,实现在网页端通过输入地址 ip:端口/hello/docker,页面显示hello docker ! IDEA编写代码 创建springboot项目 网上很多教程,此步骤省略……

校园跑腿小程序开发方案详解

校园跑腿小程序App的功能有哪些? 1、用户注册与登录 用户可以通过手机号、社交账号等方式进行注册和登录,以便使用跑腿服务。 2、下单与发布任务 用户可以发布各类跑腿任务,包括食品外卖、快递代收、文件送达、帮我买、帮我取、帮我送等等…

运放的分类、运放的参数

一、运放的分类 运放按功能分为通用运放与专用运放(高速运放、精密运放、低IB运放等)。 1.1通用运放 除廉价外,没有任何最优指标的运放。 例:uA741,LM324,TL06X,TL07X、TL08X等 国外知名运放…

Docker搭建elasticsearch+kibana测试

最近需要做大数据画像,所以先简单搭建一个eskibana学习使用,记录一下搭建过程和遇到的问题以及解决办法 1.拉取es和kibana镜像 在拉取镜像之前先搜索一下 elasticsearch发现是存在elasticsearch镜像的,我一般习惯性拉取最新镜像&#xff0c…

C#__自定义类传输数据和前台线程和后台线程

// 前台线程和后台线程 // 默认情况下,用Thread类创建的线程是前台线程。线程池中的线程总是后台线程。 // 用Thread类创建线程的时候,可以设置IsBackground属性,表示一个后台线程。 // 前台线程在主函数运行结束后依旧执行,后台线…

b树/b+树、时间轮、跳表、LSM-Tree

b树、b树:关系型数据库核心存储结构 1、为什么磁盘数据存储结构用B树、而不用红黑树 磁盘每次读取不是读一个节点、是返回一页数据。 红黑树每次遍历一个节点排除一半数据。 B树通常映射相邻的磁盘页数据。4K mysql索引一个节点隐射16k故而映射4倍,故…

【C语言】扫雷游戏(可展开)——超细教学

🚩纸上得来终觉浅, 绝知此事要躬行。 🌟主页:June-Frost 🚀专栏:C语言 🔥该篇将运用数组来实现 扫雷游戏。 目录: 🌟思路框架测试游戏 🌟测试部分函数实现&am…

云计算在线实训系统建设方案

一、 人工智能与云计算系统概述 人工智能(Artificial Intelligence,简称AI)是一种模拟人类智能的科学和工程,通过使用计算机系统来模拟、扩展和增强人类的智能能力。人工智能涉及多个领域,包括机器学习、深度学习、自然…

Web 开发 Django 管理工具

上次为大家介绍了 Django 的模型,通过模型就可以操作数据库,从而就可以改变页面的展示内容,那问题来了,我们只能通过手动编辑模型文件来配置模型吗?当然不是,Django 为我们提供了强大的工具,可以…

优化Python代理爬虫的应用

当我们在资源受限的环境中使用Python代理爬虫时,我们需要采取一些优化措施,以确保程序的高效性和稳定性。在本文中,我将分享一些关于如何优化Python代理爬虫在资源受限环境下的应用的实用技巧。 首先我们来了解,哪些情况算是资源…