专利名称:一种虚拟局域网环路检测方法和装置的利记博彩app
技术领域:
本发明涉及网络通信技术领域,特别是涉及ー种虚拟局域网环路检测方法和装置。
背景技术:
虚拟局域网(VLAN, Virtual Local Area Network)是在一个物理网络上划分出来的逻辑网络,虚拟局域网技术允许处于不同物理位置上的交換机在逻辑上构成ー个局域 网,在ー个VLAN内部的广播、组播以及单播数据帧不会转发到其他的VLAN中,从而有助于控制流量,減少设备投入、提高网络的安全性能。但随着通讯技术的发展,通常的以太网的网络拓扑结构也变得较为复杂,很容易由于配置错误导致虚拟局域网中形成环路。一旦某个VLAN中形成环路,则会导致在该VLAN内出现广播风暴,使数据在本网络内被不断复制传播,占用大量网络带宽,进而影响交换机的性能甚至导致整个网络瘫痪。为了保证虚拟局域网的正常运行,虚拟局域网的环路检测技术被广泛应用。通常的环路检测技术中,如需检测交換机上的端ロ所处的VLAN内是否存在环路,则生成检测该VLAN环路故障的广播检测报文,并通过该端ロ发送该广播检测报文,如果该交換机接收到自身发送的检测报文,则该VLAN中存在环路。通常的环路检测方法虽然能够检测出VLAN中的环路,但是仅能知道该VLAN中存在环路,却无法获取到环路故障的详细信息。当需要破除虚拟局域网中的环路时,可能需要用户针对该VLAN中的所有交換机逐个进行故障排除,从而无法快速的进行环路破除。
发明内容
为解决上述技术问题,本发明实施例提供了一种虚拟局域网环路检测方法和装置,以解决不能获取到虚拟局域网中环路故障的详细信息的问题。为实现以上目的,本发明提供了一种虚拟局域网环路检测方法,包括交换机接收检测报文,将接收到该检测报文的端ロ作为接收端ロ,所述检测报文中包括发起环路检测的原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识和第一待检测虚拟局域网VLAN集合;当所述接收端ロ配置的VLAN中至少ー个VLAN属于所述第一待检测VLAN集合时,将所述接收端ロ配置的VLAN中的,并属于所述第一待检测VLAN集合的VLAN的集合作为第ニ待检测VLAN集合;当所述交换机不为所述原交换机时,保存所述接收端ロ的标识、所述原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识以及所述第二待检测VLAN集合中的VLAN之间的关联关系,以及确定转发端ロ,所述转发端ロ为所述交換机中除所述接收端ロ外的端ロ,并且所述转发端ロ中配置有所述第二待检测VLAN集合中至少ー个VLAN ;将所述转发端ロ配置的VLAN中的,并属于所述第二待检测VLAN集合的VLAN的集合作为与所述转发端ロ相关的第三待检测VLAN集合;当所述交换机保存的关联关系中存在冲突关联关系,则确定所述第三待检测VLAN集合中的,并且在上述冲突关联关系中的VLAN中存在环路故障,并将环路故障信息通知所述原交換机,所述环路故障信息包括被确定存在环路故障的VLAN的信息和所述交换机的信息,所述冲突关联关系为所述转发端ロ的标识、所述原交換机的标识、所述原交换机发起环路检测的检测端ロ的标识以及与所述转发端ロ相关的第三待检测VLAN集合中的VLAN之间的关联关系;当所述交换机为所述原交换机时,则确定所述第二待检测VLAN集合中的VLAN中存在环路。另ー方面,本发明还提供了一种虚拟局域网环路检测装置,包括接收单元,用于接收检测报文,并将接收到该检测报文的端ロ作为接收端ロ,所述检测报文中包括发起环路检测的原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识和第一待检测VLAN集合;第一待检测VLAN确定单元,用于当所述接收端ロ配置的VLAN中至少ー个VLAN属于所述第一待检测VLAN集合吋,将接收端ロ配置的VLAN中的,并属于所述第一待检测VLAN集合的VLAN的集合作为第二待检测VLAN集合;判断単元,用于判断接收所述检测报文的交换机是否为所述原交換机;关联关系保存単元,用于当所述交换机不为所述原交换机时,保存所述接收端ロ的标识、所述原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识以及所述第ニ待检测VLAN集合中的VLAN之间的关联关系;转发端ロ确定单元,用于确定转发端ロ,所述转发端ロ为所述交換机中除所述接收端口外的端ロ,并且所述转发端ロ中配置有所述第二待检测VLAN集合中至少ー个VLAN ;第二待检测VLAN确定单元,用于将所述转发端ロ配置的VLAN中的,并属于所述第ニ待检测VLAN集合的VLAN的集合作为与所述转发端ロ相关的第三待检测VLAN集合;第一故障确定单元,用于当所述交换机保存的关联关系中存在冲突关联关系,,则确定所述第三待检测VLAN集合中的,并且在上述冲突关联关系中的VLAN中存在环路故障,所述冲突关联关系为所述转发端ロ的标识、所述原交換机的标识、所述原交换机发起环路检测的检测端ロ的标识以及与所述转发端ロ相关的第三待检测VLAN集合中的VLAN之间的关联关系;故障上报单元,用于当所述第一故障确定单元确定出环路故障吋,将确定出的环路故障信息通知所述原交換机,所述环路故障信息包括被确定存在环路故障的VLAN的信息和所述交换机的信息;第二故障确定单元,用于当所述交换机为所述原交换机时,则确定所述第二待检测VLAN集合中的VLAN中存在环路。
经由上述的技术方案可知,本发明提供了一种虚拟局域网环路检测方法和交換机,该方法当交換机的接收端ロ接收到检测报文,在该检测报文中包括原交換机的标识、检测端ロ的标识,第一待检测VLAN集合,如果该接收端ロ所配置的VLAN中至少ー个VLAN属于该第一待检测VLAN集合,则将该接收端ロ配置的VLAN中的,并且属于该第一待检测VLAN集合的VLAN作为第二待检测VLAN集合,并进一歩确定该交换机是否为该原交換机,如果该交换机为原交換,则确定该第二待检测VLAN集合的VLAN中存在环路;如果该交換机不为原交換机,则该交换机将保存该接收端ロ的标识、原交換机的标识、检测端ロ的标识和第二待检测VLAN集合中的VLAN之间的关联关系,进而当该交换机确定出转发端ロ吋,依据该关联关系中是否存在冲突关联关系来确定与该转发端ロ相关的第三待检测VLAN集合中的VLAN中是否存在环路故障,并在该交換机检测出环路故障吋,将环路故障信息通知给原交換机。这样原交換机在确定出环路故障的同吋,还可以获取处于环路故障中的交换机发送的具体的环路故障信息,从而得到可以得到比较详细、准确的环路故障信息,进而加快环路故障修复的速度。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明一种虚拟局域网环路检测方法的一个实施例的流程示意图;图2为本发明中的检测报文格式示意图;图3为本发明中的终止报文格式示意图;图4为本发明中交換机依据终止报文进行环路报文管理的流程示意图;图5为本发明一种虚拟局域网环路检测方法的另ー个实施例的流程示意图;图6为本发明一种虚拟局域网环路检测环路装置一个实施例的结构示意图;图7为本发明一种虚拟局域网环路检测环路装置另ー个实施例的结构示意图;图8为本发明一种虚拟局域网环路检测环路装置另ー个实施例的结构示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进ー步详细的说明。通常的环路检测方法虽然能够检测出VLAN中的环路,但是仅能知道VLAN中存在环路,却无法获取到环路故障的详细信息。当需要破除虚拟局域网中的环路时,可能需要用户针对该VLAN中的所有交换机进行故障排除,无法快速的进行环路破除。同时,由于虚拟局域网中交換机的一个端ロ一般会配置有多个VLAN,即ー个端ロ与多个VLAN绑定,从而使得ー个端ロ可能同时处于多个VLAN中。这样如果发起环路检测的交换机的某端ロ绑定有多个VLAN,且该交换机需要对与该端ロ绑定的所有VLAN均进行环路检测,则该交換机需要分别针对与该端ロ具有关系的每个VLAN均构建ー个广播检测报文,则该交换机构建的广播检测报文的数量较大。并且发起环路检测的交換机外的其它交换机可能都需要处理大量的检测报文,数据处理量大,而且増加了网络负担,占用带宽大。例如,假设交换机A为发起环路检测的交换机,该交换机A的端ロ Al绑定有3个VLAN,如,VLANl、VLAN2和VLAN3,如果这三个VLAN均需要被检测,则交换机A需要分别对该端ロ Al构造VLANl的广播检测报文、VLAN2的广播检测报文和VLAN3的广播检测报文,交换机A构造的检测报文数量多。如果网络中的某个交换机B的一个或多个端ロ均与这三个VLAN绑定吋,则该交换机B需要分别处理这三个VLAN的三个广播检测报文,加大了该交换机B的数据处理量,而且由于网络中传输的检测报文的数量大,也会造成网络带宽占用大的问题。本发明就是针对如上问题,提出了一种虚拟局域网环路检测的方法,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。參见图1,示出了本发明ー种虚拟局域网环路检测方法一个实施例的流程示意图,包括步骤101 :交换机接收检测报文,将接收到该检测报文的端ロ作为接收端ロ,该检测报文中包括发起环路检测的原交換机的标识、该原交換机发起环路检测的检测端ロ的标识和第一待检测VLAN集合。该原交换机的标识可以是原交换机的介质访问控制(Media Access Control,MAC)地址。该检测端ロ的标识可以为该检测端ロ的端ロ索引。该原交换机为环路检测的发起设备。该检测端ロ是指该原交換机发起环路检测的端ロ,也即该原交換机发出该检测报文的端ロ。本发明实施例将待检测的VLAN的集合称为待检测VLAN集合,为了描述方便,将接收到的检测报文中的检测VLAN集合称为第一待检测VLAN集合。其中,该第一待检测VLAN集合包括有至少ー个VLAN。该检测报文的第一待检测VLAN集合标示了当前需要被进行环路检测的VLAN的信息。与通常方案不同,该检测报文为桥协议数据单元(BTOU,BridgeProtocol Date Unit)格式的报文。该BPDU格式的报文可以在相邻两个交换机之间传输。在交换机接收到的检测报文的第一待检测VLAN集合中的VLAN的数量可以是ー个或多个。当待检测VLAN集合中的VLAN的数量大于ー吋,则发起环路检测的原交換机通过发送ー个检测报文可以完成多个VLAN的环路检测。该第一待检测VLAN也可以仅包括ー个VLAN,则发起环路检测的原交換机为每个需要被检测的VLAN发送ー个对应的检测报文。步骤102 :当该接收端ロ配置的VLAN中至少ー个VLAN属于该第一待检测VLAN集合吋,将该接收端ロ配置的VLAN中的,并属于该第一待检测VLAN集合的VLAN的集合作为第二待检测VLAN集合。当该接收端ロ接收到该检测报文时,如果该接收端ロ配置的VLAN组成的集合与该检测报文中的第一待检测VLAN集合之间的交集为空集,则说明该接收端ロ并未处在该检测报文所检测的VLAN内,此种情况下,该交换机可以不处理该检测报文,该交换机也可以将该检测报文丢弃。如果该接收端ロ配置的VLAN中至少ー个VLAN属于第一待检测VLAN集合,则将同时属于该接收端ロ所配置的VLAN以及第一待检测VLAN集合的VLAN的集合作为与该接收端ロ相关的第二待检测VLAN集合。例如,交换机的接收端ロ配置的VLAN包括VLANl、VLAN2、VLAN4和VLAN5,如果检测报文中的第一待检测VLAN集合包括VLAN3和VLAN6,则该接收端ロ配置的VLAN均不属于该 第一待检测VLAN集合,则该交換机将该检测报文丢弃;如果该检测报文中第一待检测VLAN集合包括VLAN1、VLAN2和VLAN3,则接收端ロ所配置的VLAN中VLANl和VLAN2属于该第一待检测VLAN集合,将该VLANl和VLAN2的集合作为第二待检测VLAN集合。如果该第一待检测VLAN集合仅包括ー个VLAN,则第二待检测VLAN集合与第一待检测VLAN集合相同。例如,交换机的接收端ロ配置的VLAN包括VLANl、VLAN2、VLAN4和VLAN5,如果检测报文中的第一待检测VLAN集合包括VLAN3,则该接收端ロ配置的VLAN均不属于该第一待检测VLAN集合,则该交換机将该检测报文丢弃;如果该检测报文中第一待检测VLAN集合包括VLANl,则当接收端ロ所配置的VLAN中VLANl属于该第一待检测VLAN集合,则第二待检测VLAN集合与第一待检测VLAN集合相同,即仅包括VLANl。步骤103 :当该交换机不为该原交换机时,保存该接收端ロ的标识、该原交换机的标识、该原交換机发起环路检测的检测端ロ的标识以及该第二待检测VLAN集合中的VLAN之间的关联关系。当交换机确定出该接收端ロ配置的VLAN中至少ー个VLAN属于第一待检测VLAN 集合,且该交換机不是发起环路检测的原交換机吋,该交换机保存该接收端ロ的标识、原交换机的标识、检测端ロ的标识、检测端ロ的标识以及第ニ待检测VLAN集合中的VLAN之间的关联关系。交換机可以根据检测报文中的发起环路检测的原交換机的标识以及该交换机自身的标识确定该交換机是不是发起环路检测的原交換机。如果该原交換机的标识与该交换机自身的标识不同,则该交換机不为发起环路检测的原交換机。如果该第二待检测VLAN集合中包括多于ー个VLAN,该交换机可以保存该接收端ロ的标识、原交換机的标识、检测端ロ的标识、检测端ロ的标识以及第ニ待检测VLAN集合中的所有VLAN之间的关联关系;也可以分别保存该接收端ロ的标识、原交換机的标识、检测端ロ的标识、检测端ロ的标识以及第ニ待检测VLAN集合中的各个VLAN之间的关联关系。该关联关系可以保存在环路信息表中,当接收端ロ接收到检测报文并确定出与该接收端ロ对应的第二待检测VLAN集合吋,可以在该环路信息表添加该接收端ロ的标识、原交換的标识、检测端ロ的标识以及第ニ待检测VLAN集合中的VLAN之间的关联关系。查询该环路信息表便可以确定出该交换机中哪些端ロ接收过该原交換机的检测端ロ发出的检测报文,并且可以确定该端ロ接收到的检测报文所检测的与该端ロ相关的VLAN,即第二待检测VLAN集合中的VLAN。步骤104 :确定转发端ロ,其中,该转发端ロ为该交换机中除该接收端口外的端ロ,并且该转发端ロ中配置有第二待检测VLAN集合中的至少ー个VLAN。当该交换机不为原交换机时,将该交换机中除该接收端口外的,且配置有第二待检测VLAN集合中至少ー个VLAN的端ロ作为转发端ロ。进ー步的,该交换机可以将报文转发至确定出的转发端ロ。转发端ロ的数量可以为多个。如果第一待检测VLAN集合仅包括ー个VLAN,则第二待检测VLAN集合与第一待检测VLAN集合相同。则步骤104与下述步骤等同确定转发端ロ,其中,该转发端ロ为该交換机中除该接收端口外的端ロ,并且该转发端口中配置有第一待检测VLAN集合中的VLAN。本领域技术人员可以理解,确定出的转发端ロー定为物理状态可用的端ロ,即该转发端ロ 一定为本领域俗称的UP端ロ。步骤105 :将转发端ロ配置的VLAN中的,并属于第二待检测VLAN集合的VLAN的集合作为与转发端ロ相关的第三待检测VLAN集合。
确定出某转发端ロ之后,则将同时属于该转发端ロ所配置的VLAN以及第ニ待检测VLAN集合的VLAN的集合作为该第三待检测VLAN集合。当该交换机的转发端ロ有多个吋,与不同的转发端ロ相关的第三待检测VLAN也可能不同。如果第一待检测VLAN集合仅包括ー个VLAN,则第三待检测VLAN集合与第一待检测VLAN集合相同。步骤106 :当该交换机保存的关联关系中存在冲突关联关系,则确定第二待检测VLAN集合中的,并且在上述冲突关联关系中的VLAN中存在环路故障,该冲突关联关系为转发端ロ的标识、原交換机的标识、原交換机发起环路检测的检测端ロ的标识以及与转发端ロ相关的第三待检测VLAN集合中的VLAN之间的关联关系。 如果该交換机保存的关联关系中已经存在冲突关联关系,即在该关联关系中已经保存有该转发端ロ的标识、原交換机的标识、检测端ロ的标识以及与该转发端ロ相关的第三待检测VLAN集合中某ー个或某几个VLAN之间的关联关系,则该某ー个或某几个VLAN处于冲突关联关系中,进而得到该某ー个或某几个VLAN中存在环路故障,且该交換机处于确定出的环路故障中,且该转发端ロ也处于确定出的环路故障中。该交换机保存的关联关系中已经存在冲突关联关系,说明该转发端ロ已经作为接收端ロ接收过包括该原交換机的标识和检测端ロ的标识的,并且检测处于冲突关联关系中的VLAN的检测报文,从而可以确定该转发端ロ以及该接收端ロ均处于环路故障中。也就是说,当依据该与该接收端ロ相关的第二待检测VLAN集合,确定出转发端ロ,并且判断出该交换机保存的关联关系中存在冲突关联关系时,则可确定该转发端ロ与该接收端ロ均处于环路故障中。如果第一待检测VLAN集合仅包括ー个VLAN,则第三待检测VLAN集合与第一待检测VLAN集合相同。则步骤106与下述步骤等同当该交换机保存的关联关系中存在冲突关联关系,则确定第一待检测VLAN集合中的VLAN中存在环路故障,该冲突关联关系为转发端ロ的标识、原交換机的标识、原交換机发起环路检测的检测端ロ的标识以及第一待检测VLAN集合中的VLAN之间的关联关系。当在交換机通过环路信息表保存该关联关系时,则通过查询该环路信息表中来确定是否存在冲突关联关系。步骤107 :将环路故障信息通知该原交换机,其中,该环路故障信息包括被确定存在环路故障的VLAN的信息和所述交换机的信息。为了发起环路检测的交換机能够最终确定出哪些交換机存在故障,则确定出环路故障的交換机需将其确定出的环路故障信息通知给该发起环路检测的原交換机。具体的,该交换机可以向该原交换机发送一单播报文,以将该环路故障信息通知给该原交換机。其中,该环路故障信息包括所述第三待检测VLAN中存在环路故障的VLAN信息和所述交换机的标识信息。在该环路故障信息中还可以进ー步包括该交换机中的该接收端ロ的标识信息和该转发端ロ的标识信息。如果有多个转发端ロ处于环路故障中,该环路故障信息中包括处于环路故障中的多个转发端ロ的标识信息。步骤108 :当该交换机为原交換机吋,则确定第二待检测VLAN集合中的VLAN中存在环路。交换机可以根据检测报文中的发起环路检测的原交换机的标识以及该交换机自身的标识确定该交換机是不是发起环路检测的原交換机。如果该原交換机的标识与该交换机自身的标识相同,则该交换机为发起环路检测的原交换机。该交换机为原交换机并且该接收端ロ配置的VLAN组成的集合与该检测报文中的第一待检VLAN集合之间的交集为非空集合,说明该交换机可以从该接收端ロ接收到自身在第二待检测VLAN集合的VLAN中发出的数据报文,从而该交換机可以确定该第二待检测VLAN集合的VLAN中存在环路。进ー步的,当该交换机为原交换机时,该交换机可以进ー步判断该接收端ロ是否为该原交换机发起环路检测的检测端ロ,当该接收端ロ为发起环路检测的检测端ロ时,则确定该第二待检测VLAN集合中的VLAN中存在环路,且该原交换机外部成环;当该接收端ロ不为该原交換机发起环路检测的检测端ロ,则确定该第二待检测VLAN集合中的VLAN中存在环路故障,且该原交换机处于环路中。该交换机可以根据原交換机发起环路检测的检测端ロ的标识和该接收端ロ的标识判断该接收端ロ是否为该原交換机发起环路检测的检测端ロ。当原交换机发起环路检测的检测端ロ的标识和该接收端ロ的标识判断该接收端ロ相同吋,该接收端ロ为该原交換机发起环路检测的检测端ロ。当原交换机发起环路检测的检 测端ロ的标识和该接收端ロ的标识判断该接收端ロ不同吋,该接收端ロ不为该原交换机发起环路检测的检测端ロ。上述原交换机外部成环包括与原交换机处于同一虚拟局域网中的某交换机的端ロ间成环,如某虚拟局域网中该原交換之外的某交換机的两个端ロ成环;与该原交换机处于同一虚拟局域网中的其他多个交换机的端ロ间构成环路,如,某虚拟局域网中该原交換之外的交换机I、交换机2和交换机3的端ロ构成环路;或者是,原交换机中该检测报文对应的检测端ロ自身成环。在以上这几种原交換机外部成环的情况下,原交換机从检测端ロ发出检测端ロ后,该原交換机的该检测端ロ会接收到包含原交換机标识和检测端ロ标识的检测报文。在原交換机外部成环的情况下,该原交換机可以确定出自身外部成环。进ー步的,该原交换可以根据是否接收到其他交換机上报的环路故障信息来确定是否为检测端ロ自身成环,如果在指定时间内未接收到其他交换机发送的环路故障信息则确定该检测端ロ自身成环,如果该原交換机接收到其他交換机上报的环路故障信息,则可以根据该环路故障信息进ー步确定具体构成环路故障的交换机。上述该原交换机处于环路中包括原交換机的两个端ロ之间形成环路,使得原交换机处于环路当中;或者是多台交換机和该原交换机构成环路。在以上原交换机处于环路中的情况时,可以直接通过对该对该原交換机的接收到该检测报文的接收端ロ的配置进行更改即可避免环路故障。如,原交換机I的端ロ 11与交換机2的端ロ 21相连,该交換机2的端ロ 22与交换机3的端ロ 31相连,交换机3的端ロ 32与原交换机I的端ロ 12相连,从而构成环路,当该原交换机从端ロ 11发出包括该原交換机的标识和检测端ロ的标识的检测报文后,该原交換机最終会通过该端ロ 12接收到包括该原交換机的标识和检测端ロ的标识的检测报文,在该种情形下就可以确定出该原交换处于环路中,进而通过断开该接收端ロ即端ロ 12与交换机3的端ロ 32之间的连接,来避免环路故障。本实施例的虚拟局域网环路故障检测方法中,以太网中的一交换机通过ー接收端ロ接收到该检测报文,在该检测报文中包括原交換机的标识、检测端ロ的标识,第一待检测VLAN集合,如果该接收端ロ所配置的VLAN中至少ー个VLAN属于该第一待检测VLAN集合,则将该接收端ロ配置的VLAN中的,并且属于该第一待检测VLAN集合中的VLAN作为第ニ待检测VLAN集合,并进一歩确定该交换机是否为该原交換机,如果该交換机不为原交換机,则该交换机将保存该接收端ロ的标识、原交換机的标识、检测端ロ的标识和第二待检测VLAN集合中的VLAN之间的关联关系,进而当该交换机将该检测报文转发至确定出的转发端ロ吋,依据该关联关系中是否存在冲突关联关系来确定与该转发端ロ相关的第三待检测VLAN集合中的VLAN中是否存在环路故障,并在该交換机检测出环路故障吋,将环路故障信息通知给原交換机。这样,本发明当原交換机发起环路检测后,如果环路中出现故障,不仅该原交換自身可以确定出环路故障,处于环路故障中的交換机也可以检测出环路故障,并将环路故障信息通知给原交換机,进而使得该原交換机不仅自身可以确定出现环路故障的VLAN,也可以进ー步获取出现环路故障的交換机所通知的具体环路故障信息,从而原交換机可以得到更加详细的环路故障信息,以便于加快环路故障的修复速度。另外,由于本发明的检测报文中的第一待检测VLAN集合可以包括ー个VLAN或多个VLAN。如果第一待检测VLAN集合包括多个VLAN,可以在需要对多个VLAN进行环路检测时,仅构建ー个检测报文,以进行这多个VLAN的环路检测,从而減少了原交换机构建检测报文的数量。当某交換机同时处于该检测报文所检测的多个VLAN中时,该交换机仅需要处 理ー个检测报文即可完成这多个VLAN的环路检测,降低了虚拟局域网中交换机处理的检测报文的数量,从而降低了数据处理量,也降低了由于大量报文传输所占用的带宽。在该检测报文中的检测端ロ的标识为该检测端ロ的端ロ索引吋,对应的,该接收端ロ和转发端ロ的标识也分别为接收端ロ的端ロ索引和转发端ロ的端ロ索引。当该交换机确定出转发端ロ以及与该转发端ロ相关的第三待检测VLAN集合后,该交换机还从转发端ロ转发检测报文。本发明中在转发该检测报文前,需要将该检测报文中的第一待检测VLAN集合修改为与该转发端ロ相关的第三待检测VLAN集合,并将该修改后的检测报文从该转发端ロ发出,以便处于该第三待检测VLAN集合的VLAN中的交換机也可以依据该检测报文检测自身是否处于环路故障当中。可选的,为了避免当某VLAN中出现环路故障时,该检测报文不断地在网络中复制传播而形成广播风暴,在步骤106中确定该交換机保存的关联关系中不存在冲突关联关系,即某转发端ロ相关的第三待检测VLAN集合的VLAN中不存在环路故障吋,才将该第一待检测VLAN集合修改为第三待检测集合的检测报文从该转发端ロ转发。在该第一待检测VLAN包括多于ー个VLAN时,在确定转发端ロ、以及与转发端ロ相关的第三待检测VLAN集合吋,都需要利用与该接收端ロ相关的第二待检测VLAN集合。该交換机可以保存与该接收端ロ相关的第二待检测VLAN集合;该交换机也可以将该检测报文中的第一待检测VLAN集合修改为第二待检测VLAN集合,并将该修改后的检测报文转发到该交换机中除接收端ロ之外的其他端ロ,进而依据该检测报文中的第二待检测VLAN集合确定转发端ロ以及该转发端ロ相关的第三待检测VLAN集合。交换机保存与该接收端ロ相关的第二待检测VLAN集合,可以不用修改报文,減少操作。交換机将该检测报文中的第一待检测VLAN集合修改为第二待检测VLAN集合,可以不用存储第二待检测VLAN集合,减少对存储空间的占用。如果采用将该检测报文中的第一待检测VLAN集合修改为第二待检测VLAN集合的方案,进ー步的,当该交换机中除接收端ロ之外的其他端ロ中的一个确定出的与该端ロ对应的第三待检测VLAN集合为非空集合吋,该端ロ为转发端ロ。该转发端ロ将检测报文中的第二待检测VLAN集合修改为第三待检测VLAN集合,将包含第三待检测VLAN集合的检测报文从该转发端ロ发出。可选的,该转发端ロ可以在与该转发端ロ相关的第三待检测VLAN集合的VLAN中不存在环路故障吋,才将该第二待检测VLAN集合修改为第三待检测集合的检测报文从该转发端ロ发出。当该交换机中除接收端ロ之外的其他端ロ中的一个确定出的与该端ロ对应的第三待检测VLAN集合为空集吋,该端ロ不为转发端ロ,该端ロ将该检测报文丢弃。在本发明中可以用比特位图(bitmap)的方式在该检测报文中表示待检测VLAN集合,如第一待检测VLAN集合、第二待检测VLAN集合或第三待检测VLAN集合,中的VLAN。或者,用待检测VLAN集合中的VLAN的虚拟局域网标识(VID,VLAN identifier)标示待检测VLAN集合中的VLAN。參见图2,为本发明的检测报文格式示意图,在该检测报文中以比特位图方式表示待检测VLAN集合,在该检测报文中包括DMAC、SMAC, PortIndex和Bitmap等信
O 其中,该DMAC表示目的MAC地址,该DMAC使用的是BPDU格式的MAC地址,以表示该报文的类型为BPDU格式的检测报文。该DMAC的取值为0180-C200-0000至0180-C200-000F之间的ー个未被使用的MAC地址,但是一旦从以上地址中确定了ー个MAC地址作为DMAC,则BPDU格式的检测报文的DMAC地址便固定不变了。SMAC表示源MAC地址,即发起环路检测的原交换机的MAC地址。在该检测报文中还包括了原交換机发起环路检测的检测端ロ的标识,在图2所示的检测报文中,该检测端ロ的标识采用端ロ索引PortIndex进行标识。端ロ索引PortIndex可以唯一标识ー个交换机中的ー个端ロ。在该检测报文中包括了当前待检测的VLAN集合,该待检测的VLAN集合中的VLAN可以为ー个或者多个,在该检测报文中,可以采用比特位图Bitmap的形式表示出待检测VLAN集合,在该Biatmap中将待检测VLAN集合中包含的VLAN所对应的比特位置I,而将该检测报文中未检测的VLAN所对应的比特位置O。可选的,为了降低检测报文的长度,该检测报文中还标示有该比特位图中最大比特位MAX-Vlan Value。例如,当该检测报文中包含的待检测VLAN集合为VLANl、VLAN2、VLAN5、VLAN6和VLAN7,则该比特位图中将VLAN1、VLAN2、VLAN5、VLAN6和VLAN7在对应的比特位置1,则将其他比特位置0,由于ー个以太网中VLAN数量可能较大,在该比特位图中仅可以将设置7个比特位即可,在该7个比特位中将VLAN1、VLAN2、VLAN5、VLAN6和VLAN7对应的比特位置1,而将VLAN3和VLAN4对应的比特位置0,对于VLAN7之后的VLAN则可以认为其对应的比特位为O。此时该MAX-Vlan Value则应该为VLAN7对应的比特位。另外,该检测报文中还可以包括报文长度TotalLength信息,报文类型标识type,检测报文子类型subtype等标识信息。进ー步的,在本实施例中为了网络中的其他交換机也能够利用检测报文进行环路故障检测,因此无论该交换机是否检测到环路故障,都会执行将包含第三待检测VLAN集合的检测报文从转发端ロ发出的操作,但是当出现环路吋,检测报文可能会在虚拟局域网中一直转发,造成处于虚拟局域网中的交換机的数据处理量増大,造成了资源消耗。为了进一歩减少资源消耗,当该交换机为发起环路检测的原交换机时,且该原交換机确定出存在环路故障的VLAN后,该发起环路检测的原交换机还可以构建与该检测报文对应终止报文(kill报文),并将该终止报文从该其发起环路检测的检测端ロ发出,以通知其他交換机停止处理该检测报文。其中,该终止报文中包括该原交换机的标识和该原交换机发起的环路检测的检测端ロ的标识。其中,该原交换机的标识可以为该原交换机的MAC地址,该检测端ロ的标识可以为该检测端ロ的端ロ索引。当虚拟局域网中的交换机接收到终止报文时,根据该终止报文中的原交换机的标识和检测端ロ的标识,就可以确定出该终止报文所对应的检测报文,从而终止与该原交換机的标识和检测端ロ的标识对应的检测报文的处理。
另外,当交換机接收到终止报文,根据该终止报文停止对该终止报文对应的检测报文的处理的同时,也将该终止报文进行转发,同吋,该交换机停止该对终止报文进行处理,以避免处于在环网中的交換机反复处理该终止报文,造成资源浪费。其中,该终止报文也为BPDU格式的报文,參见图3,示出了本发明中终止报文格式示意图。该终止报文为BPDU格式的报文,该终止报文的DMAC与检测报文中的DMAC相同,该终止报文中还包含了发起环路检测的原交換机的MAC地址即图中的SMAC,以及检测端ロ的端ロ索引即图中的PortIndex。与检测报文相似,在该终止报文中也包括了该报文的总长度TotalLength的信息、报文类型type,该type为Eth-Type (0X9997),以及报文的子类型subtype等信息。当环路中的某交换机接收到该终止报文后,该交换机会终止与该终止报文对应的检测报文的处理操作,以便减少资源消耗,參见图4示出了本发明的交換机接收终止报文,并依据该终止报文进行环路报文管理的流程图,包括步骤401 :交换机接收终止报文,该终止报文中包括发起环路检测的原交换机的标识和检测端ロ的标识。其中,该发起环路检测的原交換机的标识也是生成该终止报文的原交換机的标识。对应的,该检测端ロ为原交换机发出终止报文的端ロ,也是该原交換机发起环路检测的端ロ。终止报文所对应的检测报文可以根据原交換机的标识以及检测端ロ的标识来确定,如果检测报文和终止报文中的原交換机的标识以及检测端ロ的标识相同,那么该检测报文与终止报文为相对应的报文。步骤402 :交換机根据该终止报文中的原交換机的标识,判断自身是否为原交換机,如果是,则丢弃该终止报文;如果否,则进入步骤403。步骤403 :交换机将停止处理与该原交換机的标识和检测端ロ的标识对应的检测报文,并在保存该检测报文处理状态为终止。当保存与该原交換机的标识和检测端ロ的标识对应的检测报文的处理状态为终止后,当该交换机再次接收到该包括该原交換机的标识和检测端ロ的标识的检测报文吋,就不会对该检测报文进行处理。同时,本发明中当交換机依据该终止报文中的原交換机标识和检测端ロ的标识,終止与该原交換机的标识和检测端ロ的标识对应的检测报文的处理同吋,也会停止对该终止报文的处理,并保存与该原交換机的标识和检测端ロ的标识对应的终止报文的处理状态为终止,当该交换机再次接收到与该原交換机和检测端ロ对应的終止报文时,如果判断出该终止报文的处理状态为终止,则不会对该终止报文进行处理。保存该检测报文和处理报文的处理状态的方式有多种,其中ー种方式为在交换机内可以预先建立环路报文处理标记表,在该环路报文处理标记表中可以通过设置检测报文和终止报文的处理标记来记录该检测报文和终止报文的处理状态。处理标记可以分别设置为关闭和打开,当某检测报文或终止报文对应的处理标记为关闭时,则本交換机不对该检测报文或終止报文进行处理;则当某检测报文或终止报文的处理标记设置为打开吋,当接收到该检测报文或终止报文吋,仍可以正常处理该检测报文或该终止报文。查询该环路处理标记表中是否存在某检测报文或终止报文的处理标记时,可以通过该检测报文或终止报文中的原交換机的标识和检测端ロ的标识所对应的处理标记来进行查询。也就是说,在环路检测信息表中,将建立与交換机的标识和检测端ロ的标识相对应的处理标记,如建立交換机的MAC和检测端ロ索引相对应的处理标记以表示检测报文和终止报文的处理状态。通过查询该原交換机的标识和检测端ロ的标识对应处理标记,就可以确定与该原交換机的标识和检测端ロ的标识对应的检测报文和終止报文处理状态是否为 终止。步骤404 :交换机将该终止报文从除接收到该终止报文的端ロ之外的其他端ロ中转发。交換机停止该终止报文对应的检测报文的处理,并保存该与检测报文对应的处理状态为终止之后,如果交换机接收到检测报文,则需要根据该检测报文中的原交換机的标识和检测端ロ的标识,确定与该原交換机的标识和检测端ロ的标识对应的检测报文的处理状态是否为终止,如果该检测报文的处理状态为终止,则该交換机丢弃该检测报文。进ー步的,在本发明以上任意一个实施例中,当该交换机通过接收端ロ接收到检测报文吋,根据该报文中的原交換机的标识和检测端ロ的标识,查询与该原交換机的标识和检测端ロ的标识的检测报文的处理状态是否为终止,并该检测报文的处理标识不为終止时,才执行确定与该接收端ロ相关的第二待检测VLAN集合的操作。为了能够在检测出的环路故障修复后,保证虚拟局域网中的交換机仍可以正常的接收发起环路检测的原交换机从该检测端ロ发送的检测报文,当环路故障修复,该发起环路检测的原交换机构建恢复报文,该恢复报文与从原交換机的检测端ロ发出的终止报文相对应,并将该恢复报文从检测端ロ发出,以通知网络中的交換机停止对该终止报文的处理,恢复交换机对检测报文的接收和处理功能。其中,该恢复报文中包括发起环路检测的原交换机的标识和检测端ロ的标识。如果检测报文和终止报文中包括的原交換机的标识和检测端ロ的标识与该原交換机的标识相同,则该检测报文和终止报文与该恢复报文对应。当然,也可以根据需要由用户来配置恢复时间,当在到达设定的恢复时间的时刻,触发该发起环路检测的原交换机构建恢复报文。当然还可以有其他方式,在此不加以限定。该恢复报文的报文格式与终止报文的报文格式相似,具体的可以參见图3,不同之处仅在于类型type表示为恢复报文的Eth-Type (0x9997),且子类型SubType表示恢复报文的子 Type (4)。当交换机接收到该恢复报文后,依据该恢复报文中的原交换机的标识和检测端ロ的标识,将与该原交換机的标识和检测端ロ的标识对应的检测报文的处理状态更改为正常,则该交换机仍可以继续接收和处理与该原交換机的标识和检测端ロ的标识对应的检测报文。同时,为了能够正常接收终止报文,交換机接收到恢复报文后,在将与该恢复报文对应的检测报文的处理状态更改为正常的同时,也会将与该原交換机的标识和检测端ロ的标识对应的终止报文的处理状态保存为正常。例如,当某交換机中保存有环路处理标记表,且该环路处理标记表中与交換机A和该交换机A的检测端ロ Al对应的检测报文和终止报文的处理标记为终止,则当该交换机接收到该交换机A构造的针对该检测端ロ Al的恢复报文后,该交换机则将其保存的环路处理标记表中与交換机A和检测端ロ Al对应的检测报文和終止报文处理标记更改为正常,则该交换机仍可以接收和处理该交換机A发出的针对该检测端ロ Al的检测报文以及终止报文。另外,当某虚拟局域网中交换机接收到恢复报文后,将该恢复报文对应的检测报文和终止报文的处理状态更改为正常的同时,将保存该恢复报文的处理记录状态为终止,以便该交換机停止对该恢复报文的处理。当与原交换机的标识和检测端ロ的标识对应的终止报文和检测报文的处理状态
被恢复为正常后,如果该交換机接收到包括该原交換机的标识和检测端ロ的标识对应的终止报文,该交换机会終止该终止报文以及与该原交換机的标识和检测端ロ的标识对应的检测报文的处理,将该终止报文和检测报文的处理标记更改为终止。与此同时,该交換机也会将该终止报文对应的恢复报文的处理状态更改为正常,以便该交換机能够继续接收该原交换机从该检测端ロ发出的恢复报文,以便该交換机能够对该恢复报文进行处理。为了能够清楚的理解本发明的方案,下面以另ー实施例对本发明的虚拟局域网环路检测的方法进行详细描述,參见图5,示出了本发明ー个虚拟局域网环路检测方法另ー个实施例的流程示意图,该实施例描述了图I所示实施例的ー种具体实现。该虚拟局域网环路检测方法包括步骤501 :交換机通过一端ロ接收检测报文,将接收到该检测报文的端ロ作为接收端ロ,该检测报文中包括发起环路检测的原交換机的标识、原交换机发起环路检测的检测端ロ的标识和第一待检测VLAN集合。在接收到的该检测报文中该第一待检测VLAN集合以比特位图的形式表示,将该比特位图中第一待检测VLAN集合中的VLAN所对应的比特位设置为I,将该比特位图中比特位设置为O。这里仅以上述第一待检测VLAN集合中的VLAN所对应的比特位设置为I来举例,本领域普通技术人员可以理解,也可以将第一待检测VLAN集合中的VLAN所对应的比特位设置为O,之后的步骤对应修改即可,例如,按位与(bitwise AND)运算改为按位或(bitwise OR)运算。根据该比特位图可以确定第一待检测VLAN集合中的各个VLAN。该接收端ロ接收到的检测报文为BPDU格式的检测报文。步骤502 :当该接收端ロ所配置的VLAN中至少有ー个VLAN属于该检测报文中的第一待检测VLAN集合吋,则将该接收端ロ配置的VLAN中,且属于该第一待检测VLAN集合的VLAN的集合作为与该接收端ロ相关的第二待检测VLAN集合,并将检测报文中的第一待检测VLAN集合修改为第二待检测VLAN集合。当该接收端ロ所配置的VLAN中是否至少有ー个VLAN属于该检测报文中的第一待检测VLAN集合吋,则说明该接收端ロ属于该检测报文待检测的VLAN,即属于该第一待检测VLAN集合的VLAN,中的端ロ。反之,当该接收端ロ所配置的VLAN均不属于该第一待检测VLAN集合吋,则该接收端ロ并不属于该检测报文所待检测的VLAN中的端ロ,则丢弃该检测报文。该交换机中采用比特位图的方式标示各个端ロ所配置的VLAN,也即每个端ロ均对应ー个比特位图,在该比特位图中将配置的VLAN所对应的比特位置1,而与该端ロ没有配置关系的VLAN所对应的比特位则置O。端ロ对应的该比特位图的各个比特位与表示第一待检测VLAN集合的比特位图的各个比特位对应相同的VLAN。当检测报文中采用比特位图的方式标识所述第一待检测VLAN集合中的各个VLAN,且在所述比特位图中将所述第一待检测VLAN集合中VLAN所对应的比特位置I时,将该检测报文中的比特位图与该接收端ロ的比特位图进行按位与运算,该按位与运算结果的结果为ー个比特位图。如果以上按位与运算结果的各位都为零,即该结果为零,则说明该接收端ロ所配置的VLAN中均不属于该第一待检测VLAN,将接收端ロ将丢弃该检测报文。如果按位与运算的结果不为零,则接收端ロ配置的VLAN中至少ー个VLAN属于所述第一待检测VLAN集合。将按位与运算后得到的比特位图中比特位不为零的比特位所对 应的VLAN作为第二待检测VLAN集合中的VLAN,也就是用按位与运算的结果表示第二待检测VLAN集合。如果采用将该检测报文中的第一待检测VLAN集合修改为第二待检测VLAN集合的方案,则将该检测报文中的比特位图修改为按位与运算的結果。步骤503 :判断该交换机的标识是否与该检测报文中的原交換机的标识相同,当该交换机的标识与该检测报文中的原交换机的标识相同时,则执行步骤504至509 ;当该交换机的标识与该检测报文中的原交換机的标识不相同时,则执行步骤510至512。步骤504:保存该接收端ロ的标识、原交換机的标识、检测端ロ的标识、第二待检测VLAN中的VLAN之间的关联关系。在交換机中保存关联关系时,需要体现出该接收端口中各个VLAN对应的关联关系,例如,接收端ロ的标识为Al,原交换机的标识为MACl,原交换机发起环路检测的检测端ロ的标识为BI,该第二待检测VLAN集合中包括VLANl和VLAN2,则需要保存该接收端ロ Al、MACl、BI、VLANl之间的关联关系,同时保存接收端ロ Al、MACl、BI、VLAN2之间的关联关系。这两个关联关系也可以合并保存,如,保存接收端ロ Al、MACl、BI、VLANl以及VLAN2之间的关联关系,如果用比特位图表示第二待检测VLAN集合,则可以保存接收端ロ Al、MACl、BI、表示第二待检测VLAN集合的比特位图之间的关联关系。步骤505 :将该修改后的检测报文转发至该交换机中除接收端ロ之外的其他端ロ,并依据该检测报文中的第二待检测VLAN集合,从除接收端ロ之外的其他端ロ中确定转发端ロ,其中,该转发端ロ所配置的VLAN集合与该第二待检测VLAN集合的交集为非空集
ム
ロ ο在交换机中保存了如上关联关系后,将弟一待检测VLAN集合修改为弟_■待检测VLAN集合后的检测报文转发至该交换机中除该接收端ロ之外的其他端ロ,进而该交换机则从接收到该修改后的检测报文的端ロ确定转发端ロ,确定转发端ロ时,可以将依据该检测端口中的第二待检测VLAN集合,确定转发端ロ,确定转发端ロ的方式与上一实施例描述的相似在此不再赘述。可选的,当在检测报文中采用比特位图的方式标示该第二待检测VLAN集合中的VLAN,将表示第二待检测VLAN集合的比特位图与该端ロ配置的VLAN的比特位图进行按位与运算,该按位与运算结果的结果为ー个比特位图。如果以上按位与运算结果的各位都为零,即该结果为零,则该端ロ不为转发端ロ。如果按位与运算的结果不为零,则该端ロ为转发端ロ,将按位与运算后得到的比特位图中比特位不为零的比特位所对应的VLAN作为第三待检测VLAN集合中的VLAN,也就是用该按位与运算的结果表示第三待检测VLAN集合。如果接收到包括第二待检测VLAN集合的检测报文的端ロ不是转发端ロ,则该检测报文被丢弃,仅有转发端ロ对该检测报文进行处理。 步骤506 :对于任意一个转发端ロ,将转发端ロ配置的VLAN中的,并属于第二待检测VLAN集合的VLAN的集合作为与该转发端ロ相关的第三待检测VLAN集合,将该检测报文中的第二待检测VLAN集合修改为第三待检测VLAN集合。当通过按位与运算确定出与转发端ロ相关的第三待检测VLAN集合吋,则可以将该检测报文中的比特位图修改为表示第三待检测VLAN集合的比特位图。步骤507 :判断该交换机保存的关联关系中是否存在冲突关联关系,该冲突关联关系为转发端ロ的标识、原交換机的标识、原交換机发起环路检测的检测端ロ的标识以及与转发端ロ相关的第三待检测VLAN集合中的VLAN之间的关联关系,如果存在冲突关联关系,则进入步骤508,如果不存在冲突关联关系,则进入步骤509。步骤508 :确定第三待检测VLAN集合中的,并且在上述冲突关联关系中的VLAN中存在环路故障,将环路故障信息通知给原交換机,同时进入步骤509。下面给出步骤507和步骤508的ー个例子,假设某端ロ Cl已经作为接收端ロ接收过包含原交換机的标识MAC1、检测端ロ的标识BI的检测报文,且该该端ロ Cl作为接收端ロ所对应的第二待检测VLAN集合中包括VLAN2中,则该交换机中便已经保存有端ロ Cl、原交换机MAC1、检测端ロ BI以及VLAN2的关联关系,如果当前确定出的转发端口中包括端ロCl,且转发端ロ Cl接收到的检测报文是由接收端ロ Al转发的,当确定出的转发端ロ Cl相关的第三待检测VLAN集合中包括VLAN2吋,则可以判断出关联关系中已经保存有端ロ的标识Cl、原交换机MAC1、检测端ロ BI以及VLAN2关联关系,从而确定该VLAN2存在环路故障,且该端ロ Cl和端ロ Al均为处于该VLAN2的环路故障中。该交换机确定出环路故障后,该交换机可以向该原交换机发送一通告报文,将环路故障信息通知该原交換机。该通告报文可以为ー单播报文。在该通告报文包括了该通告报文的目的地址DMAC,该目的地址DMAC为原交换机的MAC地址。该通告报文的源地址SMAC为构造通告报文的该交换机的MAC地址。该通告报文中还包括确定出存在环路故障的VLAN信息。在该通告报文中还可以包括该交换机中处于环路故障中的端ロ信息。步骤509 :将包含的待检测VLAN集合为第三待检测VLAN集合的检测报文从该转发端ロ发出。本实施例中当交换机对该检测报文进行处理,完成环路检测后,需要将该包括第三待检测VLAN集合的检测报文从该转发端ロ发出,以便处于第三待检测VLAN集合的VLAN中的交換机也能够判断自身以及自身的端ロ是否存处于环路故障中。步骤510 :当该交换机为原交换机时,判断该接收端ロ是否为该原交换机发起环路检测的检测端ロ,当该接收端ロ为检测端ロ时,执行步骤511 ;当该接收端ロ不为检测端ロ时,则执行步骤512。步骤511 :确定该第二待检测VLAN集合中的VLAN中存在环路,且该原交换机外部成环。
步骤512 :当该接收端ロ不为该原交換机发起环路检测的检测端ロ吋,则确定该第二待检测VLAN集合中的VLAN中存在环路故障,且该原交换机处于环路中。当该交换机为原交换机时,可以确定该检测报文中的待检测VLAN集合的VLAN中存在环路故障,在本实施例中该待检测VLAN集合为第二待检测VLAN集合。由于步骤502中将检测报文中的第一待检测VLAN集合修改为第二待检测VLAN集合,则直接依据该检测报文中的第二待检测VLAN集合,可以确定该出现环路故障的各个VLAN的具体信息。当发起环路检测的原交换机获取到虚拟局域网中存在环路,则该发起环路检测的原交換机则会发出告警提示。而检测出环路故障的交換机可以将该处于环路中的端ロ阻断,使该端ロ不再收发数据报文,但可以收发网络中特定的报文,如检测报文等;也可以将该端ロ完全关闭,不再收发任何报文另外,该交换机还可以将该端ロ的MAC地址 学习功能关闭。在本发明中在该交换机的转发端ロ向外发送检测报文时,该检测报文中的待检测VLAN集合已经修改为与该转发端ロ相关的第三待检测VLAN集合。其中与该转发端ロ相关的第三待检测集合与该交换机的接收端ロ接收到的检测报文中的第一待检测VLAN集合有可能是不同的,但是该第一待检测VLAN集合包含的VLAN数量一定大于或等于该第三待检测VLAN。同理,该交换机确定出的与该接收端ロ相关的第二待检测VLAN集合也不同于该第一待检测VLAN集合和第三待检测VLAN集合,但是该第一待检测VLAN集合中包含的VLAN数量一定大于或等于该第二待检测VLAN集合中的VLAN数量,且该第二待检测VLAN集合中包含的VLAN数量一定大于或等于该第三待检测VLAN集合中的VLAN的数量。可见,当发起环路检测的原交换机构建的检测报文中所包含的待检测VLAN集合与其他交换机接收到的检测报文中的待检测VLAN集合也有可能不同。当该交换机将检测报文中的待检测VLAN集合修改为第三待检测VLAN集合,并从转发端ロ转发出该包含第三待检测VLAN集合的检测报文后,如果其他交換机接收到该交换机的转发端ロ转发出的包含第三待检测VLAN集合的检测报文,则该接收到包含第三待检测VLAN集合的检测报文的交换机则将该检测报文中的第三待检测VLAN集合作为上述的第一待检测VLAN集合来处理。当该交换机需要发起对某ー个或多个VLAN的环路故障检测吋,该交换机即为发起环路检测的原交換机,该交换机构建检测报文,并将该检测报文从发起环路检测的端ロ发出,该发起环路检测的端ロ即为检测端ロ,在该检测报文中包括该交换机的标识、该交換机发起环路检测的检测端ロ的标识以及待检测VLAN集合。其中该待检测VLAN集合为根据需要从该检测端ロ所配置的VLAN中选择的至少ー个VLAN组成的集合。当其他交換机接收到该检测报文时,则可以依据本发明中以上两个实施例的步骤对该检测报文进行处理,以进行环路故障检测。通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在ー个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。与本发明实施例的方法相对应,本发明还提供了一种虚拟局域网环路检测环路装置參见图6,示出了本发明ー种虚拟局域网环路检测环路装置的组成结构示意图,本实施例的虚拟局域网环路检测环路装置包括接收单元601、第一待检测VLAN确定单元602、判断单元603、关联关系保存单元604、转发端ロ确定单元605、第二待检测VLAN确定单元606、第一故障确定单兀607、故障上报单兀608和第二故障确定单兀609。其中,接收单元601,用于接收检测报文,并将接收到该检测报文的端ロ作为接收端ロ,该检测报文中包括发起环路检测的原交換机的标识、原交換机发起环路检测的检测端ロ的标识和第一待检测VLAN集合。其中,该第一待检测VLAN确定单元接收到的检测报文为BPDU格式的报文,该种 BPDU格式的报文可以在相邻交换机的端ロ间进行发送。第一待检测VLAN确定单元602,用于当接收端ロ配置的VLAN中至少ー个VLAN属于第一待检测VLAN集合吋,将接收端ロ配置的VLAN中的,并属于第一待检测VLAN集合的VLAN的集合作为第二待检测VLAN集合。判断単元603,用于判断接收检测报文的交換机是否为原交換机。关联关系保存単元604,用于当该交換机不为该原交换机时,保存接收端ロ的标识、原交換机的标识、原交換机发起环路检测的检测端ロ的标识以及第ニ待检测VLAN集合中的VLAN之间的关联关系。转发端ロ确定单元605,用于关联关系保存単元保存了关联关系后,确定转发端ロ,其中,该转发端ロ为交换机中除接收端ロ外的端ロ,并且该转发端ロ中配置有第二待检测VLAN集合中至少ー个VLAN。第二待检测VLAN确定单元606,用于将转发端ロ配置的VLAN中的,并属于第二待检测VLAN集合的VLAN的集合作为与转发端ロ相关的第三待检测VLAN集合。第一故障确定单元607,用于当该交換机保存的关联关系中存在冲突关联关系,则确定第三待检测VLAN集合中的,并且在上述冲突关联关系中的VLAN中存在环路故障,该冲突关联关系为所述转发端ロ的标识、原交換机的标识、原交換机发起环路检测的检测端ロ的标识以及与转发端ロ相关的第三待检测VLAN集合中的VLAN之间的关联关系。故障上报单元608,用于当第一故障确定单元确定出环路故障吋,将确定出的环路故障信息通知原交換机,该环路故障信息包括被确定存在环路故障的VLAN的信息和交換机的信息。该环路故障信息还可以包括该转发端ロ的标识信息和接收端ロ的标识信息。第二故障确定单元609,用于当该换机为所述该原交换机时,则确定该第二待检测VLAN集合中的VLAN中存在环路。其中,该第二故障确定单元在确定出该第二待检测VLAN集合中的VLAN中存在环路时,还可以进一歩确定该原交換机检测到的具体的环路故障,对应的,该第二故障确定单元,包括第一成环确定単元和第二成环确定単元。其中,第一成环确定単元,用于当该交換机为该原交換机,并且接收端ロ为原交換机发起环路检测的检测端ロ时,则确定第二待检测VLAN集合中的VLAN中存在环路,且该原交換机外部成环。
第二成环确定单元,用于当该交换机为该原交换机,且接收端ロ不为原交换机发起环路检测的检测端ロ时,则确定第二待检测VLAN集合中的VLAN中存在环路,且原交换处于环路中。第一成环确定単元确定出的原交換机外部成环具体包括以下一种情况与原交換机处于同一虚拟局域网中的某交換机的端ロ间成环,如某虚拟局域网中该原交換之外的某交換机的两个端ロ成环;与该原交換机处于同一虚拟局域网中的其他多个交换机的端ロ间构成环路,如,某虚拟局域网中该原交换之外的交换机I、交换机2和交换机3的端ロ构成环路;或者是,原交換机中该检测报文对应的检测端ロ自身成环。在以上这几种原交換机外部成环的情况下,原交換机从检测端ロ发出检测端ロ后,该原交換机会接收到包含原交換机标识和检测端ロ标识的检测报文。在原交換机外部成环的情况下,该原交換机可以确定出自身外部成环,同时该原交換根据是否接收到其他交換机通知的环路故障信息来确定是否为检测端ロ自身成环,如果在指定时间内未接收到其他交换机发送的环路故障信息则确定该检测端ロ自身成环,如果该原交換机接收到其他交換机通知的环路故障信息,则可以根据该环路故障信息进ー步 确定具体构成环路故障的交换机。上述该第一成环确定单元确定出该原交换机处于环路中包括以下几种情况原交换机的两个端ロ之间形成环路,使得原交换机处于环路当中;或者是某虚拟局域网中多台交換机和该原交换机构成环路。在以上原交换机处于环路中的情况时,可以直接通过对该对该原交換机的接收到该检测报文的接收端ロ的配置进行更改即可避免环路故障。如,原交换机I的端ロ 11与交换机2的端ロ 21相连,该交换机2的端ロ 22与交换机3的端ロ 31相连,交换机3的端ロ 32与原交换机I的端ロ 12相连,从而构成环路,当该原交换机从端ロ11发出包括该原交換机的标识和检测端ロ的标识的检测报文后,该原交換机最終会通过该端ロ 12接收到包括该原交換机的标识和检测端ロ的标识的检测报文,在该种情形下就可以确定出该原交换处于环路中,进而通过断开该接收端ロ即端ロ 12与交换机3的端ロ 32之间的连接,来避免环路故障。其中,接收端ロ接收到的检测报文中的原交换机的标识可以为原交换的MAC地址,而该检测端ロ的标识可以为该检测端ロ的端ロ索引。对应的,该判断単元具体为用于当交換机的MAC地址与所述检测报文中的所述原交换机的MAC地址相同时,则确定该交换机为原交换机。而该第一成环确定単元和第二成环确定単元确定该原交換机的接收端ロ是否为检测端ロ,则通过判断该接收端ロ的标识与该检测端ロ的标识是否相同。具体的,当该交换机的MAC地址与检测报文中该原交換机的MAC地址相同,且该交換机的接收端ロ的端ロ索引与该检测报文中的检测端ロ的端ロ索引相同,则该交換机的接收端ロ为原交換机的检测端ロ。另外,当该交换机为原交换机时,该交换机还可以构建检测报文,并从发起环路检测的检测端ロ发出其构建的检测报文,在该检测报文中包括该交换机的标识、该交換机的发起环路检测的检测端ロ的标识以及待检测的VLAN集合。该待检测的VLAN集合中的VLAN属于该检测端ロ所配置的VLAN,可以根据需要从该检测端ロ所配置的VLAN中选择ー个或多个VLAN构成待检测VLAN集合。
本实施例的交换机中的接收端ロ接收到检测报文后,该第一待检测VLAN确定单元则在该接收端ロ所配置的VLAN中至少有ー个属于该检测报文的第一待检测VLAN集合时,确定出与该接收端ロ相关的第二待检测VLAN集合。并由判断単元判断该交换机是否为原交換机,并当交換机不是原交换机时,由关联关系単元保存与接收端ロ相关的关联关系,并由转发端ロ确定单元确定转发端ロ,同时由第二待检测VLAN确定单元确定与该转发端ロ相关的第三待检测VLAN集合,从而由第一故障确定单元根据保存的关联关系,以及该第三待检测VLAN集合确定是否检测到环路故障。当该判断単元判断出该交换机为原交換机吋,则该第二故障确定单元,则确定该第二待检测VLAN集合的VLAN中存在环路故障。该交换机可以根据自身是否为原交換机来执行不同的环路故障检测操作,如果该交換机不是原交换机且其检测到环路故障吋,该交换机则将自身存在环路故障的详细信息上报给该原交换机,而该交换机为原交换机时,也可以检测到环路故障,进而使得原交换机获取到更加详细的环路故障信息。
当该交换机完成了自身是否处于环路故障中的检测后,还可以将该检测报文转发给其他交換机,以便处于环路故障中的其他交換机也可以检测到环路故障并上报原交換机,使得原交換机获取更加详细的环路故障信息,參见图7,示出了本发明ー种虚拟局域网环路检测环路装置的另ー实施例的结构示意图,该实施例的虚拟局域网环路检测环路装置为图6所示实施例的具体实现方式,本实施例与图6所示实施例的不同之处在于,该虚拟局域网环路检测环路装置中还包括第一报文信息修改単元610,用于第二待检测VLAN确定单元确定出与所述转发端ロ相关的第三待检测VLAN集合吋,将检测报文中待检测VLAN集合修改为与所述转发端ロ相关的第三待检测VLAN集合。考虑到当某虚拟局域网中存在环路时,如果将该检测报文转发出去后,该检测报文将在环路中被大量复制,并在该网络不断转发,从而引起广播风暴,因此,该交換机也可以仅在确定该第一故障确定单元未检测到环路故障的情况下,从转发端ロ转发该将第一待检测VLAN修改为第三待检测VLAN的检测报文发出。因此,该交换机还包括第一转发单元611,用于当该交换机不为所述原交換机,且该交換机保存的关联关系中不存在所述冲突关联关系吋,则从所述转发端ロ转发将待检测VLAN修改为第三待检测VLAN集合的检测报文。其中,当该交换机确定了与该接收端ロ相关的第二待检测VLAN集合,且该交换机不为原交換机吋,该交换机需要保存与该接收端ロ相关的第二待检测VLAN集合,以便后续依据该第二待检测VLAN集合,确定转发端ロ以及与该转发端ロ相关的第三待检测VLAN集合。但通过在交換机中保存与该接收端ロ相关的第二待检测VLAN集合需要占用一定的存储空间,且确定转发端ロ以及与该转发端ロ相关的第三待检测VLAN吋,都需要查询存储的第二待检测VLAN集合,増加了确定环路故障的复杂度,影响了交换机确定环路故障的时间。为了进一歩减少存储空间的占用率,并降低故障检测的复杂度,在交換机中还包 括第二报文信息修改単元612,用于当确定出第二待检测VLAN集合时,将检测报文中的第一待检测VLAN集合修改为第二待检测VLAN集合。对应的,该转发端ロ确定单元605,具体为用于依据检测报文中的第二待检测VLAN集合,确定转发端ロ。
当将该第一待检测VLAN集合修改为第二待检测VLAN集合的检测报文发送至该交换机的除接收端ロ之外的其他端ロ后,则在该其他端ロ处可以直接依据该检测端ロ确定端ロ本身是否为转发端ロ。当第二报文信息修改单元将第一待检测VLAN集合修改为第二待检测VLAN集合之后,该第一报文信息修改単元610具体为用于将检测报文中的第二待检测VLAN集合修改为与所述转发端ロ相关的第三待检测VLAN集合。在交換机中一般采用比特位图的方式标示与该交换机中各个端ロ配置的VLAN,因此,采用在与该接收端ロ对应比特位图中标示出该接收端ロ配置的各个VLAN,并将该接收端ロ配置的VLAN对应的比特位置I。对于转发端ロ对应的比特位图也采用同样的方式,在转发端ロ对应的比特位图中将转发端ロ所配置的VLAN对应的比特位置I。对应的,该接收単元接收到的检测报文中采用比特位图的方式标识所述第一待检测VLAN集合中的各个VLAN,且在所述比特位图中将所述第一待检测VLAN集合中VLAN所对 应的比特位置I。该第一待检测VLAN确定单元602具体为用于将接收端ロ对应的比特位图与所述检测报文中的第一待检测VLAN集合中的VLAN对应的比特位图进行按位与运算,该按位与运算结果的结果为ー个比特位图。当按位与运算结果不为零时,则确定该接收端ロ配置的VLAN中至少ー个VLAN属于该第一待检测VLAN集合,将按位与运算后得到的比特位图中比特位不为零的比特位所对应的VLAN的集合作为第二待检测VLAN集合。该第二报文信息修改单元具体为用于在所述检测报文的比特位图中将第二待检测VLAN集合中VLAN所对应的比特位置I。该第二待检测VLAN确定单元具体为用于将检测报文标示有第二待检测VLAN集合中的VLAN的比特位图与接收端ロ对应的比特位图中进行按位与运算,并将按位与运算结果不为零的比特位所对应的VLAN的集合作为第三待检测VLAN。该第一报文信息修改単元具体为用于在所述检测报文的比特位图中将第三待检测VLAN集合中VLAN所对应的比特位置I。參见图8,示出了本发明ー种虚拟局域网环路检测环路装置的另ー实施例的结构示意图,本实施例与以上两个实施例的不同之处在于,本实施例包括第二转发单元613,用于当该交換机不是原交換机,且将检测报文中第一待检测VLAN修改为与该转发端ロ相关的第三待检测VLAN集合后,将该检测报文从该转发端ロ发出。在本实施例中当确定出第一检测报文修改单元修改了检测报文中的第三待检测VLAN集合吋,且第一故障确定单元完成环路故障检测后,就可以将该检测报文从转发端ロ发送,因此,无论该第一故障确定单元是否检测到环路故障,该第二转发单元均会将包含第三待检测VLAN集合的检测报文转发出去。为了避免获取到该检测报文在环路中大量复制而引发的广播风暴,当该交换机为原交换机,且该交换机为确定出环路故障后,该交换机需要构建终止报文,因此该交换机包括终止报文构建单元,用于当该交换机为原交換机且确定出环路故障时,构建终止报文,并将该終止报文从发起环路检测的检测端ロ发出,该终止报文中包括原交換机的标识和原交換机发起环路检测的检测端ロ的标识。
而当该交换机接收到终止报文时,如果该交换机为发起该终止报文的原交换机,则该交换机将丢弃该终止报文,而当该交换机不是原交换机时,该交换机则依据该终止报文进行相应处理。该交换机还包括终止报文处理单元614,用于当交換机接收到终止报文,且该终止报文不为该构建该终止报文的原交换机时,根据终止报文中的原交換机的标识和检测端ロ的标识,終止与该原交換机的标识和检测端ロ的标识对应的检测报文的处理。同时,该终止报文还包括记录单元615,用于当终止报文处理单元終止与所述原交換机的标识和检测端ロ的标识对应的检测报文的处理的同时,保存与所述原交換机和检测端ロ的标识对应的检测报文的处理状态为终止。进ー步的,该交换机还包括查询单元616,用于查询与该原交換机的标识和检测端ロ的标识对应的检测报文的处理状态是否为终止,当该检测报文的处理状态为终止吋,则终止对检测报文的处理,当检测报文的处理标记不为終止吋,则执行第一待检测VLAN确定单元的操作。另外,该交换机还包括恢复报文构建单元,用于当该交换机为原交换机时,构建恢复报文,并将该恢复报文从发起环路检测的检测端ロ发出,该恢复报文中包括该原交換机的标识和检测端ロ的标识。进ー步的,该交换机还包括报文恢复处理单元617,用于当本交换机不为原交换机,且本交换机接收到恢复报文时,根据恢复报文中的原交换机的标识和检测端ロ的标识,恢复与该原交換机的标识和检测端ロ的标识相对应的检测报文的处理。在本发明以上图6至图8任一实施例中所描述的ー种虚拟局域网环路检测环路装置均由交换机来实现,该交换机可以包括以太网中支持第二层转发协议的交换机或者是路由器。该交换机至少包括中央处理器(central processing unit,CPU)或网络处理器(NP,Network Processor),以及线卡(line card)。还可以包括背板以及外围电路等。图6至图8所示的实施例中的各个功能逻辑模块(如第一待检测VLAN确定单元、转发端ロ确定单元等)可以基于上述硬件电路实现,具体的,对该CPU或者是NP进行相应的编程,使得CPU或NP能够通过执行软件代码来执行上述功能模块所能完成的功能。本领域技术人员可以根据上述实施例记载来完成应用软件的编写,具体过程这里不再赘述。对于系统实施例而言,由于其基本相应于方法实施例,所以相关之处參见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的単元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理単元,即可以位于ー个地方,或者也可以分布到多个网络単元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,在没有超过本申请的原则和范围内,可以通过其他的方式实现。当前的实施例只是ー种示范性的例子,不应该作为限制,所给出的具体内容不应该限制本申请的目的。例如,所述单元或子単元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或多个子单元结合一起。另外,多个单元可以或组件可以结合或者可以集成到另ー个系统,或ー些特征可以忽略,或不执行。
另外,所描述系统和方法以及不同实施例的示意图,在不超出本申请的范围内,可以与其它系统,模块,技术或方法结合或集成。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过ー些接ロ,装置或単元的间接耦合或通信连接,可以是电性或其它的形式。 以上所述仅是本发明的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种虚拟局域网环路检测方法,其特征在于,包括 交换机接收检测报文,将接收到该检测报文的端ロ作为接收端ロ,所述检测报文中包括发起环路检测的原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识和第ー待检测虚拟局域网VLAN集合; 当所述接收端ロ配置的VLAN中至少ー个VLAN属于所述第一待检测VLAN集合时,将所述接收端ロ配置的VLAN中的,并属于所述第一待检测VLAN集合的VLAN的集合作为第二待检测VLAN集合; 当所述交换机不为所述原交换机时,保存所述接收端ロ的标识、所述原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识以及所述第二待检测VLAN集合中的VLAN之 间的关联关系,以及 确定转发端ロ,所述转发端ロ为所述交換机中除所述接收端ロ外的端ロ,并且所述转发端ロ中配置有所述第二待检测VLAN集合中至少ー个VLAN ; 将所述转发端ロ配置的VLAN中的,并属于所述第二待检测VLAN集合的VLAN的集合作为与所述转发端ロ相关的第三待检测VLAN集合; 当所述交换机保存的关联关系中存在冲突关联关系,则确定所述第三待检测VLAN集合中的,并且在上述冲突关联关系中的VLAN中存在环路故障,并将环路故障信息通知所述原交換机,所述环路故障信息包括被确定存在环路故障的VLAN的信息和所述交换机的信息,所述冲突关联关系为所述转发端ロ的标识、所述原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识以及与所述转发端ロ相关的第三待检测VLAN集合中的VLAN之间的关联关系; 当所述交换机为所述原交換机吋,则确定所述第二待检测VLAN集合中的VLAN中存在环路。
2.根据权利要求I所述的方法,其特征在于,所述检测报文为桥协议数据单元BPDU格式的报文。
3.根据权利要求I或2所述的方法,其特征在干,当所述交换机为所述原交换机时,则确定所述第二待检测VLAN集合中的VLAN中存在环路,具体包括 当所述交换机为所述原交換机,并且所述接收端ロ为所述原交换机发起环路检测的检测端ロ吋,则确定所述第二待检测VLAN集合中的VLAN中存在环路,且所述原交換机外部成环; 当所述交换机为所述原交換机,并且所述接收端ロ不为所述原交換机发起环路检测的检测端ロ吋,则确定所述第二待检测VLAN集合中的VLAN中存在环路,且所述原交換处于环路中。
4.根据权利要求I至3任一项所述的方法,其特征在于,所述环路故障信息还包括所述接收端口和转发端ロ的信息。
5.根据权利要求I至4任一项所述的方法,其特征在于,在确定出与所述转发端ロ相关的第三待检测VLAN集合的同时,将检测报文中的待检测VLAN集合修改为与所述转发端ロ相关的第三待检测VLAN集合。
6.根据权利要求5所述的方法,其特征在于,当所述交换机不为所述原交換机,且所述交换机保存的关联关系中不存在所述冲突关联关系时,则从所述转发端ロ转发将待检测VLAN集合修改为所述第三待检测VLAN集合的检测报文。
7.根据权利要求5所述的方法,其特征在干,当所述交换机不为所述原交換机,在将所述检测报文中待检测VLAN集合修改为与所述转发端ロ相关的第三待检测VLAN集合后,还包括将该检测报文从所述转发端ロ发出。
8.根据权利要求5至7任一项所述的方法,其特征在干,在确定出所述第二待检测VLAN集合时,还包括 将所述检测报文中的第一待检测VLAN集合修改为所述第二待检测VLAN集合; 所述确定转发端ロ,具体为 依据所述检测报文中的第二待检测VLAN集合,确定所述转发端ロ ; 所述将检测报文中的待检测VLAN集合修改为与所述转发端ロ相关的第三待检测VLAN集合,具体为 将所述检测报文中的第二待检测VLAN集合修改为与所述转发端ロ相关的第三待检测VLAN集合。
9.根据权利要求I至7所述的方法,其特征在干,当所述交换机为所述原交換机,且确定出环路故障后,还包括构建终止报文,并将该终止报文从所述原交換机发起环路检测的检测端ロ发出,所述终止报文中包括所述原交換机的标识和所述原交換机发起环路检测的检测端ロ的标识; 当所述交换机不为所述原交換机,且所述交換机接收到终止报文时,根据终止报文中的所述原交換机的标识和检测端ロ的标识,終止与所述原交換机的标识和检测端ロ的标识对应的检测报文的处理。
10.根据权利要求9所述的方法,其特征在干,当所述交换机不为所述原交換机吋,终止与所述原交換机的标识和检测端ロ的标识对应的检测报文的处理的同吋,还包括保存与所述原交換机的标识和检测端ロ的标识对应的检测报文的处理状态为终止; 当所述交换机通过所述接收端ロ接收到检测报文时,还包括 查询所述检测报文的处理状态是否为终止,当所述检测报文的处理状态为终止吋,则終止对所述检测报文的处理;当所述检测报文的处理状态不为終止吋,则继续执行确定所述交换机是否为所述原交換的操作。
11.根据权利要求9所述的方法,其特征在干,当所述交换机为所述原交换机时,还包括 构建恢复报文,并将所述恢复报文从所述检测端ロ发出,所述恢复报文中包括所述原交換机的标识和所述检测端ロ的标识; 当所述交换机不为所述原交換机,且所述交換机接收到所述恢复报文吋,根据所述恢复报文中的所述原交換机的标识和所述检测端ロ的标识,恢复与所述原交換机的标识和所述检测端ロ的标识相对应的检测报文的处理。
12.—种虚拟局域网环路检测装置,其特征在于,包括 接收单元,用于接收检测报文,并将接收到该检测报文的端ロ作为接收端ロ,所述检测报文中包括发起环路检测的原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识和第一待检测VLAN集合; 第一待检测VLAN确定单元,用于当所述接收端ロ配置的VLAN中至少ー个VLAN属于所述第一待检测VLAN集合吋,将接收端ロ配置的VLAN中的,并属于所述第一待检测VLAN集合的VLAN的集合作为第二待检测VLAN集合; 判断単元,用于判断接收所述检测报文的交换机是否为所述原交換机; 关联关系保存単元,用于当所述交换机不为所述原交换机时,保存所述接收端ロ的标识、所述原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识以及所述第二待检测VLAN集合中的VLAN之间的关联关系; 转发端ロ确定单元,用于确定转发端ロ,所述转发端ロ为所述交換机中除所述接收端口外的端ロ,并且所述转发端ロ中配置有所述第二待检测VLAN集合中至少ー个VLAN ; 第二待检测VLAN确定单元,用于将所述转发端ロ配置的VLAN中的,并属于所述第二待检测VLAN集合的VLAN的集合作为与所述转发端ロ相关的第三待检测VLAN集合; 第一故障确定单元,用于当所述交换机保存的关联关系中存在冲突关联关系,,则确定所述第三待检测VLAN集合中的,并且在上述冲突关联关系中的VLAN中存在环路故障,所述冲突关联关系为所述转发端ロ的标识、所述原交換机的标识、所述原交換机发起环路检测的检测端ロ的标识以及与所述转发端ロ相关的第三待检测VLAN集合中的VLAN之间的关联关系; 故障上报单元,用于当所述第一故障确定单元确定出环路故障吋,将确定出的环路故障信息通知所述原交換机,所述环路故障信息包括被确定存在环路故障的VLAN的信息和所述交换机的信息; 第二故障确定单元,用于当所述交换机为所述原交换机时,则确定所述第二待检测VLAN集合中的VLAN中存在环路。
13.根据权利要求12所述的装置,其特征在于,所述检测报文为BPDU格式的报文。
14.根据权利要求12或13所述的装置,其特征在于,所述第二故障确定单元,包括 第一成环确定単元,用于当所述交换机为所述原交換机,并且所述接收端ロ为所述原交換机发起环路检测的检测端ロ吋,则确定所述第二待检测VLAN集合中的VLAN中存在环路,且所述原交換机外部成环; 第二成环确定単元,用于当所述交换机为所述原交換机,且接收端ロ不为所述原交換机发起环路检测的检测端ロ吋,则确定所述第二待检测VLAN集合中的VLAN中存在环路,且所述原交换处于环路中。
15.根据权利要求12至14任一项所述的装置,其特征在于,还包括第一报文信息修改单元,用于在第二待检测VLAN确定单元确定出与所述转发端ロ相关的第三待检测VLAN集合吋,将检测报文中待检测VLAN集合修改为与所述转发端ロ相关的第三待检测VLAN集
16.根据权利要求15所述的装置,其特征在于,还包括第一转发单元,用于当所述交换机不为所述原交換机,且本交換机保存的关联关系中不存在所述冲突关联关系时,则从所述转发端ロ转发将待检测VLAN集合修改为所述第三待检测VLAN集合的检测报文。
17.根据权利要求15所述的装置,其特征在于,还包括:第二转发单元,用于当所述交换机不为所述原交換机,且将检测报文中待检测VLAN修改为与所述转发端ロ相关的第三待检测VLAN集合时,将该检测报文从所述转发端ロ发出。
18.根据权利要求15至17任一项所述的装置,其特征在于,还包括第二报文信息修改单元,用于当确定出第二待检测VLAN集合吋,将所述检测报文中的第一待检测VLAN集合修改为所述第二待检测VLAN集合; 所述转发端ロ确定单元,具体为用于依据所述检测报文中的第二待检测VLAN集合,确定所述转发端ロ; 所述第一报文信息修改単元,具体为用于将所述检测报文中的第二待检测VLAN修改为与所述转发端ロ相关的第三待检测VLAN集合。
19.根据权利要求12至17任一项所述的装置,其特征在干,还包括终止报文构建单元,用于当所述交换机为所述原交換机且确定出环路故障时,构建终止报文,并将该终止报文从发起环路检测的检测端ロ发出,所述终止报文中包括所述原交換机的标识和所述原交换机发起环路检测的检测端ロ的标识; 终止报文处理单元,用于当所述交换机不为所述原交換机,且本交換机接收到终止报文吋,根据终止报文中的所述原交換机的标识和检测端ロ的标识,終止与所述原交換机的标识和检测端ロ的标识对应的检测报文的处理。
20.根据权利要求19所述的装置,其特征在于,还包括记录单元,用于当终止报文处理单元終止与所述原交換机的标识和检测端ロ的标识对应的检测报文的处理的同时,保存与所述原交換机和检测端ロ的标识对应的检测报文的处理状态为终止; 所述装置,还包括 查询单元,用于查询所述检测报文的处理状态是否为终止,当所述检测报文的处理状态为终止时,则终止对所述检测报文的处理,当所述检测报文的处理标记不为终止时,则执行所述第一待检测VLAN确定单元的操作。
21.根据权利要求19所述的装置,其特征在于,还包括 恢复报文构建单元,用于当所述交换机为原交换机时,构建恢复报文,并将所述恢复报文从所述检测端ロ发出,所述恢复报文中包括所述原交換机的标识和所述检测端ロ的标识; 报文恢复处理単元,用于当所述交换机不为所述原交換机,且所述交換机接收到所述恢复报文吋,根据所述恢复报文中的所述原交換机的标识和所述检测端ロ的标识,恢复与所述原交換机的标识和所述检测端ロ的标识相对应的检测报文的处理。
全文摘要
本发明公开一种虚拟局域网环路检测方法和交换机,该方法当接收检测报文的接收端口所配置的VLAN中至少一个VLAN属于检测报文中第一待检测VLAN集合,则将接收端口配置的VLAN中属于第一待检测VLAN集合的VLAN作为第二待检测VLAN集合;如果该交换机为原交换,确定第二待检测VLAN集合的VLAN中存在环路;反之,则保存接收端口的标识、原交换机的标识、检测端口的标识和第二待检测VLAN集合中VLAN之间的关联关系,确定转发端口,并当关联关系中存在冲突关联关系时,确定与转发端口相关的第三待检测VLAN集合的VLAN中存在环路故障,并上报原交换机,从而使原交换机能得到比较详细的环路故障信息。
文档编号H04L12/437GK102664783SQ20121009285
公开日2012年9月12日 申请日期2012年3月31日 优先权日2012年3月31日
发明者刘崇言, 吴俊宏, 水焜焜 申请人:华为技术有限公司