一种链路聚合方法、端口负载均衡方法及其装置的制作方法

文档序号:7645049阅读:463来源:国知局
专利名称:一种链路聚合方法、端口负载均衡方法及其装置的制作方法
技术领域
本发明涉及数据通信领域,具体地涉及一种链路聚合方法、端口负载均衡方法及其装置。
背景技术
链路聚合是一种将多个以太链路聚合成一个逻辑接口以提升带宽、提高可靠性的技术。其技术原理是将一个系统上的多个相同属性的以太接口绑定到一个逻辑接口,该逻辑接口称为聚合器,其下属的以太接口称为成员端口。聚合器向上层网络设备提供以太链路层的报文处理服务,屏蔽掉具体的物理端口。在发送报文时,上层网络设备只需将报文发送给聚合器,由聚合器按照一定原则将报文分发给其下属的某个成员端口,由成员端口将报文发出。成员端口接收到报文后,会将报文交给聚合器统一处理,由聚合器负责向上层网络设备传递报文。
为了保证能够将合适的链路聚合在一起形成聚合器,链路聚合技术采用链路聚合控制协议(Link Aggregation Control Protocol,LACP)来检测两端成员链路配置,以决定哪些链路可以聚合在一起。
LACP协议通过链路聚合控制协议数据单元(Link Aggregation ControlProtocol Data Unit,LACPDU)与对端交互信息。使能某端口的LACP协议后,该端口将通过发送LACPDU向对端通告自己的系统标识(ID)、和运行关键字(Key)等信息。运行关键字(Key)是LACP协议根据端口的配置(即速率、双工模式、基本配置等)生成的一个配置组合值。同一个聚合器的成员端口一定要有相同的运行关键字(Key)。对端接收到这些信息后,将这些信息与其它端口所保存的信息进行比较,以选择能够聚合的端口,从而双方可以对端口加入或退出某个聚合器达成一致。
链路聚合的主要步骤如下(1)首先使能了链路聚合功能的端口会与其对端端口进行信息交互,获取对端端口的系统ID、速率等信息;(2)然后,本端系统会首先根据速率等信息选择属性一致的待聚合端口;(3)在选出的待聚合端口中,再选出其对端端口信息(系统ID、速率等)一致的端口;(4)将选出的端口聚合在一起,形成聚合器。
由于端口的速率信息是作为选择聚合端口的依据,因此不同速率的端口是不可能聚合在一起的。
采用链路聚合技术,有以下好处第一,提高可靠性。对上层网络应用来说,其访问的是逻辑接口聚合器,由于聚合器聚合了多个成员端口,所以当部分成员端口掉线时,只会降低该逻辑接口的带宽,并不会发生通讯中断;第二,可以线性提高带宽。以太端口的带宽是按10M、100M、1000M等来分类的,但有的业务会需要30M、400M这样的带宽,采用链路聚合技术可以满足这种需求,避免浪费带宽资源。
但是,现有的链路聚合协议规定聚合组内所有子链路必须工作在相同的数据速率下。LACP协议在交互信息时,本端端口通过向对端发送携带运行关键字(Key)的LACPDU将本端端口速率信息告诉对端,同时从对端发来的LACPDU中获取对端的运行关键字(Key),只有本端端口运行关键字(Key)和对端端口运行关键字(Key)都相同的端口才会聚合在一起,形成一个聚合器。也就是说,聚合器中本端端口的速率必须相同,同时它们的对端端口的速率也必须相同。
由此可以看出,现有链路聚合方式要求只有相同速率的端口才能聚合在一起,由于以太链路的带宽是以10M、100M、1000M等速率离散的,因此现有链路聚合方式的线性提高带宽能力存在较大局限性。比如如果用户的带宽需求是350M或者2500M,那么前者只能用35个10M以太链路聚合在一起,后者需要25个100M以太链路。在实际中,几乎没有哪种设备会有这样多的以太端口,因此聚合这样多的链路来满足带宽需求是难以实现的。

发明内容
本发明实施例提供一种链路聚合方法,使之可以聚合不同速率的端口,以更灵活地满足客户的带宽需要。
为了解决上述技术问题,本发明实施例提出了一种链路聚合方法,其包括获取与本端链路端口相对应的对端链路端口的配置信息;从本端链路端口中选择待聚合端口,所述待聚合端口为本端配置信息及其对端配置信息均一致的本端链路端口;获取待聚合端口的速率信息,并根据所述速率信息对每一待聚合端口设置一速率权重值;将待聚合端口形成一聚合器。
相应地,本发明实施例提供一种端口负载均衡方法,用于均衡聚合器各端口的负载,所述聚合器包括有不同速率的端口,该方法包括a、所述聚合器从上层网络设备收到报文时查找与该报文对应的端口,如果查找到所述对应端口则从该端口转发,否则,执行步骤b;b、确定所述聚合器各端口中负载率最小的端口;c、将所述报文从确定的所述负载率最小的端口发送,并记录所述报文与该端口的对应关系。
本发明实施例还提供一种端口负载均衡装置,用于均衡聚合器各端口的负载,所述聚合器包括有不同速率的端口。该端口负载均衡装置包括有端口负载率处理单元、控制单元,其中所述端口负载率处理单元,用于根据控制单元下发的比较命令确定负载率最小的端口,并将结果发送至控制单元;所述控制单元,用于在所述聚合器收到上层网络设备的报文且查找不到与该报文相对应的端口时对端口负载率处理单元下发比较命令,并在收到所述端口负载率处理单元的所述结果后通知所述聚合器将所述报文从所述负载率最小的端口发送。
本发明实施例提供的一种链路聚合方法,在选择待聚合端口时依据本端端口及对端端口的配置信息而不考虑其速率信息,从而使速率不同的端口也能聚合成一个聚合器,灵活地满足客户的带宽需要,降低了设备成本;同时,在链路聚合过程中,给端口赋予与其速率相对应的速率权重值,使聚合器知晓各端口的相对速率,以便进行端口负载均衡。此外,本发明实施例提供的一种端口负载均衡方法及其装置,在从上层网络设备收到报文且找不到与之相对应的端口时,通过计算并判断负载率最小的端口,将所述报文从该负载率最小的端口发送,使包含有不同速率端口的聚合器的各下属端口的负载达到了均衡。


图1是现有技术中链路聚合方法的流程示意图;图2是本发明链路聚合方法的一个实施例的流程示意图;图3是本发明端口负载均衡方法的一个实施例的流程示意图;图4是图3中步骤S3002具体实施例的细化流程示意图;图5是本发明端口负载均衡装置的一个实施例的功能模块示意图。
具体实施例方式
下面结合附图对本发明作进一步详细清楚的说明。
图2示出了本发明中链路聚合方法的一个实施例的流程示意图,其包括以下步骤步骤S2001获取与本端链路端口相对应的对端链路端口的配置信息。
在聚合链路端口之前,本端系统首先要获得本端链路端口及其对端链路端口的配置信息。作为一种实施方式,在使能了链路聚合功能后,可以使本端链路端口与其对端端口交换配置信息,从而使本端系统获得与本端链路端口相对应的对端链路端口的配置信息。在本步骤S2001中交换的配置信息可以包括系统ID、工作模式(单、双工)等信息,不包括端口的速率信息。
步骤S2002从本端链路端口中选择待聚合端口,所述待聚合端口为本端配置信息及其对端配置信息均一致的本端链路端口。
在此步骤中,本端系统首先根据单、双工工作模式等配置信息选择出属性一致的端口;在选出的端口中,再选出其对端端口的配置信息(系统ID、工作模式等)也一致的端口作为待聚合端口。
步骤S2003获取待聚合端口的速率信息,并根据所述速率信息对每一待聚合端口设置一速率权重值。
不同速率的端口聚合在一起,可能带来的问题为如果形成的聚合器在报文分发时不知道端口的速率差异,那么会在其下属端口之间进行平均分发,这样速率高和速率低的端口实际负载就是一样的,造成了带宽资源的浪费。为了解决这一问题,在形成聚合器时给每个成员端口增加一个速率权重值,不同速率的端口其速率权重值不同。作为一种实施方式,可以将端口的速率权重值设置为与该端口速率成正比,即,根据端口的速率信息获得端口速率,将该端口速率除以某一预设值获得该端口的速率权重值,赋予该端口。例如对于端口速率为10M的端口,可以将其速率值除以预设值10,得到该端口的速率权重值为1,则端口速率为100M的端口其速率权重值为10。作为另一种实施方式,也可以通过根据端口速率的大小设置端口的转发优先级值来赋予端口速率权重值,速率越大的端口其转发优先级越高,即其优先级值越大。当两个端口的报文总负载量一样大时,从优先级值大的端口转发报文。这样,通过读取速率权重值,就可以判断各端口的相对速率,从而使各成员端口的负载均衡成为可能。
步骤S2004将待聚合端口形成一聚合器。
例如,假设本端有4个端口,编号分别为1、2、3、4,其本端及对端的速率信息及系统ID、工作模式等配置信息如下两表所示表1各端口本端的速率信息及配置信息表

表2各端口对端的速率信息及配置信息表

假设端口1、2、3、4都开启了端口聚合功能,则本端和对端交换个端口的配置信息后,本端系统首先根据表1选出本端的配置信息一致的端口1、2、3,然后再根据表2选出对端的配置信息也一致的端口1、3作为待聚合端口,然后,再根据各端口的速率信息分别给端口1、3赋予相对应的速率权重值,例如,可以将速率权重值1、100分别赋予端口1、3,然后,本端系统将赋予了速率权重值的端口1、3聚合在一起,形成一个包含有不同速率端口的聚合器。或者,可以根据端口1、3实际速率的大小赋予它们不同的优先级值,如,分别赋予端口1、3的优先级值为1、5。
在本发明链路聚合方法的实施例中,本端系统不再根据端口的速率信息选择待聚合端口,可以把不同速率的端口聚合在一起,灵活地利用了带宽,满足了客户的带宽需要;同时通过对聚合后的各下属端口赋予速率权重值,为速率不同的各下属端口之间实现负载均衡提供了可能。
进一步地,为解决聚合器各成员端口的负载均衡问题,本发明实施例还提供一种端口负载均衡方法,用于均衡聚合器各成员端口的负载,该聚合器为按照上述链路聚合方法形成的含有不同速率端口的聚合器,该方法的流程示意图如图3所示,包括有以下步骤步骤S3001所述聚合器从上层网络设备收到报文时查找与该报文对应的端口,如果查找到所述对应端口则执行步骤S3004,否则,执行步骤S3002。
聚合器从上层网络设备收到报文时,首先根据报文中的报文流信息(源IP、目的IP等)查找报文流与端口对应关系表;如果查到该报文对应的端口,执行步骤S3004;否则说明是一个新的报文流,将从其成员端口中选取一个负载率最小的端口发送,即执行步骤S3002。该报文流与端口对应关系表为聚合器在发送报文时记录的报文与发送该报文的端口的对应关系。
步骤S3002确定所述聚合器各端口中负载率最小的端口。
步骤S3003将所述报文从确定的所述负载率最小的端口发送,并记录所述报文与该端口的对应关系。
步骤S3004将该报文从所述对应的端口发送。
步骤S3002的具体实施例的细化流程图如图4所示,包括以下步骤步骤S4001读取所述各端口的速率权重值。
步骤S4002根据端口负载量及该端口的所述速率权重值,计算所述各端口的负载率值。
作为一种实施方式,将端口负载量除以该端口的速率权重值可以得到该端口的负载率值。
步骤S4003比较所述各端口的负载率值并判断负载率最小的端口。
作为一种实施方式,所述端口的负载量可以理解为端口负载的报文流数。当然,在实际应用中,有的系统的各个报文流实际流量并不是相等的,可能会出现某些报文流流量很大,某些报文流流量很小,这种情况下,端口的负载量也可以理解为端口负载的报文流的流量总和。
这里所述速率权重值为在形成聚合器时对不同速率的各成员端口赋予的对应于其速率的权重值。作为一种实施方式,可以将端口的速率权重值设置为与该端口实际速率成正比,即,根据端口的速率信息获得端口速率,将该端口速率除以某一预设值获得该端口的速率权重值,赋予该端口。例如对于端口速率为10M的端口,可以将其速率值除以预设值10,得到该端口的速率权重值为1,则端口速率为100M的端口其速率权重值为10。作为另一种实施方式,也可以通过根据端口速率的大小设置端口的转发优先级值来赋予端口速率权重值,速率越大的端口其转发优先级越高,即其优先级值越大。当两个端口的报文总负载量一样大时,从优先级值大的端口转发报文。那么,将端口的负载量除以该端口的速率权重值后所得的负载率值可以反映出该端口的实际负载流量的情况。负载率值越小的端口其负载率越小。将各端口的负载率值作比较,负载率值最小的端口其负载率最小。
采用端口负载率等于端口负载量除以速率权重值的定义,使端口负载率真正反映出端口的实际负载流量的情况。
采用上述端口负载均衡方法,可以有效的将报文流分发到各个端口上,并且保证速率权重值大的端口会负载较多的报文流,能够充分利用端口带宽。
相应地,本发明实施例还提供一种端口负载均衡装置,用于均衡聚合器各成员端口的负载,所述聚合器为按照本发明实施例所述的链路聚合方法而形成的包括有不同速率端口的聚合器。图5示出了该均衡装置的一个实施例的功能模块组成示意图。该装置包括有端口负载率处理单元1、控制单元2。
端口负载率处理单元1用于根据控制单元2下发的比较命令确定负载率最小的端口,并将结果发送至控制单元2。
控制单元2用于在所述聚合器收到上层网络设备的报文且查找不到与该报文相对应的端口时对端口负载率处理单元1下发比较命令,并在收到端口负载率处理单元1的判断结果后通知所述聚合器将所述报文从所述负载率最小的端口发送。
作为一种实施方式,端口负载率处理单元可以进一步包括有计算单元11和比较单元12。计算单元11用于接收所述控制单元2的比较命令,读取各端口的负载量及该端口的所述速率权重值,计算各端口的负载率并将计算结果发送给所述比较单元12;比较单元12用于接收所述计算单元11的计算结果,比较所述各端口的负载率的大小,并确定负载率最小的端口。
作为一种实施方式,计算单元11计算端口负载率的方式可以为将所述端口负载量除以该端口的所述速率权重值,得到该端口的负载率值。
上面提到的端口的负载量可以理解为端口负载的报文流数。当然,在实际应用中,有的系统的各个报文流实际流量并不是相等的,可能会出现某些报文流流量很大,某些报文流流量很小,这种情况下,端口的负载量也可以理解为端口负载的报文流的流量总和。
通过该端口负载均衡装置,可以有效的将报文流分发到各个端口上,并且保证速率权重值大的端口会负载较多的报文流,能够充分利用端口带宽。
以上所揭露的仅为本发明的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
1.一种链路聚合方法,其特征在于,包括获取与本端链路端口相对应的对端链路端口的配置信息;从本端链路端口中选择待聚合端口,所述待聚合端口为本端配置信息及其对端配置信息均一致的本端链路端口;获取待聚合端口的速率信息,并根据所述速率信息对每一待聚合端口设置一速率权重值;将待聚合端口形成一聚合器。
2.如权利要求1所述的链路聚合方法,其特征在于,所述配置信息包括有该端口的系统标识、工作模式。
3.如权利要求1所述的链路聚合方法,其特征在于,所述根据速率信息对每一待聚合端口设置速率权重值具体为根据所述速率信息获得端口速率,将该端口速率除以某一预设值获得该端口速率权重值,并将该速率权重值赋予所述端口。
4.如权利要求1所述的链路聚合方法,其特征在于,所述根据速率信息对每一待聚合端口设置速率权重值具体为根据所述速率信息获得端口速率,根据所述端口速率的大小确定该端口的转发优先级值,并将该转发优先级值作为速率权重值赋予该端口。
5.如权利要求1-4任一项所述的链路聚合方法,其特征在于,所述将待聚合端口形成一聚合器的步骤之后还包括A、所述聚合器从上层网络设备收到报文时查找与该报文对应的端口,如果查找到所述对应端口则从该端口转发,否则,执行步骤B;B、确定所述聚合器各端口中负载率最小的端口;C、将所述报文从确定的所述负载率最小的端口发送,并记录所述报文与该端口的对应关系。
6.如权利要求5所述的链路聚合方法,其特征在于,确定所述聚合器各端口中负载率最小的端口的步骤具体为读取所述各端口的速率权重值;根据端口的负载量及该端口的所述速率权重值,计算所述各端口的负载率值;比较所述各端口的负载率值并判断负载率最小的端口。
7.一种端口负载均衡方法,用于均衡聚合器各端口的负载,所述聚合器包括有不同速率的端口,其特征在于,该方法包括a、所述聚合器从上层网络设备收到报文时查找与该报文对应的端口,如果查找到所述对应端口则从该端口转发,否则,执行步骤b;b、确定所述聚合器各端口中负载率最小的端口;c、将所述报文从确定的所述负载率最小的端口发送,并记录所述报文与该端口的对应关系。
8.如权利要求7所述的端口负载均衡方法,其特征在于,所述步骤c具体包括以下步骤c1、读取所述各端口的速率权重值;c2、根据端口的负载量及该端口的所述速率权重值,计算所述各端口的负载率值;c3、比较所述各端口的负载率值并判断负载率最小的端口。
9.如权利要求8所述的端口负载均衡方法,其特征在于,所述计算端口负载率的方式为将端口的负载量除以该端口的所述速率权重值。
10.如权利要求9所述的端口负载均衡方法,其特征在于,所述负载量为该端口负载的报文流数或该端口负载的报文流量总和。
11.一种端口负载均衡装置,用于均衡聚合器各端口的负载,所述聚合器包括有不同速率的端口,其特征在于,该端口负载均衡装置包括有端口负载率处理单元、控制单元,其中所述端口负载率处理单元,用于根据控制单元下发的比较命令确定负载率最小的端口,并将结果发送至控制单元;所述控制单元,用于在所述聚合器收到上层网络设备的报文且查找不到与该报文相对应的端口时对端口负载率处理单元下发比较命令,并在收到所述端口负载率处理单元的所述结果后通知所述聚合器将所述报文从所述负载率最小的端口发送。
12.如权利要求11所述的端口负载均衡装置,其特征在于,所述端口负载率处理单元进一步包括有计算单元、比较单元,其中所述计算单元,用于接收所述控制单元的比较命令,读取各端口的负载量及该端口的所述速率权重值,计算各端口的负载率并将计算结果发送给所述比较单元;所述比较单元,用于接收所述计算单元的计算结果,比较所述各端口的负载率的大小,并确定负载率最小的端口。
13.如权利要求11-12任一项所述的端口负载均衡装置,其特征在于,所述负载量为该端口负载的报文流数或该端口负载的报文流量总和。
全文摘要
本发明公开了一种链路聚合方法,该方法在选择待聚合端口时依据本端端口及对端端口的配置信息,而不考虑其速率信息,从而使速率不同的端口也能聚合成一个聚合器,同时在链路聚合过程中,给端口赋予与其速率相对应的速率权重值,使聚合器知晓各端口的相对速率,以便进行端口负载均衡。本发明还公开了一种端口负载均衡方法及其装置,其中,该方法通过确定负载率最小的成员端口,使聚合器在收到上层网络设备报文且查找不到与之相对应的端口时,选择负载率最小的成员端口发送该报文。通过本发明可使速率不同的端口也能聚合成一个聚合器,灵活地满足客户的带宽需要,降低了设备成本,同时使各端口的负载达到均衡。
文档编号H04L12/56GK101022456SQ20071002724
公开日2007年8月22日 申请日期2007年3月22日 优先权日2007年3月22日
发明者孙默 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1