VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议

一、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本意上并无过多差异,报文具体结构可看下图,各字段说明如下表所示。

报文字段说明 
 VRRPv2VRRPv3
VersionVRRP版本号,取值为2取值为3
TypeVRRP报文类型,取值为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中类型。

  • 0:Non Authentication,表示不进行认证
  • 1:Simple Text Password,表示采用明文密码认证方式
  • 2:IP Authentication Header,表示采用MD5认证方式
无此字段
Adver Int/Max Adver Int表示VRRP通告报文的发送时间间隔,单位是秒,缺省值为1s,即100厘秒表示VRRP通告报文的发送时间间隔,单位是厘秒,缺省值为100厘秒,可以配置更小的报文发送时间间隔
Checksum16位校验和,用于检测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状态时,该设备会做下列工作。

  • 定时发送VRRP通告报文
  • 以虚拟MAC地址响应对虚拟IP地址的ARP请求
  • 转发目的MAC地址为虚拟MAC地址的IP报文
  • 如果它是这个虚拟IP地址的拥有者,或者收到与自己优先级相等的VRRP报文,且本地接口IP地址小于源端接口的IP地址时,则立即转变为Backup状态(仅在抢占模式下生效)
  • 收到接口Shutdown(关闭)消息后,则立即转变为Initialize状态
Backup

备份状态,表示当前设备为Backup设备。当VRRP设备处于Backup状态时,该设备会做下列工作。

  • 接收Master设备发送的VRRP通告报文,判断Master设备的状态是否正常
  • 对虚拟路由器IP地址的ARP请求不响应
  • 丢弃目的MAC地址为虚拟路由器MAC地址的IP报文
  • 丢弃目的IP地址为虚拟路由器IP地址的IP报文
  • 如果收到优先级和自己相同,或者比自己高的VRRP报文,则重置Master_Down_Interval定时器(不进一步比较IP地址)定时器相关内容在下图有解析
  • 如果收到比自己优先级小的VRRP报文,且该报文优先级为0(表示发送VRRP报文的原Master设备不再参与VRRP组了)时,定时器时间设置为Skew_time(偏移时间)。
  • 如果收到比自己优先级小的VRRP报文,且该报文优先级不为0,则丢弃报文,立即转变为Master状态(仅在抢占模式下生效)
  • 如果Master_Down_Interval定时器超时,则立即转变为Master状态
  • 如果收到接口Shutdown消息,则立即转变为Initialize状态

        总体来说,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备份组作为网关,实现负载分担。这是最常见的负载分担方式。

以上就是本章的全部内容了,感谢大家的浏览观看,文章中如有错误或疑问可联系博主删除更改,文章中部分内容源自教材《华为路由器学习指南》感兴趣可购买相关书籍浏览。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fanmeang.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值