【Web服务应用】部署LVS-DR集群

news2024/11/16 5:50:20

LVS-DR集群

  • 一、LVS-DR工作原理
  • 二 、DR数据包流向分析
    • 2.1DR模式中名词解释
    • 2.2数据包流向
  • 三、ARP问题
  • 3.1问题一:IP 地址冲突
    • 3.2 问题二:第二次再有访问请求
  • 四、LVS-DR实战

一、LVS-DR工作原理

  • LVS-DR(Linux Virtual Server Director Server)工作模式 ,是生产环境中最常用的一 种工作模式。

  • LVS-DR 模式,Director Server 作为群集的访问入口,不作为网关使用

  • 节点 Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过 Director
    Server。

  • 为了响应对整个群集的访问,Director Server 与 Real Server 都需要配置 VIP 地址。

在这里插入图片描述

客户机发起请求,经过调度服务器(lvs),经过算法调度,去访问真实服务器(RS)

由于不原路返回,客户机不知道,真实主机的ip地址,

所以只能通过调度服务器的外网ip(vip)去反回报文信息

二 、DR数据包流向分析

2.1DR模式中名词解释

名词解释
DS(Director Server)前端负载均衡节点服务器
RS(Real SERVER)真正提供服务的后端服务器
RIP(RealServer IP)后端服务器的ip地址
DIP调度器和后端服务器通信的ip
CIP(Client IP)源IP(客户端的IP)
VIP(Virtual IP)负载均衡对外提供访问的IP地址,一般负载均衡IP都会通过Viirtual IP实现高可用
源MAC地址DS调度器的MAC地址
目的MAC地址RS真正服务器的MAC地址

2.2数据包流向

在这里插入图片描述
(1) 客户端 发送请求到 Director Server,请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP) 到达内核空间。
(2) Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
(3) 内核空间判断数据包的目标 IP 是本机 VIP,此时 IPVS 比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源MAC 地址为 Director Server 的 MAC 地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源IP 地址与目标 IP 地址没有改 变,然后将数据包发送给 Real Server。
(4) 到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数 据包重新封装报文(源 IP 地址为VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理 网卡然后向外发出。
(5) Real Server 直接将响应报文传送到客户端。

三、ARP问题

3.1问题一:IP 地址冲突

在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地址。势必会造成各服务器ARP通信的紊乱

  • 当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收到ARP广播
  • 只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播

解决方法:

  • 对节点服务器进行处理,使其不响应针对VIP的ARP请求

  • 用虚接口lo:0承载VIP地址

  • 设置内核参数arp_ ignore=1: 系统只响应目的IP为本地IP的ARP请求

路由器发送ARP请求(广播)
ARP---->广播去找ip地址解析成mac地址 默认使用调度服务器上的外网地址(vip地址)响应,
需要在真实服务器上修改内核参数
使真实服务器只对自己服务器上的真实IP地址响应ARP解析。

3.2 问题二:第二次再有访问请求

  • RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址,路由器收到ARP请求后,将更新ARP表项,原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址。路由器根据ARP表项,会将新来的请求报文转发给RealServer,导致Director的VIP失效

解决方法:

  • 对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

四、LVS-DR实战

在这里插入图片描述

主机名地址
VIP地址192.168.243.188
DIP192.168.243.104
RIP243.102 、243.103
tomcat服务器243.107

配置tomcat服务器,负责动态页面

详情见此博客

配置节点服务器

(1)七层反向代理,静态页面
详情看此博客
(2)配置虚拟IP地址

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.243.188
NETMASK=255.255.255.255						#注意:子网掩码必须全为 1
# 指定网卡重启
ifup lo:0
ifconfig lo:0
#配置路由转发规则
route add -host 192.168.243.188 dev lo:0
#加入到系统启动文件中
vim /etc/rc.local
/sbin/route add -host 192.168.243.188 dev lo:0
chmod +x /etc/rc.d/rc.local

(2)调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突

vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

在这里插入图片描述
配置调度服务器

.配置负载调度器

#配置防火墙添加ipvsadm模块
systemctl stop firewalld.service
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

(1)配置虚拟 IP 地址(VIP:192.168.243.188)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0				#若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.80.188
NETMASK=255.255.255.255
ifup ens33:0
ifconfig ens33:0

在这里插入图片描述

(2)调整 proc 响应参数

#由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

在这里插入图片描述

(3)配置负载分配策略

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t 192.168.243.188:80 -s rr
ipvsadm -a -t 192.168.243.188:80 -r 192.168.80.102:80 -g			#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.243.188:80 -r 192.168.80.103:80 -g
ipvsadm

ipvsadm -ln					#查看节点状态,Route代表 DR模式

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Pandas的groupby用法说明

Pandas的groupby用法说明 1、功能说明 按官方文档说明groupby功能,可以参考与SQL中的分组操作进行理解。 By “group by” we are referring to a process involving one or more of the following steps: Splitting the data into groups based on some criteri…

VMware® vSphere虚拟化平台限制虚拟机网卡速率一例

本文介绍VMware vSphere对虚拟服务器进行网卡限速的案例 一、案例背景 目前有一套生产环境的虚拟化平台基于VMware vSphere构建。宿主机外连网卡均为主、备各10Gb,核心交换机出口至外部网络带宽也是10Gb。某业务系统使用nginx搭建了两台固件升级服务器对外提供下载…

Spark RDD的创建

文章目录 一、RDD为何物(一)RDD概念(二)RDD示例(三)RDD主要特征 二、做好准备工作(一)准备文件1、准备本地系统文件2、启动HDFS服务3、上传文件到HDFS (二)启…

免费升级到 iOS 17 Developer Beta:官方Apple Store升级方案与爱思助手方法比较

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

【unity】几种常用的拖拽方法(内置方法 + 接口 + Event Trigger组件)

前言 在Unity中实现拖拽的方法有多种,以下是几种常见的方法和它们的优缺点 1. 鼠标按键的点击事件 Input.GetMouseButtonDown和Input.GetMouseButtonUp 方法可以监测用户鼠标按键的点击事件,通过检测鼠标按钮的状态来实现拖拽效果。用户通过鼠标进行拖…

DolphinScheduler3.1.4 集群部署

文章目录 DolphinScheduler3.1.4 集群部署一、解压 dolphinScheduler3.1.4 安装包二、复制 mysql8.0.16 的驱动三、创建mysql数据库用户和权限四、配置 dolphinscheduler_env.sh 文件五、初始化元数据六、配置 install_env.sh 文件七、安装 dolphinScheduler DolphinScheduler3…

2核4G服务器阿里云4M和腾讯云5M性能价格对比

阿里云轻量应用服务器2核4G4M带宽297.98元12个月,腾讯云轻量2核4G5M服务器168元一年,628元3年,2核4G轻量应用服务器阿里云和腾讯云怎么选择?哪个性能比较好?阿腾云分享轻量应用服务器2核4G配置阿里云和腾讯云CPU、带宽…

插件分享 | Headshot ⼀击即中,对指定URL进行漏洞批量扫描

前言:在⼀次真实的攻防场景中,我们发现了⼀个存在 Struts2 漏洞的地址,这个地址在我们通过 Fuzz 获得的⼆级⽬录下,这使得 Goby 的爬⾍没有办法爬取到这⼀个⻚⾯,但是我们通过其它 Struts2 专扫⼯具检测发现这个地址确…

入行软件测试一年了,薪资涨到18K,太强了...

梦的开始 收到了领导的通知,说我这一年来表现的很优秀,准备给我加工资。今天收到工资到账短信,扣掉税,比以往多了3k多,再加上年终奖这些,月薪也到了18k,真的太开心了。 仔细想想这一年来&#…

2023软件测试面试热点问题,你真的了解吗?

收集了2023年所有朋友软件测试的面试题后,我特意整理出了7个高频出现的面试题,一起来看看。 高频问题1:请自我介绍下? 高频问题2:请介绍下最近做过的项目? 高频问题3:请介绍下你印象深刻的bug&a…

MSE播放fragmented mp4 问题记录

一、在使用MSE 播放视频的时候发现firfox能播放,chrome 不能播放 原因:两边要求的fragmented mp4的格式要求不一样 , 参照Transcoding assets for Media Source Extensions - Web APIs | MDN 用ffmpeg 转成 对应的格式 firefox ffmpeg -i mp4-264.mp4 -movflags f…

DatenLord开源产品技术分享 | Xline源码解读 No.2

传统单数据中心解决方案无法满足跨数据中心的场景对性能和一致性的需求。DatenLord推出开源分布式KV存储Xline,针对多数据中心场景,可以实现数据的高性能跨云、跨数据中心共享访问,并且保证数据的一致性。 本期源码解读将聚焦Xline的Lease机…

技术赋能-混流编排功能,助力京东618直播重保 | 京东云技术团队

每每到618、双11这样的大型活动的时候,每天都有几个重要的大v或者品牌直播需要保障。 以往的重点场次监播方式是这么造的: 对每路直播的源流、各档转码流分别起一个ffplay播放窗口,再手动调整尺寸在显示器桌面进行布局,排到一屏…

Vue使用prerender-spa-plugin做预渲染,用于SEO优化相关内容

原因:像vue、react、angular开发的都是spa应用,他只有一个页面index,他们都是内加载,动态加载切换路由的,所以你再多页面百度蜘蛛只能爬到首页 1.解决方案 (1)vue.js官网提供的 SSR(服务端渲染) 这种方案呢学习成本高,对于刚开始的新手来说可能有点难度,基本还得重…

WTN6040-8S语音播报芯片在抽油烟机上的应用- 提升厨房智能化体验

在当今快节奏的生活中,智能家居技术的发展不仅为我们的生活带来了便利,更为我们的家庭安全和舒适提供了全新的解决方案。作为现代厨房的关键设备,油烟机在净化空气、排除异味和保护家庭健康方面起着重要的作用。而加入WTN6040-8S语音播报芯片…

如何配置IP地址

一.自动获取IP 1.dhclient 2.ifconfig 通过这个命令可以查看系统有几块网卡和网卡的IP。 如果您的Linux有多块网卡,那么在Linux中它会显示成eth1, eth2 依此类推 二.手动配置IP 如果您的虚拟机不能自动获取IP,那么只能手动配置,配置方法为&am…

项目管理用什么工具?甘特图给你答案

在项目管理中,项目的实施需要制定一个完善的项目计划。然而,在实际的项目管理工作中,计划变化快,总会产生各种问题和突发状况,导致管理问题层出不穷。 例如,项目团队人数多,团队协作混乱&…

SOP电子作业指导书系统SaaS部署及应用分析

随着互联网技术的不断发展,越来越多的企业开始采用SaaS(Software as a Service)模式来部署和应用各种软件系统。其中,SOP电子作业指导书系统是一种非常实用的工具,可以帮助企业有效地管理和指导员工的工作。 SOP电子作…

python实现简单的多机并行调度

场景说明 我们有10个任务需要主动发送到3台机器上并行执行,某一台机器执行完成再为此机器分配下一个任务 方案一:消息队列(被动调度) 此方案可以使用celeryredis实现简单的生产者消费者模型,步骤如下: …

关于单片机的时钟浅谈及STM32F103/F030单片机的内外时钟切换问题

绪论 本文主要讲解单片机的时钟系统的相关知识,并进行超频测试,同时介绍如何在STM32F0单片机上进行内外时钟的切换,在不使用外部晶振或者外部晶振不启动时自动切换内部时钟的方法。 一、杂谈 问题来源于群里的一次问答: 诚然&…