「Huawei iStack」- 多主检测,Multi-Active Detection

  CREATED BY JENKINSBOT

问题描述

堆叠分裂

在稳定运行的堆叠系统中,带电移出部分成员交换机(或者堆叠线缆多点故障)导致堆叠系统变成多个堆叠系统。

分裂后主备仍在一个堆叠系统中;与原主备分离的从交换机因协议报文超时重新选举;
分裂后主备处于两个堆叠系统中;原主交换机所处堆叠系统更新拓扑,重新指定备交换机。原备交换机在新的堆叠系统中升为主,同时选举新的备交换机。

堆叠分裂引起的问题

由于堆叠系统中所有成员交换机都使用同一个IP地址(VLANIF接口地址)和MAC地址(堆叠系统MAC),一个堆叠系统分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统,从而引起网络故障,为此必须进行IP地址和MAC地址的冲突检查。

具体故障场景:比如,在部署堆叠时,通常不会部署 STP,那么出现堆叠分列时,交换网络极其可能出现环路。

解决方案

多主检测,MAD,Multi-Active Detection:一种检测和处理堆叠分裂的协议,链路故障导致堆叠系统分裂后,MAD 可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响。

原理简述

MAD,需要中间设备的参与(或者说,要互联,否则两个分裂后的堆叠系统是无法完成检测的)。

当堆叠分裂后:
1)堆叠系统通过 MAD 检测线缆(是普通线缆,但手动配置为 MAD 检测链路)发送 MAD 检测报文进行竞选
2)竞选失败的堆叠系统会关闭所有的物理端口(手动配置的保留端口除外),以保证不会因IP、MAC冲突对业务产生影响。

检测方式

直连检测方式和代理检测方式。在同一个堆叠系统中,两种检测方式互斥,不可以同时配置。

直连检测

直连检测方式是指堆叠成员交换机间通过普通线缆直连的专用链路进行多主检测。在直连检测方式中,堆叠系统正常运行时,不发送 MAD 报文;堆叠系统分裂后,分裂后的两台交换机以 1 秒为周期通过检测链路发送MAD报文进行多主冲突处理。

通过中间设备直连,可以实现通过中间设备缩短堆叠成员交换机之间的检测链路长度,适用于成员交换机相距较远的场景。
Full-mesh 方式直连(与通过中间设备直连相比)可以避免由中间设备故障导致的MAD检测失败,但是每两台成员交换机之间都建立全连接会占用较多的接口,所以该方式适用于成员交换机数目较少的场景。

通过中间设备的直连检测:所有堆叠设备,通过普通线缆与中间交换机直连:

通过 Full-Mesh 方式直连:堆叠系统的各成员交换机之间通过检测链路建立Full-mesh全连接,即每两台成员交换机之间至少有一条检测链路。

代理检测

代理检测方式是在堆叠系统 Eth-Trunk 上启用代理检测,在代理设备上启用MAD检测功能。此种检测方式要求堆叠系统中的所有成员交换机都与代理设备连接,并将这些链路加入同一个Eth-Trunk内。与直连检测方式相比,代理检测方式无需占用额外的接口,Eth-Trunk接口可同时运行MAD代理检测和其他业务。

在代理检测方式中,堆叠系统正常运行时,堆叠成员交换机以30s为周期通过检测链路发送MAD报文。堆叠成员交换机对在正常工作状态下收到的MAD报文不做任何处理;堆叠分裂后,分裂后的两个堆叠系统以1s为周期通过检测链路发送MAD报文进行多主冲突处理。

核心层与汇聚层可以使用该方式,将核心层设备配置为 MAD 代理设备,或者互为代理设备。

MAD 冲突处理

堆叠分裂后,MAD冲突处理机制使用MAD报文进行MAD竞争

竞争原则(与主交换机的竞争原则类似):
1)先比较启动时间,启动完成时间早的堆叠系统成为Detect状态。启动完成时间差在20秒内则认为堆叠的启动完成时间相同。
2)启动完成时间相同时,比较堆叠中主交换机的优先级,优先级高的堆叠系统成为Detect状态。
3)优先级相同时,比较堆叠系统的MAC,MAC小的堆叠系统成为Detect状态。

竞争结果:堆叠系统处于 Detect 或 Recovery 状态
1)Detect:竞争成功,堆叠系统将处于正常工作状态。
2)Recovery:竞争失败,堆叠系统将状态处于禁用状态,关闭除手动配置的保留端口以外的其它所有物理端口。