1. 堆叠到底解决了什么问题机房里一排交换机各自为政的日子做过运维的人都懂。三台设备三个管理地址改个VLAN要挨个登录配漏一台就是半夜排障的导火索。多台华三交换机堆叠本质是把物理上独立的几台盒子通过堆叠口和堆叠线缆连成一个逻辑上的单一设备。对外只暴露一个管理IP、一份配置文件、一个控制平面转发层面则靠堆叠链路做跨设备的流量互通。我第一次接触堆叠是在一个接入层改造项目里当时六台接入交换机分别上联到两台核心STP收敛慢、链路利用率低用户端偶尔出现秒级闪断。改成堆叠之后六台接入在逻辑上变成一台上联直接做跨设备聚合STP被彻底绕开链路利用率从50%拉到接近满载。这个收益不是纸面数字是用户投诉量直接归零。堆叠能做什么说清楚三点就够了。第一简化管理一个IP管多台配置一次全网生效。第二消除环路堆叠内部靠堆叠链路转发不需要STP去阻塞端口收敛时间从秒级降到毫秒级。第三提升可靠性堆叠内任意一台设备故障流量自动切换到其他成员配合跨设备聚合上联链路不会断。适合谁来参考中小型园区网的运维、系统集成商现场工程师、以及需要做接入层高可用的网络负责人。不需要你精通底层协议但得懂VLAN、聚合、STP这些基础概念否则堆叠配起来会一头雾水。2. 堆叠方案选型与核心原理拆解2.1 堆叠和IRF的关系别被术语绕晕华三的堆叠技术官方叫IRFIntelligent Resilient Framework智能弹性架构。很多文档里堆叠和IRF混着用其实是一回事。IRF是华三对堆叠的实现方案就像华为叫iStack、思科叫StackWise名字不同思路一致。你只要记住在华三设备上看到IRF就是堆叠。IRF的核心角色分两种。Master负责整个堆叠的管理和控制平面Standby是备胎Master挂了它顶上。其余成员叫Slave只负责转发。角色选举靠优先级和MAC地址优先级高的当Master优先级相同比MAC小的赢。这个选举规则很重要后面配优先级的时候会用到。2.2 堆叠口和堆叠线缆怎么选堆叠口是物理端口可以是专用的堆叠口也可以是普通业务口通过配置转成堆叠口。专用堆叠口一般标着IRF或者Stack字样带宽固定通常是10G或40G。普通业务口转堆叠口灵活但会占用业务端口选型时要算清楚端口余量。堆叠线缆的选择直接决定堆叠带宽和稳定性。短距离机柜内用DAC高速线缆成本低、延迟小一般1到3米够用。跨机柜用光模块加光纤距离远、抗干扰但成本高。我踩过的坑是贪便宜用了劣质DAC线堆叠链路频繁up/down日志里全是堆叠口震荡告警换了原厂线缆后彻底稳定。堆叠线缆一定要用原厂或者经过兼容性验证的这个钱不能省。2.3 堆叠拓扑链形还是环形链形拓扑是一台接一台首尾不相连。环形拓扑是首尾相连形成闭环。链形省线缆但中间任何一台设备故障堆叠会分裂成两半。环形可靠性高任意一条堆叠链路断了流量还能从另一方向绕过去。我的建议是三台及以上必须做环形。两台设备只能做链形因为两台之间只有一条链路做不了环。三台做环形需要每台设备两个堆叠口总共三条堆叠线缆。四台环形需要四条线缆。线缆数量等于设备数量这个要提前算好。2.4 堆叠分裂检测为什么必须配堆叠分裂是堆叠最危险的场景。堆叠链路全断原来的一个逻辑设备裂成两个两个Master同时存在管理IP冲突转发混乱。BFD MAD和LACP MAD是两种常见的分裂检测方式。BFD MAD需要单独拉一条检测链路跨所有堆叠成员配置BFD会话。LACP MAD利用上联聚合链路做检测不需要额外布线但要求上联设备支持LACP扩展。我一般优先选LACP MAD省线省端口。如果上联设备不支持再退而求其次用BFD MAD。分裂检测不配堆叠就是一颗定时炸弹平时没事出事就是全网瘫。3. 堆叠实操全流程与关键配置3.1 前期准备版本、编号、优先级三件事动手之前三件事必须确认。第一软件版本一致。堆叠成员的软件版本必须完全相同否则堆叠起不来。用display version逐台检查不一致的先升级到同一版本。第二成员编号规划。每台设备需要一个唯一的成员编号范围一般是1到9或者1到16取决于型号。编号规划好后面配置接口的时候用slot区分。第三优先级规划。想好哪台当Master把它的优先级调高默认优先级是1调到32就能稳当Master。我习惯把成员编号和机柜位置对应起来比如1号机柜第一台是1第二台是2这样现场排障的时候一眼就知道哪台是哪台。优先级方面一般把性能最好、位置最核心的那台设为Master。3.2 逐台配置从物理连接到逻辑统一配置流程分四步。第一步物理连线。按照规划的拓扑把堆叠线缆接好环形拓扑注意首尾相连。第二步逐台登录配置。每台设备单独登录配置堆叠成员编号和优先级。# 第一台设备配置 system-view irf member 1 priority 32 irf-port 1/1 port group interface Ten-GigabitEthernet1/0/49 port group interface Ten-GigabitEthernet1/0/50 quit irf-port-configuration active save这里解释一下。irf member 1 priority 32把成员编号设为1优先级32。irf-port 1/1进入堆叠口1/1第一个1是成员编号第二个1是堆叠口编号。port group interface把物理口绑到堆叠口。irf-port-configuration active激活堆叠口配置这一步很关键不激活堆叠不生效。第二台设备类似成员编号改成2优先级改成默认或者更低。# 第二台设备配置 system-view irf member 2 priority 1 irf-port 2/1 port group interface Ten-GigabitEthernet2/0/49 port group interface Ten-GigabitEthernet2/0/50 quit irf-port-configuration active save注意接口名称里的2/0/49第一个数字是成员编号。每台设备的接口编号都带自己的成员编号这个别搞错。第三步保存重启。所有设备配置完堆叠口后逐台保存并重启。重启顺序有讲究先重启Master等它起来后再重启其他成员。如果同时重启选举可能乱。第四步验证堆叠。全部起来后登录任意一台用display irf查看堆叠状态。display irf输出里会显示所有成员的状态、角色、优先级。Master那台会标着Master其他标着Standby或者Slave。如果只看到一台说明堆叠没起来检查线缆和配置。3.3 堆叠合并后的配置迁移堆叠起来之后原来的多台设备变成一台配置文件以Master的为准。其他成员的配置会被覆盖。所以配置堆叠之前一定要备份每台设备的配置。我见过有人没备份堆叠起来后发现原来某台设备上的特殊配置全没了只能重新配。堆叠合并后接口命名会变成Bridge-Aggregation或者Route-Aggregation跨设备的聚合口用slot区分成员。比如成员1的端口和成员2的端口做聚合配置里会写成interface Bridge-Aggregation 1然后port link-aggregation group 1成员端口分别绑定。3.4 跨设备聚合的配置要点跨设备聚合是堆叠的核心价值之一。上联链路从两台不同成员分别出线做成一个聚合口任何一台成员故障流量自动切到另一台。interface Bridge-Aggregation 1 port link-type trunk port trunk permit vlan all quit interface Ten-GigabitEthernet1/0/1 port link-aggregation group 1 quit interface Ten-GigabitEthernet2/0/1 port link-aggregation group 1 quit这里Ten-GigabitEthernet1/0/1是成员1的端口Ten-GigabitEthernet2/0/1是成员2的端口两个端口绑到同一个聚合组。对端设备也要做对应聚合模式选LACP或者静态聚合。我一般用LACP动态协商更可靠。4. 常见问题与排障实录4.1 堆叠起不来的排查顺序堆叠起不来按这个顺序查。第一版本是否一致。display version逐台对比版本不同先升级。第二堆叠口是否激活。display irf-port看堆叠口状态没激活的重新执行irf-port-configuration active。第三线缆是否正常。display interface看堆叠口物理状态down的换线换口。第四成员编号是否冲突。两台设备编号相同堆叠必失败。第五优先级是否合理。优先级相同比MAC如果MAC小的那台不是你想要的Master调优先级。4.2 堆叠分裂的典型表现堆叠分裂后两个逻辑设备同时存在管理IP冲突SSH登录可能连到其中一台配置改了一台另一台不知道。更严重的是转发环路因为两个Master都认为自己是唯一的。分裂检测配了的话检测到分裂后其中一台会进入Recovery状态端口全部关闭避免环路。没配分裂检测就只能靠人工发现。我遇到过一次分裂原因是堆叠线缆被施工队不小心碰掉了。因为配了LACP MAD其中一台自动Recovery业务只闪断了一下。后来把堆叠线缆绑扎固定再没出过问题。4.3 堆叠成员故障后的替换操作成员故障后替换新设备。新设备的成员编号要和故障设备一致优先级调成一样版本刷成一样。接好堆叠线缆新设备会自动加入堆叠配置从Master同步下来。注意新设备加入前最好清空配置避免残留配置干扰。4.4 常见问题速查表问题现象可能原因排查方法解决措施堆叠只显示一台堆叠口未激活display irf-port执行irf-port-configuration active堆叠口频繁up/down线缆质量差display logbuffer更换原厂线缆两台设备编号冲突成员编号相同display irf修改其中一台编号分裂后双Master未配分裂检测display irf配置LACP MAD或BFD MAD堆叠合并后配置丢失未备份对比配置提前备份合并后重新配置跨设备聚合不生效对端未配聚合display link-aggregation对端做对应聚合配置5. 实操心得与避坑经验堆叠配置本身不复杂但细节多一个疏忽就是几小时的排障。分享几条我踩过坑总结出来的经验。第一堆叠线缆一定要做冗余。环形拓扑是底线链形拓扑只适合两台设备。三台以上做链形中间设备故障就是灾难。我见过一个项目为了省线缆做链形结果中间那台电源模块故障整个堆叠裂成两半业务中断四十分钟。第二分裂检测必须配而且要在堆叠起来之前就规划好。LACP MAD需要上联设备支持如果上联是其他品牌设备可能不支持LACP扩展那就得用BFD MAD。BFD MAD需要额外拉一条检测线跨所有堆叠成员这条线不能和堆叠线缆走同一路径否则堆叠线缆断了检测线也断了分裂检测失效。第三成员编号和接口编号要对应。配置的时候接口名里的第一个数字是成员编号比如Ten-GigabitEthernet1/0/49是成员1的49口。如果成员编号改了接口名也要跟着改。我见过有人改了成员编号没改接口配置堆叠口绑到了错误的物理口堆叠起不来。第四堆叠合并前备份配置。这个说多少遍都不为过。堆叠合并后只有Master的配置保留其他成员的配置全丢。如果原来某台设备上有特殊配置比如ACL、QoS策略合并后需要手动迁移。第五堆叠带宽要算够。堆叠链路承载的是跨成员的流量如果堆叠带宽不够跨成员转发会成为瓶颈。一般接入层堆叠用10G堆叠口够用汇聚层建议40G起步。算带宽的时候把跨成员流量的峰值考虑进去留30%余量。第六堆叠成员的软件版本升级要谨慎。堆叠状态下升级一般先升级Standby再升级Master升级过程中业务会中断。如果业务不能中断需要先拆堆叠逐台升级再重新堆叠。拆堆叠之前确认分裂检测已经关闭否则拆的过程中可能触发分裂检测。第七堆叠口不要配业务配置。堆叠口是专用转发通道不要在上面配VLAN、ACL这些业务配置配了也不生效还可能引起异常。堆叠口就让它干干净净做堆叠转发。第八堆叠成员的型号要一致或者兼容。不同型号的设备堆叠可能不支持或者支持但功能受限。选型的时候查一下兼容性列表别想当然。我试过用同系列但不同型号的两台设备堆叠结果堆叠起来了但跨设备聚合不支持白折腾。第九堆叠线缆的弯曲半径要注意。光纤和DAC线都有最小弯曲半径弯太狠信号衰减堆叠口会报错。机柜内走线要留够空间别硬折。第十堆叠配置完做一次断链测试。拔掉一条堆叠线缆看堆叠是否正常业务是否中断。再拔掉一台成员的电源看流量是否切换到其他成员。这个测试能提前暴露问题比出事后再排查强得多。6. 堆叠后的日常维护要点堆叠起来不是终点日常维护同样重要。定期用display irf检查堆叠状态确认所有成员在线、角色正常。用display irf-port检查堆叠口状态看有没有错包、丢包。用display logbuffer看日志重点关注堆叠口震荡、成员加入离开的记录。堆叠成员的配置文件是统一的改配置的时候在Master上改会自动同步到其他成员。但要注意有些配置是成员相关的比如接口配置改的时候要指定成员编号。interface Ten-GigabitEthernet1/0/1改的是成员1的端口interface Ten-GigabitEthernet2/0/1改的是成员2的端口别改错了。堆叠成员的软件版本升级建议在业务低谷期做。升级前备份配置升级后验证堆叠状态和业务连通性。如果堆叠成员比较多可以分批升级先升级Slave再升级Standby最后升级Master。堆叠成员的硬件更换新设备要提前刷好版本、配好成员编号和优先级。更换的时候先拆旧设备再装新设备接好堆叠线缆新设备会自动加入。加入后检查堆叠状态确认新成员正常。最后再分享一个小技巧。堆叠成员的命名可以用sysname区分比如SW-Stack-1、SW-Stack-2但堆叠后只有一个sysname生效就是Master的。所以sysname改不改无所谓关键是成员编号和接口编号要清晰。我习惯在描述信息里标注物理位置比如description To-Cabinet-A-U1这样排障的时候一眼就知道端口在哪。