一文读懂keepalive的工作原理

【一文读懂keepalive的工作原理】keepalive是基于vrrp协议实现接入层高可用组件,避免系统的单点故障 。
工作原理要想理解keepalive的原理,就需要理解vrrp协议的工作原理 。
概念解释:
Vrrp(Virtual Router Redundancy Protocol),虚拟路由冗余协议,一种为了避免路由器单点故障的容错协议 。
网络架构如下图:
一文读懂keepalive的工作原理

文章插图
 
?
工作原理
  • 多个路由器组成一个路由器组,即虚拟路由器 。如图RouterA和RouterB组成一个虚拟路由器 。
  • 虚拟路由器使用虚拟IP与外网交互(如图中VIP),虚拟mac与内网交互(如图中VMAC)
  • 获得VIP的路由器为主路由器(Master状态),其他路由器为备份路由器(Backup状态);
  • 主路由器每隔 advertisement_intervl 秒(对应图中配置项 advert_int),向组内其他路由器发送通告消息(即心跳),告知本路由器的优先级等信息;
  • 组播的方式发送,组播地址224.0.0.18 。
  • 只有主路由器会响应ARP请求,组内其他路由器会丢弃ARP请求;
  • 只有主路由器会响应对虚拟IP请求,组内其他路由器会丢弃对虚拟IP的请求;
主备切换虚拟路由器中的Master可以切换(即VIP切换到备份路由器上),切换方式分为3种:
Master路由器退出该路由器组
  • Master路由器在vrrp消息中将本路由器的优先级设置为0,表示原Master设备声明不参与该VRRP组了;
  • Backup路由器接收到这个消息后,会等待 skew_time(偏移时间,= (256-backup_priority)/256),切换为Master状态
Master路由器降低自身优先级
  • Master路由器在vrrp消息中将本路由器的优先级降低,小于Backup路由器优先级(但不为0);
  • 这时Backup路由器会丢弃该消息;如果是抢占模式,会立即切换为Master状态;如果是非抢占模式,仍保持Backup状态;
Backup超时未收到vrrp消息
  • Backup路由器在超过一定时间(Master_down_interval=3*advert_int + skew_time)未收到Master的vrrp消息时,会切换为Master;
常见问题当 Router A 和 Router B 无法正常通信时,可能存在2个Master路由器,即“脑裂” 。
解决方案:
  1. 核查A和B之间的网络,关闭防火墙或者配置好ip,Router之间保证网络通畅
  2. 使用2条线路连接2个路由器,一条坏了时,另一条备用
  3. 主节点编写脚本测试网络情况;如果网络不通,则关闭keepalived进程;
  4. Master路由器宕机后,立即告警,人为介入处理 。
扩展知识VRRP协议栈
一文读懂keepalive的工作原理

文章插图
vrrp协议栈

一文读懂keepalive的工作原理

文章插图
 
上述标红的几个字段是关键字段,都会出现在 keepalive 的配置文件中 。