堆叠是指将多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发。
堆叠的作用:
根据连接介质的不同堆叠方式可以分为:堆叠卡堆叠和业务口堆叠。
三种角色:
主交换机负责管理整个堆叠。堆叠系统中只有一台主交换机。
备交换机是主交换机的备份交换机。堆叠系统中只有一台备交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。
从交换机用于业务转发,堆叠系统中可以有多台从交换机。从交换机数量越多,堆叠系统的转发带宽越大。
除主交换机和备交换机外,堆叠中其他所有的成员交换机都是从交换机。当备交换机不可用时,从交换机承担备交换机的角色。
堆叠优先级
优先级值越大表示优先级越高
堆叠优先级取值范围为1~255,缺省优先级值为100
堆叠主交换机的选举过程是:
先比较交换机启动时间,再比较堆叠优先级。当两台交换机启动时间相差20秒以内时,则认为交换机启动时间相同,此时堆叠优先级大的交换机将被选举为主交换机。所以建议将优先级最大值分配给希望成为主交换机的设备。
堆叠成员加入
堆叠成员退出
- 当主交换机退出,备份交换机升级为主交换机,重新计算堆叠拓扑并同步到其他成员交换机,指定新的备交换机,之后进入稳定运行状态。
- 当备交换机退出,主交换机重新指定备交换机,重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。
- 当从交换机退出,主交换机重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。
堆叠合并
堆叠合并是指稳定运行的两个堆叠系统合并成一个新的堆叠系统。两个堆叠系统的主交换机通过竞争,选举出一个更优的作为新堆叠系统的主交换机。竞争成功的主交换机所在的堆叠系统将保持原有主备从角色和配置不变,业务也不会受到影响;而另外一个堆叠系统的所有成员交换机将重新启动,以从交换机的角色加入到新堆叠系统,其堆叠ID将由新主交换机重新分配,并将同步新主交换机的配置文件和系统软件,该堆叠系统的原有业务也将中断。
多主检测
由于堆叠系统中所有成员交换机都使用同一个IP地址和MAC地址(堆叠系统MAC),一个堆叠分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统。为防止堆叠分裂后,产生多个具有相同IP地址和MAC地址的堆叠系统,引起网络故障,必须进行IP地址和MAC地址的冲突检查。
多主检测MAD(Multi-Active Detection),是一种检测和处理堆叠分裂的协议。链路故障导致堆叠系统分裂后,MAD可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响。
直连检测方式:
直连检测方式是指堆叠成员交换机间通过普通线缆直连的专用链路进行多主检测。在直连检测方式中,堆叠系统正常运行时,不发送MAD报文;堆叠系统分裂后,分裂后的两台交换机以1s为周期通过检测链路发送MAD报文进行多主冲突处理。直连检测的连接方式包括通过中间设备直连和堆叠成员交换机Full-mesh方式直连:
- 通过中间设备直连:堆叠系统的所有成员交换机之间至少有一条检测链路与中间设备相连。
- Full-mesh方式直连:堆叠系统的各成员交换机之间通过检测链路建立Full-mesh全连接,即每两台成员交换机之间至少有一条检测链路。
通过中间设备直连可以实现通过中间设备缩短堆叠成员交换机之间的检测链路长度,适用于成员交换机相距较远的场景。与通过中间设备直连相比,Full-mesh方式直连可以避免由中间设备故障导致的MAD检测失败,但是每两台成员交换机之间都建立全连接会占用较多的接口,所以该方式适用于成员交换机数目较少的场景。
通过中间设备的直连检测方式
堆叠成员交换机Full-mesh方式直连
代理检测方式:
代理检测方式是在堆叠系统Eth-Trunk上启用代理检测,在代理设备上启用MAD检测功能。此种检测方式要求堆叠系统中的所有成员交换机都与代理设备连接,并将这些链路加入同一个Eth-Trunk内。
与直连检测方式相比,代理检测方式无需占用额外的接口,
Eth-Trunk接口可同时运行MAD代理检测和其他业务。
在代理检测方式中,堆叠系统正常运行时,堆叠成员交换机以30s为周期通过检测链路发送MAD报文。堆叠成员交换机对在正常工作状态下收到的MAD报文不做任何处理;堆叠分裂后,分裂后的两台交换机以1s为周期通过检测链路发送MAD报文进行多主冲突处理。
根据代理设备的不同,代理检测方式可分为单机作代理和两套堆叠系统互为代理
单机作代理设备的代理检测方式
两套堆叠系统互为代理的代理检测方式
MAD冲突处理
堆叠分裂后,MAD冲突处理机制会使分裂后的堆叠系统处于Detect状态或Recovery状态。
Detect状态表示堆叠正常工作状态,Recovery状态表示堆叠禁用状态。
MAD冲突处理机制如下:MAD分裂检测机制会检测到网络中存在多个处于Detect状态的堆叠系统,这些堆叠系统之间相互竞争,竞争成功的堆叠系统保持Detect状态,竞争失败的堆叠系统会转入Recovery状态;并且在Recovery状态堆叠系统的所有成员交换机上,关闭除保留端口以外的其它所有物理端口包括管理口,以保证该堆叠系统不再转发业务报文。
MAD竞争原则与主交换机的竞争原则类似:
- 先比较启动时间,启动完成时间早的堆叠系统成为Detect状态。启动完成时间差在20秒内则认为堆叠的启动完成时间相同。
- 启动完成时间相同时,比较堆叠中主交换机的优先级,优先级高的堆叠系统成为Detect状态。
- 优先级相同时,比较堆叠系统的MAC,MAC小的堆叠系统成为Detect状态
MAD故障恢复
通过修复故障链路,分裂后的堆叠系统重新合并为一个堆叠系统。重新合并的方式有以下两种:
- 堆叠链路修复后,处于Recovery状态的堆叠系统重新启动,与Detect状态的堆叠系统合并,同时将被关闭的业务端口恢复Up,整个堆叠系统恢复。
- 如果故障链路修复前,承载业务的Detect状态的堆叠系统也出现了故障。此时,可以先将Detect状态的堆叠系统从网络中移除,再通过命令行启用Recovery状态的堆叠系统,接替原来的业务,然后再修复原Detect状态堆叠系统的故障及链路故障。故障修复后,重新合并堆叠系统。
堆叠主备倒换
堆叠主备倒换包括主交换故障重启引起的主备倒换和通过命令行执行的主备倒换。
- 原来的备交换机升为主交换机。
- 新主交换机重新指定备交换机。
- 原来的主交换机重启后重新加入堆叠系统,并被选举为从交换机。
堆叠升级
堆叠升级方式有三种:智能升级、传统升级和平滑升级。
智能升级:
在堆叠建立时或新成员交换机加入堆叠时,备从交换机或新加入的成员交换机会与主交换机的软件版本进行比较,如果不一样,会自动从主交换机下载系统软件,并以新的系统软件重启后重新加入堆叠系统。
传统升级
先配置启动的系统软件,然后整个堆叠系统重启进行升级,这种升级方式会导致较长时间的业务中断,适用于对业务中断时间要求不高的场景。
平滑升级
平滑升级是指在堆叠系统上行及下行链路形成备份的组网中,将堆叠系统划分成active区(主交换机所在的区域)和backup区两个相互备份的流量区域。启动升级后,两个区域依次进行升级,从而减少业务中断时长,降低升级对网络造成的影响。平滑升级方式适用于对业务中断时间要求较高的场景。
上行及下行链路形成备份的组网是指上行和下行的流量都会流经active区和backup区两个区域,当backup区的成员交换机升级时,流量从active区传输,当active区的成员交换机升级时,流量从backup区传输。
- 堆叠系统平滑升级要求堆叠上行及下行链路为备份组网,为确保后续升级维护成功,建议每台成员交换机至少有一条链路加入跨设备Eth-Trunk。
- 堆叠系统平滑升级会造成堆叠系统的MAC地址变更。
堆叠系统平滑升级组网图
平滑升级过程:
平滑升级分三个阶段:
- 主交换机下发命令触发整个堆叠系统进入平滑升级状态,backup区各个成员交换机以新的系统软件进行启动。
- backup区以新版本建立一个独立的堆叠系统,并通知active区进入升级阶段,主控权由active区的主交换机转移到backup区的主交换机,backup区负责流量传输,active区进入升级过程。
- active区以新系统软件重新启动并加入backup区的堆叠系统,backup区的主交换机根据最终堆叠建立的结果发布升级的结果。
//配置SwitchB和SwitchC在backup区,SwitchA在active区
<HUAWEI> startup system-software test.cc all
[HUAWEI] upgrade backup-area slot 1 to 2
//# 查看当前的分区状况。
[HUAWEI] display upgrade area
//启动平滑升级
[HUAWEI] upgrade start
//验证配置结果
[HUAWEI] display upgrade state
被指定堆叠ID的成员设备将作为backup区,其余的成员设备则会根据拓扑自动形成active区。
命令示例:
通过堆叠卡堆叠:
拓扑:
[SwitchA] stack slot 0 priority 200
[SwitchB] stack slot 0 renumber 1
[SwitchC] stack slot 0 renumber 2
设备下电,接上线缆,依次上电
dis stack 查看堆叠信息
堆叠配置不记入配置文件,直接写入Flash。
通过业务口普通线缆堆叠:
拓扑:
//配置SwitchA的业务口
[SwitchA] interface stack-port 0/1
[SwitchA-stack-port0/1] port interface gigabitethernet 0/0/27 enable
[SwitchA] interface stack-port 0/2
[SwitchA-stack-port0/2] port interface gigabitethernet 0/0/28 enable
//配置SwitchB的业务口
[SwitchB] interface stack-port 0/1
[SwitchB-stack-port0/1] port interface gigabitethernet 0/0/27 enable
[SwitchB] interface stack-port 0/2
[SwitchB-stack-port0/2] port interface gigabitethernet 0/0/28 enable
//配置SwitchC的业务口
[SwitchC] interface stack-port 0/1
[SwitchC-stack-port0/1] port interface gigabitethernet 0/0/27 enable
[SwitchC] interface stack-port 0/2
[SwitchC-stack-port0/2] port interface gigabitethernet 0/0/28 enable
//配置堆叠ID和堆叠优先级
[SwitchA] stack slot 0 priority 200
[SwitchB] stack slot 0 renumber 1
[SwitchC] stack slot 0 renumber 2
设备下电,接上线缆,依次上电
直连多主检测:
拓扑:
[HUAWEI] interface gigabitethernet 0/0/5
[HUAWEI-GigabitEthernet0/0/5] mad detect mode direct
[HUAWEI] interface gigabitethernet 1/0/5
[HUAWEI-GigabitEthernet1/0/5] mad detect mode direct
检查配置结果:
<HUAWEI> display mad verbose
代理方式多主检测:
拓扑:
//堆叠系统
[HUAWEI] interface eth-trunk 1
[HUAWEI-Eth-Trunk1] mad detect mode relay
[HUAWEI] interface gigabitethernet 0/0/5
[HUAWEI-GigabitEthernet0/0/5] eth-trunk 1
[HUAWEI] interface gigabitethernet 1/0/5
[HUAWEI-GigabitEthernet1/0/5] eth-trunk 1
[HUAWEI] interface gigabitethernet 2/0/5
[HUAWEI-GigabitEthernet2/0/5] eth-trunk 1
//代理设备
[SwitchD] interface eth-trunk 1
[SwitchD-Eth-Trunk1] mad relay
[SwitchD] interface gigabitethernet 0/0/1
[SwitchD-GigabitEthernet0/0/1] eth-trunk 1
[SwitchD] interface gigabitethernet 0/0/2
[SwitchD-GigabitEthernet0/0/2] eth-trunk 1
[SwitchD] interface gigabitethernet 0/0/3
[SwitchD-GigabitEthernet0/0/3] eth-trunk 1
检查配置结果:
<HUAWEI> display mad verbose
查看SwitchD的代理信息
<SwitchD> display mad proxy