keepalive原理

keepalive简介:

,,,, keepalive,保持存的活,在网络中就是保持在线,也就是哈,用来防止单点故障的发生,在keepalive中最重要的就是VRRP协议,它是keepalive实现高可用的基础,。

一、VRRP协议

,,,,网络在设计的时候必须考虑冗余容灾,线路容灾,设备容灾,从而防止单点故障的发生,所以在路由器或三层交换机也要实现冗余,这里就要用到VRRP协议,即VRRP就是一种容错协议,为消除在静态缺省路由环境下的缺省路由器单点故障引起的网络失效而设计的主备模式的协议,使得在发生故障而进行设备功能切换时可以不影响内外数据通信,不需要修改内部网络的网络参数。

,,VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在虚拟路由器内部,对虚拟路由器有操作权限的就是主人,或者通过算法选举产生,主实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP以及数据的转发等;其他设备不拥有该IP、状态是备份,除了接收大师的VRRP状态通告信息外,不执行对外的网络功能。当主机失效时,备份将接管原先的大师网络功能。

,,配置VRRP协议时需要配置每个路由器的虚拟路由器id也就是VRID和优先权值,使用VRID将路由器进行分组,具有相同的VRID值的路由器为同一组,VRID是一个0 - 255的正整数,同一组中的路由器通过使用优先级权值来选举主人,优先级权值大的为大师,权值小的为备份,优先级权值也是0 - 255的正整数。

,,,, VRRP协议使用多播数据来传输VRRP数据,VRRP数据使用特殊的虚拟源MAC地址发送数据而不是自身网卡的MAC地址,VRRP运行时只有大师路由器定时发送VRRP通告信息,表示主正常工作,备份只负责接收VRRP数据,不发送数据,如果一定时间内没有收到主人的通告信息,各备份将宣告自己成为大师,发送通告信息,重新进行主人选举状态。

,,相关术语:

,,,,虚拟路由器:由一个主路由器和多路个备份由器组成,主机将虚拟路由器当做默认网关;

,,,,虚拟IP地址:虚拟路由器的IP地址,一个虚拟路由器可以拥有一个或多个IP地址;

,,,, VRID:标识虚拟路由器,有相同VRID的一组路由器为一个虚拟路由器;

,,,,主人路由器:在虚拟路由器中承担转发任务的路由器;

,,,,备份路由器:在虚拟路由器中只负责接收数据,当主人路由器出现故障时,能够代替主人路由器工作:

,,,, VRRP在根据优先级权值选择虚拟路由器中的每台路由器的地位时有两种方式:

,,,, 1)非抢占式:如果备份路由器工作在非抢占式方式下,则只要掌握路由器没有出现故障,即使备份路由器之后被配置了更高的优先级也不会成为大师路由器;

,,,, 2)抢占方式:如果备份路由器工作在抢占方式下,当它收到VRRP报文后,会将自己的优先级与通告中的优先级进行比较,如果自己的优先级比当前的主优先级高,就会主动抢占成为大师路由器;否则,将保持备份状态。

二.keepalived原理

,,,, 1。keepalive组件:

,,,, keepalive是模块化设计,不同的模块负责不同的功能,

,,,, keepalive的组件:核心,检查,vrrp, libipfwc, libipvs - 2.4, libipvs - 2.6

,,,,的核心:是keepalive的核心,负责主进程的启动和维护,全局配置文件的加载解析等;

,,,,检查:负责healthcheck(健康检查),包括了各种健康检查的方式以及对应配置的解析;

,,,, vrrp: vrrpd子进程,vrrpd子进程就是用来实现vrrp协议的;

,,,, libipfwc: iptables库,在配置lv时会用的到,

,,,, libipvs *:配置lv;

,,, 2。keepalive进程

,,,, keepalive启动后会有三个进程:

,,,,父进程:内存管理,子进程管理。

,,,,子进程:VRRP子进程;

,,,,子进程:healthcheck子进程;

,,,,两个子进程都被系统监督看管,两个子进程都各自负责自己的事,healthcheck子进程负责检查各个服务器的健康状态,如果healthcheck子进程检查到主服务器不可用了,就会通知本机上的兄弟vrrpd子进程,让它删除通告,并且去掉虚拟ip,转换为备份状态。

,,,,

keepalive原理