一种解决multi-link网络中孤岛问题的方法和系统与流程

文档序号:16588403发布日期:2019-01-14 18:53阅读:325来源:国知局
一种解决multi-link网络中孤岛问题的方法和系统与流程

本发明涉及计算机网络通信技术,特别是涉及一种解决multi-link网络中孤岛问题的方法。



背景技术:

smart-link:又叫做备份链路,常用于双上行组网,提供可靠高效的备份和快速的切换机制。当下游设备连接到上游设备时,使用单上行方式容易出现单点故障,造成业务中断。采用smart-link双上行方式,即将一台下游设备同时连接到两台上游设备,以最大限度地避免单点故障,提高网络可靠性。一个smartlink由两个接口master和slave组成,其中slave接口作为master接口的备份。

multi-link:是smart-link技术的升级版本,最高支持多达四条上行链路的相互备份,常用于多上行网络当中。

在上述通过smart-link或multi-link技术组成的交换网络中,当网络当中的某个节点,由于链路的物理故障或者协议面的链路控制的原因,会造成其与网络当中的其他节点均无法进行数据通信,导致产生孤岛问题。



技术实现要素:

本发明实施例所要解决的技术问题是如何避免multi-link网络中产生孤岛问题。

为了解决上述问题,本发明实施例提供的技术方案如下:

一种解决multi-link网络中孤岛问题的方法,包括:当当前活动链路不可用时,交换机从阻塞链路中选取一条链路作为活动链路,并从该链路端口发送链路启用指令到邻居交换机;所述邻居交换机从接收端口收到所述链路启用指令后,启用所述接收端口对应的阻塞链路为活动链路。

可选的,上述的解决multi-link网络中孤岛问题的方法中,所述交换机从阻塞链路中选取一条链路作为活动链路包括:如果交换机存在多条阻塞链路,选举优先级最高的链路为所述活动链路。

可选的,上述的解决multi-link网络中孤岛问题的方法中,还包括:当所述不可用链路恢复为可用时,交换机从所述链路端口发送链路阻塞指令,并重新选取一条链路作为活动链路进行multi-link连接。

可选的,上述的解决multi-link网络中孤岛问题的方法中,还包括:所述交换机从所述链路端口周期性地发送链路启用指令或链路阻塞指令;如果所述邻居交换机未在预设时间内收到链路启用指令或链路阻塞指令,将所述接收端口恢复至multi-link的正常协议状态。

可选的,上述的解决multi-link网络中孤岛问题的方法中,所述链路启用指令和所述链路阻塞指令为扩展flush报文的controltype字段为预设值。

为了解决上述的技术问题,本发明实施例还公开了一种解决multi-link网络中孤岛问题的系统,当当前活动链路不可用时,交换机从阻塞链路中选取一条链路作为活动链路,并从该链路端口发送链路启用指令到邻居交换机;所述邻居交换机从接收端口收到所述链路启用指令后,启用所述接收端口对应的阻塞链路为活动链路。

可选的,上述的解决multi-link网络中孤岛问题的系统中,所述交换机从阻塞链路中选取一条链路作为活动链路包括:如果交换机存在多条阻塞链路,选举优先级最高的链路为所述活动链路。

可选的,上述的解决multi-link网络中孤岛问题的系统中,当所述不可用链路恢复为可用时,交换机从所述链路端口发送链路阻塞指令,并重新选取一条链路作为活动链路进行multi-link连接。

可选的,上述的解决multi-link网络中孤岛问题的系统中,所述交换机从所述链路端口周期性地发送链路启用指令或链路阻塞指令;如果所述邻居交换机未在预设时间内收到链路启用指令或链路阻塞指令,将所述接收端口恢复至multi-link的正常协议状态。

可选的,上述的解决multi-link网络中孤岛问题的系统中,所述链路启用指令和所述链路阻塞指令为扩展flush报文的controltype字段为预设值。

与现有技术相比,本发明的技术方案具有以下优点:

本发明实施例通过对multi-link进行扩展,支持在主链路故障时,交换设备之间通过报文交互共享双方信息,使得两台设备之间可以针对网络当中出现的链路故障同步切换,保证了整网的互通性,从而解决multi-link多上行链路组网中,由于部分链路故障切换,产生的网络节点被孤立,无法与其他节点相互通信的孤岛问题。

进一步地,通过设置timeout计时,在计时超时后将接口恢复至协议正常状态进行正常的阻塞,可以有效的避免故障链路恢复之后未及时阻塞备用链路出现的环路问题。

附图说明

图1是一种全网状的分层网络拓扑结构示意图;

图2是本发明实施例中一种解决multi-link网络中孤岛问题的方法的流程图;

图3是flush报文的结构示意图;

图4是本发明实施例中一种解决multi-link网络中孤岛问题的方法在图1所示网络拓扑环境下,实现备用链路启用的原理图;

图5本发明实施例中一种解决multi-link网络中孤岛问题的方法在图4所示链路故障排除后,实现主链路重新启用的原理图。

具体实施方式

目前,在通过smart-link或multi-link技术组成的交换网络中,当网络当中的某个节点,由于链路的物理故障或者协议面的链路控制的原因,会造成其与网络当中的其他节点均无法进行数据通信,导致产生孤岛问题。

如图1所示为一种全网状的网络拓扑结构,其中dut1交换机和dut2交换机为整个网络中核心层的交换机,dut3交换机和dut4交换机为接入层交换机。通过如下方法构建multi-link网络:

1.核心交换机dut1和dut2,以及接入交换机dut3和dut4构建了全网状互联的拓扑;

2.接入交换机dut3上配置了multi-link,设置链路a/b/c的优先级分别为1/2/3/(数字越小,等级越高);

3.接入交换机dut4上配置了multi-link,链路d/e的优先级分别为1/2;

4.正常情况下,链路a/d处于连通状态,链路b/c/e处于阻塞状态;

5.上述拓扑在链路正常情况下,可以确保任意设备之间的互通。

当接入交换机dut4的链路d/e均出现故障时,此时由于接入交换机dut3的链路c处于block状态,因此接入交换机dut4实际上就处于一种孤岛状态,无法与网络当中的其他任何节点进行通信了。

可见在现有技术中,目前还没有一种可以适用于smart-link或multi-link网络环境下,有效避免multi-link网络中产生孤岛问题的方法。

本发明实施例通过对multi-link进行扩展,支持在主链路故障时,交换设备之间通过报文交互共享双方信息,使得两台设备之间可以针对网络当中出现的链路故障同步切换,保证了整网的互通性,从而解决multi-link多上行链路组网中,由于部分链路故障切换,产生的网络节点被孤立,无法与其他节点相互通信的孤岛问题。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

如图2所示,本发明实施例的一种解决multi-link网络中孤岛问题的方法,可以包括如下步骤:

步骤s101,当当前活动链路不可用时,交换机从阻塞链路中选取一条链路作为活动链路。

所述当前活动链路不可用可以是链路出现了硬件故障,使光信号或者电信号无法传递,对应接口的状态也变为down的状态,此时由于信息无法传递过去,因此无法收发任何报文。

所述阻塞链路是链路被人为定义的状态,具体表现形式为,链路硬件没有连接问题,光信号或者电信号可以正常传递,只是设备自身制定的规则,如mulit-link协议的规则,不会在该阻塞的链路上向外发送信息,并且从阻塞链路上收到的信息也不会进行转发。

在具体实施中,如果交换机存在多条阻塞链路,选举优先级最高的链路为所述活动链路。如通过portid或portmac等进行选举等。

步骤s102,从该链路端口发送链路启用指令到邻居交换机。

在现有技术中,不论是smart-link,还是multi-link,它们都是在单台设备上工作,只能感知本端设备的信息作出相应的链路备份切换操作,但无法感知链路对端的故障情况,所以就会出现链路两端设备针对同一条链路,一端出现正常转发,而另一端出现阻塞的情况,从而导致孤岛问题的产生。而本发明实施例通过从步骤s102从链路端口发送链路启用指令到邻居交换机以及后续的操作步骤,实现链路两端交换设备的协商,从而有效地避免了孤岛问题的产生。

步骤s103,所述邻居交换机从接收端口收到所述链路启用指令后,启用所述接收端口对应的阻塞链路为活动链路。

在具体实施中,当步骤s101中出现故障导致不可用的链路恢复为可用时,交换机从所述链路端口发送链路阻塞指令,并重新选取一条链路作为活动链路进行multi-link连接。

在上述的具体实施中,为了避免出现路由环路,所述交换机从所述链路端口周期性地发送链路启用指令或链路阻塞指令;如果所述邻居交换机未在预设时间内收到链路启用指令或链路阻塞指令,将所述接收端口恢复至multi-link的正常协议状态。

在具体实施中,所述链路启用指令和所述链路阻塞指令为扩展flush报文的controltype字段为预设值。如图3所示,flush报文的相关字段包括:

destinationmac:为未知组播地址0x010fe200-0004;

sourcemac:表示发送flush报文的设备的接口mac地址;

controltype:表示控制类型;

controlversion:表示版本号。当前版本号为0x00,用于后续版本的扩展;

deviceid:表示发送flush报文的设备的桥mac地址;

controlvlanid:表示发送控制vlan的id号;

auth-mode:表示认证模式,和password一起使用,便于以后进行安全性扩展;

vlanbitmap:表示vlan位图,用于携带需要刷新地址表的vlan列表;fcs:表示帧校验和,用于检查报文的合法性。

本发明实施例,controltype字段目前只有刷新mac地址表项的一种(0x01),通过对controltype字段新增两种controltype,如定义controltype等于0x02的表示为链路启用指令(active报文);定义controltype等于0x04的表示为链路阻塞指令(block报文),实现了对flush报文的扩展。其他信息如controlvlanid、password、vlanbitmap等相关信息与协议原有的flush报文功能保持一致。

在上述的具体实施中,阻塞的是网络当中普通的数据报文,而其中一些比较特殊的协议交互报文是不会进行阻塞的,比如flush报文,从而保证dut3在收到这些报文时,不是丢弃而是自行处理,最终将原来的阻塞链路置为正常状态。

为了使本领域技术人员能对本发明实施例有更为清楚的理解,下面结合图4-图5所示场景,对本发明实施例做更进一步的实例性说明。

如果dut4上的仅有主链路d故障,而两条备用链路c/e可用,那么multi-link就会根据multi-link本身的切换规则进行链路切换,从剩余的2条备用链路当中选择优先级更高的链路作为当前的活跃链路,满足所有设备都可以互相通信,且不会出现环路即可,此为本领域技术人员公知技术。

如图4所示,当接入交换机dut4的链路d/e均出现故障,或者主链路d故障后选举备用链路c作为主链路,交换机dut4会立即周期性通过链路c向外发送active报文,而接入交换机dut3收到active报文之后,会立即打开相应的接口,即unblock掉相应的接口,不再阻塞这个接口,并会立并开始timeout计时器。如果此时dut3链路c上的接收端口已经处于unblock状态了,则只是重置timeout计时器,不对接口进行任何操作。通过上述机制,可以有效的避免了孤岛问题的产生。

由于链路的阻塞只是单台设备上的一个表现形式,而一条链路是有两端的,那么网络当中就会出现下面这3种情况:a阻塞----阻塞,b阻塞----正常,c正常----正常。其中,只有c正常----正常这种形式,链路两端才能正常进行报文的双向通信,其他情况均无法实现。

现有技术中,接入交换机dut4的链路d/e均出现故障时,即使交换机dut4认为链路c是正常的,也就是上面的情况b。此时由于dut4自己向外发送的所有报文都被dut3给阻塞掉了,所以收不到任何报文。但接入交换机dut3却无法感知交换机dut4的链路故障情况,此时根据multi-link自身的工作原理,它始终是将dut3的链路c置为阻塞状态的。因此接入交换机dut4就处于一种孤岛状态,无法与网络当中的其他任何节点进行通信了

如图5所示,当接入交换机dut4的链路d恢复故障之后,交换机dut4会立即通过链路c向外发送block报文,接入交换机dut3在收到block报文之后,会立即block掉相应的接口。如果接入交换机dut3在timeout计时器内一直未收到active报文或者block报文,则timeout计时器超时之后直接将接口恢复至协议正常状态。通过上述机制,可以有效的避免故障链路恢复之后出现的环路问题。接入交换机dut4的链路e恢复故障的情形类似,此处不再赘述。

本领域技术人员可以理解的是,smart-link和multi-link都是用作链路级的备份,multi-link是smart-link的扩展,允许多条链路做备份,当主链路出现故障时,再从剩下的多条备份链路当中选择优先级最高的一条备份链路进行切换。因此本发明实施例的一种解决multi-link网络中孤岛问题的方法也可以适用于smart-link网络环境中,其当然也属于本发明的保护范围内。

为了解决上述的技术问题,本发明实施例还公开了一种解决multi-link网络中孤岛问题的系统,由于交换网络设备组成。当当前活动链路不可用时,交换机从阻塞链路中选取一条链路作为活动链路,并从该链路端口发送链路启用指令到邻居交换机;所述邻居交换机从接收端口收到所述链路启用指令后,启用所述接收端口对应的阻塞链路为活动链路。

在具体实施中,所述交换机从阻塞链路中选取一条链路作为活动链路包括:如果交换机存在多条阻塞链路,选举优先级最高的链路为所述活动链路。

在具体实施中,还包括:当所述不可用链路恢复为可用时,交换机从所述链路端口发送链路阻塞指令,并重新选取一条链路作为活动链路进行multi-link连接。

在具体实施中,所述交换机从所述链路端口周期性地发送链路启用指令或链路阻塞指令;如果所述邻居交换机未在预设时间内收到链路启用指令或链路阻塞指令,将所述接收端口恢复至multi-link的正常协议状态。

在具体实施中,所述链路启用指令和所述链路阻塞指令为扩展flush报文的type字段为预设值。

由于本发明实施例与第一实施例为基于同一发明构思,因此关于本实施例的具体方案,可以参照第一实施例的相应内容,此处不再赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1