CN109347705B - 一种环路检测方法及装置 - Google Patents
一种环路检测方法及装置 Download PDFInfo
- Publication number
- CN109347705B CN109347705B CN201811496825.1A CN201811496825A CN109347705B CN 109347705 B CN109347705 B CN 109347705B CN 201811496825 A CN201811496825 A CN 201811496825A CN 109347705 B CN109347705 B CN 109347705B
- Authority
- CN
- China
- Prior art keywords
- message
- port
- preset
- identification value
- table entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及以太网技术领域,尤其涉及一种环路检测方法及装置,若接收到报文,则确定所述报文的标识值;根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;若确定所述预设的报文表项中记录有所述标识值的报文,则确定发生环路,丢弃所述报文,这样,通过比较接收到报文与报文表项中预先记录的已发送的报文是否相同,从而判断是否发生环路,实现简单,并且可以对交换机中任意端口进行检测,提高了效率,解决了因误操作等原因出现环路,导致网络风暴的问题。
Description
技术领域
本发明涉及以太网技术领域,尤其涉及一种环路检测方法及装置。
背景技术
实际中,在网路部署过程中,由于路由器配置错误、误操作等原因,可能会产生网络环路,导致网络风暴,甚至瘫痪。
现有技术中,环路检测方法,主要是预先配置特定端口,通常是设置其中两个特定端口,通过报文的媒体接入控制(Media Access Control,MAC)地址来检测这两个特定端口,从而确定是否发生网络环路,但是,现有技术中的检测方法,通常只针对其中两个特定端口进行检测,效率较低,无法同时检测网络中任意端口是否发生环路。
发明内容
本发明实施例提供一种环路检测方法及装置,以解决现有技术中无法同时检测网络中任意端口是否发生环路,效率较低的问题。
本发明实施例提供的具体技术方案如下:
一种环路检测方法,包括:
接收到报文,则确定所述报文的标识值;
根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;
若确定所述预设的报文表项中记录有所述标识值的报文,则确定发生环路,丢弃所述报文。
可选的,接收到报文之后,确定所述报文的标识值之前,进一步包括:确定所述报文为未知单播报文或广播报文;其中,所述未知单播报文表征交换机中未记录有相应的MAC地址表。
可选的,所述预设的报文表项中还包括报文的标识值和对应的发送端口的映射关系,则确定所述预设的报文表项中记录有所述标识值的报文之后,进一步包括:
判断所述预设的报文表项中记录的所述标识值对应的发送端口是否与接收所述报文的端口不相同;
若确定不相同,则根据预设规则,从接收所述报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,将选择的一个端口的状态设置为阻塞状态,以使所述设置为阻塞状态的端口不进行收发报文。
可选的,所述预设的报文表项的获得方式为:
发送报文时,则确定所述报文的标识值;
在所述预设的报文表项保存所述报文的标识值。
可选的,所述预设的报文表项的获得方式为:
发送报文时,则确定所述报文的标识值,并建立所述报文的标识值与所述报文对应的发送端口的映射关系;
将所述报文的标识值与所述报文对应的发送端口的映射关系保存到预设的报文表项中。
可选的,所述预设的报文表项中还至少包括发送时间信息,则进一步包括:
根据所述发送时间信息和预设更新时长,更新所述预设的报文表项。
一种环路检测装置,包括:
第一确定模块,用于接收到报文,则确定所述报文的标识值;
查找模块,用于根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;
判断模块,用于若确定所述预设的报文表项中记录有所述标识值的报文,则确定发生环路,丢弃所述报文。
可选的,接收到报文之后,确定所述报文的标识值之前,第一确定模块进一步用于:
确定所述报文为未知单播报文或广播报文;其中,所述未知单播报文表征交换机中未记录有相应的媒体接入控制MAC地址表。
可选的,所述预设的报文表项中还包括报文的标识值和对应的发送端口的映射关系,则确定所述预设的报文表项中记录有所述标识值的报文之后,进一步包括:处理模块,用于:
判断所述预设的报文表项中记录的所述标识值对应的发送端口是否与接收所述报文的端口不相同;
若确定不相同,则根据预设规则,从接收所述报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,将选择的一个端口的状态设置为阻塞状态,以使所述设置为阻塞状态的端口不进行收发报文。
可选的,针对所述预设的报文表项的获得方式,还包括:
第二确定模块,用于发送报文时,则确定所述报文的标识值;
保存模块,用于在所述预设的报文表项保存所述报文的标识值。
可选的,针对所述预设的报文表项的获得方式:第二确定模块,还用于发送报文时,则确定所述报文的标识值,并建立所述报文的标识值与所述报文对应的发送端口的映射关系;
保存模块,还用于将所述报文的标识值与所述报文对应的发送端口的映射关系保存到预设的报文表项中。
可选的,所述预设的报文表项中还至少包括发送时间信息,则进一步包括:更新模块,用于根据所述发送时间信息和预设更新时长,更新所述预设的报文表项。
一种电子设备,包括:
至少一个存储器,用于存储计算机程序;
至少一个处理器,用于执行存储器中存储的计算机程序时实现上述任一种环路检测方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种环路检测方法的步骤。
本发明实施例中,接收到报文,则确定所述报文的标识值;根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;若确定所述预设的报文表项中记录有所述标识值的报文,则确定发生环路,丢弃所述报文,这样,记录已发送的报文的标识值,在接收到报文时,比较接收到报文与预先记录的已发送的报文是否相同,从而可以判断出是否发生环路,实现简单,并且可以针对交换机中任意端口进行检测,不需要提前指定待检测的端口,就可以确定是否发生网络环路,提高了效率,解决了因误操作等原因而出现网络环路,进而导致网络风暴的问题。
附图说明
图1为本发明实施例中一种环路检测方法的流程图;
图2为本发明实施例中发生环路的网络示意图;
图3为本发明实施例中环路检测装置结构示意图;
图4为本发明实施例中电子设备装置结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,可能会由于配置错误或误操作,发生网络环路,这对于未设置环协议的网络,会导致网络风暴,而瘫痪。例如,目前通常企业的办公网络都是树形网络,很少会组建成环网,并启动环协议,这是因为,企业的办公网络一般组网要求简单,对网络可靠性要求并不高,出现网络异常时,可以通过重启交换机设备,网络能恢复即可,能够容忍一定时间的网络故障。而环协议通常是应用于工业现场的设备网络,对网络和设备的可靠性要求非常高,即使某个网线或网口故障了,能立刻切换到另一个方向,保证网络的通畅,网络的异常时间都是在毫秒级的。
因此,本发明实施例中,主要针对未使用环协议的场景,例如非环状企业的办公网络应用场景,在该应用场景下,例如可能办公区域人较多,或者研发人员将自己的设备接入到办公网络,误操作导致网络成环,办公网络中若出现网络成环,但又未启动环协议,则会立刻出现网络风暴,导致办公网络瘫痪。这时,网络管理员并不知道发生误操作的人员,排查起来比较困难,效率也较低。
因此,本发明实施例中提供了一种新的环路检测方法,设置报文表项,记录发送的报文的标识值,和/或报文的标识值和对应的发送端口的映射关系,当交换机的某个端口接收到报文时,判断接收到的该报文是否记录在报文表项中,若记录有,则确定发生了网络环路,丢弃该报文。
并且,进一步地还可以判断记录的发送端口与接收到报文的端口是否不相同,若不相同,说明一个相同的报文从该交换机的某端口发出,又从该交换机的其它端口进入,则确定发生了网络环路,并且可以确定发生网络环路的端口,可以对交换机的任意端口进行检测,检测是否发生环路以及形成环路的端口,并且实现简单。
参阅图1所示,本发明实施例中,环路检测方法的具体流程如下:
步骤100:接收到报文,则确定报文的标识值。
通常交换机中包括多个端口,每个端口都可以收发报文,本发明实施例中,可以通过检测交换机的任意端口是否接收或发送报文,通过比较接收的报文和记录的发送的报文是否相同,来判断是否发生环路。
执行步骤100时,具体包括:
若确定接收到报文,则根据预设算法,确定该报文的标识值。
其中报文的标识值,可以为循环冗余校验(Cyclic Redundancy Check,CRC)值、哈希值、消息摘要算法第五版(Message Digest Algorithm,MD5)值等,本发明实施例中并不进行限制,只需唯一标识该报文即可,也可以认为是该报文的唯一性键值。
则基于标识值不同的形式,可以采用相应的预设算法,例如,CRC算法、哈希算法、MD5算法等。需要说明的是,确定报文的标识值时,是对报文中所有内容进行计算,不只是对报文的数据段。
进一步地,本发明实施例中,可以针对交换机接收到的每个报文,都计算其标识值,用于后续环路检测,为提高效率,本发明实施例中,还可以只针对可能会导致环路的报文,计算其标识值,例如未知单播报文或广播报文,具体地,本发明实施例中提供了一种可能的实施方式,在确定通过交换机的第一端口接收到报文之后,确定报文的标识值之前,还包括:确定报文为未知单播报文或广播报文;其中,未知单播报文表征交换机中未记录有相应的媒体接入控制(Media Access Control,MAC)地址表。
也就是说,本发明实施例中,可以只对收到的未知单播报文和广播报文,计算其标识值,不对已知单播报文进行计算,如果是已知单播报文,则不需要计算其标识值,这是因为,该类报文不会在环路中转发,针对该类报文,由于交换机已学习到该报文中的目的地址对应哪个端口,在每台交换机上已经建立了对应的MAC表项。因此,交换机知道其明确的发送端口,不会从交换机的每个端口都转发,已知单播报文只会从交换机的某一个口转发出去,即使网络成环路,这类报文在交换机也会正常转发,不会从所有端口转发,这样也不会产生网络风暴。而针对未知单播报文,虽然报文中有目的网络之间互连的协议(InternetProtocol,IP)地址和MAC地址,但是交换机还没有学习到该报文中的目的地址对应哪个端口,也就不确定从哪个端口转发该报文,因此,会从每个端口都转发该报文,这样如果网络形成环路,会产生从一个端口发又从该端口收到该报文的情况。并且,针对广播报文,广播报文是在全网广播,也会从交换机的每个端口转发出去,如果网络形成环路,则会产生从一个端口发又从该端口收到该报文的情况,形成网络风暴。
步骤110:根据确定出的标识值,在预设的报文表项中查找;其中,预设的报文表项中至少包括报文的标识值。
其中,本发明实施例中,预设的报文表项可以保存在交换机中,记录该交换机中发送的各报文的标识值,即报文表项中记录的报文表示已发送的报文。
进一步地,本发明实施例中,预设的报文表项中还包括报文的标识值和对应的发送端口的映射关系。
则相应地,提供了预设的报文表项的获得方式的两种情况:
第一种情况:发送报文时,则确定报文的标识值;在预设的报文表项保存报文的标识值。
第二种情况:发送报文时,则确定报文的标识值,并建立报文的标识值与报文对应的发送端口的映射关系;将报文的标识值与报文对应的发送端口的映射关系保存到预设的报文表项中。
进一步地,预设的报文表项中还至少包括发送时间信息,即预设的报文表项中每条记录均至少包括报文的标识值、报文对应的发送端口和发送时间信息。例如,参阅表1所示,为本发明实施例中的报文表项。
表1报文表项
其中,如表1所示,以标识值为CRC值为例,报文表项中包括报文的CRC值、报文的发送端口和发送时间戳,例如,报文的标识值为CRC1,其发送端口为Port1、发送时间戳为Time_1。
进一步地,考虑到网络规模和资源的限制,为减少资源占用,本发明实施例中还可以更新报文表项,具体地:根据发送时间信息和预设更新时长,更新预设的报文表项。
即可以设置每一条表项对应的预设更新时长,也可以称为老化时间,例如1毫米,并不进行限制,可以根据实际情况进行设置,根据发送时间信息,当某条表项达到预设更新时长后,则可以将该条表项删除,可以避免存储表溢出,减少资源占用。
本发明实施例中,交换机的端口在发送报文时,计算要发送的报文的标识值,并将计算的CRC值、报文的发送端口和发送时间戳建立一条表项,存储在交换机中。
这样,本发明实施例中,由于标识值可以唯一标识报文,通过标识值,查找接收到的报文是否记录在该交换机的报文表项中,即可以确认交换机当前接收到的报文,是否为该交换机发送出去的报文。
步骤120:若确定预设的报文表项中记录有该标识值的报文,则确定发生环路,丢弃该报文。
也就是说,本发明实施例中只要确定出接收到的报文记录在报文表项中,即确定接收到的报文为之前已发送的报文,则不论接收报文的端口和该报文对应的发送端口是否相同,都可以确定发生网络环路,并且丢弃该发生网络环路的报文,以防止发生网络风暴。
则进一步地,执行步骤120之后,本发明实施例中还可以判断报文表项中的发送端口和接收报文的端口是否相同,来确定发生网络环路的端口,具体地,可以分为以下两种情况:
第一种情况:判断预设的报文表项中记录的标识值对应的发送端口是否与接收报文的端口不相同;若确定不相同,则根据预设规则,从接收报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,将选择的一个端口的状态设置为阻塞状态,以使设置为阻塞状态的端口不进行收发报文。
也就是说,判断出交换机接收到的报文的端口,在该报文表项中记录有,但记录的发送端口与接收报文的端口不相同,说明该相同的报文,从交换机的一个端口发送出来,又从该交换机的另一个端口接收回来,则可以确定网络形成了环路,形成环路的端口可以判断为该接收报文对应的端口或报文表项中记录的该报文的发送端口。
其中,根据预设规则,从接收报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,具体包括:确定接收报文的端口和报文表项中记录的对应的发送端口的开始工作时间,选择其中开始工作时间较晚的端口,将开始工作时间较晚的端口设置为阻塞状态。
这是因为,通常开始工作的时间较晚的端口,发生误操作导致环路的可能性更大,其中,开始工作时间,例如为端口状态变为UP的时间,若两个端口其中一个端口变UP时间滞后,则可以将该UP时间滞后的端口的状态设置为阻塞状态。
也就是说,本发明实施例中,检测到发生环路后,针对发生环路的报文,即从该交换机发出又接收到的报文丢弃,避免该报文在网络中继续转发形成网络风暴,同时还需将形成环路的端口的逻辑状态设定为block(阻塞)状态,使得后续的报文不能通过该阻塞状态的端口进行收发,可以避免环形网络的网络风暴,这样即使出现了环路,也不会导致网络风暴而使网络瘫痪。
第二种情况:判断预设的报文表项中记录的标识值对应的发送端口是否与接收报文的端口不相同,若确定相同,则不能确定发生网络环路的端口,直接执行上述丢弃该报文的操作即可,这样也可以提高避免网络风暴的可靠性。
即若从预设的报文表项中查找到该报文的标识值,并且接收报文的端口与记录的发送端口相同,则同样丢弃该报文,这时不进行修改端口的状态,这是因为,若确定接收报文的端口与发送该报文的端口相同,则可以确定网络形成环路,但是该接收报文的端口并不是环端口,是连接在形成环路的网络之外的交换机的端口,因此,无法确定使哪个端口的状态修改为阻塞状态以保证网络不成环,因此,这时丢弃该从环路的网络转发的报文,但不修改端口的状态。
需要说明的是,本发明实施例中的环路检测方法,可以应用于二层网络,也可以应用于三层网络,本发明实施例中并不进行限制,对于类似问题均可以适用。
本发明实施例中,接收到报文,则确定报文的标识值;根据确定出的标识值,在预设的报文表项中查找;若确定预设的报文表项中记录有该标识值的报文,则确定发生环路,丢弃该报文,这样,通过报文表项中记录的已发送的报文,与接收到的报文进行比较,从而可以确定是否发生网络环路,可以对交换机的任意端口进行检测,无需提前设置指定端口,只要检测发送和接收的报文相同,就可以确定发生了环路,提高了效率,丢弃该报文,从而避免发生环路而导致网络风暴异常的问题。
下面采用具体的应用场景进行具体说明,基于上述实施例,以3个交换机为例,并以报文的标识值为CRC值为例,并且以报文表项中包括报文的标识值和对应的发送端口的映射关系为例进行说明,具体参阅图2所示,为本发明实施例中发生环路的网络示意图。
如图2所示,包括3个交换机,分别为交换机(switch)1、switch 2、switch 3,其中,switch1、switch 2、switch 3中分别包括3个端口,分别为端口1、端口2和端口3。
例如,假设这三台设备之前是链状网络,不存在环网,设备之间可以正常通讯。但可能由于人为误操作,将switch2的3号端口与switch3的1号端口用网线连了起来,导致出现环路。
下面基于图2的示意图,对本发明实施例中环路检测方法进行说明:
首先,若从switch2的端口2进入一个报文,则计算该报文的CRC值,在报文表项中进行查找,如果未查询到与该报文的CRC值相同的表项,并且,该报文的目的MAC地址不是本机,则将该报文从switch2的其它端口转发出去,在发送之前,根据该报文的CRC值和发送端口,建立一条表项,存储到报文表项中。例如,发送端口为switch2的端口1。
其中,若确定该报文的目的MAC地址是本机,则该报文不会再转发。
然后,若switch2的端口3接收到报文,则确定报文的标识值,并在预设的报文表项中查找,若确定预设的报文表项中记录有该标识值的报文,则判断预设的报文表项中记录的标识值对应的发送端口是否与端口3不相同,若确定不相同,则确定发生环路,确定端口3和记录的对应的发送端口为发生环路的端口,并丢弃该报文。
假如,该报文的目的MAC地址不是这三台设备的MAC地址,则从switch2的端口1转发出去的报文会从switch2的3端口再次接收进来。这时,switch2的端口3接收到该报文时,计算该报文的CRC值,查询报文表项,会查询到与该CRC值一致,端口号不同的一条表项,就可以判断出网络出现了环路,则可以直接将该报文丢弃,不再进行转发,并且由于该报文是从端口1发出,又从端口3进入,则判断端口1和端口3是环端口,即发生环路的端口。
进一步地,将端口1和端口3的其中一个端口的状态,设置为阻塞状态,例如,由于可以两个端口UP状态的时间,来确定阻塞哪个端口。例如,若端口3的状态的UP时间远滞后于端口1,则可以判定端口3是由于误操作,才出现了环路,这时,可以将端口3的逻辑状态设定为阻塞状态,以使后续的报文不能通过该端口3进行收发,就可以避免环网风暴。
进一步地,若确定从报文表项中查询到与该CRC值一致,端口号也相同,则同样丢弃报文,这时能确定网络形成环路,但是该端口并不是环端口,无法确定阻塞哪个端口使网络不成环,因此,这时只需丢弃该报文即可,防止该报文继续在网络中转发,造成网络风暴。
进一步地,预设的报文表项中每条表项记录在建立时,都会记录一个时间戳,会周期性刷新该报文表项,若确定某条表项的存在时间超过了老化时间,则该条表项就会删除。
基于上述实施例,参阅图3所示,本发明实施例中,环路检测装置具体包括:
第一确定模块30,用于接收到报文,则确定所述报文的标识值;
查找模块31,用于根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;
判断模块32,用于若确定所述预设的报文表项中记录有所述标识值的报文,则确定发生环路,丢弃所述报文。
可选的,接收到报文之后,确定所述报文的标识值之前,第一确定模块30进一步用于:
确定所述报文为未知单播报文或广播报文;其中,所述未知单播报文表征交换机中未记录有相应的媒体接入控制MAC地址表。
可选的,所述预设的报文表项中还包括报文的标识值和对应的发送端口的映射关系,则确定所述预设的报文表项中记录有所述标识值的报文之后,进一步包括:处理模块33,用于:
判断所述预设的报文表项中记录的所述标识值对应的发送端口是否与接收所述报文的端口不相同;
若确定不相同,则根据预设规则,从接收所述报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,将选择的一个端口的状态设置为阻塞状态,以使所述设置为阻塞状态的端口不进行收发报文。
可选的,针对所述预设的报文表项的获得方式,还包括:
第二确定模块34,用于发送报文时,则确定所述报文的标识值;
保存模块35,用于在所述预设的报文表项保存所述报文的标识值。
可选的,针对所述预设的报文表项的获得方式:
第二确定模块34,还用于发送报文时,则确定所述报文的标识值,并建立所述报文的标识值与所述报文对应的发送端口的映射关系;
保存模块35,还用于将所述报文的标识值与所述报文对应的发送端口的映射关系保存到预设的报文表项中。
可选的,所述预设的报文表项中还至少包括发送时间信息,则进一步包括:
更新模块36,用于根据所述发送时间信息和预设更新时长,更新所述预设的报文表项。
参阅图4所示,本发明实施例中,一种电子设备结构示意图。
本发明实施例提供了一种电子设备,该电子设备可以包括处理器410(CenterProcessing Unit,CPU)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器420可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器410提供存储器420中存储的程序指令和数据。在本发明实施例中,存储器420可以用于存储上述环路检测方法的程序。
处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行:
接收到报文,则确定所述报文的标识值;
根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;
若确定所述预设的报文表项中记录有所述标识值的报文,则确定发生环路,丢弃所述报文。
可选的,接收到报文之后,确定所述报文的标识值之前,处理器410进一步用于:确定所述报文为未知单播报文或广播报文;其中,所述未知单播报文表征交换机中未记录有相应的媒体接入控制MAC地址表。
可选的,所述预设的报文表项中还包括报文的标识值和对应的发送端口的映射关系,则确定所述预设的报文表项中记录有所述标识值的报文之后,处理器410进一步用于:
判断所述预设的报文表项中记录的所述标识值对应的发送端口是否与接收所述报文的端口不相同;
若确定不相同,则根据预设规则,从接收所述报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,将选择的一个端口的状态设置为阻塞状态,以使所述设置为阻塞状态的端口不进行收发报文。
可选的,针对所述预设的报文表项的获得方式,处理器410还用于:
发送报文时,则确定所述报文的标识值;
在所述预设的报文表项保存所述报文的标识值。
可选的,针对所述预设的报文表项的获得方式,处理器410还用于:
发送报文时,则确定所述报文的标识值,并建立所述报文的标识值与所述报文对应的发送端口的映射关系;
将所述报文的标识值与所述报文对应的发送端口的映射关系保存到预设的报文表项中。
可选的,所述预设的报文表项中还至少包括发送时间信息,则处理器410进一步用于:
根据所述发送时间信息和预设更新时长,更新所述预设的报文表项。
基于上述实施例,本发明实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的环路检测方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (7)
1.一种环路检测方法,其特征在于,包括:
接收到报文,则确定所述报文的标识值,其中,具体包括:若确定接收到报文,则根据预设算法,确定该报文的标识值;所述标识值为根据所述报文的全部报文内容确定出的,所述报文为二层报文;其中,接收到报文之后,确定所述报文的标识值之前,进一步包括:确定所述报文为未知单播报文或广播报文;其中,所述未知单播报文表征交换机中未记录有相应的媒体接入控制MAC地址表;
根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;
若确定所述预设的报文表项中记录有所述报文的标识值,则确定发生环路,丢弃所述报文,其中,所述预设的报文表项中还包括报文的标识值和对应的发送端口的映射关系,则确定所述预设的报文表项中记录有所述标识值的报文之后,进一步包括:判断所述预设的报文表项中记录的所述标识值对应的发送端口是否与接收所述报文的端口不相同;若确定不相同,则根据预设规则,从接收所述报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,将选择的一个端口的状态设置为阻塞状态,以使所述设置为阻塞状态的端口不进行收发报文,其中,根据预设规则,从接收报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,具体包括:确定接收报文的端口和报文表项中记录的对应的发送端口的开始工作时间,选择所述开始工作时间较晚的端口,将开始工作时间较晚的端口设置为阻塞状态。
2.如权利要求1所述的方法,其特征在于,所述预设的报文表项的获得方式为:
发送报文时,则确定所述报文的标识值;
在所述预设的报文表项保存所述报文的标识值。
3.如权利要求1所述的方法,其特征在于,所述预设的报文表项的获得方式为:
发送报文时,则确定所述报文的标识值,并建立所述报文的标识值与所述报文对应的发送端口的映射关系;
将所述报文的标识值与所述报文对应的发送端口的映射关系保存到预设的报文表项中。
4.如权利要求2或3所述的方法,其特征在于,所述预设的报文表项中还至少包括发送时间信息,则进一步包括:
根据所述发送时间信息和预设更新时长,更新所述预设的报文表项。
5.一种环路检测装置,其特征在于,包括:
第一确定模块,用于接收到报文,则确定所述报文的标识值,其中,第一确定模块具体用于:若确定接收到报文,则根据预设算法,确定该报文的标识值;所述标识值为根据所述报文的全部报文内容确定出的,所述报文为二层报文,其中,第一确定模块进一步用于:在接收到报文之后,确定所述报文的标识值之前,确定所述报文为未知单播报文或广播报文;其中,所述未知单播报文表征交换机中未记录有相应的媒体接入控制MAC地址表;
查找模块,用于根据确定出的标识值,在预设的报文表项中查找;其中,所述预设的报文表项中至少包括报文的标识值;
判断模块,用于若确定所述预设的报文表项中记录有所述报文的标识值,则确定发生环路,丢弃所述报文,其中,所述预设的报文表项中还包括报文的标识值和对应的发送端口的映射关系;所述装置进一步包括处理模块,所述处理模块用于:在确定所述预设的报文表项中记录有所述标识值的报文之后,判断所述预设的报文表项中记录的所述标识值对应的发送端口是否与接收所述报文的端口不相同;若确定不相同,则根据预设规则,从接收所述报文的端口和预设的报文表项中记录的对应的发送端口中选择一个,将选择的一个端口的状态设置为阻塞状态,以使所述设置为阻塞状态的端口不进行收发报文;处理模块还用于:确定接收报文的端口和报文表项中记录的对应的发送端口的开始工作时间,选择所述开始工作时间较晚的端口,将开始工作时间较晚的端口设置为阻塞状态。
6.一种电子设备,其特征在于,包括:
至少一个存储器,用于存储计算机程序;
至少一个处理器,用于执行存储器中存储的计算机程序时实现如权利要求1-4中任意一项所述方法的步骤。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-4中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811496825.1A CN109347705B (zh) | 2018-12-07 | 2018-12-07 | 一种环路检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811496825.1A CN109347705B (zh) | 2018-12-07 | 2018-12-07 | 一种环路检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347705A CN109347705A (zh) | 2019-02-15 |
CN109347705B true CN109347705B (zh) | 2021-03-30 |
Family
ID=65303369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811496825.1A Active CN109347705B (zh) | 2018-12-07 | 2018-12-07 | 一种环路检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347705B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445703B (zh) * | 2019-07-26 | 2021-05-07 | 新华三技术有限公司合肥分公司 | 环路报文拦截方法、转发设备及控制器 |
CN110635839B (zh) * | 2019-10-12 | 2021-08-03 | 四川安迪科技实业有限公司 | 卫星网络的广播剪枝方法及系统、接收方法及装置 |
CN111901234B (zh) * | 2020-08-12 | 2023-03-14 | 深圳市信锐网科技术有限公司 | 网络环路处理方法、系统及相关设备 |
CN112968846B (zh) * | 2021-02-02 | 2022-08-16 | 武汉迈威通信股份有限公司 | 一种交换机端口非法短接的检测系统 |
CN113783753B (zh) * | 2021-09-10 | 2022-08-16 | 北京云杉世纪网络科技有限公司 | 一种环路检测方法、装置、设备及存储介质 |
CN114500117B (zh) * | 2022-04-15 | 2022-07-05 | 北京全路通信信号研究设计院集团有限公司 | 基于环网风暴流量特征的环网Master配置错误判断方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100550770C (zh) * | 2006-05-25 | 2009-10-14 | 杭州华三通信技术有限公司 | 一种检测环路的方法及装置 |
CN101534226A (zh) * | 2009-04-14 | 2009-09-16 | 杭州华三通信技术有限公司 | 一种基于vlan的全网环路检测方法和环路检测设备 |
WO2011102086A1 (ja) * | 2010-02-19 | 2011-08-25 | 日本電気株式会社 | ループ検出装置、システム、方法およびプログラム |
CN101848121A (zh) * | 2010-06-09 | 2010-09-29 | 神州数码网络(北京)有限公司 | 一种基于多个vlan的端口环路自动检测和保护的方法 |
CN102045218B (zh) * | 2010-12-07 | 2012-11-07 | 成都市华为赛门铁克科技有限公司 | 一种环路检测方法及防火墙设备 |
CN105933180A (zh) * | 2016-04-12 | 2016-09-07 | 上海斐讯数据通信技术有限公司 | 一种基于交换机的环路检测方法及环路检测装置 |
CN107872370A (zh) * | 2017-12-27 | 2018-04-03 | 广州芯德通信科技股份有限公司 | 一种以太网接口环路快速检测方法 |
-
2018
- 2018-12-07 CN CN201811496825.1A patent/CN109347705B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109347705A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347705B (zh) | 一种环路检测方法及装置 | |
US10764085B2 (en) | Loop failure handling method and switch | |
US8064353B2 (en) | Communication device, communication system, and communication fault detection method | |
WO2018050120A1 (zh) | 主备伪线pw切换 | |
US10404570B2 (en) | Automatically detecting an error in a communication and automatically determining a source of the error | |
CN105391629A (zh) | 一种资源备份的方法及装置 | |
CN109495311B (zh) | 一种网络故障检测方法及装置 | |
US11063859B2 (en) | Packet processing method and network device | |
US12009967B2 (en) | Communications methods and apparatus for minimizing and/or preventing message processing faults | |
CN107453995B (zh) | 一种指定路由器选举方法、装置、路由器及通信系统 | |
CN103795577A (zh) | 日志服务器处理日志的方法和装置 | |
CN110336728B (zh) | 一种报文处理方法、节点设备、电子设备和可读存储介质 | |
CN109361781B (zh) | 报文转发方法、装置、服务器、系统及存储介质 | |
CN116185598A (zh) | 地址处理方法、装置、电子设备及可读存储介质 | |
CN109327462B (zh) | 一种基于l2vpn网络的mac地址认证方法 | |
CN108933696B (zh) | Oam配置协商方法、装置、管理实体及存储介质 | |
EP3499801B1 (en) | Preventing failure processing delay | |
CN112737957A (zh) | 流表的老化方法及装置 | |
WO2015120581A1 (en) | Traffic loop detection in a communication network | |
CN106453221B (zh) | 报文检测的方法及设备 | |
CN110011914B (zh) | 管理报文的转发方法及装置 | |
CN115002020B (zh) | 基于ospf的数据处理方法及装置 | |
CN114157555B (zh) | 一种访问信息同步方法 | |
CN110995463B (zh) | Ap自恢复的方法及装置 | |
CN114143254A (zh) | 报文转发方法、装置、电子设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |