配置虚拟网关时,很多人第一反应是“两台核心交换机,一主一备,挂一台另一台顶上”。这个思路没有错,但它会把一台设备的转发能力完全闲置下来:Master 扛所有 VLAN 的流量,Backup 永远在待命。主设备一升级或重启,全网业务都要抖动一次。
真正在工程里被验证过很多次的思路,是把 VRRP 的 Master 角色按 VLAN 拆开:VLAN 10、20 的主网关放在 SW1,VLAN 30、40 的主网关放在 SW2。两台核心都在转发流量,同时互为 Backup。一台设备故障时,另一台可以接管它的虚拟网关,用户默认网关不变。
这就是 VRRP 实现多 VLAN 链路负载分担的核心价值。本文会先讲清楚 VRRP 的工作原理,再给出一套可以在 eNSP 或真实交换机上直接复现的实验拓扑,从 VLAN、Trunk、VLANIF 到 VRRP 逐步配置,并用故障演练验证虚拟 IP 的漂移过程。
读完你可以回答三个问题:
- VRRP 为什么能把流量分担到两台核心设备上?
- 不同 VLAN 的 Master 角色应该怎么分布?
- 切换时,优先级和抢占延时到底起什么作用?
1. VRRP 多 VLAN 负载分担能解决什么问题
1.1 没有 VRRP 时的网关单点故障
在一个没有冗余协议的园区网里,终端 PC 的默认网关通常直接指向核心交换机的物理 IP。比如 VLAN 10 的网关配置成 192.168.10.1,这个地址就是 SW1 的 VLANIF 接口地址。
问题很明显:SW1 一旦宕机、重启或者升级,VLAN 10 的所有终端都无法访问外部网络。即使网络里有第二台核心交换机 SW2,只要 PC 的网关没有指向它,它就无法接管用户的流量。这不是因为 SW2 能力不够,而是因为终端根本不会把报文发给 SW2。
1.2 传统 VRRP 主备方案的资源浪费
VRRP 出现后,网络里终于有了一台“虚拟路由器”。终端把网关指向虚拟 IP,Master 负责转发,Backup 负责监听。Master 故障时,Backup 接管虚拟 IP,继续为用户提供服务。
但这个方案在大多数部署里都被用成了“热备”而不是“负载分担”:
- 正常情况下,Master 承担 100% 的流量;
- Backup 几乎不转发任何用户流量;
- 升级和维护 Master 时,业务必然经历一次切换;
- 所有 VLAN 的“鸡蛋”都在同一台核心上,故障爆炸半径很大。
从硬件成本角度看,花两台核心交换机的钱,只用到一台的转发能力,这在流量增长的今天并不划算。
1.3 多 VLAN 负载分担:让两台核心都处于工作状态
多 VLAN 场景给了我们一个新的设计空间:既然有多个业务 VLAN,那就可以让 VLAN A 的 Master 在 SW1,让 VLAN B 的 Master 在 SW2。
终端 PC 的默认网关仍然是虚拟 IP,它不需要关心实际转发设备是谁。ARP 请求到虚拟 IP 时,哪个设备是该 VLAN 的 Master,就由哪个设备应答。于是:
- VLAN 10 的终端,网关流量走 SW1;
- VLAN 20 的终端,网关流量走 SW2;
- 当 SW1 故障时,VLAN 10 的虚拟网关被 SW2 接管;
- 当 SW2 故障时,VLAN 20 的虚拟网关被 SW1 接管。
两台设备都在转发流量,又互为备份。这才是“双核心”应有的利用率。
1.4 先分清:三层负载分担和二层链路负载分担
很多初学者会把“VRRP 负载分担”和“二层链路负载分担”混在一起,其实它们解决的问题不同。
| 类型 | 解决什么问题 | 典型技术 | 是否本文重点 |
|---|---|---|---|
| 三层网关负载分担 | 默认网关的冗余与流量分流 | VRRP、HSRP、GLBP | 是 |
| 二层链路负载分担 | 提高上联带宽并避免单点链路 | Eth-Trunk、M-LAG、MSTP | 配合使用 |
本文讨论的“VRRP 多 VLAN 链路负载分担”,核心在三层网关:让不同 VLAN 使用不同的 Master 设备。至于接入交换机到核心的链路能不能同时使用,取决于你用的是 STP、Eth-Trunk 还是跨设备链路聚合,这是最佳实践部分要讨论的话题。
2. VRRP 核心原理与容易混淆的概念
2.1 虚拟路由器:虚拟 IP 与虚拟 MAC
VRRP 全称是 Virtual Router Redundancy Protocol,虚拟路由器冗余协议。它把一组三层设备(通常两台核心交换机)抽象成一台“虚拟路由器”。
这台虚拟路由器有两个关键标识:
- 虚拟 IP:给终端当网关使用,例如 192.168.10.254;
- 虚拟 MAC:虚拟路由器在二层网络中的 MAC 地址。
标准 VRRP IPv4 虚拟 MAC 为 00-00-5E-00-01-XX,其中 XX 是 VRID 的十六进制表示。VRID 10 对应的虚拟 MAC 就是 00-00-5E-00-01-0A。
终端发出 ARP 请求,询问“192.168.10.254 的 MAC 地址是多少”,Master 设备会用虚拟 MAC 应答。终端发出数据帧时,目的 MAC 是虚拟 MAC,目的 IP 是虚拟 IP,实际转发由 Master 完成。
2.2 Master 与 Backup 的选举
VRRP 组内的设备通过优先级选举角色:
- 优先级范围是 1 到 254,默认值是 100;
- 数值越大,越优先成为 Master;
- 优先级最高的设备成为 Master,其余设备为 Backup。
工程上习惯把其中一台的优先级调高,例如 120。如果两台设备优先级相同,不同厂家的仲裁规则可能略有差异,所以尽量不要把两台核心配成完全相同的优先级,避免出现不确定行为。
2.3 状态切换:通告、超时与抢占
Master 会周期性发送 VRRP 通告报文,默认每 1 秒发送一次,组播地址是 224.0.0.18。Backup 通过持续收到通告报文来确认 Master 仍在正常工作。
如果 Backup 连续 3 个通告周期没有收到 Master 的报文,就认为 Master 故障,随后切换为 Master。这就是 VRRP 能实现网关冗余的根本机制。
抢占机制也需要注意。华为设备默认开启抢占:一台优先级更高的设备加入网络后,会重新抢占成为 Master。这在设备恢复后能让流量回到最优路径上,但如果网络不稳定,频繁抢占会造成业务抖动。因此建议给抢占配置延时。
配置命令示例:
vrrp vrid 10 preempt-mode timer delay 20意思是在抢占前等待 20 秒。如果 Master 只是短暂抖动,20 秒内恢复,Backup 就不会抢回角色,网络更稳定。
2.4 三个容易混淆的边界
VRRP 不等于 VLAN 间路由
VRRP 只负责默认网关的冗余,它本身不能实现 VLAN 之间的通信。VLAN 间路由依赖三层交换机上的路由功能和 VLANIF 接口。即使 SW1 是 VLAN 10 的 Master,SW2 是 VLAN 20 的 Master,VLAN 10 访问 VLAN 20 时,仍然需要核心交换机进行三层转发。
VRRP 不解决二层环路
如果接入交换机分别双上联到两台核心,而两台核心之间又有互联链路,物理拓扑上可能形成环路。这个环路由 STP/RSTP/MSTP 解决,或者用跨设备链路聚合技术消除。VRRP 报文虽然运行在二层,但它不负责环路收敛。
VRRP 的 Master 和路由主路径是两回事
一台交换机可以是 VLAN 10 的 VRRP Master,但 VLAN 10 的上行流量走哪条出口,还要看路由表、策略路由或者负载均衡策略。VRRP 解决的是“谁是网关”,不是“所有流量必须走谁”。
3. 实验拓扑与设计思路
3.1 组网拓扑
本文使用经典的“双核心 + 单接入”拓扑:
- SW1、SW2 是核心/汇聚三层交换机;
- SW3 是接入交换机,下挂 PC1(VLAN 10)和 PC2(VLAN 20);
- SW3 分别通过 Trunk 上联 SW1 和 SW2;
- SW1 与 SW2 之间通过 Trunk 互连,用于传递 VRRP 报文和故障时流量绕行;
- SW1、SW2 分别通过三层口上联出口路由器/防火墙。
+-----------------------+ | 出口路由器/防火墙 | +-----------+-----------+ | +-------------+ | +-------------+ | SW1 核心 |---------|---------| SW2 核心 | | VLAN10 Master| | | VLAN20 Master| | VLAN20 Backup| Trunk | | VLAN10 Backup| +------+------+ | +------+------+ | | | | | | +----------+------+-------+--------+ | | | PC1 PC2 PC3 VLAN10 VLAN20 VLAN10注意一点:接入交换机 SW3 到 SW1、SW2 的双上联在物理上可能构成环路。实验环境建议开启 RSTP,生产环境需要根据现有网络选择 STP、M-LAG 或堆叠方案。VRRP 本身并不依赖于接入侧的环路消除方式。
3.2 业务 VLAN 与网关地址规划
| 对象 | 网段 | 终端网关 | Master | Backup |
|---|---|---|---|---|
| VLAN 10 | 192.168.10.0/24 | 192.168.10.254 | SW1 | SW2 |
| VLAN 20 | 192.168.20.0/24 | 192.168.20.254 | SW2 | SW1 |
| SW1 VLANIF10 | 192.168.10.2/24 | - | - | - |
| SW1 VLANIF20 | 192.168.20.2/24 | - | - | - |
| SW2 VLANIF10 | 192.168.10.3/24 | - | - | - |
| SW2 VLANIF20 | 192.168.20.3/24 | - | - | - |
终端 PC 的网关统一指向虚拟 IP,而不是某台核心交换机的物理 IP。
3.3 为什么这样叫负载分担
VLAN 10 内的 PC 发出 ARP 请求时,SW1 作为 Master 应答,流量进入 SW1。VLAN 20 内的 PC 发出 ARP 请求时,SW2 作为 Master 应答,流量进入 SW2。
从全局流量来看,两台核心都在转发不同 VLAN 的网关流量,这就是负载分担。它不要求每个 VLAN 的流量大小完全一样,只需要按业务合理分配。
如果 VLAN 10 是办公网,流量很大;VLAN 20 是监控网,流量相对小,那么可以把 VLAN 30 再分给 SW2,或者继续把更多 VLAN 的 Master 分散到两台设备上,保证两台设备负载相对均衡。
4. 基础配置准备
4.1 创建 VLAN 与 VLANIF 接口
不同厂商的 VLAN 划分命令不同,但 IEEE 802.1Q 标签标准是通用的。只要 Trunk 两端放行的 VLAN 一致,跨厂商设备也能互通。本文以华为 CLI 演示,eNSP 和真实 S 系列交换机通用。
在 SW1 上创建 VLAN:
<SW1> system-view [SW1] sysname SW1 [SW1] vlan batch 10 20创建 VLANIF 接口并配置 IP 地址:
[SW1] interface Vlanif10 [SW1-Vlanif10] ip address 192.168.10.2 255.255.255.0 [SW1-Vlanif10] quit [SW1] interface Vlanif20 [SW1-Vlanif20] ip address 192.168.20.2 255.255.255.0 [SW1-Vlanif20] quitVLANIF 接口是三层网关接口。注意,这里的 IP 地址是交换机物理接口地址,不能与后面的虚拟 IP 192.168.10.254 冲突。
4.2 配置 Trunk 链路
SW1 连接 SW3 的端口配置为 Trunk,并放通 VLAN 10 和 VLAN 20:
[SW1] interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1] port link-type trunk [SW1-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/1] quitSW1 和 SW2 之间的互联端口也要放通相同 VLAN:
[SW1] interface GigabitEthernet0/0/2 [SW1-GigabitEthernet0/0/2] port link-type trunk [SW1-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/2] quit为什么 Trunk 要放通 VLAN?
因为接入交换机上联口需要同时承载多个 VLAN 的流量。如果用 Access 口,它只能属于一个 VLAN,其他 VLAN 的报文根本过不去。Trunk 口通过 802.1Q Tag 区分不同 VLAN 的报文,才能让 VLAN 10 和 VLAN 20 共用同一条上联链路。
4.3 Trunk 的 PVID 建议保持默认
有一个非常常见的坑,就是随意修改 Trunk 口的 PVID。
PVID 的作用是:当 Trunk 口收到不带 VLAN Tag 的报文时,交换机把它归入 PVID 对应的 VLAN;当 Trunk 口发送 VLAN 等于 PVID 的报文时,会剥离 Tag 发送。
如果两端 PVID 设置不一致,无标记报文可能被归入错误的 VLAN,造成 ARP 或 DHCP 异常。
例如port trunk pvid vlan 10表示该 Trunk 的缺省 VLAN 是 10。如果对端交换机没有做相同设置,管理 VLAN 的报文可能被打上 10 号 Tag,最终导致 VLAN 混乱。
建议:家庭实验室或普通业务网络里,Trunk 口 PVID 保持默认值 1,只通过port trunk allow-pass vlan控制放行哪些 VLAN。如果全网都有统一的 PVID 规划,可以按规范设置,但必须保证链路两端一致。
4.4 接入交换机 SW3 的基本配置
SW3 上创建 VLAN,并将下连接口划入对应 VLAN:
<SW3> system-view [SW3] sysname SW3 [SW3] vlan batch 10 20 [SW3] interface GigabitEthernet0/0/1 [SW3-GigabitEthernet0/0/1] port link-type access [SW3-GigabitEthernet0/0/1] port default vlan 10 [SW3-GigabitEthernet0/0/1] quit [SW3] interface GigabitEthernet0/0/2 [SW3-GigabitEthernet0/0/2] port link-type access [SW3-GigabitEthernet0/0/2] port default vlan 20 [SW3-GigabitEthernet0/0/2] quitSW3 上联 SW1 和 SW2 的端口配置为 Trunk:
[SW3] interface GigabitEthernet0/0/23 [SW3-GigabitEthernet0/0/23] port link-type trunk [SW3-GigabitEthernet0/0/23] port trunk allow-pass vlan 10 20 [SW3-GigabitEthernet0/0/23] quit [SW3] interface GigabitEthernet0/0/24 [SW3-GigabitEthernet0/0/24] port link-type trunk [SW3-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [SW3-GigabitEthernet0/0/24] quit实验环境中 PC 配置如下:
- PC1:IP 192.168.10.10/24,网关 192.168.10.254;
- PC2:IP 192.168.20.10/24,网关 192.168.20.254。
到这里,基础二层和三层的通路已经具备,接下来配置 VRRP。
5. 配置 VRRP 实现多 VLAN 负载分担
5.1 在 SW1 上配置 VLAN 10 为 Master
进入 VLANIF10 接口,创建 VRRP 组 10,虚拟 IP 为 192.168.10.254:
[SW1] interface Vlanif10 [SW1-Vlanif10] vrrp vrid 10 virtual-ip 192.168.10.254 [SW1-Vlanif10] vrrp vrid 10 priority 120 [SW1-Vlanif10] vrrp vrid 10 preempt-mode timer delay 20 [SW1-Vlanif10] vrrp vrid 10 track interface GigabitEthernet0/0/24 reduced 30 [SW1-Vlanif10] quit各命令含义:
virtual-ip:指定该 VRRP 组的虚拟 IP,也就是终端的网关地址;priority 120:把 SW1 在 VLAN 10 的优先级调高,让它成为 Master;preempt-mode timer delay 20:开启抢占并设置 20 秒延时;track interface:跟踪上行接口状态,如果上行口故障,则优先级降低 30。
再在 VLANIF20 上创建 VRRP 组 20,SW1 作为 Backup,因此不需要调整优先级:
[SW1] interface Vlanif20 [SW1-Vlanif20] vrrp vrid 20 virtual-ip 192.168.20.254 [SW1-Vlanif20] vrrp vrid 20 preempt-mode timer delay 20 [SW1-Vlanif20] quit5.2 在 SW2 上配置 VLAN 20 为 Master
SW2 的配置思路与 SW1 正好相反:
- VLAN 20 的优先级设为 120,成为 Master;
- VLAN 10 使用默认优先级 100,作为 Backup。
[SW2] interface Vlanif20 [SW2-Vlanif20] vrrp vrid 20 virtual-ip 192.168.20.254 [SW2-Vlanif20] vrrp vrid 20 priority 120 [SW2-Vlanif20] vrrp vrid 20 preempt-mode timer delay 20 [SW2-Vlanif20] vrrp vrid 20 track interface GigabitEthernet0/0/24 reduced 30 [SW2-Vlanif20] quitVLAN 10 在 SW2 上作为 Backup:
[SW2] interface Vlanif10 [SW2-Vlanif10] vrrp vrid 10 virtual-ip 192.168.10.254 [SW2-Vlanif10] vrrp vrid 10 preempt-mode timer delay 20 [SW2-Vlanif10] quit5.3 完整配置示例:SW1
将上面的配置汇总,SW1 的完整关键配置如下:
sysname SW1 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 interface Vlanif10 ip address 192.168.10.2 255.255.255.0 vrrp vrid 10 virtual-ip 192.168.10.254 vrrp vrid 10 priority 120 vrrp vrid 10 preempt-mode timer delay 20 vrrp vrid 10 track interface GigabitEthernet0/0/24 reduced 30 interface Vlanif20 ip address 192.168.20.2 255.255.255.0 vrrp vrid 20 virtual-ip 192.168.20.254 vrrp vrid 20 preempt-mode timer delay 205.4 完整配置示例:SW2
sysname SW2 vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 interface Vlanif10 ip address 192.168.10.3 255.255.255.0 vrrp vrid 10 virtual-ip 192.168.10.254 vrrp vrid 10 preempt-mode timer delay 20 interface Vlanif20 ip address 192.168.20.3 255.255.255.0 vrrp vrid 20 virtual-ip 192.168.20.254 vrrp vrid 20 priority 120 vrrp vrid 20 preempt-mode timer delay 20 vrrp vrid 20 track interface GigabitEthernet0/0/24 reduced 30注意,track 的对象通常是三层上行口。如果上行口是二层 Trunk,请先确认设备是否支持直接 track,不支持时可以考虑 VRRP 与 BFD/NQA 联动。具体支持情况以设备手册为准。
5.5 为什么 track 接口很重要
假设 SW1 是 VLAN 10 的 Master,但它连接出口路由器的上行链路故障了。此时 VLAN 10 的终端仍然能 ping 通虚拟 IP,因为 Master 还活着,但实际上网流量已经发出不去。
通过 track 上行接口,SW1 检测到上行口 down 后,VRRP 优先级从 120 降到 90。SW2 的优先级是默认 100,比 90 高,于是 SW2 抢占成为 VLAN 10 的 Master。这样用户在故障时能够尽快切换到可用的核心设备上。
这是一个非常关键的配置,没有 track 的 VRRP 只解决了“网关冗余”,没有完全解决“路径可用性”。
6. 验证负载分担与故障切换
6.1 查看 VRRP 状态
配置完成后,在 SW1 上执行:
<SW1> display vrrp输出示意如下:
Vlanif10 | Virtual Router 10 State : Master Virtual IP : 192.168.10.254 Master IP : 192.168.10.2 PriorityRun : 120 PriorityConfig : 120 MasterPriority : 120 Preempt : YES Delay Time : 20 TimerRun : 1 TimerConfig : 1 Auth type : NONE Virtual MAC : 0000-5e00-010a在 SW1 上执行display vrrp brief,可以看到两个组的状态:
<SW1> display vrrp brief Interface VRID State Run Adver Auth Virtual IP Vlanif10 10 Master 120 1 NONE 192.168.10.254 Vlanif20 20 Backup 100 1 NONE 192.168.20.254这说明 VLAN 10 的 Master 是 SW1,VLAN 20 的 Master 是 SW2。
在 SW2 上执行同样的命令,应该看到相反的结果:
<SW2> display vrrp brief Interface VRID State Run Adver Auth Virtual IP Vlanif10 10 Backup 100 1 NONE 192.168.10.254 Vlanif20 20 Master 120 1 NONE 192.168.20.254如果两台设备在同一个 VRRP 组里都显示 Master,说明 VRRP 报文没有互通,需要检查两台核心之间的 Trunk 链路和 STP 状态。
6.2 检查 VLANIF 接口状态
使用display int vlan brief确认 VLANIF 接口是否正常:
<SW1> display int vlan brief *down: administratively down Interface Status Protocol Type Description Vlanif10 up up Common Vlanif20 up up Common如果 VLANIF10 处于 down 状态,VRRP 会进入 Initialize,不会正常收发通告。常见原因是该 VLAN 没有可用物理接口,或者对应的 Trunk 口没有放通该 VLAN。
6.3 验证 PC 访问网关与跨 VLAN 通信
在 PC1 上执行:
PC1> ping 192.168.10.254在 PC2 上执行:
PC2> ping 192.168.20.254如果能 ping 通各自的虚拟网关,说明 VRRP 网关工作正常。
继续验证 VLAN 间通信:
PC1> ping 192.168.20.10如果能通,说明两台核心之间的三层路由和二层转发路径正常。VRRP 本身不承担 VLAN 间路由,但跨 VLAN 报文的每个方向都可能经过不同的 Master,所以这个验证非常有必要。
6.4 模拟故障:查看虚拟 IP 漂移
在实验环境中,可以手动关闭 SW1 的上行接口,观察 VLAN 10 的 VRRP 角色是否会切换。
在 SW1 上执行:
[SW1] interface GigabitEthernet0/0/24 [SW1-GigabitEthernet0/0/24] shutdown由于前面配置了track interface GigabitEthernet0/0/24 reduced 30,SW1 的 VLAN 10 优先级会从 120 降到 90。之后在 SW2 上查看:
<SW2> display vrrp此时 SW2 会抢占成为 VLAN 10 的 Master,VLAN 20 仍然是 Master。VLAN 10 的终端流量被 SW2 接管。
如果模拟整台 SW1 宕机,操作更简单:在 eNSP 中直接关闭 SW1 设备。SW2 在 3 个通告周期内没有收到 VLAN 10 的 VRRP 报文,会切换为 Master。
这里要特别提醒:故障演练请在实验环境或维护窗口内进行,不要在业务高峰期直接在核心设备上执行 shutdown。
7. 常见问题与排查方法
下面这张表总结了多 VLAN VRRP 配置中最常见的几类问题。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 两个设备在同一 VRRP 组中都显示 Master | 两台设备之间 VRRP 报文不通 | 在两端执行display vrrp,检查核心间 Trunk 放通状态和 STP 端口状态 | 确保核心间链路放通对应 VLAN,并处于转发状态 |
| VRRP 状态一直为 Initialize | VLANIF 接口 down,或接口没有配置 IP 地址 | 执行display int vlan brief和display ip interface brief | 确认物理链路和 Trunk 放通,补齐 VLANIF IP |
| 终端 ping 不通虚拟 IP | Master 上联故障,但没有配置 track 联动 | 检查 Master 的display vrrp和上行口状态 | 配置 track 或 BFD 联动,让故障上行触发切换 |
| 主设备恢复后角色频繁切换 | 抢占无延时,网络有抖动 | 查看设备日志和display vrrp状态变化 | 配置preempt-mode timer delay增加等待时间 |
| 一部分 VLAN 通,另一部分不通 | 某个 VLAN 的 Trunk 放通遗漏或 VLANIF 未配置 | 检查display int vlan brief和 Trunk 端口配置 | 在所有相关 Trunk 口补放该 VLAN |
| 跨 VLAN ping 不通 | VLANIF 路由缺失或网关指向错误 | 检查路由表和 PC 网关地址 | 确认两端 VLANIF 配置和三层路由可达 |
| Trunk PVID 设置不一致 | 无标记报文进入错误 VLAN | 检查两端display port vlan | 保持 PVID 默认值或全网统一规划 |
| display vrrp 中 Master 显示正常但无法上网 | 出口路由、NAT 或防火墙策略问题 | 从核心 ping 出口网关,检查路由表 | 逐段排查上行链路,确认路由和策略 |
8. 最佳实践与工程建议
8.1 网关地址规划要预留虚拟 IP
在规划 VLAN 网段时,建议把虚拟 IP 预留出来。例如 VLAN 10 使用 192.168.10.1 到 192.168.10.253 作为终端地址,192.168.10.254 作为虚拟网关。不要等到终端上线后再去改网关,那样会引入大量配置变更。
两台核心交换机的 VLANIF 物理 IP 建议使用网段内连续的地址,例如 .2 和 .3,便于记忆和排错。
8.2 优先级和抢占延时一起使用
不要只配置优先级,不配置抢占延时。
如果 Master 设备重启,VLAN 里的流量已经被 Backup 接管。此时 Master 恢复后如果不带延时直接抢占,可能会出现双份 ARP 刷新和短暂的业务抖动。推荐配置抢占延时,具体数值根据业务容忍时间调整。
8.3 确保核心间链路不是单点
VRRP 报文需要在 Master 和 Backup 之间二层互通。如果两台核心之间的链路断了,两台设备都会认为对方失联,可能出现双 Master 的情况。
工程上需要保证核心间链路本身具备冗余,或者使用堆叠/M-LAG 将两台核心在二层上虚拟成一台设备。如果核心间链路只是单条线,至少要在监控中重点关注这条链路的可用性。
8.4 接入层二层方案要提前想清楚
如果接入交换机只是普通双上联到两台核心,STP/RSTP 会阻塞其中一条路径,此时二层链路并不能完全跑满,VRRP 的负载分担主要体现在三层网关侧。
如果希望两条上联链路都转发流量,建议:
- 使用跨设备链路聚合(M-LAG);
- 使用堆叠(如 iStack、CSS)后配置 Eth-Trunk;
- 或者按 VLAN 拆分接入交换机,让不同接入交换机连到不同核心。
这些方案和 VRRP 并不冲突,组合使用效果更好。
8.5 把 VRRP 状态接入监控
VRRP 状态变化是核心网络的重要事件。建议在网络管理平台中定期采集:
display vrrp或者开启设备告警,让 Master 切换到 Backup 时能及时通知运维人员。否则故障发生了,终端用户比运维更早知道,就很被动。
8.6 变更和演练要形成习惯
不要等到网络故障才去验证 VRRP 是否真的能用。
建议在维护窗口内做一次演练:
- 记录两台核心当前的
display vrrp brief; - 关闭 SW1 的上行接口,查看 VRRP 是否切换;
- 关闭 SW1 的 VLANIF10,查看 Backup 是否能接管;
- 恢复配置,观察抢占延时是否生效;
- 记录切换时间,确认在业务容忍范围内。
多演练几次,真正出故障时就不会手忙脚乱。
8.7 不同厂商的命令差异
本文以华为设备为例。思科设备中,VRRP 的配置思路相同,但命令格式不同:
interface Vlan10 vrrp 10 ip 192.168.10.254 vrrp 10 priority 120锐捷、H3C 等厂商也都有类似的 VRRP 实现。关键是理解 Master 按 VLAN 拆分、Backup 互为冗余的设计思想,而不是死记某一条命令。
9. 总结与下一步
这篇文章的核心观点其实只有一句话:VRRP 不一定非要做成一主一备,把不同 VLAN 的 Master 角色分散到两台核心上,就是一张标准的“双活网关”网络。
你需要理解的是:
- 虚拟 IP 和虚拟 MAC 是终端对网关的“唯一认知”,它不随物理设备切换而改变;
- 优先级决定了谁是 Master,抢占延时决定了切换是否平滑;
- track 接口决定了上行路径故障时能不能主动让位;
- 接入层二层的链路复用需要单独设计,VRRP 本身不负责二层环路。
下一步建议直接在 eNSP 里搭一个双核心拓扑,按照本文的地址规划做一遍实验。先把display vrrp brief的结果看明白,再手动断开一台核心,观察虚拟 IP 的漂移时间,最后再考虑接入侧要不要引入 Eth-Trunk 或 M-LAG。
把这套流量路径想清楚,比记几十条命令更有用。