内容 | 摘要:在重要的通信与控制设备中,为了确保系统的稳定,通常在其内部都使用了备份和冗余网络。本文针对一种平面独立的内部双交换机冗余网络,设计了一种实用的不依赖生成树协议(STP/RSTP)的快速智能冗余切换的方法,通过实验室及现场应用验证了该方法的有效性。
关键词:交换机;冗余;路由,;控制单元;生成树协议
Abstract: In key telecommunication or control devices, network redundancy is basically used to ensure system stabilization. This paper introduces a fast automatic redundancy backup method for one kind of internal dual-switch network, which is independent to STP/RSTP protocol and verified in lab and onsite application.
Keywords: Switch, Redundancy, Route, CE(Control-Element), STP/RSTP
1 引言
重要的通信与控制设备,其稳定性对于整个系统的稳定与业务至关重要。因此,为了确保这些重要设备的稳定运行,通常在其内部使用了备份和冗余网络。当内部网络的一部分出现故障时,要求系统能迅速诊断并快速切换到备份和冗余的网络,从而降低故障对系统的影响,保证系统的稳定运行。
在备份和冗余网络中,通常采用的冗余方式是冗余链路 + 生成树协议(如STP/RSTP)。在这种方式下,网络出现故障时的冗余切换速度取决于所使用的生成树协议的收敛时间,在实时性要求很高的情况下会使其应用受到一定的限制,同时,这种方式配置比较复杂,而且对交换机需要支持的协议也提出了要求。
本文针对一种平面独立的内部双交换机冗余网络,设计了一种实用的不依赖生成树协议(如STP/RSTP)的快速智能冗余切换的方法,网络出现故障时,与“冗余链路 + 生成树协议(如STP/RSTP)”方法相比,冗余切换速度明显提升,实验室及现场应用验证了该方法的有效性。
2 一种平面独立的双交换机冗余网络的拓扑结构
图1是某一核心通信设备内部的双交换机冗余网络的拓扑结构。如图1所示,设备中有多个控制单元(Control Element, CE),每一个控制单位都相当于一台电脑,通过eth0和eth1分别连接到两个交换机SWITCH-A和SWITCH-B,组成了两个互为备份的网络交换平面。由于SWITCH-A和SWITCH-B之间没有网络连接,因此,这两个交换机虽互为备份但彼此独立,避免了对生产树协议的要求。通过在各个CE上添加不同的网络路由(route),可以实现在两个交换平面之间灵活切换。

图1 某一核心通信设备内部的双交换机冗余网络的拓扑结构
由于是在设备内部,每个交换机端口所对应CE的内部ip和内部mac地址都可以预先定义,如表1所示。
表1 CEi的网络端口、IP、Mac-address对照表
(假设)CEi
默认情况下,每个CE都通过SWITCH-A相互联系,或通过SWITCH-A和 与外部网络联系。默认路由(route)如表2、表3所示。
表2 CEi(i≠n)的默认路由表
CEi (i≠n)
表3 CEn的默认路由表
CEn
2.网络出现故障时的冗余切换
当某个CE的网络接口(eth0或eth1),或者某个SWITCH(SWITCH-A或SWITCH-B)出现故障时,可以通过更新每个CE的内部路由(route),切换到冗余一侧的交换机上,使系统的网络保持畅通。
(1) 交换机的某个端口故障
(假设) 的eth0对应的交换机端口出现故障,如图2所示:
图2 的eth0出现故障示意图
为保持网络畅通,需要使 上针对eth0的路由(route)全部切换到另一侧的交换机上;同时,还需要使其它CE通过eth0到 的路由(route)切换到另一侧的交换机上。
对应的路由(route)更新如下:
(a) CEi

(b)CEj ( j≠i)

如果 的eth1对应的交换机端口出现故障,每个CE的route也要做类似的切换更新。
(2)整个交换机故障
如果某个交换机出现故障,为保持网络畅通,需要使每个CE针对该交换机的路由全部切换到另一侧的交换机上。
假设SWITCH-A出现故障,为保持网络畅通,需要使每个CE上针对eth0的路由(route)全部切换到eth1上。对应的路由(route)更新如下:

如果SWITCH-B出现故障,每个CE的route也要做类似的切换更新。
3 网络故障的自动检测
对于交换机端口或者整个交换机的故障,都表现为某些CE(一个或多个CE)的网络端口出现故障,因此,都可以通过检查各个CE的网络端口状态检查出来。
3.1 网络端口状态的检测方式
如图3所示,设备中的每一个CE( )针对其对应的网络端口(eth0或eth1),都任意选择其它3个CE( , , )作为检测点。在针对网络端口的每一个检测周期中, 依次向每个检测点直接发送以太网mac包(check包);收到check包的CE将向发送方回复确认ack包。
3.2 检测步骤与决断策略
如图4所示:
① 向第一个检测点 发check包
②等待 的ack包,如果收到,说明端口正常,结束本次检测
③等待超时, 向第二个检测点 发check包
④等待 的ack包,如果收到,说明端口正常,结束本次检测
⑤等待超时, 向第二个检测点 发check包
⑥等待 的ack包,如果收到,说明端口正常,结束本次检测
⑦等待超时, 向该端口(eth0或eth1)广播一个check包,其它CE收到之后都会向 发ack包
⑧等待可能的ack包,如果收到,说明端口正常,用新收到的ip/mac地址更新检测点( , , ),结束本次检测
⑨等待超时, 的该端口上不能收到任何ack包,则检查另一侧端口的状态:如果另一侧端口异常,说明 在两侧都不能收到任何ack包,判断 处于孤立运行状态,因此不需要做route更新;如果另一侧端口正常,判断本侧端口故障,触发每一个CE上的route更新。
图4 网络端口检测步骤示意图
3.3 检测周期与响应时间

图5 网络端口的检测周期与检测步骤示意图(示例)
采用图5所示的检测步骤与检测周期(示例),网络端口状态的最长检测周期为 T = 4* + 。当网络端口故障时,最长在时间T内可以检出网络故障。
选择合适的 和 ,能使系统在尽可能短的时间内检测出交换机网络故障,并做出相应的保护性冗余切换。
当 t1= 20ms ,t2 = 100ms时,T = 4 x t1 + t2= 180ms ;
当 t1= 10ms ,t2 = 50ms时, T = 4 x t1 +t2 = 90ms 。
3.4 检测行为对网络的影响
在每一个检测周期中,当所有网络端口正常时,每一个CE会收发2个mac包(1个check包,1个ack包),一共是 2n个mac包;
当某个网络端口异常时,该端口对应的CE最多收发不超过n个包(4个check包,最多n-4个ack包),其它CE每一个最多收发不超过3个包(2个check包,1个ack包),一共最大不超过 4n 个包;
当某个交换机故障时,每一个CE会收发4个包(4个check包,0个ack包),由于该交换机已经不能转发包,因此没有真正增加网络的负荷。
当 时,由网络检测引入的mac包的数量是非常小的。
4.应用
该策略针对设备内部的平面独立的双交换机冗余网络,可以检测每一个网络端口的状态,在网络出现故障的时候能迅速检测出来并自动作冗余切换,而且对交换机所支持的协议没有特殊的要求,对设备内部每个CE所支持的协议也没有特殊的要求,因而适应性较强。通过选择合适的检测周期,可以使冗余切换时间限制在100~200ms以下,甚至更短。与“冗余链路 + 生成树协议(如STP/RSTP)”的冗余方式相比,该策略的冗余切换速度更快,而且不需要对交换机做额外的配置。
在某一款电信核心设备中采用了该策略后,经过实验室和现场的双重验证,当内部网络出现故障时,实际冗余切换时间小于100ms,有效保障了系统的稳定性。
5.结论
本文针对“冗余链路 + 生成树协议”的网络冗余方式中冗余切换速度依赖所使用的生成树协议的收敛时间、造成实时性不高,而且配置复杂的问题,设计了不依赖生成树协议(如STP/RSTP)的快速智能冗余切换的方法,提升了冗余切换速度,同时简化了网络配置。
参考文献
[1] IEEE 802.1D – Media Access Control(MAC)Bridges, IEEE, 2004
[2] 付志兵.通信系统冗余设计[J].计算机与网络,2009(08)
[3] 王隆杰.虚拟网络交换机技术[J].通信技术,2009年04期
[4] 刘立.交换机链路聚合的理论与实验研究[J].信息安全与技术,2010(09)
[5] 黄文君,谢东凯,卢山.一种高可用性的冗余工业实时以太网设计[J].仪器仪表学报,2010,31(3)
[6] 李志洁,姜楠,王存睿,刘向东.生成树协议分析及其实验的设计与实现[J].实验科学与技术,2010,8(2)
作者简介
刘新华(1973-),男,湖北省云梦人,毕业于浙江大学工业自动化硕士研究生,工程师,现就职于上海贝尔股份有限公司 WLPD(有线产品部),主要从事软件开发方面的研究。
摘自《自动化博览》2011年第五期
|