一种链路聚合的实现方法

文档序号:7700249阅读:767来源:国知局
专利名称:一种链路聚合的实现方法
技术领域
本发明涉及一种链路聚合的实现方法。
背景技术
链路聚合(Link Aggregation)在很多情况下又叫做端口捆绑(Port Trunking),将一个或多个链路聚合起来形成一个链路聚合组(Link Aggregation Group)。链路聚合可以让交换机之间,以及交换机与服务器之间的链路带宽有非常好的伸缩性,比如可以把2个、或者3个百兆的链路绑定在一起,使链路的带宽成倍增长。链路聚合技术可以实现不同端口分担网络流量,同时也能够互为备份,保证链路的冗余性。
参阅图1所示的一个链路聚合。端口1~24为二层交换机(L2Switch)的用户端口,端口25、26为L2Switch的的上行端口,上行端口25、26与对端设备三层交换机(L3Switch)的两个端口对接形成L2Switch的两个上行链路,这两个链路是全双工点到点的链路,并且工作在相同的速率之下,因此可以将这两个链路A、B聚合起来形成一个链路聚合组,端口25、26就是聚合端口。通过聚合端口进行链路负载平衡,避免链路出现拥塞现象。
用户端口通过聚合端口发送数据帧时,需要从聚合端口中选出一个端口来发送,这样通过该端口就可以连续发送接下来的数据帧,形成一个完整的会话流。因此需要某种分配算法来选择发送端口。通常可以利用数据帧携带的信息作为算法的参数,例如源MAC地址、目的MAC地址等。
参阅图2,采用哈希(hash)算法可以从聚合端口组选择一个给定的端口号。用帧携带的源MAC地址(SA)和目的MAC地址(DA)作为hash算法的key值,至于hash算法的选择,可以根据具体的流量模型进行筛选。如图1中,对于用户端口的上行数据帧,需要从聚合端口25或者26口转发出去,提取出该数据帧的SA、DA进行hash计算,得到hash值,根据该hash值查找聚合端口索引表,可以获得最终的转发端口,以达到链路负载平衡的目的。
由于源MAC地址、目的MAC地址是全球统一分配的48位地址,并且用户是不确定的,所以SA、DA可以被看作随机数,这导致了在具体应用中,进行hash运算时,生成的hash值有可能相同,这样查找聚合端口索引表后得到的转发端口相同,即上行的流量均从同一个端口发送,从而导致该端口出现拥塞现象,而其他的聚合端口流量却很小,不能很好的实现链路负载平衡。
另外,当聚合链路中某一条链路出现断路的情况时,不能依靠硬件直接调整另外一条正常工作的链路,需要软件修改聚合端口索引表来调整,由于软件修改反应速度慢,可能导致当前会话流的中断,并且加重网管的负担。

发明内容
本发明的目的在于提供一种链路聚合的实现方法,以解决现有技术对转发端的选择方法导致链路负载不能很好平衡的问题。
为了实现上述目的,本发明提供下述技术方案一种链路聚合的实现方法,包括步骤A、将交换设备的多个链路聚合成一个链路聚合组;B、将所述链路聚合组的下一级链路分为多组链路,并使所述多组链路中的每组链路对应链路聚合组中的一个成员链路;C、使每组链路的上行数据流由对应的成员链路转发。
根据上述技术方案步骤B中是指用所述链路聚合组中的成员链路数将该链路聚合组的下一级链路均分或基本均分为多组链路。
步骤C包括步骤交换设备从下一链路接收到上行数据报文,并从该数据报文中获得源端口号;根据所述源端口号从上行端口分组表中确定该链路所属的分组;
根据所述分组确定对应的成员链路;以及将所述数据报文通过所述成员链路端口转发。
当检测到一成员链路失效时,自动将该成员链路对应的一组链路的上行数据流切换到另一成员链路。
当检测到失效的成员链路恢复为有效时,自动将对应的一组链路的上行数据流切换回该成员链路。
所上行数据流述切换由硬件控制模块实现。
本发明通过上行流量按照用户端口分组进行流量的分担,可以避免过多用户端口的上行流量从一个上行端口走,避免链路出现拥塞现象;当聚合链路中某一条链路出现断路的情况时,无需软件干涉,硬件能够根据检测链路的结果直接调整上行流量从聚合链路中工作正常的链路转发,实现自动切换,保证聚合链路的冗余性。


图1为现有技术中链路聚合示意图;图2为现有技术中从链路聚合中选择转发端口的示意图;图3为本发明的链路聚合示意图;图4为本发明硬件切换示意图。
具体实施例方式
参阅3所示,以三层交换机和二层交换机为例。三层交换机与二层交换机之间通过两个物理链路连接,这两个链路聚合为一个聚合链路组,分别对应端口25、26。聚合链路的下一级链路,即二层交换机的用户链路,共有24个。将24个用户链路平均分为两组,即A组和B组。A组链路中的用户端口1~12对应于与端口25相连的成员链路,即A组的上行流量通过上行口端口25转发;B组链路中的用户端口13~24对应于与端口26相连接的成员链路,即B组的上行流量通过上行口端口26转发。
通过对二层交换机进行配置来完成用户端口的分组,分组配置完成后在二层交换机中建立上行端口分组表,使同一组的用户端口对应一个上行端口25或26。
参阅图4所示,二层交换机从用户端口收到上行数据帧后,首先得到输入数据帧的源端口号;用源端口号对照上行端口分组表,判断该源端口属于哪个分组,若属于A组,上行流量即从端口26走,若属于B组,上行流量即从端口25走,得到一个预转发端口;接着判断该上行端口的链接状态,如果链路工作正常,则从这个端口转发数据帧;如果链接工作不正常就从另外一个上行口转发数据帧。
成员链路25、26的状态指示可以通过硬件的自动检测和软件的设置两种方式,即上行端口的链路是否正常可由硬件检测或软件通知。当检测到第一个上行端口25出现链路故障时,A组的用户自动切换,上行流量均从第二个上行26端口走;当检测到链路恢复时,即上行端口25能正常工作,A组用户自动切换回原来的配置,上行流量均从第一个上行端口25走。同样当第二个上行端口出现链路故障时,B组的用户可以实现自动切换,上行流量均从第一个上行25端口走,当链路恢复时,即上行端口26能正常工作,B组用户能够自动切换回原来的配置,上行流量均从第二个上行端口26走。这样当链路发生异常情况时,无需软件干涉,硬件自动切换上行端口保证链路的正常工作,实现链路热备份的功能。硬件自动切换通过一个端口选择电路实现。
以上只考虑了两个上行口的简单处理流程,对于3个上行端口及以上同样适用。只是在进行切换时,可以随机指定一个上行端口,最佳方式是选择上行端口中当前负荷最轻的上行端口。
对于用户端口,可根据流量情况灵活配置分组,一般情况下的最佳方式是利用上行端口的数量(链路聚合组中成员链路的数量)将用户端口均分或基本均分为多组。如上行端口数为3,用户端口数为24,则分为8/8/8三组。另一种情况,如上行端口数为3,用户端口数为20,则分为7/7/6三组(基本均分)。
上述分组负荷分担同样适用于多个级联口的聚合。
本发明适用于下层设备与上层设备进行汇聚的链路。
本发明通过分组实现负荷分担,避免在上行端口正常情况下,多个用户端口的上行流量从一个上行端口走,造成端口拥塞,并且可以根据链路状况实现硬件自动切换上行端口而不影响正常的上行流量。
权利要求
1.一种链路聚合的实现方法,其特征在于包括步骤A、将交换设备的多个链路聚合成一个链路聚合组;B、将所述链路聚合组的下一级链路分为多组链路,并使所述多组链路中的每组链路对应链路聚合组中的一个成员链路;C、使每组链路的上行数据流由对应的成员链路转发。
2.如权利要求1所述的方法,其特征在于,步骤B中是指用所述链路聚合组中的成员链路数将该链路聚合组的下一级链路均分或基本均分为多组链路。
3.如权利要求1或2所述的方法,其特征在于,步骤C包括步骤交换设备从下一链路接收到上行数据报文,并从该数据报文中获得源端口号;根据所述源端口号从上行端口分组表中确定该链路所属的分组;根据所述分组确定对应的成员链路;以及将所述数据报文通过所述成员链路端口转发。
4.如权利要求3所述的方法,其特征在于,当检测到一成员链路失效时,自动将该成员链路对应的一组链路的上行数据流切换到另一成员链路。
5.如权利要求4所述的方法,其特征在于,所述另一成员链路为链路聚合组中当前负荷最轻的成员链路。
6.如权利要求4所述的方法,其特征在于,当检测到失效的成员链路恢复为有效时,自动将对应的一组链路的上行数据流切换回该成员链路。
7.如权利要求4所述的方法,其特征在于,所上行数据流述切换由硬件控制模块实现。
全文摘要
本发明公开了一种链路聚合的实现方法,该方法为将交换设备的多个链路聚合成一个链路聚合组;将所述链路聚合组的下一级链路分为多组链路,并使所述多组链路中的每组链路对应链路聚合组中的一个成员链路;使每组链路的上行数据流由对应的成员链路转发。
文档编号H04M3/00GK1571354SQ03147380
公开日2005年1月26日 申请日期2003年7月12日 优先权日2003年7月12日
发明者陈华彬, 王斌, 王稷, 李中华, 夏世长, 镡锐, 马敬兴, 付红松, 王万万, 郑为国 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1