此前已经对STP/RSTP/MSTP进行了讨论,通过xSTP,有效的解决了二层环路问题,但是现网中,面对复杂的二层,同厂同型设备收敛效果较好,但面对非同厂设备或者不同型设备,极易出现问题。现网中,更多网络工程师喜欢使用堆叠技术来解决环路问题。
本文通过深入学习华为Hex文档,结合自身思考。针对堆叠技术进行讨论。
1 什么是堆叠
将多台支持堆叠特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。对于上下游设备而言,这些堆叠在一起的设备相当于一个交换机。各层设备均使用堆叠技术,逻辑设备少,网络拓扑简单,二层天然无环,无需部署XSTP破环协议。
如图所示,SwitchA和SwitchB通过堆叠线缆连接后组成了一个堆叠系统。
1.1 角色
堆叠中的所有单台交换机都称为成员交换机,根据功能又细分为三种不同的角色:
- 主交换机Master:负责管理整个堆叠,一个堆叠系统中只有一个主交换机。
- 备交换机standby:主交换机的备份,主交换机故障时,备交换机会接替原主交换机的所有业务。一个堆叠系统中只有一个备交换机。
- 从交换机slave:用于业务转发,数量越多,堆叠系统的转发能力越强,除了主备交换机外,堆叠中其他成员交换机都是从交换机。
1.2 堆叠ID
成员交换机的槽位号(slot id),用来标识和管理成员交换机,一个堆叠系统中的所有成员交换机的堆叠ID 是唯一的。
1.3 堆叠优先级
用于角色选举过程中确定成员交换机的角色,优先级越大越优先。最大的那台就是主交换机。
2 目的
实现网络高可靠性和网络大数据量转发,同时简化网络管理。
- 高可靠性:多台成员交换机之间冗余备份,通过跨设备链路聚合实现跨设备链路冗余备份。
-
网络拓展:解决单台交换设备端口有限,带宽有限,CPU有限的问题,随用随加,支持热插拔,新加入的成员交换机自动同步主交换设备的配置文件和系统软件版本。
- 简化配置:不需要配置复杂的二层破环协议和三层保护倒换协议。
3 堆叠建立
3.1 过程阶段
- 1 物理连接
- 2 主交换机选举:成员交换机之间通过互发堆叠竞争报文选出主交换机。
- 3 拓扑收集&备交换机选举:主交换机收集所有成员交换机的拓扑信息,向所有成员交换机分配堆叠ID,之后选出堆叠系统备交换机。
- 4 稳定运行
3.2 连接方式
根据连接介质不同,堆叠可以分为堆叠卡堆叠和业务口堆叠。每种连接方式都可以组成链形和环形两种连接拓扑。
3.2.1 堆叠卡堆叠
支持两种情况
- 设备之间通过专用的堆叠插卡ES5D21VST000及专用的堆叠线缆连接。

- 堆叠卡集成到了设备的后面板,设备通过集成的堆叠端口及专用的堆叠线缆连接。
3.2.2 业务口堆叠
设备之间通过与逻辑堆叠端口绑定的物理成员端口相连,不需要专用的堆叠插卡。
- 物理成员端口
成员交换机之间用于堆叠连接的物理端口,物理成员端口用于转发需要跨成员交换机的业务报文或者成员交换机之间的堆叠协议报文。 - 逻辑堆叠端口
专用于堆叠的逻辑端口,需要和物理成员端口绑定。堆叠的每台成员交换机上支持两个逻辑堆叠端口,为stack-port n/1和stack-port n/2,其中n为成员交换机的堆叠ID。
相连的两台堆叠设备之间不能有其他交换机。
3.2.3 链形连接&环形连接
连接拓扑 | 优点 | 缺点 | 适用场景 |
---|---|---|---|
链形 | 首尾不需物理连接 | 可靠性低,若其中一条堆叠链路出现故障,就会造成堆叠分裂。 带宽利用率低,整个堆叠系统只有一条路径 | 堆叠成员交换机距离较远,组建环形连接比较困难 |
环形 | 可靠性高,其中一条堆叠链路出现故障,环形变链形 ;带宽利用率高:数据按照最短路径转发 | 需要首尾物理连接 | 堆叠成员交换机距离较近,对可靠性和带宽利用有要求 |
3.3 主交换机选举
- 1 已运行的优于未运行的;
- 2 堆叠优先级高的优于优先级低的;
- 3 MAC地址小的优于MAC地址大的。
除主交换机和备交换机外,其他成员交换机作为从交换机加入堆叠。
3.4 自动同步
-1 备交换机与从交换机自动从主交换机下载系统软件,然后使用新系统软件重启,并重新加入堆叠;
- 2 备交换机与从交换机自动从主交换机下载配置文件,同步到本设备上运行。这样的好处是:主交换机故障时其他成员交换机仍能正常工作。
4 堆叠成员加入与退出
4.1 加入
指向已经稳定运行的堆叠系统添加一台新的不带电交换机。
- 加入后,新成员进入角色选举状态。根据前文所述,主交换机和备交换机的选举最强因子为运行状态,因此,新交换机加入一个堆叠系统后默认成为从交换机。
- 角色选举结束后,主交换机更新堆叠拓扑信息,同步到其他成员交换机,并向新加入的交换机分配堆叠ID。(建议手动配置)
- 新加入的交换机更新堆叠ID,同步主交换机配置文件和系统软件。
- 堆叠系统进入稳定状态。
注意:
-
如果堆叠系统为环形结构,在加入新成员前,应该先拆环成链,而如果堆叠系统为链形结构,则需要将新成员接入链形两端。
- 如果堆叠系统为业务口堆叠,新入成员及与其相连的成员需要配置相关物理成员端口加入逻辑堆叠端口。
- 如果堆叠系统为堆叠卡堆叠,新入成员需要使能堆叠功能。
-
不要带电进行堆叠线缆的连接。
4.2 退出
堆叠成员退出是指成员交换机从堆叠系统中离开。根据退出成员交换机角色的不同,对堆叠系统的影响也有所不同:
- 当主交换机退出,备份交换机升级为主交换机,重新计算堆叠拓扑并同步到其他成员交换机,指定新的备交换机,之后进入稳定运行状态。
- 当备交换机退出,主交换机重新指定备交换机,重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。
- 当从交换机退出,主交换机重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。
堆叠成员交换机退出的过程,主要就是拆除堆叠线缆和移除交换机的过程: - 对于环形堆叠:成员交换机退出后,为保证网络的可靠性还需要把退出交换机连接的两个端口通过堆叠线缆进行连接。
- 对于链形堆叠:拆除中间交换机会造成堆叠分裂。这时需要在拆除前进行业务分析,尽量减少对业务的影响。
5 堆叠系统的合并与分裂
5.1 合并
堆叠合并是指稳定运行的两个堆叠系统合并成一个新的堆叠系统。带电成员交换机接入堆叠系统也属于系统合并。
两个堆叠系统的主交换机通过竞争,选举出一个更优的作为新堆叠系统的主交换机。竞争成功的主交换机所在的堆叠系统将保持原有主备从角色和配置不变,业务也不会受到影响;而另外一个堆叠系统的所有成员交换机将重新启动,以从交换机的角色加入到新堆叠系统,其堆叠ID将由新主交换机重新分配,并将同步新主交换机的配置文件和系统软件,该堆叠系统的原有业务也将中断。
堆叠合并时主交换机的选举规则为:比较运行时间,运行时间较早的堆叠系统竞争为主;如果两个堆叠系统的运行时间一样,其主交换机的选举规则与堆叠建立时一样。
适用场景
堆叠链路或设备故障导致堆叠分裂,链路或设备故障恢复后,分裂的堆叠系统重新合并。
待加入堆叠系统的交换机配置了堆叠功能,在不下电的情况下,使用堆叠线缆连接到正在运行的堆叠系统。通常情况下,不建议使用该方式形成堆叠,因为在合并前过程中可能会导致正在运行的堆叠系统重启,影响业务运行。
5.2 分裂
堆叠分裂是指稳定运行的堆叠系统中带电移出部分成员交换机,或者堆叠线缆多点故障导致一个堆叠系统变成多个堆叠系统。
根据原堆叠系统主备交换机分裂后所处位置的不同,堆叠分裂可分为原主备交换机分裂到同一堆叠系统中和不同堆叠系统中:
5.2.1 同一堆叠系统中
堆叠分裂后,原主备交换机被分裂到同一个堆叠系统中:原主交换机会重新计算堆叠拓扑,将移出的成员交换机的拓扑信息删除,并将新的拓扑信息同步给其他成员交换机;而移出的成员交换机检测到堆叠协议报文超时,将自行复位,重新进行选举。可总结为:主备不变,重新选举。
5.2.2 不同堆叠系统中
堆叠分裂后,原主备交换机被分裂到不同的堆叠系统中:原主交换机所在堆叠系统重新指定备交换机,重新计算拓扑信息并同步给其他成员交换机;原备交换机所在堆叠系统将发生备升主,原备交换机升级为主交换机,重新计算堆叠拓扑并同步到其他成员交换机,并指定新的备交换机。可总结为:主定选备,备升主再选备
5.3 多主检测
5.3.1 概念
由于堆叠系统中的所有成员交换机都使用同一个IP地址和MAC地址,一个堆叠分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统,而这些堆叠系统会产生多个相同IP地址和MAC地址,导致网络故障,为了防止这种情况,必须进行IP地址和MAC地址的冲突检查。
MAD(multi-active detection):多主检测。是一种检测和处理堆叠分裂的协议。链路故障导致堆叠系统分裂后,MAD可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响。
5.3.2 检测方式
5.3.2.1 直连检测方式
堆叠成员交换机之间通过普通线缆直连的专用链路进行多主检测。
系统正常时,不发送MAD报文;系统分裂后,分裂后的两台交换机以1s为周期发送MAD报文,并处理MAD报文,实现多主冲突检测。
连接方式
- 1 通过中间设备直连:堆叠系统的所有成员交换机之间至少有一条检测链路与中间设备相连。
- 2 full-mesh 方式直连:堆叠系统的各成员交换机之间通过检测链路建立Full-mesh全连接,即每两台成员交换机之间至少有一条检测链路。
5.3.2.2 代理检测方式
在堆叠系统eth-trunk上启用代理检测,在代理设备上启用MAD检测功能。要求堆叠系统中的所有成员交换机都与代理设备连接,并且将这些链路加入同一个eth-trunk内。与直连检测方式相比,代理检测方式无需占用额外的接口,eth-trunk接口可以同时运行MAD代理检测和其他业务。
系统正常时,成员交换机每30s发送MAD报文,但不处理收到的MAD报文;系统分裂后,分裂后的两台交换机以1s为周期发送MAD报文,并处理MAD报文,实现多主冲突检测。
根据代理设备的不同,代理检测方式可分为单机作代理和两套堆叠系统互为代理。
- 单机作代理
- 互为代理
必须通过配置保证两套堆叠系统的堆叠域的域编号(Domain ID)不同。组成一个堆叠系统的交换机构成一个堆叠域。一个网络中可以部署多个堆叠系统,因此会有多个堆叠域,不同的堆叠域的域编号不同。
5.4 MAD冲突处理
使分裂后的堆叠系统处于Detect状态(正常状态)或者Recovery状态(禁用状态)。
- 检测到网络中存在多个处于detect状态的堆叠系统,这些堆叠系统相互竞争,竞争成功的堆叠系统保持detect状态,失败的设备转入recovery状态。
- 处于recovery状态的系统的所有成员交换机关闭除保留端口外的其他所有物理端口,以保证堆叠系统不再转发业务报文。
5.5 MAD故障恢复
链路修复后,分裂后的堆叠系统自动合并。
- 主动恢复:处于recovery状态的堆叠系统重新启动,与detect状态的系统合并,同时将被关闭的端口恢复up.
- 被动恢复:故障链路修复前,detect状态的系统出现故障,可将此系统先从网路中移除,通过命令行启用recovery状态的系统,接替原来的业务。
6 堆叠的主备倒换
- 原来的备交换机升为主交换机。
- 新主交换机重新指定备交换机。
- 原来的主交换机重启后重新加入堆叠系统,并被选举为从交换机。
7 CSS&iStack
CSS和iStack分别是S系列交换机框式交换机和盒式交换机由多台设备虚拟成一个系统的两个概念。
CSS是Cluster Switch System的简称,又被称为集群交换机系统。是将几台交换机通过专用的堆叠线缆链接起来,对外呈现为一台逻辑交换机。
iStack,全称Intelligent Stack,智能堆叠,适用于S2700、S3700、S5700和S6700中低端交换机。而高端交换机中叫做CSS,全称Cluster Switch System,集群交换系统,适用于S7700、S9300、S9700等高端交换机。此类技术原理是将多台物理交换机在逻辑上合并成一台交换机,所以也叫做交换机虚拟化。
在华为交换机中,iStack最多支持9台交换机合并,而在CSS中只支持2台交换机合并。
CSS原理和iStack几乎是一样,唯一不同的就是组成集群交换机的数量只能2台!