CN112702226B - 环路检测方法、装置、设备及计算机可读存储介质 - Google Patents

环路检测方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112702226B
CN112702226B CN202011486782.6A CN202011486782A CN112702226B CN 112702226 B CN112702226 B CN 112702226B CN 202011486782 A CN202011486782 A CN 202011486782A CN 112702226 B CN112702226 B CN 112702226B
Authority
CN
China
Prior art keywords
port
loop
target
detection
equipment
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
Application number
CN202011486782.6A
Other languages
English (en)
Other versions
CN112702226A (zh
Inventor
安兆哲
王富涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202011486782.6A priority Critical patent/CN112702226B/zh
Publication of CN112702226A publication Critical patent/CN112702226A/zh
Application granted granted Critical
Publication of CN112702226B publication Critical patent/CN112702226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/12Network monitoring probes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本申请提供了一种环路检测方法,该方法包括:若预测目标设备上存在环路,则在目标设备的至少一个设备端口上发送探测报文,用以检测目标设备上的环路;若未检测到环路,则需要做进一步探测,即,当目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值、且此现象的持续时间大于第一预设时长时,在目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测目标设备上的环路。可见,本申请实施例会监测目标设备的流量状态,当设备端口的带宽利用率较高时,可以增加探测报文的发包数量,以提升探测报文能够被目标设备接收的几率,从而能够及时有效的发现网络环路。

Description

环路检测方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及通信技术领域,特别涉及一种环路检测方法、装置、设备及计算机可读存储介质。
背景技术
在规模较大的局域网网络环境中,由于网络设备配置不当、网络设备硬件损坏、网络拓扑连接错误、网络遭遇病毒攻击等原因,容易造成网络环路的情况发生。网络环路会导致网络设备对广播、组播及未知单播报文不断地复制与转发,从而造成网络瘫痪,影响正常业务。
目前,为了检测网络环路,网络设备可以主动发送探测报文,当网络设备收到自己发送的探测报文时,便识别出网络设备上存在网络环路。但是,当发生网络环路时,网络内的流量可能会将网络设备的带宽占满,此时,环路探测报文可能因带宽问题被网络设备直接丢包,从而导致不能检测到网络环路。
发明内容
有鉴于此,本申请提供了一种环路检测方法、装置、设备及计算机可读存储介质,能够及时有效的检测出网络环路。
具体地,本申请是通过如下技术方案实现的:
一种环路检测方法,包括:
若预测目标设备上存在环路,则在所述目标设备的至少一个设备端口上发送探测报文,用以检测所述目标设备上的环路;
若未检测到环路,则当所述目标设备出现第一现象且所述第一现象的持续时间大于第一预设时长时,在所述目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测所述目标设备上的环路;
其中,所述第一现象为所述目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值。
一种环路检测装置,包括:
第一探测单元,用于若预测目标设备上存在环路,则在所述目标设备的至少一个设备端口上发送探测报文,用以检测所述目标设备上的环路;
第二探测单元,用于若未检测到环路,则当所述目标设备出现第一现象且所述第一现象的持续时间大于第一预设时长时,在所述目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测所述目标设备上的环路;
其中,所述第一现象为所述目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值。
一种电子设备,包括:处理器、存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于通过调用所述计算机程序,执行上述环路检测方法。
一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述环路检测方法。
在以上本申请提供的技术方案中,若预测目标设备上存在环路,则在目标设备的至少一个设备端口上发送探测报文,用以检测目标设备上的环路;若未检测到环路,则需要做进一步探测,即,当目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值、且此现象的持续时间大于第一预设时长时,在目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测目标设备上的环路。可见,本申请实施例会监测目标设备的流量状态,当设备端口的带宽利用率较高时,可以增加探测报文的发包数量,以提升探测报文能够被目标设备接收的几率,从而能够及时有效的发现网络环路。
附图说明
图1为本申请示出的一种环路检测方法的流程示意图;
图2为本申请示出的第二现象确定示例的流程示意图;
图3为本申请示出的环路探测流程示意图;
图4为本申请示出的一种环路检测装置的组成示意图;
图5为本申请示出的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在介绍本申请实施例之前,首先对本申请实施例涉及的技术术语进行介绍。
VLAN:虚拟局域网(Virtual Local Area Network,简称VLAN),是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。
VLAN Trunk:虚拟局域网中继技术,是指能让连接在不同交换机上的相同VLAN中的主机互通。
MAC地址:Media Access Control Address,直译为媒体存取控制位址,也称为局域网地址(LAN Address)、MAC位址、以太网地址(Ethernet Address)或物理地址(PhysicalAddress),它是一个用来确认网络设备位置的位址。
在现有的环路检测方法中,网络设备可以主动发送探测报文,当网络设备收到自己发送的探测报文时,便识别出网络设备上有环路。但是,当发生网络环路时,网络内的流量可能会将网络设备的带宽占满,此时,环路探测报文可能因带宽问题被网络设备直接丢包,从而导致不能检测到网络环路,也就是说,当实际存在网络环路时,环路内可能会出现大量报文,这些报文会将网络设备的收包队列、转发队列占满,导致环路探测报文被丢包,即,环路探测报文不能准确返回网络设备,从而影响对网络环路的正确判断。
为了解决上述技术问题,本申请实施例提供了一种环路检测方法,该方法可以基于网络设备的流量状态,及时有效的发现网络环路。此外,该方法的执行主体可以是上述的网络设备,例如,该网络设备可以是交换机;该方法的执行主体也可以是能够控制网络设备的服务器。
参见图1,为本申请实施例提供的一种环路检测方法的流程示意图,该方法包括以下步骤S101-S102:
S101:若预测目标设备上存在环路,则在目标设备的至少一个设备端口上发送探测报文,用以检测目标设备上的环路。
在本申请实施例中,将可能存在网络环路的网络设备,定义为目标设备。
可以先对目标设备上是否存在网络环路进行预测,如果预测结果显示目标设备上可能存在网络环路,则通过在目标设备的一个或多个设备端口上发送环路探测报文,来确定目标设备上是否实际存在网络环路。
在本申请实施例的一种实现方式中,S101中的“预测目标设备上存在环路”,具体可以包括:当确定目标设备出现第二现象、和/或确定目标设备出现第三现象时,预测目标设备存在环路,其中,第二现象是根据目标设备的接收报文所携带的源MAC地址以及该报文所属的VLAN确定的,而第三现象是根据目标设备的设备端口的带宽利用率确定的。
下面对第二现象和第三现象的确定方式进行介绍。
在本实现方式中,可以采用下述方式确定目标设备上是否出现第二现象:
若目标设备在两个不同端口接收到两条报文、且两个不同端口的接收时间间隔小于预设时间阈值、以及该两条报文携带了相同的源MAC地址且该两条报文属于同一VLAN,则使端口切换次数加一,否则,使该端口切换次数清零;若该端口切换次数的累加次数达到预设次数,则确定目标设备出现第二现象。
具体来讲,第二现象可以理解为目标设备在不同端口频繁接收到具体相同源MAC地址和VLAN的报文。
当目标设备先后接到两条报文时,为便于区分,将在前接收的报文定义为报文1,将在后接收的报文定义为报文2。当接收到报文1时,对报文1进行解析,以解析得到报文1携带的源MAC地址以及报文1所属的VLAN,可以将解析得到的源MAC地址和VLAN为主键建立表项,使该表项对应报文1;同理,当接收到报文2时,对报文2进行解析,以解析得到报文2携带的源MAC地址以及报文2所属的VLAN,可以将解析得到的源MAC地址和VLAN为主键建立表项,使该表项对应报文2。
假设报文1的入接口是端口1、报文2的入接口是端口2,并且,端口1和端口2是目标设备上的不同端口。当目标设备的端口1接收到报文1时,记录报文1对应的接收时间T1,当目标设备的端口2接收到报文2时,记录报文2对应的接收时间T2。如果报文1和报文2对应的表项内容相同(即,从报文1和报文2解析得到的源MAC地址和VLAN均相同)、且报文1的接收时间T1与报文2的接收时间T2之间的时间间隔较小,则认为报文1和报文2很可能是网络环路上的相同报文。
需要说明的是,关于满足上述情况的报文1和报文2,这两条报文可以是目标设备接收的两条相邻报文,也可以不是相邻报文(即,目标设备在这两条报文之间还接收了其它报文)。
其中,如果接收时间T1与接收时间T2之间的时间间隔小于预设时间阈值T,即T2-T1小于T,则认为报文1和报文2之间的接收时间间隔较小,反之,则认为报文1和报文2之间的接收时间间隔较大。需要说明的是,本申请实施例不对“预设时间阈值”的时长进行限定,比如,该预设时间阈值为0.2秒。
可以预先指定一个参数,该参数为端口切换次数,在进行环路预测之前,可以将该端口切换次数的数值初始化为0。基于此,如果上述的接收时间T1与接收时间T2之间的时间间隔小于预设时间阈值,则端口切换次数加1,反之,如果接收时间T1与接收时间T2之间的时间间隔不小于预设时间阈值,则将端口切换次数清零。当端口切换次数的累加值为预设次数时,则预测结果为“目标设备上可能存在环路”,即,预测目标设备上存在环路。需要说明的是,本申请实施例不对“预设次数”的大小进行限定,比如,该预设次数为5次。
例如,参见图2所示的第二现象确定示例的流程示意图,包括以下步骤:
S201:目标设备接收报文流量;
S202:解析每条报文携带的源MAC地址以及每条报文所属的VLAN;
S203:当报文1和报文2的源MAC地址和VLAN均相同、且报文1和报文2的入接口不同时,判断报文1和报文2的接口接收时间间隔是否小于0.2;若是,则执行S204;若否,则执行S205;
S204:使端口切换次数加1;
S205:使端口切换次数清零;
S206:判断端口切换次数是否大于5,若是,则确定出现第二现象;若否,则确定没有出现第二现象。
在本实现方式中,可以采用下述方式确定目标设备上是否出现第三现象:
当目标设备出现第一现象且第一现象的持续时间大于第三预设时长时,确定目标设备出现第三现象,其中,第一现象为目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值,本申请实施例不对第一带宽阈值的大小进行限定,比如,第一带宽阈值为95%。其中,这里的第三预设时长,可以与后续步骤S102中的第一预设时长相同或不同。
具体来讲,第三现象可以理解为目标设备的某个或某些端口的带宽利用率过高的一种现象。为了确定是否出现第三现象,可以通过统计目标设备的各个设备端口的收发包速率,来确定各个端口的带宽利用率,当某个或某些设备端口的带宽利用率大于各自对应的第一带宽阈值(即第一现象)时,比如,当某设备端口的收发包速率超过该设备端口最大带宽的95%时,则认为出现了带宽利用率过高的第三现象。
可见,本申请实施例可以根据报文中携带的MAC、VLAN信息、报文入接口,和/或,设备端口收发包速率,预测网络形成环路的可能性。
在本申请实施例中,当确定目标设备出现了上述第二现象和/或第三现象时,则认为目标设备上可能存在环路,此时,立即在目标设备上发送环路探测报文,这样可以及时检测目标设备上是否真的存在环路。
在本申请实施例的一种实现方式中,S101中的“在目标设备的至少一个设备端口上发送探测报文”,具体可以包括:
步骤A:按照预设时间间隔,在目标设备的每一设备端口上发送探测报文。
目标设备在启动环路探测后,可以按照预设时间间隔,比如每隔1小时,基于每个端口所属的VLAN,从每个端口发送环路探测报文。需要说明的是,同一个端口可能属于一个或多个VLAN,那么,该端口可以基于其所属的每个VLAN均发送探测报文。
当目标设备收到自己发送的探测报文时,便识别出有网络环路。但是,由于目标设备是按照预设时间间隔发送探测报文,如果间隔时间短,目标设备会一直发送探测报文,影响目标设备对正常业务流量的转发处理,而且,网络中探测报文过多,会导致网络拥堵,影响正常业务;如果间隔时间长,当网络中存在环路时,将不能及时发现环路,而且,在环路出现期间,可能会出现断网的情况。
故而,可以将步骤A中的预设时间间隔设定的长一些,比如1小时,以避免因网络中探测报文过多所导致的网络拥堵、影响正常业务的情况发生,但为了能够及时的发现网络环路,可以在步骤A的执行过程中,同时执行步骤B。
步骤B:在按照预设时间间隔发送探测报文的期间,若预测到属于环路上的设备端口,则在该设备端口上新增发送探测报文。
目标设备可以根据流量监控预测环路机制,当预测网络中有环路时,从特定端口基于VLAN发送环路探测报文。
具体来讲,本申请实施例需要实时地对目标设备接收的报文进行检测,以对目标设备是否出现上述的第二现象和/或第三现象进行确定。在第二现象中,当具有相同源MAC地址和VLAN的报文被目标设备的不同端口接收、且接收时间间隔较短时,这些端口可能是网络环路上的端口,因此,可以在这些端口上发送探测报文;在第三现象中,当确定目标设备的某个或某些端口的带宽利用率过高时,这些端口也可能是网络环路上的端口,因此,可以在这些端口上发送探测报文。
需要说明的是,在从特定端口发送探测报文时,可以选择从第二现象和/或第三现象涉及的端口发送探测报文,在检测到出现上述现象涉及的端口时,可以及时基于该端口所属的VLAN发送环路探测报文。
在本申请实施例中,可以采用上述步骤A和步骤B的结合方式发送探测报文,也可以仅按照步骤A的方式发送探测报文、或者仅按照步骤B中的“若预测到属于环路上的设备端口,则在该设备端口上发送探测报文”的方式发送探测报文。
关于采用步骤A和步骤B的结合方式发送探测报文的方案,需要说明的是,在执行后续步骤S102之前,需要始终按照预设时间间隔发送探测报文(即步骤A),在此期间,如果出现属于预测环路上的特定端口,则需要立即在该特定端口上发送探测报文,但不影响步骤A的执行。
在本申请实施例的一种实现方式中,步骤A中的“按照预设时间间隔,在目标设备的每一设备端口上发送探测报文”,具体可以包括:
按照预设时间间隔,确定目标设备的每一设备端口对应的各个目标VLAN,其中,该目标VLAN是对应设备端口所接收到的历史报文流量所属的VLAN;基于当前确定的每一设备端口对应的各个目标VLAN,在每一设备端口上发送探测报文。
在本实现方式中,由于目标设备的上行口一般配置trunk VLAN 1-4094,实际应用中仅使用其中的几个VLAN,若基于全部VLAN发送探测报文,将导致目标设备发送大量无意义报文,并且占用了目标设备的发包资源。为此,在采用上述步骤A发送探测报文时,对于目标设备的每一设备端口,本申请实施例仅在该设备端口所属的一个或几个VLAN发送探测报文,具体来讲,目标设备可以采用下述方式发送探测报文:
关于目标设备的每一设备端口,该设备端口可以属于一个或多个VLAN,可以创建该设备端口所属VLAN的位图,每个VLAN可以占1bit位,当该设备端口收到报文流量时,记录该设备端口收到的报文所属的VLAN,使该VLAN的对应位置为1。具体地,可以基于该设备端口接收到的历史报文流量对该设备端口的VLAN位图进行实时更新,例如,当该设备端口接收到一条报文、且该条报文所属的VLAN在VLAN位图中的对应位置为0时,则使该VLAN的对应位置改为1;此外,对于标识为1的VLAN,可能长时间没有属于该VLAN的报文流量,故而,可以预设一个时长参数(比如1天),如果在该预设时长内没有属于该VLAN的报文流量,则使该VLAN的对应位置为0。
关于目标设备的每一设备端口,当需要按照预设时间间隔从该设备端口发送探测报文时,可以根据该设备端口的VLAN位图发送探测报文,具体地,可以按照预设时间间隔查询该设备端口对应的VLAN位图,对于当前查询到的结果,即VLAN位图中的属于该设备端口的具有标识为“1”的每一VLAN(即目标VLAN),可以基于这些目标VLAN在该设备端口上发送探测报文。可见,对于该设备端口上不常用的VLAN,可以不必在该设备端口上基于该VLAN发送探测报文,这样,可以避免目标设备发送大量无意义报文,从而降低了对目标设备的发包资源的占用。
其中,探测报文可以采用自定义格式,比如:
Version:版本号;
Order:报文类型;
Vlan_id:报文发包的VLAN;
Serial:序列号;
Ifindex:报文发包的端口号;
Mac:目标设备MAC地址。
在本申请实施例中,当目标设备收到自己发送的环路探测报文后,便识别出网络中存在环路,此时,记录环路发生VLAN、位置,根据探测报文中的Ifindex与收到报文的端口,告警环路发生位置,其中,环路发生位置即为目标设备。
如果采用上述步骤S101没有检测到环路,则执行下面步骤S102。
S102:若未检测到环路,则当目标设备出现第一现象且第一现象的持续时间大于第一预设时长时,在目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测目标设备上的环路。
在S102中,可以在目标设备的全部设备端口上发送探测报文、且增加探测报文的发包数量,也可以在目标设备的一个或多个设备端口上发送探测报文、且增加探测报文的发送数量。其中,对于仅在一个设备端口上发送探测报文的情况,这里举例说明,假设端口1属于目标设备,并假设端口2、端口3和端口4属于另一设备,当端口3和端口4形成一个网络环路时,该网络环路上的报文会经过端口2发送到端口1,从而导致端口1的带宽利用率大于第一带宽阈值,这时,需要在端口1上增加探测报文的发包数量。
其中,第一现象为目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值,第一现象的相关介绍请参见上述S101中的相关内容,此处不再赘述。
在本申请实施例中,可以采用下述方式增加探测报文的发包数量:
可以预设不同的带宽利用率范围与不同的发包数量之间的对应关系,基于此,当目标设备的某一端口的带宽利用率满足第一现象且该第一现象的持续时间大于第一预设时长时,则确定该端口的带宽利用率所属的带宽利用率范围,然后,采用该范围对应的发包数量,在该端口上发送探测报文。例如,假设有两个带宽利用率范围,一个带宽利用率范围为[90%~95%],其对应的发包数量为100,另一个带宽利用率范围为[96%~100%],其对应的发包数量为200,当目标设备的端口1的带宽利用率为96%,则在端口1发送数量为200的探测报文。
当第一次在上述端口发送一定数量的探测报文后,待预设时长(比如1分钟)后,如果没有检测到环路,则继续基于该端口的带宽利用率发送探测报文,如此反复,当发送预设次数(比如3次)后,若检测到环路,则停止环路探测,反之,若仍未检测到环路,则可以执行后续S301的端口阻塞方式以继续探测。
其中,在每一次发送一定数量的探测报文时,第一种方式是基于端口的带宽利用率所属的范围发送对应数量的探测报文;第二种方式是在第一种方式确定的对应数量的基础上,乘以一个预设系数,该系数大于1,并以相乘结果对应的数量发送探测报文。在第二种处理方式中,举例说明:
基于上述两个带宽利用率范围,当目标设备的端口1的带宽利用率为94%,则在端口1发送数量为100的探测报文,完成第一次发送;待预设时长后没有检测到环路后,当端口1的带宽利用率为93%,则在端口1发送数量为100*k1的探测报文,完成第二次发送;待预设时长后没有检测到环路后,当端口1的带宽利用率为96%,则在端口1发送数量为200*k2的探测报文,完成第三次发送,……其中,每一次采用的预设系数可以相同或不同,即k1和k2可以相同或不同。
当目标设备上出现环路时,环路内会出现大量报文,这些报文将目标设备的收包队列、转发队列占满,导致环路探测报文被丢包,不能准确返回目标设备,影响环路的判断,所以,在预测存在环路、并且现象持续存在时,需主动增加环路探测报文的发包数量,以进一步探测环路是否存在。
可以理解的是,当增加探测报文的发包数量后,由于探测报文较多,大概率上有些探测报文不会被丢包,因此,当这些不被丢包的探测报文被目标设备自己接收时,则可以确定目标设备存在环路。
在本申请实施例的一种实现方式中,S102中的“在目标设备的至少一个设备端口上增加探测报文的发包数量”,具体可以包括:在目标设备的至少一个端口组合上,增加探测报文的发包数量,其中,端口组合包括第一端口和第二端口,第一端口和第二端口为预测环路中的两个端口。
在本实现方式中,需要采用步骤S101实时地对上述第二现象进行检测,例如,当检测到上述相同源MAC地址和VLAN对应的报文1和报文2时,报文1和报文2的两个不同接收端口即一个端口组合,可以将报文1的接收端口作为第一端口、将报文2的接收端口作为第二端口,反之,也可以将报文2的接收端口作为第一端口、将报文1的接收端口作为第二端口。
由于可能存在一个或多个端口组合,可以在这些端口组合所涉及的各个端口上发送探测报文,并且,在这些端口上的发包数量,要多于步骤S101的发包数量。例如,当S101中的步骤A是每1小时发送一次探测报文,而这里可以每1分钟发送一次探测报文。
在本申请实施例中,对于每一端口组合,若基于该端口组合接收的报文流量确定的该端口组合为预测环路中的两个端口,则确定该端口组合所接收的报文流量所属的VLAN;基于此,在上述S102的具体实现方式中,即“在目标设备的至少一个端口组合上,增加探测报文的发包数量”,具体可以包括:基于确定的VLAN,在该端口组合上增加探测报文的发包数量。
具体来讲,这里以两个端口满足第二现象为例进行说明:在预测目标设备上是否存在环路时,如果存在两个端口满足第二现象,则这两个端口即构成一个端口组合,由于该端口组合中的两个端口所接收的报文流量属于同一VLAN,因此,当获知该端口组合所接收的报文流量所属的VLAN后,可以基于该VLAN,在该端口组合上增加探测报文的发包数量,而不是在该端口组合的所有VLAN上发送探测报文,这样,可以避免在目标设备上发送大量无意义的报文,从而降低设备的发包资源。
需要说明的是,在增加探测报文的过程中,可以采用为此预设的各个收发包队列的优先级、或者采用默认设置的队列优先级,在各个队列上进行探测报文的增包发送,即,先在优先级高的队列上发送探测报文、再在优先级低的队列上发送探测报文,这样,可以增大探测报文的收发包几率;同样的,也先在优先级高的队列上接收探测报文、再在优先级低的队列上接收探测报文。
进一步地,在本申请实施例中,当增加报文数量仍不能发现环路时,可以对端口进行阻塞操作,并重新发送探测报文,以验证是否有环路。具体地,参见图3所示的环路探测流程示意图,在步骤S102之后,还可以包括以下步骤S301-S303:
S301:若通过增加发包数量的方式无法确定目标设备上存在环路,则判断目标设备上是否存在至少两个设备端口的带宽利用率在第二预设时长内大于上述第一带宽阈值,其中,这里的两个设备端口包括第三端口和第四端口。
其中,S301中的“无法确定目标设备上存在环路”,具体可以包括:若在第一端口和第二端口发送了预设探测次数的探测报文、且仍未检测到环路,则表明通过增加发包数量的方式无法确定目标设备上存在环路。
具体来讲,当预测目标设备上存在环路(即环路探测标记为“真”)后,采用增加发包数量的方式进行环路探测,比如,在第一端口和第二端口以每1分钟为间隔发送一次探测报文。在此过程中,当在探测时间1发送探测报文后,如果在1分钟内没有检测到环路,则在探测时间2再次发送探测报文,并使实际探测次数加1,其中,探测时间2与探测时间1之间间隔1分钟;按此方式,如果实际探测次数的累加值达到预设探测次数,说明在第一端口和第二端口均发送了预设探测次数的探测报文、但仍未检测到环路,此时,则认为无法通过增加发包数量的方式检测到环路;其中,本申请实施例不对“预设探测次数”的大小进行限定,比如,该预设探测次数为10。
在本申请实施例中,当通过增加发包数量的方式无法确定目标设备上存在环路时,需要进一步判断目标设备上是否存在两个或两个以上的设备端口的带宽利用率大于第一带宽阈值、且此现象的持续时间大于第三预设时长,如果存在,则采用端口阻塞的方式继续探测环路。其中,这里的第三预设时长,可以与上述第一预设时长、第二预设时长相同或不同。
S302:若是,则禁止在第三端口发送报文、且允许在第四端口发送探测报文。
在本申请实施例中,如果增加探测报文的发包数量后仍无法检测到环路,且步骤S301的判断结果为是,为了便于描述,将满足判断条件的其中两个端口定义为第三端口和第四端口。需要说明的是,这里的第三端口与第四端口,可能与上述的第一端口和第二端口相同或不同。
可以阻塞第三端口,使第三端口不再发送任何报文,只在第四端口发送探测报文,这样,选择其中一个端口发送探测报文,可以减少报文流量,降低探测报文的丢包几率。需要说明的是,在禁止第三端口发送报文的时间段内,是允许第三端口接收报文的,即,在阻塞第三端口进行发包的情况下,第三端口还是可以正常收包的。
S303:若第三端口接收到第四端口发送的探测报文,则确定目标设备上存在环路。
进一步地,若第三端口在预设时长内未接收到第四端口发送的探测报文,则允许在第三端口发送报文,并确定目标设备上不存在环路。
具体来讲,从第四端口发送探测报文后,开始计时,如果第三端口在预设时长内(比如1分钟内)接收到了第二端口发送的探测报文,则证明目标设备上已发生环路,此时,可以解除在第三端口上的阻塞配置(即允许在第三端口发送报文),并进行目标设备发生网络环路的告警。但是,如果证明没有环路,则解除在第三端口上的阻塞配置,并为目标设备设置环路探测标记为“假”,以表明目标设备没有发生环路。当环路探测标记为“假”时,可以每1分钟发送一次探测报文,不再增加探测次数。
进一步地,本申请实施例还需要对目标设备上的预测环路进行定时检测,也就是说,对于预测发生的环路,设置环路恢复探测标记,此时,在目标设备上发送探测报文并记录探测时间,如果目标设备在预设时间内(比如1分钟)没有收到探测报文,则判断不存在环路。
在以上本申请实施例提供的环路检测方法中,若预测目标设备上存在环路,则在目标设备的至少一个设备端口上发送探测报文,用以检测目标设备上的环路;若未检测到环路,则需要做进一步探测,即,当目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值、且此现象的持续时间大于第一预设时长时,在目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测目标设备上的环路。可见,本申请实施例会监测目标设备的流量状态,当设备端口的带宽利用率较高时,可以增加探测报文的发包数量,以提升探测报文能够被目标设备接收的几率,从而能够及时有效的发现网络环路。
参见图4,为本申请实施例提供的一种环路检测装置的组成示意图,该装置包括:
第一探测单元410,用于若预测目标设备上存在环路,则在所述目标设备的至少一个设备端口上发送探测报文,用以检测所述目标设备上的环路;
第二探测单元420,用于若未检测到环路,则当所述目标设备出现第一现象且所述第一现象的持续时间大于第一预设时长时,在所述目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测所述目标设备上的环路;
其中,所述第一现象为所述目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值。
在本申请实施例的一种实现方式中,第二探测单元420,具体用于:
在所述目标设备的至少一个端口组合上,增加探测报文的发包数量;
其中,所述端口组合包括第一端口和第二端口,所述第一端口和所述第二端口为预测环路中的两个端口。
在本申请实施例的一种实现方式中,所述装置还包括:
局域网确定单元,用于对于每一端口组合,若基于该端口组合接收的报文流量确定的该端口组合为预测环路中的两个端口,则确定该端口组合所接收的报文流量所属的虚拟局域网VLAN;
则,第二探测单元420,具体用于:
基于确定的VLAN,在该端口组合上增加探测报文的发包数量。
在本申请实施例的一种实现方式中,所述装置还包括第三探测单元,用于:
若通过增加所述发包数量的方式无法确定所述目标设备上存在环路,则判断所述目标设备上是否存在至少两个设备端口的带宽利用率在第二预设时长内大于所述第一带宽阈值,其中,所述两个设备端口包括第三端口和第四端口;
若是,则禁止在所述第三端口发送报文、且允许在所述第四端口发送探测报文;
若所述第三端口接收到所述第四端口发送的探测报文,则确定所述目标设备上存在环路。
在本申请实施例的一种实现方式中,第一探测单元410,具体用于:
当确定所述目标设备出现第二现象、和/或确定所述目标设备出现第三现象时,预测所述目标设备存在环路;
其中,若所述目标设备在两个不同端口接收到两条报文、且所述两个不同端口的接收时间间隔小于预设时间阈值、以及所述两条报文携带了相同的源MAC地址且所述两条报文属于同一虚拟局域网VLAN,则使端口切换次数加一,否则,使所述端口切换次数清零;若所述端口切换次数的累加次数达到预设次数,则确定所述目标设备出现第二现象;
其中,当所述目标设备出现所述第一现象且所述第一现象的持续时间大于第三预设时长时,确定所述目标设备出现第三现象。
在本申请实施例的一种实现方式中,第一探测单元410,具体用于:
按照预设时间间隔,在所述目标设备的每一设备端口上发送探测报文;
在按照所述预设时间间隔发送探测报文的期间,若预测到属于环路上的设备端口,则在该设备端口上新增发送探测报文。
在本申请实施例的一种实现方式中,第一探测单元410,具体用于:
按照预设时间间隔,确定所述目标设备的每一设备端口对应的各个目标VLAN,所述目标VLAN是对应设备端口所接收到的历史报文流量所属的VLAN;
基于当前确定的每一设备端口对应的各个目标VLAN,在每一设备端口上发送探测报文。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请实施例还提供了一种电子设备,该电子设备的结构示意图如图5所示,该电子设备5000包括至少一个处理器5001、存储器5002和总线5003,至少一个处理器5001均与存储器5002电连接;存储器5002被配置用于存储有至少一个计算机可执行指令,处理器5001被配置用于执行该至少一个计算机可执行指令,从而执行如本申请中任意一个实施例或任意一种可选实施方式提供的任意一种环路检测方法的步骤。
进一步,处理器5001可以是FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其它具有逻辑处理能力的器件,如MCU(Microcontroller Unit,微控制单元)、CPU(Central Process Unit,中央处理器)。
应用本申请实施例,监测目标设备的流量状态,当设备端口的带宽利用率较高时,可以增加探测报文的发包数量,以提升探测报文能够被目标设备接收的几率,从而能够及时有效的发现网络环路。
本申请实施例还提供了另一种计算机可读存储介质,存储有计算机程序,该计算机程序用于被处理器执行时实现本申请中任意一个实施例或任意一种可选实施方式提供的任意一种环路检测方法的步骤。
本申请实施例提供的计算机可读存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(RandomAccess Memory,随即存储器)、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
应用本申请实施例,监测目标设备的流量状态,当设备端口的带宽利用率较高时,可以增加探测报文的发包数量,以提升探测报文能够被目标设备接收的几率,从而能够及时有效的发现网络环路。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种环路检测方法,其特征在于,包括:
若预测目标设备上存在环路,则在所述目标设备的至少一个设备端口上发送探测报文,用以检测所述目标设备上的环路;
若未检测到环路,则当所述目标设备出现第一现象且所述第一现象的持续时间大于第一预设时长时,在所述目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测所述目标设备上的环路;增加探测报文的发包数量的设备端口是带宽利用率大于第一带宽阈值的设备端口,或者是属于预测环路中的设备端口;
其中,所述第一现象为所述目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标设备的至少一个设备端口上增加探测报文的发包数量,包括:
在所述目标设备的至少一个端口组合上,增加探测报文的发包数量;
其中,所述端口组合包括第一端口和第二端口,所述第一端口和所述第二端口为预测环路中的两个端口。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对于每一端口组合,若基于该端口组合接收的报文流量确定的该端口组合为预测环路中的两个端口,则确定该端口组合所接收的报文流量所属的虚拟局域网VLAN;
则,所述在所述目标设备的至少一个端口组合上,增加探测报文的发包数量,包括:
基于确定的VLAN,在该端口组合上增加探测报文的发包数量。
4.根据权利要求2所述的方法,其特征在于,所述在所述目标设备的至少一个设备端口上增加探测报文的发包数量之后,还包括:
若通过增加所述发包数量的方式无法确定所述目标设备上存在环路,则判断所述目标设备上是否存在至少两个设备端口的带宽利用率在第二预设时长内大于所述第一带宽阈值,其中,所述两个设备端口包括第三端口和第四端口;
若是,则禁止在所述第三端口发送报文、且允许在所述第四端口发送探测报文;
若所述第三端口接收到所述第四端口发送的探测报文,则确定所述目标设备上存在环路。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述预测目标设备上存在环路,包括:
当确定所述目标设备出现第二现象、和/或确定所述目标设备出现第三现象时,预测所述目标设备存在环路;
其中,所述确定所述目标设备出现第二现象,包括:
若所述目标设备在两个不同端口接收到两条报文、且所述两个不同端口的接收时间间隔小于预设时间阈值、以及所述两条报文携带了相同的源MAC地址且所述两条报文属于同一虚拟局域网VLAN,则使端口切换次数加一,否则,使所述端口切换次数清零;若所述端口切换次数的累加次数达到预设次数,则确定所述目标设备出现第二现象;
其中,所述确定所述目标设备出现第三现象,包括:
当所述目标设备出现所述第一现象且所述第一现象的持续时间大于第三预设时长时,确定所述目标设备出现第三现象。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述在所述目标设备的至少一个设备端口上发送探测报文,包括:
按照预设时间间隔,在所述目标设备的每一设备端口上发送探测报文;
在按照所述预设时间间隔发送探测报文的期间,若预测到属于环路上的设备端口,则在该设备端口上新增发送探测报文。
7.根据权利要求6所述的方法,其特征在于,所述按照预设时间间隔,在所述目标设备的每一设备端口上发送探测报文,包括:
按照预设时间间隔,确定所述目标设备的每一设备端口对应的各个目标VLAN,所述目标VLAN是对应设备端口所接收到的历史报文流量所属的VLAN;
基于当前确定的每一设备端口对应的各个目标VLAN,在每一设备端口上发送探测报文。
8.一种环路检测装置,其特征在于,包括:
第一探测单元,用于若预测目标设备上存在环路,则在所述目标设备的至少一个设备端口上发送探测报文,用以检测所述目标设备上的环路;
第二探测单元,用于若未检测到环路,则当所述目标设备出现第一现象且所述第一现象的持续时间大于第一预设时长时,在所述目标设备的至少一个设备端口上增加探测报文的发包数量,用以检测所述目标设备上的环路;增加探测报文的发包数量的设备端口是带宽利用率大于第一带宽阈值的设备端口,或者是属于预测环路中的设备端口;
其中,所述第一现象为所述目标设备上的至少一个设备端口的带宽利用率大于第一带宽阈值。
9.一种电子设备,其特征在于,包括:处理器、存储器;
所述存储器,用于存储计算机程序;
所述处理器,用于通过调用所述计算机程序,执行如权利要求1-7中任一项所述的环路检测方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一项所述的环路检测方法。
CN202011486782.6A 2020-12-16 2020-12-16 环路检测方法、装置、设备及计算机可读存储介质 Active CN112702226B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011486782.6A CN112702226B (zh) 2020-12-16 2020-12-16 环路检测方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011486782.6A CN112702226B (zh) 2020-12-16 2020-12-16 环路检测方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112702226A CN112702226A (zh) 2021-04-23
CN112702226B true CN112702226B (zh) 2022-04-26

Family

ID=75508482

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011486782.6A Active CN112702226B (zh) 2020-12-16 2020-12-16 环路检测方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112702226B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884806A (zh) * 2022-04-01 2022-08-09 国网浙江省电力有限公司杭州供电公司 一种基于高集聚场景下的环路识别与阻断方法
CN116455846B (zh) * 2023-06-14 2023-11-14 杭州海康威视数字技术股份有限公司 跨vlan网络获取设备信息的方法、装置及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420721A (zh) * 2011-11-30 2012-04-18 瑞斯康达科技发展股份有限公司 一种环路检测报文封装方法、环路检测方法及装置
CN105429892A (zh) * 2015-10-29 2016-03-23 北京星网锐捷网络技术有限公司 一种轨道交通网络防止环路的方法及设备
CN109391525A (zh) * 2018-10-25 2019-02-26 锐捷网络股份有限公司 环路定位方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100534048C (zh) * 2007-04-27 2009-08-26 中控科技集团有限公司 分布式以太网系统及基于该系统的故障检测方法
CN106302001B (zh) * 2016-07-30 2020-02-14 华为技术有限公司 数据通信网络中业务故障检测方法、相关装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102420721A (zh) * 2011-11-30 2012-04-18 瑞斯康达科技发展股份有限公司 一种环路检测报文封装方法、环路检测方法及装置
CN105429892A (zh) * 2015-10-29 2016-03-23 北京星网锐捷网络技术有限公司 一种轨道交通网络防止环路的方法及设备
CN109391525A (zh) * 2018-10-25 2019-02-26 锐捷网络股份有限公司 环路定位方法及装置

Also Published As

Publication number Publication date
CN112702226A (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
CN109412964B (zh) 报文控制方法及网络装置
EP2642704B1 (en) Reducing headroom
CN112702226B (zh) 环路检测方法、装置、设备及计算机可读存储介质
KR100992968B1 (ko) 네트워크 스위치 및 그 스위치의 주소충돌방지방법
EP3554020A1 (en) Bum traffic control method, related device and system
KR100875739B1 (ko) Ip 네트워크 시스템에서의 패킷 버퍼 관리 장치 및 방법
US20170142010A1 (en) Network operation rule
EP1705845A1 (en) Load distributing method
CN111385121B (zh) 一种操作管理维护iOAM报文的传输方法及相应装置
CN101286996A (zh) 一种风暴攻击抵抗方法与装置
WO2017035717A1 (zh) 一种分布式拒绝服务DDoS攻击检测方法及相关设备
CN108243117B (zh) 一种流量监控方法、装置及电子设备
US8955049B2 (en) Method and a program for controlling communication of target apparatus
US7613205B1 (en) Token-assignment networks over ethernet and methods therefor
CN114157609B (zh) Pfc死锁检测方法及装置
CN105991588B (zh) 一种防御消息攻击的方法及装置
CN102223269B (zh) 一种报文处理方法、mac地址漂移的检测方法及装置
CN112737940A (zh) 一种数据传输的方法和装置
RU2580395C2 (ru) Способ и система реализации сквозного иерархического качества обслуживания
WO2017000861A1 (zh) 交换机虚拟局域网中mac地址的学习方法及装置
US8005106B2 (en) Apparatus and methods for hybrid fair bandwidth allocation and drop precedence
CN114884806A (zh) 一种基于高集聚场景下的环路识别与阻断方法
CN115766201A (zh) 一种大量ip地址快速封禁的解决方法
CN110336759B (zh) 基于rdma的协议报文转发方法及装置
CN111327590A (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