一次搞定VRRP多网关、负载分担、故障自动切换,让你的网络永不断线
前言
在企业园区网中,终端设备的网关往往是单一设备,一旦该设备出现故障,整个网段的设备就会断网。为了解决这个问题,VRRP(虚拟路由冗余协议)应运而生。但仅仅实现主备还不够,我们希望两台网关设备能够同时承载流量,实现负载分担,同时又能相互备份。本实验通过VRRP多组配置,让SW1成为VLAN 10的主网关、VLAN 20的备份网关,SW2成为VLAN 20的主网关、VLAN 10的备份网关,从而实现流量分流和冗余备份。此外,上层AR1通过等价路由(ECMP)实现链路负载,构建一个完整的高可用园区网。
一、实验拓扑
拓扑说明
-
AR1 :模拟企业出口路由器,Loopback0地址
1.1.1.1/24用于测试。 -
SW1:三层交换机,VLAN 10主网关(VRRP优先级120),VLAN 20备份网关(优先级100)。
-
SW2:三层交换机,VLAN 20主网关(VRRP优先级120),VLAN 10备份网关(优先级100)。
-
SW3:二层交换机,仅做VLAN透传,连接PC1(VLAN 10)和PC2(VLAN 20)。
-
PC1 :VLAN 10,网关为虚拟IP
10.0.10.254。 -
PC2 :VLAN 20,网关为虚拟IP
10.0.20.254。
IP地址规划
| 设备 | 接口 | IP地址 | 所属VLAN | 说明 |
|---|---|---|---|---|
| AR1 | G0/0/0 | 10.0.12.1/24 | - | 连接SW1 |
| AR1 | G0/0/1 | 10.0.13.1/24 | - | 连接SW2 |
| AR1 | Loopback0 | 1.1.1.1/24 | - | 测试地址 |
| SW1 | Vlanif12 | 10.0.12.2/24 | 12 | 三层互联 |
| SW1 | Vlanif10 | 10.0.10.1/24 | 10 | VRRP组10 Master |
| SW1 | Vlanif20 | 10.0.20.1/24 | 20 | VRRP组20 Backup |
| SW2 | Vlanif13 | 10.0.13.2/24 | 13 | 三层互联 |
| SW2 | Vlanif20 | 10.0.20.2/24 | 20 | VRRP组20 Master |
| SW2 | Vlanif10 | 10.0.10.2/24 | 10 | VRRP组10 Backup |
| PC1 | - | 10.0.10.10/24 | 10 | 网关10.0.10.254 |
| PC2 | - | 10.0.20.20/24 | 20 | 网关10.0.20.254 |
二、实验需求
-
不同VLAN隔离:PC1和PC2分别属于VLAN 10和VLAN 20,二层隔离。
-
网关冗余 :SW1和SW2同时作为终端设备的网关,VRRP虚拟IP分别为
10.0.10.254和10.0.20.254。 -
负载分担:SW1作为VLAN 10的主网关,SW2作为VLAN 20的主网关,实现流量分流。
-
互为备份:当主网关故障时,备份网关自动接管,保证网络不中断。
-
上行冗余:AR1通过等价路由(ECMP)分别指向SW1和SW2,实现上行链路负载和备份。
-
全网互通 :PC1和PC2能够相互通信,且都能访问AR1的Loopback地址
1.1.1.1。
三、需求分析
1. VRRP负载分担设计
-
在SW1和SW2上分别创建两个VRRP组:组10(虚拟IP
10.0.10.254)和组20(虚拟IP10.0.20.254)。 -
SW1在组10中优先级设为120(高于SW2的100),成为VLAN 10的Master;在组20中优先级设为100(低于SW2的120),成为VLAN 20的Backup。
-
SW2则相反:组20优先级120(Master),组10优先级100(Backup)。
-
这样,VLAN 10的流量主走SW1,VLAN 20的流量主走SW2,实现负载分担。
2. 抢占与延迟
- 配置抢占模式,并设置延迟5秒,避免网络抖动导致频繁切换。
3. 上行路由
-
SW1和SW2各自配置默认路由指向AR1(SW1走
10.0.12.1,SW2走10.0.13.1)。 -
AR1配置回程静态路由,使用等价路由(ECMP)将目的网段
10.0.10.0/24和10.0.20.0/24同时指向SW1和SW2,实现上行链路负载和冗余。
4. 二层透传
- SW3作为纯二层交换机,创建VLAN 10和20,上行接口配置Trunk允许VLAN 10和20通过,连接PC的接口配置Access。
四、设备配置详解
1. 出口路由器 AR1
AR1主要提供上行连接和回程路由。
sysname AR1
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/0
ip address 10.0.12.1 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.13.1 255.255.255.0
#
# 等价路由(ECMP),实现负载分担和链路备份
ip route-static 10.0.10.0 255.255.255.0 10.0.12.2
ip route-static 10.0.10.0 255.255.255.0 10.0.13.2
ip route-static 10.0.20.0 255.255.255.0 10.0.12.2
ip route-static 10.0.20.0 255.255.255.0 10.0.13.2
说明:
- 两条等价路由使AR1访问
10.0.10.0/24时,可以负载分担到SW1或SW2。当其中一条链路故障时,另一条仍可正常工作。
2. 三层交换机 SW1(VLAN 10 主网关)
sysname LSW1
#
vlan batch 10 12 20
#
# 连接 AR1(Access VLAN 12)
interface GigabitEthernet0/0/1
port link-type access
port default vlan 12
#
# 连接 LSW3(Trunk,允许 VLAN 10 20)
interface GigabitEthernet0/0/23
port link-type trunk
port trunk allow-pass vlan 10 20
#
# VLAN 12 三层接口(与 AR1 互联)
interface Vlanif12
ip address 10.0.12.2 255.255.255.0
#
# VLAN 10 三层接口(VRRP 主网关)
interface Vlanif10
ip address 10.0.10.1 255.255.255.0
vrrp vrid 10 virtual-ip 10.0.10.254
vrrp vrid 10 priority 120
vrrp vrid 10 preempt-mode timer delay 5
#
# VLAN 20 三层接口(VRRP 备份网关)
interface Vlanif20
ip address 10.0.20.1 255.255.255.0
vrrp vrid 20 virtual-ip 10.0.20.254
vrrp vrid 20 priority 100
#
# 默认路由指向 AR1
ip route-static 0.0.0.0 0.0.0.0 10.0.12.1
说明:
-
VRRP组10优先级120,高于SW2的100,因此SW1成为Master,负责转发VLAN 10的流量。
-
VRRP组20优先级100,低于SW2的120,因此SW1成为Backup,仅在SW2故障时接管。
3. 三层交换机 SW2(VLAN 20 主网关)
sysname LSW2
#
vlan batch 10 13 20
#
# 连接 AR1(Access VLAN 13)
interface GigabitEthernet0/0/1
port link-type access
port default vlan 13
#
# 连接 LSW3(Trunk,允许 VLAN 10 20)
interface GigabitEthernet0/0/24
port link-type trunk
port trunk allow-pass vlan 10 20
#
# VLAN 13 三层接口(与 AR1 互联)
interface Vlanif13
ip address 10.0.13.2 255.255.255.0
#
# VLAN 20 三层接口(VRRP 主网关)
interface Vlanif20
ip address 10.0.20.2 255.255.255.0
vrrp vrid 20 virtual-ip 10.0.20.254
vrrp vrid 20 priority 120
vrrp vrid 20 preempt-mode timer delay 5
#
# VLAN 10 三层接口(VRRP 备份网关)
interface Vlanif10
ip address 10.0.10.2 255.255.255.0
vrrp vrid 10 virtual-ip 10.0.10.254
vrrp vrid 10 priority 100
#
# 默认路由指向 AR1
ip route-static 0.0.0.0 0.0.0.0 10.0.13.1
说明:
- 与SW1配置对称,VRRP组20为主,组10为备。
4. 二层交换机 SW3(纯透传)
sysname LSW3
#
vlan batch 10 20
#
# 连接 SW1(Trunk)
interface GigabitEthernet0/0/23
port link-type trunk
port trunk allow-pass vlan 10 20
#
# 连接 SW2(Trunk)
interface GigabitEthernet0/0/24
port link-type trunk
port trunk allow-pass vlan 10 20
#
# 连接 PC1(Access VLAN 10)
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
#
# 连接 PC2(Access VLAN 20)
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
说明:
- SW3不需要三层功能,仅做VLAN透传,将上行两个Trunk端口和下行Access端口连接起来。
5. PC配置
| 设备 | IP地址 | 子网掩码 | 网关 |
|---|---|---|---|
| PC1 | 10.0.10.10 | 255.255.255.0 | 10.0.10.254 |
| PC2 | 10.0.20.20 | 255.255.255.0 | 10.0.20.254 |
注意:网关地址为VRRP虚拟IP,而不是物理接口IP。
五、结果验证
1. 查看VRRP状态
在SW1上查看VRRP组10和组20的状态
[LSW1]display vrrp brief
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Master Vlanif10 Normal 10.0.10.254
20 Backup Vlanif20 Normal 10.0.20.254
在SW2上查看
[LSW2]display vrrp brief
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Backup Vlanif10 Normal 10.0.10.254
20 Master Vlanif20 Normal 10.0.20.254
分析:符合预期,SW1为组10的Master,SW2为组20的Master。
2. 测试负载分担
PC1 ping AR1的Loopback地址
PC1> ping 1.1.1.1
PING 1.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 1.1.1.1: bytes=56 Sequence=1 ttl=254 time=30 ms
在SW1上抓包,可以看到PC1的流量经过SW1转发(因为PC1的网关虚拟IP的Master是SW1)。
PC2 ping AR1的Loopback地址
PC2> ping 1.1.1.1
PING 1.1.1.1: 56 data bytes, press CTRL_C to break
Reply from 1.1.1.1: bytes=56 Sequence=1 ttl=254 time=30 ms
在SW2上抓包,PC2的流量经过SW2转发。说明负载分担生效。
3. 测试互通性
PC1 ping PC2
PC1> ping 10.0.20.20
PING 10.0.20.20: 56 data bytes, press CTRL_C to break
Reply from 10.0.20.20: bytes=56 Sequence=1 ttl=126 time=20 ms
分析 :PC1的网关是SW1(Master of VLAN10),PC2的网关是SW2(Master of VLAN20)。PC1发送数据到PC2时,先经过SW1,SW1查路由表知道10.0.20.0/24可通过SW2到达(因为AR1上有等价路由,但SW1到PC2的路径是:SW1→AR1→SW2→PC2?实际上,由于SW1和SW2之间没有直接的三层链路,它们需要通过AR1转发。但AR1上配置了到两个网段的等价路由,所以流量会走AR1中转。这是合理的,因为实验中没有在SW1和SW2之间直接运行路由协议。如果需要更优路径,可以在SW1和SW2之间增加三层链路并运行OSPF,但本实验重点在VRRP,当前设计已满足功能。)
4. 故障切换测试
模拟SW1故障(关闭SW1的Vlanif10接口或断电)
在SW1上执行:
[LSW1]interface Vlanif10
[LSW1-Vlanif10]shutdown
然后查看SW2上的VRRP状态:
[LSW2]display vrrp brief
VRID State Interface Type Virtual IP
----------------------------------------------------------------
10 Master Vlanif10 Normal 10.0.10.254
20 Master Vlanif20 Normal 10.0.20.254
此时SW2同时成为组10和组20的Master。PC1继续ping 1.1.1.1,观察丢包情况(由于VRRP抢占延迟5秒,可能会丢几个包,但很快恢复)。
恢复SW1的接口后,等待抢占延迟5秒,SW1重新成为组10的Master。
结果:高可用性验证通过。
5. 上行链路冗余测试
关闭AR1的G0/0/0接口(连接SW1的链路):
[AR1]interface GigabitEthernet0/0/0
[AR1-GigabitEthernet0/0/0]shutdown
此时PC1(VLAN10)的主网关SW1的上行链路中断,但VRRP状态未变(因为VRRP检测的是网关设备本身是否存活,而不是上行链路)。然而PC1访问外部网络会受影响。但PC2(VLAN20)的流量仍正常,因为SW2的上行链路正常。这体现了部分故障情况下的部分可用性。
若要实现上行链路故障也触发VRRP切换,需要配置VRRP联动接口跟踪(track),本实验未涉及,可作为扩展思考。
六、技术要点总结
1. VRRP工作原理
-
VRRP将多台路由器虚拟成一台,使用虚拟IP作为终端网关。
-
Master负责转发报文,Backup监听Master状态。
-
优先级(1-255)决定Master选举,数值越大越优先。
-
抢占模式:Backup发现优先级更高的Master出现时,可重新抢占成为Master。
2. 负载分担实现
-
通过创建多个VRRP组,在不同设备上设置不同的优先级,使不同VLAN的流量主走不同设备。
-
要求终端网关配置为各自VLAN对应的虚拟IP。
3. 三层交换机与二层交换机配合
-
三层交换机(SW1/SW2)配置VLAN接口(SVI),实现网关功能。
-
二层交换机(SW3)仅做VLAN透传,不参与路由。
4. 上行等价路由(ECMP)
-
AR1配置多条等价的静态路由,实现流量的负载分担和链路备份。
-
当一条链路故障时,路由表会自动切换到另一条(静态路由本身没有检测机制,但接口down会导致路由失效,从而只剩有效路由)。
5. 常见优化
-
抢占延迟:避免网络不稳定时频繁切换。
-
接口跟踪:监控上行接口状态,当上行链路故障时主动降低优先级,让备设备接管。
-
BFD联动:实现毫秒级故障检测。
七、排错与常见问题
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| VRRP邻居无法建立 | 虚拟IP配置不一致、接口不在同一VLAN | 检查虚拟IP是否相同,检查二层连通性 |
| 主设备故障后不切换 | 未配置抢占、抢占延迟过长 | 检查preempt-mode配置 |
| PC无法ping通网关 | 网关地址写错、VLAN未正确划分 | 检查PC网关是否为虚拟IP,检查Access VLAN |
| 上行等价路由不生效 | 目的网段掩码错误、下一跳不可达 | 检查静态路由配置,确保下一跳接口UP |
| 跨VLAN通信失败 | 缺少回程路由、VRRP网关未启用转发 | 检查AR1上的回程路由,检查交换机是否开启ip routing |
八、实验总结
本实验通过VRRP多组配置,成功实现了VLAN 10和VLAN 20的网关负载分担和相互备份。结合上层AR1的等价路由,构建了一个高可用的园区网络架构。通过验证,我们掌握了以下技能:
-
VRRP的基本配置和主备选举规则。
-
如何利用VRRP实现流量负载分担。
-
二层交换机与三层交换机的协同工作。
-
静态等价路由的应用场景。
在实际企业网络中,这种设计可以避免单点故障,提高网络可靠性,同时充分利用设备资源。希望本实验报告能帮助你深入理解VRRP协议及其在企业网中的应用。
作者:CSDN博主 盐真卿
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
