本发明涉及通信技术领域,尤其涉及一种环路检测方法、装置、交换机及存储介质。
背景技术:
交换机在开局时,特别是在配置跨设备链路聚合组(mlag,multichassislinkaggregationgroup)和堆叠时很容易形成环路。当报文在环路中转发时,就会形成广播风暴,影响整个网络中的业务。目前,交换机有两种防环模式,一种是交换机默认所有端口开启单端口防环模式,在单端口防环模式下端口默认是转发(forwarding)状态的,此时可能因为大量业务流量冲击,使得对端设备拥塞丢包,导致环路检测报文丢失,从而无法检测到环路。另一种是交换机默认配置开启生成树协议(stp,spanningtreeprotocol)防环,但stp需要全网均开启该功能,一些设备未开启stp时会丢弃stp检测报文,导致无法检测到环路。
技术实现要素:
为了解决上述问题,本发明实施例提供了一种环路检测方法、装置、交换机及存储介质,以至少解决相关技术在一些场景下无法检测到环路,环路检测准确率低的问题。
本发明的技术方案是这样实现的:
第一方面,本发明实施例提供了一种环路检测方法,该方法包括:
确定所述第一交换机满足设定条件的情况下,控制所述第一交换机进入第一模式;所述设定条件表征所述第一交换机的配置进行了修改;
在所述第一交换机处于所述第一模式的情况下,在所述第一交换机的第一端口对应的链路连通时,控制所述第一端口处于阻塞状态;所述第一交换机包括至少一个端口,所述第一端口为所述至少一个端口中的任意一个端口;
基于所述第一端口进行环路检测,得到检测结果;所述检测结果表征所述第一端口是否存在环路。
上述方案中,所述方法还包括:
在所述检测结果表征所述第一端口不存在环路的情况下,控制所述第一端口由所述阻塞状态进入转发状态;在所述检测结果表征所述第一端口存在环路的情况下,所述第一端口维持所述阻塞状态。
上述方案中,所述基于所述第一端口进行环路检测,得到检测结果,包括:
基于所述第一端口发送设定报文;所述设定报文用于检测所述第一端口是否存在环路;
在所述第一端口在第一设定时长内接收到所述设定报文的情况下,确定所述第一端口存在环路。
上述方案中,所述基于所述第一端口发送设定报文,包括:
在所述第一端口为聚合端口的情况下,基于所述聚合端口的子接口发送所述设定报文。
上述方案中,所述确定第一交换机满足设定条件,包括以下任意一项:
在所述第一交换机处于开局模式的情况下,确定所述第一交换机满足设定条件;
在接收到第一用户指令的情况下,确定所述第一交换机满足设定条件;所述第一用户指令用于控制所述第一交换机进入所述第一模式。
上述方案中,所述方法还包括:
在所述第一模式下基于所述第一端口对第二交换机进行配置;所述第二交换机基于所述第一端口与所述第一交换机级联。
上述方案中,所述方法还包括:
在所述至少一个端口都处于所述转发状态且所述第一交换机在第二设定时长内配置未被修改时,控制所述第一交换机退出所述第一模式。
上述方案中,所述方法还包括:
在接收到第二用户指令的情况下,控制所述第一交换机退出所述第一模式;所述第二用户指令用于控制所述第一交换机退出所述第一模式。
第二方面,本发明实施例提供了一种环路检测装置,该装置包括:
确定模块,用于确定所述第一交换机满足设定条件的情况下,控制所述第一交换机进入第一模式;所述设定条件表征所述第一交换机的配置进行了修改;
控制模块,用于在所述第一交换机处于所述第一模式的情况下,在所述第一交换机的第一端口对应的链路连通时,控制所述第一端口处于阻塞状态;所述第一交换机包括至少一个端口,所述第一端口为所述至少一个端口中的任意一个端口;
检测模块,用于基于所述第一端口进行环路检测,得到检测结果;所述检测结果表征所述第一端口是否存在环路。
第三方面,本发明实施例提供了一种交换机,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行本发明实施例第一方面提供的环路检测方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序。所述计算机程序被处理器执行时实现如本发明实施例第一方面提供的环路检测方法的步骤。
本发明实施例通过确定第一交换机满足设定条件的情况下,控制第一交换机进入第一模式。在第一交换机处于第一模式的情况下,在第一交换机的第一端口对应的链路连通时,控制第一端口处于阻塞状态。然后基于第一端口进行环路检测,得到检测结果;检测结果表征第一端口是否存在环路。其中,设定条件表征第一交换机的配置进行了修改;第一交换机包括至少一个端口,第一端口为至少一个端口中的任意一个端口。本发明实施例在交换机修改配置时进入第一模式,在第一模式下对环路进行检测,环路检测准确率高。交换机不用等到配置修改完交换机运行时再进行环路检测,可以起到预先检测环路的效果,在检测到环路时及时通知用户对环路进行修复,确保交换机在配置修改完交换机运行时,交换机不存在环路。
附图说明
图1是本发明实施例提供的一种环路检测方法的实现流程示意图;
图2是本发明实施例提供的另一种环路检测方法的实现流程示意图;
图3是本发明实施例提供的一种交换机的拓扑连接图;
图4是本发明应用实施例提供的一种环路检测的流程示意图;
图5是本发明应用实施例提供的另一种环路检测的流程示意图;
图6是本发明实施例提供的一种环路检测装置的示意图;
图7是本发明一实施例提供的交换机的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
交换机环路是由交换机广播信息的恶性循环产生的,环路通常是由于用户接线错误而引发的。例如在交换机开局时,在配置跨设备链路聚合组(mlag,multichassislinkaggregationgroup)和堆叠时,需要频繁插拔网线、修改端口配置,这样很容易形成环路,开局指用户使用出厂时默认配置的交换机首次接线并配置的过程。
当报文在环路中转发时,就会形成广播风暴,导致网络堵塞,影响整个网络中的业务。因此,需要及时对交换机的环路进行检测。目前,在相关技术中交换机有两种环路检测方法,一种是交换机默认所有端口开启单端口第一模式,在单端口第一模式下端口默认是转发(forwarding)状态的,一旦端口进入forwarding状态,该端口就可以转发任何数据,同时也进行地址学习和网桥协议数据单元(bpdu,bridgeprotocoldataunit)配置消息的接收、处理和发送。在forwarding状态下,由于端口可以转发任何数据,此时可能因为大量的业务流量冲击,使得对端设备拥塞丢包,可能导致该端口发送的环路检测报文丢失,从而无法检测到环路,这里,对端设备也可以为交换机。另一种环路检测方法是交换机默认配置开启生成树协议(stp,spanningtreeprotocol)来检测环路,stp协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树形网络,从而避免报文在环路网络中的增生和无限循环。但stp协议需要全网所有设备均开启该功能,一些设备未开启stp时会丢弃stp检测报文,导致无法检测到环路。
综上所述,上述两种方法都有一定的缺陷,在一些情况下无法检测到环路,环路检测准确率低。
针对上述相关技术的缺点,本发明实施例提供了一种环路检测方法,能够至少提高环路的检测准确率,确保交换机在使用过程中不会产生环路。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
参考图1,图1是本发明实施例提供的一种环路检测方法的实现流程示意图,该方法执行主体为交换机,所述环路检测方法包括:
s101,确定所述第一交换机满足设定条件的情况下,控制所述第一交换机进入第一模式;所述设定条件表征所述第一交换机的配置进行了修改。
这里,在需要修改交换机的配置时,控制交换机进入第一模式。
在一实施例中,所述确定第一交换机满足设定条件,包括以下任意一项:
在所述第一交换机处于开局模式的情况下,确定所述第一交换机满足设定条件;
在接收到第一用户指令的情况下,确定所述第一交换机满足设定条件;所述第一用户指令用于控制所述第一交换机进入所述第一模式。
开局指用户使用出厂时默认配置的交换机首次接线并配置的过程,在第一交换机进行开局时,第一交换机自动进入第一模式。因为第一交换机出厂时均是默认配置,只要第一交换机处于默认配置时,第一交换机自动进入第一模式。第一交换机在配置修改后,也可以还原默认配置,在还原默认配置后,第一交换机自动进入第一模式。
或者,用户可以手动控制第一交换机进入第一模式。在实际引用中,第一交换机与控制器进行连接,用户可以通过控制器下发第一用户指令给第一交换机,第一用户指令用于控制第一交换机进入第一模式。第一交换机在接收到第一用户指令后,进入第一模式。
s102,在所述第一交换机处于所述第一模式的情况下,在所述第一交换机的第一端口对应的链路连通时,控制所述第一端口处于阻塞状态;所述第一交换机包括至少一个端口,所述第一端口为所述至少一个端口中的任意一个端口。
第一交换机包括至少一个端口,第一交换机通过至少一个端口用于与其他设备连接,例如,第一交换机与第二交换机通过第一端口进行级联。
在第一交换机处于第一模式的情况下,在第一端口的链路连通时,控制所述第一端口处于阻塞(blocking)状态。在相关技术中,blocking状态的端口不能够参与转发数据报文,但可以接收bpdu配置消息。
在实际应用中,可以在第一交换机上设置若干指示灯,在第一端口对应的链路连通(linkup)时,第一端口对应的指示灯会亮起;在第一端口对应的链路未连通时,第一端口对应的指示灯处于熄灭状态。例如,在第一交换机与第二交换机通过第一端口进行级联时,如果第一交换机与第二交换机通之间的链路处于连通状态,可以传输数据,则第一端口对应的指示灯亮起。在第一端口对应的指示灯亮起时,控制第一端口处于阻塞(blocking)状态。
s103,基于所述第一端口进行环路检测,得到检测结果;所述检测结果表征所述第一端口是否存在环路。
由于在第一端口链路连通时,第一端口处于阻塞状态,因此需要在阻塞(blocking)状态下检测第一端口是否存在环路。
本发明实施例既可以在第一端口处于阻塞状态时检测第一端口是否存在环路,还可以在第一端口处于转发状态时检测第一端口是否存在环路。
参考图2,在一实施例中,所述基于所述第一端口进行环路检测,得到检测结果,包括:
s201,基于所述第一端口发送设定报文;所述设定报文用于检测所述第一端口是否存在环路。
从第一端口向第一端口对应的链路发送设定报文,设定报文用于检测第一端口是否存在环路。这里,设定报文是一种私有的二层通信协议报文,例如可以是sdp(sundraydisocverprotocol)协议,该协议可以用于在两台交换机之间进行通信,具有跨vlan传播、能够穿透blocking状态的端口的特性,且交换机不会转发该协议报文。
进一步的,在上述实施例中,所述基于所述第一端口发送设定报文,包括:
在所述第一端口为聚合端口的情况下,基于所述聚合端口的子端口发送所述设定报文。
这里,如果第一端口是聚合端口,则会以聚合端口的子接口为单位去发送检测报文。聚合端口即把一组物理端口聚合起来,做为一个逻辑的通道,这样交换机会认为这个逻辑通道为一个端口,该聚合端口由多个子端口组成。通过聚合端口的子端口发送设定报文,可以解决m-lag和lag口接线时容易环路的场景。
s202,在所述第一端口在第一设定时长内接收到所述设定报文的情况下,确定所述第一端口存在环路。
第一端口发送设定报文后,第一端口在第一设定时长内又接收到了设定报文,则说明第一端口存在环路。例如,在实际应用中,第一设定时长可以设定为3秒,交换机从第一端口连续发送多个设定报文,如果交换机在3秒内从第一端口接收到任意一个设定报文,说明第一端口存在环路。
如果第一端口在第一设定时长内没有接收到设定报文,说明第一端口不存在环路。
本发明实施例通过确定第一交换机满足设定条件的情况下,控制第一交换机进入第一模式。在第一交换机处于第一模式的情况下,在第一交换机的第一端口对应的链路连通时,控制第一端口处于阻塞状态。然后基于第一端口进行环路检测,得到检测结果;检测结果表征第一端口是否存在环路。其中,设定条件表征第一交换机的配置进行了修改;第一交换机包括至少一个端口,第一端口为至少一个端口中的任意一个端口。本发明实施例是在交换机修改配置时进入第一模式,在第一模式下对环路进行检测,环路检测准确率高。交换机不用等到配置修改完交换机运行时再进行环路检测,可以起到预先检测环路的效果,在检测到环路时及时通知用户对环路进行修复,确保交换机在配置修改完交换机运行时,交换机不存在环路。
在一实施例中,所述环路检测方法还包括:
在所述检测结果表征所述第一端口不存在环路的情况下,控制所述第一端口由所述阻塞状态进入转发状态;在所述检测结果表征所述第一端口存在环路的情况下,所述第一端口维持所述阻塞状态。
在第一端口不存在环路的情况下,控制第一端口由阻塞状态进入转发状态,在转发状态下,第一端口可以转发任何数据。如果第一端口存在链路,则第一端口继续维持阻塞状态。因此,可以根据第一端口的状态来判断第一交换机是否存在环路,在第一交换机有端口处于阻塞状态时,则认为第一交换机存在环路。当交换机所有端口都处于转发状态时,认为第一交换机不存在环路。
本发明实施例在第一模式下,在第一端口对应的链路连通时控制第一端口进入阻塞状态,然后对第一端口进行环路检测,如果不存在环路,则控制第一端口由阻塞状态进入转发状态。本发明实施例可以只对交换机的单个端口进行环路检测,在第一端口处于转发状态时,第一端口一定不存在环路的,从而可以在第一端口转发报文,不用担心引发广播风暴。
进一步的,在一实施例中,所述环路检测方法还包括:
在所述至少一个端口都处于所述转发状态且所述第一交换机在第二设定时长内配置未被修改时,控制所述第一交换机退出所述第一模式。
在第一交换机的所有端口都处于转发状态时,此时说明第一交换机的所有端口都不存在环路。如果第一交换机在第二设定时长内配置未被修改时,说明用户对第一交换机配置结束了。例如,第二设定时长可以为48小时。在同时满足上述两个条件时,控制交换机退出第一模式。
在一实施例中,所述环路检测方法还包括:
在接收到第二用户指令的情况下,控制所述第一交换机退出所述第一模式;所述第二用户指令用于控制所述第一交换机退出所述第一模式。
除了上述第一交换机自动退出第一模式,用户还可以通过控制器下发第二用户指令给第一交换机,控制第一交换机退出第一模式。
第一交换机在完成开局后需要退出第一模式,因为第一端口链路连通时默认有3秒钟的阻塞状态,但是对端设备不一定默认会处于阻塞状态,在这种情况下,对端设备并不知道第一端口是阻塞状态,误以为第一端口能够正常转发报文,从而导致丢包。所以,在完成开局后,第一交换机需要退出第一模式。
进一步的,在一实施例中,所述环路检测方法还包括:
在所述第一模式下基于所述第一端口对第二交换机进行配置;所述第二交换机基于所述第一端口与所述第一交换机级联。
参考图3,图3是本发明实施例提供的一种交换机的拓扑连接图。其中,第二交换机基于第一端口与第一交换机级联,第一交换机的第一端口与第二交换机的第二端口进行链路连接,控制器与第一交换机进行连接。
用户可以在控制器上下发配置参数给第一交换机,对第一交换机进行配置。控制器还可以下发配置参数给第一交换机,基于第一交换机的第一端口对第二交换机进行配置。
如果第一交换机和第二交换机都处于未激活状态,且第一端口和第二端口处于链路连通状态,即使此时第一端口和第二端口都处于阻塞状态,或第一端口和第二端口中有一个端口处于阻塞状态,控制器都可以对第一交换机和第二交换机进行激活和配置下发,也可以通过第一端口发送环路检测报文,环路检测报文可以跨阻塞状态的第一端口检测环路。
如果第一交换机开启了单网口防环模式或stp防环,第二交换机处于未激活状态,且第一端口和第二端口处于链路连通状态,此时不管单网口防环或stp防环结果如何,即使第一端口和第二端口都处于阻塞状态,或第一端口和第二端口中有一个端口处于阻塞状态,控制器都可以对第一交换机和第二交换机进行激活和配置下发,也可以通过第一端口发送环路检测报文。
如果第二交换机开启了单网口防环模式或stp防环,第一交换机处于未激活状态,且第一端口和第二端口处于链路连通状态。即使第一端口和第二端口都处于阻塞状态,或第一端口和第二端口中有一个端口处于阻塞状态,控制器都可以对第一交换机和第二交换机进行激活和配置下发,也可以通过第一端口发送环路检测报文。
在本发明实施例中,在mlag或堆叠时,也可以进行环路检测和配置下发。
参考图4,图4是本发明应用实施例提供的一种环路检测的流程示意图,环路检测的流程包括:
s401,交换机处于默认配置状态。
在交换机处于默认配置时,自动进入第一模式。
s402,交换机处于非默认配置状态。
交换机在非默认配置状态,用户可以手动控制交换机进入第一模式。
s403,进入第一模式。
在第一模式下,在端口链路连通时,端口进入阻塞状态,交换机发送检测报文,检测端口是否存在环路。
s404,配置下发。
s405,激活。
在第一模式下,即使端口处于阻塞状态,控制器也可以对交换机下发配置和进行激活。例如,通过sdp协议激活和配置下发。
s406,是否手动退出第一模式。
如果交换机需要自动退出第一模式,则执行s408。手动退出,则执行s407。
s407,退出第一模式。
s408,是否所有端口都处于转发状态且超过设定时间配置未修改。
在所有端口都处于转发状态且超过设定时间配置未修改时,退出第一模式。
参考图5,图5是本发明应用实施例提供的另一种环路检测的流程示意图,该流程应用于上述s403步骤中,环路检测的流程包括:
s501,端口链路连通时,控制端口进入阻塞状态。
在第一模式下,在端口链路连通时,控制端口进入阻塞状态。
s502,发送环路检测报文。
从端口发送环路检测报文,检测端口是否存在环路。如果端口是聚合端口,则会以子端口为单位去发送环路检测报文。
s503,在设定时间内是否收到环路检测报文。
如果在设定时间内接收到了环路检测报文,说明端口存在环路。
如果未收到,说明端口不存在环路。
如果未收到,执行s504。如果收到,执行s505。
s504,控制端口处于转发状态。
不存在环路,则控制端口进入转发状态。端口处于forwarding状态时,不会再发送环路检测报文。该端口的转发和普通端口无异。处于forwarding状态下的端口,可以和控制器间建立传统的发现激活通道和tcp隧道。
s505,控制端口处于阻塞状态。
如果存在环路,则端口继续维持阻塞状态。
端口在阻塞状态下时,重复检查第一端口是否存在环路。端口处于blocking状态时,不能转发业务报文,且会持续发送环路检测报文,直到检测到环路解除。
s506,正常激活和配置下发。
如果端口处于转发状态,控制器可以正常激活和配置下发,也可以通过sdp协议激活和配置下发。
s507,通过sdp协议激活和配置下发。
如果端口处于阻塞状态,只能通过sdp协议激活和配置下发。
本发明应用实施例中,交换机在开局时自动进入第一模式,在第一模式下对环路进行检测,交换机不用等到配置修改完交换机运行时再进行环路检测,可以起到预先检测环路的效果,在检测到环路时及时通知用户对环路进行修复,确保交换机在配置修改完交换机运行时,交换机不存在环路。由于端口在阻塞状态也能对环路进行检测,不会因为端口拥塞丢包导致识别不出环路,因此环路检测准确率高。而且可以实现单端口环路检测,无需整网开启防环,第一模式还可以与stp、单网口防环同时使用。
在实际应用中,不管是在网络中新增交换机,还是对现有的交换机进行改造,都可以通过第一模式对环路进行检测,做到事先检测的效果,确保交换机在配置完成后运行时不存在环路。
与单网口防环模式相比,单网口防环模式是事后检测,此时交换机已经存在环路了。而且单网口防环模式不能完全解决mlag、堆叠的开局环路场景,容易出现两端同时放开blocking口后重新产生环路的情况。而且单网口防环模式会不停的发送环路检测报文,额外消耗了网络资源。而本发明提供的第一模式,是在配置时预先检测是否存在环路,确保交换机在配置完成后运行时不存在环路。而且环路检测报文可以跨聚合端口检测到环路,适应于mlag、堆叠的开局环路场景。环路检测报文可以跨阻塞状态端口检测环路,不会出现两端blocking后同时恢复又重新环路的情况。本发明只有在端口链路连通时才发送检测报文,对网络资源消耗小,更适合解决开局接线导致的环路问题。而且第一模式支持和stp、单网口防环同时使用,保证在部署过程中不影响其他功能的使用,对客户完全透明。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
需要说明的是,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
另外,在本发明实施例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
参考图6,图6是本发明实施例提供的一种环路检测装置的示意图,如图6所示,该装置包括:确定模块、控制模块和检测模块。
确定模块,用于确定所述第一交换机满足设定条件的情况下,控制所述第一交换机进入第一模式;所述设定条件表征所述第一交换机的配置进行了修改;
控制模块,用于在所述第一交换机处于所述第一模式的情况下,在所述第一交换机的第一端口对应的链路连通时,控制所述第一端口处于阻塞状态;所述第一交换机包括至少一个端口,所述第一端口为所述至少一个端口中的任意一个端口;
检测模块,用于基于所述第一端口进行环路检测,得到检测结果;所述检测结果表征所述第一端口是否存在环路。
所述控制模块还用于:
在所述检测结果表征所述第一端口不存在环路的情况下,控制所述第一端口由所述阻塞状态进入转发状态;在所述检测结果表征所述第一端口存在环路的情况下,所述第一端口维持所述阻塞状态。
所述检测模块具体用于:
基于所述第一端口发送设定报文;所述设定报文用于检测所述第一端口是否存在环路;
在所述第一端口在第一设定时长内接收到所述设定报文的情况下,确定所述第一端口存在环路。
所述检测模块具体用于:在所述第一端口为聚合端口的情况下,基于所述聚合端口的子接口发送所述设定报文。
所述确定模块具体用于:
在所述第一交换机处于开局模式的情况下,确定所述第一交换机满足设定条件;或
在接收到第一用户指令的情况下,确定所述第一交换机满足设定条件;所述第一用户指令用于控制所述第一交换机进入所述第一模式。
所述装置还包括:
配置模块,用于在所述第一模式下基于所述第一端口对第二交换机进行配置;所述第二交换机基于所述第一端口与所述第一交换机级联。
所述控制模块还用于:
在所述至少一个端口都处于所述转发状态且所述第一交换机在第二设定时长内配置未被修改时,控制所述第一交换机退出所述第一模式。
所述控制模块还用于:
在接收到第二用户指令的情况下,控制所述第一交换机退出所述第一模式;所述第二用户指令用于控制所述第一交换机退出所述第一模式。
实际应用时,所述确定模块、控制模块和检测模块可通过交换机中的处理器,比如中央处理器(cpu,centralprocessingunit)、数字信号处理器(dsp,digitalsignalprocessor)、微控制单元(mcu,microcontrollerunit)或可编程门阵列(fpga,field-programmablegatearray)等实现。
需要说明的是:上述实施例提供的环路检测装置在进行环路检测时,仅以上述各模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的模块完成,即将装置的内部结构划分成不同的模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的环路检测装置与环路检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述程序模块的硬件实现,且为了实现本申请实施例的方法,本申请实施例还提供了一种交换机。图7为本申请实施例交换机的硬件组成结构示意图,如图7所示,交换机包括:
通信接口,能够与其它设备比如网络设备等进行信息交互;
处理器,与所述通信接口连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述交换机侧一个或多个技术方案提供的方法。而所述计算机程序存储在存储器上。
当然,实际应用时,交换机中的各个组件通过总线系统耦合在一起。可理解,总线系统用于实现这些组件之间的连接通信。总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统。
本申请实施例中的存储器用于存储各种类型的数据以支持交换机的操作。这些数据的示例包括:用于在交换机上操作的任何计算机程序。
可以理解,存储器可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本申请实施例描述的存储器130旨在包括但不限于这些和任意其它适合类型的存储器。
上述本申请实施例揭示的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、dsp,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器读取存储器中的程序,结合其硬件完成前述方法的步骤。
可选地,所述处理器执行所述程序时实现本申请实施例的各个方法中由交换机实现的相应流程,为了简洁,在此不再赘述。
在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的第一存储器,上述计算机程序可由交换机的处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flashmemory、磁表面存储器、光盘、或cd-rom等存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置、交换机和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
另外,在本申请实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
1.一种环路检测方法,应用于第一交换机,其特征在于,所述方法包括:
确定所述第一交换机满足设定条件的情况下,控制所述第一交换机进入第一模式;所述设定条件表征所述第一交换机的配置进行了修改;
在所述第一交换机处于所述第一模式的情况下,在所述第一交换机的第一端口对应的链路连通时,控制所述第一端口处于阻塞状态;所述第一交换机包括至少一个端口,所述第一端口为所述至少一个端口中的任意一个端口;
基于所述第一端口进行环路检测,得到检测结果;所述检测结果表征所述第一端口是否存在环路。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述检测结果表征所述第一端口不存在环路的情况下,控制所述第一端口由所述阻塞状态进入转发状态;在所述检测结果表征所述第一端口存在环路的情况下,所述第一端口维持所述阻塞状态。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一端口进行环路检测,得到检测结果,包括:
基于所述第一端口发送设定报文;所述设定报文用于检测所述第一端口是否存在环路;
在所述第一端口在第一设定时长内接收到所述设定报文的情况下,确定所述第一端口存在环路。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一端口发送设定报文,包括:
在所述第一端口为聚合端口的情况下,基于所述聚合端口的子端口发送所述设定报文。
5.根据权利要求1所述的方法,其特征在于,所述确定第一交换机满足设定条件,包括以下任意一项:
在所述第一交换机处于开局模式的情况下,确定所述第一交换机满足设定条件;
在接收到第一用户指令的情况下,确定所述第一交换机满足设定条件;所述第一用户指令用于控制所述第一交换机进入所述第一模式。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一模式下基于所述第一端口对第二交换机进行配置;所述第二交换机基于所述第一端口与所述第一交换机级联。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述至少一个端口都处于所述转发状态且所述第一交换机在第二设定时长内配置未被修改时,控制所述第一交换机退出所述第一模式。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到第二用户指令的情况下,控制所述第一交换机退出所述第一模式;所述第二用户指令用于控制所述第一交换机退出所述第一模式。
9.一种环路检测装置,其特征在于,包括:
确定模块,用于确定所述第一交换机满足设定条件的情况下,控制所述第一交换机进入第一模式;所述设定条件表征所述第一交换机的配置进行了修改;
控制模块,用于在所述第一交换机处于所述第一模式的情况下,在所述第一交换机的第一端口对应的链路连通时,控制所述第一端口处于阻塞状态;所述第一交换机包括至少一个端口,所述第一端口为所述至少一个端口中的任意一个端口;
检测模块,用于基于所述第一端口进行环路检测,得到检测结果;所述检测结果表征所述第一端口是否存在环路。
10.一种交换机,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至8任一项所述的环路检测方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1至8任一项所述的环路检测方法。
技术总结