13.3.1 报文格式
VRRP只有以一种报文,叫通告报文。通告报文被封装在IP报文中,IP头部的协议字号为112,目的IP地址为224.0.0.18。
版本(Version):在VRRPv2中恒为2。
类型(Type):因为只有一种报文,所以类型字段的值恒为1。
VRID(虚拟路由器ID):此字段的值为所在VRRP组的VRID,取值范围1~255。
优先级(Priority):是选举Master路由的依据,范围为0~255,默认值为100,以大为优。
IP地址个数(Count IP Address):指示了后面IP地址字段的个数。
认证类型(Advertisement Type)↓
为 0 时:无认证(Non Authentication);
为 1 时:明文认证(Simple Text Password);
为 2 时:MD5认证方式(IP AUthentication Header)。
通告时间(Advertisement Interval):也就是发送通告报文的间隔,默认1s。
校验和(Checksum):传输位数的累加,用于检验数据完整性。
IP地址(IP Address):为VRRP的虚拟IP地址。
认证数据(Authentication Data):当激活明文认证或MD5认证后,此字段用于存放认证数据。
1、Initialize (初始状态)
在接口激活VRRP,但是接口是Down(接口被关闭或没有连接线缆),为Initialize状态。当接口被打开且优先级为255时(接口的实际IP设置为VRRP虚拟IP),立即切换为Master,如果优先级为非255,状态转化为Backup。
2、Backup状态
对关于VRRP虚拟地址的ARP请求不予回应。
丢弃目的地址为VRRP虚拟MAC的数据帧
不接收目的IP地址为VRRP虚拟IP地址的数据包。
实时侦听Master发送的VRRP报文。
当收到一个VRRP报文时,首先看优先级,优先级为0时(Master如果发出一个优先级为0的通告报文那就意味着它要主动放弃主路由器的位置),将Master_Down_Timer设置为Skew_Time;
当优先级不为0时,如果未开启抢占模式或者虽然抢占模式关闭但报文中的优先级优于自己的优先级,则将本地Master_Adver_Interval设置为报文中的Master_Adver_Interval、重置Master_Down_Timer,将Master_Down_Timer与报文中的Master_Down_Timer同步;
如果抢占模式被开启,且报文中的优先级比自己的小,不去理会报文中的任何计时器,直接切换为Master。
3、Master(主路由)
当收到关于虚拟IP地址的ARP请求时,以虚拟MAC地址进行会应
妆发目的MAC地址为虚拟MAC地址的数据帧
周期性的发送VRRP报文
当收到一个VRRP报文时,若报文的优先级为0,直接忽略;
若报文优先级不为0且优先级比自己的大或者优先级和自己相等但报文的源IP比本地IP大,则将接口状态切换到Backup,若报文的优先级比自己的小,直接忽略。