第25篇:iStack 堆叠的建立过程与主备选举
一、写在前面
上一篇文章介绍了堆叠的基本概念。这篇深入 iStack 堆叠建立的全过程:两台交换机插上堆叠线缆后,内部发生了什么?Master 和 Standby 是怎么选出来的?成员端口号怎么变化?
二、iStack 堆叠建立的四步流程
SW-A SW-B
(先启动) (后启动)
│ │
│ 1. 物理连接 │
│◀═══════════════════▶│
│ │
│ 2. 竞选 Master │
│ (先启动 + 优先级高) │
│ ←──── Master ────→ │
│ │
│ 3. 拓扑收集与同步 │
│ Master 收集信息 │
│ Master 同步配置到 │
│ Standby 和 Slave │
│ │
│ 4. 堆叠系统就绪 │
│ ──── iStack UP ──── │
│ │
第一步:物理连接
- 交换机检测到堆叠口(专用堆叠口或配置为堆叠模式的业务口)物理 UP
- 开始发送堆叠竞争报文
第二步:Master 竞选
竞选依据按优先级比较:
| 优先级条件 | 说明 |
|---|---|
| 1. 运行状态 | 已经运行的交换机 > 正在启动的(先启动优势) |
| 2. 堆叠优先级 | 数值越大越优先(配置的 stack slot 0 priority) |
| 3. MAC 地址 | MAC 小的优先 |
堆叠优先级配置:
# 让 SW-A 的优先级高于 SW-B,确保 SW-A 成为 Master
[SW-A] stack slot 0 priority 200 ← 默认 100
[SW-B] stack slot 1 priority 100
第三步:拓扑收集与同步
Master 确定后: 1. Master 分配堆叠 ID(Slot ID)给每个成员 2. Master 将自己的配置同步到所有成员 3. Master 计算转发平面并下发到各成员
第四步:系统就绪
堆叠系统进入正常运行状态。
三、成员端口编号
3.1 编号规则
堆叠建立后,端口编号变为:槽位号/子卡号/端口号
| 成员 | 原端口名 | 堆叠后端口名 |
|---|---|---|
| Master(Slot 0) | GigabitEthernet0/0/1 | GigabitEthernet0/0/1 |
| Slave 1(Slot 1) | GigabitEthernet0/0/1 | GigabitEthernet1/0/1 |
| Slave 2(Slot 2) | GigabitEthernet0/0/1 | GigabitEthernet2/0/1 |
3.2 配置管理上的变化
# 堆叠前——管理单台交换机
[SW-A] interface gigabitethernet 0/0/1
# 堆叠后——使用 slot 号区分
[Stack] interface gigabitethernet 1/0/1 ← Slave 1 的第一个端口
[Stack] interface gigabitethernet 0/0/24 ← Master 的第 24 个端口
四、配置实战——两台 S 系列交换机堆叠
4.1 物理连接
堆叠拓扑:环形
堆叠口
SW-A (Stack-Port1) ──────── (Stack-Port2) SW-B
(Stack-Port2) ──────── (Stack-Port1)
4.2 配置堆叠口
# 在 SW-A 上
[SW-A] stack slot 0 priority 200 ← 让 SW-A 成为 Master
[SW-A] interface stack-port 0/1 ← 堆叠口 0/1
[SW-A-stack-port0/1] port interface gigabitethernet 0/0/27 enable ← 绑定物理口
[SW-A-stack-port0/1] quit
[SW-A] interface stack-port 0/2 ← 堆叠口 0/2
[SW-A-stack-port0/2] port interface gigabitethernet 0/0/28 enable
# 在 SW-B 上
[SW-B] stack slot 1 priority 100 ← Slave
[SW-B] interface stack-port 1/1 ← 堆叠口 1/1
[SW-B-stack-port1/1] port interface gigabitethernet 0/0/27 enable
[SW-B-stack-port1/1] quit
[SW-B] interface stack-port 1/2
[SW-B-stack-port1/2] port interface gigabitethernet 0/0/28 enable
4.3 保存并重启
[SW-A] save
[SW-A] reboot
[SW-B] save
[SW-B] reboot
重启后,堆叠建立。
4.4 验证
# 查看堆叠成员
[Stack] display stack
Stack mode: iStack
Stack topology type: Ring
Stack system MAC: 00e0-fc00-0001
---------------------------------------------------------------------
Slot Role Priority Device Ports
0 Master 200 S5735-L48P4X-A 48
1 Standby 100 S5735-L48P4X-A 48
---------------------------------------------------------------------
MAC switch delay: 0
# 查看堆叠端口状态
[Stack] display stack configuration
Oper : GigabitEthernet0/0/27 : stack-port 0/1
GigabitEthernet0/0/28 : stack-port 0/2
五、Master 故障时发生了什么?
正常状态:Master(Slot 0) + Standby(Slot 1) + Slave(Slot 2)
Master 故障(电源/硬件/系统崩溃)
│
▼
Standby 检测到 Master 丢失(堆叠心跳超时)
│
▼
Standby 切换为新的 Master
│
▼
Slave 重新与新 Master 建立同步
│
▼
堆叠系统恢复(端口编号不变,IP 不变,配置不变)
收敛时间:大约 1~5 秒(取决于配置和拓扑)。
六、配置变更管理
6.1 堆叠后如何管理
# 登录堆叠系统(一个管理 IP)
ssh admin@192.168.1.100
# 查看系统信息
[Stack] display version
[Stack] display device
# 进入某台成员的 CLI
[Stack] slave connect slot 1 ← 连接到 Slot 1 的 CLI
6.2 配置自动同步
Master 上的配置会自动同步到所有成员。你不需要在每台交换机上单独配置:
# 配置 VLAN,自动同步到所有成员
[Stack] vlan batch 10 20 30
# 配置端口,使用 slot 号
[Stack] interface gigabitethernet 0/0/1
[Stack-GigabitEthernet0/0/1] port link-type access
[Stack-GigabitEthernet0/0/1] port default vlan 10
[Stack] interface gigabitethernet 1/0/1
[Stack-GigabitEthernet0/0/1] port link-type access
[Stack-GigabitEthernet0/0/1] port default vlan 20
七、重要注意事项
| 事项 | 说明 |
|---|---|
| 版本一致 | 堆叠成员的版本必须一致 |
| 型号兼容 | 同一系列且支持堆叠的型号 |
| 先配后重启 | 堆叠配置需要重启才能生效 |
| 堆叠口不转发业务数据 | 堆叠口只用于堆叠通信 |
| 不要拔堆叠线 | 工作中的堆叠不要随便拔线,可能分裂 |
| Master 选举优先级 | 先启动 > 高优先级 > 小 MAC |
八、思考
- iStack 堆叠建立的四步流程是什么?
- Master 竞选比较哪三个因素?优先级高低是怎么排序的?
- 堆叠建立后,端口编号变成了什么格式?
- Master 故障后,Standby 多久接管?配置和 IP 会变化吗?
- 链形堆叠中一条堆叠线断了会怎样?环形呢?
- 配置完堆叠后为什么要重启才能生效?
下篇预告:第26篇《堆叠分裂故障_双主检测与MAD检测机制》——了解堆叠分裂故障的处理方法和MAD检测机制。