05 VRRP原理
VRRP概述与原理
技术背景:单网关面临的问题

问题描述:当网关设备(如Router)发生故障时,所有以该设备为网关的主机将无法与Internet通信。
VRRP概述
通过把几台路由设备联合组成一台虚拟的“路由设备”,使用一定的机制保证当主机的下一跳路由设备出现故障时,及时将业务切换到备份路由设备,从而保持通讯的连续性和可靠性。只要两台路由器没有同时挂掉,用户都能够访问到互联网

VRRP基本概念
基本定义 : VRRP(Virtual Router Redundancy Protocol)通过将多台路由设备组合成虚拟路由设备,实现网关冗余,保障网络连续性。


| 术语 | 说明 |
|---|---|
| VRRP路由器 | 运行VRRP协议的路由器(如R1、R2) |
| VRRP组 | VRRP组指一组协同工作的物理路由器通过VRRP协议虚拟成一个逻辑路由器 |
| VRID | VRID:一个VRRP组(VRRP Group)由多台协同工作的路由器(的接口)组成,使用相同的VRID(Virtual Router Identifier,虚拟路由器标识符)进行标识。属于同一个VRRP组的路由器之间交互VRRP协议报文并产生台虚拟”路由器”。一个VRRP组中只能出现一台Master路由器。 |
| 虚拟路由器 | VRRP为每一个组抽象出一台虚拟“路由器” (Virtual Router),该路由器并非真实存在的物理设备,而是由VRRP虚拟出来的逻辑设备。一个VRRP组只会产生一台虚拟路由器 |
| 虚拟IP/MAC地址 | 虚拟路由器拥有自己的IP地址以及MAC地址,其中IP地址由网络管理员在配置VRRP时指定,一台虚拟路由器可以有一个或多个IP地址,通常情况下用户使用该地址作为网关地址。而虚拟MAC地址的格式是“0000-5e00-01xx”,其中xx为VRID |
| Master路由器 | “Master路由器”在一个VRRP组中承担报文转发任务。在每一个VRRP组中,只有Master路由器才会响应针对虚拟IP地址的ARP Request。Master路由器会以一定的时间间隔周期性地发送VRRP报文,以便通知同一个VRRP组中的Backup路由器关于自己的存活情况 |
| Backup路由器 | 也被称为备份路由器。Backup路由器将会实时侦听Master路由器发送出来的VRRP报文,它随时准备接替Master路由器的工作。 |
| 优先级(Priority) | 优先级值是选举Master路由器和Backup路由器的依据,优先级取值范围0-255,值越大越优先,值相等则比较接口IP地址大小,大者优先。 |
VRRP典型应用
VRRP负载分担
通过创建多个虚拟路由器,每个物理路由器在不同的VRRP组中扮演不同的角色,不同虚拟路由器的
VirtualIP作为不同的内网网关地址可以实现流量转发负载分担。
如下图所示通过R1和R2创建了2个VRRP组即2个虚拟路由器:
- 在Vrid1组中,R1为主路由器,R2为备份路由器;
- 在Vrid2组中,R2为主路由器,R1为备份路由器;
配置使得PC1、PC2的流量通过Vrid1组转发,PC3的流量通过Vrid2组转发,实现负载均衡

VRRP与MSTP结合
场景说明:结合多生成树协议(MSTP)实现链路冗余与负载均衡。
通过VRRP和MSTP,VRRP实现三层的负载均衡,MSTP防止环路实现二层负载均衡,实际项目中往往结合使用,现在VRRP和MSTP结合技术已经被堆叠技术取代,因为堆叠之后就没有环路了

如下图所示,SW1、SW2为接入交换机,SW3、SW4为汇聚交换机,为保障链路冗余,我们配置了如下逻辑拓扑,不可避免产生了环路,此时可以使用MSTP(STP的一种)通过阻塞接口的方式“破环”,避免广播风暴。
堆叠技术出现之后,SW1和SW2可以虚拟成1台交换机,SW3、SW4可以虚拟成1台交换机,逻辑上就不存在环路了

VRRP监视上行端口
如下图所示,R1为主路由器,当R1的下行端口故障时,SW、PC由于发布出去,能够知道R1故障,但是当R1的出接口GE0/0/1挂掉之后,SW、PC就无从得知R1状态,因此VRRP协议可以监视上行端口状态,感知到上行端口或链路发生故障时,可以主动降低VRRP优先级,从而保证主备路由器的切换,从而保证上行链路正常的Backup设备能够通过选举切换为Master状态,指导报文转发。
实际原理就是GE0/0/1接口需要实时跟踪上面的R链路是否联通,一旦挂掉,立即降低自己VRRP优先级

VRRP与BFD联动
BFD(Bidirectional Forwarding Detection,双向转发检测)是一种轻量级、通用的网络协议,用于快速检测网络设备之间的双向路径故障,通常以毫秒级速度实现链路或路由的连通性监测。如下图在R1的GE0/0/0接口和R2的GE0/0/0接口之间配置BFD,两个接口互发类似Hello报文,确保对方存活,能够实现毫秒级的状态存活检测
通过配置VRRP与BFD联动,当Backup设备通过BFD感知故障发生之后,不再等待Master_Down_Timer计
时器超时而会在BFD检测周期结束后立即切换VRRP状态,此时可以实现毫秒级的主备切换。

VRRP基本配置
常用配置命令
基础配置
- 创建VRRP备份组并给备份组配置虚拟IP地址
1 | [interface-GigabitEtherneto/0/0] vrrp vrid virtual-router-id virtual-ip virtual-address |
注意:各备份组之间的虚拟IP地址不能重复;同属一个备份组的设备接口需使用相同的VRID。
示例
1 | [interface-GigabitEtherneto/0/0] vrrp vrid 10 virtual-ip 192.168.1.254 |
- 配置路由器在备份组中的优先级
1 | [interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id priority priority-value |
注意:通常情况下,Master设备的优先级应高于Backup设备。
示例
1 | [interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id priority 120 |
- 配置备份组中设备的抢占延迟时间:
- 在主设备上配置表示当主设备恢复之后,间隔多久后接管原来工作;
- 在从设备上配置表示当主设备挂掉后,从设备间隔多久接管
1 | [interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id preempt-mode timer delay delay-value |
- 配置VRRP备份组中设备采用非抢占模式:当主设备恢复之后,是否主动抢占接管原来工作,默认要抢占
1 | [interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id preempt-mode disable |
缺省情况下,抢占模式已被激活。
- 配置VRRP备份组监视接口:可配置设备当检测到上行接口或链路出现故障时,增加或者减少自身优先级,IP地址拥有者和Eth-trunk成员口不允许配置VRRP监视功能。
1 | [interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id track interface interface-type interface-number [increased value-increased | reduced value-decreased ] |
示例
1 | # 创建VRRP备份组10,配置虚拟IP为192.168.1.254 |
- 配置VRRP备份组联动普通BFD会话
1 | [interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id track bfd-session bfd-session-id | session-name bfd-configure-name }[ increased value-increased | reduced value-reduced ] |
如果选择参数session-name bfd-configure-name,可以绑定静态BFD会话或者标识符自协商的静态BFD会话。如果选择参数bfd-session-id,只能绑定静态BFD会话。
示例
1 | # 创建VRRP备份组10,虚拟IP为192.168.1.254 |
配置实例

配置要求:
- R1与R2组成一个VRRP备份组,其中R1为Master,R2为Backup;
- Master设备故障恢复时采用抢占模式,抢占延时10秒;
- Master设备监视上行接口状态实现VRRP主备自动切换。
R1配置如下:
1 | [R1] interface GigabitEthernet0/0/0 |
R2配置如下:
1 | [R2] interface GigabitEthernet0/0/0 |
VRRP基础配置验证
主设备R1验证
1 | [R1]display vrrp |
备份设备R2验证
1 | [R2]display vrrp |