VRRP 原理与配置详解:构建高可用的网络网关

在企业网络中,网关是所有内部设备访问外部网络的关键出口。但如果这台网关设备发生故障,整个网络的对外访问就会中断,这被称为“单点故障”。为了解决这个问题,虚拟路由冗余协议 (Virtual Router Redundancy Protocol, VRRP) 应运而生。它能够提供一个高可用的网关,确保网络连接的持续性和稳定性。

本文将详细介绍 VRRP 的工作原理,并提供一份清晰的命令行配置教程。


一、VRRP 的核心工作原理

VRRP 的核心思想是将局域网中的多台物理路由器(或三层交换机)虚拟成一台逻辑上的虚拟路由器。这台虚拟路由器拥有自己独立的 IP 地址和 MAC 地址。局域网内的所有客户端设备,都将它们的默认网关设置为这台虚拟路由器的 IP 地址。

这样一来,客户端无需关心背后到底是哪一台物理路由器在工作。它们只需要知道这个永不“宕机”的虚拟网关地址即可。

1. 角色分工:Master 与 Backup

在一个 VRRP 组中,路由器扮演两种角色:

  • Master (主路由器)

    • VRRP 组中唯一处于活动状态的路由器。
    • 它实际承担着所有数据包的转发工作。
    • 它会响应针对虚拟 IP 地址的 ARP 请求,并使用虚拟 MAC 地址进行应答。
    • Master 会周期性地发送 VRRP 心跳包(通告报文),向组内的其他路由器宣告自己“还活着”。
  • Backup (备份路由器)

    • 处于监听状态的备用路由器。
    • 它会持续监听 Master 发送的心跳包。
    • 一旦在指定时间内(默认为 Master 宣告周期的3倍)没有收到心跳包,Backup 路由器就会认为 Master 已经失效,并立即开始竞选,试图成为新的 Master。

2. 选举机制:谁来当 Master?

Master 的选举过程简单而高效,主要基于以下两个因素:

  1. 优先级 (Priority)

    • 每个路由器在 VRRP 组中都有一个优先级,范围是 1-255(默认值为 100)。
    • 优先级越高的路由器,越有可能成为 Master
    • 通常,我们会手动将希望成为 Master 的路由器优先级设置得更高(如 120)。
  2. IP 地址

    • 如果在优先级相同的情况下,接口 IP 地址较大的路由器将获胜,成为 Master。

3. 抢占模式 (Preemption)

抢占模式决定了当一台更高优先级的路由器加入 VRRP 组时,是否要“夺回”Master 的角色。

  • 开启抢占(默认):如果一台新的(或恢复的)路由器具有比当前 Master 更高的优先级,它会立即触发选举,成为新的 Master。这确保了网络总是由最“合适”的设备作为网关。
  • 关闭抢占:即使有更高优先级的路由器加入,只要当前的 Master 还在正常工作,就不会发生切换。只有当 Master 故障时,才会进行重新选举。

4. 心跳与切换

  • Master 路由器默认每隔 1 秒 向组内发送一个 VRRP 心跳包(使用组播地址 224.0.0.18)。
  • Backup 路由器会启动一个计时器。如果在 3 秒Master_Down_Interval)内没有收到心跳,它就认为 Master 失效。
  • 此时,所有 Backup 路由器会根据优先级和 IP 地址开始选举,获胜者将自己的状态切换为 Master,并立即对外发送免费 ARP(Gratuitous ARP)报文,以刷新局域网内设备和交换机的 MAC 地址表,将指向旧 Master 的流量牵引到自己身上,整个切换过程对客户端是透明的。

二、VRRP 配置命令教程

下面我们通过一个典型的场景来演示如何配置 VRRP。假设我们有两台核心交换机(Router A 和 Router B)为某个 VLAN(例如 VLAN 10)提供网关冗余。

网络拓扑:

  • Router A (RA): 192.168.10.2/24 - 计划作为 Master
  • Router B (RB): 192.168.10.3/24 - 计划作为 Backup
  • 虚拟网关 IP (VIP): 192.168.10.1/24
  • VRRP 组 ID (VRID): 10

注意:不同厂商(如思科、华为、H3C)的命令会略有差异,但核心参数和逻辑是相同的。以下为通用风格的命令示例。

步骤 1:配置接口 IP 地址

在 Router A 上:

1
2
3
4
5
6
# 进入系统视图
system-view
# 进入 VLAN 10 的接口视图
interface Vlan-interface10
# 配置物理 IP 地址
ip address 192.168.10.2 24

在 Router B 上:

1
2
3
4
5
6
# 进入系统视图
system-view
# 进入 VLAN 10 的接口视图
interface Vlan-interface10
# 配置物理 IP 地址
ip address 192.168.10.3 24

步骤 2:在 Router A (Master) 上配置 VRRP

1
2
3
4
5
6
7
8
9
10
# 继续在 Router A 的 interface Vlan-interface10 视图下

# 配置 VRRP 组 10 的虚拟 IP 地址
vrrp vrid 10 virtual-ip 192.168.10.1

# 配置 VRRP 组 10 的优先级为 120 (高于默认的 100)
vrrp vrid 10 priority 120

# (可选)开启抢占模式,并设置抢占延迟为 5 秒,防止因网络抖动频繁切换
vrrp vrid 10 preempt-mode timer delay 5

步骤 3:在 Router B (Backup) 上配置 VRRP

1
2
3
4
5
6
7
# 在 Router B 的 interface Vlan-interface10 视图下

# 配置 VRRP 组 10 的虚拟 IP 地址 (必须与 Master 一致)
vrrp vrid 10 virtual-ip 192.168.10.1

# 使用默认优先级 100,或设置一个比 Master 低的值
vrrp vrid 10 priority 100

步骤 4:验证配置

配置完成后,可以使用以下命令来查看 VRRP 的状态。

1
2
3
4
5
# 显示 VRRP 的简要状态信息
display vrrp brief

# 显示 VRRP 的详细状态信息
display vrrp
  • Router A 上,您应该能看到状态为 Master
  • Router B 上,您应该能看到状态为 Backup

此时,您可以尝试 ping 192.168.10.1,应该可以 ping 通。然后将 Router A 的 VLAN 10 接口 shutdown,再次 ping 192.168.10.1,会发现仅中断了数秒后网络便恢复正常。再次查看 display vrrp brief,会发现 Router B 已经成为了新的 Master

(进阶) 配置上行链路追踪

一个常见的需求是,如果 Master 的外网口(上行链路)断了,也应该进行主备切换。这可以通过追踪 (track) 功能实现。

假设 Router A 的上行接口是 GigabitEthernet 0/0/1

1
2
3
4
# 在 Router A 的 interface Vlan-interface10 视图下

# 追踪上行接口 G0/0/1 的状态,如果该接口 down,则将本 VRRP 组的优先级降低 30
vrrp vrid 10 track interface GigabitEthernet0/0/1 reduced 30

配置后,一旦 G0/0/1 接口故障,Router A 的 VRRP 优先级会从 120 降为 90,低于 Router B 的 100,从而自动触发主备切换。

总结

VRRP 是一个简单而强大的协议,它通过虚拟化网关,极大地提升了网络的可靠性。通过合理的优先级和抢占模式配置,结合链路追踪功能,您可以构建一个几乎不会中断的、高可用的网络出口,为业务的连续性提供坚实保障。