智客公社

标题: 分析:一文读懂keepalive的工作原理 [打印本页]

作者: 正午的阳光    时间: 2022-6-23 19:56
标题: 分析:一文读懂keepalive的工作原理

是基于协议现接入层高可用组件,避免系统的单点故障。加速器的相关问题可以到网站了解下,我们是业内领域专业的平台,您如果有需要可以咨询,相信可以帮到您,值得您的信赖!https://www.tiandiapp.com/


工作原理要想理解的原理,就需要理解协议的工作原理。

概念解释:

V(V R R P),虚拟路由冗余协议,一种为了避免路由器单点故障的容错协议。

络架构如下图:



工作原理多个路由器组成一个路由器组,即虚拟路由器。如图RA和RB组成一个虚拟路由器。虚拟路由器使用虚拟IP与外交互(如图中VIP),虚拟MAC与内交互(如图中VMAC)。获得VIP的路由器为主路由器(M状态),其他路由器为备份路由器(B状态)。主路由器每隔 _ 秒(对应图中配置项 _),向组内其他路由器发送通告消息(即心跳),告知本路由器的先级等信息。组播的方式发送,组播地址2240018。只有主路由器会响应ARP请求,组内其他路由器会丢弃ARP请求。只有主路由器会响应对虚拟IP请求,组内其他路由器会丢弃对虚拟IP的请求。主备切换虚拟路由器中的M可以切换(即VIP切换到备份路由器上),切换方式分为3种:

M路由器退出该路由器组M路由器在消息中将本路由器的先级设置为0,表示原M设备声明不参与该VRRP组了。B路由器接收到这个消息后,会等待 _(偏移时间,=
(256-_)256),切换为M状态。M路由器降低自身先级M路由器在消息中将本路由器的先级降低,小于B路由器先级(但不为0)。这时B路由器会丢弃该消息;如果是抢占模式,会立即切换为M状态;如果是非抢占模式,仍保持B状态。B超时未收到消息B路由器在超过一定时间(M__=3*_ +
_)未收到M的消息时,会切换为M。

常见问题当 R A 和 R B 法正常通信时, 可能存在2个M路由器,即“脑裂”。

解决方案:

核查A和B之间的络,关闭防火墙或者配置好,R之间保证络通畅。使用2条线路连接2个路由器,一条坏了时,另一条备用。主节点编写脚本测试络情况;如果络不通,则关闭进程。M路由器宕机后,立即告警,人为介入处理。扩展知识VRRP协议栈

协议栈



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

V:VRRP协议版本号,RFC3768定义了版本2。T:该字段指明了VRRP报文的类型,RFC3768只定义了一种VRRP报文,那就是VRRP通告报文,所以该字段总是置为1,若收到的VRRP通告报文拥有非1的类型值,那么会被丢弃。V R ID:也就是我们上面介绍过的VRID,一个VRID仅有地标识了一个虚拟路由器,取值范围是[1,255],所以一台路由器的接口可以同时运行比较多255个VRRP例,此字段没有缺省值,必须人为设定。P:先级,在一个虚拟路由器中用来选取M路由器和B路由器,值越大表明先级越高,此字段共有8个,取值范围[1,254],若没有人为指定,缺省值是100。其中,VRRP协议会将IP地址拥有者路由器的该字段永远设置为255,若人为指定为其它值,也不会影响VRRP协议的默认行为,即IP地址拥有者路由器的该字段总是255。另外,此字段设置为0会出现在下面这种情形中,当M路由器出现故障后,它会立刻发送一个P置0的VRRP通告报文,当B路由器收到此通告报文后,会等待S 时间,然后将自己切换为M路由器,其中S =(256-B路由器的先级)256,单位为秒,例如若B路由器的先级为100,那么S =156256=0609秒,对于主路由器来说,S 并没有际意义,虽然的路由器也会计算并显示出来。C IP A:VRRP通告报文中包含的IP地址数量,这个字段其就是为一个VRRP虚拟路由器所分配的IP地址的数量。A T:认证类型字段,是一个8位的符号整数,一个虚拟路由器只能使用一种认证类型,如果B路由器收到的通告报文中认证类型字段是未知的或和本地配置的不匹配,那么它将丢弃该数据包。目前支持3种认证方式:认证,简单字符,和MD5认证。A I::此字段规定了M路由器向外发送VRRP通告报文的时间间隔,以秒为单位,取值范围是[1,255],若没有人工配置,缺省为1秒。C:整个VRRP报文的校验和,计算过程中,将C字段置为0,计算完成后将结果填入此字段。若希望进一步了解C的计算,可以查看RFC1071(CKSM)。IP A:此字段存放3个VRRP虚拟路由器的虚拟IP地址,配置了几个就封装几个,在上面的例中我们配置了个,那么VRRP通告报文就会封装3个。A D:RFC3768中规定,此字段只是为了向RFC2338兼容,在际的封装时,全置为0,接收方也会忽略此字段。虚拟MAC地址组成方式是00-00-5E-00-01-{VRID},前个字节00-00-5E是IANA组织分配的,接下来的两个字节00-01是为VRRP协议指定的,比较后的VRID是虚拟路由器标识,取值范围[1,255]。

VRID虚拟路由器标识,在同一个VRRP组内的路由器必须有相同的VRID。

其他K内置了一个模块,可以通过配置文件操作内核,向添加规则,创建LVS。这又是另一个关键组件,就不在本节讨论了。

进程启动时有3个进程:

主进程,监控其他子进程。子进程,负责通信。子进程,检测服务状态;如果服务不可用,则通知子进程,发降级通告。写在比较后对于常用组件,我们不但需要知道如何用,更要知道它的底层原理,在遇到问题是可以事半功倍。希望通过本文可以让大家对有更深入的了解。




欢迎光临 智客公社 (http://bbs.cnaiplus.com/) Powered by Discuz! X3.4