【博客547】keepalived实现vip的原理剖析

news2025/1/18 4:37:07

keepalived实现vip的原理剖析

keepalived实现vip的原理:vrrp + gratuitous arp

1、vrrp

vrrp更多细节参考:vrrp技术白皮书

相关术语:
在这里插入图片描述
VRRP工作过程

VRRP的工作过程为:

1、虚拟路由器中的路由器根据优先级选举出Master。Master路由器通过发送欺骗ARP报文,将自己的虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任 务;(假如路由器的优先级一样,就根据主机的IP地址大小进行选择,IP地址大的是master)

2、Master路由器周期性发送VRRP报文,以公布其配置信息(优先级等)和工作状况;

3、如果Master路由器出现故障,虚拟路由器中的Backup路由器将根据优先级重新选举新的Master;因为可能会有多个Backup路由器。

4、虚拟路由器状态切换时,Master路由器由一台设备切换为另外一台设备,新的Master路由器只是简单地发送一个携带虚拟路由器的MAC地址和虚拟IP地址信息的欺骗ARP报文,这样就可以更新与它连接的主机或设备中的ARP相关信息。网络中的主机感知不到Master路由器已经切换为另外一台设备。

5、Backup路由器的优先级高于Master路由器时,由Backup路由器的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。

由此可见,为了保证Master路由器和Backup路由器能够协调工作,VRRP需要实现以下功能:

Master路由器的选举;
Master路由器状态的通告;

Master路由器的选举

VRRP根据优先级来确定虚拟路由器中每台路由器的角色(Master路由器或Backup路由器)。优先级越高,则越有可能成为Master路由器。

初始创建的路由器工作在Backup状态,通过VRRP报文的交互获知虚拟路由器中其他成员的优先级:

1、如果VRRP报文中Master路由器的优先级高于自己的优先级,则路由器保持在Backup状态;
2、如果VRRP报文中Master路由器的优先级低于自己的优先级,采用抢占工作方式的路由器将抢占成为Master状态,周期性地发送VRRP报文,采用非抢占工作方式的路由 器仍保持Backup状态;
3、如果在一定时间内没有收到VRRP报文,则路由器切换为Master状态。

VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。当路由器为IP地址拥有者时,其优先级始终为255。因此,当虚拟路由器内存在IP地址拥有者时,只要其工作正常,则为Master路由器。

Master路由器路由通告原理

1、Master设备周期性地发送VRRP通告报文,在VRRP备份组中公布其配置信息(优先级等)和工作状况。Backup设备通过接收到VRRP报文的情况来判断Master设备是否工作正常。

2、当Master设备主动放弃Master地位(如Master设备退出备份组)时,会发送优先级为0的通告报文,用来使Backup设备快速切换 成Master设备,而不用等到Master_Down_Interval定时器超时。这个切换的时间称为Skew time,计算方式为:(256-Backup设备的优先级)/256,单位为秒。

3、当Master设备发生网络故障而不能发送通告报文的时候,Backup设备并不能立即知道其工作状况。等到 Master_Down_Interval定时器超时后,才会认为Master设备无法正常工作,从而将状态切换为Master,从而对外发送vrrp报文。

Master_Down_Interval作用:

避免由于网络抖动而引起选主颠簸,当网络抖动时,可能那时候backup设备没收到master报文,
就切为master开始竞争选主,然后待会master的报文又到了,又要切换回来

2、gratuitous arp

如何解决VIP从一个master迁移到另一个另一个backup的问题?

因为当VIP在master点时,此时局域网内的客户端存储的是VIP所在的master的MAC地址,而当master宕机,VIP迁移到backup节点时,局域网内的客户端保留的VIP所对应的MAC地址依然是master的MAC地址,这时局域网内的客户端向外发送信息时还是会去找master。

解决办法:arp欺骗:

每一主机在局域网中都会自动不断接收网络中的各种广播信息,尤其是arp的解析广播信息,并且收到一个arp解析广播信息后,主机都会与自己的arp缓存做比对。例如一个主机在局域网内广播1.1.1.1对应的MAC地址是多少,1.1.1.1这个主机收到广播后就会广播响应,此时在同一局域网内的其他主机也可以收到主机1.1.1.1的回应,其他主机就会把1.1.1.1的回应广播与自己arp缓存进行对比,如果MAC不一致,这个主机就做修改。鉴于此方法,任何时刻当VIP从一个主机迁移到另一个主机时,那么转移到的主机(A)就来一个自问自答的arp广播,即主机(比如是A)会广播问:A主机IP对应的MAC地址是什么,这时A再回答具体是什么,那么在同一个局域网中的其他主机听到这个arp广播后就会自动更新A的IP所对应的MAC地址

gratuitous arp:就是自问自答的arp广播包

在使用keepalived的过程中,当backup提升为master时,都会出现如下日志(192.168.122.17 为vip):

Sending gratuitous ARPs on eth0 for 192.168.122.17

Keepalived是怎样来使用gratuitous arp来处理IP漂移的呢?

1、默认配置下,当keepalived启动时,会发送gratuitous arp,间隔时间5s,每次发送5个arp。

默认配置:

# delay for second set of gratuitous ARPs after transition to MASTER.
# in seconds, 0 for no second set.
# (default: 5)
vrrp_garp_master_delay

# number of gratuitous ARP messages to send at a time after
# transition to MASTER.
# (default: 5)
vrrp_garp_master_repeat

2、当master收到一个优先级更低的vrrp通告时,master也会发送gratuitous arp,默认每间隔1s发送一次,每次发送5个gratuitous arp。相关的配置如下:

# delay for second set of gratuitous ARPs after lower priority
# advert received when MASTER.
vrrp_garp_lower_prio_delay 10

# number of gratuitous ARP messages to send at a time after
# lower priority advert received when MASTER.
vrrp_garp_lower_prio_repeat 1

综合分析

现在我们可以知道keepalived是怎么工作:

通过vrrp协议做主备之间的心跳,当发生切换备获得浮动IP时,发送ARP包告诉其他机器现在VIP对应的mac地址已经变成了备机的网卡的mac地址。这时如果有新的机器要和VIP通信时,找到的就是备机,从而实现的高可用。

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

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

相关文章

【Python】五、程序循环结构

文章目录实验目的一、掌握while语句二、掌握for循环和range()内建函数三、掌握循环语句嵌套四、掌握break语句和continue语句五、编写程序实现猜数字的游戏1.设计思路2.设计算法3.参考代码4.实验截图实验目的 掌握循环结构;培养学生动手查阅资料能力和解决实际问题的…

matlab实现线性参数的最小二乘法处理

一、实验目的 最小二乘法原理是一种在多学科领域中获得广泛应用的数据处理方法。通过实验要求掌握最小二乘法基本原理、正规方程以及组合测量的最小二乘法处理办法。 二、实验原理 (1)测量结果的最可信赖值应在残余误差平方和为最小的条件下求出&#…

破局模块总结 -- 宁向东的清华管理学课总结

1. 管理学就是要破局而出 为什么需要管理学?德鲁克说,我们需要选择正确的事情去做,并且把事情作对。 管理学是一个分析、权衡和决策的学问,分析、权衡和选择的目的是什么?就是要破局而出。 管理學是研究人類管理活動…

《Linux运维总结:基于快照模式迁移单节点elasticsearch数据(方案二)》

一、背景信息 说明:由于整个系统需要从互联网迁移到政务外网,elasticsearch作为其中一个组件,也需要将 所有索引数据 迁移到政务外网。 由于数据量比较大,所以使用快照的模式对elasticsearch数据进行备份及恢复操作,提…

[附源码]计算机毕业设计springboot病人跟踪治疗信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

接口测试当中的权限限制测试和状态机测试【杭州多测师_王sir】【杭州多测师】...

一、权限限制 权限限制我需要单独拎出来讲,它很重要!很多系统中都存在系统管理员、普通用户等不同角色的用户,系统管理员拥有一些普通用户没有的权限,比如系统管理员可以发布公告,而普通用户则只能查看,系统…

【MATLAB教程案例48】初识点云——pcshow,pointCloud,pcwrite,pcread,pcdenoise等点云基本操作函数学习

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 本课程效果预览 目录 1.软件版本 2.什么是点云?

〖全域运营实战白宝书 - 高转化文案速成篇①〗- 文案速成导学与常见文案类型

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…

CAD特殊符号,你不一定会

在CAD软件中,有时候会输入一些特殊的符号。比如在标明高低差的时候会输入“”号,在标明管子或者钢筋的直径为输入直径符号“”,为了标明角度值需要输入符号“”,那么这些符号怎么快速的绘制出来呢?我们一起用CAD梦想画…

[附源码]Python计算机毕业设计SSM基于java的图书管理系统(程序+LW)

环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 Maven管理等…

手把手安装Origin软件

Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,支持在Microsoft Windows下运行。Origin支持各种各样的2D/3D图形。Origin中的数据分析功能包括统计,信号处理,曲线拟合以及峰值分析。Origin中的曲线拟合是采用基于Levernberg-Marq…

缩短汽车服务企业供销链,数商云经销商平台渠道订货模块打造企业销售新模式

随着新能源汽车的快速发展,越来越多的颠覆型玩家进入市场,汽车产品和技术在变,市场环境与结构在变,消费者需求在变,渠道也必然随之改变,全新销售模式横空出世,为传统汽车销售带来前所未有的挑战…

import机制浅析

文章目录import机制入口文件绝对导入和相对导入绝对导入相对导入解决import报错问题小结import机制 ​ 在我们执行python文件时,python通过sys.path进行路径搜索的,整体来说,分为三种搜索模式 1.#系统的内置模块进行搜索; exp&a…

基于PHP+MySQL大学教学工作网络平台的设计与实现

随着在校学生人数的不断增加,学生的数量也在不断的增加,同时面临的就是如何更加方便快捷和高效的管理学生的大学教学工作信息,传统模式的大学教学工作管理明显已经不能够满足当下的需求,于是我们提出了大学教学工作系统的设计与开发。 本课题基于PHP,在Windows7系统的环境下,利…

基于模态凝聚算法的特征系统实现算法的自然激励技术(Matlab代码实现)

🎉🎉🎉🎉欢迎您的到来😊😊😊 🥬博客主页:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 📝床头铭:将来的我一定会感谢…

(万字详解)MySQL增删改查(基础+进阶)

目录 🐳今日良言:眼里有不朽的光芒 心里有永恒的希望 🐕一、MySQL增删改查(基础) 🐂1.初识CURD 🐍2.使用CURD 🐇二、MySQL增删改查(进阶) 🐝1.数据库约束 🐑2.表的设计 🐭3.…

面向切面编程的一些概念

横切关注点 散播应用中多处的功能被称为横切关注点 安全就是一个关注点,每个方法或者类都需要注重安全方法参数日志记录也是一个关注点以及事务管理 横切关注点从概念上讲是与业务分离的,但往往会直接嵌入到业务中 多个类使用到相同的功能。最常见到的就…

【C++面向对象程序设计】CH5 继承与派生

目录 前言 一、继承与派生的概念 二、派生类的声明方式 1.格式 2.【例】假定已经声明一个基类student,在它基础上通过单继承建立一个派生类student1。 三、派生类的构成 四、派生类成员的访问属性 前言 1.公有继承 (1)公有基类在派…

r、 weka从决策树模型看员工为什么离职?

马云说:“员工离职的原因总是只有两个:钱,没有到位;心委屈了。” 现在很多老板都抱怨说,年轻人的流动率太高了,员工觉得老板的钱太少了,最后还是多指责。 最近我们被客户要求撰写关于员工离职的研究报告&…

黄佳《零基础学机器学习》chap2笔记

黄佳 《零基础学机器学习》 chap2笔记 第2课 数学和Python基础知识 文章目录黄佳 《零基础学机器学习》 chap2笔记第2课 数学和Python基础知识2.1 函数描述了事物间的关系机器学习中常用的一些函数2.2 捕捉函数的变化趋势2.3 梯度下降2.4 机器学习的数据结构--张量2.4.1 张量的…