概念
虚拟路由器冗余协议VRRP(Virtual Router Redundancy Protocol)是一种选择协议(在RFC2338文档中定义),可以通过使用VRRP把虚拟路由器的任务分配给LAN上的VRRP路由器中的一台。控制虚拟路由器IP地址的VRRP路由器称为主路由器,它负责转发数据包到这些虚拟IP地址。当主路由器不可用时,VRRP提供了动态的故障转移机制,允许将任意一个虚拟路由器的IP地址作为终端主机的默认第一跳路由器地址。在无需要求每台终端主机都配置动态路由或路由发现协议的情况下,使用VRRP可以获得高可用性的默认路由。
原理
VRRP协议的实现有VRRPv2和VRRPv3两个版本。其中,VRRPv2基于IPv4,VRRPv3基于IPv6。VRRPv2和VRRPv3在功能实现上并没有区别,只是应用的网络环境不同。
VRRP将LAN的一组路由器(包括一个主路由器和若干个备份路由器)组织成一个虚拟路由器,称之为一个备份组。在备份组中,只有主路由器负责为网络内的主机提供路由服务。如果备份组内的主路由器坏掉,备份路由器将会通过选举策略选出一个新的主路由器,继续向网络内的主机提供路由服务。从而实现网络内的主机不间断地与外部网络进行通信。
虚拟路由器拥有自己的IP地址(可以和备份组内的某个路由器的接口地址相同),备份组内的路由器也有各自的IP地址。LAN内的主机仅知道虚拟路由器的IP地址,它们将自己的缺省路由下一跳地址设置为该虚拟路由器的IP地址。于是,LAN内的主机就通过虚拟路由器与其他网络进行通信。用VRRP实现虚拟路由器的示意图如图5-18所示。
说明如下:
l 路由器1、2、3组成了虚拟路由器,其中路由器1为主路由器,路由器2、3为备份路由器。
l 虚拟路由器的IP地址为10.1.1.23,路由器1的IP地址为10.1.1.42,路由器2的IP地址为10.1.1.29,路由器3的IP地址为10.1.1.6。
l LAN内的主机将自己的缺省路由下一跳地址设置为10.1.1.23。
l LAN内的主机通过虚拟路由器(实际使用的是路由器1,但主机并不清楚)与其他网络进行通信。
l 路由器1出现故障后,根据选举策略,路由器2成为主路由器,继续为LAN内的主机提供路由服务。
由于在备份组中,只有主路由器为网络中的主机提供路由服务,而备份路由器和对应的链路均处于闲置状态。这样造成了负载不均衡,当网络负载较大时此问题更加突出。因此,通常使用双或多备份组来避免或减少此问题。例如,图5-18中设置两个备份组A和B。A和B均包含路由器1~3。在备份组A中路由器1为主路由器,在备份组B中路由器2为主路由器。主机1、2的缺省路由下一跳为路由器1,主机3、4的缺省路由下一跳为路由器2。这样,既分担了设备负载和网络流量,又提高了网络可靠性。
报文格式
VRRPv2的报文格式如图5-19所示。
VRRPv3的报文格式如图5-20所示。
报文中各字段的含义如表5-8所示。