1       VRRP简介

1.1   VRRP背景

同一网段内的所有主机都会设置一条相同的以网关为下一跳的默认路由,主机通过该网关实现与外部网络通信。当网关单点出现问题,该网段内的所有主机将无法与外部网络通信,为了避免以上问题得出现,提出了VRRP的概念,VRRP(虚拟机路由器冗余协议)可以避免由于局域网网关单点故障而导致的通信中断。

1.2   VRRP的应用

VRRP允许将多个路由器加入到一个备份组中,形成一台虚拟路由器。

VRRP主备方式中,仅由Master路由器承担网关功能,当Master出现故障之后,备份组中的路由器通过VRRP选举出优先级高的路由器担任Master工作,虚拟路由器仍能正常运行,这样可以避免网关单点故障而导致的网络中断。

为了通过VRRP实现负载负担,因此需要两个或两个以上的VRRP备份组,每个备份组都存在主备路由器,各备份组中的Master路由器不同。同时一个路由器可以加入到多个VRRP备份组中,在不同的备份组中优先级不同。

2       VRRP工作原理

2.1   VRRP标准协议

VRRPv2将可以承担网关功能的一组路由器添加到备份组中,形成一个虚拟路由器,由VRRP的选举机制决定哪台路由器承担转发任务,局域网中的主机只需要将虚拟路由器配置为网关即可。

VRRP是一种容错协议,在提高网络可靠性的同时,也简化了主机的配置。VRRP报文通常使用组播地址224.0.0.18进行发送。

VRRP名词术语解释

1. VRRP备份组:将局域网内运行VRRP的路由器划分到一起,称为一个备份组,功能相当于一个虚拟路由器。备份组分为单备份组合多备份组。

2.虚拟路由器号(VRID):范围为1-255,由用户配置,用来标识一个备份组。

3.  MasterBackup路由器:Master路由器是备份组中优先级最高的路由器,承担网关功能,其他路由器处于Backup状态。当Master路由器出现故障,VRRP会在备份组中选出优先级最高的处于Backup的路由器担任Master路由器。

4. IP地址拥有者:接口IP地址跟虚拟IP地址相同的路由器被称为IP地址拥有者。

5. 虚拟MAC地址:一个虚拟路由器拥有一个虚拟MAC地址,其格式为00-00-5E-00-01-{VRID}。当虚拟路由器回应ARP请求时,采用的是虚拟MAC地址,而不是接口的物理MAC地址。

6.  优先级:用来确定备份组中的路由器的MasterBackup,当优先相同时,将会比较接口的主IP地址,IP地址大的优先。优先级的取值范围为0-255,默认为100。手动配置的服务为1-2540被相同保留作为特殊用途使用,255则保留给IP拥有者使用。

7.抢占方式:备份组中的路由器处于该方式下,它一旦发现自己的优先级比当前的Master高,它就会对外发送VRRP通告报文,导致备份组中重新选举Master,并最终取代原有的Master

8. 非抢占方式:备份组中的路由器处于该方式下,只用Master路由器不出现故障,即使优先级被Master路由器高,也不会重新选举Master路由器。

9. 认证类型:VRRP定义了3中认证方式,即无认证、简单字符认证和MD5认证。

在备份组中,Master路由器定期发送VRRP通告报文,通知备份组中的其他路由器自己工作正常。Backup路由器启动定时器等待通告报文的到来。

Backup路由器在定时器超时后还未收到Master路由器发送来的VRRP通告报文,则认为Master路由器已经无法正常工作,此时它会认为自己是Master路由器并向外发送VRRP通告报文。备份组中的路由器根据VRRP通告报文中的优先级来确定新的Master路由器,承担报文的转发功能。

2.2   VRRP监控接口功能

VRRP备份组无法感知上行链路的故障,当路由器连接上相链路的接口出现故障时,如果该路由器处于Master状态,将会导致局域网中的主机无法访问外部网络,或通过非最优路径访问外部网络。

如果路由器配置了监控接口的功能,在连接上行接口处于DOWN Removed状态时,它会自动降低自身的优先级(降30,链路通了之后会恢复),使得备份组中的其他路由器的优先级会高于这个路由器,以便优先级高的路由器成为Master路由器,承担转发任务。

3       VRRP报文和状态机

3.1   VRRP报文

1.  Version:协议版本号,VRRPv2对应的版本号为2

2.   TypeVrrp报文的类型,VRRPv2报文只有一种类型,即VRRP通告报文,该字段取值为1

3.   Vitual Rtr IDVRID):虚拟路由器号(备份组号),取值范围为1-255

4.  Priority:路由器在备份组中的优先级,取值范围为0-2550255被系统保留),数值越大表明优先级越高。

5. Count IP Addrs:备份组虚拟IP地址的个数,一个备份组可对应多个虚拟IP地址。

6.Auth Type:认证类型。该值为0表示无认证,该值为1表示简单认证,该值为2表示MD5认证。

7.Adver Int:发送通告报文的时间间隔,单位为S,默认为1s.

8.   Checksum16为校验和,用于检测VRRP报文中的数据破坏情况。

9. IP Address:备份组虚拟IP地址表项,所包含的地址数定义在Couut IP Addrs字段中。

10.  Authentication Data :验证字,目前只用于简单字符认证,对于其他认证方式填哦。

3.2   VRRP状态机

VRRP有三种状态机,initializeMasterBackup

路由器启动后进入Initialize状态。当收到端口的Startup消息时,路由器将转入BackupMaster状态(当优先级为255时,直接进入Master状态)。当路由器处于Initialize状态时,不会对VRRP报文做任何处理。

当路由器处于Master状态时,他会定期发送VRRP广播报文,响应对虚拟IP地址的ARP请求,并行响应的是虚拟MAC地址,而不是接口的物理MAC地址。转发目的MAC地址为虚拟MAC地址的IP报文。如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的报文,否则丢弃这个IP报文。

IP地址拥有者的运行优先级始终为255,无需用户配置。IP地址拥有者始终工作在抢占方式,且不允许对IP地址拥有者进行监控指定接口或Track项的配置。

网络流量过大或不同的路由器上的定时器的差异,会导致Backup路由器的定时器异常超时而发生状态转换。对于这种情况,可以通过将VRRP通过报文的发送时间间隔延长的办法来解决。