在企业级网络架构中,核心层的单点故障是不可接受的。满足高标准的业务连续性不仅是网络设计的核心,更是达成 ISO 27001 等信息安全合规标准中“可用性(Availability)”指标的关键底座。对于现代企业网络,Cisco 的双机热备和堆叠技术(特别是针对 Catalyst 9000 系列的 StackWise Virtual)是实现核心层无缝冗余的最佳实践。
这篇博客将详细拆解 Cisco 核心交换机“两两堆叠”的架构设计与完整配置过程,帮助你构建一个坚如磐石的核心网络。
## 一、 架构设计与拓扑说明
传统的 VSS(虚拟交换系统)已经逐渐被更先进的 **Cisco StackWise Virtual (SV)** 取代。它将两台物理核心交换机虚拟化为一台逻辑交换机,不仅简化了管理,还消除了生成树(STP)的阻塞端口,实现了跨交换机的链路聚合(MEC,Multichassis EtherChannel),带宽利用率达到 100%。
### 逻辑架构图
以下是标准的双机热备堆叠架构图:
核心组件说明:
1. **SVL (StackWise Virtual Link):** 堆叠链路。用于同步两台交换机的控制平面和数据平面流量。通常建议使用至少两条高带宽链路(如 40G/100G)做捆绑。
2. **DAD (Dual-Active Detection):** 双主检测链路。为了防止 SVL 链路断开时,两台交换机都认为自己是 Active 角色从而导致网络脑裂(IP冲突、路由翻棱),必须配置 DAD 链路。通常使用普通千兆/万兆口即可。
3. **MEC (Multichassis EtherChannel):** 跨设备链路聚合。下游接入交换机或上游防火墙通过 LACP 与两台核心交换机分别互联。
二、 详细配置步骤
假设我们有两台 Cisco Catalyst 9500 交换机,配置前请确保两台设备的 IOS-XE 版本完全一致,并且拥有相同的 License 级别。
### 阶段 1:配置 Switch 1(主交换机)
首先,我们配置第一台交换机的堆叠域和物理链路。
**1. 开启 StackWise Virtual 并分配 Domain ID**
```text
Switch-1# configure terminal
Switch-1(config)# stackwise-virtual
Switch-1(config-stackwise-virtual)# domain 10
Switch-1(config-stackwise-virtual)# exit
```
**2. 配置 SVL (堆叠链路)**
假设我们使用 HundredGigE1/0/1 和 HundredGigE1/0/2 作为堆叠链路。
```text
Switch-1(config)# interface range HundredGigE 1/0/1 - 2
Switch-1(config-if-range)# stackwise-virtual link 1
Switch-1(config-if-range)# exit
```
**3. 配置 DAD (双主检测链路)**
假设我们使用 TenGigE1/0/48 作为双主检测心跳线。
```text
Switch-1(config)# interface TenGigE 1/0/48
Switch-1(config-if)# stackwise-virtual dual-active-detection
Switch-1(config-if)# exit
```
**4. 保存配置并重启**
```text
Switch-1# write memory
Switch-1# reload
```
*注意:重启后,这台交换机将作为 Active 节点启动。*
### 阶段 2:配置 Switch 2(备交换机)
第二台交换机的配置与第一台类似,但为了后续合并后接口编号不冲突,我们通常需要在合并前或者合并过程中改变其交换机编号(Renumber)。
**1. 修改 Switch Number**
在全局模式下,将当前交换机编号(默认是 1)修改为 2。
```text
Switch-2# switch 1 renumber 2
```
*系统会提示更改将在下次重启后生效。*
**2. 开启 StackWise Virtual 并加入相同 Domain**
```text
Switch-2# configure terminal
Switch-2(config)# stackwise-virtual
Switch-2(config-stackwise-virtual)# domain 10
Switch-2(config-stackwise-virtual)# exit
```
**3. 配置 SVL (堆叠链路)**
*注意:此时接口编号依然是 1/0/x,因为系统尚未重启。*
```text
Switch-2(config)# interface range HundredGigE 1/0/1 - 2
Switch-2(config-if-range)# stackwise-virtual link 1
Switch-2(config-if-range)# exit
```
**4. 配置 DAD (双主检测链路)**
```text
Switch-2(config)# interface TenGigE 1/0/48
Switch-2(config-if)# stackwise-virtual dual-active-detection
Switch-2(config-if)# exit
```
**5. 保存配置并物理连接**
保存配置后,**关闭设备**。使用光纤将 Switch 1 和 Switch 2 的 SVL 端口和 DAD 端口正确对接。
```text
Switch-2# write memory
```
然后给 Switch 2 上电开机。Switch 2 启动过程中会通过 SVL 链路发现 Switch 1,并自动协商。由于 Switch 1 先启动,Switch 1 会保持 Active 状态,Switch 2 将成为 Standby Hot 状态。
### 阶段 3:跨设备链路聚合 (MEC) 验证配置
完成堆叠后,两台交换机已经变成了一台逻辑设备。此时配置下游接入交换机时,只需将其视为一台设备进行 LACP 聚合配置即可。
Switch 1 的接口变成了 1/0/x,Switch 2 的接口变成了 2/0/x。
**配置下联聚合示例:**
```text
Logical-Core(config)# interface range TenGigE 1/0/1 , TenGigE 2/0/1
Logical-Core(config-if-range)# channel-group 10 mode active
Logical-Core(config-if-range)# exit
Logical-Core(config)# interface port-channel 10
Logical-Core(config-if)# switchport mode trunk
```
## 三、 验证与排错命令
部署完成后,日常运维与安全巡检时,可以通过以下核心命令验证双机热备的健康状态:
* **查看堆叠状态:**
show stackwise-virtual
(确认两台设备的 Role 分别是 Active 和 Standby)
* **查看 SVL 链路状态:**
show stackwise-virtual link
(确认链路状态为 Up)
* **查看 DAD 双主检测状态:**
show stackwise-virtual dual-active-detection
(确认 DAD 链路处于侦听/正常状态)
* **查看跨设备聚合接口:**
show etherchannel summary
(确认 Port-channel 中同时包含 1/0/x 和 2/0/x 的接口,且状态为 P - Bundled in port-channel)