LVS集群-DR模式

概念:

LVS-DR模式,也是最常用的lVS负载方式,DR  DIRECT ROUTING 直接路由模式

负载均衡器lVS调度器,只负责请求和转发到后端的真实服务器,但是影响结果,由后端服务器直接转发给客户端,不需要经过调度器处理,减轻lVS调度器的负担,提高了性能得出稳定性

简略图:lVS-DR数据流向

lVS-DR模式的工作原理:

  1. 客户端会发送请求到vip
  2. lVS的调度器接受请求之后,根据算法选择一台真实的服务器,请求转发到后端RS,会把请求报文的目的mac地址,修改成后端真实服务器的Mac地址,转发
  3. 后端真实服务器接受请求,处理完成之后,由于后端 服务器直接把响应结果转发给客户端,响应报文中的目的Mac地址修改成客户端的Mac地址,直接把响应的报文转发发给客户端
  4. 调度器,后端真实服务器都有vip地址,调度器的地址和后端真实服务器在同一网段

详细的工作流程:
它记住了双方的Mac地址,可直接转发到后端客户端,根据Mac地址来就那些转发数据包,只能在同一网段转发

DR模式的特点:

  1. 调度器的ip和真实服务器的IP必须在同一个物理网络中
  2. 真实的服务器的IP地址可以是私有地址,也可以是工有地址。如果配置是公网,通过互联网可直接访问PIP
  3. 调度器只作为入口,但是不做网关,需要把服务器的转发功能关闭
  4. 后端真实服务器的网关也不能指向调度器,真实服务器的数据包不允许经过调度器
  5. 后端的真实服务器上,基于LO接口配置vip的IP地址

复习一下:ARP协议:网络层协议,将IP地址解析为物理Mac地址

ARP请求:主机A和主机B

ARP的核心:解决局域网内部电的通信,IP地址和MAC地址的映射

DR模式的调度器和后端服务器都在一个网段中,通过ARP请求实现局域网内部通信

常见的问题:

问题一:

由于调度器和后端真实的服务器都有相同的vip地址,导致响应冲突,ARP通信紊乱

对真实服务器进行处理,真实服务器不响应针对vip的ARP的请求

Vip地址使用的LO的虚拟地址:arp_ignore=1

后端的真实服务器只响应目的IP为本地IP,也就是RIP,后端服务器的真实IP地址,ens33的网卡提供的地址

问题二:

返回报文使用的源地址还是vip地址,调度器也是vip怎么把响应返回到客户端不经过调度器呢

后端的真实服务器做一个内核参数的优化:arp_announce=2 系统优化的意义,系统不使用IP数据包的源地址来设置arp请求,而是用真实的物理网卡

实验:如何实现DR模式的负载均衡

Test1 20.0.0.51 调度器

Test2 20.0.0.52 web集群1

Test3 20.0.0.53 web集群2

Test4  NFS

Vip地址:20.0.0.54

客户端:随机选择

首先来到调度机

配置vip地址

关闭重定向的参数

调度器的内核优化

net.ipv4.ip_forward = 0

关闭服务器作为网关的转发功能

net.ipv4.conf.all.send_redirects = 0

控制是否发送ICMP的重定向消息,禁止重定向

 net.ipv4.conf.default.send_redirects = 0

禁止默认网络接口,就是调度器的网卡发送ICMP的重定向消息

 net.ipv4.conf.ens33.send_redirects = 0

指明网卡设备,ens33不发送重定向消息

立即生效

先添加IP地址

添加web地址

配置共享服务

Test2 test3设置访问页面

Test2

Test3同样的操作

Test1配置:

Ifconfig查看一下网卡设备

命令:

route add -host 20.0.0.100 dev lo:0

把vip的地址绑定到lo:0,作为LVS的vip地址。标识,告诉调度器,进行转发请求的IP地址寻址

net.ipv4.conf.lo.arp_ignore = 1

#设置lo接口忽略来自任何接口的ARP请求

net.ipv4.conf.lo.arp_announce = 2

设置lo接口仅会响应本地的IP地址,其他的接口ARP请求,全部忽略

net.ipv4.conf.all.arp_ignore = 1

所有接口忽略来自任务接口的ARP请求

net.ipv4.conf.all.arp_announce = 2

# 所有接口仅会响应本地的IP地址的ARP请求,其他的接口的ARP请求全部忽略

Test3同样的配置

拿共享服务器访问vip地址

Vip地址只做一件事情代理地址,标识地址,转发地址,还有高可用功能

负载均衡算法:

修改VIP的调度算法:

ipvsadm -E -t 20.0.0.100:80 -s wrr

修改策略的轮训算法:

例如:

修改:

指向后端的真实服务器

Forward:负载均恒算法和负载均衡方式。Route就是DR模式

Weight:后端服务器的轮训权重

ActiveConn:活跃连接,表示调度器正在处理的活动连接数 这些连接正在进行传输数据或者正在进行交互

InActCoon:表示当前处于非活动状态的连接数,已经建立连接但是目前没有数据传输,第二个连接处于的等待状态

修改策略的轮询权重:

ipvsadm -e -t 20.0.0.100:80 -r 20.0.0.52:80 -w 3

一定要先保存,再重启

总结:

LVS负载均衡的工作方式:NAT  DR(最常用) TUN

NAT模式:优点,配置简单

          缺点,性能瓶颈

          真实服务器:所有,支持所有

          支持的网络模式:私网

          后端服务器数量:low(10-20)

DR模式:优点:性能最好,响应最好,不用经过调度器,直接到后端

         缺点:调度服务器和后端真实服务器不能跨网段

         真实服务器:NO-ARP (请求只能到真实服务器)

         支持的网络:后端服务器即可以是内网也可以是外网

         真实服务器数量:100台

Tun模式:很少用,因为收费

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年第四届MathorCup大数据竞赛(A题)|坑洼道路检测和识别|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2021年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 希望这些想法对大家的做题有一定的启发和借鉴意义。 让我们来…

LLM系列 | 22 : Code Llama实战(下篇):本地部署、量化及GPT-4对比

引言 模型简介 依赖安装 模型inference 代码补全 4-bit版模型 代码填充 指令编码 Code Llama vs ChatGPT vs GPT4 小结 引言 青山隐隐水迢迢,秋尽江南草未凋。 小伙伴们好,我是《小窗幽记机器学习》的小编:卖热干面的小女孩。紧接…

微信小程序设计之主体文件app-ts/js

一、新建一个项目 首先,下载微信小程序开发工具,具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后,注册小程序账号,具体注册方法,可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…

新的iLeakage攻击从Apple Safari窃取电子邮件和密码

图片 导语:学术研究人员开发出一种新的推测性侧信道攻击,名为iLeakage,可在所有最新的Apple设备上运行,并从Safari浏览器中提取敏感信息。 攻击概述 iLeakage是一种新型的推测性执行攻击,针对的是Apple Silicon CPU和…

简单了解一下:NodeJS的WebSocket网络编程

NodeJS的webSocket网络编程。 那什么是WebSocket呢?WebSocket是HTML5提供的一种浏览器和服务器进行通信的网络技术。两者之间,只需要做一个握手动作,就可以在浏览器和服务器之间开启一条通道,就可以进行数据相互传输。 实现WebS…

c++的4中类型转换操作符(static_cast,reinterpret_cast,dynamic_cast,const_cast),RTTI

目录 引入 介绍 static_cast 介绍 使用 reinterpret_cast 介绍 使用 const_cast 介绍 使用 dynamic_cast 介绍 使用 RTTI(运行时确定类型) 介绍 typeid运算符 dynamic_cast运算符 type_info类 引入 原本在c中,我们就已经接触到了很多类型转换 -- 隐式类型转…

线程安全问题

线程安全 简单来说,在多个线程访问某个方法或者对象的时候,不管通过任何的方式调用以及线程如何去交替执行。在程序中不做任何同步干预操作的情况下,这个方法或者对象的执行/修改都能按照预期的结果来反馈,那么这个类就是线程安全…

YOLOv7优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

💡💡💡本文改进:感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 提供多种卷积变体供使用:CBAMConv,CAMConv,CAConv,RFAConv,RFCAConv RFAConv | 亲测在多个数据集能够实现…

buuctf_练[CISCN2019 华东南赛区]Web4

[CISCN2019 华东南赛区]Web4 文章目录 [CISCN2019 华东南赛区]Web4掌握知识解题思路代码分析正式解题 关键paylaod 掌握知识 ​ 根据url地址传参结构来判断php后端还是python后端;uuid.getnode()函数的了解,可以返回主机MAC地址十六进制;pyt…

Golang 自定义函数库(个人笔记)

1.用字符串连接切片元素(类似php implode) package mainimport ("fmt""strconv""strings" )func main() {data : []int{104, 101, 108, 108, 111}fmt.Println(IntSliceToString(data, ",")) }func IntSliceToS…

汽车4S店如何在数字化管理下,提高市场竞争力

在所有人都认为疫情过后,经济形势会一路向阳,但是,实际情况出乎所有人的意料,各行各业举步维艰。 新闻爆出的各大房地产,恒大的2.4万亿让人瞠目结舌,还有碧桂园和融创,也是债台高筑了&#xff…

ToLua使用原生C#List和Dictionary

ToLua是使用原生C#List 介绍Lua中使用原生ListC#调用luaLua中操作打印测试如下 Lua中使用原生DictionaryC#调用luaLua中操作打印测试如下 介绍 当你用ToLua时C#和Lua之间肯定是会互相调用的,那么lua里面使用List和Dictionary肯定是必然的,在C#中可以调用…

shell的执行流控制

目录 1.for语句 2.条件语句 while...do语句 until...do 语句 if...then...elif...then...else...fi 语句 3.case语句 4.expect 5.break,continue,exit 1.for语句 作用:为循环执行动作 for语句结构 for //定义变量 do //使用变量&#xff0…

python+requests+unittest执行自动化接口测试!

1、安装requests、xlrd、json、unittest库 <1>pip 命令安装&#xff1a; pip install requests pip install xlrd pip install json pip install unittest <2> pycharm里安装 2、利用Page Object Model 设计理念创建六类Python Package(也可根据项目要求具体实施…

企业安全—DevSecOps概述详情

0x00 前言 SDL存在的问题在于体量过于庞大&#xff0c;不利于快速进行适配和进行&#xff0c;所以就有了DevSecOps&#xff0c;实际上是因为敏捷开发也就是DevOps的推进&#xff0c;并且坐上了云服务模式的火车&#xff0c;所以这一系列的东西都开始普及。DevSecOps作为DevOps…

什么是蓝桥杯?什么是蓝桥STEMA考试?

第十五届蓝桥大赛赛事安排? STEMA考试11月(考试时间11月26日) STEMA考试1月(2024年1月) STEMA考试3月(2024年3月) 第十五届蓝桥杯省赛(2024年4月待定) 第十五届蓝桥杯国赛(2024年5月待定) 注:以上时间具体以组委会官方发布为准。 01.蓝桥杯 蓝桥杯全国软件和…

强化学习------PPO算法

目录 简介一、PPO原理1、由On-policy 转化为Off-policy2、Importance Sampling&#xff08;重要性采样&#xff09;3、off-policy下的梯度公式推导 二、PPO算法两种形式1、PPO-Penalty2、PPO-Clip 三、PPO算法实战四、参考 简介 PPO 算法之所以被提出&#xff0c;根本原因在于…

Python----break关键字对while...else结构的影响

案例&#xff1a; 女朋友生气&#xff0c;要求道歉5遍&#xff1a;老婆大人&#xff0c;我错了。道歉到第三遍的时候&#xff0c;媳妇埋怨这一遍说的不真诚&#xff0c;是不是就是要退出循环了&#xff1f;这个退出有两种可能性&#xff1a; ① 更生气&#xff0c;不打算原谅…

【Qt之QSetting】介绍及使用

概述 QSettings类提供了一种持久的、与平台无关的应用程序设置存储功能。 用户通常期望一个应用能在不同会话中记住其设置&#xff08;窗口大小和位置&#xff0c;选项等&#xff09;。在Windows上&#xff0c;这些信息通常存储在系统注册表中&#xff1b;在macOS和iOS上&…

Jenkins自动化测试

学习 Jenkins 自动化测试的系列文章 Robot Framework 概念Robot Framework 安装Pycharm Robot Framework 环境搭建Robot Framework 介绍Jenkins 自动化测试 1. Robot Framework 概念 Robot Framework是一个基于Python的&#xff0c;可扩展的关键字驱动的自动化测试框架。 它…