想象一下这样的场景:公司正在开季度总结会,所有部门通过视频会议向总部汇报业绩。突然网络中断,核心交换机宕机,会议被迫中止,业务系统全部瘫痪。这种单点故障带来的损失,轻则影响工作效率,重则造成直接经济损失。这就是为什么越来越多的企业开始采用双核心冗余架构。
我在给一家200人规模的电商公司做网络改造时,就遇到过类似情况。他们的单台核心交换机在促销期间因为流量过大直接崩溃,导致网站瘫痪3小时,损失超过50万。后来我们部署了双核心+MSTP+VRRP方案后,即使在618大促期间,网络也始终保持稳定运行。
双活架构的核心价值在于:
我们先来看一个经典的双核心拓扑设计。以华为交换机为例(其他品牌配置逻辑类似),通常需要:
bash复制[SW1]sysname Core1
[SW2]sysname Core2
[SW3]sysname Access1
[SW4]sysname Access2
关键连接方式:
在开始MSTP和VRRP配置前,这些基础配置必不可少:
bash复制# 以Core1为例的基础配置
[Core1]vlan batch 10 20 100
[Core1]interface Vlanif100
[Core1-Vlanif100]ip address 192.168.100.1 24
[Core1]interface GigabitEthernet0/0/1
[Core1-GigabitEthernet0/0/1]port link-type trunk
[Core1-GigabitEthernet0/0/1]port trunk allow-pass vlan all
特别提醒:一定要先规划好VLAN用途。我见过不少项目因为初期VLAN规划混乱,后期不得不重新配置。建议:
在双核心架构中,核心交换机之间的互联链路尤为关键。只使用单条链路存在两个致命问题:
去年给某医院做网络升级时,他们就因为核心交换机之间只用了一条10G光纤,结果光纤被施工挖断,导致全院网络中断。后来我们改用4条1G线路做Eth-Trunk,既保证了带宽,又实现了冗余。
推荐使用LACP模式而不是手工模式,因为LACP能提供链路状态检测和动态调整能力:
bash复制# Core1配置
[Core1]interface Eth-Trunk1
[Core1-Eth-Trunk1]mode lacp-static
[Core1-Eth-Trunk1]trunkport GigabitEthernet 0/0/23 to 0/0/24
[Core1-Eth-Trunk1]port link-type trunk
[Core1-Eth-Trunk1]port trunk allow-pass vlan all
# Core2配置(必须保持参数一致)
[Core2]interface Eth-Trunk1
[Core2-Eth-Trunk1]mode lacp-static
[Core2-Eth-Trunk1]trunkport GigabitEthernet 0/0/23 to 0/0/24
[Core2-Eth-Trunk1]port link-type trunk
[Core2-Eth-Trunk1]port trunk allow-pass vlan all
重要提示:配置顺序很关键!一定要先配mode再添加接口。我有次在割接时因为顺序弄反,导致链路聚合不生效,排查了半小时才发现问题。
传统STP(生成树协议)有个致命缺陷:所有VLAN共享同一棵生成树。这会导致:
MSTP(多实例生成树)通过引入"实例"概念,让不同VLAN组可以使用不同的生成树。比如:
配置MSTP时最容易出错的是域参数不一致,务必确保:
bash复制# Core1配置示例
[Core1]stp mode mstp
[Core1]stp region-configuration
[Core1-mst-region]region-name HQ_NETWORK
[Core1-mst-region]revision-level 1
[Core1-mst-region]instance 1 vlan 10
[Core1-mst-region]instance 2 vlan 20
[Core1-mst-region]active region-configuration
[Core1]stp instance 1 root primary
[Core1]stp instance 2 root secondary
# Core2配置(注意主备角色要对调)
[Core2]stp mode mstp
[Core2]stp region-configuration
[Core2-mst-region]region-name HQ_NETWORK
[Core2-mst-region]revision-level 1
[Core2-mst-region]instance 1 vlan 10
[Core2-mst-region]instance 2 vlan 20
[Core2-mst-region]active region-configuration
[Core2]stp instance 1 root secondary
[Core2]stp instance 2 root primary
实测建议:先配完所有交换机的基础MSTP参数,最后再统一设置主备角色。我有次边配边设角色,结果因为配置不同步导致临时环路,触发了广播风暴。
这里有个关键知识点:VRRP优先级应该与MSTP角色匹配。具体来说:
如果不这样配置,可能会出现"路径优先但网关不优"的矛盾局面。曾经有个客户就因为这个配置反了,导致流量要走绕路。
bash复制# Core1配置
[Core1]interface Vlanif10
[Core1-Vlanif10]ip address 192.168.10.2 24
[Core1-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1
[Core1-Vlanif10]vrrp vrid 10 priority 120 # 高优先级
[Core1]interface Vlanif20
[Core1-Vlanif20]ip address 192.168.20.2 24
[Core1-Vlanif20]vrrp vrid 20 virtual-ip 192.168.20.1
[Core1-Vlanif20]vrrp vrid 20 priority 100 # 低优先级
# Core2配置(优先级与Core1相反)
[Core2]interface Vlanif10
[Core2-Vlanif10]ip address 192.168.10.3 24
[Core2-Vlanif10]vrrp vrid 10 virtual-ip 192.168.10.1
[Core2-Vlanif10]vrrp vrid 10 priority 100 # 低优先级
[Core2]interface Vlanif20
[Core2-Vlanif20]ip address 192.168.20.3 24
[Core2-Vlanif20]vrrp vrid 20 virtual-ip 192.168.20.1
[Core2-Vlanif20]vrrp vrid 20 priority 120 # 高优先级
实用技巧:可以通过调整VRRP的preempt-mode(抢占模式)来控制故障恢复后的主备切换行为。对于关键业务,建议启用立即抢占:
bash复制[Core1-Vlanif10]vrrp vrid 10 preempt-mode timer delay 0
配置完成后,这些命令能帮你快速验证效果:
bash复制# 查看MSTP状态
display stp brief
display stp instance 1
display stp region-configuration
# 查看VRRP状态
display vrrp brief
display vrrp interface Vlanif10
# 查看Eth-Trunk状态
display eth-trunk 1
问题1:VRRP主备状态异常
问题2:MSTP域不同步
问题3:Eth-Trunk不生效
在实际部署中,还有几个优化点值得注意:
bash复制[Core1]stp timer forward-delay 1000 # 单位是厘秒(10毫秒)
bash复制[Core1]bfd
[Core1-bfd]quit
[Core1-Vlanif10]vrrp vrid 10 track bfd-session 1 increased 50
bash复制[Access1]interface GigabitEthernet0/0/10
[Access1-GigabitEthernet0/0/10]stp edged-port enable