分布式链路聚合网络中的数据流处理方法和装置制造方法

文档序号:7772896阅读:121来源:国知局
分布式链路聚合网络中的数据流处理方法和装置制造方法
【专利摘要】本申请公开了一种分布式链路聚合网络中的数据流处理方法和装置,该方法包括:接收到单播报文之后,根据MAC转发表确定该单播报文的出接口;若确定出该单播报文的出接口为特定端口,则按照预设的ACL规则将该单播报文重定向至预设的特定二层组播组表项,根据特定二层组播组表项的出接口列表转发该单播报文;其中,当本设备上属于该分布式聚合组的DT端口只有一个第一DT端口时,特定端口为第一DT端口,出接口列表为第一DT端口;当本设备上属于该分布式聚合组的DT端口有至少两个时,特定端口为该至少两个DT端口组成的本地聚合组,出接口列表为该至少两个DT端口;当特定端口变为DOWN状态时,将特定二层组播组表项的出接口列表修改为本设备上连接ISC链路的ISC端口。
【专利说明】分布式链路聚合网络中的数据流处理方法和装置
【技术领域】
[0001]本申请涉及网络通信【技术领域】,特别涉及一种分布式链路聚合网络中的数据流处理方法和装置。
【背景技术】
[0002]IRF (Intelligent Resilient Framework,智能弹性架构)技术可以将多台交换设备组合成一个高性能的整体,目的是以尽可能少的开销,获得尽可能高的网络性能和网络可用性。支持IRF技术的设备都具备三个重要特性:分布式设备管理(DDM)、分布式链路聚合(Distributed Link Aggregation, DLA ;或 Distributed Trunking, DT)和分布式弹性路由(DRR)。这三项技术是完成IRF技术目标不可缺少的环节。其中,DT用于提高传输链路的可用性和容量。
[0003]普通的链路聚合技术中,只有位于同一设备的端口才能加入同一聚合组中。与普通的链路聚合技术不同,分布式链路聚合技术通过使用私有协议可以实现将两台设备上的端口加入到同一分布式聚合组中,即跨设备聚合。相对于普通的链路聚合所提供的链路级故障保护,分布式链路聚合提供了设备级冗余保护。
[0004]如图1所示,是一种采用了分布式链路聚合的网络的组网示意图,为了描述方便,可以将该种网络称为分布式链路聚合网络。图1中,交换机SW2上的端口 Portl和Port2,以及SW3上的端口 Port4和Port5加入到了同一个分布式聚合组中;SW2上的端口 Port3和SW3上的端口 Porte加入到了同一个分布式聚合组中。分布式聚合的两台设备(即,用于实现分布式链路聚合的两台设备),例如,SW2和SW3,或,SW4和SW5之间需要提供以下两个专用链路:
[0005]a、数据同步链路(ISC链路):用于设备间交互控制报文,同时还用于跨设备数据流的转发;两台设备之间只能配置一条ISC链路;ISC链路两端的端口称为ISC端口,ISC端口可以是普通端口,也可以是聚合组。
[0006]b、保活链路(Layer3peer_keepalive链路):用于在ISC链路发生故障时,通过发送保活消息来判断故障类型是ISC链路故障还是对端设备故障。
[0007]分布式链路聚合网络的二层转发模型是将分布式聚合的两台设备看作同一台设备,共享MAC(Media Access Control,媒体访问控制)转发表和影响转发的数据(例如,DHCPSnooping (Dynamic Host Configuration Protocol Snooping,动态主机配置协议窥探)表项等)。对于出接口是一个分布式聚合组的DT端口的数据流,优先从本地DT端口转发,只有当本地没有属于该分布式聚合组的UP (可用)的DT端口时,才通过ISC端口转发给对端设备实现跨设备转发。分布式链路聚合网络中禁止运行STP(Spanning Tree Protocol,生成树协议)协议,保证无环路,同时通过私有的环路检测协议来检测网络中的环路。
[0008]其中,分布式聚合组中的每一个成员端口称为DT端口。对于分布式聚合的两台设备中的任意一台设备而言,若该设备上属于某一个分布式聚合组的DT端口有多个,则会将这多个DT端口加入到一个聚合组中,为了区别于分布式聚合组,可以称该聚合组为本地聚合组,该本地聚合组的ID与该分布式聚合组的ID无关。
[0009]在分布式链路聚合技术中,非单播数据流的转发所遵循的原则是:从ISC端口收到的非单播数据报文禁止在DT端口转发,避免出现一份报文被复制多份转发的情况。而,单播数据流的转发所遵循的原则是:
[0010]a、分布式聚合的两台设备互相同步学习到的MAC地址信息;
[0011]具体的,设备I从分布式聚合组中的一个DT端口(记为DT端口 I)上学习到一个MAC地址信息(记为MACl)后,在MAC转发表中添加一个包含有MACl及其对应的出接口的表项,其中,当本设备上属于该分布式聚合组的DT端口只有DT端口 I这一个时,该出接口即为DT端口 1(具体为DT端口 I的端口 ID),当本设备上属于该分布式聚合组的DT端口有多个时,该出接口即为这多个DT端口组成的本地聚合组(具体为这多个DT端口所属的本地聚合组的ID);然后,将MACl携带在MAC同步消息中通过保活链路发送给设备2,其中,该MAC同步消息中还携带有分布式聚合组I的ID:1。
[0012]设备2收到该MAC同步消息后,根据该消息中的分布式聚合组的ID:1,确定出本设备上属于分布式聚合组I的DT端口 ;在MAC转发表中添加一个包含有MACl及其对应的出接口的表项,其中,当本设备上属于分布式聚合组I的DT端口只有一个时,该出接口即为该DT端口,当本设备上属于分布式聚合组I的DT端口有多个时,该出接口即为这多个DT端口组成的本地聚合组。如果设备2发现本设备上属于分布式聚合组I的所有DT端口均处于DOWN (不可用)状态,则将MACl学习到ISC端口上。
[0013]b、出接口是一个分布式聚合组的DT端口的数据流,优先从本地DT端口转发,只有当本地没有属于该分布式聚合组的UP的DT端口时,才从ISC端口发送给对端设备,由对端设备转发出去。
[0014]例如,SW2接收到单播数据报文后,根据该单播数据报文的目的MAC地址,在MAC转发表中查找对应的出接口,假设查找到的出接口为分布式聚合组I的DT端口 Port3,那么,若Port3处于UP状态,则优先通过Port3转发该单播数据报文,若Port3处于DOWN状态,且本设备上属于分布式聚合组I的端口只有Port3这一个,则将该单播数据报文通过ISC端口转发给SW3,由SW3查表转发该单播数据报文。
[0015]在现有技术中,当分布式聚合的两台设备中的一台设备(为了便于描述,记为设备I)上的属于某一个分布式聚合组的所有DT端口均变为DOWN状态时,即,若本设备上属于该分布式聚合组的DT端口只有一个,且该DT端口处于DOWN状态,或,本设备上属于该分布式聚合组的DT端口有多个,且这多个DT端口均处于DOWN状态,此时,需要执行以下操作流程:
[0016]步骤S102,设备I将MAC转发表中包含有该故障的DT端口的表项删除,然后,通过ISC端口向对端设备(为了便于描述,记为设备2)发送携带有该故障的DT端口所属的分布式链路聚合组ID (为了便于描述,记为分布式链路聚合组I)的通知消息;
[0017]步骤S104,设备2收到该通知消息后,确定出本设备上属于分布式链路聚合组I的DT端口(为了便于描述,记为DT端口 1),将MAC转发表中包含有该DT端口 I的表项中的MAC地址信息携带在MAC同步消息中并通过ISC端口发送给设备I ;
[0018]步骤S106,设备I收到该MAC同步消息后,将该消息中的MAC地址信息添加到MAC转发表中,并且,将这些MAC地址信息对应的出接口均设置为ISC端口。[0019]经过以上流程后,设备I才能够将原本应该从故障的DT端口转发的数据流,通过ISC端口转发给设备2,由设备2转发出去。
[0020]上述流程存在以下几个问题:
[0021](I)设备I需要删除MAC转发表中包含有该故障的DT端口的所有表项,删除表项的过程比较耗费时间,影响数据流切换性能;
[0022](2)在删除了 MAC转发表中包含有该故障的DT端口的所有表项之后,以及在收到设备2同步过来的MAC同步消息之前的这段时间内,由于在MAC转发表中查找不到匹配表项,设备I会将单播报文做广播处理,浪费了网络带宽资源;
[0023](3)如果DT端口在UP状态和DOMN状态之间多次切换,则会导致MAC转发表项来回震荡,影响CPlKCentral Processing Unit,中央处理器)的处理性能和数据的正常转发。

【发明内容】

[0024]本申请提供了一种分布式链路聚合网络中的数据流处理方法和装置,以解决现有技术中存在的比较耗费时间,影响数据流切换性能,浪费网络带宽资源,影响CPU的处理性能和数据的正常转发的问题。
[0025]本申请的技术方案如下:
[0026]一方面,提供了一种分布式链路聚合DT网络中的数据流处理方法,该分布式链路聚合网络中分布式聚合的两个网络设备通过ISC链路相连,且这两个网络设备中的每一个网络设备上至少有一个端口加入到同一个分布式聚合组中,该方法应用于这两个网络设备中的任一个,该方法包括:
[0027]接收到单播报文之后,根据MAC转发表确定该单播报文的出接口 ;
[0028]若确定出该单播报文的出接口为特定端口,则按照预设的ACL规则将该单播报文重定向至预设的特定二层组播组表项,根据特定二层组播组表项的出接口列表转发该单播报文;其中,当本设备上属于该分布式聚合组的DT端口只有一个第一 DT端口时,特定端口为第一 DT端口,出接口列表为第一 DT端口;当本设备上属于该分布式聚合组的DT端口有至少两个时,特定端口为该至少两个DT端口组成的本地聚合组,出接口列表为该至少两个DT 端口;
[0029]当特定端口变为DOWN状态时,将特定二层组播组表项的出接口列表修改为本设备上连接ISC链路的ISC端口。
[0030]另一方面,还提供了一种分布式链路聚合DT网络中的数据流处理装置,该分布式链路聚合网络中分布式聚合的两个网络设备通过ISC链路相连,且这两个网络设备中的每一个网络设备上至少有一个端口加入到同一个分布式聚合组中,该装置应用于这两个网络设备中的任一个,该装置包括:
[0031]接收模块,用于接收单播报文;
[0032]出接口确定模块,用于在接收模块接收到单播报文之后,根据MAC转发表确定该单播报文的出接口;
[0033]执行模块,用于若出接口确定模块确定出该单播报文的出接口为特定端口,则按照预设的ACL规则将该单播报文重定向至预设的特定二层组播组表项,根据特定二层组播组表项的出接口列表转发该单播报文;其中,当本设备上属于该分布式聚合组的DT端口只有一个第一 DT端口时,特定端口为第一 DT端口,出接口列表为第一 DT端口;当本设备上属于该分布式聚合组的DT端口有至少两个时,特定端口为该至少两个DT端口组成的本地聚合组,出接口列表为该至少两个DT端口 ;
[0034]修改模块,用于当特定端口变为DOWN状态时,将特定二层组播组表项的出接口列表修改为本设备上连接ISC链路的ISC端口。
[0035]通过本申请的以上技术方案,在本申请以上实施例的技术方案中,在分布式聚合的两台网络设备中的任意一台上预先针对分布式聚合组设置ACL规则,在接收到单播报文,并确定出该单播报文的出接口为特定端口后,按照该ACL规则将该单播报文重定向至预设的特定二层组播组表项,根据该特定二层组播组表项的出接口列表转发该单播报文,其中,当本设备上属于该分布式聚合组的DT端口只有一个第一 DT端口时,特定端口为第一DT端口,出接口列表为第一DT端口,当本设备上属于该分布式聚合组的DT端口有至少两个时,特定端口为该至少两个DT端口组成的本地聚合组,出接口列表为该至少两个DT端口;这样,对于出接口为特定端口的单播报文,将匹配该ACL规则,重定向至该特定二层组播组表项,并按照该表项的出接口列表进行转发,由于该表项的出接口列表就是该特定端口,所以,接收到的单播报文仍然会从该特定端口转发出去。另外,当特定端口变为DOWN状态时,即,第一 DT端口 DOWN或本地聚合组中的全部DT端口 DOWN,将该特定二层组播组表项的出接口列表修改为本设备上连接ISC链路的ISC端口,这样,在接收到单播报文,并确定出该单播报文的出接口为特定端口后,匹配该ACL规则,将该单播报文重定向至该特定二层组播组表项,并按照该表项的出接口列表进行转发,由于出接口列表已经修改为ISC端口,从而可以将该单播报文通过ISC端口转发给对端设备,实现了数据流切换到ISC链路的跨设备转发。通过以上技术方案,由于接收到的单播报文确定出出接口是特定端口后,还需要匹配ACL规则,按照ACL规则所指向的特定二层组播组表项中的出接口列表转发,在本设备上属于该分布式聚合组的全部DT端口都DOWN后,无需删除包含该特定端口的MAC转发表项,也无需等待对端设备同步MAC地址信息,而且,DT端口的状态改变也无需影响到MAC转发表项,只需将特定二层组播组表项中的出接口列表修改为I SC端口就可以实现单播报文的出接口的变更,从而节约了时间和网络带宽资源,提高了设备故障时的切换性能,满足了设备高可靠性的需求;另外,该方法设置简单,可以满足IOms的链路快速切换性能。
【专利附图】

【附图说明】
[0036]图1是分布式链路聚合网络的组网示意图;
[0037]图2是本申请实施例一的分布式链路聚合网络中的数据流处理方法的流程图;
[0038]图3是本申请实施例二的分布式链路聚合网络中分布式聚合的两个网络设备中的任一个网络设备以及该网络设备中的数据流处理装置的结构示意图。
【具体实施方式】
[0039]为了解决现有技术中存在的比较耗费时间,影响数据流切换性能,浪费网络带宽资源,影响CPU的处理性能和数据的正常转发的问题,本申请以下实施例中提供了一种分布式链路聚合网络中的数据流处理方法,以及一种可以应用该方法的装置。
[0040]本申请以下实施例的分布式链路聚合网络中分布式聚合的两个网络设备通过ISC链路相连,例如,这两个网络设备可以是图1中的SW2和SW3,或者是SW4和SW5,且这两个网络设备中的每一个网络设备上至少有一个端口加入到同一个分布式聚合组中。
[0041]并且,以下实施例中以这两个网络设备中的任一个网络设备上的一个分布式聚合组为例进行说明,显然,当存在多个分布式聚合组时,这多个分布式聚合组中的每一个均按照以下实施例的方法来执行即可。
[0042]实施例一
[0043]本申请实施例一的分布式链路聚合网络中的数据流处理方法可以应用于分布式聚合的两台设备中的任一个。如图2所示,该方法包括以下步骤:
[0044]步骤S202,接收到单播报文之后,根据MAC转发表确定该单播报文的出接口 ;
[0045]在步骤S202中,当接收到单播报文之后,可以根据该单播报文的目的MAC地址等信息,在MAC转发表中查找对应的出接口。该步骤为现有技术,这里不再赘述。
[0046]步骤S204,若确定出该单播报文的出接口为特定端口,则按照预设的ACL (访问控制列表)规则将该单播报文重定向至预设的特定二层组播组表项,根据特定二层组播组表项的出接口列表转发该单播报文;
[0047]在实际实施过程中,针对该分布式聚合组,预先设置ACL规则,该ACL规则中包括:匹配条件和执行动作,其中,该匹配条件为出接口为特定端口的单播报文,执行动作为将该单播报文重定向(或指向)索引号为N的特定二层组播组表项。N的值可以根据实际情况进行设置,本申请对此不做限定。
[0048]在实际实施过程中,对于一个分布式聚合组,网络设备上属于该分布式聚合组的DT端口可能只有一个(该种情况称为情况一),也可能有多个(该种情况称为情况二),当有多个时,这多个DT端口又加入到了一个本地聚合组中,该本地聚合组的聚合组ID与该分布式聚合组的聚合组ID无关。
[0049]这样,在情况一中,特定端口为第一 DT端口,特定二层组播组表项的出接口列表为第一 DT端口 ;在实际实施时,第一 DT端口以端口 ID标识。在情况一中,由于特定二层组播组表项的出接口列表为第一DT端口,因此,在步骤S204中根据特定二层组播组表项的出接口列表转发该单播报文的方式是:通过第一 DT端口转发该单播报文。
[0050]在情况二中,特定端口为该至少两个DT端口组成的本地聚合组,特定二层组播组表项的出接口列表为该至少两个DT端口 ;在实际实施时,本地聚合组以聚合组ID标识。在情况二中,由于特定二层组播组表项的出接口列表为本地聚合组中的该至少两个DT端口,因此,在步骤S204中根据特定二层组播组表项的出接口列表转发该单播报文的方式是:根据预定算法从该至少两个DT端口中选择一个DT端口,通过选中的DT端口转发该单播报文。该方式为现有技术,这里不再赘述。
[0051]步骤S206,当特定端口变为DOWN (不可用)状态时,将特定二层组播组表项的出接口列表修改为本设备上连接ISC链路的ISC端口。
[0052]在步骤S206中,当为情况一时,由于特定端口就是一个DT端口:第一 DT端口,因此,特定端口变为DOWN状态,即为第一 DT端口变为DOWN状态;当为情况二时,由于特定端口为该至少两个DT端口组成的本地聚合组,因此,特定端口变为DOWN状态,即为该至少两个DT端口全部变为DOWN状态。
[0053]下面分别情况一和情况二加以详细地介绍。[0054](I)情况一
[0055]当本设备上属于该分布式聚合组的DT端口只有一个第一 DT端口时,特定端口为第一 DT端口,特定二层组播组表项的出接口列表为第一 DT端口 ;在实际实施时,第一 DT端口以端口 ID标识。
[0056]这样,分布式链路聚合网络中的数据流处理方法包括以下步骤:
[0057]步骤S302,同步骤 S202 ;
[0058]步骤S304,若确定出该单播报文的出接口为第一 DT端口,则按照预设的ACL规则将该单播报文重定向至预设的特定二层组播组表项,根据特定二层组播组表项的出接口列表,即第一 DT端口转发该单播报文;
[0059]该步骤S304对应于步骤S204。
[0060]例如,该ACL规则的内容可以是:匹配条件为出接口为第一 DT端口的单播报文,执行动作为重定向至索引号为N的特定二层组播组表项,该特定二层组播组表项可以如表1-1所示:
[0061]表1-1
【权利要求】
1.一种分布式链路聚合DT网络中的数据流处理方法,所述分布式链路聚合网络中分布式聚合的两个网络设备通过数据同步ISC链路相连,且所述两个网络设备中的每一个网络设备上至少有一个端口加入到同一个分布式聚合组中,所述方法应用于所述两个网络设备中的任一个,其特征在于,所述方法包括: 接收到单播报文之后,根据媒体访问控制MAC转发表确定该单播报文的出接口 ; 若确定出该单播报文的出接口为特定端口,则按照预设的访问控制列表ACL规则将该单播报文重定向至预设的特定二层组播组表项,根据所述特定二层组播组表项的出接口列表转发该单播报文;其中,当本设备上属于该分布式聚合组的DT端口只有一个第一DT端口时,所述特定端口为第一 DT端口,所述出接口列表为第一 DT端口;当本设备上属于该分布式聚合组的DT端口有至少两个时,所述特定端口为该至少两个DT端口组成的本地聚合组,所述出接口列表为该至少两个DT端口 ; 当所述特定端口变为不可用DOWN状态时,将所述特定二层组播组表项的出接口列表修改为本设备上连接所述ISC链路的ISC端口。
2.根据权利要求1所述的方法,其特征在于,本设备上属于该分布式聚合组的DT端口有至少两个,则,当该至少两个DT端口均变为DOWN状态时,该至少两个DT端口组成的本地聚合组变为DOWN状态。
3.根据权利要求1或2所述的方法,其特征在于,本设备上属于该分布式聚合组的DT端口只有一个第一 DT端口,则,所述方法还包括: 当第一 DT端口从DOWN状态变为可用UP状态时,将所述特定二层组播组表项的出接口列表修改为第一 DT端口。`
4.根据权利要求1或2所述的方法,其特征在于,本设备上属于该分布式聚合组的DT端口有至少两个,则,所述方法还包括: 当所述本地聚合组中的一个DT端口变为DOWN状态时,判断所述本地聚合组中是否还有处于UP状态的其他DT端口; 若有,则从所述特定二层组播组表项的出接口列表中删除该变为DOWN状态的DT端口。
5.根据权利要求4所述的方法,其特征在于,本设备上属于该分布式聚合组的DT端口有至少两个,则,所述方法还包括: 当所述本地聚合组中的一个DT端口从DOWN状态变为UP状态时,判断所述本地聚合组中是否还有处于UP状态的其他DT端口; 若没有,则将所述特定二层组播组表项的出接口列表修改为该变为UP状态的DT端n ; 若有,则在所述特定二层组播组表项的出接口列表中添加该变为UP状态的DT端口。
6.一种分布式链路聚合DT网络中的数据流处理装置,所述分布式链路聚合网络中分布式聚合的两个网络设备通过数据同步ISC链路相连,且所述两个网络设备中的每一个网络设备上至少有一个端口加入到同一个分布式聚合组中,所述装置应用于所述两个网络设备中的任一个,其特征在于,所述装置包括: 接收模块,用于接收单播报文; 出接口确定模块,用于在所述接收模块接收到单播报文之后,根据媒体访问控制MAC转发表确定该单播报文的出接口;执行模块,用于若所述出接口确定模块确定出该单播报文的出接口为特定端口,则按照预设的访问控制列表ACL规则将该单播报文重定向至预设的特定二层组播组表项,根据所述特定二层组播组表项的出接口列表转发该单播报文;其中,当本设备上属于该分布式聚合组的DT端口只有一个第一 DT端口时,所述特定端口为第一 DT端口,所述出接口列表为第一 DT端口;当本设备上属于该分布式聚合组的DT端口有至少两个时,所述特定端口为该至少两个DT端口组成的本地聚合组,所述出接口列表为该至少两个DT端口; 修改模块,用于当所述特定端口变为不可用DOWN状态时,将所述特定二层组播组表项的出接口列表修改为本设备上连接所述ISC链路的ISC端口。
7.根据权利要求6所述的装置,其特征在于,本设备上属于该分布式聚合组的DT端口有至少两个,则,当该至少两个DT端口均变为DOWN状态时,该至少两个DT端口组成的本地聚合组变为DOWN状态。
8.根据权利要求6或7所述的装置,其特征在于,本设备上属于该分布式聚合组的DT端口只有一个第一 DT端口,则, 所述修改模块,还用于当第一 DT端口从DOWN状态变为可用UP状态时,将所述特定二层组播组表项的出接口列表修改为第一 DT端口。
9.根据权利要求6或7所述的装置,其特征在于,本设备上属于该分布式聚合组的DT端口有至少两个,则,所述装置还包括: 判断模块,用于当所 述本地聚合组中的一个DT端口变为DOWN状态时,判断所述本地聚合组中是否还有处于UP状态的其他DT端口; 删除模块,用于若所述判断模块在所述本地聚合组中的一个DT端口变为DOWN状态时,判断出所述本地聚合组中还有处于UP状态的其他DT端口,则从所述特定二层组播组表项的出接口列表中删除该变为DOWN状态的DT端口。
10.根据权利要求9所述的装置,其特征在于,本设备上属于该分布式聚合组的DT端口有至少两个,则,所述装置还包括:添加模块,其中: 所述判断模块,还用于当所述本地聚合组中的一个DT端口从DOWN状态变为UP状态时,判断所述本地聚合组中是否还有处于UP状态的其他DT端口; 所述修改模块,还用于若所述判断模块在所述本地聚合组中的一个DT端口从DOWN状态变为UP状态时,判断出所述本地聚合组中没有处于UP状态的其他DT端口,则将所述特定二层组播组表项的出接口列表修改为该变为UP状态的DT端口; 所述添加模块,用于若所述判断模块在所述本地聚合组中的一个DT端口从DOWN状态变为UP状态时,判断出所述本地聚合组中还有处于UP状态的其他DT端口,则在所述特定二层组播组表项的出接口列表中添加该变为UP状态的DT端口。
【文档编号】H04L12/707GK103532851SQ201310464043
【公开日】2014年1月22日 申请日期:2013年9月30日 优先权日:2013年9月30日
【发明者】王明辉, 胡海 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1