定义:
虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。
VRRP协议基本概念:
-
VRRP路由器(VRRP Router):运行VRRP协议的设备,它可能属于一个或多个虚拟路由器,如RouterA和RouterB。
-
虚拟路由器(Virtual Router):又称VRRP备份组,由一个Master设备和多个Backup设备组成,被当作一个共享局域网内主机的缺省网关。如RouterA和RouterB共同组成了一个虚拟路由器。
-
Master路由器(Virtual Router Master):承担转发报文任务的VRRP设备,如RouterA。
-
Backup路由器(Virtual Router Backup):一组没有承担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备,如RouterB。
-
VRID:虚拟路由器的标识。如RouterA和RouterB组成的虚拟路由器的VRID为1。
-
虚拟IP地址(Virtual IP Address):虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。
-
IP地址拥有者(IP Address Owner):如果一个VRRP设备将虚拟路由器IP地址作为真实的接口地址,则该设备被称为IP地址拥有者。如果IP地址拥有者是可用的,通常它将成为Master。如RouterA,其接口的IP地址与虚拟路由器的IP地址相同,均为10.1.1.10/24,因此它是这个VRRP备份组的IP地址拥有者。
-
虚拟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地址。如RouterA和RouterB组成的虚拟路由器的VRID为1,因此这个VRRP备份组的MAC地址为00-00-5E-00-01-01。
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。
VRRP报文结构:
VRRPv2和VRRPv3的报文结构分别如图1和图2所示。
报文字段 | 含义 | |
---|---|---|
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种类型:
|
- |
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的主要区别为:
-
支持的网络类型不同。VRRPv3适用于IPv4和IPv6两种网络,而VRRPv2仅适用于IPv4网络。
-
认证功能不同。VRRPv3不支持认证功能,而VRRPv2支持认证功能。
-
发送通告报文的时间间隔的单位不同。VRRPv3支持的是厘秒级,而VRRPv2支持的是秒级。
VRRP认证:
VRRPv2支持在通告报文中设定不同的认证方式和认证字。
- 无认证方式:设备对要发送的VRRP通告报文不进行任何认证处理,收到通告报文的设备也不进行任何认证,认为收到的都是真实的、合法的VRRP报文。
- 简单字符(Simple)认证方式:发送VRRP通告报文的设备将认证方式和认证字填充到通告报文中,而收到通告报文的设备则会将报文中的认证方式和认证字与本端配置的认证方式和认证字进行匹配。如果相同,则认为接收到的报文是合法的VRRP通告报文;否则认为接收到的报文是一个非法报文,并丢弃这个报文。
- MD5认证方式:发送VRRP通告报文的设备利用MD5算法对认证字进行加密,加密后保存在Authentication Data字段中。收到通告报文的设备会对报文中的认证方式和解密后的认证字进行匹配,检查该报文的合法性。
VRRP工作原理:
VRRP状态机:
VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。
状态 |
说明 |
---|---|