一、VRRP协议的基本概述
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种容错协议,可通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的缺省网关实现与外部网络的通信。当网关设备发生故障时,VRRP机制能够快速选举新的网关设备承担数据流量,从而保障网络的可靠通信。VRRP在华为S系列三层交换机、AR G3/NE系列路由中都可得到应用。在早期大约十年前我们使用MSTP与VRRP结合的二三层组网方式实现网络的冗余备份,更新迭代到近代后,大部分企业公司都使用堆叠和链路聚合的组网方式。
二、VRRP协议产生的背景
在我们网络拓扑当中通常使用MSTP来实现二层网络的冗余备份以及消除环路的功能,但由于MSTP只能作用在二层网络当中,那么在三层网络当中我们使用什么协议来实现链路的冗余备份呢?我们通常使用汇聚层设备或核心层设备作为缺省网关设备,内部用户通过缺省网关实现与外部的通信,但由于我们的终端只能配置一个缺省网关IP地址,这样就会导致一个问题的产生"单点故障",那么单点故障是什么呢?如下图所示
在这张拓扑当中,我们使用了SW1与SW2两台三层交换机配置vlanif接口作为我们内部终端的缺省网关,内部终端设备在访问外部网络时,需将gateway设置成对应的IP地址,但有一个问题,如果其中一个交换机故障或被关机等各种问题导致网关失效,内部终端设备将无法进行有效的访问外部网络。
当然我们这个组网可以实现链路冗余备份,所以我们可以通过修改IP地址以及网关等参数通过SW2来访问外部网络,但是一般来说具体的IP地址网段以及掩码网关等信息只有内部人员或管理员才清楚,所以这并不是一个有效的办法,这时我们就可以配置VRRP虚拟路由冗余协议来实现我们的网关的冗余备份,当SW1故障或被关机无法通过SW1进行访问外部网络时,VRRP会自动将网关参数等信息切换到SW2上,这一操作对于内部终端来说是不可知隐式的操作,这样就实现了我们的三层网络的冗余备份。
三、VRRP协议的基本概念
1、VRRP路由器(VRRP Router)
VRRP路由器是指运行VRRP的设备(可以是路由器,也可以是三层交换机,下同),可加入到一个或多个虚拟路由器备份组中。在同一个备份组中各路由器的下行VRRP接口的IP地址必须在同一个IP网段。
2、VRID
虚拟路由器标识,用来唯一标识一个VRRP备份组。(如果VRID不一致则表示不在同一个VRRP备份组当中)当VRID不一致、认证参数不通过或不一致和Virtual IP不一致时可能会产生双主现象就是存在两台Master路由器,如果形成双主现象由于不在同一备份组,虽然VRID不一致但它们所生成出来的虚拟MAC一致,就会导致MAC地址漂移现象。
3、虚拟路由器(Virtual Router)
又称VRRP备份组,由一个Master(主用)设备和0个或多个Backup(备用)设备组成,被当作一个共享局域网内主机的缺省网关。(但是通常来说至少都会存在一个或多个Backup备份设备,因为如果没有备份设备那也就没必要使用VRRP协议来实现网关备份)
4、虚拟MAC地址(Virtual MAC Address)
虚拟路由器根据虚拟路由器ID(VRID)生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,00-00-5E-00-01-[VRID](VRRP for IPv4);00-00-5E-00-02-[VRID](VRRP for IPv6)。当虚拟路由器回应ARP请求时,使用的是虚拟MAC地址,而不是VRRP接口的真实MAC地址。
5、Master路由器(主用路由器)
VRRP备份组中当前承担转发报文任务的VRRP设备。
6、Backup路由器(备用路由器)
VRRP备份组中一组没有承担转发任务的VRRP设备,但当Master设备出现故障时,它们将通过选举成为新的Master设备。
7、VRRP优先级(Priority)
用来标识虚拟路由器中各成员路由设备的优先级。虚拟路由器根据优先级选举出Master设备和Backup设备,可选范围为1~254,0与255是不能够进行配置的,如果优先级为0代表不进行选举,与OSPF中选举DR的优先级类似,如果优先级为255则表示该设备为IP地址拥有者。
8、虚拟IP地址(Virtual IP Address)
分配给虚拟路由器的IP地址。一个虚拟路由器可以有一个或多个IP地址(多个IP地址时,只有一个是主IP地址,其他均为从IP地址),由用户配置,但必须与下行VRRP接口对应主或从IP地址在同一IP网段。
9、IP地址拥有者(IP Address Owner)
如果一个VRRP设备将虚拟路由器的IP地址与其VRRP接口IP地址一样,则该设备被称为IP地址拥有者。如果该IP地址拥有者是可用的,将直接成为Master,不用选举,也不可抢占,除非该设备不可用。
10、抢占模式
在抢占模式下,如果Backup设备的优先级比当前Master设备的优先级高,则Backup设备主动将自己切换成Master。
11、非抢占模式
在非抢占模式下,只要Master设备没有出现故障,Backup设备即使随后被配置了更高的优先级也不会成为Master设备。
2、VRRP的主要好处
配置VRRP功能,可以带来以下好处。
- 简化网络管理:VRRP能在当前网关设备出现故障时仍然提供高可靠的缺省链路,且无需修改动态路由协议、路由发现协议等配置信息,可有效比避免单一链路发生故障后的网络中断问题。
- 适应性强:VRRP报文封装在IP报文中,支持各种上层协议。
- 网络开销小:VRRP只定义了一种报文,即VRRP报文,有效地减轻了网络的额外负担。
四、VRRP协议的报文格式
要理解VRRP的工作原理,先要了解VRRP报文。VRRP报文是通过下行的VRRP接口发送的,用来将Master设备的优先级和状态通告给同一备份组的所有Backup设备,即仅Master设备会发送VRRP报文。它们封装在IP报文中,通过VRRP组播IP地址进行发送,报文头中源地址为发送报文的VRRP接口的主IP地址(不是虚拟路由器的IP地址),目的地址为VRRP组播IP地址224.0.0.18,TTL是255,协议号是112。
目前,VRRP包括两个版本:VRRPv2和VRRPv3(与OSPF一致v2为v4版本v3为v6版本)。VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。VRRPv2和VRRPv3的报文结构非常相似v3版本将v2版本报文中的Auth Type字段修改为了(rsvd)这是因为ipv6协议本身自带认证字段,以及将Adver Int修改为了Max Adver Int本意上并无过多差异,报文具体结构可看下图,各字段说明如下表所示。
图
报文字段 | 说明 | |
VRRPv2 | VRRPv3 | |
Version | VRRP版本号,取值为2 | 取值为3 |
Type | VRRP报文类型,取值为1,表示Advertisement(通告)类型 | 与v2一致 |
Virtual Rtr ID(VRID) | 虚拟路由器ID,取值范围1~255 | 与v2一致 |
Priority | 表示Master设备在备份组中的优先级,取值范围是0~255。0表示设备要停止参与VRRP备份组,用来使备份设备尽快成为Master设备(会立即发送VRRP通告报文,而不必等待倒计时超时);255则保留给虚拟路由器IP地址拥有者,缺省值是100 | 与v2一致 |
Count IP Addrs/Count IPvX Addr | 表示VRRP备份组中配置的虚拟IPv4地址的个数 | 表示VRRP备份组中配置的虚拟IPv4或虚拟IPv6地址的个数 |
Auth Type | VRRP报文的认证类型。协议中指定了以下3中类型。
| 无此字段 |
Adver Int/Max Adver Int | 表示VRRP通告报文的发送时间间隔,单位是秒,缺省值为1s,即100厘秒 | 表示VRRP通告报文的发送时间间隔,单位是厘秒,缺省值为100厘秒,可以配置更小的报文发送时间间隔 |
Checksum | 16位校验和,用于检测VRRP报文中的数据破坏情况 | 与v2一致 |
IP Address/IPvX Address(es) | 表示VRRP备份组的虚拟IPv4地址,所包含的地址数定义在Count IP Addres字段 | 表示VRRP备份组的虚拟IPv4地址或者虚拟IPv6地址,所包含的地址数定义在Count IPvX Addrs字段 |
Authentication Data | 表示认证数据。目前只有明文密码认证和MD5认证才用到该部分,对于其他认证方式,一律填0 | 无此字段 |
rsvd | 无此字段 | VRRP报文的保留字段,必须设置为0 |
由以上VRRPv2和VRRPv3的报文结构可以看出,两者的主要区别如下:
- 支持的网络类型不同。VRRPv3同时适用于v4以及v6两种网络,而VRRPv2仅适用于v4网络。
- 认证功能不同。VRRPv3不支持认证功能,而VRRPv2支持认证功能,因为ipv6协议自身带有认证功能,IPSec是IPv6的必备组成部分。
- 发送通告报文的时间间隔的单位不同:VRRPv3支持的是厘秒级(发送频率可以更高),而VRRPv2支持的秒级。
五、VRRP基本工作原理
VRRP的工作原理主要体现在设备的协议状态改变上。在VRRP中定义了3中状态机:
- 初始状态(Initialize):对应的三层网络接口down的时候,关闭状态。
- 活动状态(Master):对应的三层网络接口backup状态等待Master down的时间间隔后,成为Master,当设备成为Master时会发送一份免费ARP刷新MAC地址表,当Master接口down时会发送一份优先级为0的报文告诉其他设备我们接口down了。
- 备份状态(Backup):对应的三层网络接口up的时候,备份状态。
- 注意:这里所指的三层网络接口可以是物理接口也可以是vlanif接口或者其他逻辑接口
在这3重状态机中,只有处于Master状态的设备才可以转发到虚拟路由器IP地址的数据报文。这3种协议状态之间的转换关系可看下图所示,具体说明可看下表。
状态 | 说明 |
Initialize | 初始状态:为VRRP不可用状态,在此状态时设备不会对VRRP报文进行任何处理。通常刚配置VRRP时或设备检测到故障时会进入该状态。 收到接口Startup(启动)的消息后,如果设备的优先级为255(表示该设备为IP地址拥有者),则直接成为Master设备,如果设备的优先级小于255,则会切换至Backup状态。 |
Master | 活动状态,表示当前设备为Master设备。当VRRP设备处于Master状态时,该设备会做下列工作。
|
Backup | 备份状态,表示当前设备为Backup设备。当VRRP设备处于Backup状态时,该设备会做下列工作。
|
总体来说,VRRP的基本工作原理如下。
- VRRP备份组中的设备根据优先级选举出Master,选举后的Master设备会通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,以便在这些设备上建立到达虚拟路由器的ARP映射表。同时Master设备又会周期性地通过下行VRRP接口向备份组内所有Backup设备发送VRRP通告报文,以公布其配置信息(优先级等)和工作状况。
- 如果当前Master设备出现故障,将在Master_Down_Interval定时器超时后,或者由其他联动技术(如与BFD联动)检测到Master设备故障后,VRRP备份组中的Backup设备根据优先级重新选举新的Master。如果备份组中原来就只有两台设备,则原来的Backup设备直接转变为Master设备。
- 新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明(也就不需要用户干预)。
- 当原Master设备故障恢复时,如果该设备为虚拟路由器IP地址拥有者,将直接切换至Master状态;否则,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
- 如果Backup设备设置为抢占模式,则当Backup设备的优先级高于当前Master设备时,将立即抢占现有Master设备,否则仅在当前Master设备不可用时Backup设备才有可能会成为Master设备。
六、VRRP Master选举与状态通告
为了保证Master设备和Backup设备能够协调工作,VRRP需要实现以下两项基本功能,下面分别予以介绍。
- Master设备的选举
- Master设备状态的通告
1、Master设备的选举
VRRP根据优先级来确定虚拟路由器中每台设备的角色,优先级越高,则越有可能成为Master设备。
Master设备的选举过程:
- 初始创建的VRRP设备都工作在Initialize状态,当VRRP设备收到VRRP接口Startup的消息后,如果此设备的优先级等于255(也就是所配置的虚拟路由器IP地址是本设备VRRP接口的真实IP地址),将会直接切换至Master装填,并且无需进行下面的Master选举。否则,都会先切换至Backup状态,等待Master_Down_Interval定时器超时后再切换至Master状态(因为一开始,还没有最终选举Master设备,则这个Master_Down_Interval定时器最终肯定会超时)。
- 首先切换至Master状态的VRRP设备通过VRRP通告报文的交互获知虚拟设备中其他成员的优先级,然后根据以下规则进行Master的选举。
- 如果收到的VRRP报文中显示的Master设备的优先级高于或等于自己的优先级,则当前Backup设备保持Backup状态。
- 如果VRRP报文中的Master设备的优先级低于自己的优先级,当采用抢占方式时(缺省为抢占方式),则当前Backup设备将切换至Master状态;当采用非抢占模式时,当前Backup设备仍保持Backup状态。
- 如果创建了备份组的某VRRP设备为IP地址拥有者,则在收到接口up的消息后直接切换至Master状态。
- 如果有多个VRRP设备同时切换到Master状态,通过VRRP通告报文的交互进行协商后,优先级较低的VRRP设备将切换成Backup状态,优先级最高的VRRP设备成为最终的Master设备;优先级相同的情况下,再根据VRRP设备上VRRP备份组所在接口主IP地址大小进行比较,IP地址较大的成为Master设备。
2、Master设备状态的通告
Master设备会周期性地发送VRRP通告报文,在VRRP备份组中公布其配置信息(优先级等)和工作状况。Backup设备通过接收到Master设备发来的VRRP报文的情况来判断Master设备是否工作正常。
当Master设备主动放弃Master地位(如Master设备推出备份组)时,会发送优先级为0的VRRP通告报文,使Backup设备快速切换成Master设备,而不用等到Master_Down_Interval定时器超时。这个切换的时间称为Skew_time,计算方式为:(256-Backup设备的优先级)/256,单位为秒。因为各Backup设备的优先级可能不同,所以这个时间也用来避免Master路由器出现故障时,备份组中的多个Backup路由器在同一时刻同时转变为Master路由器。
当Master设备发生网络故障(如设备本身出现故障,或下行链路出现故障)而不能发送VRRP通告报文时,Backup设备并不能立即知道其工作状况,要等待Master_Down_Interval定时器超时后,才会认为Master设备无法正常工作,从而将状态切换称为Master。其中,Master)Down_Interval定时器取值为:3*Advertisement_Interval+Skew_time,单位为秒。
在设备功能不稳定的网络中,网络堵塞可能导致Backup设备在Master_Down_Interval定时器超时后仍没有收到Master设备的报文后,使得Backup设备主动切换为Master。如果此时原Master设备发送的VRRP通告报文又到达了,新Master设备将再次切换回Backup状态。这样就会出现VRRP备份组成员状态频繁切换的现象。为了缓解这种现象,可以配置抢占延时,使得Backup设备在等待了Master_Down_Interval定时器后再等待抢占延时时间。如果在此期间仍没有收到通告报文,Backup设备次啊会切换为Master设备。
Master设备还可在监视到其上行链路接口变为Down状态后,减低自己的优先级,然后在下次VRRP通告报文发送定时器超时后向备份组中发送VRRP通告报文(不立即发送VRRP通告报文),让其他Backup设备成为Master设备。
七、VRRP的两种主备模式
在VRRP的主备应用中,根据不同的应用需求可以配置主备备份和负载分担两种模式。
1、VRRP主备备份模式
主备备份模式是VRRP提供备份功能的基本模式,就是同一时间仅由Master设备负责业务数据的处理,所有Backup设备均仅处于待命备份状态,不进行业务数据的处理,仅在当前Master设备出现故障时,再从Backup设备中选举一台设备成为新的Master设备,接替原来Master设备的业务处理工作。显然,这不是一种经济的方式,因为至少有一台设备长期处于待命状态,造成设备资源的浪费,有点类似与RSTP与MSTP。
2、VRRP负载分担模式
以上主备备份模式显然有些浪费资源了,因为大多数时间Backup设备都没有发挥作用,所以通常采用的是"VRRP负载分担模式"。负载分担模式可以充分发挥每台VRRP设备的业务处理能力。但是要注意的是,负载分担模式需要建立多个指派不同设备为Master设备的VRRP备份组,同一台VRRP设备可以加入多个备份组,在不同的备份组中具有不同的优先级。但每个备份组与VRRP主备备份模式的基本原理和报文协商过程都是相同的,对于每一个VRRP备份组,也都包含一个Master设备或若干Backup设备。
通过创建多个带虚拟IP地址的VRRP备份组,为不同的用户指定不同的VRRP备份组作为网关,实现负载分担。这是最常见的负载分担方式。
以上就是本章的全部内容了,感谢大家的浏览观看,文章中如有错误或疑问可联系博主删除更改,文章中部分内容源自教材《华为路由器学习指南》感兴趣可购买相关书籍浏览。