keepalived实现vip的原理简析
1、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报文的交互获知虚拟路由器中其他成员的优先级:
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的问题?
解决办法:arp欺骗:
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原理和lvs原理的组合
vrrp 协议的软件实现,原生设计目的为了高可用 ipvs服务
官网:http://keepalived.org/
功能:
基于vrrp协议完成地址流动
为vip地址所在的节点生成ipvs规则(在配置文件中预先定义)
为ipvs集群的各RS做健康状态检测(通过访问指定页面返回结果进行健康性检查)
基于脚本调用接口完成脚本中定义的功能,进而影响集群事务。
支持nginx、haproxy等服务
keepalived分为内核空间和用户空间,ipvs是lvs的核心组件,通过IPVS wrapper组件把lvs规则通过keepalived写入lvs内核空间,控制lvs的调度策略,lvs生产中就是配合keepalived使用的,netlink reflector组件实现vip的策略,VRRP Stack 实现vip浮动。Checkers实现健康性检查,丰富了lvs的缺失功能,Keepalived的出现就是弥补lvs的不足,实现生产中的高可用。SMTP是邮件报警服务。Keepalive的还可以和nginx进行配合,因为nginx代理的主备关系之间不能健康性检查和公用,通过Keepalived实现。代理高可用就靠keepalived实现。
keepalived实现vip的原理简析相关推荐
- Webpack模块化原理简析
webpack模块化原理简析 1.webpack的核心原理 一切皆模块:在webpack中,css,html.js,静态资源文件等都可以视作模块:便于管理,利于重复利用: 按需加载:进行代码分割,实现 ...
- Android Handler与Looper原理简析
一直感觉自己简直就是一个弱智,最近越来越感觉是这样了,真的希望自己有一天能够认同自己,认同自己. 本文转载于:https://juejin.im/post/59083d7fda2f60005d14ef ...
- grpc通信原理_gRPC原理简析
gRPC原理简析 gRPC是由谷歌提出并开发的RPC协议,gRPC提供了一套机制,使得应用程序之间可以进行通信. 降级开发者的使用门槛,屏蔽网络协议,调用对端的接口就像是调用本地的函数一样.而gRPC ...
- Android V1及V2签名原理简析
Android为了保证系统及应用的安全性,在安装APK的时候需要校验包的完整性,同时,对于覆盖安装的场景还要校验新旧是否匹配,这两者都是通过Android签名机制来进行保证的,本文就简单看下Andro ...
- CRC原理简析——史上最清新脱俗简单易懂的CRC解析
CRC原理简析 1. CRC校验原理 CRC校验原理根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端.当然,这个 ...
- Java的定时器Timer和定时任务TimerTask应用以及原理简析
记录:272 场景:Java JDK自带的定时器Timer和定时任务TimerTask应用以及原理简析.在JDK工具包:java.util中可以找到源码,即java.util.Timer和java.u ...
- 转子接地保护原理_发变组转子接地保护原理简析
发变组转子接地保护原理简析 发电机转子接地故障是常见的故障之一, 发生一点接地, 对发电机本身并不直接构成危 害,此时可通过转移负荷,平稳停机后,再查故障点:若在此基础上又发生另外一点接地, 将会严重 ...
- Mysql锁机制及原理简析
Mysql锁机制及原理简析 一.前言 1.什么是锁? 锁是计算机协调多个进程或线程并发访问某一资源的机制. 锁保证数据并发访问的一致性.有效性: 锁冲突也是影响数据库并发访问性能的一个重要因素. 锁是 ...
- JTAG、SWD调试原理简析
JTAG.SWD调试原理简析 STM32F10xxx使用CortexM-M3内核,该内核内含硬件调试模块,支持复杂的调试操作.硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止.内核停 ...
最新文章
- Linux系统资源监控--linux命令、nmon和spotlight
- JVM之XX参数详解
- (4) hibernate增删查改+批量操作+类似Mybatis动态sql
- Spring Boot----Dubbo
- 电子游戏市场的演变————零售
- 互联网协会点名QQ音乐等14款 App 过度收集用户信息
- 马化腾最新演讲谈机遇:让所有企业在云端利用AI处理大数据
- 华为手机像素密度排行_最新手机性能排行榜出炉:高通骁龙865霸榜,前十不见华为!...
- 隐藏元素 mayaa
- linux apt get 无效,kail Linux apt-get失败解决方案
- dnf怎么显示连接服务器失败怎么回事,登录DNF显示连接不到服务器怎么办 服务器连接失败解决方法...
- 计算机网络技能大赛感受,技能大赛心得体会
- 阿里巴巴“新六脉神剑”背后的故事
- Mr. Kitayuta vs. Bamboos
- java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决
- html 银联图标,银联标志logo图片 云闪付app扫银联标识领获红包
- 英文通信地址常用翻译
- web网站开发基于高德地图浏览器定位
- 【PS插件】Retouch4me 10合1一键安装版
- 看这里!你的手机号关联了多少互联网账号?一证通查→