一种基于网络前缀切分的多路径报文转发方法技术

技术编号:29497245 阅读:17 留言:0更新日期:2021-07-30 19:10
本发明专利技术公开了一种基于网络前缀切分的多路径报文转发方法,目的是解决现有多路径报文转发网络负载不均衡的问题。技术方案是修改交换机的控制软件,在路由表管理模块中添加前缀切分子模块。路由交换设备中路由协议软件、路由表管理模块、转发表下发模块、IP转发引擎并行工作,完成多路径报文转发。路由协议软件生成路由表项,路由表计算子模块进行路由计算,前缀切分子模块进行前缀切分,转发表下发模块将切分后的IP转发表项下发到硬件转发表,IP转发引擎转发报文。前缀切分子模块将IP路由表项中的目的网络前缀切分成多个更细粒度的目的网络前缀,根据一条IP路由表项产生多条IP转发表项,实现了IP报文的多路径转发,达到了负载均衡的效果。

【技术实现步骤摘要】
一种基于网络前缀切分的多路径报文转发方法
本专利技术涉及计算机网络通信领域,尤其涉及一种基于网络前缀切分的多路径报文转发方法。
技术介绍
传统路由器的报文处理,是由控制平面形成的路由表、转发平面形成的转发表和ACL(AccessControlList,访问控制列表)策略表共同决策完成报文分组的转发。一般情况下,路由表与转发表是一致的。在多路径路由情况下,策略表通过限定源地址分布实现分流,因此转发过程中需要完成两次查表(查转发表与ACL策略表)才能决定不同报文的转发出口。然而两次查表会严重影响转发性能。传统多路径转发方法可以分为主备模式和并发模式。主备模式是指路由协议从学习到的多路径中选择一个作为主要路径,并下发到转发表中。当主要路径出现故障,可以迅速将备用路径下发到转发表,提高路由协议的可靠性,但其本质依然是提供单路径路由服务。并发模式是指转发表中存在多路径且都可用作转发路径,有利于提高网络吞吐量。并发模式的多路径路由相关研究可以分为逐跳路由和段路由。段路由是一种基于源路由的隧道技术,通过将数据转发路径信息保存在报文头部以控制包的路由。由于报文中包含了路径转发信息,可以根据需要控制报文沿任何路径转发,具有极强服务路径定制能力。多路径段路由生成源、目的对间的最优路径集合,在源节点为流量实现多路径转发。逐跳路由是指每个交换机为报文决定下一跳的转发出口。目前主要的研究方法可以分为分布式路由算法如MPA(MultiplePathAlgorithm)、MDVA(MultipathDistanceVectorAlgorithm)与多路径负载均衡转发方法。ECMP(EqualCostMulti-Path,等价多路径)是最常见的多路径负载均衡转发方法,通过对报文头进行哈希运算,将数据流映射到不同的转发出口,并以随机化方法实现流的调度,然而由于非均匀流量在不同路径间的非均匀分布,该方案可能导致严重的网络性能降低。在ECMP的基础上,有很多研究工作采用伪随机的方法在多路径之间实现流量感知的负载均衡转发。它们以主动发送探针报文或在报文上搭载负载信息等方式收集全局网络状态信息,或通过局部队列长度感知局部网络状态,从而实现流量感知的负载均衡转发。主动探测的方法主要面临占用网络带宽资源和感知时延的代价问题,而报文搭载负载信息的方法面临网络性能下降和数据隐私性的问题,且目前提出的大多数流量感知方法都需要可编程的交换机硬件,增加了设备部署的成本。也有一些基于集中式思想的负载均衡转发方法,通过在网络中部署集中控制器收集网络状态信息并为多路径转发做决策。但集中控制器与交换机之间的控制环路延时是毫秒级,难以应对突发流量并且会降低网络性能,导致端到端时延变大,降低网络用户访问速率。人工策略约束也是园区网络中常用的多路径转发的方法。网络管理员通过配置ACL策略表区分去往相同目的网段但源地址不同的流量,实现多路径转发。但随着网络规模不断扩大,人工配置具有较高的复杂性,且误配置可能导致网络瘫痪。另外,路由器在转发流量时需要完成两次查表才能实现选路,在高带宽网络环境中会限制网络性能。传统多路径路由转发需要路由器或交换机采用支持多路径的硬件转发表,例如,对每一个网络地址前缀,需要能够设置多条可选的转发表项,每个转发表项对应一个不同的网络接口。当转发报文时,可以按照一定规则选择不同的网络接口进行转发,从而有助于实现网络流量负载均衡以及提高网络的可靠性。不同的选择规则具有不同的复杂性,并为网络通信性能带来不同的影响。当并发使用多个网络接口同时转发时,将带来网络报文的乱序问题,可能导致报文重传,造成网络带宽资源浪费,增加用户的端到端延迟增加和速率下降。目前,传统的商用交换机设备如图1所示,自上而下包含控制软件和转发硬件。控制软件包含路由表管理模块、转发表下发模块、IP路由表和路由协议软件,路由表管理模块包含路由表计算子模块,路由协议软件包括BGP、OSPF、ISIS和RIP互联网路由协议。转发硬件包含IP转发引擎、硬件转发表和接口。接口由接口入队列和接口出队列组成,图1中为方便表示报文转发过程,将接口入队列和接口出队列分开表示,当接口从外部接收数据时,接口入队列接收数据;当接口向外部发送数据时,接口出队列发送数据。路由协议软件根据协议交互报文计算路由表项(每个表项包含路由协议类型、目的网络前缀、下一跳和度量值四个域),一般会安装多种路由协议软件。其中下一跳指匹配到该路由表项的报文到达的下一个接口的IP地址,度量值指该路由表项根据路径长度、路径带宽、路径跳数得到的权衡到达目的地址的距离值,用来帮助路由表管理模块在去往相同目的网络前缀的路由表项中选择最优的路由表项,其中最优的路由表项即度量值最小的路由表项。路由协议软件将得到的路由表项传递给路由表管理模块中的路由表计算子模块。路由表计算子模块从路由协议软件获取路由表项,路由表计算子模块读取路由表项中的下一跳域,搜索转发硬件中所有接口的IP地址。路由表计算子模块筛选得到接口的IP地址与路由表项的下一跳域在同一个网段的接口,路由表计算子模块将这个接口作为IP路由表项的出接口域值,与接收到的路由表项拼接生成IP路由表项(每个表项包含路由协议类型、目的网络前缀、下一跳、度量值和出接口五个域)存储在IP路由表中,路由协议类型、目的网络前缀、下一跳和度量值与路由表项中的一样,出接口域表示匹配到该路由表项的报文的出接口,一般情况下出接口域仅存在一个出接口值。路由表计算子模块提取出IP路由表项中目的网络前缀域和出接口域的值,生成IP转发表项,传递给转发表下发模块。特殊地,在配置开启等价多路径的情况下,具有相同目的网络前缀和相同度量值的路由表项,会作为等价多路径路由。等价多路径路由的IP路由表项中下一跳域和出接口域允许存在多个值。转发表下发模块接收来自路由表计算子模块发送的IP转发表项,下发到硬件转发表。硬件转发表存贮IP转发表项。转发硬件中接口入队列和接口出队列负责存放报文。IP转发引擎从接口入队列提取出报文头部中的目的IP地址,与硬件转发表中每个表项中的目的网络前缀执行“与”操作,在硬件转发表中找到“与”操作结果中连续的1的位数最多的表项,提取该表项的出接口域的值,将报文复制到出接口域所对应接口的接口出队列中。传统的商用交换机设备的多路径转发依赖于配置等价多路径。当交换机配置开启等价多路径后,IP转发引擎提取出报文头部中的五元组信息(包括源IP地址、目的IP地址、源端口号、目的端口号和协议类型五个域的值),IP转发引擎通过哈希运算将报文的五元组信息映射到出接口,将报文复制到此出接口的出队列中。但该方法忽略了流的大小,如果发生哈希碰撞(即多条流的哈希运算结果相同),会导致大流的报文从相同的出接口转发,引起网络负载不均衡,网络延迟高。另外,还存在一种人工策略约束的多路径转发方法。网络管理员人工配置ACL(AccessControlList)策略表,ACL策略表的表项包含三个域(分别是源IP地址、目的IP地址和转发出接口)。IP转发引擎提取出报文头部中的源IP地址和目的IP地址两个域的值,首本文档来自技高网...

【技术保护点】
1.一种基于网络前缀切分的多路径报文转发方法,其特征在于包括以下步骤:/n第一步,修改传统商用交换机的控制软件,在控制软件中添加前缀切分子模块,修改路由表计算子模块、转发表下发模块;/n路由表计算子模块与IP路由表、路由协议软件和前缀切分子模块相连;路由表计算子模块根据路由协议软件发送的路由表项生成IP路由表项,IP路由表项包含路由协议类型、目的网络前缀、下一跳、度量值和出接口五个域,将IP路由表项写入IP路由表,并将IP路由表项发送给前缀切分子模块;/n前缀切分子模块属于路由表管理模块,前缀切分子模块与路由表计算子模块和转发表下发模块相连;前缀切分子模块从路由表计算子模块接收IP路由表项,对IP路由表项中的目的网络前缀进行切分,生成切分后的IP转发表项,将切分后的IP转发表项发送给转发表下发模块;/n转发表下发模块与前缀切分子模块和硬件转发表相连,转发表下发模块从前缀切分子模块接收切分后的IP转发表项,将IP转发表项下发到硬件转发表;/n第二步,路由交换设备运行修改后的控制软件;/n第三步,路由交换设备中路由协议软件、路由表管理模块、转发表下发模块、IP转发引擎并行工作,配合完成多路径报文转发,方法是:路由协议软件按3.1步的流程生成路由表项,并将路由表项传递给路由表管理模块中的路由表计算子模块;同时,路由表管理模块按第3.2步的流程进行路由计算和前缀切分,得到切分后的IP转发表项,将切分后的IP转发表项发送给转发表下发模块;同时,转发表下发模块按第3.3步的流程将IP转发表项下发到硬件转发表;同时,IP转发引擎按第3.4步的流程转发报文;具体方法是:/n3.1,路由协议软件生成路由表项,将路由表项传递给路由表管理模块,方法是:/n3.1.1路由协议软件判定是否从路由交换设备的邻居节点接收到路由协议交互报文,若接收到路由协议交互报文,转3.1.2;若未接收到,转3.1.1继续等待路由协议交互报文;/n3.1.2路由协议软件提取出路由协议交互报文中的路由协议类型、目的网络前缀、下一跳和度量值,生成路由表项;/n3.1.3路由协议软件将路由表项发送给路由表计算子模块,转3.1.1;/n3.2,路由表计算子模块根据路由表项生成IP路由表项,将IP路由表项写入IP路由表,将IP路由表项发送给前缀切分子模块;前缀切分子模块切分IP路由表项的目的网络前缀,生成多条IP转发表项,将IP转发表项发送给转发表下发模块,方法是:/n3.2.1路由表计算子模块判断是否从路由协议软件接收到路由表项,若收到路由表项,令接收的路由表项为Item_new,转3.2.2;若没收到路由表项,转3.2.1继续等待路由表项;/n3.2.2路由表计算子模块根据Item_new生成IP路由表项,得到有出接口域OutInt的IP路由表项Item_new;/n3.2.3路由表计算子模块将IP路由表项Item_new写入IP路由表中;/n3.2.4路由表计算子模块将IP路由表项Item_new发送给前缀切分子模块;/n3.2.5前缀切分子模块接收路由表计算子模块发送的IP路由表项Item_new,对Item_new的目的网络前缀进行切分;令Item_new的目的网络前缀为P,假设P的前缀长度为L;对于IPv4目的网络前缀,有1≤L≤32;对于IPv6目的网络前缀,有1≤L≤128;前缀切分子模块对目的网络前缀P进行切分的方法是:/n3.2.5.1若Item_new的出接口域中仅存在一个出接口值,则不对Item_new进行网络前缀切分,前缀切分子模块使用Item_new的目的网络前缀域和出接口域的值直接生成IP转发表项,发送给转发表下发模块,转3.2.1;否则,Item_new的出接口域中存在多个出接口值,执行3.2.5.2;/n3.2.5.2此时Item_new的出接口域存在多个出接口值,Item_new是等价多路径路由项,若目的网络前缀域的值P的前缀长度L=32或128,则不进行目的网络前缀切分,前缀切分子模块使用Item_new的目的网络前缀域的值和出接口域中随机选择的一个出接口值生成IP转发表项,发送给转发表下发模块,转3.2.1;否则,转3.2.5.3;/n3.2.5.3前缀切分子模块按以下方法切分Item_new的目的网络前缀P:/n3.2.5.3.1若Item_new的出接口域中出接口的数量NInt=2...

【技术特征摘要】
1.一种基于网络前缀切分的多路径报文转发方法,其特征在于包括以下步骤:
第一步,修改传统商用交换机的控制软件,在控制软件中添加前缀切分子模块,修改路由表计算子模块、转发表下发模块;
路由表计算子模块与IP路由表、路由协议软件和前缀切分子模块相连;路由表计算子模块根据路由协议软件发送的路由表项生成IP路由表项,IP路由表项包含路由协议类型、目的网络前缀、下一跳、度量值和出接口五个域,将IP路由表项写入IP路由表,并将IP路由表项发送给前缀切分子模块;
前缀切分子模块属于路由表管理模块,前缀切分子模块与路由表计算子模块和转发表下发模块相连;前缀切分子模块从路由表计算子模块接收IP路由表项,对IP路由表项中的目的网络前缀进行切分,生成切分后的IP转发表项,将切分后的IP转发表项发送给转发表下发模块;
转发表下发模块与前缀切分子模块和硬件转发表相连,转发表下发模块从前缀切分子模块接收切分后的IP转发表项,将IP转发表项下发到硬件转发表;
第二步,路由交换设备运行修改后的控制软件;
第三步,路由交换设备中路由协议软件、路由表管理模块、转发表下发模块、IP转发引擎并行工作,配合完成多路径报文转发,方法是:路由协议软件按3.1步的流程生成路由表项,并将路由表项传递给路由表管理模块中的路由表计算子模块;同时,路由表管理模块按第3.2步的流程进行路由计算和前缀切分,得到切分后的IP转发表项,将切分后的IP转发表项发送给转发表下发模块;同时,转发表下发模块按第3.3步的流程将IP转发表项下发到硬件转发表;同时,IP转发引擎按第3.4步的流程转发报文;具体方法是:
3.1,路由协议软件生成路由表项,将路由表项传递给路由表管理模块,方法是:
3.1.1路由协议软件判定是否从路由交换设备的邻居节点接收到路由协议交互报文,若接收到路由协议交互报文,转3.1.2;若未接收到,转3.1.1继续等待路由协议交互报文;
3.1.2路由协议软件提取出路由协议交互报文中的路由协议类型、目的网络前缀、下一跳和度量值,生成路由表项;
3.1.3路由协议软件将路由表项发送给路由表计算子模块,转3.1.1;
3.2,路由表计算子模块根据路由表项生成IP路由表项,将IP路由表项写入IP路由表,将IP路由表项发送给前缀切分子模块;前缀切分子模块切分IP路由表项的目的网络前缀,生成多条IP转发表项,将IP转发表项发送给转发表下发模块,方法是:
3.2.1路由表计算子模块判断是否从路由协议软件接收到路由表项,若收到路由表项,令接收的路由表项为Item_new,转3.2.2;若没收到路由表项,转3.2.1继续等待路由表项;
3.2.2路由表计算子模块根据Item_new生成IP路由表项,得到有出接口域OutInt的IP路由表项Item_new;
3.2.3路由表计算子模块将IP路由表项Item_new写入IP路由表中;
3.2.4路由表计算子模块将IP路由表项Item_new发送给前缀切分子模块;
3.2.5前缀切分子模块接收路由表计算子模块发送的IP路由表项Item_new,对Item_new的目的网络前缀进行切分;令Item_new的目的网络前缀为P,假设P的前缀长度为L;对于IPv4目的网络前缀,有1≤L≤32;对于IPv6目的网络前缀,有1≤L≤128;前缀切分子模块对目的网络前缀P进行切分的方法是:
3.2.5.1若Item_new的出接口域中仅存在一个出接口值,则不对Item_new进行网络前缀切分,前缀切分子模块使用Item_new的目的网络前缀域和出接口域的值直接生成IP转发表项,发送给转发表下发模块,转3.2.1;否则,Item_new的出接口域中存在多个出接口值,执行3.2.5.2;
3.2.5.2此时Item_new的出接口域存在多个出接口值,Item_new是等价多路径路由项,若目的网络前缀域的值P的前缀长度L=32或128,则不进行目的网络前缀切分,前缀切分子模块使用Item_new的目的网络前缀域的值和出接口域中随机选择的一个出接口值生成IP转发表项,发送给转发表下发模块,转3.2.1;否则,转3.2.5.3;
3.2.5.3前缀切分子模块按以下方法切分Item_new的目的网络前缀P:
3.2.5.3.1若Item_new的出接口域中出接口的数量NInt=2k,k是正整数,转3.2.5.3.2,否则转3.2.5.3.6;
3.2.5.3.2若P为IPv4目的网络前缀,前缀切分子模块取切分长度m1=min{k,(32-L)},转3.2.5.3.3;若P为IPv6目的网络前缀,前缀切分子模块取切分长度m1=min{k,(128-L)},转3.2.5.3.3;
3.2.5.3.3前缀切分子模块切分Item_new的目的网络前缀P,得到目的网络前缀P切分后的个目的网络前缀;
3.2.5.3.4前缀切分子模块将个目的网络前缀一对一随机分配给Item_new的出接口域中的个接口,组成个目的网络前缀和出接口对,转3.2.5.3.5;
3.2.5.3.5前缀切分子模块使用个网络前缀和出接口对,生成条IP转发表项,逐个发送给转发表下发模块,转3.2.1;
3.2.5.3.6此时等价多路径路由项Item_new的出接口域中出接口的数量NInt=2j+r,j、r为正整数,若P为IPv4目的网络前缀,前缀切分子模块取切分长度m2=min{j+1,(32-L)},转3.2.5.3.7;若P为IPv6目的网络前缀,前缀切分子模块取切分长度m2=min{j+1,(128-L)},转3.2.5.3.7;
3.2.5.3.7前缀切分子模块二次切分Item_new的目的网络前缀P,得到个目的网络前缀;
3.2.5.3.8若说明目的网络前缀P切分后的目的网络前缀数量大于Item_new的出接口域中出接口的数量,转3.2.5.3.9,否则转3.2.5.3.13;
3.2.5.3.9前缀切分子模块从个目的网络前缀中任意挑选NInt个目的网络前缀,生成目的网络前缀集合Part1_P,前缀切分子模块将剩余的个目的网络前缀生成目的网络前缀集合Part2_P;
3.2.5.3.10前缀切分子模块将Part1_P中NInt个目的网络前缀一对一随机分配给Item_new的出接口域中的NInt个出接口,组成NInt个目的网络前缀和出接口对;
3.2.5.3.11前缀切分子模块从Item_new的出接口域中NInt个出接口中随机选择个出接口,一对一随机分配给Part2_P中个目的网络前缀,组成个目的网络前缀和出接口对;
3.2.5.3.12前缀切分子模块使用3.2.5.3.10和3.2.5.3.11中得到的目的网络前缀和出接口对,生成条IP转发表项,逐个发送给转发表下发模块,转3.2.1;
3.2.5.3.13此时说明目的网...

【专利技术属性】
技术研发人员:陶静段晨王宝生彭伟邢倩倩郦苏丹王宏莫露莎苏毅
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1