一、VRRP简介

虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。

随着网络的快速普及和相关应用的日益深入,各种增值业务(如IPTV、视频会议等)已经开始广泛部署,基础网络的可靠性日益成为用户关注的焦点,能够保证网络传输不中断对于终端用户非常重要。

通常,同一网段内的所有主机上都设置一条相同的、以网关为下一跳的缺省路由。主机发往其他网段的报文将通过缺省路由发往网关,再由网关进行转发,从而实现主机与外部网络的通信。

当网关发生故障时,本网段内所有以网关为缺省路由的主机将无法与外部网络通信。增加出口网关是提高系统可靠性的常见方法,此时如何在多个出口之间进行选路就成为需要解决的问题。

VRRP的出现很好的解决了这个问题。VRRP能够在不改变组网的情况下,采用将多台路由设备组成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现默认网关的备份。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。

在具有多播或广播能力的局域网(如以太网)中,借助VRRP能在网关设备出现故障时仍然提供高可靠的缺省链路,无需修改主机及网关设备的配置信息便可有效避免单一链路发生故障后的网络中断问题。

二、VRRP原理

1、VRRP概述




vrrp和ospf联动 vrrp与ospf_IP


图1 VRRP备份组示意图

如上图1所示,HostA通过Switch双归属到SwitchA和SwitchB。在SwitchA和SwitchB上配置VRRP备份组,对外体现为一台虚拟路由器,实现链路冗余备份。

我们可以在如上图1所示的网络中部署VRRP协议,下面结合该图介绍VRRP协议的基本概念:

1、VRRP路由器(VRRP Router):

运行VRRP协议的设备,它可能属于一个或多个虚拟路由器,如SwitchA和SwitchB。

2、虚拟路由器(Virtual Router):

又称VRRP备份组,由一个Master设备和多个Backup设备组成,被当作一个共享局域网内主机的缺省网关。如SwitchA和SwitchB共同组成了一个虚拟路由器。

3、Master路由器(Virtual Router Master):

承担转发报文任务的VRRP设备,如SwitchA。

4、Backup路由器(Virtual Router Backup):

一组没有承担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备,如SwitchB。

5、VRID:

虚拟路由器的标识。如SwitchA和SwitchB组成的虚拟路由器的VRID为1。

6、虚拟IP地址(Virtual IP Address):

虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。如SwitchA和SwitchB组成的虚拟路由器的虚拟IP地址为10.1.1.10/24。

7、IP地址拥有者(IP Address Owner):

如果一个VRRP设备将虚拟路由器IP地址作为真实的接口地址,则该设备被称为IP地址拥有者。如果IP地址拥有者是可用的,通常它将成为Master。

如SwitchA,其接口的IP地址与虚拟路由器的IP地址相同,均为10.1.1.10/24,因此它是这个VRRP备份组的IP地址拥有者。

8、虚拟MAC地址(Virtual MAC Address):

虚拟路由器根据虚拟路由器ID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID}(VRRP for IPv4);00-00-5E-00-02-{VRID}(VRRP for IPv6)。

当虚拟路由器回应ARP请求时,使用虚拟MAC地址,而不是接口的真实MAC地址。如SwitchA和SwitchB组成的虚拟路由器的VRID为1,因此这个VRRP备份组的MAC地址为00-00-5E-00-01-01。

2、VRRP协议报文

VRRP协议报文用来将Master设备的优先级和状态通告给同一备份组的所有Backup设备。

VRRP协议报文封装在IP报文中,发送到分配给VRRP的IP组播地址。在IP报文头中,源地址为发送报文接口的主IP地址(不是虚拟IP地址),目的地址是224.0.0.18,TTL是255,协议号是112。

主IP地址(Primary IP Address):从接口的真实IP地址中选出来的一个主用IP地址,通常选择配置的第一个IP地址。

目前,VRRP协议包括两个版本:

VRRPv2和VRRPv3。VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。

基于不同的网络类型,VRRP可以分为VRRP for IPv4和VRRP for IPv6(简称VRRP6)。VRRP for IPv4支持VRRPv2和VRRPv3,而VRRP for IPv6仅支持VRRPv3。

3、VRRP报文结构

VRRPv2和VRRPv3的报文结构分别如下图1和下图2所示:


vrrp和ospf联动 vrrp与ospf_字段_02


图1 VRRPv2报文结构


vrrp和ospf联动 vrrp与ospf_vrrp和ospf联动_03


图2 VRRPv3报文结构

各字段的含义如下表1所示:

表1 VRRP报文字段含义

报文字段

含义

VRRPv2

VRRPv3

Version

VRRP协议版本号,取值为2。

VRRP协议版本号,取值为3。

Type

VRRP通告报文的类型,取值为1,表示Advertisement。

VRRP通告报文的类型,取值为1,表示Advertisement。

Virtual Rtr ID(VRID)

虚拟路由器ID,取值范围是1~255。

虚拟路由器ID,取值范围是1~255。

Priority

Master设备在备份组中的优先级,取值范围是0~255。0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。

Master设备在备份组中的优先级,取值范围是0~255。0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。

Count IP Addrs/Count IPvX Addr

备份组中虚拟IPv4地址的个数。

备份组中虚拟IPv4或虚拟IPv6地址的个数。

Auth Type

VRRP报文的认证类型。协议中指定了3种类型:

  • 0:Non Authentication,表示无认证。
  • 1:Simple Text Password,表示明文认证方式。
  • 2:IP Authentication Header,表示MD5认证方式。

-

Adver Int/Max Adver Int

VRRP通告报文的发送时间间隔,单位是秒,缺省值为1秒。

VRRP通告报文的发送时间间隔,单位是厘秒,缺省值为100厘秒(1秒)。

Checksum

16位校验和,用于检测VRRP报文中的数据破坏情况。

16位校验和,用于检测VRRP报文中的数据破坏情况。

IP Address/IPvX Address(es)

VRRP备份组的虚拟IPv4地址,所包含的地址数定义在Count IP Addrs字段。

VRRP备份组的虚拟IPv4地址或者虚拟IPv6地址,所包含的地址数定义在Count IPvX Addrs字段。

Authentication Data

VRRP报文的认证字。目前只有明文认证和MD5认证才用到该部分,对于其它认证方式,一律填0。

rsvd

VRRP报文的保留字段,必须设置为0。

由报文结构可以看出,VRRPv2和VRRPv3的主要区别为:

1、支持的网络类型不同:

VRRPv3适用于IPv4和IPv6两种网络,而VRRPv2仅适用于IPv4网络。

2、认证功能不同:

VRRPv3不支持认证功能,而VRRPv2支持认证功能。

VRRPv2版本保留报文的认证字段,是为了兼容早期版本(RFC2338),VRRP认证并不能提高安全性。

发送通告报文的时间间隔的单位不同。VRRPv3支持的是厘秒级,而VRRPv2支持的是秒级。