VRRP工作原理
VRRP状态机
VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。
VRRP状态转换如图5-8所示。
状态 |
说明 |
状态切换 |
---|---|---|
Initialize |
该状态为VRRP不可用状态,在此状态时设备不会对VRRP报文做任何处理。 通常设备启动时或设备检测到故障时会进入Initialize状态。 |
当设备收到接口Up的消息后:
|
Master |
当VRRP设备处于Master状态时,它将会做下列工作:
|
当设备接收到如下事件后会发生状态变化:
说明:
对于VRRP备份组中的设备同时升主的情况,当设备收到与自己优先级相同的报文时,会进一步比较IP地址的大小。如果收到报文的IP地址比自己大,则切换到Backup状态,否则保持Master状态。 |
Backup |
当VRRP设备处于Backup状态时,它将会做下列工作:
|
当设备接收到如下事件后会发生状态变化:
|
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。
Master设备的选举
Master设备状态的通告
Master设备的选举
VRRP根据优先级来确定虚拟路由器中每台设备的角色(Master设备或Backup设备)。优先级越高,则越有可能成为Master设备。
初始创建VRRP的设备工作在Initialize状态,收到接口Up的消息后,若此设备的优先级小于255,则会先切换至Backup状态,待MASTER_DOWN定时器超时后再切换至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定时器超时。这个切换的时间称为Skew_time,计算方式为:(256-Backup设备的优先级)/256,单位为秒。
当Master设备发生网络故障而不能发送通告报文的时候,Backup设备并不能立即知道其工作状况。等到MASTER_DOWN定时器超时后,才会认为Master设备无法正常工作,从而将状态切换为Master。其中,MASTER_DOWN定时器取值为:(3* ADVER_INTERVAL)+ Skew_time,单位为秒。
在性能不稳定的网络中,网络堵塞可能导致Backup设备在Master_Down期间没有收到Master设备的报文,Backup设备则会主动切换为Master。如果此时原Master设备的报文又到达了,新Master设备将再次切换回Backup。如此则会出现VRRP备份组成员状态频繁切换的现象。为了缓解这种现象,可以配置抢占延时,使得Backup设备在等待了Master_Down_Interval后,再等待抢占延迟时间。如在此期间仍没有收到通告报文,Backup设备才会切换为Master设备。
VRRP认证
在安全程度高的网络中,可以采用无认证方式。设备对要发送的VRRP通告报文不进行任何认证处理,收到通告报文的设备也不进行任何认证,认为收到的都是真实的、合法的VRRP报文。
在有可能受到安全威胁的网络中,可以采用简单字符(Simple)认证方式或MD5认证方式。
简单字符(Simple)认证:发送VRRP通告报文的设备将认证方式和认证字填充到通告报文中,而收到通告报文的设备则会将报文中的认证方式和认证字与本端配置的认证方式和认证字进行匹配。如果相同,则认为接收到的报文是合法的VRRP通告报文;否则认为接收到的报文是一个非法报文,并丢弃这个报文。
MD5认证:设备采用MD5算法对本端配置的认证字进行加密,加密之后的密文保存在Authentication Data字段中。当设备收到通告报文时,会对报文中的认证字采用MD5算法进行加密,并通过比较Authentication Data字段中保存的密文和对收到的通告报文的认证字加密之后的密文,检查报文的合法性。
目前仅VRRPv2版本支持认证,VRRPv3版本不支持认证。
MD5认证能够提供比简单字符(Simple)认证更高的安全保障。