VRRP协议详解

VRRP协议详解
Flaw前提:
VRRP是Virtual Router RedundancyProtocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。这样的话就可以保证路由器的高可用了。
文章地址:企业架构双点服务器HA
什么是VRRP
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种用于提高路由器高可用性的协议。其主要目的是解决静态路由的单点故障问题,确保即使某个节点出现故障,整个网络仍然可以不间断地运行。
VRRP的工作原理
VRRP协议将多台提供相同功能的路由器组成一个路由器组。在这个组中,有一个Master和多个Backup。Master路由器对外提供服务,并拥有一个虚拟IP地址(VIP)。局域网内的其他设备将此VIP设为其默认网关。当Master正常工作时,会定期发送VRRP包,通知Backup路由器自己处于工作状态。
如果Backup路由器在设定的时间内未收到来自Master的VRRP包,则认为Master已经宕机。此时,Backup路由器会根据VRRP的优先级进行选举,选出新的Master路由器,接管虚拟IP地址并继续对外提供服务。
VRRP包
VRRP包是VRRP协议中传递信息的重要载体。主要用于Master路由器向Backup路由器通告其存活状态。VRRP包包含以下几个关键字段:
- 版本号(Version):标识VRRP协议的版本,目前普遍使用的是VRRPv2和VRRPv3。
- 类型(Type):标识VRRP包的类型,如广告包(Advertisement)。
- 虚拟路由器标识符(VRID):唯一标识一个VRRP路由器组。
- 优先级(Priority):用于选举Master路由器,优先级越高,路由器越有可能成为Master。
- 组号(Group):标识属于哪个虚拟路由器组。
- 校验和(Checksum):用于校验VRRP包的完整性。
VRRP的优先级
VRRP的优先级决定了在Master路由器宕机时,哪个Backup路由器会被选举为新的Master。优先级的取值范围是1到254,其中255保留给当前Master路由器使用。优先级越高的路由器越有可能成为新的Master。一般情况下,优先级的设置需要考虑路由器的性能、可靠性等因素。
优先级为0的路由器表示其不参与选举,用于临时退出组或维护操作。
解决静态路由单点故障问题
静态路由单点故障问题指的是,当网络中某台路由器发生故障时,依赖于该路由器的所有通信都会中断。VRRP通过引入虚拟IP地址和路由器组的概念,有效地解决了这一问题。当Master路由器宕机时,Backup路由器会迅速接管虚拟IP地址,保证网络通信的连续性。
保证网络不间断运行
VRRP通过以下机制保证网络在个别节点宕机时仍能不间断运行:
- 虚拟路由器组:多个路由器组成一个虚拟路由器组,提供冗余。
- Master和Backup角色划分:只有Master路由器对外提供服务,Backup路由器处于待命状态。
- 定期发送VRRP包:Master路由器定期发送VRRP包,通知Backup路由器其存活状态。
- 优先级选举:当Backup路由器收不到VRRP包时,会根据优先级进行选举,选出新的Master路由器。
- 快速切换:Backup路由器迅速接管虚拟IP地址,继续对外提供服务,保证网络通信不中断。
总结
VRRP协议通过引入虚拟IP地址和路由器组的概念,有效地提高了网络的可靠性和可用性。通过Master和Backup的角色划分及优先级选举机制,VRRP能够在个别节点宕机时,迅速切换至新的Master路由器,确保网络通信的连续性。VRRP的应用对于需要高可用性的网络环境具有重要意义。
1. 产生背景及应用环境
1.1 为什么要用VRRP
VRRP(Virtual Router Redundancy Protocol)——虚拟路由器冗余协议,其最新技术标准是RFC3768。
为什么要用VRRP呢?主要是为了实现数据链路层互通设备的冗余备份功能。来看图一:

图一(常规网络架构)
从图中可以看到,常规的局域网一般都是多个终端接到交换机上,然后通过单独的出口路由器连接到Internet。如果这个出口路由器坏掉了,那么整个上行的流量就会全部断掉,这就是传说中的单点故障。
为了避免这种情况,我们对上面的网络进行物理改造,如下图:
图二(消除了单点故障的常规网络架构)
现在,这个网络有两个Internet出口,这样任何一个出口路由器出现故障都不会导致终端用户的上行流量断掉。
问题是:怎么让终端PC知道局域网中有两个出口路由器,并在其中一个出现故障后自动选择另外一个呢? 可采用的方案包括让终端PC运行动态路由协议,比如RIP、OSPF,或者ICMP router Discovery client(DISC),或者指定一条静态缺省路由。
这三种实现方法都有其劣势和不可行之处,具体分析如下:
- 在每一个终端PC上运行动态路由协议几乎是不可能的,牵涉到网管的技术能力和日常维护、安全性问题、以及某些终端平台不支持动态路由协议,比如我们常用的XP、Windows7都不支持,而Windows Server系列OS支持。
- DISC等邻居或路由器发现协议也存在种种问题,例如在网络内存在大量主机,每一台都需要运行DISC,增加主机的处理负担,导致协议收敛缓慢,不能及时发现不可用邻居路由器,产生路由黑洞。
- 配置静态缺省路由(设置网关)在终端上配置多个默认网关也存在以下两个问题:
- 对于PC,配置多个默认网关后,一个会作为活动默认网关,其它作为备份默认网关。TCP/IP在通信失败后切换默认网关,但切换后不会自动恢复原始默认网关,除非重启计算机。
- 对于路由器,不会切换默认路由,只会按照配置好的缺省路由优先级进行流量转发,导致路由黑洞。
以上方法均不可行,因此开发出了一种全新的协议:VRRP。无需下行设备与出口路由器进行交互操作,却完全实现了网络出口的冗余备份。接下来详细讨论VRRP的基本原理及实现过程。
假定我们在终端PC上部署了动态路由协议,那么每一个终端用户都会遇到下面这种情况:
10086:尊敬的用户您好,申报RIP故障请按1,申报OSPF故障请按2,申报ISIS故障请按3……….
用户:( ⊙ o ⊙ )啊!我家是OSPF,按2。
10086:您好,您申报的故障是OSPF,请进一步选择,OSPF邻居无法建立请按1,OSPF密钥不对请按2,链路状态数据库异常请按3,路由表错误请按4…………..
用户:( ⊙ o ⊙ )啊!……………然后吐血身亡………….
所以说,N多现实问题和困难导致在终端PC上部署动态路由协议具有不可行性。
那么对于在终端PC上部署DISC等邻居或路由器发现协议呢?也存在种种问题,例如在网络内存在大量主机,每一台都需要运行DISC,除了增加主机的处理负担外,也会导致协议收敛缓慢,从而不能及时发现不可用邻居路由器,产生路由黑洞,这是不可接受的。
现在只剩下在终端PC上配置静态缺省路由了(其具体表现形式一般是设置网关),这是几乎每一个IP平台都支持的配置功能,即使是一部IP电话机,根据这个思路,我们在终端上配置多个默认网关即可实现路由备份了,但是存在以下两个问题:
- 对于下行设备是PC来讲,配置了多个默认网关之后,其中一个会作为活动默认
网关,其它的作为备份默认网关,其按照下列过程执行流量转发和失效网关检测:
当TCP/IP在通过活动默认网关向某个目标IP地址进行TCP通信时,如果失败的尝试次数达到TcpMaxDataRetransmissions注册表值(默认为5)的一半(即3次)还没有收到响应,TCP/IP将到达该目标IP地址的通信改为使用列表中的下一默认网关,这一步是通过更改该远程IP地址的路由缓存项(Route Cache Entry,RCE)来实现的,从而使用列表中的下一个默认网关来作为下一跳地址。其中RCE是路由表中的一个条目,用于存储目的地的下一跳IP地址。当超过25%的TCP连接转向下一默认网关时,TCP/IP将活动默认网关修改为这些连接当前使用的默认网关。
如果此时原始默认网关从故障中回复,TCP/IP将继续使用当前的活动默认网关,而不会转移到原始默认网关,除非重启计算机。如果当前的活动默认网关也出现故障,那么TCP/IP就会继续尝试使用列表中的下一个默认网关,在尝试完整个列表后将返回到列表的开始,又从第一个默认网关开始进行尝试。
死网关检测仅监视TCP流量,如果其他类型的流量连接失败,不会切换默认网关。另外TCP是端到端的协议,因此即使当前默认网关完全正常,本地计算机的TCP通信失败也可能会导致切换默认网关。
当不同网络接口所连接的网络之间没有连接性时(如一个网络接口连接到Internet,而一个网络接口连接到内部网络),如果在多个网络接口上同时配置默认网关,在活动默认网关出现故障导致切换默认网关时,就可能会引起连接性故障。比如活动默认网关为Internet连接,当它出现问题时,此时默认网关切换为内部连接,此时,本地计算机将无法再访问位于Internet连接上的主机。对于这种情况,微软建议使用 route add 来添加对应目的网络的匹配路由,而不是设置多个默认网关,这其实就是最长匹配原则,精确路由优先于缺省路由。
2.对于下行设备是路由器的情况,其不会切换默认路由,只会按照配置好的缺省
路由优先级进行流量转发,从而导致路由黑洞。
结合上面两个原因,在网络出口路由器的下行设备上配置缺省路由的方法也不可行。
综上所述,要想消除单点故障,又同时实现下行设备在故障发生时的流量无障碍
转发,以上的三个方法均不可行,所以人们开发出了一种全新的协议:VRRP,这
种协议无需下行设备与出口路由器进行交互性操作,却完全实现了网络出口的冗
余备份。










