专利名称::一种用于irf堆叠设备的mad检测方法及装置的制作方法
技术领域:
:本发明涉及通信
技术领域:
,特别是涉及一种用于IRF堆叠设备的MAD检测方法及装置。
背景技术:
:IRF(IntelligentResilientFramework,智能弹性架构简)是将多台设备通过IRF端口连接在一起,从而形成一台联合设备;而用户通过对这台联合设备进行管理,可以实现对IRF中的所有设备进行管理。可以看出,IRF通过增加系统内部的设备数量,可以容易地增加系统的端口数、带宽和报文处理能力,即IRF通过多台设备之间的聚合,能够提供更加稳定的多链路备份,实现链路的高可靠性。当IRF的堆叠链路断开时,原有IRF会分裂成全局配置完全相同的两台(或者多台)IRF,而分裂成全局配置完全相同的IRF同时在网络中运行时,可能会引起网络故障。为了提高系统的可用性,避免可能会引起的网络故障,当IRF分裂时,可以采用MAD(Multi-ActiveDetection,多Active检测)机制进行处理,以在检测出网络中同时存在多个IRF时,进行相应的处理以保证网络能正常运行。具体的,在IRF分裂时,使用MAD保证网络正常运行的功能包括(1)检测功能,即通过使用LACP(LinkAggregationControlProtocol,链路聚合控制协议)、BFD(BidirectionalForwardingDetection,双向转发检测)协议、或者,免费ARP(AddressResolutionProtocol,地址解析协议)来检测网络中是否存在多个从同一个IRF系统分裂出来的,全局配置相同的IRF。(2)冲突处理功能,即IRF分裂后,当IRF系统检测到网络中存在多个处于Active状态的IRF时(可以通过检测功能检测得到),Master(主)成员编号小的处于Active状态的IRF可以继续正常工作;而Master成员编号较大的处于Active状态的IRF需要迁移到Recovery(恢复)状态,并关闭该IRF中所有成员设备上,除了保留端口以外的其他所有端口。(3)故障恢复功能,即IRF系统通过日志提示用户修复IRF链路,在IRF链路修复后,冲突的设备将重新启动,继而恢复IRF系统,此时,被关闭的端口将重新恢复业务转发。现有技术中,当IRF系统通过动态聚合组网时,上述的检测功能可以使用LACP来检测网络中是否存在多个从同一个IRF系统分裂出来的全局配置相同的IRF,即可以通过使用LACP实现MAD检测过程。具体的,使用LACP实现MAD检测过程包括动态聚合组成员设备发送LACP报文,该LACP报文的预留字段中写入了当前IRF的master的成员ID。其中,动态聚合组中可以使用该成员ID作为IRF系统的ActiveID;当对端设备接收到该LACP报文后,通过检查LACP报文的预留字段,可以知道IRF系统的ActiveID,继而确定该LACP报文的发送端是否为IRF系统中的动态聚合组成员设备。例如,当该预留字段不为0时,则表明该LACP报文的发送端为IRF系统中的成员设备,此时,需要将该LACP报文从其它成员端口转发出去。如图1所示,为一种动态LACPMAD组网图,在该LACPMAD组网中,对端设备的P0RT1端口可以接收到携带了ActiveID为1的LACP报文,同样的,对端设备的P0RT2端口也可以接收到携带了ActiveID为1的LACP报文。当IRF的堆叠链路出现故障时,成员设备2(即图1中的对端设备)将成为新的master,此时,成员设备1(即图1中位于动态聚合左侧的设备)的P0RT1端口将会接收到携带了ActiveID为2的LACP报文(来自成员设备2),该成员设备l通过比较ActiveID为2的信息和自身保留的ActiveID为1的信息,发现自身的ActiveID更优(即ActiveID数值小为优),该成员设备1将不进行任何处理。而成员设备2的P0RT2端口将会接收到携带了ActiveID为1的LACP报文(来自成员设备l),此时,该成员设备2通过比较ActiveID为1的信息和自身保留的ActiveID为2的信息,发现对端设备(成员设备l)的ActiveID更优,该成员设备2将自身的业务口执行MADdown操作,使得自身不在成员设备1所对应的IRF系统中运行,从而解决了IRF系统分裂设备同时在网络中运行时所造成的网络故障。但是,在现有技术中,如果IRF和对端设备之间是非动态聚合链路,例如,静态聚合链路,或者MSTP(MultipleSpanningTreeProtocol,多生成树协议)冗余链路等聚合链路,LACPMAD检测将无法生效,如图2所示的一种非动态聚合链路的LACPMAD检测示意图。其中,当IRF与对端设备之间是静态聚合链路时,在IRF与对端设备之间将不会传输LACP报文,从而导致LACPMAD检测不能生效,继而影响了LACPMAD检测的适用范围。此外,在使用LACPMAD进行检测时,如果动态聚合两端都是IRF设备时,只能有一端IRF设备可以执行LACPMAD检测过程,如图3所示的一种动态聚合两端都是IRF设备的示意图。在图3中,如果两个IRF设备同时执行LACPMAD检测,将会导致得出错误的检测结果。例如,当成员设备1发起LACPMAD检测时,成员设备2的P0RT1端口可以接收到携带了ActiveID为1的LACP报文,而当IRF的堆叠链路出现故障时,成员设备2将成为新的master,此时,成员设备1的P0RT1端口将会接收到携带了ActiveID为2的LACP报文。对应的,当成员设备2也发起LACPMAD检测时,成员设备1的P0RT1端口可以接收到携带了ActiveID为2的LACP报文,而当IRF的堆叠链路出现故障时,成员设备2的P0RT1端口将会接收到携带了ActiveID为1的LACP报文。综上可以看出,当成员设备1和成员设备2都发起了LACPMAD检测时,如果成员设备2的P0RT1端口接收到携带了ActiveID为1的LACP报文,则成员设备2无法判断出该接收LACP报文过程是IRF的堆叠链路出现故障所造成的,还是由于成员设备1发起LACPMAD检测所造成的;同样的,如果成员设备1的P0RT1端口接收到携带了ActiveID为2的LACP报文时也会出现同样的问题,从而导致LACPMAD检测得出错误的检测结果。此外,在使用LACPMAD进行检测时,现有技术中只依靠ActiveID(ActiveID数值小为优)选举最优的成员设备,可能会无法选举出最优的成员设备。如图4所示的一种依靠ActiveID选举最优成员设备的示意图。在图4中,如果堆叠memberl和member2之间的链路出现故障,在IRF分裂完成后,则ActiveID值最小的部分将成为IRF中处理业务的部分,而其他部分需要将自身的业务口执行MADdown操作,即由成员设备1组成的堆叠处理业务,而成员设备2,成员设备3和成员设备4组成的新堆叠会MADdown掉。如果成员设备2,成员设备3和成员设备4组成的堆叠处理的业务,大于成员设备1组成的堆叠处理的业务时,可以看出,依靠ActiveID选举出的成员设备将会影响了大部分业务的应用。
发明内容本发明提供一种用于IRF堆叠设备的MAD检测方法及装置,以提高MAD检测的效率,并保证了业务的应用。为了达到上述目的,本发明提出了一种用于IRF堆叠设备的MAD检测方法,应用于包括IRF堆叠中的成员设备和与其相连的对端设备的系统中,所述方法包括以下步骤所述对端设备接收与其相连的成员设备发送的MAD信息发布报文,并根据所述MAD信息发布报文创建或加入MAD域;其中,所述MAD信息发布报文中携带了ActiveID信息;在MAD域创建或加入完成后,MAD域中的所述对端设备根据所述MAD信息发布报文创建并维护MAD信息表;其中,所述MAD信息表中存储了所述ActiveID信息;所述对端设备判断后续接收到的MAD信息发布报文中的ActiveID信息与所述MAD信息表中的ActiveID信息是否相同;当二者相同时,所述对端设备判断没有发生堆叠分裂;当二者不同时,所述对端设备判断发生堆叠分裂。所述MAD信息发布报文中还携带了ChassisID信息,根据所述MAD信息发布报文创建或加入MAD域具体包括所述对端设备从所述MAD信息发布报文中获取ChassisID信息;并判断是否有所述ChassisID信息对应的MAD域;当有所述ChassisID信息对应的MAD域时,所述对端设备加入到所述对应的MAD域中;当没有所述ChassisID信息对应的MAD域时,所述对端设备根据所述ChassisID信息创建MAD域。所述方法还包括以下操作中的一种或几种(1)所述对端设备创建或加入MAD域后,当所述对端设备接收到所述MAD信息发布报文时,所述对端设备不需要从所述MAD信息发布报文中获取ChassisID信息;(2)当所述成员设备关闭链路层MAD功能时,所述对端设备将接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,并将对端设备自身从所述MAD域中剔除;(3)当所述成员设备启动链路层MAD功能时,所述对端设备将接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,如果所述对端设备获取到自身属于某个MAD域,需要将对端设备自身从所述某个MAD域中剔除。当发生堆叠分裂时,所述方法还包括所述对端设备向所述成员设备发送MAD信息反射报文;所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态。所述MAD信息反射报文中携带了其他端口所对应成员设备的UP物理端口数量和接收总流量的统计值;所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态具体包括所述成员设备从所述MAD信息反射报文中获取其他成员设备的UP物理端口数量,并比较自身UP物理端口数量与所述其他成员设备的UP物理端口数量;当自身UP物理端口数量小于所述其他成员设备的UP物理端口数量时,所述成员设备关闭自身的设备端口;当自身UP物理端口数量大于所述其他成员设备的UP物理端口数量时,所述成员设备保持自身的设备端口处于Active状态。当自身UP物理端口数量与所述其他成员设备的UP物理端口数量相同时,所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态还包括所述成员设备从所述MAD信息反射报文中获取其他成员设备的接收总流量的统计值,并比较自身接收总流量的统计值与所述其他成员设备的接收总流量的统计值;当自身接收总流量的统计值小于所述其他成员设备的接收总流量的统计值时,所述成员设备关闭自身的设备端口;当自身接收总流量的统计值大于所述其他成员设备的接收总流量的统计值时,所述成员设备保持自身的设备端口处于Active状态。—种用于IRF堆叠设备的MAD检测装置,应用于包括IRF堆叠中的成员设备和与其相连的对端设备的系统中,所述装置包括收发模块,用于接收与其相连的成员设备发送的MAD信息发布报文;处理模块,与所述收发模块连接,用于根据所述MAD信息发布报文创建或加入MAD域;其中,所述MAD信息发布报文中携带了ActiveID信息;并在MAD域创建或加入完成后,根据所述MAD信息发布报文创建并维护MAD信息表;其中,所述MAD信息表中存储了所述ActiveID信息;判断模块,与所述处理模块和收发模块连接,用于判断后续接收到的MAD信息发布报文中的ActiveID信息与所述MAD信息表中的ActiveID信息是否相同;当二者相同时,判断没有发生堆叠分裂;当二者不同时,判断发生堆叠分裂。所述MAD信息发布报文中还携带了ChassisID信息,所述处理模块具体用于,从所述MAD信息发布报文中获取ChassisID信息;并判断是否有所述ChassisID信息对应的MAD域;当有所述ChassisID信息对应的MAD域时,加入到所述对应的MAD域中;当没有所述ChassisID信息对应的MAD域时,根据所述ChassisID信息创建MAD域。所述处理模块还用于,在创建或加入MAD域后,当接收到所述MAD信息发布报文时,不从所述MAD信息发布报文中获取ChassisID信息;当所述成员设备关闭链路层MAD功能时,接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,并将所述对端设备从所述MAD域中剔除;当所述成员设备启动链路层MAD功能时,接收到来自所述成员设备向所述对端设7备发送的MAD信息退出报文,如果获取到自身属于某个MAD域时,将所述对端设备自身从所述某个MAD域中剔除。所述收发模块还用于,向所述成员设备发送MAD信息反射报文;并由所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态。与现有技术相比,本发明具有以下优点通过改进现有的MAD检测方法,使得MAD检测过程更加高效,使用范围不受组网限制,MAD处理符合实际组网的应用;而且成员设备可以根据active端口数,当前设备承载流量大小等特征,进行IRF继承者选举,使得堆叠分裂故障对整个网络的影响降到最低。图1为现有技术中动态LACPMAD组网示意图;图2为现有技术中非动态聚合链路的LACPMAD检测示意图;图3为现有技术中动态聚合两端都是IRF设备的示意图;图4为现有技术中依靠ActiveID选举最优成员设备的示意图;图5为本发明提出的一种用于IRF堆叠设备的MAD检测方法流程图;图6为本发明应用场景下提出的一种用于IRF堆叠设备的MAD检测方法流程图;图7为本发明应用场景下的MADTLV格式示意图;图8为本发明应用场景下的扩展后的链路层邻居发现协议报文示意图;图9为本发明应用场景下MAD域建立示意图;图10为本发明应用场景下堆叠链路发生断裂时的MAD域处理示意图;图11为本发明应用场景下对应图4的选举最优成员设备的示意图;图12为本发明提出的一种用于IRF堆叠设备的MAD检测装置结构图。具体实施例方式本发明的基本思想是通过在对端设备的端口中创建MAD域,并由MAD域中的端口(属于对端设备)维护相同的MAD信息表;在后续过程中,IRF中的成员设备将周期性的发送MAD信息发布报文,而MAD域中的端口将比较MAD信息发布报文中的ActiveID与自身存储的MAD信息表中的ActiveID是否相同,当二者相同时可以确定发生堆叠分裂,继而可以由端口向成员设备发送MAD信息反射报文。由于MAD信息反射报文中携带了其他端口所对应成员设备的UP物理端口数量和接收总流量的统计值,当成员设备接收到该MAD信息反射报文后,可以综合考虑其他成员设备的UP物理端口数量和接收总流量的统计值,以及自身的UP物理端口数量和接收总流量的统计值;继而确定是保持自身的设备端口处于Active状态,还是关闭自身的设备端口;从而使得成员设备可以根据active端口数,当前设备承载流量大小等特征,进行IRF继承者选举,使得堆叠分裂故障对整个网络的影响降到最低。如图5所示,本发明提出的一种用于IRF堆叠设备的MAD检测方法,应用于包括IRF堆叠中的成员设备和与其相连的对端设备的系统中,所述方法包括以下步骤步骤501,所述对端设备接收与其相连的成员设备发送的MAD信息发布报文,并根据所述MAD信息发布报文创建或加入MAD域。其中,所述MAD信息发布报文中携带了ChassisID信息,根据所述MAD信息发布报文创建或加入MAD域具体包括所述对端设备从所述MAD信息发布报文中获取ChassisID信息;并判断是否有所述ChassisID信息对应的MAD域;当有所述ChassisID信息对应的MAD域时,所述对端设备加入到所述对应的MAD域中;当没有所述ChassisID信息对应的MAD域时,所述对端设备根据所述ChassisID信息创建MAD域。具体的,在本发明中,通过对现有的链路层邻居发现协议进行扩展,可以得到MAD信息报文,即通过在链路层邻居发现协议的信息字段中添加MADTLV来实现对MAD信息的承载,该MADTLV中至少携带了subtype字段、ActiveID字段、totalactiveport字段(表示堆叠中包含的active端口总数)和totalflow字段(表示堆叠的当前接收总流量的统计值)。其中,可以通过对该subtype字段进行赋值,来表示MAD信息发布报文和MAD信息反射报文。例如,当subtype字段取值为1时,表示MAD信息发布报文,当subtype字段取值为0时,表示MAD信息反射报文。而对于同一个IRF中的每个成员设备,在发送MAD信息发布报文时,subtype字段、ActiveID字段、totalactiv印ort字段和totalflow字段中携带的内容相同。此外,在成员设备向对应的对端设备发送MAD信息发布报文时,除了携带上述的MADTLV部分,还至少携带了ChassisID信息,其中,该ChassisID信息是系统的桥MAC(MediaAccessControl,媒体访问控制)信息,而由于同一个IRF中的每个成员设备在发送MAD信息发布报文时,ChassisID是相同的,即可以根据ChassisID信息创建MAD域。步骤502,在MAD域创建或加入完成后,MAD域中的所述对端设备根据所述MAD信息发布报文创建并维护MAD信息表;其中,在所述MAD信息发布报文中携带了ActiveID信息;所述MAD信息表中也存储了所述ActiveID信息。可以看出,在所述MAD信息发布报文中的MADTLV部分,包含了ActiveID字段,S卩MAD信息发布报文通过使用该ActiveID字段携带了ActiveID信息。步骤503,所述对端设备判断后续接收到的MAD信息发布报文中的ActiveID信息与所述MAD信息表中的ActiveID信息是否相同;当二者相同时,转到步骤504,当二者不同时,转到步骤505。步骤504,所述对端设备判断没有发生堆叠分裂;步骤505,所述对端设备判断发生堆叠分裂。以下结合一种具体的应用场景,对本发明提出的用于IRF堆叠设备的MAD检测方法进行详细说明,如图6所示,该用于IRF堆叠设备的MAD检测方法包括以下步骤步骤601,通过使用链路层邻居发现协议创建MAD域。由于链路层邻居发现协议运行在数据链路层,不受STP(SpanningTreeProtocol,生成树协议)、MSTP、链路聚合等其它协议的影响,而且链路层邻居发现协议本身具有开销小、不影响上层业务的特点,即可以选择链路层邻居发现协议承载MAD信息,继而使用该链路层邻居发现协议服务于MAD检测过程。具体的,该链路层邻居发现协议包括但不限于LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)、LDP(LabelDistributionProtocol,标签分发协议)等协议;本发明中,通过对链路层邻居发现协议进行扩展,继而可以使用扩展后的链路层邻居发现协议承载MAD信息。如图7所示,本发明中通过在链路层邻居发现协议的信息字段中添加MADTLV来实现对MAD信息的承载。其中,为了和现有的标准进行统一,需要将MADTLV的第一个字段(TLVType)占一个字节取值127(当然,在实际应用中也可以选择其他的取值,在此不再赘述),表示组织自定义TLV;TLVLength字段(可以选择1个字节)表示TLV信息域的长度,即后续字段所占用的长度;00-0f-e2字段(可以选择3个字节)表示公司组织的名称;subtype字段(可以选择l个字节)表示子类型,例如,当subtype字段取值为1时,表示MAD信息发布报文,当subtype字段取值为2时,表示MAD信息反射报文,当subtype字段取值为3时,表示MAD信息退出报文,即表示取消并退出MAD功能;ActiveID字段(可以选择1个字节)表示ActiveID的信息;totalactiveport字段(可以选择1个字节)表示堆叠中包含的active端口总数,active端口即UP物理端口;totalflow字段(可以选择1个字节)表示堆叠的当前接收总流量的统计值。需要说明的是,上述MADTLV中的内容并不局限于此,也并局限于上述的字节数表示相应的字段,而且相应的功能也不局限于对应的字段取值,例如,可以使用2个字节表示totalflow字段,可以将subtype字段取值为3表示MAD信息发布报文等,本发明中不再详加赘述,以上述情况为例来说明本发明中的处理过程。本发明中,以LLDP协议为例来说明基于链路层邻居发现协议的MAD报文封装格式,如图8所示,为扩展后的链路层邻居发现协议,在该LLDP的MAD报文中,MADTLV字段即上述图7所示的扩展部分,用于对MAD信息的承载,而其他部分为现有LLDP协议中的字段,例如,ChassisIDTLV中的信息是系统的桥MAC信息,对于其他的字段,本发明中不再详加赘述。下面以图9所示的MAD域建立示意图为例来说明本步骤中创建MAD域的过程,该创建MAD域的过程可以为LLDP协议(报文格式如图8所示,且携带了图7所示的扩展部分)、LDP协议等。在图9中,IRF设备在每个成员设备(分别为成员设备1、成员设备2、成员设备3和成员设备4)上选择一个端口启动链路层MAD功能,并由该端口向外发送链路层邻居发现报文,而且该链路层邻居发现报文中携带MADTLV(即图7所示的扩展部分)。其中,在该MADTLV部分,subtype字段值为1,表示该链路层邻居发现报文为MAD信息发布报文,用于发布本IRF的MAD信息;ActiveID为堆叠master的ID,totalactiveport字段为堆叠中UP物理的端口的数量,totalflow字段表示IRF当前接收流量总字节数。需要说明的是,该totalflow字段中的当前接收流量总字节数为该IRF设备自身实时统计的,并根据统计结果封装在该链路层邻居发现报文中的;该totalactiveport字段中的UP物理端口的数量也是IRF设备自身进行统计,并封装在该链路层邻居发现报文中的。进一步的,当对端设备接收到第一个MAD信息发布报文后(即从链路层邻居发现报文中获取到subtype字段值为l,可获知接收到的链路层邻居发现报文为MAD信息发布报文),建立MAD检测域(即MAD域),并以MADIDTLV报文中的ChasissID信息标识该MAD域。当后续的其它端口收到MAD信息发布报文后,判断自身接收到的MAD信息发布报文中的ChassisID信息和当前MAD域(即接收到第一个MAD信息发布报文时所创建的MAD域)的ChasissID信息是否相同,如果ChassisID信息和当前MAD域的ChasissID信息相同,则该端口需要加入到当前MAD域中,而如果ChassisID信息和当前MAD域的ChasissID信息不同,则由该端口创建新的MAD域。在图9中,对端设备的portl、port2、port3和port4将分别接收到成员设备1、成员设备2、成员设备3和成员设备4中对应端口的MAD信息发布报文,而且成员设备1、成员设备2、成员设备3和成员设备4位于同一个IRF中,即对端设备的portl、port2、port3和port4将位于同一个MAD域中,此外,上述的portl、port2、port3和port4可以是相同对端设备的端口,也可以是不同对端设备的端口。即上述的portl、port2、port3和port4是属于对端设备的端口,为了方便描述,以portl、port2、port3和port4执行对应对端设备的操作为例进行后续的说明。需要说明的是,在堆叠正常使用时,如果进行主备倒换操作,则可能会出现桥MAC变化的情况,继而导致MAD信息发布报文的ChassisID发生变化,此时,组网拓扑变化后的MAD域中的当前端口可能会连接到其它的IRF设备,例如,对端设备的port2加入到MAD域后,如果接收到了ChassisID发生变化的MAD信息发布报文后,则该port2将不再属于图9所示的MAD域。为了解决上述问题,本发明中需要执行如下操作(1)当端口加入到MAD域后,后续再接收到MAD信息发布报文后,将不再关心后续MAD信息发布报文中的ChasissID特征,即ChasissID发生变化后,该端口不需要根据该ChasissID连接到其它的IRF设备的MAD域。(2)IRF设备的端口关闭链路层MAD功能时,需要发布MAD信息退出报文给对端设备,即该IRF设备的端口需要取消并退出MAD功能,该MAD信息退出报文是通过将subtype字段取值为3进行表示的。当对端设备接收到该MAD信息退出报文后,需要将接收到该MAD信息退出报文的端口从MAD域中剔除。(3)IRF设备启动链路层MAD功能时,也需要发布subtype为3的MAD信息退出报文给对端设备,当对端设备接收到该MAD信息退出报文后,如果获知接收到该MAD信息退出报文的端口已经属于某个MAD域(例如,MAD域1),则需要将该端口从原先的MAD域(MAD域l)中剔除。步骤602,MAD域中各个端口根据MAD信息发布报文创建并维护MAD信息表。其中,本步骤与上述创建MAD域的过程并没有先后的顺序关系。当对端设备中的端口接收到MAD信息发布报文后,将从MAD信息发布报文的MADTLV字段获取到ActiveID字段、totalactiveport字段、以及totalflow字段中的内容,并根据相应字段中的内容维护表1所示的MAD信息表。表1<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>在表l中,Portl可以从自身接收到的MAD信息发布报文中获取到ActivelD、totalactiveport数量、totalflow数值等内容,同样的,Port2、Port3和Port4也可以获取到对应的内容,上述的N、M和L均为具体的数值。本步骤中,由于IRF设备是定时发送MAD信息发布报文的,即MAD域中各个端口需要根据MAD信息发布报文实时的更新MAD信息表。其中,当MAD域中的端口在接收到MAD信息发布报文后,将根据该MAD信息发布报文中的ActiveID、Totalactiveport、Totalflow字段信息更新端口的MAD信息表。例如,MAD域中的端口需要根据ActiveID检查MAD信息表中是否有新的ActiveID出现(即有不同的ActiveID),如果有新的ActiveID出现,则表明有新的MAD出现;MAD域中的端口需要根据Totalactiveport、Totalflow中的内容更新MAD信息表中对应的数值。步骤603,MAD域中各个端口根据MAD信息表进行相应的处理。其中,当MAD信息表中有新的ActiveID出现时,则说明IRF堆叠出现分裂,此时,对应的端口需要发送MAD信息反射报文,以交换MAD信息。该MAD信息反射报文与上述MAD信息发布报文类似,在该MAD信息反射报文中也携带了MADTLV,只是subtype字段值为2,表示MAD反射报文,在此不再赘述。下面以图9中的memberl设备和member2设备之间的堆叠链路发生断裂为例来详细说明堆叠分裂情况下的MAD域处理过程,如图10所示。在堆叠分裂之前,由于Port1、Port2、Port3和Port4位于相同的MAD域,且没有堆叠分裂,则各个端口的ActiveID相同,如表2所示,为堆叠分裂前的一种MAD信息表的示意情况。表2<table>tableseeoriginaldocumentpage12</column></row><table>需要说明的是,同一个MAD域内ActiveID相同的端口,MAD信息表中的内容是相同的,因此,MAD信息发布报文的接收次序关系在一段时间内可能会出现不同步的情况,此时,需要等待一段预设时间,该预设时间可以根据实际需要进行调整,当达到该预设时间后,如果出现MAD域内端口ActiveID不同的情况时,需要发送MAD信息反射报文。进一步的,当memberl设备和member2设备之间的堆叠链路发生断裂时,则各个端口的ActiveID将会发生变化,由于是memberl设备和member2设备发生堆叠分裂,即Portl的ActiveID将与Port2、Port3禾口Port4的ActiveID不同,如表3所示,为对应表2的堆叠分裂后的一种MAD信息表的示意情况。表3<table>tableseeoriginaldocumentpage13</column></row><table>本步骤中,当IRF堆叠出现分裂时,MAD域中的Portl端口需要向对端堆叠设备发送MAD信息反射报文,该MAD信息反射报文中将携带MAD信息表中Port2、Port3和Port4所对应的信息;即ActiveID信息为2,Totalactiv印ort字段信息为108,Totalflow字段信息为18900000。同样的,MAD域中的Port2、Port3、Port4端口也需要向对端堆叠设备发送MAD信息反射报文,该MAD信息反射报文中将携带MAD信息表中Portl端口所对应的信息;即ActiveID信息为1,Totalactiveport字段信息为32,Totalflow字段信息为948000。步骤604,IRF根据接收到的MAD信息反射报文获取堆叠分裂后的IRF堆叠成员设备。本步骤中,IRF中的memberl设备将接收到来自MAD域中Portl端口的MAD信息反射报文,并从该MAD信息反射报文中获取到Port2、Port3、Port4端口所对应的Totalactiveport字段值和Totalflow字段值,通过比较自身的Totalactiveport字段值,获知对端(即member2设备、member3设备和member4设备所组成的新堆叠)的UP物理端口比自身多,更适合继承原先的堆叠任务,此时,该memberl设备将迁移到Recovery状态,并关闭自身的设备端口,即关闭自身的端口中除了保留端口以外的其他所有端口,例如,关闭自身的业务端口等。需要说明的是,如果本步骤比较Totalactiveport字段值时获知UP物理端口数相同时,则需要进一步比较Totalflow字段值,如果对端的当前接收总流量比自身多,则对端更适合继承原先的堆叠任务,此时,该memberl设备将迁移到Recovery状态,并关闭自身的设备端口。同样的,IRF中的member2设备、member3设备和member4设备也将接收到来自MAD域中Port2、Port3和Port4的MAD信息反射报文,并从该MAD信息反射报文中获取到Portl端口所对应的Totalactiveport字段值和Totalflow字段值,通过比较自身的Totalactiveport字段值,获知对端(即memberl所组成的新堆叠)的UP物理端口比自身少,确定自身更适合继承原先的堆叠任务,则member2设备、member3设备和member4设备将继续保持Active状态。可以看出,在图IO所示的应用场景下,最终获取的堆叠分裂后的IRF堆叠成员设备为member2设备、member3设备和member4。此外,通过使用本发明提供的技术方案,对于图4所示的堆叠系统,当memberl设备和member2设备之间的链路发生故障时,则最终获取的堆叠分裂后的IRF堆叠成员设备(通过使用UP物理端口数和接收总流量进行获取)可能为member2设备、member3设备和member4,并关闭memberl设备的设备端口,如图11所示,则可以最优的堆叠成员设备,继而保证了大部分业务的应用,显著提高了堆叠系统的使用性能。其中,本发明中的各个步骤还可以根据实际需要进行调整。如图12所示,本发明提出的一种用于IRF堆叠设备的MAD检测装置,应用于包括IRF堆叠中的成员设备和与其相连的对端设备的系统中,所述装置包括收发模块121,用于接收与其相连的成员设备发送的MAD信息发布报文;所述收发模块121还用于,向所述成员设备发送MAD信息反射报文;并由所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态。具体的,所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态包括所述成员设备从所述MAD信息反射报文中获取其他成员设备的UP物理端口数量,并比较自身UP物理端口数量与所述其他成员设备的UP物理端口数量;当自身UP物理端口数量小于所述其他成员设备的UP物理端口数量时,所述成员设备关闭自身的设备端口;当自身UP物理端口数量大于所述其他成员设备的UP物理端口数量时,所述成员设备保持自身的设备端口处于Active状态。当自身UP物理端口数量与所述其他成员设备的UP物理端口数量相同时,所述成员设备从所述MAD信息反射报文中获取其他成员设备的接收总流量的统计值,并比较自身接收总流量的统计值与所述其他成员设备的接收总流量的统计值;当自身接收总流量的统计值小于所述其他成员设备的接收总流量的统计值时,所述成员设备关闭自身的设备端口;当自身接收总流量的统计值大于所述其他成员设备的接收总流量的统计值时,所述成员设备保持自身的设备端口处于Active状态。处理模块122,与所述收发模块121连接,用于根据所述MAD信息发布报文创建或加入MAD域;其中,所述MAD信息发布报文中携带了ActiveID信息;并在MAD域创建或加入完成后,根据所述MAD信息发布报文创建并维护MAD信息表;其中,所述MAD信息表中存储了所述ActiveID信息;所述MAD信息发布报文中还携带了ChassisID信息,所述处理模块122具体用于,从所述MAD信息发布报文中获取ChassisID信息;并判断是否有所述ChassisID信息对应的MAD域;当有所述ChassisID信息对应的MAD域时,加入到所述对应的MAD域中;当没有所述ChassisID信息对应的MAD域时,根据所述ChassisID信息创建MAD域。此外,所述处理模块122还用于,在创建或加入MAD域后,当接收到所述MAD信息发布报文时,不从所述MAD信息发布报文中获取ChassisID信息;当所述成员设备关闭链路层MAD功能时,接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,并将所述对端设备从所述MAD域中剔除;当所述成员设备启动链路层MAD功能时,接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,如果获取到自身属于某个MAD域时,将所述对端设备自身从所述某个MAD域中剔除。判断模块123,与所述处理模块122和收发模块121连接,用于判断后续接收到的MAD信息发布报文中的ActiveID信息与所述MAD信息表中的ActiveID信息是否相同;当二者相同时,判断没有发生堆叠分裂;当二者不同时,判断发生堆叠分裂。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-R0M,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。权利要求一种用于IRF堆叠设备的MAD检测方法,其特征在于,应用于包括IRF堆叠中的成员设备和与其相连的对端设备的系统中,所述方法包括以下步骤所述对端设备接收与其相连的成员设备发送的MAD信息发布报文,并根据所述MAD信息发布报文创建或加入MAD域;其中,所述MAD信息发布报文中携带了ActiveID信息;在MAD域创建或加入完成后,MAD域中的所述对端设备根据所述MAD信息发布报文创建并维护MAD信息表;其中,所述MAD信息表中存储了所述ActiveID信息;所述对端设备判断后续接收到的MAD信息发布报文中的ActiveID信息与所述MAD信息表中的ActiveID信息是否相同;当二者相同时,所述对端设备判断没有发生堆叠分裂;当二者不同时,所述对端设备判断发生堆叠分裂。2.如权利要求1所述的方法,其特征在于,所述MAD信息发布报文中还携带了ChassisID信息,根据所述MAD信息发布报文创建或加入MAD域具体包括所述对端设备从所述MAD信息发布报文中获取ChassisID信息;并判断是否有所述ChassisID信息对应的MAD域;当有所述ChassisID信息对应的MAD域时,所述对端设备加入到所述对应的MAD域中;当没有所述ChassisID信息对应的MAD域时,所述对端设备根据所述ChassisID信息创建MAD域。3.如权利要求2所述的方法,其特征在于,所述方法还包括以下操作中的一种或几种(1)所述对端设备创建或加入MAD域后,当所述对端设备接收到所述MAD信息发布报文时,所述对端设备不需要从所述MAD信息发布报文中获取ChassisID信息;(2)当所述成员设备关闭链路层MAD功能时,所述对端设备将接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,并将对端设备自身从所述MAD域中剔除;(3)当所述成员设备启动链路层MAD功能时,所述对端设备将接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,如果所述对端设备获取到自身属于某个MAD域,需要将对端设备自身从所述某个MAD域中剔除。4.如权利要求1所述的方法,其特征在于,当发生堆叠分裂时,所述方法还包括所述对端设备向所述成员设备发送MAD信息反射报文;所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态。5.如权利要求4所述的方法,其特征在于,所述MAD信息反射报文中携带了其他端口所对应成员设备的UP物理端口数量和接收总流量的统计值;所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态具体包括所述成员设备从所述MAD信息反射报文中获取其他成员设备的UP物理端口数量,并比较自身UP物理端口数量与所述其他成员设备的UP物理端口数量;当自身UP物理端口数量小于所述其他成员设备的UP物理端口数量时,所述成员设备关闭自身的设备端口;当自身UP物理端口数量大于所述其他成员设备的UP物理端口数量时,所述成员设备保持自身的设备端口处于Active状态。6.如权利要求5所述的方法,其特征在于,当自身UP物理端口数量与所述其他成员设备的UP物理端口数量相同时,所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态还包括所述成员设备从所述MAD信息反射报文中获取其他成员设备的接收总流量的统计值,并比较自身接收总流量的统计值与所述其他成员设备的接收总流量的统计值;当自身接收总流量的统计值小于所述其他成员设备的接收总流量的统计值时,所述成员设备关闭自身的设备端口;当自身接收总流量的统计值大于所述其他成员设备的接收总流量的统计值时,所述成员设备保持自身的设备端口处于Active状态。7.—种用于IRF堆叠设备的MAD检测装置,其特征在于,应用于包括IRF堆叠中的成员设备和与其相连的对端设备的系统中,所述装置包括收发模块,用于接收与其相连的成员设备发送的MAD信息发布报文;处理模块,与所述收发模块连接,用于根据所述MAD信息发布报文创建或加入MAD域;其中,所述MAD信息发布报文中携带了ActiveID信息;并在MAD域创建或加入完成后,根据所述MAD信息发布报文创建并维护MAD信息表;其中,所述MAD信息表中存储了所述ActiveID信息;判断模块,与所述处理模块和收发模块连接,用于判断后续接收到的MAD信息发布报文中的ActiveID信息与所述MAD信息表中的ActiveID信息是否相同;当二者相同时,判断没有发生堆叠分裂;当二者不同时,判断发生堆叠分裂。8.如权利要求7所述的装置,其特征在于,所述MAD信息发布报文中还携带了ChassisID信息,所述处理模块具体用于,从所述MAD信息发布报文中获取ChassisID信息;并判断是否有所述ChassisID信息对应的MAD域;当有所述ChassisID信息对应的MAD域时,加入到所述对应的MAD域中;当没有所述ChassisID信息对应的MAD域时,根据所述ChassisID信息创建MAD域。9.如权利要求8所述的装置,其特征在于,所述处理模块还用于,在创建或加入MAD域后,当接收到所述MAD信息发布报文时,不从所述MAD信息发布报文中获取ChassisID信息;当所述成员设备关闭链路层MAD功能时,接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,并将所述对端设备从所述MAD域中剔除;当所述成员设备启动链路层MAD功能时,接收到来自所述成员设备向所述对端设备发送的MAD信息退出报文,如果获取到自身属于某个MAD域时,将所述对端设备自身从所述某个MAD域中剔除。10.如权利要求7所述的装置,其特征在于,所述收发模块还用于,向所述成员设备发送MAD信息反射报文;并由所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态。全文摘要本发明公开了一种用于IRF堆叠设备的MAD检测方法,包括对端设备根据MAD信息发布报文创建MAD域;并根据所述MAD信息发布报文判断是否发生堆叠分裂,当发生堆叠分裂时,对端设备向成员设备发送MAD信息反射报文,并由所述成员设备根据所述MAD信息反射报文关闭自身的设备端口或保持自身的设备端口处于Active状态。本发明中,使得MAD检测过程更加高效,使用范围不受组网限制。文档编号H04L12/24GK101714932SQ20091025030公开日2010年5月26日申请日期2009年12月3日优先权日2009年12月3日发明者吴频,蒋茂勇申请人:杭州华三通信技术有限公司