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的原理简析相关推荐

  1. Webpack模块化原理简析

    webpack模块化原理简析 1.webpack的核心原理 一切皆模块:在webpack中,css,html.js,静态资源文件等都可以视作模块:便于管理,利于重复利用: 按需加载:进行代码分割,实现 ...

  2. Android Handler与Looper原理简析

    一直感觉自己简直就是一个弱智,最近越来越感觉是这样了,真的希望自己有一天能够认同自己,认同自己. 本文转载于:https://juejin.im/post/59083d7fda2f60005d14ef ...

  3. grpc通信原理_gRPC原理简析

    gRPC原理简析 gRPC是由谷歌提出并开发的RPC协议,gRPC提供了一套机制,使得应用程序之间可以进行通信. 降级开发者的使用门槛,屏蔽网络协议,调用对端的接口就像是调用本地的函数一样.而gRPC ...

  4. Android V1及V2签名原理简析

    Android为了保证系统及应用的安全性,在安装APK的时候需要校验包的完整性,同时,对于覆盖安装的场景还要校验新旧是否匹配,这两者都是通过Android签名机制来进行保证的,本文就简单看下Andro ...

  5. CRC原理简析——史上最清新脱俗简单易懂的CRC解析

    CRC原理简析 1. CRC校验原理 CRC校验原理根本思想就是先在要发送的帧后面附加一个数(这个就是用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端.当然,这个 ...

  6. Java的定时器Timer和定时任务TimerTask应用以及原理简析

    记录:272 场景:Java JDK自带的定时器Timer和定时任务TimerTask应用以及原理简析.在JDK工具包:java.util中可以找到源码,即java.util.Timer和java.u ...

  7. 转子接地保护原理_发变组转子接地保护原理简析

    发变组转子接地保护原理简析 发电机转子接地故障是常见的故障之一, 发生一点接地, 对发电机本身并不直接构成危 害,此时可通过转移负荷,平稳停机后,再查故障点:若在此基础上又发生另外一点接地, 将会严重 ...

  8. Mysql锁机制及原理简析

    Mysql锁机制及原理简析 一.前言 1.什么是锁? 锁是计算机协调多个进程或线程并发访问某一资源的机制. 锁保证数据并发访问的一致性.有效性: 锁冲突也是影响数据库并发访问性能的一个重要因素. 锁是 ...

  9. JTAG、SWD调试原理简析

    JTAG.SWD调试原理简析 STM32F10xxx使用CortexM-M3内核,该内核内含硬件调试模块,支持复杂的调试操作.硬件调试模块允许内核在取指(指令断点)或访问数据(数据断点)时停止.内核停 ...

最新文章

  1. Linux系统资源监控--linux命令、nmon和spotlight
  2. JVM之XX参数详解
  3. (4) hibernate增删查改+批量操作+类似Mybatis动态sql
  4. Spring Boot----Dubbo
  5. 电子游戏市场的演变————零售
  6. 互联网协会点名QQ音乐等14款 App 过度收集用户信息
  7. 马化腾最新演讲谈机遇:让所有企业在云端利用AI处理大数据
  8. 华为手机像素密度排行_最新手机性能排行榜出炉:高通骁龙865霸榜,前十不见华为!...
  9. 隐藏元素 mayaa
  10. linux apt get 无效,kail Linux apt-get失败解决方案
  11. dnf怎么显示连接服务器失败怎么回事,登录DNF显示连接不到服务器怎么办 服务器连接失败解决方法...
  12. 计算机网络技能大赛感受,技能大赛心得体会
  13. 阿里巴巴“新六脉神剑”背后的故事
  14. Mr. Kitayuta vs. Bamboos
  15. java 下载文件的文件名乱码_JAVA 文件下载时的文件名乱码解决
  16. html 银联图标,银联标志logo图片 云闪付app扫银联标识领获红包
  17. 英文通信地址常用翻译
  18. web网站开发基于高德地图浏览器定位
  19. 【PS插件】Retouch4me 10合1一键安装版
  20. 看这里!你的手机号关联了多少互联网账号?一证通查→

热门文章

  1. 计算机用户导出导入,iTunes授权电脑文件导入导出图文教程
  2. 2022-2028全球与中国微型电机市场现状及未来发展趋势
  3. 【Pyecharts】| 风电场运维可视化系统 | 文末送书
  4. 使用C语言实现一个虚拟机
  5. 国内手机号码段,卫星电话号段
  6. 系统学习NLP(十)--词性标注算法综述
  7. linux 中swap分区的中庸是什么
  8. photoshop 怎么用参考线将页面平分
  9. css collapsing margins问题
  10. 副产品举例_联产品、副产品和等级产品的定义及其之间的联系和区别?