当前位置: 首页 > news >正文

LVS-DR模式集群构建过程演示

一、工作原理

LVS的工作原理

1.当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间

2.PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链

3.IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发往POSTROUTING链

4.POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送给后端的服务器

LVS-DR模式的工作原理

首先,来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将请求发送到集群节点或真实服务器。然后,集群某个节点将回复该数据包,并将该数据包直接发送到客户端计算机(不经过director),并且以此回复数据包使用的目的VIP 地址作为源IP地址。因此,实际上是客户计算机被“欺骗”了,客户计算机始终认为它正与同一台计算机对话,而实际上它正在发送请求数据包给一台计算机(LB),并从另一台计算机(RS)接收回复的数据包。

 

二、构建过程

1.环境准备

准备四台主机

分别作为客户机、LVS调度器、RS服务器web1、RS服务器web2

主机名IP
客户机client192.168.198.140
LVS调度器lvs192.168.198.141
RS服务器web1web1192.168.198.100
RS服务器web2web2192.168.198.200

关闭防火墙和selinux服务

分别将四个主机的防火墙和selinux服务都关闭

下载httpd软件包

在web1和web2服务器上安装httpd软件包,便于后续测试

然后分别在这两个主机上都编写测试页面,并启动服务

在客户机上检测

2.配置虚拟IP(VIP)

配置lvs的虚拟IP

选择一个同网段的,且未被占用的IP做为VIP

我的网卡名和IP网段如上,所以自己根据自己的实际情况来配置

ens33后面跟的是子接口编号,自己取

这里我选择192.168.198.111做为我的VIP

要保证客户端能ping通你的VIP

配置RS服务器的VIP

将虚拟IP绑定到web1和web2的loopback接口上

注意:这里RS服务器的VIP掩码必须是32位!!

并添加本机访问虚拟IP的路由

web2别忘了,也是一样

  

3.抑制ARP响应 

我们之所以做ARP抑制,是因为如果不做就会发生如下图的情况

 

真实服务器RS也有VIP这个IP,所以也会去响应,那么就会和负载调度器一起去响应客户端的请求,所以我们需要去抑制ARP响应

echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

在RS服务器上抑制ARP响应

web1 

web2

4.下载ipvsadm工具并使用

在lvs负载调度器上下载ipvsadm工具

yum install ipvsadm

ipvsadm常用参数相关参数说明
-A添加虚拟服务器
-t设置集群地址(VIP)
-s设置负载调度算法
-a添加真实服务器
-d删除真实服务器
-r指定真实服务器
-m | -g | -i分别使用NAT | DR | TUN 模式
-w为节点服务器设置权重,默认为1

 在lvs负载调度器上,配置添加LVS服务并增加两台RS

采用最简单的轮询算法演示(rr)

查看配置

5.测试

在客户机上测试


最终效果就如图

相关文章:

LVS-DR模式集群构建过程演示

一、工作原理 LVS的工作原理 1.当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间 2.PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链 3.IPVS是工作在IN…...

UML-A 卷-知识考卷

UML-A 卷-知识考卷 UML有多少种图,请列出每种图的名字: 常用的几种UML图: 类图(Class Diagram):类图是描述类、接口、关联关系和继承关系的图形化表示。它展示了系统中各个类之间的静态结构和关系。时序…...

BpBinder与PPBinder调用过程——Android开发Binder IPC通信技术

在Android系统中,进程间通信(IPC)是一个非常重要的话题。Android系统通过Binder IPC机制实现进程间通信,而Binder IPC通信技术则是Android系统中最为重要的进程间通信技术之一。本文将介绍Binder IPC通信技术的原理,并…...

篇十五:模板方法模式:固定算法的步骤

篇十五:"模板方法模式:固定算法的步骤" 设计模式是软件开发中的重要知识,模板方法模式(Template Method Pattern)是一种行为型设计模式,用于定义一个算法的骨架,将算法中一些步骤的具…...

web-ssrf

目录 ssrf介绍 以pikachu靶场为例 curl 访问外网链接 利用file协议查看本地文件 利用dict协议扫描内网主机开放端口 file_get_content 利用file协议查看本地文件: fsockopen() 防御方式: ssrf介绍 服务器端请求伪造,是一种由攻击者构造形成…...

【HarmonyOS】【续集】实现从视频提取音频并保存到pcm文件功能(API6 Java)

【关键字】 视频提取类Extractor、视频编解码、保存pcm文件、getAudioTime 【背景和问题】 上篇中介绍了从视频提取音频并保存到pcm文件功能,请参考文档:https://developer.huawei.com/consumer/cn/forum/topic/0209125665541017202?fid0101591351254…...

MySQL为什么要使用 B+Tree 作为索引结构?

MySQL为什么要使用 BTree 作为索引结构? 基本情况 常规的数据库存储引擎 ,一般都是采用 B 树或者 B树来实现索引的存储。B树是一种多路平衡树,用这种存储结构来存储大量数据,它的整个高度 会相比二叉树来说 ,会矮很多…...

Three.js阴影

目录 Three.js入门 Three.js光源 Three.js阴影 使用灯光后,场景中就会产生阴影。物体的背面确实在黑暗中,这称为核心阴影(core shadow)。我们缺少的是落下的阴影(drop shadow),即对象在其他…...

VSCode Remote-SSH (Windows)

1. VSCode 安装 VSCode 2. 安装扩展 Remote SSH Getting started Follow the step-by-step tutorial or if you have a simple SSH host setup, connect to it as follows: Press F1 and run the Remote-SSH: Open SSH Host… command.Enter your user and host/IP in the …...

现代C++中的从头开始深度学习【1/8】:基础知识

一、说明 提及机器学习框架与研究和工业的相关性。现在很少有项目不使用Google TensorFlow或Meta PyTorch,在于它们的可扩展性和灵活性。也就是说,花时间从头开始编码机器学习算法似乎违反直觉,即没有任何基本框架。然而,事实并非…...

Jwt(Json web token)——使用token的权限验证方法 用户+角色+权限表设计 SpringBoot项目应用

目录 引出使用token的权限验证方法流程 用户、角色、权限表设计权限表角色表角色-权限关联表用户表查询用户的权限(四表联查)数据库的视图 项目中的应用自定义注解拦截器controller层DTO返回给前端枚举类型的json化日期json问题 实体类-DAO 总结 引出 1.…...

SpringWeb项目核心功能总结

SpringWeb项目核心功能总结 文章目录 SpringWeb项目核心功能总结1.浏览器与Java程序的连接(个人偏好使用RequestMapping)2.参数的传入3.结果的返回请求转发和请求重定向的区别 核心功能用到的注解: RestControllerControllerResponseBodyRequ…...

Django------信号

Django 框架包含了一个信号机制,它允许若干个发送者(sender)通知一组接收者(receiver)某些特定操作或事件(events)已经发生了, 接收者收到指令信号(signals)后再去执行特定的操作。本文主要讲解Django信号(…...

HTML5 中新增了哪些表单元素?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ HTML5 中新增了的表单元素⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚…...

[考研机试] KY20 完数VS盈数 清华大学复试上机题 C++实现

描述 一个数如果恰好等于它的各因子(该数本身除外)子和,如:6321。则称其为“完数”;若因子之和大于该数,则称其为“盈数”。 求出2到60之间所有“完数”和“盈数”。 输入描述: 题目没有任何输入。 输出描述&#…...

re学习(30)攻防世界-hackme(代码复原2)

思路: 1.输出成功,v26不为0,说明关系式:v21((unsigned __int8)v24 ^ v20) →2.在汇编代码第37行,输入v16v20,所以求的值为v20 →3.根据关系式,求的值v20v21^v24 →4.v21在第汇编代码第36行也可以提取出来…...

Go Windows下开发环境配置(图文)

Go Windows下开发环境配置 下载 安装 点击下载的安装包进行安装。安装路径可以选择到自己的目录。 环境变量配置 GOROOT:(指定到安装目录下) GOPATH:(是工作空间) path:在安装时已经添加了…...

【人工智能概述】python妙用 __str__()

【人工智能概述】python妙用 str() 文章目录 【人工智能概述】python妙用 __str__()一.python内置函数__str__() 一.python内置函数__str__() 通过自定义__str__()函数可以打印对象中相关的内容。 class Person(object):def __init__(self, name tom, age 10):self.name n…...

android kernel移植5-RK3568

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1.添加开发板默认配置文件2.添加开发板默认设备树2.1复制设备树2.2指定设备树前言 前面我们已经学会了移植uboot,其实就是把瑞芯微的关于uboot的一些文件的名字和编译指定的文件改为自己定义…...

C++——string类介绍

我们知道在C语言里,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数, 但是这些库函数与字符串是分离开的,而且底层空间需要用户自己管理,可 能还会越界访问。 但是在C…...

企业级实时数据采集方案:构建高性能直播弹幕监控系统

企业级实时数据采集方案:构建高性能直播弹幕监控系统 【免费下载链接】BarrageGrab 抖音快手bilibili直播弹幕wss直连,非系统代理方式,无需多开浏览器窗口 项目地址: https://gitcode.com/gh_mirrors/ba/BarrageGrab 在直播电商、游戏…...

三分钟永久备份QQ空间:让青春记忆永不褪色的终极方案

三分钟永久备份QQ空间:让青春记忆永不褪色的终极方案 【免费下载链接】QZoneExport QQ空间导出助手,用于备份QQ空间的说说、日志、私密日记、相册、视频、留言板、QQ好友、收藏夹、分享、最近访客为文件,便于迁移与保存 项目地址: https://…...

苹果M1/M2芯片跑自监督学习:统一内存与Metal后端实战指南

1. 项目概述:为什么苹果自研芯片正在悄悄改写AI训练的底层逻辑最近三个月,我陆续在三台不同配置的Mac上跑通了SimCLR、BYOL和MoCo v3这三套主流自监督学习(SSL)模型的完整训练流程——不是跑个demo,而是用ImageNet-1K子…...

k-Mode聚类算法原理与手写实现:专治分类数据的无监督学习利器

1. 项目概述:为什么k-Mode不是k-Means的“换皮版”,而是一把专治分类数据的手术刀你有没有遇到过这样的场景:手头有一批客户数据,字段全是“性别:男/女”、“城市:北京/上海/广州”、“会员等级&#xff1a…...

谷歌推YouTube Shorts Remix功能:借Gemini重设计视频,创作者可自主开关

YouTube Shorts Remix:借Gemini开启视频重塑新玩法谷歌新推出的YouTube Shorts Remix功能引人注目,借助Gemini Omni,用户能对视频片段进行重新设计。在YouTube Shorts视频底部点击混音图标,便出现“重新构思”选项。用户可让Gemin…...

Appium环境搭建实战手册:解决JDK、Android SDK与Node.js兼容性问题

1. 为什么Appium环境搭建总让人卡在第一步?——不是工具不行,是路径没走对“Appium环境搭好了吗?”这句话我过去三年在测试团队晨会里至少听过27次。不是新人问的,是干了五年自动化测试的老同事皱着眉甩出来的。他刚重装系统&…...

大二学完 MyBatis 再学 MyBatis-Plus,我踩过的 10 个坑

作者:逆境不可逃 技术永无止境 希望我的内容可以帮助到你!!!!! 本节目属于专栏《后端新手谈》:https://blog.csdn.net/2401_87662859/category_13141790.html 大家吼 ! 我是 逆境不可逃 今天给…...

UxPlay应用场景:从家庭娱乐到企业演示的全面解决方案

UxPlay应用场景:从家庭娱乐到企业演示的全面解决方案 【免费下载链接】UxPlay AirPlay Unix mirroring server 项目地址: https://gitcode.com/gh_mirrors/uxp/UxPlay UxPlay是一款功能强大的AirPlay Unix镜像服务器,它让Linux、macOS和Unix系统能…...

Material File Picker深度解析:从设计理念到Android文件选择器的系统构建

Material File Picker深度解析:从设计理念到Android文件选择器的系统构建 【免费下载链接】MaterialFilePicker Picking files since 2015 项目地址: https://gitcode.com/gh_mirrors/ma/MaterialFilePicker 如何在Android应用中构建一个既美观又实用的文件选…...

瑞萨RZ系列核心板选型指南:从A55到RISC-V的嵌入式开发实战

1. 项目概述:当国产方案商遇上日系芯片巨头在嵌入式开发这个圈子里混久了,你会发现一个有趣的现象:很多项目在启动时,面临的第一个灵魂拷问往往不是“功能怎么实现”,而是“平台怎么选”。是追求极致的性能&#xff0c…...