CN106549821B - 一种网络环路检测方法及控制器 - Google Patents
一种网络环路检测方法及控制器 Download PDFInfo
- Publication number
- CN106549821B CN106549821B CN201510613030.4A CN201510613030A CN106549821B CN 106549821 B CN106549821 B CN 106549821B CN 201510613030 A CN201510613030 A CN 201510613030A CN 106549821 B CN106549821 B CN 106549821B
- Authority
- CN
- China
- Prior art keywords
- mac address
- address mapping
- network
- forwarding device
- forwarding
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种网络环路检测方法及控制器,用以解决现有技术无法准确迅速地判断出网络环路的问题。控制器获取所述控制器管理的转发设备发送的多个MAC地址映射,其中每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;所述控制器在确定在所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。这样,所述控制器可以根据收集的多个MAC地址映射,准确迅速地确定网络存在环路,进而确定网络环路的位置,最终实现网络环路消除。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种网络环路检测方法及控制器。
背景技术
在如图1所示的网络中,包含各级交换机,以及各类服务器。由于服务器配置错误、网络故障或交换机配置错误或运行故障等原因,会导致网络出现环路(英文:loop)。例如,图1示出了四种可能出现环路的场景。
其中,曲线1表示普通物理服务器由于网卡故障或该普通物理服务器的网线自环导致的环路,其中,网线自环是由于网线的接收端和发送端连接导致的;在安装了虚拟机的服务器中,包含虚拟机,以及对虚拟机的报文进行转发的虚拟交换机,曲线2表示由于安装了虚拟机的服务器中虚拟交换机的配置错误导致的环路;曲线4表示虚拟可扩展局域网(英文:Virtual eXtensible Local Area Network,缩写:VXLAN)的服务器中包含的虚拟交换机的配置错误导致的环路;曲线3和曲线5均表示由于交换机的连接或配置错误导致的环路。
传统的,网络中的一个交换机通过生成树协议(英文:Spanning Tree Protocol,缩写:STP)或私有协议主动发送广播报文或组播报文进行环路探测,该交换机若探测出以下任一种情况时,则需要破除(break)环路,即执行阻塞端口、关闭端口或使端口退出业务虚拟局域网(英文:Virtual Local Area Network,缩写:VLAN)等操作。
然而,在实际场景中,网络规模巨大,组网复杂,因此,网络中的单个交换机不能准确迅速地判断出网络环路,进而导致网络环路无法处理,造成网络长时间处于广播风暴,影响正常报文的转发。
发明内容
本发明提供一种网络环路检测方法及控制器,用以解决现有技术无法准确迅速地判断出网络环路的问题。
本发明提供的具体技术方案如下:
第一方面,一种网络环路检测方法,包括:
控制器获取所述控制器管理的转发设备的多个媒体访问控制MAC地址映射;其中,每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;
所述控制器在确定所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。
结合第一方面,在第一方面的第一种可能的实现方式中,所述多个MAC地址映射包括参考MAC地址映射和至少一个比对MAC地址映射;所述参考MAC地址映射和所述至少一个比对MAC地址映射包括同一个MAC地址;
所述获取所述多个MAC地址映射,包括分别获取所述参考MAC地址映射和所述至少一个比对MAC的地址映射。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述获取所述参考MAC地址映射包括:
所述控制器根据从云平台获取到的接入所述转发设备的主机的MAC地址以及所述转发设备与所述主机通信的端口,得到所述参考MAC地址映射;或
所述控制器接收所述转发设备首次发送的包括一个MAC地址的MAC地址映射作为所述MAC地址的参考MAC地址映射;
所述获取所述对比MAC地址映射包括:
所述控制器周期性获取所述转发设备的MAC地址映射,得到每个参考MAC地址映射的比对MAC地址映射;或者
所述控制器接收所述转发设备在确定一个MAC地址在所述转发设备的端口间漂移时发送的漂移MAC地址映射,所述漂移MAC地址映射中的端口为漂移后端口;所述控制器将所述漂移MAC地址映射作为所述MAC地址的比对MAC地址映射。
结合第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述至少两个MAC地址映射中包括一个参考MAC地址映射和至少一个比对MAC地址映射;
所述确定所述网络存在环路包括:
当在设定时间段内,所述控制器持续获取到所述参考地址映射的比对MAC地址映射,确定所述网络存在环路;其中,所述设定时间段大于完成特定业务所需要的时间;或
所述至少一个比对MAC地址映射包括的比对MAC地址映射数大于设定阈值时,确定所述网络存在环路。
结合第一方面的第一种至第三种可能的实现方式中的任一项,在第一方面的第四种可能的实现方式中,在所述控制器确定所述网络存在环路后,所述方法还包括:所述控制器根据所述至少一个比对MAC地址映射,确定所述网络中的环路故障端口;
当所述网络中存在至少两个环路故障端口,并且所述至少两个环路故障端口属于不同的转发设备时,所述控制器根据所述网络中每个转发设备的属性以及每个转发设备所占用的带宽,从所述至少两个环路故障端口中确定环网阻塞端口。
第二方面,一种控制器,包括:
获取单元,用于获取所述控制器管理的转发设备的多个媒体访问控制MAC地址映射;其中,每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;
处理单元,用于在确定所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。
结合第二方面,在第二方面的第一种可能的实现方式中,所述多个MAC地址映射包括参考MAC地址映射和至少一个比对MAC地址映射;所述参考MAC地址映射和所述至少一个比对MAC地址映射包括同一个MAC地址;
所述获取单元,在获取所述多个MAC地址映射时,用于分别获取所述参考MAC地址映射和所述至少一个比对MAC的地址映射。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述获取单元,在获取所述参考MAC地址映射时,用于:
根据从云平台获取到的接入所述转发设备的主机的MAC地址以及所述转发设备与所述主机通信的端口,得到所述参考MAC地址映射;或接收所述转发设备首次发送的包括一个MAC地址的MAC地址映射作为所述MAC地址的参考MAC地址映射;
所述获取单元,在获取所述对比MAC地址映射时,用于:
周期性获取所述转发设备的MAC地址映射,得到每个参考MAC地址映射的比对MAC地址映射;或者接收所述转发设备在确定一个MAC地址在所述转发设备的端口间漂移时发送的漂移MAC地址映射,所述漂移MAC地址映射中的端口为漂移后端口;所述获取单元将所述漂移MAC地址映射作为所述MAC地址的比对MAC地址映射。
结合第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述至少两个MAC地址映射中包括一个参考MAC地址映射和至少一个比对MAC地址映射;
所述处理单元,在确定所述网络存在环路时,用于:
当在设定时间段内,所述获取单元持续获取到所述参考地址映射的比对MAC地址映射,确定所述网络存在环路;其中,所述设定时间段大于完成特定业务所需要的时间;或
所述至少一个比对MAC地址映射包括的比对MAC地址映射数大于设定阈值时,确定所述网络存在环路。
结合第二方面的第一种至第三种可能的实现方式中的任一项,在第二方面的第四种可能的实现方式中,所述处理单元,还用于:
在所述控制器确定所述网络存在环路后,根据所述至少一个比对MAC地址映射,确定所述网络中的环路故障端口;
当所述网络中存在至少两个环路故障端口,并且所述至少两个环路故障端口属于不同的转发设备时,根据所述网络中每个转发设备的属性以及每个转发设备所占用的带宽,从所述至少两个环路故障端口中确定环网阻塞端口。
采用本发明提供的网络环路检测方法,控制器获取所述控制器管理的转发设备发送的多个MAC地址映射,其中每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;所述控制器在确定在所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。这样,所述控制器可以根据收集的多个MAC地址映射,准确迅速地确定网络存在环路,进而确定网络环路的位置,最终实现网络环路消除。
附图说明
图1为现有技术中网络环路示意图;
图2为本发明实施例提供的一种实现网络环路检测方法的网络架构图;
图3为本发明实施例提供的一种网络环路检测方法的流程图;
图4为本发明实施例提供的一种网络环路检测方法的实例示意图;
图5为本发明实施例提供的一种控制器结构示意图;
图6为本发明实施例提供的另一种控制器的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种网络环路检测方法,用以解决现有技术无法准确迅速地判断出网络环路的问题。其中,本发明所述方法和控制器基于同一发明构思,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本发明实施例中,控制器获取所述控制器管理的转发设备发送的多个媒体访问控制(英文:Medium Access Control,缩写:MAC)地址映射,其中每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;所述控制器在确定在所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。这样,所述控制器可以根据收集的多个MAC地址映射,准确迅速地确定网络存在环路,进而确定网络环路的位置,最终实现网络环路消除。
本发明实施例提供的网络环路检测方法,适用于图2所示的数据链路层(即二层)的网络架构中,如图所示,包含云平台210、控制器220,至少一个转发设备(转发设备231、转发设备232和转发设备233)和终端设备240。其中,
所述云平台210通过所述控制器220管理整个网络中的所有设备,所述云平台210在网络建立连接后,即可确定网络中的接入每个转发设备的终端设备(如图所示,接入转发设备232和转发设备233的终端设备240)的MAC地址以及该转发设备与该终端设备通信的接口,即MAC地址映射,其中,每个MAC地址映射包括一个MAC地址和一个转发设备的端口;
所述控制器220可以设置在独立的设备,例如服务器上,所述服务器可以是物理服务器或者虚拟服务器,所述控制器220也可以设置在转发设备上,其中,所述转发设备可以是交换机或路由器。所述控制器220可以通过从云平台210获取MAC地址映射,还可以从网络中的所述转发设备231、所述转发设备232和所述转发设备233中获取的MAC地址映射,并通过收集的多个MAC地址映射确定网络中是否存在环路,并进一步确定网络环路的位置,以及执行网络环路消除操作或告警;
所述转发设备231、所述转发设备232和所述转发设备233中任一个转发设备(本实施例中,仅以转发设备231为例进行说明),可以为交换机,或为兼容交换机功能的其它网络设备,如路由器等,本发明对此不做限定。所述转发设备231用于基于开放式流(英文:OpenFlow)协议或者其它协议转发报文;所述转发设备231在报文收发过程中,具有MAC学习能力,例如,转发设备231在端口PORT1收到一个源MAC地址为第一MAC地址的报文,则所述转发设备231可以学习到一个MAC地址映射——(第一MAC地址,转发设备231的PORT1);所述转发设备231还会将学习到的MAC地址映射,上报至所述控制器220;
所述终端设备240可以是普通的服务器或交换机,或者其他终端,或者兼容服务器和交换机的网络设备,本发明对此不做限定。
其中,在上述网络架构中,所述转发设备231、所述转发设备232,以及所述转发设备233还可以直接通过链路层发现协议(英文:Link Layer Discovery Protocol,缩写:LLDP)等方式确定网络设备的端口连接,进而根据确定的端口连接获得MAC地址映射。
参阅图3所示,本发明实施例提供的一种网络环路检测方法,应用于数据链路层的网络中的控制器中,例如图2所示的网络架构中的控制器220。该方法的处理流程包括:
步骤301:控制器获取所述控制器管理的转发设备的多个MAC地址映射;其中,每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口。
其中,任一个MAC地址映射用于表示在传输报文中包含的目的地址或源地址为所述MAC地址映射中包括的MAC地址时,所述传输报文通过所述MAC地址映射中包括的转发设备的端口进行转发。例如,任一个MAC地址映射(第一MAC地址,第一转发设备的PORT1)表示,在传输报文中的源地址为第一MAC地址时,则所述传输报文通过第一转发设备的PORT1作为源端口进行转发;在传输报文中的目的地址为第一MAC地址时,则所述传输报文通过第一转发设备的PORT1作为目的端口进行转发。
在任一个MAC地址映射中包括的转发设备的一个端口,可以为以下任意一种隧道的端口:多链接透明互联(英文:Transparent Interconnection of Lots of Links,缩写:TRILL)隧道、虚拟专用局域网服务(英文:Virtual Private LAN Service,缩写:VPLS)隧道、VXLAN、无状态传输隧道(英文:Stateless Transport Tunneling,缩写:STT)和网络虚拟化通用路由封装(英文:Network Virtualization Generic Routing Encapsulation,缩写:NVGRE)隧道等。
可选的,所述多个MAC地址映射包括参考MAC地址映射和至少一个比对MAC地址映射;所述参考MAC地址映射和所述至少一个比对MAC地址映射包括同一个MAC地址;所述参考MAC地址映射为作为比较基础的MAC地址映射;所述比对MAC地址映射为与参考MAC地址映射做比较的MAC地址映射。
所述控制器获取所述多个MAC地址映射,包括:分别获取所述参考MAC地址映射和所述至少一个比对MAC的地址映射。
其中,所述控制器获取所述参考MAC地址映射,可以包括以下两种方式:
第一种方式:所述控制器根据从云平台获取到的接入所述转发设备的主机的MAC地址以及所述转发设备与所述主机通信的端口,得到所述参考MAC地址映射;
第二种方式:所述控制器接收所述转发设备首次发送的包括一个MAC地址的MAC地址映射作为所述MAC地址的参考MAC地址映射。
在第一种方式中,由于在网络建立连接后,所述云平台就可以确定网络中接入各个转发设备的主机的MAC地址以及各个转发设备与主机通信的端口,因此,所述控制器可以通过主动请求或者所述云平台主动下发,获取云平台中的接入转发设备的主机的MAC地址以及所述转发设备与所述主机通信的端口,得到所述参考MAC地址映射。
在第二种方式中,由于在所述控制器管理的网络中的每个转发设备具有MAC学习的能力,因此,在网络运行过程中,所述网络中的每个转发设备均可以学习到MAC地址映射。例如,第二转发设备的PORT2首次接收到一个源地址为第二MAC地址的传输报文,则所述第二转发设备学习的MAC地址映射为(第二MAC地址,第二转发设备的PORT2)。每个转发设备在首次学习到包含一个MAC地址的MAC地址映射后,向所述控制器上报该MAC地址映射。
其中,包含第一MAC地址的参考MAC地址映射为所述控制器首次获取到的包含该第一MAC地址的MAC地址映射,而后续还获取到包含该第一MAC地址的MAC地址映射,则后续获取的MAC地址映射即为所述参考映射的比对MAC地址映射。
所述控制器获取所述对比MAC地址映射,包括以下两种方式:
第一种方式:所述控制器周期性获取所述转发设备的MAC地址映射,得到每个参考MAC地址映射的比对MAC地址映射;
第二种方式:所述控制器接收所述转发设备在确定一个MAC地址在所述转发设备的端口间漂移时发送的漂移MAC地址映射,所述漂移MAC地址映射中的端口为漂移后端口;所述控制器将所述漂移MAC地址映射作为所述MAC地址的比对MAC地址映射。其中,所述漂移MAC地址映射为MAC地址发生漂移后所述转发设备学习到的MAC地址映射。
在第一种方式中,为了保证传输报文的安全性,由于网络中的转发设备会一直处于MAC学习状态,因此,控制器需要按照设定周期对所述网络中的各个转发设备进行轮询,获取每个转发设备学习到的MAC地址映射。
在第二种方式中,所述网络中的转发设备通过MAC学习,不断对自身保存的MAC地址映射进行更新,因此任意一个转发设备可以确定在本地保存的MAC地址映射中,一个MAC地址对应的所述转发设备的端口发生漂移,此时,所述转发设备可以将包含所述MAC地址和漂移后的所述转发设备的端口作为漂移MAC地址映射,上报给控制器。
步骤302:所述控制器在确定所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。
其中,所述至少两个MAC地址映射中包括一个参考MAC地址映射和至少一个比对MAC地址映射;此时在步骤302中,所述所述控制器确定所述网络存在环路,包括以下几种触发条件:
第一种:当在设定时间段内,所述控制器持续获取到所述参考地址映射的比对MAC地址映射,确定所述网络存在环路;其中,所述设定时间段大于完成特定业务所需要的时间,所述设定时间段可以根据实际场景具体设定,例如取值为10秒、20秒。
第二种:所述至少一个比对MAC地址映射包括的比对MAC地址映射数大于设定阈值时,确定所述网络存在环路。
在第一种触发条件中,在网络处理某些特定业务时,一个MAC地址在转发设备的端口间漂移是正常的,例如,在主备链路传输机制下,在终端设备在进行主备链路转换,导致网络拓扑变化,或者终端设备为安装虚拟机的服务器或VXLAN的服务器,且虚拟机发生漂移,这时,短时间内出现少量的MAC地址漂移是正常的,因此,所述控制器在确定所述MAC地址长时间(在大于完成特定业务所需要的时间的设定时间段内)且持续性的处于MAC地址漂移或振荡时,才能确定所述网络存在环路,所述控制器可以通过所述设定时间段,避免了在网络处理一些特定业务时,由于少量MAC地址漂移判断网络存在环路,降低网络环路误判的概率。
在第二种触发条件中,一个参考MAC地址映射的比对MAC地址映射数目可以体现改参考MAC地址映射中的MAC地址发生漂移的次数,因此,在一个MAC地址发送多次漂移后,可以确定所述网络存在环路。其中,所述设定阈值可以根据实际场景进行设置,本发明对此不做限定。
所述控制器在确定网络存在环路后,则根据可以预设的下发策略,进行网络环路消除操作、告警,或者记录日志并定期发送提醒消息等,其中,网络环路消除操作包括:网络关闭端口、退出VLAN等,发送提醒消息包括发送短信或者邮件等。
可选的,在执行步骤302后,还包括:
所述控制器根据所述至少一个比对MAC地址映射,确定所述网络中的环路故障端口;
当所述网络中存在至少两个环路故障端口,并且所述至少两个环路故障端口属于不同的转发设备时,所述控制器根据所述网络中每个转发设备的属性以及每个转发设备所占用的带宽,从所述至少两个环路故障端口中确定环网阻塞端口。
通过上述方法,所述控制器可以根据比对MAC地址映射中包含的转发设备的端口,确定所述网络中的环路故障端口,并在包含多个环路故障端口时,采用传统技术,在多个环路故障端口中,确定环网阻塞端口,从而实现网络环路消除。
本发明实施例提供的网络环路检测方法可以使用多种类型的网络,例如单机网络、集群网络,以及各种规模巨大、组网复杂的网络等。其中,该网络中的网络连接可以是通过物理实体连接,或者通过无线连接,对此本发明不做限定。同时,该网络的类型可以为现有的各种网络,例如VLAN、QinQ、VPLS、TRILL、VXLAN、NVGRE、STT等网络。
采用本发明上述实施例中的网络环路检测方法,控制器获取所述控制器管理的转发设备发送的多个MAC地址映射,其中每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;所述控制器在确定在所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路这样,所述控制器可以根据收集的多个MAC地址映射,准确迅速地确定网络存在环路,进而确定网络环路的位置,最终实现网络环路消除。
在如图4所示的网络拓扑连接示例中,所述控制器可以通过上述实施例提供的网络环路检测方法,确定网络是否存在环路。如图所示,其中,每个转发设备/终端设备通过自身的一个端口与另外一个转发设备/终端设备的一个端口互联,例如,转发设备A的PORT1与终端设备E的PORT12互联;转发设备B的PORT5与终端设备F的PORT15互联……
例1,终端设备E的PORT12发送以太网数据报文,终端设备F的PORT14发送以太网数据报文,转发设备A能够分别在PORT1和PORT2上学习以太网数据报文的源MAC地址,并可以根据等价多路径(英文:Equal-Cost Multipath Routing,缩写:ECMP)通过以太网数据报文的目的MAC地址确定转发设备C或转发设备D,根据确定的转发设备C或转发设备D对以太网数据报文进行转发,然而,网络中可能出现以下网络环路:
终端设备E的PORT12存在自环,即终端设备E通过PORT12转发一个以太网数据报文后,还会通过PORT12接收该以太网数据报文;
终端设备E与转发设备A之间的多路链路因配置错误或基于链路汇聚控制协议(英文:Link Aggregation Control Protocol,缩写:LACP)的端口聚合协商失败,导致网络存在环路;
终端设备E与终端设备F之间存在互联的链路,且与转发设备A构成网络环路,如图中曲线1所示的网络环路。
因此,所述控制器在转发设备A学习并上报的多个MAC地址映射,确定满足以下条件时,可以确定出现上述三种中任一种网络环路:
第一种:转发设备A在PORT1上学习的MAC地址发生多次变化,即转发设备A上报的包含PORT1的多个MAC地址映射中,包含的MAC地址发生多次变化;
第二种:转发设备A上报的包含一MAC地址的多个MAC地址映射中,包含的转发设备A的端口频繁在PORT1和PORT2之间漂移。
例2,终端设备F的PORT14和PORT15发送以太网数据报文,在转发设备A的PORT2和转发设备B的PORT5均能够学习到该以太网数据报文的源MAC地址,并通过该以太网数据报文的目的MAC地址确定转发设备C或转发设备D,根据确定的转发设备C或转发设备D对该以太网数据报文进行转发,然而,网络中可能出现以下网络环路:
终端设备F的PORT14和PORT15与转发设备A、转发设备B以及转发设备C构成网络环路,如图中曲线2所示的网络环路,类似的,终端设备F的PORT14和PORT15与转发设备A、转发设备B以及转发设备D构成网络环路。
因此,所述控制器在各个转发设备上报的多个MAC地址映射中,确定满足以下条件时,可以确定出现上述网络环路:
在包含一个MAC地址的多个MAC地址映射中,所包含的转发设备的端口,在不同的转发设备的端口间多次漂移。
例3,转发设备A通过PORT3和PORT4发送给转发设备C和转发设备D的以太网数据报文,由于转发设备C或转发设备D故障,导致转发设备A可以接收到转发设备A发送的所述以太网数据报文。因此,网络中可能出现以下网络环路:
转发设备C或转发设备D故障,导致转发设备A的PORT3和PORT4与转发设备C和转发设备D构成网络环路,如图中曲线3所示的网络环路。
因此,所述控制器在各个转发设备上报的多个MAC地址映射中,确定满足以下条件时,可以确定出现上述网络环路:
在转发设备A上报的MAC地址映射中,包含一个MAC地址的多个MAC地址映射所包含的转发设备的端口,频繁在PORT3和PORT1(或PORT2)之间漂移。
其中,PORT1和PORT2为转发设备A的接入侧端口,PORT3、PORT4为转发设备A的网络侧端口。上述条件还可以表示为,转发设备A上报的包含一个MAC地址的MAC地址映射,所包含的转发设备的端口频繁在网络侧端口和接入侧端口漂移。
在例2中的网络环路由于涉及到转发设备A和转发设备B,因此,采用传统的单个转发设备无法判断出网络环路,更无法确定网络中存在环路的位置,因此采用本发明实施例提供网络环路检测方法,即可通过各个转发设备的MAC地址映射,确定网络存在环路,进而确定网络环路的位置。
在例3中的网络环路中,转发设备A可以确定学习到的MAC地址在网络侧端口和接入侧端口漂移,即转发设备A虽然可以通过传统的方法确定发生了网络环路,并对转发设备A自身进行网络环路消除,然而,由于网络环路的原因并不是由于转发设备A导致的,转发设备A单方面执行网络环路消除会导致进一步网络故障,因此,采用本发明实施例提供网络环路检测方法,即可通过各个转发设备的MAC地址映射,确定网络存在环路,进而确定网络环路的位置。
基于以上实施例,本发明还提供了一种控制器,参阅图5所示,该控制器500包括:获取单元501和处理单元502,其中,
获取单元501,用于获取所述控制器管理的转发设备的多个MAC地址映射;其中,每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;
处理单元502,用于在确定所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。
可选的,所述多个MAC地址映射包括参考MAC地址映射和至少一个比对MAC地址映射;所述参考MAC地址映射和所述至少一个比对MAC地址映射包括同一个MAC地址;
所述获取单元501,在获取所述多个MAC地址映射时,用于分别获取所述参考MAC地址映射和所述至少一个比对MAC的地址映射。
可选的,所述获取单元501,在获取所述参考MAC地址映射时,用于:
根据从云平台获取到的接入所述转发设备的主机的MAC地址以及所述转发设备与所述主机通信的端口,得到所述参考MAC地址映射;或接收所述转发设备首次发送的包括一个MAC地址的MAC地址映射作为所述MAC地址的参考MAC地址映射;
所述获取单元501,在获取所述对比MAC地址映射时,用于:
周期性获取所述转发设备的MAC地址映射,得到每个参考MAC地址映射的比对MAC地址映射;或者接收所述转发设备在确定一个MAC地址在所述转发设备的端口间漂移时发送的漂移MAC地址映射,所述漂移MAC地址映射中的端口为漂移后端口;所述获取单元501将所述漂移MAC地址映射作为所述MAC地址的比对MAC地址映射。
可选的,所述至少两个MAC地址映射中包括一个参考MAC地址映射和至少一个比对MAC地址映射;
所述处理单元502,在确定所述网络存在环路时,用于:
当在设定时间段内,所述获取单元501持续获取到所述参考地址映射的比对MAC地址映射,确定所述网络存在环路;其中,所述设定时间段大于完成特定业务所需要的时间;或
所述至少一个比对MAC地址映射包括的比对MAC地址映射数大于设定阈值时,确定所述网络存在环路。
可选的,所述处理单元502,还用于:
在所述控制器确定所述网络存在环路后,根据所述至少一个比对MAC地址映射,确定所述网络中的环路故障端口;
当所述网络中存在至少两个环路故障端口,并且所述至少两个环路故障端口属于不同的转发设备时,根据所述网络中每个转发设备的属性以及每个转发设备所占用的带宽,从所述至少两个环路故障端口中确定环网阻塞端口。
采用本发明实施例提供的控制器,获取所述控制器管理的转发设备发送的多个MAC地址映射,其中每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;所述控制器在确定在所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路。这样,所述控制器可以根据收集的多个MAC地址映射,准确迅速地确定网络存在环路,进而确定网络环路的位置,最终实现网络环路消除。
需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
基于以上实施例,本发明还提供了一种控制器,参阅图6所示,该控制器600包括:收发器601、处理器602、总线603以及存储器604,其中:
收发器601、处理器602以及存储器604通过总线603相互连接;总线603可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
收发器601用于与所述控制器600管理的转发设备,以及云平台进行通信,如从转发设备和云平台获取多个MAC地址映射等。
该控制器600还包括存储器604,用于存放程序等。具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。存储器604可能包含随机存取存储器(random accessmemory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。处理器602执行存储器604所存放的应用程序,实现如上网络环路检测方法。
本发明实施例提供的网络环路检测方法及控制器,控制器获取所述控制器管理的转发设备发送的多个MAC地址映射,其中每个MAC地址映射包括一个MAC地址和所述转发设备的一个端口;所述控制器在确定在所述多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述转发设备所在的网络存在环路这样,所述控制器可以根据收集的多个MAC地址映射,准确迅速地确定网络存在环路,进而确定网络环路的位置,最终实现网络环路消除。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种网络环路检测方法,其特征在于,包括:
控制器获取所述控制器管理的所有转发设备中每个转发设备对应的多个媒体访问控制MAC地址映射;其中,每个MAC地址映射包括一个MAC地址和一个转发设备的一个端口;每个转发设备对应的多个MAC地址映射包括参考MAC地址映射和所述参考MAC地址映射对应的至少一个比对MAC地址映射,所述参考MAC地址映射与所述参考MAC地址映射对应的所述至少一个比对MAC地址映射包括同一个MAC地址;
所述控制器在确定所述所有转发设备中至少一个转发设备对应的多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述至少一个转发设备所在的网络存在环路;
其中,所述至少两个MAC地址映射中包括一个目标参考MAC地址映射和所述目标参考MAC地址映射对应的至少一个目标比对MAC地址映射;所述确定所述网络存在环路包括:
当在设定时间段内,所述控制器持续获取到所述目标参考MAC地址映射的所述至少一个目标比对MAC地址映射,确定所述网络存在环路;其中,所述设定时间段大于完成特定业务所需要的时间;或
所述至少一个目标比对MAC地址映射包括的比对MAC地址映射数大于设定阈值时,确定所述网络存在环路。
2.如权利要求1所述的方法,其特征在于,获取任一个转发设备对应的所述多个MAC地址映射,包括分别获取所述转发设备对应的参考MAC地址映射和所述转发设备对应的至少一个比对MAC的地址映射。
3.根据权利要求2所述的方法,其特征在于,
获取任一个转发设备对应的参考MAC地址映射包括:
所述控制器根据从云平台获取到的接入所述转发设备的主机的MAC地址以及所述转发设备与所述主机通信的端口,得到所述参考MAC地址映射;或
所述控制器接收所述转发设备首次发送的包括一个MAC地址的MAC地址映射作为所述MAC地址的参考MAC地址映射;
获取任一个转发设备对应的比对MAC地址映射包括:
所述控制器周期性获取所述转发设备的MAC地址映射,得到每个参考MAC地址映射对应的比对MAC地址映射;或者
所述控制器接收所述转发设备在确定一个MAC地址在所述转发设备的端口间漂移时发送的漂移MAC地址映射,所述漂移MAC地址映射中的端口为漂移后端口;所述控制器将所述漂移MAC地址映射作为所述MAC地址的比对MAC地址映射。
4.如权利要求1-3任一项所述的方法,其特征在于,在所述控制器确定所述网络存在环路后,所述方法还包括:所述控制器根据所述至少一个目标比对MAC地址映射,确定所述网络中的环路故障端口;
当所述网络中存在至少两个环路故障端口,并且所述至少两个环路故障端口属于不同的转发设备时,所述控制器根据所述网络中每个转发设备的属性以及每个转发设备所占用的带宽,从所述至少两个环路故障端口中确定环网阻塞端口。
5.一种控制器,其特征在于,包括:
获取单元,用于获取所述控制器管理的所有转发设备中每个转发设备对应的多个媒体访问控制MAC地址映射;其中,每个MAC地址映射包括一个MAC地址和一个转发设备的一个端口;每个转发设备对应的多个MAC地址映射包括参考MAC地址映射和所述参考MAC地址映射对应的至少一个比对MAC地址映射,所述参考MAC地址映射与所述参考MAC地址映射对应的所述至少一个比对MAC地址映射包括同一个MAC地址;
处理单元,用于在确定所述所有转发设备中至少一个转发设备对应的多个MAC地址映射中至少两个MAC地址映射的MAC地址相同,且所述至少两个MAC地址映射包括的所述转发设备的端口不同时,确定所述至少一个转发设备所在的网络存在环路;
其中,所述至少两个MAC地址映射中包括一个目标参考MAC地址映射和所述目标参考MAC地址映射对应的至少一个比对MAC地址映射;所述处理单元,在确定所述网络存在环路时,用于:
当在设定时间段内,所述获取单元持续获取到所述目标参考MAC地址映射的所述至少一个目标比对MAC地址映射,确定所述网络存在环路;其中,所述设定时间段大于完成特定业务所需要的时间;或
所述至少一个目标比对MAC地址映射包括的比对MAC地址映射数大于设定阈值时,确定所述网络存在环路。
6.如权利要求5所述的控制器,其特征在于,所述获取单元,在获取任一个转发设备对应的所述多个MAC地址映射时,用于分别获取所述转发设备对应的参考MAC地址映射和所述转发设备对应的至少一个比对MAC的地址映射。
7.根据权利要求6所述的控制器,其特征在于,
所述获取单元,在获取任一个转发设备对应的参考MAC地址映射时,用于:
根据从云平台获取到的接入所述转发设备的主机的MAC地址以及所述转发设备与所述主机通信的端口,得到所述参考MAC地址映射;或接收所述转发设备首次发送的包括一个MAC地址的MAC地址映射作为所述MAC地址的参考MAC地址映射;
所述获取单元,在获取任一个转发设备对应的比对MAC地址映射时,用于:
周期性获取所述转发设备的MAC地址映射,得到每个参考MAC地址映射对应的比对MAC地址映射;或者
接收所述转发设备在确定一个MAC地址在所述转发设备的端口间漂移时发送的漂移MAC地址映射,所述漂移MAC地址映射中的端口为漂移后端口;所述获取单元将所述漂移MAC地址映射作为所述MAC地址的比对MAC地址映射。
8.如权利要求5-7任一项所述的控制器,其特征在于,所述处理单元,还用于:
在所述控制器确定所述网络存在环路后,根据所述至少一个目标比对MAC地址映射,确定所述网络中的环路故障端口;
当所述网络中存在至少两个环路故障端口,并且所述至少两个环路故障端口属于不同的转发设备时,根据所述网络中每个转发设备的属性以及每个转发设备所占用的带宽,从所述至少两个环路故障端口中确定环网阻塞端口。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510613030.4A CN106549821B (zh) | 2015-09-23 | 2015-09-23 | 一种网络环路检测方法及控制器 |
PCT/CN2016/099348 WO2017050199A1 (zh) | 2015-09-23 | 2016-09-19 | 一种网络环路检测方法及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510613030.4A CN106549821B (zh) | 2015-09-23 | 2015-09-23 | 一种网络环路检测方法及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106549821A CN106549821A (zh) | 2017-03-29 |
CN106549821B true CN106549821B (zh) | 2021-01-01 |
Family
ID=58365133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510613030.4A Active CN106549821B (zh) | 2015-09-23 | 2015-09-23 | 一种网络环路检测方法及控制器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106549821B (zh) |
WO (1) | WO2017050199A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106941634B (zh) * | 2017-05-18 | 2020-07-14 | 烽火通信科技股份有限公司 | 一种gpon***中olt环回检测的方法及*** |
CN107612785A (zh) * | 2017-10-31 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种云平台管理方法及其装置 |
CN111092782B (zh) * | 2018-10-24 | 2022-04-05 | 迈普通信技术股份有限公司 | 被测通信设备、通信设备端口数据转发测试***及方法 |
CN109412945A (zh) * | 2018-11-13 | 2019-03-01 | 郑州云海信息技术有限公司 | 虚拟化***中路由信息的管理方法和装置 |
CN111245700B (zh) * | 2020-01-16 | 2022-02-22 | 新华三信息安全技术有限公司 | 一种环路检测方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101102236A (zh) * | 2007-08-27 | 2008-01-09 | 杭州华三通信技术有限公司 | 探测环路的方法及装置 |
JP2012227772A (ja) * | 2011-04-20 | 2012-11-15 | Nippon Telegr & Teleph Corp <Ntt> | フレーム転送装置及び保守監視システム |
CN102801575B (zh) * | 2011-05-27 | 2015-04-08 | 华为技术有限公司 | 环回检测方法及装置 |
WO2012171216A1 (zh) * | 2011-06-17 | 2012-12-20 | 华为技术有限公司 | 以太网中环路位置检测的方法及以太网交换设备 |
US9007958B2 (en) * | 2011-06-29 | 2015-04-14 | Brocade Communication Systems, Inc. | External loop detection for an ethernet fabric switch |
WO2013082819A1 (zh) * | 2011-12-09 | 2013-06-13 | 华为技术有限公司 | 一种二层网络环路处理的方法、装置及网络设备 |
CN104144082B (zh) * | 2013-05-08 | 2017-10-27 | 新华三技术有限公司 | 二层网络中检测环路的方法及控制器 |
CN104184628A (zh) * | 2013-05-24 | 2014-12-03 | 华为技术有限公司 | 网络中的环网检测方法、网络设备和环网检测*** |
WO2015127643A1 (en) * | 2014-02-28 | 2015-09-03 | Telefonaktiebolaget L M Ericsson (Publ) | Method and communication node for learning mac address in a layer-2 communication network |
-
2015
- 2015-09-23 CN CN201510613030.4A patent/CN106549821B/zh active Active
-
2016
- 2016-09-19 WO PCT/CN2016/099348 patent/WO2017050199A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2017050199A1 (zh) | 2017-03-30 |
CN106549821A (zh) | 2017-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106549821B (zh) | 一种网络环路检测方法及控制器 | |
US11245631B2 (en) | Bum traffic control method, related apparatus, and system | |
US10191758B2 (en) | Directing data traffic between intra-server virtual machines | |
US9178812B2 (en) | Stacking metadata contexts for service chains | |
US9110703B2 (en) | Virtual machine packet processing | |
CN107078963B (zh) | 虚拟可扩展局域网中的路由追踪 | |
US10277418B2 (en) | Method and device for clearing media access control forwarding entry | |
US9001644B2 (en) | Ethernet virtual private network system for providing fast protection for access rings | |
US10187290B2 (en) | Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures | |
US11463345B2 (en) | Monitoring BGP routes of a device in a network | |
CN110493069B (zh) | 故障检测方法、装置、sdn控制器及转发设备 | |
US20140092725A1 (en) | Method and first network node for managing an ethernet network | |
EP3566401B1 (en) | Detecting and mitigating loops | |
CN116566752B (zh) | 安全引流***、云主机及安全引流方法 | |
CN107786386B (zh) | 对用于验证多播连接的双向转发检测(bfd)消息的选择性传输 | |
US8634306B2 (en) | Systems and methods for implementing service operation, administration, and management for hairpinned ethernet services | |
CN112491688A (zh) | 一种环路检测方法、装置及可读存储介质 | |
US20210306252A1 (en) | Loop avoidance protocol | |
US20170070473A1 (en) | A switching fabric including a virtual switch | |
CN111654558B (zh) | Arp交互与内网流量转发方法、装置和设备 | |
CN106559331B (zh) | Mstp网络中的报文传输方法、装置及网络*** | |
WO2024001324A1 (zh) | 网络路径的检测方法、***及计算机设备 | |
CN116938666A (zh) | 一种数据处理方法和相关设备 | |
CN117478486A (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 |