一种STP计算方法和装置与流程

文档序号:13391428阅读:297来源:国知局
一种STP计算方法和装置与流程

本发明涉及通信技术领域,尤其涉及一种stp计算方法和装置。



背景技术:

链路聚合是指将多个物理端口捆绑在一起,成为一个逻辑端口,以实现流量在各物理端口的负载分担。当一个物理端口故障时,还可以通过其它物理端口传输流量,以实现链路冗余,保证可靠性。目前,不仅可以将一个网络设备的多个物理端口捆绑在一起,也可以将不同网络设备的多个物理端口捆绑在一起。如图1所示,可以将网络设备1的端口1、网络设备2的端口1捆绑在一起,从而实现跨网络设备的端口聚合,而这种跨网络设备的端口聚合也可以称为dr(distributedrelay,分布式聚合)。其中,可以将网络设备1和网络设备2称为dr成员设备,且聚合在一起的端口可以组成一个dr端口组,该dr端口组内的每个端口称为dr成员端口,如网络设备1的端口1、网络设备2的端口1。

在stp(spanningtreeprotocol,生成树协议)计算时,对于由网络设备1和网络设备2组成的dr系统,对外呈现为一个设备,即网络设备3将网络设备1和网络设备2确定为一个设备。基于此,在stp计算的过程中,网络设备3会确定出端口1和端口2与同一个设备连接,并可以阻塞端口1或者端口2。

在传统方式中,当dr系统分裂后,网络设备3仍然将网络设备1和网络设备2确定为一个设备,并阻塞端口1或者端口2,以阻塞端口1为例。但是实际上,当dr系统分裂后,网络设备1和网络设备2是两个独立设备,而阻塞端口1的操作,会导致网络设备2无法与网络设备3正常通行,即stp计算错误。



技术实现要素:

本公开提供一种生成树协议stp计算方法,应用于本端设备,且与所述本端设备连接的对端设备为分布式聚合dr成员设备,所述方法包括:

接收所述对端设备发送的第一类协议报文,其中,所述第一类协议报文携带系统介质访问控制mac地址;

若所述第一类协议报文还携带桥mac地址,则利用所述第一类协议报文携带的桥mac地址进行stp计算;

若所述第一类协议报文未携带桥mac地址,则利用所述第一类协议报文携带的系统mac地址进行stp计算。

本公开提供一种生成树协议stp计算装置,应用于本端设备,且与所述本端设备连接的对端设备为分布式聚合dr成员设备,所述装置包括:

接收模块,用于接收所述对端设备发送的第一类协议报文,其中,所述第一类协议报文携带系统介质访问控制mac地址;

处理模块,用于当所述第一类协议报文还携带桥mac地址时,则利用所述第一类协议报文携带的桥mac地址进行stp计算;

当所述第一类协议报文未携带桥mac地址时,则利用所述第一类协议报文携带的系统mac地址进行stp计算。

基于上述技术方案,本公开实施例中,在dr系统分裂之后,非dr成员设备/dr成员设备可以将每个dr成员设备识别为独立设备,并在此基础上进行stp的计算,stp的计算结果正确,且每个dr成员设备均能够正常通信,避免非dr成员设备/dr成员设备的端口状态出现错误,并提高了系统的稳定性。

附图说明

为了更加清楚地说明本公开实施例或者现有技术中的技术方案,下面将对本公开实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中所记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本公开实施例的这些附图获得其他的附图。

图1是分布式聚合的组网示意图;

图2是本公开一种实施方式中的stp计算方法的流程图;

图3是本公开一种实施方式中的stp计算装置的结构图;

图4是本公开一种实施方式中的本端设备的硬件结构图。

具体实施方式

在本公开使用的术语仅仅是出于描述特定实施例的目的,而非限制本公开。本公开和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本公开实施例提出一种stp计算方法,该方法可以应用于包括本端设备和对端设备的系统中,本端设备与对端设备连接。参见图2所示,为该方法的流程示意图,该方法可以应用于本端设备,且与该本端设备连接的对端设备可以为dr成员设备,而且,该本端设备可以为dr成员设备或者非dr成员设备。

步骤201,接收对端设备发送的第一类协议报文,其中,该第一类协议报文可以携带系统mac(mediaaccesscontrol,介质访问控制)地址。

在一个例子中,可以在每个dr成员设备上配置相同的系统mac地址,不同的桥mac地址,且对端设备在发送协议报文(为了区分方便,将对端设备发送的协议报文称为第一类协议报文)时,若dr系统正常,则该第一类协议报文携带对端设备的系统mac地址;若dr系统已经分裂,则该第一类协议报文携带对端设备的系统mac地址、对端设备的桥mac地址。

因此,本端设备接收到的第一类协议报文,可以携带系统mac地址,或者,该第一类协议报文可以携带系统mac地址和桥mac地址。

步骤202,判断该第一类协议报文是否携带桥mac地址。如果是,则执行步骤203,即第一类协议报文是对端设备在dr系统分裂后发送的;如果否,则执行步骤204,即第一类协议报文是对端设备在dr系统正常时发送的。

步骤203,利用第一类协议报文携带的桥mac地址进行stp计算。

在一个例子中,针对“利用第一类协议报文携带的桥mac地址进行stp计算”的过程,可以包括:先判断本端设备是否配置有系统mac地址;如果否,则可以利用本端设备的桥mac地址以及第一类协议报文携带的桥mac地址进行stp计算;如果是,则可以比较本端设备配置的系统mac地址与第一类协议报文携带的系统mac地址是否相同;如果相同,则可以利用本端设备的桥mac地址以及第一类协议报文携带的桥mac地址进行stp计算。

在比较本端设备配置的系统mac地址与第一类协议报文携带的系统mac地址是否相同后,若比较结果为不同,则可以利用第一类协议报文携带的系统mac地址、或者第一类协议报文携带的桥mac地址进行stp计算。

步骤204,利用第一类协议报文携带的系统mac地址进行stp计算。

在上述过程中已经介绍过,对端设备是dr成员设备,本端设备是dr成员设备或者非dr成员设备,因此,若本端设备是dr成员设备,则本端设备与对端设备可以组成dr系统,而且,在dr系统正常时,本端设备可以发送第二类协议报文(为了区分方便,将本端设备在dr系统正常时发送的协议报文称为第二类协议报文),且第二类协议报文携带本端设备的系统mac地址;在dr系统分裂时,本端设备可以发送第三类协议报文(为了区分方便,将本端设备在dr系统分裂时发送的协议报文称为第三类协议报文),且第三类协议报文携带本端设备的系统mac地址、本端设备的桥mac地址。

进一步的,其它设备接收到第二类协议报文/第三类协议报文的处理过程,与本端设备接收到第一类协议报文时的处理过程类似,在此不再赘述。

在一个例子中,若第一类协议报文只携带系统mac地址,未携带桥mac地址,则第一类协议报文可以包括桥标识(bridgeid)字段,且该桥标识字段用于承载系统mac地址。或者,若第一类协议报文携带系统mac地址和桥mac地址,则第一类协议报文可以包括桥标识字段和预设扩展字段,且该桥标识字段用于承载系统mac地址,该预设扩展字段用于承载桥mac地址。

类似的,由于第二类协议报文只携带系统mac地址,未携带桥mac地址,因此,该第二类协议报文可以包括桥标识字段,且该桥标识字段用于承载系统mac地址。由于第三类协议报文携带系统mac地址和桥mac地址,因此,该第三类协议报文可以包括桥标识字段和预设扩展字段,且该桥标识字段用于承载系统mac地址,该预设扩展字段用于承载桥mac地址。

在一个例子中,上述的协议报文(如第一类协议报文、第二类协议报文、第三类协议报文)均可以为bpdu(bridgeprotocoldataunit,网桥协议数据单元)报文,在后续过程中,以bpdu报文为例进行说明。

基于上述技术方案,本公开实施例中,在dr系统分裂之后,非dr成员设备/dr成员设备可以将每个dr成员设备识别为独立设备,并在此基础上进行stp的计算,stp的计算结果正确,且每个dr成员设备均能够正常通信,避免非dr成员设备/dr成员设备的端口状态出现错误,并提高了系统的稳定性。

以下结合图1所示的应用场景,对上述过程进行说明。参见图1所示,网络设备1和网络设备2为dr成员设备,网络设备3和网络设备4为非dr成员设备。若本端设备为网络设备1,对端设备可以为网络设备2、网络设备3和网络设备4;若本端设备为网络设备2,对端设备可以为网络设备1、网络设备3;若本端设备为网络设备3,对端设备可以为网络设备1、网络设备2、网络设备4;若本端设备为网络设备4,对端设备可以为网络设备1、网络设备3。

为完成stp计算,网络设备可以广播发送bpdu(bridgeprotocoldataunit,网桥协议数据单元)报文,如网络设备1发送bpdu报文时,网络设备2、网络设备3和网络设备4可以接收到该bpdu报文;网络设备2发送bpdu报文时,网络设备1、网络设备3可以接收到该bpdu报文;网络设备3发送bpdu报文时,网络设备1、网络设备2、网络设备4可以接收到该bpdu报文;网络设备4发送bpdu报文时,网络设备1、网络设备3可以接收到该bpdu报文。

上述场景可以涉及如下情况:情况1、dr成员设备接收另一dr成员设备发送的bpdu报文(网络设备1接收网络设备2发送的bpdu报文、网络设备2接收网络设备1发送的bpdu报文);情况2、非dr成员设备接收dr成员设备发送的bpdu报文(网络设备3接收网络设备1发送的bpdu报文、网络设备3接收网络设备2发送的bpdu报文、网络设备4接收网络设备1发送的bpdu报文);情况3、dr成员设备接收非dr成员设备发送的bpdu报文(网络设备1接收网络设备3发送的bpdu报文、网络设备1接收网络设备4发送的bpdu报文、网络设备2接收网络设备3发送的bpdu报文);情况4、非dr成员设备接收另一非dr成员设备发送的bpdu报文(网络设备3接收网络设备4发送的bpdu报文、网络设备4接收网络设备3发送的bpdu报文)。

针对情况3和情况4,是非dr成员设备发送bpdu报文,dr成员设备/非dr成员设备接收bpdu报文的处理,其实现方式与传统方式类似,本公开实施例不再赘述。针对情况1和情况2,是dr成员设备发送bpdu报文,dr成员设备/非dr成员设备接收bpdu报文的处理,以下对这两种情况进行说明。

在本应用场景下,dr系统的系统mac地址可以为macs,此外,网络设备1的桥mac地址为maca,网络设备2的桥mac地址为macb,网络设备3的桥mac地址为macc,网络设备4的桥mac地址为macd。

在dr系统正常时,网络设备1发送携带macs的bpdu报文1,该macs携带在bpdu报文1的桥标识字段。网络设备2发送携带macs的bpdu报文2,该macs携带在bpdu报文2的桥标识字段。bpdu报文1还携带端口标识,如通过端口1发送的bpdu报文1携带端口1,以此类推。同理,bpdu报文2还携带端口标识,如通过端口1发送的bpdu报文2携带端口1,以此类推。

由于网络设备1和网络设备2位于同一dr系统,因此,网络设备1不向网络设备2发送bpdu报文1,只向网络设备3/网络设备4发送bpdu报文1。同理,网络设备2不向网络设备1发送bpdu报文2,只向网络设备3发送bpdu报文2,以下对网络设备3接收到bpdu报文1、bpdu报文2的处理进行说明。

网络设备3在通过端口2接收到bpdu报文1、通过端口1接收到bpdu报文2后,由于bpdu报文1、bpdu报文2未携带桥mac地址,因此,利用bpdu报文1携带的系统mac地址(maca)、bpdu报文2携带的系统mac地址(maca)进行stp计算。具体的,由于bpdu报文1携带的maca与bpdu报文2携带的maca相同,因此将网络设备1和网络设备2确定为一个设备,并确定出端口1和端口2与同一个设备连接,即stp计算结果为端口1或者端口2是阻塞状态,因此,网络设备3阻塞网络设备3的端口1或者端口2。

在dr系统分裂之后,网络设备1发送携带maca和macs的bpdu报文3,该macs携带在bpdu报文3的桥标识字段,该maca携带在bpdu报文3的预设扩展字段。此外,网络设备2发送携带macb和macs的bpdu报文4,该macs携带在bpdu报文4的桥标识字段,该macb携带在bpdu报文4的预设扩展字段。此外,该bpdu报文3还可以携带端口标识,如通过端口1发送的bpdu报文3携带端口1,以此类推。同理,bpdu报文4还可以携带端口标识,如通过端口1发送的bpdu报文4携带端口1,以此类推。

由于dr系统分裂后,网络设备1和网络设备2是独立设备,因此,网络设备1可以向网络设备2发送bpdu报文3,并向网络设备3/网络设备4发送bpdu报文3。同理,网络设备2向网络设备1发送bpdu报文4,并向网络设备3发送bpdu报文4。实际应用中,dr系统分裂的原因是:当网络设备1和网络设备2之间的ipl(intra-portallink,内部入口链路)发生故障,且保活链路发生故障时,则dr系统分裂。基于此,网络设备1的端口2和端口4已经处于down状态,无法传输bpdu报文3,因此,网络设备1通过端口3向网络设备2发送bpdu报文3。同理,网络设备2通过端口3向网络设备1发送bpdu报文4。

网络设备2通过端口3接收到bpdu报文3后,由于bpdu报文3携带桥mac地址(即maca),因此,利用bpdu报文3携带的maca进行stp计算。具体的,若网络设备2本地配置的桥mac地址与bpdu报文3携带的maca不同,则认为bpdu报文3不是本网络设备2的端口3发出的bpdu报文,因此,stp计算结果为端口3是转发状态,即不阻塞网络设备2的端口3。若网络设备2本地配置的桥mac地址与bpdu报文3携带的maca相同,则比较接收到报文的端口(如端口3)与bpdu报文3携带的端口标识(如端口3)是否相同,若二者相同,则认为是本网络设备2的端口3发出的bpdu报文3,又从本网络设备2的端口3接收,因此,stp计算结果为端口3是阻塞状态,并阻塞网络设备2的端口3。显然,网络设备2本地配置的桥mac地址(即macb)与bpdu报文3携带的maca不同,stp计算结果为端口3是转发状态。

同理,网络设备1通过本网络设备1的端口3接收到bpdu报文4后,stp计算结果为端口3是转发状态,即网络设备1不阻塞网络设备1的端口3。

网络设备3在通过端口2接收到bpdu报文3、通过端口1接收到bpdu报文4之后,由于bpdu报文3、bpdu报文4均携带桥mac地址,因此,利用bpdu报文3携带的桥mac地址(maca)、bpdu报文4携带的桥mac地址(macb)进行stp计算。具体的,由于bpdu报文3携带的maca与bpdu报文4携带的macb不同,因此将网络设备1和网络设备2确定为不同设备,并确定出端口1和端口2与不同设备连接,即stp计算结果为端口1和端口2是转发状态,因此,网络设备3不阻塞网络设备3的端口1和端口2。

在一个例子中,针对“网络设备2利用bpdu报文3携带的maca进行stp计算”的过程,网络设备2还可以先判断本网络设备2是否配置有系统mac地址,由于配置有系统mac地址(即macs),则比较本网络设备2配置的系统mac地址与bpdu报文3携带的macs是否相同,由于二者相同,则利用网络设备2的桥mac地址(即macb)与bpdu报文3携带的maca进行stp计算。具体的,由于网络设备2的桥mac地址(即macb)与bpdu报文3携带的maca不同,因此stp计算结果为端口3是转发状态。

针对“网络设备3利用bpdu报文3携带的桥mac地址(maca)、bpdu报文4携带的桥mac地址(macb)进行stp计算”的过程,在通过端口2接收到bpdu报文3后,网络设备3还可以先判断本网络设备3是否配置有系统mac地址,由于没有配置系统mac地址,因此利用网络设备3的桥mac地址(macc)以及bpdu报文3携带的桥mac地址(maca)进行stp计算,即由于二者不同,因此,stp计算结果为端口2是转发状态。此外,在通过端口1接收到bpdu报文4后,网络设备3还可以先判断本网络设备3是否配置有系统mac地址,由于没有配置系统mac地址,因此利用网络设备3的桥mac地址(macc)以及bpdu报文4携带的桥mac地址(macb)进行stp计算,即由于二者不同,因此,stp计算结果为端口1是转发状态。

网络设备3在通过端口2接收到bpdu报文3、通过端口1接收到bpdu报文4之后,由于bpdu报文3、bpdu报文4均携带桥mac地址,因此,利用bpdu报文3携带的桥mac地址(maca)、bpdu报文4携带的桥mac地址(macb)进行stp计算,即stp计算结果为端口1和端口2是转发状态。

在一个例子中,当dr系统从分裂状态恢复为正常状态时,网络设备1/网络设备2发送的bpdu报文又只携带系统mac地址,而不再携带桥mac地址,其实现过程参见上述dr系统从正常时的处理流程,在此不再重复赘述。

基于与上述方法同样的构思,本公开实施例中还提出一种stp计算装置,该装置可以应用于本端设备,且与所述本端设备连接的对端设备为dr成员设备。如图3所示,为本公开提出的stp计算装置的结构图,所述装置包括:

接收模块11,用于接收所述对端设备发送的第一类协议报文,其中,所述第一类协议报文携带系统介质访问控制mac地址;

处理模块12,用于当所述第一类协议报文还携带桥mac地址时,则利用所述第一类协议报文携带的桥mac地址进行stp计算;

当所述第一类协议报文未携带桥mac地址时,则利用所述第一类协议报文携带的系统mac地址进行stp计算。

在一个例子中,若所述本端设备是dr成员设备,且所述本端设备与所述对端设备组成dr系统,所述装置还包括(在图中未体现):

发送模块,用于在所述dr系统正常时,发送第二类协议报文;其中,所述第二类协议报文携带所述本端设备的系统mac地址;

在所述dr系统分裂时,发送第三类协议报文;其中,所述第三类协议报文携带所述本端设备的系统mac地址、所述本端设备的桥mac地址。

所述处理模块12,具体用于在利用所述第一类协议报文携带的桥mac地址进行stp计算的过程中,判断所述本端设备是否配置有系统mac地址;

如果否,则利用所述本端设备的桥mac地址以及所述第一类协议报文携带的桥mac地址进行stp计算;如果是,则比较所述本端设备配置的系统mac地址与所述第一类协议报文携带的系统mac地址是否相同;

如果相同,则利用所述本端设备的桥mac地址以及所述第一类协议报文携带的桥mac地址进行stp计算。

在一个例子中,所述处理模块12,还用于在比较所述本端设备配置的系统mac地址与所述第一类协议报文携带的系统mac地址是否相同之后,如果不同,则利用所述第一类协议报文携带的系统mac地址、或者所述第一类协议报文携带的桥mac地址进行stp计算。

在一个例子中,所述接收模块11接收的所述第一类协议报文包括桥标识字段和预设扩展字段;所述桥标识字段用于承载系统mac地址,所述预设扩展字段用于承载桥mac地址。

本公开实施例提供的本端设备,从硬件层面而言,其硬件架构示意图具体可以参见图4所示。包括:机器可读存储介质和处理器,其中:

机器可读存储介质:存储指令代码。

处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本公开上述示例公开的stp计算操作。

这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本公开时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可以采用完全硬件实施例、完全软件实施例、或者结合软件和硬件方面的实施例的形式。而且,本公开可以采用在一个或者多个其中包含有计算机可用程序代码的计算机可用存储介质(可以包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1