一种转发装置及流量输出接口调节方法与流程

文档序号:31023384发布日期:2022-08-05 22:05阅读:88来源:国知局
一种转发装置及流量输出接口调节方法与流程

1.本发明涉及网络通信技术领域,涉及一种转发装置及流量输出接口调节方法。


背景技术:

2.实际网络应用中,因网络环境复杂、网络不稳定、特定流量太大等因素,导致流量超过单接口的带宽,目前现有解决方案一般是将多个接口绑定成一个逻辑接口eth-trunk如图1所示,或者通过ecmp的方式将输出接口为单接口的扩充为多接口如图2所示,从而增加对应流量输出接口的带宽。流量转发时,根据hash因子算出一个hash值,再根据hash值选择对应的物理接口转发出去,多个物理接口之间实现负载分担。
3.eth-trunk简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
4.eth-trunk主要有以下三个优势:增加带宽,eth-trunk接口的最大带宽可以达到各成员接口带宽之和;提高可靠性,当某条活动链路出现故障时,流量可以切换到其他可用的成员链路上,从而提高eth-trunk接口的可靠性;负载分担,在一个链路聚合组内,可以实现在各成员活动链路上的负载分担。
5.等价多路径路由简称ecmp(equal-costmultipathrouting),应用于多条不同链路到达同一目的地址的网络环境中。如果使用传统的路由技术,发往该目的地址的数据包只能利用其中的一条链路,其它链路处于备份状态或无效状态,并且在动态路由环境下相互的切换需要一定时间,而等价多路径路由协议可以在该网络环境下同时使用多条链路,不仅增加了传输带宽,并且可以无时延无丢包地备份失效链路的数据传输。
6.在使用eth-trunk或者ecmp技术转发时,会根据当前用户配置的负载分担算法,在流量中提取参与hash计算的关键字段(即hash因子),计算得出hash值,再根据hash值选择对应物理输出接口将流量转发出去。
7.hash因子一般包括:l源ipl源ip+目的ipl源ip+目的ip+源接口+目的接口l源mac+目的machash算法一般包括:l异或(xor)lcrclcrc+扰码随着网络的不断壮大,网络环境越来越复杂,流量也越来越大,用户对重要业务的保护要求也越来越高。在eth-trunk或者ecmp场景下,一旦设备出现hash不均导致输出接口超带宽,引起重要业务流量被丢弃,就会导致业务受损。
8.目前hash值与输出接口是固定对应的,可能存在所有流量或者大部分流量通过hash算法算出来的hash值对应到同一个接口上,这样导致该接口在特定场景下出现超带宽的可能,从而使得正常业务受损。


技术实现要素:

9.针对上述提出的问题,本发明提出了一种转发装置及流量输出接口调节方法,增加成员接口带宽使用率的计算以及每个hash值对应的带宽使用率的计算,根据计算出的带宽使用率,动态调整hash值对应的输出接口,满足遇到hash不均异常情况时业务不受影响,有效的保护在hash不均的情况下业务不受影响。
10.本技术通过以下技术方案实现上述效果:本技术提供一种流量输出接口调节方法,所述调节方法包括:创建索引表,所述索引表中包含index值以及各index值分配的成员输出接口;根据流量目的ip地址,获取下一跳索引类型,根据所述下一跳索引类型得到当前流量对应的索引表;根据当前流量hash值计算得到index值,根据所述index值得到当前流量的成员输出接口,将当前流量从该成员输出接口输出;检测每个成员输出接口的带宽使用率,当其中一个成员输出接口超过预设带宽时,查询该成员输出接口对应的索引表,选择合适index值,修改该index值对应的成员输出接口,将当前流量引流至修改后的成员输出接口输出。
11.进一步的,所述创建索引表具体为:在创建eth-trunk或者生成ecmp路由时创建索引表,所述索引表中包含以下字段:type值、key值以及index值表,所述type值为索引类型,所述key值指向index值表,所述index值表中包含index值,每个index值均分配一个输出接口。
12.进一步的,所述根据所述下一跳索引类型得到当前流量对应的索引表,根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口具体为:根据目的ip查找路由获取下一跳索引类型,所述下一跳索引类型包含eth-trunk以及ecmp,如果下一跳索引类型为eth-trunk,则type值等于m,key值为trunk-id,查找到对应的index值表;如果下一跳索引类型为ecmp,则type值等于n,key值等于ecmp索引值,查找到对应的index值表;根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口。
13.更进一步的,所述根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口具体为:根据设备配置负载分担算法提取当前流量的hash因子,计算出hash值,再使用hash值对1024取余得到index值,查询index值表得到该index值对应的输出成员接口。
14.作为本技术的一种优选实施方案,所述当其中一个成员输出接口超带宽时,查询该成员输出接口对应的index值表,选择合适的index值,修改该index值对应的成员输出接口具体为:查询该超带宽的成员输出接口对应的全部index值,得到每个index值对应的带宽
使用值;将所述超带宽的成员输出接口的使用带宽减去当前成员输出接口中使用的最小带宽值再除于2,得到成员输出接口的设定输出带宽,选择对应的带宽使用值与所述设定输出带宽接近的index值作为合适的index值;将该合适的index值对应的成员输出接口修改为带宽使用率符合预设条件的输出接口。
15.本技术还提供一种转发装置,所述转发装置包含:索引表创建模块,所述索引表创建模块用于创建索引表,所述索引表中包含index值以及各index值分配的成员输出接口;索引表查询模块,所述索引表查询模块根据流量目的ip地址,获取下一跳索引类型,根据所述下一跳索引类型得到当前流量对应的索引表,并根据所述index值得到当前流量的成员输出接口;index值计算模块,所述index值计算模块根据hash值计算得到index值;流量输出模块,所述流量输出模块将当前流量从该成员输出接口输出;输出接口调节模块,所述输出接口调节模块检测每个成员输出接口的带宽使用率,当其中一个成员输出接口超过预设带宽时,查询该成员输出接口对应的索引表,选择合适index值,修改该index值对应的成员输出接口,将当前流量引流至修改后的成员输出接口输出。
16.进一步的,索引表创建模块在创建eth-trunk或者生成ecmp路由时创建索引表,所述索引表中包含以下字段:type值、key值以及index值表,所述type值为索引类型,所述key值指向index值表,所述index值表中包含index值和输出接口每个index值均分配一个输出接口。
17.进一步的,所述根据所述下一跳索引类型得到当前流量对应的索引表,根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口具体为:索引表查询模块根据目的ip查找路由获取下一跳索引类型,所述下一跳索引类型包含eth-trunk以及ecmp,如果下一跳索引类型为eth-trunk,则type值等于m,key值为trunk-id,查找到对应的index值表;如果下一跳索引类型为ecmp,则type值等于n,key值等于ecmp索引值,查找到对应的index值表;根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口。
18.更进一步的,所述index值计算模块根据设备配置负载分担算法提取当前流量的hash因子,计算出hash值,再使用hash值对1024取余得到index值,查询index值表该index值找到对应的输出成员接口。
19.作为本技术的一种优选实施方案,所述当其中一个成员输出接口超带宽时,查询该成员输出接口对应的index值表,选择合适的index值,修改该index值对应的成员输出接口具体为:查询该超带宽的成员输出接口对应的全部index值,得到每个index值对应的带宽使用值;将所述超带宽的成员输出接口的使用带宽减去当前成员输出接口中使用的最小
带宽值再除于2,得到成员输出接口的设定输出带宽,选择对应的带宽使用值与所述设定输出带宽接近的index值作为合适的index值;将该合适的index值对应的成员输出接口修改为带宽使用率符合预设条件的输出接口。
20.有益效果本技术技术方案根据每个eth-trunk接口或者每条ecmp路由创建一个索引表,此索引表中包含索引表类型type、key以及0~1023个index值,且每个index值对应分配一个成员接口,同时设备实时计算对应eth-trunk或者ecmp成员接口的带宽使用率以及index值对应的带宽使用率,一旦发现有成员接口出现超带宽的情况,就根据每个index值对应的带宽使用率动态调整index值对应的成员输出接口,将部分本来index值对应的超带宽的成员口调整为带宽充足的成员口。此方案可以有效的保护在hash不均的情况下业务不受影响。
附图说明
21.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图;图1为本发明所述的eth-trunk转发网络示意图;图2为本发明所述的ecmp转发网络示意图;图3为本发明所述的索引表的创建简易流程示意图;图4为本发明所述的索引表的结构示意图;图5为本发明所述的index值表的修改处理流程示意图;图6为本发明所述的index值表的修改结构示意图;图7为本发明所述的流量转发处理流程示意图。
具体实施方式
22.为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
23.本发明提供了一种流量输出接口调节方法,该方法的基本思想可概括为设备根据每个eth-trunk接口或者每条ecmp路由创建一个索引表,此索引表中包含索引表类型type、key以及0~1023个index值,且每个index值对应分配一个成员口,同时设备实时计算对应eth-trunk或者ecmp成员口的带宽使用率以及index值对应的带宽使用率,一旦发现有成员接口出现超带宽的情况,则根据每个index值对应的带宽使用率动态调整index值对应的成员输出接口,将部分本来index值对应的超带宽的成员口调整为带宽充足的成员接口。
24.本技术的具体实施步骤如下:实施例1本实施例为一种流量输出接口调节方法,所述调节方法包括:创建索引表,所述索引表中包含index值以及各index值分配的成员输出接口。所述创建索引表具体为:
在创建eth-trunk或者生成ecmp路由时创建索引表,所述索引表中包含以下字段:type值、key值以及index值表,所述type值为索引类型,所述key值指向index值表,所述index值表中包含index值和输出接口每个index值均分配一个输出接口。
25.索引表的创建简易流程如图3,设备上创建eth-trunk或者生成了ecmp路由,则相对应的创建一张索引表,此索引表中包含索引表类型type、key以及0~1023个index值,且每个index值按照权重比例对应分配一个成员接口;索引表的结构组成如图4。其中索引表的各个字段解释如下:type:1,表示eth-trunk索引表;2,表示ecmp索引表key:type等于1时为trunk-id,type等于2时为ecmp索引0~1023:固定的index值a/b:成员接口。
26.在常规转发业务流程中,根据流量目的ip地址,获取下一跳索引类型,根据所述下一跳索引类型得到当前流量对应的索引表;根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口,将当前流量从该成员输出接口输出。
27.根据目的ip查找路由获取下一跳索引类型,所述下一跳索引类型包含eth-trunk以及ecmp,如果下一跳索引类型为eth-trunk,则type值等于m,key值为trunk-id,查找到对应的index值表;如果下一跳索引类型为ecmp,则type值等于n,key值等于ecmp索引值,查找到对应的index值表;根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口。
28.如图7所示,流量查找索引表的转发接口,流量进入设备根据目的ip查找路由获取下一跳索引类型。本实施例中,如果下一跳索引类型为eth-trunk,则根据type等于1,key等于trunk-id查找到对应的索引表;如果下一跳索引类型为ecmp,则根据type等于2,key等于ecmp索引查找到对应的index值表。
29.在本实施例中,根据设备配置的hash因子提取报文相关字段,计算出hash值,再使用hash值对1024取余得到index值,在索引表中,根据计算出来的index值找到对应的成员接口,将报文从此成员接口转发出去。
30.网络设备上创建定时器,定时扫描计算成员接口带宽使用率,查看是否存在超带宽的情况出现,一旦出现了成员接口超带宽,查询该成员输出接口对应的index值表,选择合适index值,修改该index值对应的成员输出接口,将当前流量引流至修改后的成员输出接口输出。。如果没有找到合适的index值则通过日志告警,图5为index值表的修改处理流程示意图,具体实现方式如下:在其中一个成员输出接口超带宽时,修改该index值的成员输出接口,将当前流量引流至修改后的成员输出接口输出。作为本技术的一种优选实施方案,该过程具体为:查询该超带宽的成员输出接口对应的全部index值,得到每个index值对应的带宽使用值;将所述超带宽的成员输出接口的使用带宽减去当前成员输出接口中使用的最小带宽值再除于2,得到成员输出接口的设定输出带宽,选择对应的带宽使用值与所述设定输出带宽接近的index值作为合适的index值。
31.如图5所示,将所述超带宽的成员输出接口的使用带宽减去当前成员接口中使用
的最小带宽值再除于2,得到成员输出接口的设定输出带宽,选择与所述设定输出带宽接近的index值作为合适的index值;本实施例中的转发设备包含成员接口a和b两个,故选择合适的index值的过程如下:假设成员接口a和b为10g成员输出接口,a接口使用率达到100%,b接口使用率50%,则计算出最优调整带宽值2.5g(a接口使用带宽减去b接口使用带宽再除以2),遍历对应成员输出接口为a的index值,并计算出每个index值的带宽使用情况,选择最接近2.5g的index值,将对应成员输出接口修改成b。
32.index值表的修改结构示意图如图6,假设成员接口a和b为10g接口,a接口使用率达到100%,b接口使用率50%,选择合适的index值4对应的流量为2g,则动态修改index值4对应的成员接口由a变为b,从而使得a接口的带宽使用率变为80%,b接口的带宽使用率变为70%,避免了a接口超带宽导致业务受损。
33.实施例2本实施例为一种转发装置,所述转发装置包含:索引表创建模块,所述索引表创建模块用于创建索引表,所述索引表中包含index值以及各index值分配的成员输出接口;索引表创建模块在创建eth-trunk或者生成ecmp路由时创建索引表,如图3、图4所示,所述索引表中包含以下字段:type值、key值以及index值表,所述type值为索引类型,所述key值指向index值表,所述index值表中包含index值和输出接口每个index值均分配一个输出接口。
34.索引表查询模块,所述索引表查询模块根据流量目的ip地址,获取下一跳索引类型,根据所述下一跳索引类型得到当前流量对应的索引表,并根据所述index值得到当前流量的成员输出接口。
35.在本实施例中,索引表查询模块根据目的ip查找路由获取下一跳索引类型,所述下一跳索引类型包含eth-trunk以及ecmp,如果下一跳索引类型为eth-trunk,则type值等于m,key值为trunk-id,查找到对应的index值表;如果下一跳索引类型为ecmp,则type值等于n,key值等于ecmp索引值,查找到对应的index值表;根据hash值计算得到index值,根据所述index值得到当前流量的成员输出接口。
36.index值计算模块,所述index值计算模块根据hash值计算得到index值;本实施例中的所述index值计算模块根据设备配置的hash因子提取报文相关字段,计算出hash值,再使用hash值对1024取余得到index值,查询index值表该index值找到对应的输出成员接口。
37.输出接口调节模块,所述输出接口调节模块检测每个成员输出接口的带宽使用率,当其中一个成员输出接口超过预设带宽时,查询该成员输出接口对应的索引表,选择合适index值,修改该index值对应的成员输出接口,将当前流量引流至修改后的成员输出接口输出。
38.当其中一个成员输出接口超带宽时,查询该超带宽的成员输出接口对应的全部index值,得到每个index值对应的带宽使用值;将所述超带宽的成员输出接口的使用带宽减去当前成员输出接口中使用的最小带宽值再除于2,得到成员输出接口的设定输出带宽,选择对应的带宽使用值与所述设定输出带宽接近的index值作为合适的index值;将该合适的index值对应的成员输出接口修改为带宽使用率符合预设条件的输出
接口。
39.流量输出模块,所述流量输出模块将当前流量从该成员输出接口输出。
40.综上所述,最终通过基于带宽使用率动态调整流量输出接口的方法,可以有效避免流量hash不均导致超接口带宽丢包问题,保障了业务的正常运行。
41.以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施方式而已,并不用于限定本技术的保护范围,凡在本技术的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1