基于多链路的报文转发方法和装置的制作方法

文档序号:7655547阅读:118来源:国知局
专利名称:基于多链路的报文转发方法和装置的制作方法
技术领域
本发明涉及路由技术,特别涉及一种基于多链路的报文转发方法和一种基于多链路的报文转发装置。
背景技术
负载分担(Load Sharing)和链路备份(Link Backup)是流量转发中的两个重要技术,分别能够实现流量转发过程中的资源共享和链路保护。
以两个边缘路由装置为例,假设两个边缘路由装置分别为路由装置A和路由装置B,路由装置A和路由装置B之间通过至少两条链路相连。按照如下方式,在路由装置A和路由装置B中设置与至少两条链路对应的消耗(Cost)值或多出口区分符号(MED)值,即可分别实现负载分担和链路备份如果将分别与每条链路对应的Cost值或MED值设置为不同的值,则将所有报文均通过与Cost值或MED值最低的链路所对应的出接口输出,即将该链路作为主链路,而其他链路作为备用链路,备用链路对应的出接口不输出报文,从而实现了链路备份。
如果将分别与每条链路对应的Cost值或MED值设置为相同的值,即将至少两条链路作为等价链路,则将所有报文平均分配给各出接口输出,使得至少两条链路中平均分配流量,从而实现了负载分担。
通常情况下,至少两条链路两端的路由装置中设置的Cost值或MED值相同;设置Cost值或MED值可以通过路由管理(RM)模块来实现。
上述方案虽然能够实现链路备份或负载分担,但是却存在以下问题在实现负载分担的时候,多条等价链路中的流量只能是平均分配的,不能够分别为不同链路分配不同的流量大小,如果选择不同物理特性的多条链路作为等价链路,则对于物理特性较好的链路来说,只能与物理特性较差的链路传输相同的流量,从而造成了资源浪费。
因此,通常情况下,选择具备相同或相似的物理特性的链路作为等价链路。但由于物理特性较好的链路成本较高,物理特性较差的链路成本较低,因此,如果不能选择不同物理特性的链路作为等价链路,则无法将成本较高和成本较低的不同链路搭配作为多条等价链路,从而无法降低链路成本。
而且,上述方案虽然能够在各条链路的Cost值或MED值不同时实现链路备份,在各条链路的Cost值或MED值相同时实现负载分担,但无法同时实现负载分担和链路备份。如果单纯将少数Cost值或MED值较高的所有链路作为备用链路,可能会导致其他多条备用链路处于闲置状态,从而导致链路资源的浪费。
可见,现有基于多链路的路由方案中,无法降低链路成本,且对链路资源的利用率不高。

发明内容
有鉴于此,本发明提供了一种基于多链路的报文转发方法和一种基于多链路的报文转发装置,能够提高对链路资源的利用率。
本发明提供的一种基于多链路的报文转发方法,包括根据分别对应不同出接口的不同链路的物理特性,分别确定每个出接口的流量转发比例,所述不同链路具有相同目的网段;按照确定的每个出接口的流量转发比例,将多个待发送报文从各出接口输出。
所述对应链路的物理特性为对应链路的标记Tag值。
所述确定每个出接口的流量转发比例为如果链路对应的Tag值为0,则将该链路对应的出接口的转发比例设置为0;
如果链路对应的Tag值不为0,则按照公式Pi=Tagi/tag_total计算该链路对应的出接口的流量转发比例;其中,Pi为第i个出接口的流量转发比例,i为大于等于2、且小于等于出接口总数的正整数;Tagi为第i个出接口对应的链路的Tag值;tag_total为取值不为0的所有Tag值的总和。
如果Pi×m为整数,m为待输出的报文总数,所述第i个出接口输出Pi×m个报文;如果Pi×m不为整数,m为待输出的报文总数,进一步对Pi×m取整,所述第i个出接口输出取整后的Pi×m个报文,剩余的报文通过随机方式或轮循方式选择的出接口输出。
对应Tag值不为0的至少一个链路发生故障后,该方法进一步包括将至少一个原取值为0的Tag值设置为非0,重新计算与所有对应Tag值不为0的链路所对应的出接口的流量转发比例。
所述待发送报文为与预设访问控制列表ACL规则匹配的报文。
所述确定每个出接口的流量转发比例之前,该方法包括根据预先设置的出接口信息,从所有出接口中选取出对应链路具有相同目的网段的出接口。
所述确定每个出接口的流量转发比例之后,该方法进一步包括接收查询指令,所述查询指令中包括与出接口对应的预设标识;输出与所述预设标识对应的下述信息之一或任意组合路由目的网段、出接口信息、流量转发比例。
本发明提供的一种基于多链路的报文转发装置,包括包括路由管理RM模块、策略路由模块,该装置进一步包括等价转发路径ECMP策略模块,其中,所述ECMP策略模块根据预先设置的出接口信息,根据对应不同出接口的链路的物理特性,分别确定每个出接口的流量转发比例,所述不同链路具有相同目的网段;所述策略路由模块,按照所述ECMP策略模块确定的每个出接口的流量转发比例,将多个报文从各出接口输出。
所述对应链路的物理特性为对应链路的标记Tag值。
所述策略路由模块中进一步存储预设访问控制列表ACL规则;所述待发送报文为与所述ACL规则匹配的报文。
所述出接口为所述RM模块根据其内部存储的出接口信息从所有出接口中选取的。
该装置进一步包括交互平台,用于接收查询指令,所述查询指令中包括与出接口对应的预设标识;输出与所述预设标识对应的下述信息之一或任意组合路由目的网段、出接口信息、流量转发比例。
由上述技术方案可见,本发明先确定与不同链路对应的出接口的流量转发比例,然后根据确定的流量转发比例将所有报文分别通过对应的出接口输出。由于不同链路对应的出接口的流量转发比例可以不全相同,因而能够选择不同物理特性的链路作为等价链路,并提高资源利用率;结合实际情况任意选择具有特定物理特性的链路作为备用链路,即将成本较高和成本较低的不同链路搭配作为多条等价链路,还可以降低链路成本,并增加链路配置的灵活性。而且,还可以同时实现负载分担和链路保护。


图1为本发明中基于多链路的报文转发方法的示例性流程图。
图2为本发明实施例中基于多链路的报文转发方法1的流程图。
图3为本发明实施例中基于多链路的报文转发方法2的流程图。
图4为本发明实施例中基于多链路的报文转发装置的结构示意图。
具体实施例方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明中,不直接根据Cost值或MED值的高低来设置负载分担和链路备份,而是分别确定多条链路对应的出接口的流量转发比例,并按照确定的流量转发比例,将多个待发送的报文通过对应的出接口输出。
图1为本发明中基于多链路的报文转发方法的示例性流程图。如图1所示,本发明中基于多链路的报文转发方法,包括以下步骤步骤101,根据不同出接口对应的链路的物理特性,分别确定每个出接口的流量转发比例。
本步骤之前,可以根据预先设置的出接口信息,从所有出接口中选取至少两个出接口,且选取的不同出接口对应的链路具有相同的目的网段。
其中,所选取的出接口分别对应的至少两条链路对应同一个目的网段。
步骤102,按照确定的每个出接口的流量转发比例,将多个待发送报文从选取的各出接口输出。
本步骤中,将多个报文分别从对应的出接口输出的操作过程,可以通过现有的策略路由技术来实现;其中,策略路由是指根据预设规则指定输出待发送报文的出接口。这样,通过策略路由来控制报文的转发,即可保证报文转发装置能够按照流量转发比例从各出接口输出待发送报文。
至此,本流程结束。
由上述流程可见,由于不同链路对应的出接口的流量转发比例可以不全相同,因而能够为不同链路分别分配不同的流量大小,即实现不同链路分担不同流量的负载分担,从而能够选择不同物理特性的链路作为等价链路,并提高资源利用率;结合实际情况任意选择具有特定物理特性的链路作为备用链路,即将成本较高和成本较低的不同链路搭配作为多条等价链路,还可以降低链路成本,并能够增加链路配置的灵活性。
而且,在至少两个出接口中,如果其中一部分出接口的流量转发比例不为0,而另一部分出接口的流量转发比例为0,则还可以同时实现负载分担和链路保护。
其中,流量转发比例为0的出接口所对应的链路即为备用链路。由于在确定流量转发比例时,可以将任意数量的出接口的流量转发比例设置为0,因而能够任意选择作为备份链路的链路数量,从而能够避免只有少数链路被分配了所有流量、而多数链路空闲的情况出现,以提高链路资源的利用率,同时能够降低少数出接口的路由转发负荷,在保证链路备份同时,能够进一步提高链路的可靠性。
具体来说,可以根据表示链路物理特性的各种参数,例如现有用于区分不同路由的标记(Tag)值,来确定不同出接口的流量转发比例。
例如,可以先在现有的RM模块中设置不同链路的Tag值。通常情况下,Tag值可以按照如下公式来设定Tag=链路的实际物理带宽/1兆。
对于不同物理特性的链路,实际的物理带宽也不全相同,即不同物理特性的链路的Tag值也不全相同。这样,对于不同物理特性的链路的Tag值不全相同,根据Tag值确定的对应出接口的流量转发比例自然也不全相同。
对于需要作为备用链路的部分链路来说,例如,该链路的物理特性较差、或者维护难度较大等,可以将其Tag值设置为0。而Tag值不为0的链路可以看作等价链路,对应同一个路由目的网段的多个等价链路可以称为一个等价转发路径组(ECMP Group)。
对于Tag值不为0的链路所对应的出接口,即一个ECMP组中的出接口,可以根据设定的不同链路的Tag值,并按照如下公式来确定对应出接口的流量转发比例Pi=Tagi/tag_total。
其中,Pi为第i个出接口的流量转发比例,i为大于等于2、且小于等于N的正整数,N为出接口总数;Tagi为第i个出接口对应的链路的Tag值;tag_total为取值不为0的所有Tag值的总和。
较佳地,如果Pi×m为整数,m为待输出的报文总数,则出接口i输出的报文数量为Pi×m个;。
如果Pi×m为非整数,则进一步对Pi×m取整,通过出接口i输出取整后的Pi×m个报文,即[Pi×m]个报文,这样,会存在m-∑[Pi×m]个剩余的报文,剩余的报文可以通过随机方式或轮循方式选择的出接口输出。
对于Tag值为0的链路所对应的出接口,即备用链路对应的出接口,则可以直接将对应的流量转发比例设置为0。
在某个ECMP组中的一个或所有链路发生故障时,再将原Tag取值为0的至少一个链路的Tag值设置为非0,即将原Tag取值为0的至少一个链路添加到对应的ECMP组中。
这种情况下,由于新添加的链路的Tag值与已发生故障的链路的Tag值可能不同,因此,在添加了新的链路之后,该ECMP组对应的出接口的流量转发比例需要按照上述公式重新计算。
或者,在某个ECMP组中的所有链路均发生故障时,直接启用原Tag取值为0的至少一个链路,并按照现有方式平均分配流量。
由此可见,在多条链路中,可以将对应出接口的流量转发比例大于0的链路作为等价链路,实现不同流量的负载分担;同时还可以有一部分链路对应的出接口的流量转发比例为0,这些链路作为备用链路,从而同时实现了负载分担和链路保护。
实际应用中,例如Cost值等参数也能够在一定程度上反映链路的物理特性,因此,在计算流量转发比例时,也可以将Tag值替换为Cost值等其他参数。
下面,结合具体处理过程,对上述基于多链路的报文转发方法进行详细说明。
图2为本发明实施例中基于多链路的报文转发方法1的流程图。如图2所示,本实施例中基于多链路的报文转发方法1,包括以下步骤步骤201,设置至少一个ECMP组的路由目的网段。
步骤202,根据预先设置的出接口信息,从所有的出接口中,选取与设置的路由目的网段所对应的至少两个出接口,每个出接口对应一条链路。
本步骤中,出接口信息可以预先存储在现有的RM模块中。
步骤203,分别确定所选择的至少两个出接口的流量转发比例。
本步骤中,可以根据链路的Tag值来确定对应出接口的流量转发比例;Tag值为0的链路作为备用链路,对应的出接口的流量转发比例为0。
步骤204,按照确定的每个出接口的流量转发比例,将多个报文从选取的各出接口输出。
本步骤中,如果确定的流量转发比例为整数,则对应的出接口可以直接输出对应数量的报文;如果确定的流量转发比例不为整数,则对该流量转发比例取整,然后由对应的出接口输出取整后的流量转发比例对应数量的报文,剩余的报文可以随即选择至少一个出接口来输出。
至此,本流程结束。
上述流程能够为不同链路分别分配不同的流量大小,从而能够选择不同物理特性的链路作为等价链路,即将成本较高和成本较低的不同链路搭配作为多条等价链路,以降低链路成本。且可以将任意数量的出接口的流量转发比例设置为0,能够任意选择作为备份链路的链路数量,以避免只有少数链路被分配了所有流量、而多数链路空闲的情况出现。
而且,本实施例根据已有的Tag值来计算与不同链路对应的出接口的流量转发比例,在确定为每个链路分配的流量大小、以及确定备份链路时,无需额外获取其他参数,使得本发明的技术方案易于推广,具有较高的通用性。
上述基于多链路的报文转发方法1中,能够将所有待发送报文均按照对应的流量转发比例分配到不同的链路中,即对所有报文进行负载分担和/或链路保护,从而需要对所有待传输报文进行处理。
而实际应用中,可能只需要针对具有某些报文特性的报文进行负载分担和/或链路保护。这种情况下,可以针对某些需要进行负载分担和/或链路保护的报文所具有的报文特性,设置对应的访问控制列表(ACL)规则。这样,只将匹配预设ACL规则的报文按照对应的流量转发比例分配到不同的链路中,从而能够选择性地进行负载分担和/或链路保护。这就构成了本发明实施例中基于多链路的报文转发方法2。
图3为本发明实施例中基于多链路的报文转发方法2的流程图。如图3所示,本实施例中基于多链路的报文转发方法2,包括以下步骤步骤301,设置至少一个ECMP组的路由目的网段。
步骤302,根据预先设置的出接口信息,从所有的出接口中,选取与设置的路由目的网段所对应的至少两个出接口,每个出接口对应一条链路。
本步骤中,出接口信息可以预先存储在现有的RM模块中。通常情况下,出接口信息可以包括出接口的端口号,例如(虚拟局域网)Vlan 10;出接口的IP地址,例如173.3.1.2;出接口对应链路的cost值,例如1;出接口对应链路的路由目的网段,例如19.19.19.19/32。
步骤303,分别确定所选择的至少两个出接口的流量转发比例。
本步骤中,可以根据链路的Tag值来确定对应出接口的流量转发比例。
对于Tag值不为0的链路所对应的出接口,即一个ECMP组中的出接口,可以根据设定的不同链路的Tag值,并按照如下公式来确定对应出接口的流量转发比例Pi=Tagi/tag_total。
其中,Pi为第i个出接口的流量转发比例,i为大于等于2、且小于等于N的正整数,N为出接口总数;Tagi为第i个出接口对应的链路的Tag值;tag_total为取值不为0的所有Tag值的总和。
而Tag值为0的链路作为备用链路,对应的出接口的流量转发比例为0。
步骤304,判断是否有与待发送报文匹配的预设ACL规则,如果有,则执行步骤305;否则,则执行步骤306。
步骤305,按照确定的每个出接口的流量转发比例,将多个报文从选取的各出接口输出,并结束本流程。
本步骤中,如果确定的流量转发比例为整数,则对应的出接口可以直接输出对应数量的报文;如果确定的流量转发比例不为整数,则对该流量转发比例取整,然后由对应的出接口输出取整后的流量转发比例对应数量的报文,剩余的报文可以随即选择至少一个出接口来输出。
步骤306,按照预设路由转发表,将待发送的报文通过对应的出接口输出,并结束本流程。
相比于基于多链路的报文转发方法1,本实施例中基于多链路的报文转发方法2能够更加灵活地实现负载分担和/或链路保护。
在上述基于多链路的报文转发方法1和基于多链路的报文转发方法2中,还可以在确定了每个出接口的流量转发比例之后,根据用户输入的包括了与出接口对应的预设标识的查询指令,将对应出接口的流量转发比例、出接口对应的出接口信息、出接口对应的链路的Tag值、路由目的网段等各种相关信息提供给用户。
例如,用户输入的查询指令中包括一个ECMP组的标识,则将该ECMP组中所有链路对应的出接口的流量转发比例、出接口对应的出接口信息、所有链路的Tag值、路由目的网段等各种相关信息提供给用户。
这样,用户能够根据上述信息,重点维护流量转发比例较大的出接口所对应的链路,从而使得用户无需盲目地对所有链路均进行大量的维护工作,即使的链路维护具有较强的针对性,从而提高了路由的安全性、可靠性以及可维护性。
以上是对本发明实施例中基于多链路的报文转发方法的详细说明,下面,对本发明实施例中基于多链路的报文转发装置进行说明。
图4为本发明实施例中基于多链路的报文转发装置的结构示意图。如图4所示,本实施例中基于多链路的报文转发装置可以为任意一种路由设备,包括RM模块、策略路由模块、ECMP策略模块。
其中,RM模块和策略路由模块可以利用现有路由设备中的模块来实现。
RM模块,用于存储预先设置的出接口信息。
ECMP策略模块根据预先设置的出接口信息,选取至少两个出接口,每个所述出接口对应一条链路,所选取的出接口对应相同路由目的网段;根据对应链路的物理特性,分别确定所选取的至少两个出接口的流量转发比例。
其中,ECMP策略模块中可以存储着预设的路由目的网段;每个两个出接口的流量转发比例可以根据预设的对应链路的Tag值来确定;对于Tag值为0的链路,其对应的出接口的流量转发比例设置为0。
由上述装置可见,由于不同链路对应的出接口的流量转发比例可以不全相同,因而能够为不同链路分别分配不同的流量大小,即实现不同链路分担不同流量的负载分担,从而能够选择不同物理特性的链路作为等价链路,并提高资源利用率;结合实际情况任意选择具有特定物理特性的链路作为备用链路,以降低链路成本,还能够增加链路配置的灵活性。
而且,在至少两个出接口中,如果其中一部分出接口的流量转发比例不为0,而另一部分出接口的流量转发比例为0,则还可以同时实现负载分担和链路保护。
其中,流量转发比例为0的出接口所对应的链路即为备用链路。由于在确定流量转发比例时,可以将任意数量的出接口的流量转发比例设置为0,因而能够任意选择作为备份链路的链路数量,从而能够避免只有少数链路被分配了所有流量、而多数链路空闲的情况出现,以提高链路资源的利用率,同时能够降低少数出接口的路由转发负荷,在保证链路备份同时,能够进一步提高链路的可靠性。
实际应用中,ECMP策略模块中的内部处理过程也可以由RM模块来完成;或者,ECMP策略模块可以为RM模块中的一个子模块。
为了能够将出接口的流量转发比例、出接口对应的出接口信息、出接口对应的链路的Tag值、路由目的网段等各种相关信息提供给用户,以便用户能够根据上述信息有选择性地重点维护流量转发比例较大的出接口所对应的链路,本实施例中基于多链路的报文转发装置进一步包括交互平台,用于接收查询指令,其中,查询指令中包括与出接口对应的预设标识;输出与预设标识对应的路由目的网段、和/或出接口信息、和/或流量转发比例等信息。
为了有针对性地只对符合某些报文特性的报文进行负载分担和/或链路保护,策略路由模块中进一步存储预设的ACL规则,并只将与ACL规则匹配的报文按照对应的流量转发比例通过对应的出接口输出。
本发明实施例中的技术方案,可以适用于如第4版IP协议(IPv4)、第6版IP协议(IPv6)等各种版本的IP协议。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于多链路的报文转发方法,其特征在于,包括根据分别对应不同出接口的不同链路的物理特性,分别确定每个出接口的流量转发比例,所述不同链路具有相同目的网段;按照确定的每个出接口的流量转发比例,将多个待发送报文从各出接口输出。
2.如权利要求1所述的方法,其特征在于,所述对应链路的物理特性为对应链路的标记Tag值。
3.如权利要求2所述的方法,其特征在于,所述确定每个出接口的流量转发比例为如果链路对应的Tag值为0,则将该链路对应的出接口的转发比例设置为0;如果链路对应的Tag值不为0,则按照公式Pi=Tagi/tag_total计算该链路对应的出接口的流量转发比例;其中,Pi为第i个出接口的流量转发比例,i为大于等于2、且小于等于出接口总数的正整数;Tagi为第i个出接口对应的链路的Tag值;tag_total为取值不为0的所有Tag值的总和。
4.如权利要求3所述的方法,其特征在于,如果Pi×m为整数,m为待输出的报文总数,所述第i个出接口输出Pi×m个报文;如果Pi×m不为整数,m为待输出的报文总数,进一步对Pi×m取整,所述第i个出接口输出取整后的Pi×m个报文,剩余的报文通过随机方式或轮循方式选择的出接口输出。
5.如权利要求3或4所述的方法,其特征在于,对应Tag值不为0的至少一个链路发生故障后,该方法进一步包括将至少一个原取值为0的Tag值设置为非0,重新计算与所有对应Tag值不为0的链路所对应的出接口的流量转发比例。
6.如权利要求1所述的方法,其特征在于,所述待发送报文为与预设访问控制列表ACL规则匹配的报文。
7.如权利要求1所述的方法,其特征在于,所述确定每个出接口的流量转发比例之前,该方法包括根据预先设置的出接口信息,从所有出接口中选取出对应链路具有相同目的网段的出接口。
8.如权利要求1所述的方法,其特征在于,所述确定每个出接口的流量转发比例之后,该方法进一步包括接收查询指令,所述查询指令中包括与出接口对应的预设标识;输出与所述预设标识对应的下述信息之一或任意组合路由目的网段、出接口信息、流量转发比例。
9.一种基于多链路的报文转发装置,包括路由管理RM模块、策略路由模块,其特征在于,该装置进一步包括等价转发路径ECMP策略模块,其中,所述ECMP策略模块根据预先设置的出接口信息,根据对应不同出接口的链路的物理特性,分别确定每个出接口的流量转发比例,所述不同链路具有相同目的网段;所述策略路由模块,按照所述ECMP策略模块确定的每个出接口的流量转发比例,将多个报文从各出接口输出。
10.如权利要求9所述的装置,其特征在于,所述对应链路的物理特性为对应链路的标记Tag值。
11.如权利要求9所述的装置,其特征在于,所述策略路由模块中进一步存储预设访问控制列表ACL规则;所述待发送报文为与所述ACL规则匹配的报文。
12.如权利要求9所述的装置,其特征在于,所述出接口为所述RM模块根据其内部存储的出接口信息从所有出接口中选取的。
13.如权利要求12所述的装置,其特征在于,该装置进一步包括交互平台,用于接收查询指令,所述查询指令中包括与出接口对应的预设标识;输出与所述预设标识对应的下述信息之一或任意组合路由目的网段、出接口信息、流量转发比例。
全文摘要
本发明提供了一种基于多链路的报文转发方法和一种基于多链路的报文转发装置。本发明先确定与不同链路对应的出接口的流量转发比例,然后根据确定的流量转发比例将所有报文分别通过对应的出接口输出。由于不同链路对应的出接口的流量转发比例可以不全相同,因而能够实现不同链路分担不同流量的负载分担,还可以同时实现负载分担和链路保护,从而能够选择不同物理特性的链路作为等价链路,并提高资源利用率;结合实际情况任意选择具有特定物理特性的链路作为备用链路,即将成本较高和成本较低的不同链路搭配作为多条等价链路,还可以降低链路成本。
文档编号H04L29/04GK101094185SQ20071011966
公开日2007年12月26日 申请日期2007年7月27日 优先权日2007年7月27日
发明者程锋章 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1