iStack堆叠技术白皮
图 7原主备设备被分裂到不同的堆叠系统中
2.7.2 多主检测
由于堆叠系统中所有成员设备都使用同一个IP地址和MAC地址(堆叠系统MAC),一个堆叠分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统。为防止堆叠分裂后,产生多个具有相同IP地址和MAC地址的堆叠系统,引起网络故障,必须进行IP地址和MAC地址的冲突检查,然后关闭优先级较低的冲突端口,保证业务正常转发。
多主检测MAD(Multi-Active Detection),是一种检测和处理堆叠分裂的协议。链路故障导致堆叠系统分裂后,MAD可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响。如果配置了MAD功能的堆叠系统分裂,检测到存在多主,则根据接收到的MAD报文中所携带的信息判断本机为主设备还是备份设备,关闭判断为备设备除保留接口(如业务堆叠口和Console口)外的所有接口。
MAD检测方式有两种:直连检测方式和代理检测方式。在同一个堆叠系统中,两种检测方式互斥,不可以同时配置。
? 直连检测方式
直连检测方式是指堆叠成员设备间通过普通线缆直连的专用链路进行多主检测。在直连检测方式中,堆叠系统正常运行时,不发送MAD报文;堆叠系统分裂后,分裂后的两台设备以1s为周期通过检测链路发送MAD报文以进行多主冲突处理。
直连检测的连接方式包括通过中间设备直连和堆叠成员交换机Full-mesh方
2017-11-9
华为机密,未经许可不得扩散
第16页, 共25页
iStack堆叠技术白皮
式直连。如图8所示,通过中间设备直连,堆叠系统的所有成员交换机之间至少有一条检测链路与中间设备相连。如图9所示,Full-mesh方式直连,堆叠系统的各成员交换机之间通过检测链路建立Full-mesh全连接,即每两台成员交换机之间至少有一条检测链路。
图 8通过中间设备的直连检测方式
图 9堆叠成员交换机Full-mesh方式直连
通过中间设备直连可以实现通过中间设备缩短堆叠成员交换机之间的检测链路长度,适用于成员交换机相距较远的场景。与通过中间设备直连相比,Full-mesh方式直连可以避免由中间设备故障导致的MAD检测失败,但是每两台成员交换机之间都建立全连接会占用较多的接口,所以该方式适用于成员交换机数目较少的场景。
? 代理检测方式
如图10所示,代理检测方式是在堆叠系统Eth-Trunk聚合口上启用代理检测,在代理设备上启用MAD检测功能。此种检测方式要求堆叠系统中的所有成员设备都与代理设备连接,并将这些链路加入同一个Eth-Trunk内。通常堆叠系统与其
2017-11-9
华为机密,未经许可不得扩散
第17页, 共25页
iStack堆叠技术白皮
他设备采用Eth-Trunk互联保证可靠性,与直连检测方式相比,代理检测方式无需占用额外的接口,Eth-Trunk接口可同时运行MAD代理检测和其他业务。
在代理检测方式中,堆叠系统正常运行时,堆叠成员交换机以30s为周期通过检测链路发送MAD报文。堆叠成员交换机对在正常工作状态下收到的MAD报文不做任何处理;堆叠分裂后,分裂后的两台设备以1s为周期通过检测链路发送MAD报文以进行多主冲突处理。
图 10代理检测方式
2.7.3 MAD冲突处理和故障恢复
? MAD冲突处理
堆叠分裂后,MAD冲突处理机制会使分裂后的堆叠系统处于Detect状态或Recovery状态。Detect状态表示堆叠正常工作状态,Recovery状态表示堆叠禁用状态。
MAD冲突处理机制如下:MAD分裂检测机制会检测到网络中存在多个处于Detect状态的堆叠系统,这些堆叠系统之间相互竞争,竞争成功的堆叠系统保持Detect状态,竞争失败的堆叠系统会转入Recovery状态;并且在Recovery状态堆叠系统的所有成员设备上,关闭除保留端口以外的其它所有物理端口,以保证该堆叠系统不再转发业务报文。
如图11所示,iStack堆叠系统由于两条堆叠链路故障,使得系统分裂成iStack1和iStack2,iStack2在冲突处理中竞争失败,从原来Detect状态切换到Recovery状态,关闭上下行业务端口,原来iStack2业务后续都切换到iStack1上进行转发。
2017-11-9
华为机密,未经许可不得扩散 第18页, 共25页
iStack堆叠技术白皮
图 11堆叠分裂及冲突处理
? MAD故障恢复
通过修复故障链路,分裂后的堆叠系统重新合并为一个堆叠系统。重新合并的方式有以下两种:
第一种:堆叠链路修复后,处于Recovery状态的堆叠系统重新启动,与Detect状态的堆叠系统合并,同时将被关闭的业务端口恢复Up,整个堆叠系统恢复。 第二种是:如果故障链路修复前,承载业务的Detect状态的堆叠系统也出现了故障。此时,可以先将Detect状态的堆叠系统从网络中移除,再通过命令行启用Recovery状态的堆叠系统,接替原来的业务,然后再修复原Detect状态堆叠系统的故障及链路故障。故障修复后,重新合并堆叠系统。
3 iStack报文转发原理
iStack采用分布式转发技术实现报文的L2/L3层转发,最大限度的发挥了每个成员的处理能力。堆叠系统中的每个成员设备都有完整的L2/L3层转发能力,每个成员设备在业务转发时相当于框式设备的接口板,可以学习到整网的MAC表或FIB三层转发表,当它收到待转发的L2/L3层报文时,可以通过查询本机的L2/L3层转发表得到报文的出接口,然后将报文从正确的出接口发送出去,这个出接口可以在本机上也可以在其它成员设备上,并且将报文从本机送到另外一个成员设备是一个纯粹内部的转发行为,类似框式分布式设备通过内部Fabric交换网进行板间报文转发,对外界是完全是不可见的,即对于L3报文来说,不管它在堆叠系
2017-11-9
华为机密,未经许可不得扩散
第19页, 共25页
iStack堆叠技术白皮
统内部穿过了多少成员设备,在跳数上只增加1,即表现为只经过了一个网络设备。
在堆叠系统内部转发时,报文头部会携带目的设备编号,经过中间成员设备时,根据报文中目的设备编号,选择合适出端口向下一个成员设备转发,直到报文到达目的成员设备。
链形堆叠转发路径是确定的,转发相对比较简单。而环形堆叠跨设备报文转发是根据最短路径来转发的,当堆叠系统成员设备加入/退出或链路状态改变时,系统都会重新计算拓扑,成员设备根据拓扑中的位置,以自己为根,计算转发路径和破环点,采用最短路径转发。
环形堆叠跨设备的单播业务流转发,在源设备上选择最接近目的设备一侧堆叠口作为出端口,即源设备和目的设备经过的中间设备跳数最少,这条转发路径最短。环形堆叠的广播报文(包括未知单播报文和组播报文)转发,考虑避免广播报文成环及转发路径最短原则,在距离源设备跳数最远的两台设备中间设置破环点。
如图12所示,转发报文的入接口和出接口在同一台成员设备上。当Slave1收到报文后,查找本地转发表,发现出接口就在本机上,则Slave1直接将报文从这个出接口发送出去。
图 12成员设备内单播转发
如图13所示,转发报文的入接口和出接口在不同的成员设备上。当Slave3收到报文后,查找本地转发表,发现是到Standby下User2用户的报文,Slave3按照最短路径计算,到Standby方向在Slave3本地选择0号堆叠出端口,则按照图中绿色箭头方向,将报文转发给中间成员设备Master, Master选择0号堆叠出端
2017-11-9
华为机密,未经许可不得扩散
第20页, 共25页