专利名称:负载分担方法及装置的制作方法
技术领域:
本发明涉及流量转发技术领域,具体涉及等价路由+链路聚合组网应用中的负载分担方法及装置。
背景技术:
为了实现网络流量的负载分担,增强网络可靠性,提高设备的转发性能,链路聚合与等价路由结合应用的网络部署是很好的实现方案。等价路由能将去往相同目的因特网协议(IP, Internet Protocol)地址的流量负载到不同的路由出接口,实现流量在路由级的负载分担。链路聚合可以有效扩展链路带宽,同时利用链路聚合负载分担在聚合链路内部成员端口之间分担流量,实现链路级的负载分担。图1给出了现有的等价路由+链路聚合两级负载备份的典型网络部署示意图,如图1所示,每条等价路 由对应一个Hash索引,等级路由I的Hash索引为0,等价路由2的Hash索引为1,等价路由模块对每条入流量进行Hash运算,若Hash运算结果为0,则将流量分配到等价路由O上,若Hash运算结果为1,则将流量分配到等价路由I上,这种网络部署实现流量的两级负载和链路备份,有效提高了网络的可靠性,增强了网络转发性能。链路聚合与等价路由的结合应用对现有网络的转发性能和安全性能有了很好的优化,但是也存在缺陷。等价路由和链路聚合的两级链路负载相隔离,在聚合链路成员口正常工作的情况下可以实现流量负载分担,但是当聚合链路中有成员端口故障时,原有两级负载隔离的负载方案将不能实现流量的全局负载分担,因为两级隔离负载中,等价路由分担模块是不会感知聚合成员链路状态变化的,仍然会将流量均衡到两个聚合链路上。图2给出了当图1所示的聚合链路中有成员端口故障时的网络部署示意图,如图2所示,当聚合链路I的成员链路11故障时,成员链路11的流量将全部负载到成员链路12上。成员链路11故障后,剩余三条链路进行转发,由于等价路由仍然按照1:1进行负载分担,所以这时三条链路12、21、22负载分担比例为2:1:1,在网络流量较大时,成员链路12很可能发生拥塞。
发明内容
本发明提供等价路由+链路聚合组网应用中的负载分担方法、装置及主控板、接口板,以提高负载均衡效率。本发明的技术方案是这样实现的:一种等价路由+链路聚合组网应用中的负载分担方法,该方法包括:根据配置的Hash索引总数确定最大等价路由数,其中Hash索引总数不小于2倍最大等价路由数;配置等价路由表项,计算为每条等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,以便根据各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。
所述方法进一步包括:当发现一聚合链路的一成员端口故障时,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,以便根据调整后的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。所述当发现一聚合链路的一成员端口故障之后进一步包括:当该聚合链路的该成员端口恢复正常后,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,以便根据调整后的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。所述Hash索引总数等于最大等价路由数的整数倍。一种负载分担 装置,该装置包括管理模块、等价路由模块和至少一个链路聚合模块,其中:管理模块:保存配置的Hash索引总数,其中,Hash索引总数不小于2倍最大等价路由数;对于配置的每条等价路由表项,计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,将各等价路由表项的Hash索引数发送给等价路由模块;等价路由模块:根据管理模块发来的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。所述装置进一步包括:链路聚合模块,用于实时监控自身各成员端口的工作状态,当发现一成员端口故障时,将本聚合链路标识+该成员端口标识携带在故障通知消息中发送给管理模块。所述管理模块进一步用于,当接收到链路聚合模块发来的故障通知消息时,在自身查找该消息中的聚合链路标识+成员端口标识对应的带宽,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,将各等价路由表项的Hash索引数发送给等价路由模块。所述链路聚合模块进一步用于,当发现一聚合链路的一故障成员端口故障时,将本聚合链路标识+该成员端口标识携带在故障通知消息中发送给管理模块;所述管理模块进一步用于,当接收到链路聚合模块发来的故障恢复通知消息时,在自身查找该消息中的聚合链路标识+成员端口标识对应的带宽,调整该聚合链路对应的等价路由的当如带宽,同时调整所有等价路由的当如带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,将各等价路由表项的Hash索引数发送给等价路由模块。所述装置位于集中式转发设备上;或者,所述装置位于分布式转发设备上,且所述管理模块位于主控板上,所述等价路由模块和链路聚合模块位于接口板上。一种主控板,包括:
管理模块:保存配置的Hash索引总数,其中,Hash索引总数不小于2倍最大等价路由数;对于每个接口板的每条等价路由表项,计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/该接口板的所有等价路由的当前带宽和,将各接口板的各等价路由表项的Hash索引数发送给对应接口板的等价路由模块。所述管理模块进一步用于,当接收到一接口板的一链路聚合模块发来的故障通知消息时,在自身查找该消息中的接口板标识+聚合链路标识+成员端口标识对应的带宽,调整该接口板的该聚合链路对应的等价路由的当前带宽,同时调整该接口板的所有等价路由的当前带宽和,对于该接口板的每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/该接口板的所有等价路由的当前带宽和,将该接口板的各等价路由表项的Hash索引数发送给该接口板的等价路由模块。所述管理模块进一步用于,当接收到一接口板的一链路聚合模块发来的故障恢复通知消息时,在自身查找该消息中的接口板标识+聚合链路标识+成员端口标识对应的带宽,调整该接口板的该聚合链路对应的等价路由的当前带宽,同时调整该接口板的所有等价路由的当前带宽和,对于该接口板的每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/该接口板的所有等价路由的当前带宽和,将该接口板的各等价路由表项的Hash索引数发送给该接口板的等价路由模块。一种接口板,包括等价路由模块和至少一个链路聚合模块,其中:等价路由模块:根据主控板发来的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到本接口板的各等价路由上;链路聚合模块:实时监控自身各成员端口的工作状态,当发现一成员端口故障时,将本接口板标识+本聚合链路标识+该成员端口标识携带在故障通知消息中发送给主控板;当发现一故障成员端口恢复时,将本接口板标识+本聚合链路标识+该成员端口标识携带在故障恢复通知消息中 发送给主控板。与现有技术相比,本发明提高了等价路由+链路聚合组网应用中的负载均衡效率。
图1为现有的等价路由+链路聚合两级负载备份的典型网络部署示意图;图2为当图1所示的聚合链路中有成员端口故障时的网络部署示意图;图3为本发明实施例提供的采用等价路由+链路聚合两级负载备份的装置的组成示意图;图4为本发明实施例提供的采用等价路由+链路聚合两级负载备份的分布式转发设备的组成示意图;图5为本发明实施例提供的在采用等价路由+链路聚合两级负载备份的装置中进行负载分担的方法流程图;图6为本发明实施例提供的当聚合链路的故障成员端口恢复正常后的负载分担方法流程图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。图3为本发明实施例提供的采用等价路由+链路聚合两级负载备份的装置的组成示意图,如图3所示,其主要包括:管理模块31、等价路由模块32和链路聚合模块33。其中,每条聚合链路对应一个链路聚合模块33。图3所示装置可位于集中式转发设备上,也可位于分布式转发设备上。图4为本发明实施例提供的采用等价路由+链路聚合两级负载备份的分布式转发设备的组成示意图,如图4所示,当图3所示装置位于分布式转发设备上时,管理模块31位于主控板上,等价路由模块32和链路聚合模块33位于接口板上,管理模块31负责管理所有接口板上的等价路由模块32和链路聚合模块33。以下对采用等价路由+链路聚合两级负载备份的装置进行负载分担的流程进行说明。图5为本发明实施例提供的在采用等价路由+链路聚合两级负载备份的装置中进行流量转发的方法流程图,如图5所示,其具体步骤如下:步骤501:初始时,根据配置的Hash索引总数M确定最大等价路由数m,其中,M ^ 2m,将M保存到管理模块31上。较佳地,M=n*m,其中η为大于I的整数。通常,Hash索引总数都是预先配置好的,等价路由数根据Hash索引总数确定。若为分布式转发设备,每个接口板上的等价路由数相同,每个接口板配置的Hash索引总数相同,都为Μ。步骤502:对于每条等价路由,管理模块31根据该等价路由的当前带宽以及所有等价路由的当前带宽和,为该等价路由表项分配Hash索引数,将各等价路由表项的Hash索引数发送给等价路由模块32。第P (1≤P≤m)条等价路由表项的Hash索引数=MX (等价路由p的当前带宽)/ (所有等价路由的当前带宽和)。且,若结果为非整数,则根据四舍五入的原则取整。若为分布式转发设备,则管理模块31要针对每个接口板分别执行步骤402。S卩,任一接口板的第P (1≤P≤m)条等价路由表项的Hash索引数=MX (等价路由P的当前带宽)/ (该接口板的所有 等价路由的当前带宽和)。且,若结果为非整数,则根据四舍五入的原则取整。步骤503:等价路由模块32根据各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。步骤504:各链路聚合模块33实时监控自身各成员端口的工作状态,当发现一成员端口故障时,将本聚合链路标识+该成员端口标识携带在故障通知消息中发送给管理模块31。若为分布式转发设备,本步骤的故障通知消息中还需携带接口板标识。步骤505:管理模块31接收该故障通知消息,在自身查找该消息中的聚合链路标识+成员端口标识对应的带宽,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和。管理模块31上配置了各聚合链路的各成员端口的带宽。当一聚合链路的一成员端口故障时,管理模块31将该聚合链路对应的等价路由的当前带宽减去该成员端口的带宽,将所得差值作为更新后的该等价路由的当前带宽;同时,管理模块31将所有等价路由的当前带宽和减去该成员端口的带宽,将所得差值作为更新后的所有等价路由的当如带宽和。若为分布式转发设备,本步骤中,管理模块31接收该故障通知消息后,在自身查找该消息中的接口板标识+聚合链路标识+成员端口标识对应的带宽,调整该接口板的该聚合链路对应的等价路由的当前带宽,同时调整该接口板的所有等价路由的当前带宽和。步骤506:管理模块31根据调整后的该聚合链路对应的等价路由的当前带宽、调整后的所有等价路由的当前带宽和,调整各等价路由表项的Hash索引数,将调整后的各等价路由表项的Hash索引数发送给等价路由模块32。第P (I彡P彡m)条等价路由表项的Hash索引数=MX (等价路由p的当前带宽)/ (所有等价路由的当前带宽和)。且,若结果为非整数,则根据四舍五入的原则取整。若为分布式转发设备,本步骤中,管理模块31根据调整后的该接口板的该聚合链路对应的等价路由的当如带宽、调整后的该接口板的所有等价路由的当如带宽和,调整该接口板的各等价路由表项的Hash索引数,将调整后的该接口板的各等价路由表项的Hash索引数发送给该接口板的等价路由模块32。步骤507:等价路由模块32根据调整后的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。图6给出了本发明实施例提供的当聚合链路的故障成员端口恢复正常后的流量转发方法流程图,如图6所示,其具体步骤如下:步骤601:当故障成员端口恢复正常后,该成员端口所在的链路聚合模块33会将本聚合链路标识+成员端口标识携带在故障恢复 通知消息中发送给管理模块31。若为分布式转发设备,本步骤的故障恢复通知消息中还需携带接口板标识。步骤602:管理模块31接收该故障恢复通知消息,在自身查找该消息中的聚合链路标识+成员端口标识对应的带宽,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和。若为分布式转发设备,本步骤中,管理模块31接收该故障恢复通知消息后,在自身查找该消息中的接口板标识+聚合链路标识+成员端口标识对应的带宽,调整该接口板的该聚合链路对应的等价路由的当前带宽,同时调整该接口板的所有等价路由的当前带宽和。步骤603:管理模块31根据调整后的该聚合链路对应的等价路由的当前带宽、调整后的所有等价路由的当前带宽和,调整各等价路由表项的Hash索引数,将调整后的各等价路由表项的Hash索引数发送给等价路由模块32。若为分布式转发设备,本步骤中,管理模块31根据调整后的该接口板的该聚合链路对应的等价路由的当如带宽、调整后的该接口板的所有等价路由的当如带宽和,调整该接口板的各等价路由表项的Hash索引数,将调整后的该接口板的各等价路由表项的Hash索弓I数发送给该接口板的等价路由模块32。步骤604:等价路由模块32根据调整后的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。以下给出本发明的应用示例:
仍然以图1为例,如图1所示,配置的Hash索引总数为8,当前等价路由条数为2,设4条成员链路11、12、21、22的带宽相同,都为1M。正常情况下:等价路由I表项的Hash索引数=8X (1/2) =4,如:等价路由I表项的Hash索引值为 0、2、4、6 ;等价路由2表项的Hash索引数=8X (1/2) =4,如:等价路由2表项的Hash索引值为 1、3、5、7。设入口流量为4G,则每条等价路由下的聚合链路的带宽为2G,每条成员链路分担的流量为IG。故障情况下:仍以图2为例,当聚合链路I的成员端口 11故障时,链路聚合模块I通知管理模块,管理模块更新等价路由I的带宽为2M-1M=1M,更新等价路由1、2的带宽和为3M,并重新计算等价路由I表项的Hash索引数=8X (1/3) 3,等价路由2表项的Hash索引数=8X(2/3) 5,将等价路由I表项的Hash索引数:3、等价路由2表项的Hash索引数:5通知等价路由模块,等价路由模块调整等价路由1、2的负载分担。此时,例如:等价路由I表项的Hash索引值可为:0、2、4,等价路由2表项的Hash索引值可为:1、3、5、6、7。这样,重新分配后成员端口 12、21、22的负载比例为3:2.5:2.5。在实际应用中,可根据经验配置Hash索引总数M,以达到更好的负载均衡效果。例如:对于图1,若Hash索引总数为M=12,这样,当聚合链路I的成员端口 11故障时,重新计算等价路由I表项的Hash索引数=12X (1/3) =4,等价路由2表项的Hash索引数=12X(2/3) =8,重新分配后成员端口 12、21、22的负载比例仍为1:1:1。
以上所述仅为本发明的 较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种等价路由+链路聚合组网应用中的负载分担方法,其特征在于,该方法包括: 根据配置的Hash索引总数确定最大等价路由数,其中Hash索引总数不小于2倍最大等价路由数; 配置等价路由表项,计算为每条等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,以便根据各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括: 当发现一聚合链路的一成员端口故障时,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,以便根据调整后的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。
3.根据权利要求2所述的方法,其特征在于,所述当发现一聚合链路的一成员端口故障之后进一步包括: 当该聚合链路的该成员端口恢 复正常后,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,以便根据调整后的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。
4.根据权利要求1所述的方法,其特征在于,所述Hash索引总数等于最大等价路由数的整数倍。
5.一种负载分担装置,其特征在于,该装置包括管理模块、等价路由模块和至少一个链路聚合模块,其中: 管理模块:保存配置的Hash索引总数,其中,Hash索引总数不小于2倍最大等价路由数;对于配置的每条等价路由表项,计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,将各等价路由表项的Hash索引数发送给等价路由模块; 等价路由模块:根据管理模块发来的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。
6.根据权利要求5所述的装置,其特征在于,所述装置进一步包括:链路聚合模块,用于实时监控自身各成员端口的工作状态,当发现一成员端口故障时,将本聚合链路标识+该成员端口标识携带在故障通知消息中发送给管理模块。
所述管理模块进一步用于,当接收到链路聚合模块发来的故障通知消息时,在自身查找该消息中的聚合链路标识+成员端口标识对应的带宽,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,将各等价路由表项的Hash索引数发送给等价路由模块。
7.根据权利要求6所述的装置,其特征在于,所述链路聚合模块进一步用于,当发现一聚合链路的一故障成员端口故障时,将本聚合链路标识+该成员端口标识携带在故障通知消息中发送给管理模块; 所述管理模块进一步用于,当接收到链路聚合模块发来的故障恢复通知消息时,在自身查找该消息中的聚合链路标识+成员端口标识对应的带宽,调整该聚合链路对应的等价路由的当前带宽,同时调整所有等价路由的当前带宽和,对于每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,将各等价路由表项的Hash索引数发送给等价路由模块。
8.根据权利要求5所述的装置,其特征在于,所述装置位于集中式转发设备上;或者,所述装置位于分布式转发设备上,且所述管理模块位于主控板上,所述等价路由模块和链路聚合模块位于接口板上。
9.一种主控板,其特征在于,包括: 管理模块:保存配置的Hash索引总数,其中,Hash索引总数不小于2倍最大等价路由数;对于每个接口板的每条等价路由表项,计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/该接口板的所有等价路由的当前带宽和,将各接口板的各等价路由表项的Hash索引数发送给对应接口板的等价路由模块。
10.根据权利要求9所述的主控板,其特征在于,所述管理模块进一步用于,当接收到一接口板的一链路聚合模块发来的故障通知消息时,在自身查找该消息中的接口板标识+聚合链路标识+成员端口标识对应的带宽,调整该接口板的该聚合链路对应的等价路由的当前带宽,同时调整该接口板的所有等价路由的当前带宽和,对于该接口板的每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/该接口板的所有等价路由的当前带宽和,将该接口板的各等价路由表项的Hash索引数发送给该接口板的等价路由模块。
11.根据权利要求10所述的主控板,其特 征在于,所述管理模块进一步用于,当接收到一接口板的一链路聚合模块发来的故障恢复通知消息时,在自身查找该消息中的接口板标识+聚合链路标识+成员端口标识对应的带宽,调整该接口板的该聚合链路对应的等价路由的当前带宽,同时调整该接口板的所有等价路由的当前带宽和,对于该接口板的每条等价路由表项,重新计算为该等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/该接口板的所有等价路由的当前带宽和,将该接口板的各等价路由表项的Hash索引数发送给该接口板的等价路由模块。
12.—种接口板,其特征在于,包括等价路由模块和至少一个链路聚合模块,其中: 等价路由模块:根据主控板发来的各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到本接口板的各等价路由上; 链路聚合模块:实时监控自身各成员端口的工作状态,当发现一成员端口故障时,将本接口板标识+本聚合链路标识+该成员端口标识携带在故障通知消息中发送给主控板;当发现一故障成员端口恢复时,将本接口板标识+本聚合链路标识+该成员端口标识携带在故障恢复通知消息中发送给主控板。
全文摘要
本发明公开了负载分担方法及装置。方法包括根据配置的Hash索引总数确定最大等价路由数,其中Hash索引总数不小于2倍最大等价路由数;配置等价路由表项,计算为每条等价路由表项分配的Hash索引数=Hash索引总数*该等价路由的当前带宽/所有等价路由的当前带宽和,以便根据各等价路由表项的Hash索引数,将目的IP地址相同的流量分担到各等价路由上。本发明提高了负载均衡效率。
文档编号H04L12/803GK103236986SQ20131011732
公开日2013年8月7日 申请日期2013年4月7日 优先权日2013年4月7日
发明者席永青, 刘如冰 申请人:杭州华三通信技术有限公司