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

定义:

虚拟路由冗余协议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所示。

图1 VRRPv2报文结构:

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

图2 VRRPv3报文结构:

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

各字段的含义如表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的主要区别为:

  • 支持的网络类型不同。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地址的报文。

表1 VRRP协议状态

状态

说明

Initialize

该状态为VRRP不可用状态,在此状态时设备不会对VRRP报文做任何处理。

通常刚配置VRRP时或设备检测到故障时会进入Initialize状态。

收到接口Up的消息后,如果设备的优先级为255,则直接成为Master设备;如果设备的优先级小于255,则会先切换至Backup状态。

Master

当VRRP设备处于Master状态时,它将会做下列工作:
  • 定时(Advertisement Interval)发送VRRP通告报文。
  • 以虚拟MAC地址响应对虚拟IP地址的ARP请求。
  • 转发目的MAC地址为虚拟MAC地址的IP报文。
  • 如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。
  • 如果收到比自己优先级大的报文,立即成为Backup。
  • 如果收到与自己优先级相等的VRRP报文且本地接口IP地址小于对端接口IP,立即成为Backup。

Backup

当VRRP设备处于Backup状态时,它将会做下列工作:
  • 接收Master设备发送的VRRP通告报文,判断Master设备的状态是否正常。
  • 对虚拟IP地址的ARP请求,不做响应。
  • 丢弃目的IP地址为虚拟IP地址的IP报文。
  • 如果收到优先级和自己相同或者比自己大的报文,则重置Master_Down_Interval定时器,不进一步比较IP地址。

    Master_Down_Interval定时器:Backup设备在该定时器超时后仍未收到通告报文,则会转换为Master状态。计算公式如下:Master_Down_Interval=(3* Advertisement_Interval) + Skew_time。其中,Skew_Time=(256–Priority)/256。

  • 如果收到比自己优先级小的报文且该报文优先级是0时,定时器时间设置为Skew_time(偏移时间),如果该报文优先级不是0,丢弃报文,立刻成为Master。

VRRP工作过程:

VRRP的工作过程如下:

  1. VRRP备份组中的设备根据优先级选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
  2. Master设备周期性向备份组内所有Backup设备发送VRRP通告报文,以公布其配置信息(优先级等)和工作状况。
  3. 如果Master设备出现故障,VRRP备份组中的Backup设备将根据优先级重新选举新的Master。
  4. VRRP备份组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
  5. 原Master设备故障恢复时,若该设备为IP地址拥有者(优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
  6. Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。

    • 抢占模式:在抢占模式下,如果Backup设备的优先级比当前Master设备的优先级高,则主动将自己切换成Master。

    • 非抢占模式:在非抢占模式下,只要Master设备没有出现故障,Backup设备即使随后被配置了更高的优先级也不会成为Master设备。

由此可见,为了保证Master设备和Backup设备能够协调工作,VRRP需要实现以下功能:

  • Master设备的选举。
  • Master设备状态的通告。

下面将从上述两个方面详细介绍VRRP的工作过程。

  • Master设备的选举

    VRRP根据优先级来确定虚拟路由器中每台设备的角色(Master设备或Backup设备)。优先级越高,则越有可能成为Master设备。

    初始创建的VRRP设备工作在Initialize状态,收到接口Up的消息后,如果设备的优先级为255,则直接成为Master设备;如果设备的优先级小于255,则会先切换至Backup状态,待Master_Down_Interval定时器超时后再切换至Master状态。首先切换至Master状态的VRRP设备通过VRRP通告报文的交互获知虚拟设备中其他成员的优先级,进行Master的选举:
    • 如果VRRP报文中Master设备的优先级高于或等于自己的优先级,则Backup设备保持Backup状态。

    • 如果VRRP报文中Master设备的优先级低于自己的优先级,采用抢占方式的Backup设备将切换至Master状态,采用非抢占方式的Backup设备仍保持Backup状态。

    • 如果多个VRRP设备同时切换到Master状态,通过VRRP通告报文的交互进行协商后,优先级较低的VRRP设备将切换成Backup状态,优先级最高的VRRP设备成为最终的Master设备;优先级相同时,VRRP设备上VRRP备份组所在接口主IP地址较大的成为Master设备。

    • 如果创建的VRRP设备为IP地址拥有者,收到接口Up的消息后,将会直接切换至Master状态。

  • Master设备状态的通告

    Master设备周期性地发送VRRP通告报文,在VRRP备份组中公布其配置信息(优先级等)和工作状况。Backup设备通过接收到VRRP报文的情况来判断Master设备是否工作正常。
    • 当Master设备主动放弃Master地位(如Master设备退出备份组)时,会发送优先级为0的通告报文,用来使Backup设备快速切换成Master设备,而不用等到Master_Down_Interval定时器超时。这个切换的时间称为Skew time,计算方式为:(256-Backup设备的优先级)/256,单位为秒。
    • 当Master设备发生网络故障而不能发送通告报文的时候,Backup设备并不能立即知道其工作状况。等到Master_Down_Interval定时器超时后,才会认为Master设备无法正常工作,从而将状态切换为Master。其中,Master_Down_Interval定时器取值为:3×Advertisement_Interval+Skew_time,单位为秒。
  • 在性能不稳定的网络中,网络堵塞可能导致Backup设备在Master_Down_Interval期间没有收到Master设备的报文,Backup设备则会主动切换为Master。如果此时原Master设备的报文又到达了,新Master设备将再次切换回Backup。如此则会出现VRRP备份组成员状态频繁切换的现象。为了缓解这种现象,可以配置抢占延时,使得Backup设备在等待了Master_Down_Interval后,再等待抢占延迟时间。如在此期间仍没有收到通告报文,Backup设备才会切换为Master设备。

VRRP主备备份:

主备备份是VRRP提供备份功能的基本方式,如图1所示。该方式需要建立一个虚拟路由器,该虚拟路由器包括一个Master设备和若干Backup设备。

正常情况下,RouterA为Master设备并承担业务转发任务,RouterB和RouterC为Backup设备且不承担业务转发。RouterA定期发送VRRP通告报文通知RouterB和RouterC自己工作正常。如果RouterA发生故障,RouterB和RouterC会根据优先级选举新的Master设备,继续为主机转发数据,实现网关备份的功能。

RouterA故障恢复后,在抢占方式下,将重新选举成为Master;在非抢占方式下,将保持在Backup状态。

图1 VRRP主备备份示意图:

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

VRRP负载分担:

负载分担是指多个VRRP备份组同时承担业务,如图1所示。VRRP负载分担与VRRP主备备份的基本原理和报文协商过程都是相同的。同样对于每一个VRRP备份组,都包含一个Master设备和若干Backup设备。与主备备份方式不同点在于:负载分担方式需要建立多个VRRP备份组,各备份组的Master设备可以不同;同一台VRRP设备可以加入多个备份组,在不同的备份组中具有不同的优先级。

多网关负载分担:

通过创建多个带虚拟IP地址的VRRP备份组,为不同的用户指定不同的VRRP备份组作为网关,实现负载分担。

图1 多网关负载分担示意图:

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

如图1所示,配置两个VRRP备份组。

  • VRRP备份组1:RouterA为Master设备,RouterB为Backup设备。
  • VRRP备份组2:RouterB为Master设备,RouterA为Backup设备。

一部分用户将VRRP备份组1作为网关,另一部分用户将VRRP备份组2作为网关。这样既可实现对业务流量的负载分担,同时,也起到了相互备份的作用。

配置注意事项:

在路由器上部署VRRP功能时需注意:

  • 不同备份组之间的虚拟IP地址不能重复,并且必须和接口的IP地址在同一网段。
  • 保证同一备份组的设备上配置相同的备份组号(virtual-router-id)。
  • 不同接口上可以绑定相同virtual-router-id的VRRP备份组。
  • 在设备上同时配置VRRP和静态ARP时,需要注意:当在Dot1q终结子接口、QinQ终结子接口或者VLANIF接口下配置VRRP时,不能将与这些接口相关的静态ARP表项对应的映射IP地址作为VRRP的虚拟地址。否则会生成错误的主机路由,影响设备之间的正常转发。
  • 如果VRRP备份组内各路由器上配置的VRRP协议版本不同,可能导致VRRP报文不能互通。

缺省配置:

表1 VRRP常用参数缺省值
参数 缺省值
设备在VRRP备份组中的优先级 100
抢占方式 立即抢占
通告报文发送间隔 1秒
发送免费ARP报文时间间隔 120秒

配置VRRP(以下配置主要针对华为设备):

创建VRRP备份组:

背景信息

VRRP备份组能够在不改变组网的情况下,采用将多台设备虚拟成一台网关设备,将虚拟交换机设备的IP地址作为用户的默认网关的方式实现下一跳网关的备份。配置VRRP备份组后,流量通过Master设备转发,当Master设备故障时,迅速选举出新的Master设备继续承担流量转发,实现了网关冗余备份。

如果在网关冗余备份的同时,需要实现对流量的负载分担,则可以配置多网关负载分担。

操作步骤

  • 主备备份

    1. 执行命令system-view,进入系统视图。
    2. 执行命令interface interface-type interface-number,进入接口视图。
    3. 执行命令vrrp vrid virtual-router-id virtual-ip virtual-address,创建VRRP备份组并给备份组配置虚拟IP地址。

      缺省情况下,设备上无VRRP备份组。

  • 多网关负载分担

    实现多网关负载分担,需要重复执行上述“主备备份”的操作步骤,在接口上配置两个或多个VRRP备份组,各备份组之间以备份组号(virtual-router-id)区分。

配置设备在备份组中的优先级:

背景信息

VRRP根据优先级决定设备在备份组中的地位,优先级越高,越可能成为Master设备。通过配置优先级,可以指定Master设备,以承担流量转发业务。

操作步骤

  1. 执行命令system-view,进入系统视图。

  2. 执行命令interface interface-type interface-number,进入接口视图。

  3. 执行命令vrrp vrid virtual-router-id priority priority-value,配置路由器在备份组中的优先级。

    缺省情况下,优先级的取值是100。数值越大,优先级越高。

    • 优先级0被系统保留作为特殊用途;优先级值255保留给IP地址拥有者。通过命令可以配置的优先级取值范围是1~254。

    • IP地址拥有者的优先级固定为255,用户不能手动修改。但是,用户可以通过vrrp vrid virtual-router-id priority priority-value为IP地址拥有者配置一个非255的优先级(该优先级不会取代255,不生效),当VRRP备份组不再是IP地址拥有者时,其优先级为配置的优先级。

    • 优先级取值相同的情况下,同时竞争Master时,备份组所在接口的主IP地址较大的成为Master设备;VRRP备份组中先切换至Master状态的设备为Master设备,其余Backup设备不再进行抢占。

(可选)配置VRRP协议的版本

背景信息

基于IPv4的VRRP支持VRRPv2和VRRPv3两个版本。如果VRRP备份组内各路由器上配置的协议版本不同,可能导致VRRP报文不能互通。

  • 配置了v2版本的备份组:只能发送和接收v2版本的VRRP通告报文。如果接收到v3版本的VRRP通告报文,则将此报文丢弃。
  • 配置了v3版本的备份组:能接收v2或v3版本的VRRP通过报文,发送报文的格式可以选择配置,包括仅发送v2版本报文、仅发送v3版本报文和既发送v2版本报文也发送v3版本报文。使用时可以根据需要进行配置。

操作步骤

  1. 执行命令system-view,进入系统视图。
  2. 执行命令vrrp version { v2 | v3 },配置当前设备的VRRP协议版本号。

     

    缺省情况下,VRRP协议版本号为2。

    如果选择v3版本,可以执行命令vrrp version-3 send-packet-mode { v2-only | v3-only | v2v3-both },配置VRRPv3发送通告报文的模式。缺省情况下,VRRPv3版本备份组发送通告报文的模式为v3-only。

(可选)配置VRRP的时间参数

背景信息

用户可以根据需要配置VRRP的时间参数,具体应用场景如表1所示。

表1 VRRP时间参数的应用场景
功能 应用场景
配置VRRP通告报文的发送间隔 Master设备定时(Advertisement_Interval)向组内的Backup设备发送VRRP通告报文,通告自己工作正常。如果Backup设备在Master_Down_Interval定时器超时后仍未收到VRRP通告报文,则重新选举Master。

网络流量过大或设备的定时器差异等因素会导致Backup设备无法及时接收到VRRP报文而发生状态转换,当原Master发送的报文到达新Master时,新Master将再次发生状态切换。通过延长Master设备发送VRRP报文的时间间隔可以解决此类问题。

配置路由器在VRRP备份组中的抢占延时 在不稳定的网络中,可能存在VRRP备份组监测的BFD等状态频繁振荡或Backup设备不能及时收到VRRP通告报文的情况,导致VRRP发生频繁切换而造成网络振荡。通过调整路由器在VRRP备份组中的抢占延时,使Backup设备在指定的时间后再进行抢占,有效避免了VRRP备份组状态的频繁切换。
配置Master设备发送免费ARP报文的超时时间

VRRP备份组中,为了确保下游交换机的MAC表项正确,Master设备会定时发送免费ARP报文,用来刷新下游交换机上的MAC地址表项。

说明:为避免VRRP协议震荡,请不要在VRRP备用设备上把系统MAC或VRRP虚MAC等一些特殊的MAC地址配置成黑洞MAC。

配置VRRP备份组的状态恢复延迟时间 在不稳定的网络中,VRRP备份组监测的BFD或接口等状态频繁振荡会导致VRRP备份组状态频繁切换。通过配置VRRP备份组的状态恢复延迟时间,VRRP备份组在接收到接口或BFD会话的Up事件时不会立刻响应,而是等待配置的状态恢复的延迟时间后,再进行相应的处理,防止因接口或BFD会话的频繁震荡而导致的VRRP状态的频繁切换。

操作步骤

  • 配置VRRP通告报文的发送间隔
    1. 执行命令system-view,进入系统视图。
    2. 执行命令interface interface-type interface-number,进入接口视图。
    3. 执行命令vrrp vrid virtual-router-id timer advertise advertise-interval,配置发送VRRP通告报文的时间间隔。

       

      缺省情况下,发送VRRP通告报文的时间间隔是1秒。

      说明:

      设备发送VRRP通告报文的时间间隔不能小于NSR主备板倒换所需的时间,否则在发生主备板倒换时可能出现协议闪断,建议将发送VRRP通告报文的时间间隔配置在1秒以上。

  • 配置路由器在VRRP备份组中的抢占延时
    1. 执行命令system-view,进入系统视图。
    2. 执行命令interface interface-type interface-number,进入接口视图。
    3. 执行命令vrrp vrid virtual-router-id preempt-mode timer delay delay-value,配置备份组中路由器的抢占延迟时间。

       

      缺省情况下,抢占延迟时间为0,即立即抢占。立即抢占方式下,Backup设备一旦发现自己的优先级比当前的Master的优先级高,就会抢占成为Master。

      可以执行vrrp vrid virtual-router-id preempt-mode disable命令设置备份组中路由器采用非抢占方式。在非抢占方式下,一旦备份组中的某台路由器成为Master,只要它没有出现故障,其它路由器即使随后被配置更高的优先级也不会成为Master。

      执行undo vrrp vrid virtual-router-id preempt-mode命令可以恢复缺省的抢占方式。

      说明:

      在配置VRRP备份组内各路由器的延迟方式时,建议Backup设备配置为立即抢占,Master设备配置为延时抢占,指定一定的延迟时间。这样配置的目的是为了在网络环境不稳定时,为上下行链路的状态恢复一致性等待一定时间,以免出现双Master设备或由于主备双方频繁抢占导致用户设备学习到错误的Master设备地址。

       

  • 配置Master设备发送免费ARP报文的超时时间
    1. 执行命令system-view,进入系统视图。
    2. 执行命令vrrp gratuitous-arp timeout time,配置Master发送免费ARP报文的超时时间。

       

      缺省情况下,Master每隔120秒发送一次免费ARP报文。

      说明:

      配置的Master设备发送免费ARP报文超时时间应小于用户侧设备的MAC地址表项老化时间。

      • 如果要恢复Master发送免费ARP报文的缺省超时时间,请在系统视图下执行undo vrrp gratuitous-arp timeout命令。

      • 如果不需要发送免费ARP报文,请在系统视图下执行vrrp gratuitous-arp timeout disable命令。

       

  • 配置VRRP备份组的状态恢复延迟时间
    1. 执行命令system-view,进入系统视图。
    2. 执行命令vrrp recover-delay delay-value,配置VRRP备份组的状态恢复延迟时间。

       

      缺省情况下,VRRP备份组状态恢复延迟时间为0秒。

      说明:
      • 执行此命令后,该路由器上所有VRRP备份组配置了相同的状态恢复延迟时间。

      • VRRP备份组中设备重启时,可能会出现VRRP状态震荡,因此建议用户根据组网情况配置一定的状态恢复延迟时间。

(可选)配置VRRP报文的认证方式

背景信息

VRRPv2支持在通告报文中设定不同的认证方式和认证字。

  • 无认证方式:设备对要发送的VRRP通告报文不进行任何认证处理,收到通告报文的设备也不进行任何认证,认为收到的都是真实的、合法的VRRP报文。
  • 简单字符(Simple)认证方式:发送VRRP通告报文的设备将认证方式和认证字填充到通告报文中,而收到通告报文的设备则会将报文中的认证方式和认证字与本端配置的认证方式和认证字进行匹配。如果相同,则认为接收到的报文是合法的VRRP通告报文;否则认为接收到的报文是一个非法报文,并丢弃这个报文。
  • MD5认证方式:发送VRRP通告报文的设备利用MD5算法对认证字进行加密,加密后保存在Authentication Data字段中。收到通告报文的设备会对报文中的认证方式和解密后的认证字进行匹配,检查该报文的合法性。

说明:

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

操作步骤

  1. 执行命令system-view,进入系统视图。
  2. 执行命令interface interface-type interface-number,进入接口视图。
  3. 执行命令vrrp vrid virtual-router-id authentication-mode { simple { key | plain key | cipher cipher-key } | md5 md5-key },配置VRRP报文认证方式。

     

    缺省情况下,VRRP备份组采用无认证方式。

    说明:
    • 同一VRRP备份组配置的认证方式和认证字必须相同,否则Master设备和Backup设备无法协商成功。

    • 为了保证更好的安全性,建议您使用更安全的MD5算法作为VRRP的认证算法。

(可选)使能虚拟IP地址Ping功能

背景信息

路由器支持对虚拟IP地址的Ping功能,可用于:

  • 检测备份组中的Master设备是否起作用。
  • 检测是否能通过使用某虚拟IP地址作为默认网关与外部通信。

注意:

使能虚拟地址可达性功能后,外部网络能够Ping通虚拟IP地址,可能遭受ICMP攻击的隐患,可以执行undo vrrp virtual-ip ping enable命令来去使能虚拟地址可达性功能。

操作步骤

  1. 执行命令system-view,进入系统视图。
  2. 执行命令vrrp virtual-ip ping enable,使能虚拟地址可达性功能。

     

    缺省情况下,该功能处于使能状态,Master设备响应对本备份组虚拟IP地址的Ping报文。

检查配置结果

操作步骤

  • 执行以下命令查看VRRP备份组的状态信息和配置参数。

     

    • display vrrp [ interface interface-type interface-number ] [ virtual-router-id ] [ brief ]
    • display vrrp { interface interface-type interface-number [ virtual-router-id ] | virtual-router-id } verbose

     

  • 执行display vrrp protocol-information命令查看VRRP协议的相关信息。
  • 执行display vrrp [ interface interface-type interface-number ] [ virtual-router-id ] statistics命令查看VRRP备份组的报文收发统计信息。

配置VRRP与BFD联动实现VRRP快速切换

 

背景信息

VRRP备份组故障时,Backup设备需要等待Master_Down_Interval定时器超时后才能感知故障并进行切换,切换时间通常在3秒以上,在等待切换期间内,业务流量仍会发往Master设备,此时会造成用户流量丢失。如图1所示,通过在Backup设备上配置VRRP联动BFD,使用BFD会话快速检测VRRP备份组间的通信故障,并在检测到故障时及时通知VRRP备份组升高Backup设备的优先级,立即触发主备切换,实现了毫秒级的切换速度,减少了流量的丢失。

VRRP备份组故障恢复时,Backup设备在备份组中的优先级将恢复原来的值,原Master设备将重新抢占成为Master,继续承担流量转发的业务。

说明:

  • VRRP与BFD联动仅支持静态和静态标识符自协商类型的BFD会话。

  • 配置VRRP与BFD联动时,备份组中Master和Backup设备必须都工作在抢占方式下。建议Backup设备配置为立即抢占,Master设备配置为延时抢占。

  • 多个VRRP备份组可以监视同一个BFD会话,一个VRRP备份组最多可以同时监视8个BFD会话。

图1 VRRP与BFD联动实现快速切换典型组网图

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

操作步骤

  1. 配置静态或静态标识符自协商类型的BFD会话。
  2. 执行命令system-view,进入系统视图。
  3. 执行命令bfd,使能全局BFD功能并进入BFD视图。

    缺省情况下,全局BFD功能处于未使能状态。

  4. (可选)执行命令multi-hop destination-port{ 3784 | 4784 },配置多跳BFD会话的目的端口号。

    缺省情况下,使用3784作为多跳BFD会话报文的目的端口号。

  5. 执行命令quit,返回系统视图。
  6. 执行命令bfd session-name bind peer-ip ip-address [ vpn-instance vpn-name ] [ source-ip ip-address ],创建BFD会话的绑定信息。

    缺省情况下,未创建BFD会话。

    说明:
    • 在创建多跳BFD会话时,必须绑定对端IP地址。

    • 在创建BFD配置项时,系统只检查IP地址是否符合IP地址格式,不检查其正确性。绑定错误的对端IP地址或源IP地址都将导致BFD会话无法建立。

    • 当BFD与单播逆向路径转发URPF(Unicast Reverse Path Forwarding)特性一起应用时,由于URPF会对接收到的报文进行源IP地址检查,用户在创建BFD绑定时,需要使用source-ip选项手工指定正确的源IP地址,以免BFD报文被错误地丢弃。

    • 配置BFD多跳会话时,如果peer-ip地址与某LDP-LSP/静态-LSP的32位目的地址相同,则该BFD会话会联动该LSP。即:当BFD会话检测到故障时,会触发LSP进行保护切换。

  7. 执行命令discriminator local discr-value,配置BFD会话的本地标识符。
  8. 执行命令discriminator remote discr-value,配置BFD会话的远端标识符。
    说明:

    BFD会话两端设备的本地标识符和远端标识符需要分别对应,即本端的本地标识符与对端的远端标识符相同,否则会话无法正确建立。并且,本地标识符和远端标识符配置成功后不可修改。

  9. 执行命令commit,提交配置。
  10. 执行命令system-view,进入系统视图。
  11. 执行命令interface interface-type interface-number,进入Backup设备上VRRP备份组所在的接口视图。
  12. 执行命令vrrp vrid virtual-router-id track bfd-session { bfd-session-id | session-name bfd-configure-name } [ increased value-increased | reduced value-reduced ],配置VRRP与BFD联动。

     

    缺省情况下,VRRP通过监视BFD会话状态来实现主备切换的功能未使能。

    说明: 在配置VRRP与BFD联动时:
    • 如果选择参数session-name bfd-configure-name,只能绑定静态标识符自协商的BFD会话类型。

    • 如果选择参数bfd-session-id,只能绑定静态的BFD会话类型。

    • 配置的优先级增加值必须确保优先级增加后Backup设备的优先级高于Master设备的优先级,以触发主备切换。

    • 缺省情况下,系统不允许删除已经跟VRRP或者静态路由联动的BFD会话,如果要删除,则可以配置bfd session nonexistent-config-check disable命令去使能检查被联动的BFD会话是否被删除的功能。

配置VRRP与BFD联动监视上行链路

背景信息

当VRRP备份组上行链路出现故障时,由于VRRP无法感知,可能会导致业务中断。如图1所示,通过在Master设备上配置VRRP与BFD联动,使用BFD会话检测Master设备上行链路状态,当BFD检测到上行链路故障时,及时通知VRRP备份组降低Master设备优先级,触发主备切换,以实现链路切换,减小链路故障对业务转发的影响。

上行链路故障恢复时,原Master设备在备份组中的优先级将恢复原来的值,重新抢占成为Master,继续承担流量转发的业务。

BFD可以实现毫秒级的故障检测,联动BFD可以快速地检测故障,从而使主备切换速度更快。

说明:

  • VRRP与BFD联动仅支持静态和静态标识符自协商类型的BFD会话。

  • 配置VRRP与BFD联动时,备份组中Master和Backup设备必须都工作在抢占方式下。建议Backup设备配置为立即抢占,Master设备配置为延时抢占。

  • 多个VRRP备份组可以监视同一个BFD会话,一个VRRP备份组最多可以同时监视8个BFD会话。

图1 VRRP与BFD联动监视上行链路典型组网组

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

操作步骤:

  1. 配置静态或静态标识符自协商类型的BFD会话。
  2. 执行命令system-view,进入系统视图。
  3. 执行命令bfd,使能全局BFD功能并进入BFD视图。

    缺省情况下,全局BFD功能处于未使能状态。

  4. (可选)执行命令multi-hop destination-port{ 3784 | 4784 },配置多跳BFD会话的目的端口号。

    缺省情况下,使用3784作为多跳BFD会话报文的目的端口号。

  5. 执行命令quit,返回系统视图。
  6. 执行命令bfd session-name bind peer-ip ip-address [ vpn-instance vpn-name ] [ source-ip ip-address ],创建BFD会话的绑定信息。

    缺省情况下,未创建BFD会话。

    说明:
    • 在创建多跳BFD会话时,必须绑定对端IP地址。

    • 在创建BFD配置项时,系统只检查IP地址是否符合IP地址格式,不检查其正确性。绑定错误的对端IP地址或源IP地址都将导致BFD会话无法建立。

    • 当BFD与单播逆向路径转发URPF(Unicast Reverse Path Forwarding)特性一起应用时,由于URPF会对接收到的报文进行源IP地址检查,用户在创建BFD绑定时,需要使用source-ip选项手工指定正确的源IP地址,以免BFD报文被错误地丢弃。

    • 配置BFD多跳会话时,如果peer-ip地址与某LDP-LSP/静态-LSP的32位目的地址相同,则该BFD会话会联动该LSP。即:当BFD会话检测到故障时,会触发LSP进行保护切换。

  7. 执行命令discriminator local discr-value,配置BFD会话的本地标识符。
  8. 执行命令discriminator remote discr-value,配置BFD会话的远端标识符。
    说明:

    BFD会话两端设备的本地标识符和远端标识符需要分别对应,即本端的本地标识符与对端的远端标识符相同,否则会话无法正确建立。并且,本地标识符和远端标识符配置成功后不可修改。

  9. 执行命令commit,提交配置。
  10. 执行命令system-view,进入系统视图。
  11. 执行命令interface interface-type interface-number,进入Master设备上VRRP备份组所在的接口视图。
  12. 执行命令vrrp vrid virtual-router-id track bfd-session { bfd-session-id | session-name bfd-configure-name } [ increased value-increased | reduced value-reduced ],配置VRRP与BFD联动。

    缺省情况下,当VRRP联动的BFD状态变为Down时,优先级的数值降低10。

    说明: 在配置VRRP与BFD联动时:
    • 如果选择参数session-name bfd-configure-name,只能绑定静态标识符自协商的BFD会话类型。

    • 如果选择参数bfd-session-id,只能绑定静态的BFD会话类型。

    • 配置VRRP联动指定类型的BFD会话后,BFD的会话类型不可更改。如果确实需要更改,需要先删除原来的配置。

    • 配置的优先级降低值必须确保优先级降低后Master设备的优先级低于Backup设备的优先级,以触发主备切换。

常见配置错误:

同一个备份组内出现多个Master设备

故障现象

一个VRRP备份组内,长时间存在多个Master设备。

操作步骤

  1. 在多个Master设备间执行ping操作,检查各Master设备之间的网络连接情况。
    • 如果无法ping通,请检查网络连接是否正确。

    • 如果可以ping通,且ping报文TTL值为255,请执行步骤2。

  2. 在任意视图下执行display vrrp protocol-information命令,检查各Master设备配置的VRRP版本和报文发送方式是否兼容。
    • 如果各Master设备配置的版本和发送方式不能兼容,请在系统视图下执行vrrp version { v2 | v3 }命令更改为相同的版本。

    • 如果各Master设备配置的版本和发送方式可以兼容,请执行步骤3。

    说明:
    • v2版本的VRRP备份组,只能发送和接收v2版本的VRRP通告报文,如果接收到v3版本的VRRP通告报文,则该备份组将此报文丢弃。
    • v3版本的VRRP备份组,可以接收v2和v3版本的VRRP通告报文,支持配置报文发送方式为v2-only、v3-only或v2v3-both。
  3. 在任意视图下执行display vrrp virtual-router-id命令,检查各Master设备配置的虚拟IP地址、通告报文发送间隔、认证方式及认证字是否一致。
    • 如果配置的虚拟IP地址不一致,请执行vrrp vrid virtual-router-id virtual-ip virtual-address命令更改为一致的虚拟IP地址。

    • 如果配置的通告报文发送间隔不一致,请执行vrrp vrid virtual-router-id timer advertise advertise-interval命令更改为一致的发送间隔。

    • 如果配置的认证方式及认证字不一致,请执行vrrp vrid virtual-router-id authentication-mode { simple { key | plain key | cipher cipher-key } | md5 md5-key }命令更改为一致的认证方式及认证字。

      说明:

      为了保证更好的安全性,建议您使用更安全的MD5算法作为VRRP的认证算法。

VRRP主备状态频繁切换

故障现象

VRRP备份组中,主备状态频繁切换。

操作步骤

  1. 在任意视图下执行display vrrp virtual-router-id命令,查看当前VRRP备份组有无联动接口、BFD及NQA等。
    • 如果配置了联动接口、BFD及NQA等,接口、BFD及NQA状态的震荡会引起VRRP主备状态震荡,请排除所联动模块的故障。

    • 如果没有配置联动功能,请执行步骤2。

  2. 在任意视图下执行display vrrp virtual-router-id命令,查看当前VRRP备份组配置的抢占延迟时间。
    • 如果配置的抢占延迟时间为0,请在VRRP备份组所在的接口视图下执行vrrp vrid virtual-router-id preempt-mode timer delay delay-value命令配置非0的抢占延迟时间。

    • 如果配置的抢占时间为非0,请执行步骤3。

  3. 在当前VRRP备份组所在的接口视图下执行vrrp vrid virtual-router-id timer advertise advertise-interval命令配置更大的通告报文发送间隔,或执行vrrp vrid virtual-router-id preempt-mode timer delay delay-value命令配置更大的抢占延迟时间。

 

上一篇:windows 安装protocol buffers


下一篇:微前端(九)全局静态文件引入