一种报文转发方法及装置与流程

文档序号:11138460阅读:473来源:国知局
本发明涉及网络通信
技术领域
,尤其涉及一种报文转发方法及装置。
背景技术
:IRF(IntelligentResilientFramework,智能弹性架构)虚拟化技术的基本思想是指将多台设备连接在一起,进行配置后,虚拟化成一台设备进行管理。此过程也可以简称为堆叠。堆叠系统中,存在单播流量和广播流量的转发。单播流量会指定目的端口,流量仅向目的出端口发送,不会形成环路。而广播流量,向其他框广播,其他框收到后,也会通过堆叠链路转发给发送端,从而形成环路。环路会占用堆叠链路的带宽,影响协议报文的转发,并且还可能会对单板的CPU(CenterProcessUnit,中央处理单元)造成冲击。因此如何在堆叠系统中有效防止广播报文环路,成为必须要解决的问题。技术实现要素:本发明提供一种报文转发方法及装置,以避免广播报文在堆叠系统中产生环路。根据本发明实施例的第一方面,提供一种报文转发方法,应用于堆叠系统中的目标成员设备,该方法包括:当需要通过目标堆叠口发送广播报文时,根据堆叠拓扑确定第一指示信息,并通过所述目标堆叠口发送携带所述第一指示信息的广播报文;其中,所述第一指示信息用于指示禁止该广播报文转发到的成员设备;当接收到广播报文时,根据该广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文;若允许,则根据堆叠拓扑更新该广播报文中携带的第一指示信息,并将更新后的广播报文转发给该邻居成员设备;否则,拒绝向邻居成员设备转发该广播报文。根据本发明实施例的第二方面,提供一种报文转发装置,应用于堆叠系统中的目标成员设备,该装置包括:确定单元,用于当需要通过目标堆叠口发送广播报文时,根据堆叠拓扑确定第一指示信息;其中,所述第一指示信息用于指示禁止该广播报文转发到的成员设备;发送单元,用于通过所述目标堆叠口发送携带所述第一指示信息的广播报文;接收单元,用于接收广播报文;判断单元,用于当所述接收单元接收到报文时,根据该广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文;更新单元,用于若允许,则根据堆叠拓扑更新该广播报文中携带的第一指示信息;所述发送单元,还用于若允许,则将所述更新单元更新后的广播报文转发给该邻居成员设备;否则,拒绝向邻居成员设备转发该广播报文。应用本发明实施例,当需要通过目标堆叠口发送广播报文时,根据堆叠拓扑确定第一指示信息,并通过该目标堆叠口发送携带该第一指示信息的广播报文;当接收到广播报文时,根据该广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文;若允许,则根据堆叠拓扑更新该广播报文中携带的第一指示信息,并将更新后的广播报文转发给该邻居成员设备;否则,拒绝向邻居成员设备转发该广播报文,避免了广播报文在堆叠系统产生环路。附图说明图1是本发明实施例提供的一种报文转发方法的流程示意图;图2A~2E是本发明实施例提供应用场景架构示意图;图3是本发明实施例提供的一种报文转发装置的结构示意图;图4是本发明实施例提供的另一种报文转发装置的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。请参见图1,为本发明实施例提供的一种报文转发方法的流程示意图,如图1所示,该方法可以包括以下步骤:需要说明的是,在本发明实施例中,步骤101~步骤104的执行主体可以为堆叠系统中的任一成员设备(本文中称为目标成员设备),为便于描述,以下以步骤101~步骤104的执行主体为目标成员设备为例进行说明。步骤101、当需要通过目标堆叠口发送广播报文时,根据堆叠拓扑确定第一指示信息,并通过该目标堆叠口发送携带该第一指示信息的广播报文;其中,该第一指示信息用于指示禁止该广播报文转发到的成员设备。本发明实施例中,为了避免广播报文在堆叠系统中形成环路,堆叠系统中的成员设备在发送广播报文时,需要在广播报文中携带用于指示禁止该广播报文转发到的成员设备的指示信息(本文中称为第一指示信息),以使其它成员设备在接收到该广播报文时,根据该广播报文中携带的第一指示信息对报文的转发进行控制。其中,该第一指示信息可以包括该广播报文已经经过的成员设备的编号(链形堆叠)或发送或转发该广播报文的堆叠口之外的其它堆叠口发送或转发的广播报文将会经过的成员设备(环形堆叠)。相应地,在本发明实施例中,当目标成员设备需要通过目标堆叠口发送广播报文时,该目标成员设备可以根据当前的堆叠拓扑确定第一指示信息,并将该第一指示信息携带在广播报文中向目标堆叠口连接的成员设备发送。其中,目标堆叠口并不指代某一固定的堆叠口,而是可以指代目标成员设备上任一处于工作状态的堆叠口。具体地,考虑到对于链形堆叠,通常目标成员设备通常仅需发送一份广播报文,为了防止该广播报文在堆叠系统中形成环路,仅需保证该广播报文不会两次经过同一成员设备,因此,为了防止链形堆叠中广播报文环路的产生,第一指示信息可以包括该广播报文经过的成员设备的成员编号,从而,其它成员设备接收到该广播报文时,不会再将该广播报文转发给该广播报文已经过的成员设备。举例来说,以图2A所示链形堆叠场景为例,当设备1需要发送广播报文时,为了避免广播报文在堆叠系统中产生环路,设备1可以将自身的成员编号携带在该广播报文,以指示接收到该广播报文的其它成员设备禁止将该广播报文再转发给设备1。而对于环形堆叠,由于同一成员设备到堆叠系统中不同的其它成员设备的转发路径的出端口可能不同,因此,环形堆叠中目标成员设备发送广播报文时,通常需要通过两个堆叠口各发送一份广播报文。举例来说,以图2B所示环形堆叠场景为例,假设设备1到设备2和设备3的转发路径的出端口为堆叠口11,设备1到设备4的转发路径的出端口为堆叠口12,则当设备1发送广播报文时,需要通过堆叠口11和堆叠口12各发送一份广播报文。可见,在环形堆叠场景中,为了避免广播报文在堆叠系统中形成环路,还需要避免目标成员设备通过一个堆叠口发送的广播报文被转发到以另一个堆叠口为出端口的转发路径上的其它成员设备,因此,对于环形堆叠场景,目标成员设备通过目标堆叠口发送广播报文时,第一指示信息可以包括目标成员设备,以及以目标成员设备的另一堆叠口为出端口的转发路径上的成员设备的成员编号。举例来说,仍以图2B所示环形堆叠场景为例,当设备1需要通过堆叠口11发送广播报文时,该广播报文中携带的第一指示信息可以包括设备1的成员编号,以及以堆叠口12为出端口的转发路径上的成员设备(即设备2和设备3)的成员编号,以指示接收到该广播报文的其它成员设备禁止将该广播报文发送给设备1、设备2以及设备3;同理,设备1需要通过堆叠口12发送广播报文时,该广播报文中携带的第一指示信息可以包括设备1的成员编号,以及以堆叠口11为出端口的转发路径上的成员设备(即设备4)的成员设备,以指示接收到该广播报文的其它成员设备禁止将该广播报文转发给设备1和设备4。步骤102、当接收到广播报文时,根据该广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文。若是,转至步骤103;否则,转至步骤104。本发明实施例中,当目标成员设备接收到其它成员设备发送或转发的广播报文时,目标成员设备需要获取该广播报文中携带的第一指示信息,并根据该第一指示信息判断是否允许将该广播报文向邻居成员设备转发。举例来说,以图2A所示场景为例,当设备2接收到设备1发送的广播报文时,可以获取该广播报文中携带的第一指示信息,发现该第一指示信息中包括设备1的成员编号,因此,设备2确定不允许将该广播报文转发给设备1,而允许将该广播报文转发给设备3。又举例来说,以图2B所示场景为例,当设备4接收到设备1发送的广播报文时,可以获取该广播报文中携带的第一指示信息,发现该第一指示信息中包括设备1、设备2以及设备3的成员编号,因此,设备4确定不允许将该广播报文转发给设备1和设备3,即设备4不对接收到的广播报文进行转发。当设备2接收到设备1发送的广播报文时,可以获取该广播报文中携带的第一指示信息,发现该第一指示信息中包括设备1和设备4的成员编号,因此,设备2确定不允许将该广播报文转发给设备1,而允许将该广播报文转发给设备3。步骤103、根据堆叠拓扑更新该广播报文中携带的第一指示信息,并将更新后的广播报文转发给该邻居成员设备。本发明实施例中,考虑到随着广播报文在转发过程中经过的成员设备的增加,其禁止转发至的成员设备也会发生变化,因此,在广播报文的转发过程中,广播报文中携带的第一指示信息也需要适应性地进行更新。相应地,当目标成员设备根据接收到的广播报文中携带的第一指示信息确定需要向对端设备转发该广播报文时,目标成员设备需要更新该广播报文中携带的第一指示信息。作为一种可选的实施方式,在本发明实施例中,当堆叠拓扑为环形堆叠拓扑时,上述根据堆叠拓扑更新该广播报文中携带的第一指示信息,可以包括:将该目标成员设备的成员编号添加到第一指示信息中。在该实施方式中,若当堆叠拓扑为链形堆叠拓扑,则当目标成员设备接收到广播报文,且根据广播报文中携带的第一指示信息确定需要向邻居成员设备转发该广播报文时,目标成员设备可以将自身的成员编号添加到第一指示信息中,并将更新后的广播报文发送给邻居成员设备。举例来说,仍以图2A所示链形堆叠场景为例,当设备2接收到设备1发送的广播报文,且根据该广播报文中携带的第一指示信息(包括设备1的成员编号)确定允许将该广播报文转发给设备3时,在将该广播报文转发给设备3之前,设备2需要在第一指示信息中添加自身的成员编号,即将第一指示信息由包括设备1的成员编号更新为包括设备1和设备2的成员编号,并将更新后的广播报文转发给设备3。作为另一种可选的实施方式,在本发明实施例中,当堆叠拓扑为环形堆叠拓扑时,上述根据堆叠拓扑更新该广播报文中携带的第一指示信息,可以包括:将第一指示信息中包括的成员设备更新为目标成员设备的成员编号,以及以目标成员设备接收到该广播报文的堆叠口为出端口的转发路径上的成员设备的成员编号。在该实施方式中,若当堆叠拓扑为环形堆叠拓扑,则当目标成员设备接收到广播报文,且根据广播报文中携带的第一指示信息确定需要向邻居成员设备转发该广播报文时,目标成员设备可以将自身的成员编号,以及以该目标成员设备接收到该广播报文的堆叠口为出端口的转发路径上的成员设备的成员编号。举例来说,仍以图2B所示环形堆叠场景为例,当设备2通过堆叠口21接收到设备1发送的广播报文,且根据该广播报文中携带的第一指示信息(包括设备1和设备4的成员编号)确定允许将该广播报文转发给设备3时,设备2需要将该广播报文中携带的第一指示信息更新为自身的成员编号,以及以接收到该广播报文的堆叠口(堆叠口21)为出端口的转发路径上成员设备的成员编号。假设设备2上以堆叠口21为出端口的转发路径上的成员设备包括设备1和设备4,则设备2需要将第一指示信息由包括设备1和设备4更新为包括设备2、设备1以及设备4。步骤104、拒绝向邻居成员设备转发该广播报文。本发明实施例中,当目标成员设备接收到广播报文,并根据广播报文中携带的第一指示信息确定不允许转发该广播报文到邻居成员设备时,目标成员设备将拒绝向邻居成员设备转发该广播报文,以避免广播报文在堆叠系统中形成环路。举例来说,仍以图2A所示场景为例,当设备4接收到设备3转发的广播报文时,该广播报文中携带的第一指示信息包括设备1、设备2以及设备3的成员编号,由于设备4的堆叠口42处于非工作状态,报文不会从该堆叠口转发,因此,设备4需要判断是否允许通过堆叠口41转发该广播报文,但由于堆叠口41连接的成员设备为设备3,而设备4根据第一指示信息可以确定不允许向设备3转发该广播报文,因此,设备4不会向设备3转发该广播报文,从而避免了广播报文在堆叠系统中产生环路(即广播报文从设备1经过设备2和设备3,转发到设备4之后,停止转发)。又举例来说,仍以图2B所示环形堆叠场景为例,当设备3接收到设备2转发的广播报文(该广播报文由设备1发送)时,该广播报文中携带的第一指示信息包括设备2、设备1以及设备4的成员编号,此时,设备3需要分别判断是否允许通过堆叠口31和堆叠口32转发该广播报文。对于堆叠口31,由于堆叠口31连接的成员设备为设备2,而设备3根据第一指示信息可以确定不允许向设备2转发该广播报文,因此,设备3不会向设备2转发该广播报文;对于堆叠口32,由于堆叠口32连接的成员设备为设备4,而设备3根据第一指示信息可以确定不允许向设备4转发该广播报文,因此,设备3不会向设备4转发该广播报文。即,设备1通过堆叠口12发送的广播报文,经过设备2,转发至设备3之后,设备3不会继续转发该广播报文。而根据上述流程中的相关描述,设备1通过堆叠口11发送的广播报文,到达设备4时,设备4也不会继续转发,从而,设备1发送的广播报文到达了堆叠系统中的所有其它成员设备,且避免了环路的产生。值得说明的是,在本发明实施例中,为了使成员设备在接收到广播报文时,能够根据广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文,堆叠系统中各成员设备需要预先记录各堆叠口与邻居成员设备的成员编号的对应关系(即预先记录各堆叠口连接的邻居成员设备的成员编号);其中,该对应关系可以由用户(如管理员)在进行堆叠配置时,手动配置在各成员设备中,也可以由各成员设备在形成堆叠口后动态获取并记录,其具体实现在此不再赘述。进一步地,在本发明实施例中,考虑到当堆叠拓扑发生变化时,如由链形堆叠变为环形堆叠,或由环形堆叠变为链形堆叠,各成员设备发送广播报文时确定第一指示信息的方式或转发广播报文时更新第一指示信息的方式均需要改变。相应地,在本发明实施例中,当目标成员设备检测到堆叠拓扑发生变化时,需要调整自身确定第一指示信息的方式以及更新第一指示信息的方式。例如,当堆叠拓扑由链形堆叠变成环形堆叠时,目标成员设备可以按照上述环形堆叠场景中确定第一指示信息的方式或更新第一指示信息的方式进行第一指示信息的确定或更新。同理,当堆叠拓扑由环形堆叠变成链形堆叠时,目标成员设备可以按照上述链形堆叠场景中确定第一指示信息的方式或更新第一指示信息的方式进行第一指示信息的确定或更新。进一步地,在本发明实施例中,当环形堆叠系统中出现堆叠口shutdown(关闭)时,堆叠系统可能会发生分裂。例如,当图2B所示环形堆叠场景中设备1的堆叠口11和设备3的堆叠口32shutdown时,将会发生堆叠分裂,分裂为设备1、设备2以及设备3组成的链形堆叠,以及设备4(堆叠分裂造成堆叠拓扑变化时第一指示信息确定或更新方式的改变可以参见上述流程中相关描述)。当设备1的堆叠口11和设备3的堆叠口32undo(撤销)shutdown时,若系统配置merge(混合)不重启,则设备4不会自动重启加入堆叠,而需要用户手动加入。在用户手动配置设备4加入堆叠之前,若设备1(设备3)将无法获取到堆叠口11(堆叠口32)连接的堆叠成员设备的编号,此时该堆叠系统中可能会出现广播报文环路。因此,为了避免上述问题的出现,在本发明实施例中,若堆叠系统配置merge不重启,则当堆叠拓扑为环形堆叠,且目标成员设备的堆叠口shutdown后,undoshutdown时,在发送广播报文之前,通过该堆叠口发送检查报文,以进行端口合法性检查;若检查通过,则确定该堆叠口状态为UP(工作状态),并记录该堆叠口连接的成员设备的成员编号;否则,将该堆叠口的状态设置为Down(非工作状态)。其中,目标成员设备进行端口合法性检查的实现可以为:目标成员设备通过待检查的堆叠口(即上述shutdown后,undoshutdown的堆叠口)向邻居成员设备发送连接请求(ConnectRequest)报文,若在预设时间内接收到邻居成员设备返回的连接应答(ConnectAnswer)报文,则进一步获取邻居成员设备的成员编号,若获取成功,则确定连接成功,即端口合法性检查通过,并向邻居成员设备发送连接成功(ConnectSuccess)报文。若在预设时间内未接收到邻居成员设备返回的连接应答报文,或获取邻居成员设备的编号失败,则确定连接失败,即端口合法性检查不通过,向邻居成员设备发送连接失败(ConnectFailed)报文。进一步地,在本发明实施例中,考虑到环形堆叠系统中,若由于某成员设备断电导致堆叠口变为非工作状态(即由工作状态变为非工作状态)时,未与该成员设备直连的其它成员设备可能会不能及时感知到该堆叠口变为非工作状态,此时可能会发生报文丢失。因此,在本发明实施例中,当堆叠拓扑为环形堆叠,且目标成员设备感知到堆叠口变为非工作状态时,通过工作状态的另一堆叠口发送通知消息,以通知该另一堆叠口连接的邻居成员设备存在堆叠口由工作状态变为非工作状态,以使该成员设备更新堆叠拓扑。可见,在图1所示的方法流程中,通过在广播报文中携带用于指示禁止该广播报文转发到的成员设备的第一指示信息,从而,接收到该广播报文的其它成员设备可以根据广播报文中携带的第一指示信息判断是否允许向对端成员转发该广播报文,避免了广播报文在堆叠系统中产生环路。为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体应用场景对本发明实施例提供的技术方案进行描述。需要说明的是,在该实施例中,以上述第一指示信息以成员设备的TM-Domain(流量控制域)ID(标识)(本文中以TM-DomainID标识成员设备的成员编号)的bitmap(位图)值的形式携带在广播报文的框间通信头的扩展字段中为例。在该实施例中,由于特定芯片交换机发送堆叠的框间报文时,需要增加一层框间通信头,用于携带报文转发的必要信息,因此,可以通过该框间通信头的格式进行扩展,在该框间通信头中携带上述第一指示信息。此外,在该实施例中,需要在上述特定芯片交换机中堆叠口所在芯片中记录该堆叠口连接的邻居成员设备的成员编号(本文中以TM-DomainID为例)。其中,当堆叠口为工作状态时,该堆叠口所在芯片记录的邻居成员设备的成员编号为邻居成员设备的TMDomainID;当堆叠口为非工作状态时,该堆叠口所在芯片记录的邻居成员设备的成员编号为默认的无效值,例如,假如堆叠系统最大支持8台设备堆叠,则该默认值可以为9、10、11等值。下面结合不同场景对本发明实施例提供的报文转发方案的实现进行描述。一、链形堆叠以图2A所示链形堆叠场景为例,在该场景中,框间通信头中携带的第一指示信息为报文经过的成员设备的TM-DomainID的bitmap值,如设备1发送的广播报文,经过设备2,到达设备3,其设置的值为各成员设备TM-DomainID的bitmap值,即1,2,3相或的值(0001或0010或0100=0111)。各堆叠口所在芯片中记录的邻居成员设备的成员编号如下(其中,假设堆叠口11、21、31以及41分别为设备1、设备2、设备3以及设备4的第一堆叠口,堆叠口12、22、32以及42分别为设备1、设备2、设备3以及设备4的第二堆叠口,下同):成员设备第一堆叠口第二堆叠口设备192设备213设备324设备4311以设备1发送的广播报文为例,经设备2,到达设备3,框间通信头携带的第一指示信息为1,2,3相或的bitmap值,设备3的堆叠口32所在芯片记录的邻居成员设备的成员编号为4。设备3的堆叠口32发送报文时,会将其所在芯片记录的邻居成员设备的成员编号与报文头携带的第一指示信息的值相与,值为0(0111与1000=0000),则报文可以发往设备4。设备4接收到广播报文时,堆叠口42处于非工作状态,报文不会从此堆叠口转发。但堆叠口41仍处于工作状态,报文仍可从此堆叠口进行转发。转发时,堆叠口41所在芯片记录的邻居成员设备的成员编号为3,与报文头携带的第一指示信息的值相与,值为非0(0111与0100=0100),表示报文已经经过设备3转发过,则不允许再次转发到设备3,将报文丢掉。进而达到链形堆叠防止广播报文环路的目的。二、环形堆叠以图2B所示环形堆叠场景为例,在该场景中,框间通信头中的第一指示信息为发送广播报文的成员设备的TM-DomainID,以及以该成员设备发送该广播报文的堆叠口之外的另一堆叠口为出端口的转发路径上的成员设备的TM-DomainID。在该场景中,各成员设备形成堆叠后,需要确定到各其它成员设备的转发路径。例如,假设图2B所示场景中各成员设备确定的到其它成员设备的转发路径如下(以转发路径的出端口表示):成员设备设备1设备2设备3设备4设备1―――堆叠口12堆叠口12堆叠口11设备2堆叠口21―――堆叠口22堆叠口21设备3堆叠口31堆叠口31―――堆叠口32设备4堆叠口42堆叠口42堆叠口41―――其中,上表中第2行第3列表明设备1到设备2的转发路径的出端口为堆叠口12;…;第5行第4列表明设备4到设备3的转发路径的出端口为堆叠口41。以设备1为例,以堆叠口11为出端口的转发路径到达的成员设备为设备4,以堆叠口12为出端口的转发路径到达的设备为设备2和设备3。则设备1的通过堆叠口11发送或转发的广播报文中携带的第一指示信息需要包括设备1的TM-DomainID,以及以堆叠口12为出端口的转发路径上的成员设备的TM-DomainID,即1、2和3,通过堆叠口12发送或转发的广播报文中携带的第一指示信息需要包括设备1的TM-DomainID,以及以堆叠口11为出端口的转发路径上的成员设备的TM-DomainID,即1和4。其他设备的IRF-Port类似设置。在该场景中,各堆叠口所在芯片中记录的邻居成员设备的成员编号如下:成员设备第一堆叠口第二堆叠口设备142设备213设备324设备431以设备2发送广播报文为例,设备2从堆叠口21发送的广播报文,经过设备1,到达设备4后,要从堆叠口41转发到设备3,因为设备4通过堆叠口41发送或转发的广播报文中携带的第一指示信息需要包括设备4的TM-DomainID,以及以堆叠口42为出端口的转发路径上的成员设备的TM-DomainID,即4、1和2(1000或0001或0010=1011),当设备3收到此报文,继续从堆叠口31进行发送时,判断其所在芯片记录的邻居成员设备的成员编号为2,与接收到的第一广播报文中携带的第一指示信息的值相与,值为非0(1011与0010=0010),则不转发该报文,避免了堆叠系统中广播报文的环路的产生。三、环形堆叠与链形堆叠切换请参见图2C,当设备1的堆叠口11以及设备4的堆叠口42为非工作状态时,则该堆叠拓扑为链形堆叠,其按照上述方式一进行防环路处理;当设备1的堆叠口11以及设备42为工作状态时,驱动获得每个堆叠口的邻居成员设备的成员编号,会对设备1和设备4的堆叠口设置进行刷新,将设备1的堆叠口11所在芯片记录的邻居成员设备的成员编号修改为4,设备4的堆叠口42所在芯片记录的邻居成员设备的成员编号修改为1,并删除原先默认值,此时堆叠拓扑为环形堆叠,按照方式二进行防环路处理。四、堆叠分裂处理情况1、通过shutdown堆叠口,使堆叠口分裂参见图2D,假设设备1的堆叠口11和设备3的堆叠口32分别shutdown,堆叠分裂,设备1,设备2,设备3为三台设备链堆,设备4为一台设备。框间通信头中携带的第一指示信息包括报文经过成员的TM_domain值的bitmap,与链堆设置相同。各成员设备堆叠口所在芯片中记录的邻居成员设备的成员编号如下:成员设备第一堆叠口第二堆叠口设备192设备213设备3211设备4911其中,设备1、设备2和设备3形成链形堆叠,按照方式一进行防环路处理。情况2、堆叠系统配置merge不重启,undoshutdown堆叠口仍以上述图2D所示场景为例,操作完情况1之后,将设备1的堆叠口11以及设备3的堆叠口32进行undoshutdown,堆叠报文通,因为配置了merge不重启,设备4不会自动重启加入堆叠,需要用户手动配置加入。此时设备1的堆叠口11以及设备3的堆叠口32无法通过拓扑信息获得邻居成员设备的成员编号,无法刷新堆叠口所在芯片中记录的邻居成员设备的成员编号,广播协议报文会在工作状态的堆叠口发送,会造成报文成环。为了解决上述问题,需要在发送广播报文之前,当堆叠口在物理层为工作状态时,驱动发送检查报文,进行端口合法性检查,如果检查通过,通知平台堆叠口变为工作状态,才进行广播报文的发送,并且记录堆叠口连接的邻居成员设备的TM-DomainID,用于更新堆叠口所在芯片中记录的邻居成员设备的成员编号。如果检查失败,设置堆叠口的连接状态为Failed,设置堆叠口的状态为非工作状态,报文不从此堆叠口进行转发。情况3、设备断电,造成堆叠分裂请参见图2E,假设设备4断电,造成堆叠分裂,此时设备1的堆叠口11以及设备3的堆叠口32处于非工作状态。若设备4原先是堆叠系统的主设备(master),设备4断电后,选择设备3为新的master,设备1和设备3会直接感知堆叠口变为非工作状态,堆叠分裂并下发新的拓扑,但是设备2会无法及时感知堆叠口变为非工作状态,在一段时间内,因没有下发新的拓扑认为仍然是环形堆叠,仍然按照环形堆叠的方式设置框间通信头中第一指示信息的值,从而可能会造成一段时间内的丢包。为了解决上述问题,在设备1感知到堆叠口11变为非工作状态时,以及设备3感知到堆叠口32变为非工作状态时,分别通过设备的另一个工作状态的堆叠口发送通知消息,通知互联的成员设备存在堆叠口变为非工作状态,当设备2收到该通知消息后,立即更新堆叠拓扑,调整框间通信头中第一指示信息的值,可以保证堆叠拓扑快速收敛,减少丢包时间。通过以上描述可以看出,在本发明实施例提供的技术方案中,当需要通过目标堆叠口发送广播报文时,根据堆叠拓扑确定第一指示信息,并通过该目标堆叠口发送携带该第一指示信息的广播报文;当接收到广播报文时,根据该广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文;若允许,则根据堆叠拓扑更新该广播报文中携带的第一指示信息,并将更新后的广播报文转发给该邻居成员设备;否则,拒绝向邻居成员设备转发该广播报文,避免了广播报文在堆叠系统产生环路。请参见图3,为本发明实施例提供的一种报文转发装置的结构示意图,其中,该装置可以应用于上述方法实施例中的目标成员设备,如图3所示,该装置可以包括:确定单元310,用于当需要通过目标堆叠口发送广播报文时,根据堆叠拓扑确定第一指示信息;其中,所述第一指示信息用于指示禁止该广播报文转发到的成员设备;发送单元320,用于通过所述目标堆叠口发送携带所述第一指示信息的广播报文;接收单元330,用于接收广播报文;判断单元340,用于当所述接收单元接收到报文时,根据该广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文;更新单元350,用于若允许,则根据堆叠拓扑更新该广播报文中携带的第一指示信息;所述发送单元320,还用于若允许,则将所述更新单元350更新后的广播报文转发给该邻居成员设备;否则,拒绝向邻居成员设备转发该广播报文。在可选实施例中,当所述堆叠拓扑为链形堆叠时,所述第一指示信息包括广播报文经过的成员设备的成员编号;所述更新单元350,具体用于将所述目标成员设备的成员编号添加到所述第一指示信息中。在可选实施例中,当所述堆叠拓扑为环形堆叠时,所述第一指示信息包括发送广播报文的成员设备的成员编号,以及发送广播报文的成员设备的目标转发路径上成员设备的成员编号;其中,目标转发路径为以该成员设备发送该广播报文的堆叠口之外的另一堆叠口为出端口的转发路径;所述更新单元350,具体用于将所述第一指示信息中包括的成员设备的成员编号更新为目标成员设备的成员编号,以及以所述目标成员设备接收到该广播报文的堆叠口为出端口的转发路径上的成员设备的成员编号。在可选实施例中,所述发送单元320,还用于若所述堆叠系统配置混合不重启,则当堆叠拓扑为环形堆叠,且所述目标成员设备的堆叠口在关闭后,撤销关闭时,在发送广播报文之前,通过该堆叠口发送检查报文,以进行端口合法性检查;相应地,请一并参见图4,为本发明实施例提供的另一种报文转发装置的结构示意图,如图4所示,在图3所示实施例的基础上,图4所示报文转发装置还包括:端口管理单元360,用于若检查通过,则确定该堆叠口状态为工作状态,并记录该堆叠口连接的成员设备的成员编号;否则,将该堆叠口的状态设置为非工作状态。在可选实施例中,所述发送单元320,还用于当堆叠拓扑为环形堆叠,且所述目标成员设备感知到堆叠口变为非工作状态时,通过工作状态的另一堆叠口发送通知消息,以通知与该另一堆叠口连接的邻居成员设备存在堆叠口由工作状态变为非工作状态,以使该成员设备更新堆叠拓扑。在可选实施例中,所述第一指示信息以成员设备的流量控制域标识的位图值的形式携带在广播报文的框间通信头的扩展字段中。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例可见,当需要通过目标堆叠口发送广播报文时,根据堆叠拓扑确定第一指示信息,并通过该目标堆叠口发送携带该第一指示信息的广播报文;当接收到广播报文时,根据该广播报文中携带的第一指示信息判断是否允许向邻居成员设备转发该广播报文;若允许,则根据堆叠拓扑更新该广播报文中携带的第一指示信息,并将更新后的广播报文转发给该邻居成员设备;否则,拒绝向邻居成员设备转发该广播报文,避免了广播报文在堆叠系统产生环路。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1