本发明涉及网络通信技术领域,特别涉及一种环路检测方法、装置及可读存储介质。
背景技术:
传统数据中心网络是二层交换机接入服务器,二层交换机连接到三层核心交换机,服务器的网关全部设定在核心交换机,通过虚拟局域网(virtuallocalareanetwork,vlan)的划分实现服务器之间的按需互访。随着服务器数量的增加,传统二层数据中心网络的运维难度和稳定性都面临困难,目前常采用数据中心虚拟可扩展局域网(virtualextensiblelocalareanetwork,vxlan)组网的方式,具体来讲,叶交换机leaf连接脊交换机spine的链路使用ip协议,部署网络协议实现互通,同时不同的leaf间也存在二层互通的需求,此时则需要在对应的leaf设备上创建二层vxlan隧道,二层vxlan隧道可以实现和二层交换机一样的特性,支持二层转发,广播泛洪等特性。如图1所示,在vxlan数据中心组网方式下,服务器a和服务器b之间通过二层方式通信,服务器a发送地址解析协议(addressresolutionprotocol,arp)广播到leaf1设备后,leaf1设备直接将收到的报文封装进vxlan报文的内层部分,传送给leaf2设备,leaf2设备解封装vxlan报文后,将服务器a的arp广播发送给服务器b。
在二层vxlan网络中,一旦发生二层广播风暴,则大大占用网络带宽,正常流量无法转发,甚至导致设备死机,网络瘫痪。仍以图1为例,叶交换机leaf1设备上原本是要接到服务器的链路,却错误地连接到leaf2设备上,leaf1和leaf2间的二层vxlan隧道与新接入的链路c之间就形成环路,此时,服务器a发送的arp广播报文就会在环路中泛洪,如图2所示。现有通过设备限制链路发送的广播报文数量实现网络不瘫痪,或者是在网络瘫痪时通过人工排查环路并拔出线路来进行环路解除。前者无法对环路流量进行有效限制,特别是在环路流量和业务流量无法区分时,无法有效消除环路,后者,环路消除效率低。
可见,现有二层vxlan网络存在环路检测效率低的技术问题。
技术实现要素:
本发明提供了一种环路检测方法、装置及可读存储介质,用于提高二层vxlan网络中环路检测的效率。
第一方面,本发明实施例提供了一种环路检测方法,应用于二层虚拟可扩展局域网vxlan网络,包括:
通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。
在其中一种可能的实现方式中,在所述确定所述二层vxlan网络发生环路之后,所述方法还包括:
阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路。
在其中一种可能的实现方式中,在所述阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路之前,所述方法还包括:
通过所述stp协议在所述二层vxlan隧道发送所述根交换机所构造的bpdu报文中,将用于标识所述二层vxlan隧道的链路代价的字段值设定为最小值,指定所述二层vxlan隧道为发送所述根交换机所构造的bpdu报文的最优链路;
通过物理链路带宽确定所述物理链路的链路代价,并在发送所述根交换机所构造的bpdu报文中,写入用于标识所述物理链路的链路代价的字段值;
通过所述stp协议将所述二层vxlan隧道的链路代价与所述物理链路的链路代价进行计算;
若所述物理链路的链路代价大于或者等于所述最小值,则表明所述根交换机和所述目标交换机之间存在冗余链路,指定所述物理链路为发送所述根交换机所构造的bpdu报文的次优链路。
在其中一种可能的实现方式中,在所述从所述多个叶交换机中选举出根交换机和至少一个非根交换机之后,所述方法还包括:
若所述至少一个非根交换机中每个所述非根交换机仅通过所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络未发生环路。
第二方面,本发明实施例提供了一种环路检测装置,应用于二层虚拟可扩展局域网vxlan网络,包括:
发送单元,用于通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
选举单元,用于从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
环路确定单元,用于若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。
在其中一种可能的实现方式中,在所述环路确定单元确定所述二层vxlan网络发生环路之后,所述装置还包括环路消除单元,所述环路消除单元用于:
阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路。
在其中一种可能的实现方式中,在所述环路消除单元阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路之前,所述环路确定单元还用于:
通过所述stp协议在所述二层vxlan隧道发送所述根交换机所构造的bpdu报文中,将用于标识所述二层vxlan隧道的链路代价的字段值设定为最小值,指定所述二层vxlan隧道为发送所述根交换机所构造的bpdu报文的最优链路;
通过物理链路带宽确定所述物理链路的链路代价,并在发送所述根交换机所构造的bpdu报文中,写入用于标识所述物理链路的链路代价的字段值;
通过所述stp协议将所述二层vxlan隧道的链路代价与所述物理链路的链路代价进行计算;
若所述物理链路的链路代价大于或者等于所述最小值,则表明所述根交换机和所述目标交换机之间存在冗余链路,指定所述物理链路为发送所述根交换机所构造的bpdu报文的次优链路。
在其中一种可能的实现方式中,在所述选举单元从所述多个叶交换机中选举出根交换机和至少一个非根交换机之后,所述环路消除单元用于:
若所述至少一个非根交换机中每个所述非根交换机仅通过所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络未发生环路。
第三方面,本发明实施例提供了一种环路检测装置,所述环路检测装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上面所述的环路检测方法的步骤。
第四方面,本发明实施例提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上面所述的环路检测方法的步骤。
本发明的有益效果如下:
本发明实施例提供了一种环路检测方法、装置及可读存储介质,首先,通过生成树stp协议,均开启所述stp协议的多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,然后,从所述多个叶交换机中选举出根交换机和至少一个非根交换机,若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路,也就是说,直接将stp协议应用于二层vxlan网络中,在根交换机发送bpdu报文的过程中,一旦检测到非根交换机分别从二层vxlan隧道和物理链路均接收到该bpdu报文,则确定该二层vxlan网络发生环路。如此一来,通过stp协议实现了二层vxlan网络中环路检测。
附图说明
图1为二层vxlan网络中服务器a和服务器b之间通信的其中一种示意图;
图2为图1中二层vxlan网络发生环路的其中一种示意图;
图3为本发明实施例提供的一种环路检测方法的方法流程图;
图4为本发明实施例提供的一种环路检测方法中消除环路之前的方法流程图;
图5为本发明实施例提供的一种环路检测装置的结构示意图;
图6为本发明实施例提供的一种环路检测装置的结构示意图。
具体实施方式
本发明的说明书和权利要求书中术语“包括”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
在二层vxlan网络中,现有要么通过设备限制链路发送的广播报文数量来避免网络瘫痪,要么是在网络瘫痪时通过人工排查环路并拔出线路来进行环路解除。前者无法对环路流量进行有效限制,特别是在环路流量和业务流量无法区分时,无法有效消除环路,后者,依靠人工,环路消除效率低。
鉴于此,本发明实施例提供了一种环路检测方法、装置及可读存储介质,用于提高二层vxlan网络中环路检测的效率。
如图3所示,本发明实施例提供了一种环路检测方法,应用于二层虚拟可扩展局域网vxlan网络,包括:
s101:通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
在具体实施过程中,所述多个叶交换机中各个叶交换机都开启生成树协议(spanningtreeprotocol,stp),比如,可以是每个叶交换机默认出厂时都设置有stp协议,一旦设备上电则开启stp协议,还可以是人工手动开启每个叶交换机的stp协议。通过stp协议,所述多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的网桥协议数据单元(bridgeprotocoldataunit,bpdu)报文,具体地,可以是分别以所述多个叶交换机的中的每个叶交换机为根交换机,向其它叶交换机发送根交换机所构造的bpdu报文,在任两个叶交换机通过二者间的二层vxlan隧道发送bpdu报文的同时,记录用于唯一标识相应二层vxlan隧道的隧道标识,比如,隧道id。这样的话,就可以确定出任两个叶交换机间发送bpdu报文的二层vxlan隧道的隧道标识,如此一来,便可以确定出所有发送bpdu报文的二层vxlan隧道。
s102:从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
在具体实施过程中,所述多个叶交换机中只有一个根交换机,其余的叶交换机均为非根交换机。此外,除了可以从所述多个叶交换机中选举出根交换机和至少一个非根交换机之外,还可以选择出对应的根端口和指定端口,具体选举技术同现有技术,在此不做详述。
s103:若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。
在具体实施过程中,若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。也就是说,在二层vxlan网络中,通过stp协议检测到同一所述目标交换机不仅通过所述二层vxlan隧道接收到来自所述根交换机所构造的bpdu报文,还通过物理链路接收到来自所述根交换机所构造的bpdu报文,便可以确定出所述二层vxlan网络发生环路,从而提高了二层vxlan网络的环路检测效率。
在本发明实施例中,在步骤s103:若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路之后,所述方法还包括:
阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路。
在具体实施过程中,在确定所述二层vxlan网络发生环路之后,便可以阻塞所述物理链路在所述目标交换机侧的端口,这样的话,便可以消除所述环路,从而提高了二层vxlan网络中环路消除的效率。
在本发明实施例中,如图4所示,在步骤:阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路之前,所述方法还包括:
s201:通过所述stp协议在所述二层vxlan隧道发送所述根交换机所构造的bpdu报文中,将用于标识所述二层vxlan隧道的链路代价的字段值设定为最小值,指定所述二层vxlan隧道为发送所述根交换机所构造的bpdu报文的最优链路;
s202:通过物理链路带宽确定所述物理链路的链路代价,并在发送所述根交换机所构造的bpdu报文中,写入用于标识所述物理链路的链路代价的字段值;
s203:通过所述stp协议将所述二层vxlan隧道的链路代价与所述物理链路的链路代价进行计算;
s204:若所述物理链路的链路代价大于或者等于所述最小值,则表明所述根交换机和所述目标交换机之间存在冗余链路,指定所述物理链路为发送所述根交换机所构造的bpdu报文的次优链路。
在具体实施过程中,步骤s201至步骤s204的具体实现过程如下:
首先,可以是通过所述stp协议在所述二层vxlan隧道发送所述根交换机所构造的bpdu报文中,将用于标识所述二层vxlan隧道的链路代价的字段值设定为最小值,指定所述二层vxlan隧道为发送所述根交换机所构造的bpdu报文的最优链路。也就是说,通过所述stp协议将所述二层vxlan隧道的链路代价设定为最小值,比如,可以是将用于标识所述二层vxlan隧道的链路代价的字段值设定为“0”,相应地,可以在stp协议中加入链路代价为“0”的相关设定。然后,通过物理链路带宽确定所述物理链路的链路代价,并在发送所述根交换机所构造的bpdu报文中,写入用于标识所述物理链路的链路代价的字段值,然后,通过所述stp协议将所述二层vxlan隧道的链路代价与所述物理链路的链路代价进行计算,具体地,将用于标识所述二层vxlan隧道的链路代价的字段值和用于标识所述物理链路的链路代价的字段值进行比较,若前者小于或等于后者的字段值,也就是说,所述物理链路的链路代价大于或者等于所述最小值,相应地,表明所述根交换机和所述目标交换机之间存在冗余链路,则意味着所述根交换机和所述目标交换机之间存在两条转发报文的路径,相应地,指定所述物理链路为发送所述根交换机所构造的bpdu报文的次优链路,这样的话,后续可以选择作为最优链路的所述二层vxlan隧道来发送所述根交换机所构造的bpdu报文。也就是说,一旦检测到新加入的物理链路的链路代价大于或者等于所述最小值,则可以确定出所述根交换机和所述目标交换机之间存在冗余链路,并将所述物理链路指定为次优链路,所述二层vxlan隧道指定为最优隧道,这样的话,就可以通过将作为所述次优链路的所述物理链路的端口进行阻塞,从而消除了环路,后续通过作为最优链路的所述二层vxlan隧道来发送所述根交换机所构造的bpdu报文。在具体实施过程中,可以将二层vxlan隧道的链路代价与物理链路的链路代价间的计算方式加入stp协议,这样的话,就可以通过stp协议来实现对二层vxlan网络中的环路检测以及环路消除,从而在保证环路检测效率的同时,提高了环路的消除效率。
在本发明实施例中,在步骤s102:从所述多个叶交换机中选举出根交换机和至少一个非根交换机之后,所述方法还包括:
若所述至少一个非根交换机中每个所述非根交换机仅通过所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络未发生环路。
在具体实施过程中,在从所述多个叶交换机中选举出根交换机和所述至少一个非根交换机之后,若所述至少一个非根交换机中每个所述非根交换机仅通过所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,而没有新的物理链路加入所述二层vxlan网络中,则确定所述二层vxlan网络未发生环路。
在本发明实施例中,在步骤s102:从所述多个叶交换机中选举出根交换机和至少一个非根交换机之后,所述根交换机仍周期性发送所构造的bpdu报文,相应地,所述至少一个非根交换机中的目标交换机也周期性地接收来自所述根交换机的bpdu报文。在所述根交换机周期性发送所构造的bpdu报文的过程中,可以通过stp协议检测是否有新的物理链路加入到所述二层vxlan网络中,一旦检测到所述至少一个非根交换机中的目标交换机不仅从所述二层vxlan隧道中接收到来自所述根交换机所构造的bpdu报文,还从新加入的物理链路中接收到来自所述根交换机所构造的bpdu报文,也就是说,所述至少一个非根交换中的目标交换机可以从两个不同路径接收到来自所述根交换机所构造的bpdu报文,则说明所述二层vxlan网络发生环路。在所述二层vxlan网络发生环路之后,就可以通过stp协议来阻塞所述目标交换机的端口,从而消除了环路。
基于同一发明构思,如图5所示,一种环路检测装置,应用于二层虚拟可扩展局域网vxlan网络,包括:
发送单元10,用于通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
选举单元20,用于从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
环路确定单元30,用于若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。
在本发明实施例中,在环路确定单元30确定所述二层vxlan网络发生环路之后,所述装置还包括环路消除单元,所述环路消除单元用于:
阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路。
在本发明实施例中,在所述环路消除单元阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路之前,环路确定单元30还用于:
通过所述stp协议在所述二层vxlan隧道发送所述根交换机所构造的bpdu报文中,将用于标识所述二层vxlan隧道的链路代价的字段值设定为最小值,指定所述二层vxlan隧道为发送所述根交换机所构造的bpdu报文的最优链路;
通过所述stp协议将所述二层vxlan隧道的链路代价与所述物理链路的链路代价进行计算;
通过物理链路带宽确定所述物理链路的链路代价,并在发送所述根交换机所构造的bpdu报文中,写入用于标识所述物理链路的链路代价的字段值;
若所述物理链路的链路代价大于或者等于所述最小值,则表明所述根交换机和所述目标交换机之间存在冗余链路,指定所述物理链路为发送所述根交换机所构造的bpdu报文的次优链路。
在本发明实施例中,在选举单元20从所述多个叶交换机中选举出根交换机和至少一个非根交换机之后,所述环路消除单元用于:
若所述至少一个非根交换机中每个所述非根交换机仅通过所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络未发生环路。
基于同一发明构思,如图6所示,本发明实施例还提供了一种环路检测装置,所述环路检测装置包括处理器100,处理器100用于执行存储器200中存储的计算机程序时以实现包括如下步骤:
通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。
可选的,处理器100具体可以是中央处理器、特定应用集成电路(英文:applicationspecificintegratedcircuit,简称:asic),可以是一个或多个用于控制程序执行的集成电路。
可选的,存储器200可以包括只读存储器(英文:readonlymemory,简称:rom)、随机存取存储器(英文:randomaccessmemory,简称:ram)和磁盘存储器。存储器200用于存储处理器100运行时所需的数据,即存储有可被处理器100执行的计算机程序,处理器100通过执行存储器200存储的计算机程序,执行如图3所示的方法。其中,存储器200的数量为一个或多个,处理器100的数量为一个或多个。
其中,发送单元10、选举单元20和环路确定单元30所对应的实体设备均可以是前述的处理器100。该装置可以用于执行图3所示的实施例所提供的方法,例如:通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。因此关于该装置中各功能模块所能够实现的功能,可参考图3所示的实施例中的相应描述,不多赘述。
本发明实施例还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的环路检测方法的步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
1.一种环路检测方法,应用于二层虚拟可扩展局域网vxlan网络,其特征在于,包括:
通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。
2.如权利要求1所述的方法,其特征在于,在所述确定所述二层vxlan网络发生环路之后,所述方法还包括:
阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路。
3.如权利要求2所述的方法,其特征在于,在所述阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路之前,所述方法还包括:
通过所述stp协议在所述二层vxlan隧道发送所述根交换机所构造的bpdu报文中,将用于标识所述二层vxlan隧道的链路代价的字段值设定为最小值,指定所述二层vxlan隧道为发送所述根交换机所构造的bpdu报文的最优链路;
通过物理链路带宽确定所述物理链路的链路代价,并在发送所述根交换机所构造的bpdu报文中,写入用于标识所述物理链路的链路代价的字段值;
通过所述stp协议将所述二层vxlan隧道的链路代价与所述物理链路的链路代价进行计算;
若所述物理链路的链路代价大于或者等于所述最小值,则表明所述根交换机和所述目标交换机之间存在冗余链路,指定所述物理链路为发送所述根交换机所构造的bpdu报文的次优链路。
4.如权利要求1所述的方法,其特征在于,在所述从所述多个叶交换机中选举出根交换机和至少一个非根交换机之后,所述方法还包括:
若所述至少一个非根交换机中每个所述非根交换机仅通过所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络未发生环路。
5.一种环路检测装置,应用于二层虚拟可扩展局域网vxlan网络,其特征在于,包括:
发送单元,用于通过生成树stp协议,多个叶交换机中任两个叶交换机间通过二层vxlan隧道互相发送各个叶交换机所构造的bpdu报文,并记录用于唯一标识所述二层vxlan隧道的隧道标识,其中,所述多个叶交换机中各个叶交换机均开启所述stp协议;
选举单元,用于从所述多个叶交换机中选举出根交换机和至少一个非根交换机;
环路确定单元,用于若所述至少一个非根交换机中的目标交换机经所述隧道标识对应的所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,且所述目标交换机经物理链路接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络发生环路。
6.如权利要求5所述的装置,其特征在于,在所述环路确定单元确定所述二层vxlan网络发生环路之后,所述装置还包括环路消除单元,所述环路消除单元用于:
阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路。
7.如权利要求6所述的装置,其特征在于,在所述环路消除单元阻塞所述物理链路在所述目标交换机侧的端口,消除所述环路之前,所述环路确定单元还用于:
通过所述stp协议在所述二层vxlan隧道发送所述根交换机所构造的bpdu报文中,将用于标识所述二层vxlan隧道的链路代价的字段值设定为最小值,指定所述二层vxlan隧道为发送所述根交换机所构造的bpdu报文的最优链路;
通过物理链路带宽确定所述物理链路的链路代价,并在发送所述根交换机所构造的bpdu报文中,写入用于标识所述物理链路的链路代价的字段值;
通过所述stp协议将所述二层vxlan隧道的链路代价与所述物理链路的链路代价进行计算;
若所述物理链路的链路代价大于或者等于所述最小值,则表明所述根交换机和所述目标交换机之间存在冗余链路,指定所述物理链路为发送所述根交换机所构造的bpdu报文的次优链路。
8.如权利要求5所述的装置,其特征在于,在所述选举单元从所述多个叶交换机中选举出根交换机和至少一个非根交换机之后,所述环路消除单元用于:
若所述至少一个非根交换机中每个所述非根交换机仅通过所述二层vxlan隧道接收到所述根交换机所构造的bpdu报文,则确定所述二层vxlan网络未发生环路。
9.一种环路检测装置,其特征在于,所述环路检测装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-4中任一项所述的环路检测方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的环路检测方法的步骤。
技术总结