VRRP虚拟网关可靠性技术详解

一、VRRP 基本概念

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

VRRP 备份组示意图

 

VRRP 协议的基本概念如下:
VRRP 路由器(VRRP Router):运行 VRRP 协议的设备,它可能属于一个或多个虚拟路由器。


 虚拟路由器(Virtual Router):又称 VRRP 备份组,由一个 Master 设备和多个 Backup 设备组成,被当作一个共享局域网内主机的缺省网关。


Master 路由器(Virtual Router Master):承担转发报文任务的 VRRP 设备。


 Backup 路由器(Virtual Router Backup):一组没有承担转发任务的 VRRP 设备,当 Master设备出现故障时,它们将通过竞选成为新的 Master 设备。

VRID:虚拟路由器的标识。


 虚拟 IP 地址(Virtual IP Address):虚拟路由器的 IP 地址,一个虚拟路由器可以有一个或多个 IP 地址,由用户配置。


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


 虚拟 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 地址。


 主 IP 地址(Primary IP Address):从接口的真实 IP 地址中选出来的一个主用 IP 地址,通常选择配置的第一个 IP 地址。VRRP 广播报文使用主 IP 地址作为 IP 报文的源地址。


 优先级(Priority):虚拟路由器中 VRRP 路由器的优先级。虚拟路由器根据优先级选举出Master 设备和 Backup 设备。


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


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

二、VRRP 协议报文

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

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

目前, 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 的报文结构分别如下:

VRRPv2 报文结构

VRRPv3 报文结构

 

VRRP 报文字段含义

 

 

 

 由报文结构可以看出, VRRPv2 和 VRRPv3 的主要区别为:
1、支持的网络类型不同。VRRPv3 适用于 IPv4 和 IPv6 两种网络,而 VRRPv2 仅适用于 IPv4网络。
2、认证功能不同。VRRPv3 不支持认证功能,而 VRRPv2 支持认证功能。
3、发送通告报文的时间间隔的单位不同。VRRPv3 支持的是厘秒级,而 VRRPv2 支持的是秒级。

三、VRRP 工作原理


VRRP 状态机
VRRP 协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于 Master 状态的设备才可以转发那些发送到虚拟 IP 地址的报文。

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。

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

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

下面将从上述两个方面详细介绍 VRRP 的工作过程。
1、Master 设备的选举


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

初始创建的 VRRP 设备工作在 Initialize 状态,收到接口 Up 的消息后,若此设备的优先级小于 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 状态。


2、 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 支持在通告报文中设定不同的认证方式和认证字。

在安全程度高的网络中,可以采用无认证方式。设备对要发送的 VRRP 通告报文不进行任何认证处理,收到通告报文的设备也不进行任何认证,认为收到的都是真实的、合法的VRRP 报文。


在有可能受到安全威胁的网络中,可以采用简单字符(Simple)认证方式或 MD5 认证方式。


 简单字符(Simple)认证:发送 VRRP 通告报文的设备将认证方式和认证字填充到通告报文中,而收到通告报文的设备则会将报文中的认证方式和认证字与本端配置的认证方式和认证字进行匹配。如果相同,则认为接收到的报文是合法的 VRRP 通告报文;否则认为接收到的报文是一个非法报文,并丢弃这个报文。

MD5 认证:发送 VRRP 通告报文的设备利用 MD5 算法对认证字进行加密,加密后保存在 Authentication Data 字段中。收到通告报文的设备会对报文中的认证方式和解密后的认证字进行匹配,检查该报文的合法性。

说明:

目前仅 VRRPv2 版本支持认证, VRRPv3 版本不支持认证。

MD5 认证能够提供比简单字符(Simple)认证更高的安全保障

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


正常情况下, RouterA 为 Master 设备并承担业务转发任务, RouterB 和 RouterC 为 Backup 设备且不承担业务转发。RouterA 定期发送 VRRP 通告报文通知 RouterB 和 RouterC 自己工作正常。


如果 RouterA 发生故障, RouterB 和 RouterC 会根据优先级选举新的 Master 设备,继续为主机转发数据,实现网关备份的功能。

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

VRRP 主备备份示意图

五、VRRP 负载分担


负载分担是指多个 VRRP 备份组同时承担业务,如图所示。VRRP 负载分担与 VRRP 主备备份的基本原理和报文协商过程都是相同的。同样对于每一个 VRRP 备份组,都包含一个 Master设备和若干 Backup 设备。

与主备备份方式不同点在于:负载分担方式需要建立多个 VRRP 备份组,各备份组的 Master 设备可以不同;同一台 VRRP 设备可以加入多个备份组,在不同的备份组中具有不同的优先级。

 

负载分担的实现方式有两种


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

多网关负载分担示意图

 

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

  •  VRRP 备份组 1:VRRP 负载分担管理组, RouterA 作为 Master 设备, RouterB 作为Backup 设备。
  •  VRRP 备份组 2:VRRP 负载分担管理组的成员 VRRP 备份组, RouterB 作为 Master设备, RouterA 作为 Backup 设备。

所有用户都将 VRRP 备份组 1 作为网关。在收到用户侧的 ARP 请求报文时, VRRP 备份组1 将自己的虚拟 MAC 地址或者 VRRP 备份组 2 的虚拟 MAC 地址封装到 ARP 响应报文,对 ARP 请求报文进行应答,进而实现负载分担。单网关负载分担方式是多网关负载分担方式的升级版。通过创建 VRRP 负载分担备份组,可以在实现不同的用户共用同一个网关的同时实现负载分担,从而简化了用户侧的配置,便于维护和管理。

六、VRRP 平滑倒换
VRRP 备份组中, Master 设备进行主控板的主备倒换时,从发生主备倒换到新的主控板正常工作期间, Master 设备可能无法正常发送 VRRP 协议报文。Backup 设备在 Master_Down_Interval 定时器超时后,由于未收到 VRRP 通告报文而切换为 Master。当原 Master 设备完成主备倒换后,由于原 Master 设备的优先级高于新 Master 设备,抢占模式下,会重新抢占成为 Master,从而引起链路两次切换,导致系统业务流量的不稳定。

为了避免主备倒换对业务流量的影响,可以在 Master 设备上使能 VRRP 平滑倒换功能。在 VRRP平滑倒换的过程中, Master 和 Backup 分工不同,相互配合,共同保证业务的平滑传输。

  • 平滑倒换前,必须在 Backup 设备上使能 VRRP 协议报文时间间隔学习功能。使能后, Backup设备收到通告报文时,会检查报文中的发送时间间隔值,如果和自己的不同, Backup 设备就会学习到报文中的时间间隔,并调整自己的协议报文时间间隔值,与报文中的值保持一致。
  • Master 设备主控板的主备倒换启动时,首先保存当前配置的 VRRP 通告报文发送间隔,然后调整 VRRP 通告报文发送间隔(一般远大于倒换前的发送间隔),并以新的时间间隔发送通告报文。
  • Backup 设备收到通告报文后,学习报文中的时间间隔值,并调整自己的定时器,与其保持一致。

倒换结束后, Master 设备恢复倒换前的报文发送间隔,并以新的时间间隔发送通告报文。Backup 设备收到报文后会再一次学习时间间隔。

说明:

  • 在平滑倒换的过程中, VRRP 的报文时间间隔学习功能优先于抢占功能,即如果 Backup 状态的 VRRP 收到的协议报文里面的时间间隔和自己当前配置的不一致,并且报文中携带的优先级低于自己当前的配置优先级,这种情况 VRRP 首先考虑的是学习这个时间间隔并重置超时定时器,而后才会考虑是否抢占。
  • VRRP 平滑倒换功能还依赖于系统本身,如果设备自身从主备倒换一开始系统便非常繁忙,无法调度 VRRP 模块运行的情况, VRRP 平滑倒换功能无效。

七、管理 VRRP


为了提高网络可靠性,通常部署 NPE 主备双归属。为了满足不同的业务需要, NPE 之间可以运行多个 VRRP 备份组。此时每个 VRRP 备份组都需要维护自己的状态机,这样 NPE 之间就会存在大量的 VRRP 协议报文。

如图所示,为了减少协议报文对带宽的占用及 CPU 资源的消耗,可以将其中一个 VRRP 备份组配置为管理 VRRP 备份组(mVRRP),其余的业务 VRRP 备份组与管理 VRRP 备份组进行绑定。此时,管理 VRRP 负责发送协议报文来协商设备的主备状态;业务 VRRP 不发送协议报文,其主备状态与管理 VRRP 的主备保持一致,以此减少协议报文对 CPU 与带宽资源的消耗。

管理 VRRP 示意图

 

管理 VRRP 备份组有两种角色:

  • 当管理 VRRP 备份组作为网关使用时(如图 1 中的 mVRRP1),管理 VRRP 既负责协商设备的主备状态,也承担业务流量。此时在配置管理 VRRP 之前必须先创建普通 VRRP 备份组并配置虚拟 IP 地址,该虚拟 IP 地址即为用户设置的网关地址。
  • 当管理 VRRP 备份组不作为网关使用时(如图 1 中的 mVRRP2),管理 VRRP 只负责协商设备的主备状态,不承担业务流量。因此管理 VRRP 不需要具有虚拟 IP 地址,用户可以直接在接口上创建管理 VRRP 备份组。该配置在一定程度上降低了用户维护的复杂度。
原文地址:https://www.cnblogs.com/liujunjun/p/12842368.html