VRRP工作原理
VRRP状态机
VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。
状态 |
说明 |
---|---|
Initialize |
该状态为VRRP不可用状态,在此状态时设备不会对VRRP报文做任何处理。 通常刚配置VRRP时或设备检测到故障时会进入Initialize状态。 收到接口Up的消息后,如果设备的优先级为255,则直接成为Master设备;如果设备的优先级小于255,则会先切换至Backup状态。 |
Master |
当VRRP设备处于Master状态时,它将会做下列工作:
|
Backup |
当VRRP设备处于Backup状态时,它将会做下列工作:
|
VRRP工作过程
VRRP的工作过程如下:
- VRRP备份组中的设备根据优先级选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
- Master设备周期性向备份组内所有Backup设备发送VRRP通告报文,以公布其配置信息(优先级等)和工作状况。
- 如果Master设备出现故障,VRRP备份组中的Backup设备将根据优先级重新选举新的Master。
- VRRP备份组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
- 原Master设备故障恢复时,若该设备为IP地址拥有者(优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
-
Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
-
抢占模式:在抢占模式下,如果Backup设备的优先级比当前Master设备的优先级高,则主动将自己切换成Master。
-
非抢占模式:在非抢占模式下,只要Master设备没有出现故障,Backup设备即使随后被配置了更高的优先级也不会成为Master设备。
-
- Master设备的选举。
- Master设备状态的通告。
-
Master设备的选举
VRRP根据优先级来确定虚拟路由器中每台设备的角色(Master设备或Backup设备)。优先级越高,则越有可能成为Master设备。
初始创建的VRRP设备工作在Initialize状态,收到接口Up的消息后,如果设备的优先级为255,则直接成为Master设备;如果设备的优先级小于255,则会先切换至Backup状态,待Master_Down_Interval定时器超时后再切换至Master状态。首先切换至Master状态的VRRP设备通过VRRP通告报文的交互获知虚拟设备中其他成员的优先级,进行Master的选举:-
如果VRRP报文中Master设备的优先级高于或等于自己的优先级,则Backup设备保持Backup状态。
-
如果VRRP报文中Master设备的优先级低于自己的优先级,采用抢占方式的Backup设备将切换至Master状态,采用非抢占方式的Backup设备仍保持Backup状态。
-
如果多个VRRP设备同时切换到Master状态,通过VRRP通告报文的交互进行协商后,优先级较低的VRRP设备将切换成Backup状态,优先级最高的VRRP设备成为最终的Master设备;优先级相同时,VRRP设备上VRRP备份组所在接口主IP地址较大的成为Master设备。
-
如果创建的VRRP设备为IP地址拥有者,收到接口Up的消息后,将会直接切换至Master状态。
-
-
Master设备状态的通告
Master设备周期性地发送VRRP通告报文,在VRRP备份组中公布其配置信息(优先级等)和工作状况。Backup设备通过接收到VRRP报文的情况来判断Master设备是否工作正常。- 当Master设备主动放弃Master地位(如Master设备退出备份组)时,会发送优先级为0的通告报文,用来使Backup设备快速切换成Master设备,而不用等到Master_Down_Interval定时器超时。这个切换的时间称为Skew time,计算方式为:(256-Backup设备的优先级)/256,单位为秒。
- 当Master设备发生网络故障而不能发送通告报文的时候,Backup设备并不能立即知道其工作状况。等到Master_Down_Interval定时器超时后,才会认为Master设备无法正常工作,从而将状态切换为Master。其中,Master_Down_Interval定时器取值为:3×Advertisement_Interval+Skew_time,单位为秒。
在性能不稳定的网络中,网络堵塞可能导致Backup设备在Master_Down_Interval期间没有收到Master设备的报文,Backup设备则会主动切换为Master。如果此时原Master设备的报文又到达了,新Master设备将再次切换回Backup。如此则会出现VRRP备份组成员状态频繁切换的现象。为了缓解这种现象,可以配置抢占延时,使得Backup设备在等待了Master_Down_Interval后,再等待抢占延迟时间。如在此期间仍没有收到通告报文,Backup设备才会切换为Master设备。