在分布式网络交换系统中实现的端口捆绑方法

文档序号:7903826阅读:233来源:国知局
专利名称:在分布式网络交换系统中实现的端口捆绑方法
技术领域
本发明涉及网络通信技术,特别涉及一种在采用网络处理器的分布式系统中实现端口捆绑的方法。
背景技术
在网络通信中,端口捆绑功能是交换机、路由器的一个重要功能,它能够将多个以太链路聚合成一个逻辑链路,从而提供更宽的链路带宽。
在采用端口捆绑的情况下,当报文经过捆绑端口发出时,系统需要从捆绑组内选择一个端口,选择的结果应该满足以下的2点要求(1)同一个流(特定源和特定目的间的特定应用数据报文)应该从同一个端口发出,从而保证同一个流数据帧的次序(这在2层交换机的局域网情况下是必须的,因为局域网通信程序一般是不考虑数据帧乱序的)。(2)应该保证捆绑组内各个端口流量的均衡,即,根据当前的端口数,将数据流均匀的分布各个端口上。
上述第(1)点要求可以通过将标识数据帧的特征值进行哈希操作映射到一个唯一的值上得到实现。而对于上述第(2)点来说,情况则比较复杂,可以采用不同的算法实现。
下面将以分布式三层交换为例对现有技术中存在的问题进行说明。
首先对分布式三层交换过程中的地址学习进行简单说明。在分布式3层交换系统(分布式系统一般由主控板,网板和多个接口板构成,主控板负责系统的配置,处理路由协议,分发配置信息到接口板;接口板具有独立的CPU,负责独立进行转发;网板在各接口板间交换数据)中,通常由各个单板(本文中特指接口板)负责维护各自的MAC表。当2层报文进入系统后,各单板将执行MAC表项的搜索工作,如果查到MAC表项,则根据MAC表项中的(目标板,目标端口)将报文上送到网板;在报文被传送至目标板(即,目的接口板)并从目标端口发送出去的同时,各单板还自行检查是否源MAC已经存在于本板的MAC表中,如果没有,则以源MAC为关键字将报文的(源板,源端口)存入MAC表,即MAC学习功能。当报文上行查找出端口失败时,报文将被广播发送给各个目标板,以使各目标板进行源MAC地址的学习。
在采用端口捆绑技术后,交换过程中的地址学习一般采用MAC学习欺骗的技术方案。图1是在端口捆绑情况下现有技术所采用的MAC学习欺骗方案。如图1所示,报文处理流程分为上行和下行两个阶段,在上行阶段中,报文从入端口到达网板;在下行阶段中,报文从网板到达出端口。该方案的基本过程是报文上行进行源端口的替换;下行直接出端口,以下将做详细说明。
(1)报文经捆绑端口进入,假设从端口0(源端口SP)进入,经过捆绑算法计算(以源MAC为输入),计算出回应报文应走的端口2。捆绑算法通过对回应端口的计算保证流量均衡,回应端口和源端口可能相等,也可能不相等。
(2)报文将新的SP=2带到下行,以供单板进行MAC地址学习,报文(从0端口进入)的源MAC表项对应的端口为2。
(3)下行不做任何特殊处理,将报文发出。
(4)当对端发送回应报文时,通过单板查找目的MAC表项,发现对应的出端口是2,于是将报文发到端口2。
但是,图1所示的现有技术方案中存在以下的缺陷(1)由于它采用MAC地址学习欺骗的方式,所以只能根据源MAC进行捆绑计算。如果根据目的MAC进行捆绑,由于同一个源主机发送的数据报文可能具有不同的目的MAC,则捆绑算法计算出的结果也会不同,从而造成MAC学习的震荡(即,MAC表项不停的变换);(2)它只能根据源MAC进行端口捆绑计算,使得端口流量的均衡效果不佳;(3)由于它基于MAC地址的方案,所以只能支持2层流量的分担,对于3层流量无法实现分担,更难以支持新的业务;(4)它只在上行进行捆绑计算,下行直接出端口,当捆绑组中有端口down(失效)时,下行无法察觉,流量切换需要MAC地址的重新学习,或等待MAC表的删除/老化,会造成流量较长的中断。

发明内容
因此,针对现有技术中存在的上述问题,本发明的目的在于提供一种适用于分布式网络交换系统的端口捆绑方法,该方法通过使用一种新颖的捆绑方式,从而有效地实现了端口捆绑功能。
为了实现上述目的,本发明提供了一种适用于分布式网络交换系统的端口捆绑方法,该方法包括以下步骤1)在网络交换系统的端口捆绑表中增加一个自定义端口字段“主端口”,并从逻辑上用该主端口标识捆绑组;2)当来自发送端的上行报文进入所述端口捆绑组后,将所述报文的源端口替换为由所述主端口字段表示的端口,并通过所述网络交换系统的网板将经过所述替换的报文发送至对端;3)当对端对所述报文做出回应时,将回应报文发送到由所述主端口代表的端口上。
上述方法中还包括根据所述报文的源端口的属相判断该端口是否为捆绑端口的步骤。
上述步骤3)中进一步包括以下步骤根据出端口(此处就是主端口)的属性进行报文是否发向捆绑端口的判断,查找端口捆绑表,得到端口成员列表,通过流量均分算法选出其中一个端口,并用该端口替换所述主端口以将报文发出。
在上述方法中,所述主端口是属于所述捆绑组的物理端口。
在上述方法中,所述自定义端口字段“主端口”在上层配置时被指定。
在上述方法中,所述自定义端口字段“主端口”在所述捆绑组的生存周期内不发生改变,并且实际物理端口是否正常工作不会对所述“主端口”产生影响。
本发明提供的这个方案克服了MAC学习欺骗方案的不足。而且更因为流量分担算法不依赖于源MAC,所以本发明可提供多种标识数据流的方式源MAC、目的MAC及其组合,源IP、目的IP及其组合,MPLS标签栈等进行端口捆绑的流量均衡,从而更好地实现了流量的均匀分布和对多种业务的支持;另外,采用2层转发通过MAC学习到“主端口”的方式也有效地规避了MAC学习地址震荡的问题。


下面将结合附图对本发明的具体实施方式
进行详细说明,其中图1是在端口捆绑情况下现有技术所采用的MAC学习欺骗方案的示意图;图2是根据本发明实施例所述的采用“主端口”的捆绑方案的示意图;图3是根据本发明实施例所述的采用“主端口”的捆绑方案的方法流程示意图。
具体实施例方式
下面将以分布式三层交换为例对本发明的实施例进行具体说明。
在本发明的具体实施例中采用了一种“主端口”的端口捆绑方案。图2是根据本发明实施例所述的采用“主端口”的捆绑方案的示意图。与图1相类似,图2也分为上行和下行两个阶段(以图中的虚线为界),这两个阶段分别代表报文从捆绑组发出至网板以及报文从网板发送至捆绑组出端口的流程。后面将分别对这两个部分的流程进行具体说明。
在通过捆绑端口发送报文之前,首先在端口捆绑列表中增加一个“主端口”字段,该字段代表一个物理端口,属于端口捆绑组,它在上层配置时指定,以华为公司制造的Quidway路由交换机系列为例,其配置命令为link-aggregation ethernet 5/0/0 to 5/0/7 master 5/0/0该命令的涵义是将八个100M带宽的以太端口5/0/0到5/0/7端口捆绑,master后面的端口5/0/0就是主端口。
上述“主端口”在本捆绑组的生存周期内不会改变,而且物理端口的up和down对主端口没有影响。这里,up是指端口正常工作;down是指端口不能工作,它包括端口物理失效(例如未插网线,网线坏,等等)和用户命令禁止两种情况。另外,所述端口捆绑列表中的端口状态都是up的。
在“主端口”被建立之后,该“主端口”就从逻辑上代表或标识出了捆绑组。也就是说,以后捆绑组的属性只能在主端口上进行配置,捆绑组内的子端口会自动复制此主端口的属性(如支持的路由协议,支持的vlan个数,等等)。而且以后所有的MAC、ARP表项都将学习到主端口,系统转发表项中不会有子端口出现。另外,如果要删除捆绑组,则只需删除该主端口即可。同样以华为公司制造的Quidway路由交换机系列为例,当删除主端口时,其配置命令为undo link-aggregation ethemet master 5/0/0该命令的涵义是撤销端口5/0/0,其中,端口5/0/0就是主端口。
图3是根据本发明实施例所述的采用“主端口”的捆绑方案的方法流程示意图。如图3所示,当报文从捆绑组中的某个端口进入后,在SB源接口板通过目的MAC地址查找MAC表得到出端口TB/TP(目标板/目标端口),同时根据SP(源端口,即报文进入的物理端口)的端口属性判断该端口是否为捆绑端口,如果是,则查找端口捆绑表得到主端口,并用主端口替换掉报文的SP。经过其他功能的处理后,报文经过网板被发送到目标板TB。当报文到达TB后,该板读取上行带来的信息,将报文发送到目标端口TP,并在发送前进行源MAC地址的学习。在MAC地址学习中,TB以源MAC地址为key值(关键值),将报文的SB/SP(源板/源端口)存入MAC表。这样所有的从捆绑组进入的报文都将SP学习到主端口上。
当对方回应报文时,上行查找MAC表得到出端口TB/TP。注意,此时TP就是主端口。报文经网板到达捆绑组所在的单板TB,TB根据TP端口的属性表得知TP是捆绑端口,查找端口捆绑表,得到端口成员列表。通过流量均分算法选中其中一个端口,用该端口替换TP将报文发送出去。
需要注意的是,图3中的下行的MAC地址学习并不是一定要进行的。当要学习的表项已经存在于MAC表中,并且内容和要学习的表项完全相同时,不需要学习;当表项存在但内容不同时,进行表项的更新即可。
在上述过程中,流量均分算法可以任意选择,常见的算法是用标识数据流的关键值,如源MAC、目的MAC、源IP、目的IP、协议号或它们的组合进行哈希运算,得到一个唯一的值,对该数值用捆绑端口数进行取模操作。用取模后的余数作为索引就可从捆绑组端口列表中查找到TP。
本领域的普通技术人员应该明白,虽然以上对本发明的说明是参考其具体实施例来进行的,但它并不意味着是对本发明的限制。本发明的范围是由附带的权利要求来定义的。
权利要求
1.一种适用于分布式网络交换系统的端口捆绑方法,其特征在于所述方法包括以下步骤1)在网络交换系统的端口捆绑表中增加一个自定义端口字段“主端口”,并从逻辑上用该主端口标识捆绑组;2)当来自发送端的上行报文进入所述端口捆绑组后,将所述报文的源端口替换为由所述主端口字段表示的端口,并通过所述网络交换系统的网板将经过所述替换的报文发送至对端;3)当对端对所述报文做出回应时,将回应报文发送到由所述主端口代表的端口上。
2.根据权利要求1所述的方法,其特征在于,上述步骤2)还进一步包括根据所述报文的源端口的属性判断该端口是否为捆绑端口的步骤。
3.根据权利要求1所述的方法,其特征在于,上述步骤3)中进一步包括以下步骤根据出端口的属性进行报文是否发向捆绑端口的判断,查找端口捆绑表,得到端口成员列表,通过流量均分算法选出其中一个端口,并用该端口替换所述主端口以将报文发出。
4.根据权利要求1至3中的任何一项所述的方法,其特征在于,所述主端口是属于所述捆绑组的物理端口。
5.根据权利要求4所述的方法,其特征在于,所述自定义端口字段“主端口”在上层配置时被指定。
6.根据权利要求5所述的方法,其特征在于,所述自定义端口字段“主端口”在所述捆绑组的生存周期内不发生改变。
7.根据权利要求6所述的方法,其特征在于,所述网络交换系统中实际物理端口是否正常工作不会对所述“主端口”产生影响。
全文摘要
本发明公开了一种适用于分布式网络交换系统的端口捆绑方法,它包括以下步骤1)在网络交换系统的端口捆绑表中增加一个自定义端口字段“主端口”,并从逻辑上用该主端口标识捆绑组;2)当来自发送端的上行报文进入所述端口捆绑组后,将所述报文的源端口替换为由所述主端口字段表示的端口,并通过所述网络交换系统的网板将经过所述替换的报文发送至对端;3)当对端对所述报文做出回应时,将回应报文发送到由所述主端口代表的端口上。该方法通过提供多种标识数据流的方式进行端口捆绑的流量均衡,从而更好地实现了流量的均匀分布和对多种业务的支持;另外,采用2层转发通过MAC学习到“主端口”的方式也有效地规避了MAC学习地址震荡的问题。
文档编号H04L12/00GK1527548SQ0311921
公开日2004年9月8日 申请日期2003年3月5日 优先权日2003年3月5日
发明者申纪伟 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1