华为交换机 iStack 堆叠配置详解:成员、优先级与堆叠端口 - 夜莺博客

华为交换机 iStack 堆叠配置详解:成员、优先级与堆叠端口

iStack(Intelligent Stack,智能堆叠)是华为盒式交换机(S2700、S3700、S5700、S6700 等)的虚拟化技术,把多台物理交换机通过堆叠线缆连接后虚拟成一台逻辑设备;高端框式设备对应的是 CSS(集群交换系统),iStack 最多支持 9 台成员,CSS 只支持 2 台。堆叠能扩展端口数量、成倍提升带宽、简化管理,并且天然支持跨设备链路聚合。本文以两台 S5700 组堆叠为例,给出完整的配置步骤与验证命令。

理解堆叠的关键在于一点:堆叠形成后所有成员共用同一份配置文件。你在任意成员下发的配置都对整台逻辑设备生效,成员关系由角色(主/备/从)与选举机制决定。这意味着堆叠规划必须一次做对——上线后再改成员 ID 或域编号,代价远高于配置前想清楚。

iStack、CSS 与 IRF 的对比

华为生态里“多台设备虚拟成一台”的技术不止一种,很容易混淆:

技术 适用设备 成员数量 互联方式
iStack(智能堆叠) 盒式交换机 S2700/S3700/S5700/S6700/S5720 等 最多 9 台(具体型号有差异) 业务高速口或专用堆叠卡
CSS(集群交换系统) 框式交换机 S7700/S9700/S12700 等 2 台 主控板集群端口 / 业务口
IRF(H3C) H3C 全系列盒式与框式 2~9 台(按型号) IRF 物理端口

三者思路高度一致:都靠优先级选举 Master、都由 Master 统一管理、都支持跨设备链路聚合,区别主要在命令语法、成员数量上限和堆叠端口的物理形态。选型上的经验是:接入层为了扩端口、做双上行冗余,用 iStack;核心/汇聚框式做双机虚拟化,用 CSS。想更深入了解差异和选择依据,可以看我们整理的 华为交换机堆叠:iStack 与 CSS 的区别和选择。

堆叠前的规划

配置前必须想清楚四件事:

  • 成员 ID:每台交换机唯一的堆叠成员编号,例如 SwitchA=1、SwitchB=2;
  • 优先级:决定主交换机选举,数值越大越优先(默认 100),例如主设备设 150、备设备设 120;
  • 域编号(Domain ID):整个堆叠系统唯一,不能与网络中其它堆叠系统冲突;
  • 堆叠端口与线序:本端堆叠口 1 必须接对端堆叠口 2(交叉连接),否则堆叠无法建立。

补充三点容易被忽略的规划项:堆叠带宽——建议每个成员至少配置两条堆叠链路,形成环形拓扑,既提升带宽又提供单链路故障冗余;上电顺序——先给规划为主设备的交换机上电,等其启动完成后再给其余成员上电,可以缩短堆叠收敛时间;软件版本——堆叠系统要求所有成员的版本一致,规划阶段就要确认手上设备的版本是否需要先升级。

堆叠建立与主备选举过程

堆叠不是“配置完就立刻生效”的,它有一套完整的建立流程:

  1. 物理连接:按交叉规则连接堆叠线缆,确认堆叠口指示灯正常。
  2. 上电与信息交换:各成员启动后通过堆叠链路互相交换堆叠信息,包括成员 ID、优先级、MAC 地址和软件版本。
  3. 主交换机选举:优先级数值大的成为主交换机;优先级相同时比较 MAC 地址,MAC 地址小者优先。这是很多“明明优先级设对了却不是主设备”的答案——如果两台优先级相同,决定权就交给了 MAC。
  4. 角色确定:形成 Master(主)、Standby(备)、Slave(从)三级角色。主设备维护唯一的配置文件,备用设备同步配置、随时准备接管。
  5. 堆叠建立完成:主设备向所有成员同步配置,之后通过任意成员的管理口登录,看到的都是同一台设备。

这里有一个排障要点:堆叠链路中断通常不会立即造成业务中断,而是先分裂。所有成员都认为自己是主设备,配置相同、IP 相同,网络中于是出现两个同地址的管理实体——这就是“双主”故障,也正是后面要配置 DAD 的原因。

配置堆叠属性

先配置 SwitchA(成员 ID 默认为 1,无需修改),设置优先级 150、域 10:

<HUAWEI> system-view
[~HUAWEI] sysname SwitchA
[*HUAWEI] commit
[~SwitchA] stack
[~SwitchA-stack] stack member 1 priority 150
[*SwitchA-stack] stack member 1 domain 10
[*SwitchA-stack] quit
[*SwitchA] commit

再配置 SwitchB:修改成员 ID 为 2(带 inherit-config 继承原配置)、优先级 120、域 10。注意在 SwitchB 重启前它仍是成员 1,因此要用 member 1 下发配置:

<HUAWEI> system-view
[~HUAWEI] sysname SwitchB
[*HUAWEI] commit
[~SwitchB] stack
[~SwitchB-stack] stack member 1 priority 120
[*SwitchB-stack] stack member 1 domain 10
[*SwitchB-stack] stack member 1 renumber 2 inherit-config
[*SwitchB-stack] quit
[*SwitchB] commit

renumber 之后必须 save 并重启,成员 ID 才会真正生效。这里最常见的错误是忘记 inherit-config,导致原来配置在成员 ID 变更后全部丢失。

配置堆叠端口

把物理口加入逻辑堆叠端口(示例:SwitchA 的 10GE1/0/1~1/0/2 加入堆叠口 1/1,1/0/3~1/0/4 加入 1/2;对端交叉)。新版 VRP 用 interface stack-port 方式:

[~SwitchA] interface stack-port 1/1
[*SwitchA-stack-port1/1] port interface 10ge1/0/1 enable
[*SwitchA-stack-port1/1] port interface 10ge1/0/2 enable
[*SwitchA-stack-port1/1] quit
[~SwitchA] interface stack-port 1/2
[*SwitchA-stack-port1/2] port interface 10ge1/0/3 enable
[*SwitchA-stack-port1/2] port interface 10ge1/0/4 enable
[*SwitchA-stack-port1/2] quit
[*SwitchA] commit

两台设备都配置完成后 save 保存并下电,按照规划交叉连接堆叠线缆(建议先给高优先级设备上电,使其优先成为主交换机),再给其余设备上电。

关于线缆和端口的几条实务要求:

  • 线缆必须认证:使用华为认证的高速电缆或光模块。非认证光模块经常导致堆叠口无法 up,且现象是“物理灯亮、逻辑不建立”,很难排查。
  • 交叉连接是规则:本端堆叠口 1 接对端堆叠口 2、本端 2 接对端 1。直连(1 接 1)在某些版本上能建立,但成员数量增加后会出现拓扑问题。
  • 带宽要留余量:跨成员转发的流量必须经过堆叠链路,堆叠带宽应大于所有成员上行流量之和;机房东西向流量大时需重新评估。

验证与常用排障

<SwitchA> display stack
<SwitchA> display stack configuration
<SwitchA> display device

确认两台成员都处于正常状态并显示正确的角色(Master/Standby)。常见失败原因:堆叠口没有交叉连接、域编号不一致、成员 ID 冲突、软件版本不一致。排障对照清单:

现象 可能原因 检查命令/处理
堆叠完全不建立 线缆未交叉、端口未 enable、非认证线缆 display stack configuration 确认端口状态
只能看到本机成员 域编号与其他堆叠系统冲突、成员 ID 重复 核对 display stack 的域与成员列表
堆叠建立后又频繁分裂 堆叠链路质量差、单链路无冗余、光模块告警 检查接口误码与光功率,补足第二条链路
主设备不是预期的那台 优先级相同,由 MAC 地址决定 调整优先级使其拉开差距,保存后重启
成员配置丢失 未使用 inherit-config 修改成员 ID 恢复备份配置,重新按规范下发
堆叠后无法建立堆叠 各成员软件版本不一致 display version 对比,升级到同一版本

建议把 display stack 纳入日常巡检:成员数量、角色、优先级与堆叠口状态是四项必看内容——堆叠分裂往往先从某个堆叠口状态异常开始。

多主检测(DAD)与拆除堆叠

堆叠分裂会造成两台设备配置相同、IP 冲突的双主故障,建议在直连堆叠链路的设备之间配置 DAD(双主检测)功能,分裂时自动关闭从设备的业务口并恢复为普通交换机状态:

[SwitchA] interface 10ge1/0/1
[*SwitchA-10GE1/0/1] mad enable
[*SwitchA-10GE1/0/1] quit
[*SwitchA] commit
<SwitchA> display mad verbose

配置 DAD 有两个前提:DAD 链路必须是独立于堆叠线缆的直连链路(通常是成员间另拉一根业务线),因为堆叠链路断了正是需要 DAD 工作的场景;代理检测(relay 模式)通过中间设备转发检测报文,适用于成员间没有直连链路的场景。display mad verbose 可查看 DAD 状态与检测结果。

拆除堆叠时先拔堆叠线缆再通过 Console 登录处理(分裂后成员 IP 相同,远程登录会失败)。更换单个成员时,先下电并拆除堆叠线缆,换机后配置相同的成员 ID、优先级与域编号再接入上电。完整的排障与分裂恢复步骤见 华为交换机堆叠分裂与多主检测 MAD 配置排查指南。

版本一致性与升级

堆叠系统要求所有成员的软件版本一致(同一大版本及配套补丁)。版本不一致时轻则堆叠无法建立,重则出现配置同步错误与跨成员转发异常,因此新建堆叠前应先用 display version 逐台核对。

升级已有堆叠系统的推荐顺序是:先升级备用设备,再执行主备切换(slave switchover),然后升级原主设备与其余成员。升级过程中堆叠可能短暂分裂,且主备切换本身会造成几秒钟的业务中断,因此务必安排维护窗口。升级前的配置备份可以参考 华为交换机启动文件与配置管理:save/reset 详解。

iStack 与 H3C IRF 堆叠思路相近但命令不同,可对照阅读我们的 H3C IRF 堆叠配置与排障;若堆叠后需要整机初始化,参考《华为交换机恢复出厂设置三种方法》。

原文链接:https://developer.aliyun.com/article/531046