实现数据流硬件转发的方法和系统以及网络路由设备技术方案

技术编号:3543359 阅读:199 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种实现数据流硬件转发的方法和系统,还公开了一种网络路由设备。该方法包括:针对接口板一出接口,刷新硬件转发芯片的第一转发表并下发第二转发表,以及对于需要通过已配置的出接口输出的业务报文,执行以下步骤:硬件转发芯片查找第一转发表获得刷新的路由下一跳,将业务报文通过连接接口板CPU的接口发送给接口板CPU进行处理;接口板CPU处理后的业务报文触发硬件转发芯片查找第二转发表获得真实下一跳,通过该出接口对处理后的业务报文进行三层硬件转发。通过本发明专利技术,实现硬件转发芯片将数据流转发到接口板CPU进行业务处理,且处理完成后能够重新通过硬件转发芯片进行三层转发;同时,配置简便,且提高了转发性能。

【技术实现步骤摘要】

本专利技术涉及网络通信
,尤其涉及一种实现数据流硬件转发的方 法及系统,还涉及一种网络路由设备。
技术介绍
目前的网络路由设备(比如交换机、路由器)大多采用分布式结构,通 过设置在各个接口板的硬件转发芯片进行数据流的转发,以高效的完成IP层的转发任务;其中,常用的硬件转发芯片包括专用的ASIC (Application Specific Integrated Circuits,专用集成电路)以及NP (Network Processing,网络处理器)。虽然硬件转发芯片的采用能够提高IP层数据流转发的性能,但硬件 转发芯片对于IP层以上的业务,例如NAT (Network Address Translation, 网络地址转换)、NAT-PT (Network Address Translation-Protocol ,网络地址协议转换)、防火墙业务等,却无能为力。随着网络业务的日益丰富和路由器、交换机功能的不断升级,被要 求在路由器、交换机中进行处理的业务越来越多;为了满足上述要求, 网络设备中必须相应配置专门的业务处理引擎,以实现对数据流的业务 处理。其中,业务处理引擎最简单有效的实现方式是在接口板上配置专 门进行业务处理的CPU;该CPU可以为多核CPU,或者,是一个能够实 现控制功能和业务处理功能的芯片。在现有技术中,基于上述接口板CPU架构实现数据流转发的方案主 要有以下两种第一种,是利用硬件转发芯片的ACL (Access Control List,访问控 制列表)重定向技术,将符合条件的数据流重定向到接口板CPU,并在 CPU处理完成后重新发回硬件芯片进行三层的硬件路由转发;'其原理如 图IA所示;这种方案的缺陷在于,需要在接口板的每一个入接口处进行ACL重定向配置(事实上,由于支持出接口 ACL重定向的芯片不多,同时出接 口 ACL重定向存在报文重复上送CPU的问题,因此现有ACL重定向一 般都在入接口处进行配置)。由于路由器/交换机支持大量的入接口,同 时设备管理人员也无从了解需要进行CPU处理的业务从哪一个入接口接 入,因此必须在每一个入接口都进行ACL配置,该项配置的工作量显然 非常庞大;特别是,每一个入接口下都固定存在一些默认的ACL原始配 置,当额外配置一些特殊的ACL进行流分类和重定向时,在硬件转发芯 片只支持一级ACL的情况下必然会影响到该入接口的原有ACL配置, 导致重定向失败甚至其它更为严重的后果。第二种,是通过修改路由转发表,将发往接口板出接口的数据流转 发到CPU,由CPU在完成业务处理后根据软件路由表找到该出接口,由 出接口所在接口板的硬件转发芯片进行二层的封装和转发;其原理如图 1B所示;这种方案虽然无需在大量的入接口处配置ACL,但却需要CPU参与 到数据流转发中来,降低了数据流硬件转发的效率。这是由于接口板硬 件转发芯片的路由转发表信息已经被修改,如果继续由硬件转发芯片来 进行三层路由转发,在目的IP没有变化的情况下,数据流会被重复上送 CPU,导致陷入死循环;因此,必须由转发表项没有被修改的CPU执行 路由的软件查找,然后由硬件转发芯片执行二层硬件转发;CPU参与到数据流转发还导致了成本和复杂度的提高。具体而言, 由于CPU需要完成出接口路由査找,这就意味着该CPU必须保存有相 应接口板的路由表项信息; 一种方案是在全部接口板上都设置CPU并记 录本接口板的路由信息,这样显然不利于成本的降低,也不利于对旧有 未设置CPU的接口板的再利用;另一种方案是将各个接口板的路由信息 集中到一个或几个接口板的CPU上,但想要支持这一功能,.上述CPU 必须同步全局的出接口二层信息,因此存在一个复杂的全局接口信息同 歩过程。综上所述,现有技术在数据流硬件转发过程中面临这样一个难题,即如何简便的实现从硬件转发芯片到接口板CPU的数据流发送,并在 CPU处理完成后重新由硬件转发芯片进行三层硬件转发。
技术实现思路
本专利技术的实施例旨在提供能够克服上述现有技术缺陷的数据流硬件转 发方案,以简便的实现数据流的硬件三层转发。为实现上述目的,本专利技术的实施例提供了一种实现数据流硬件转发的方 法,包括针对接口板一出接口,对该接口板硬件转发芯片执行以下步骤刷 新该接口板硬件转发芯片的第一转发表,其中,对于真实下一跳为该出接口 的全部路由,其下一跳被修改为连接接口板CPU的接口;以及,向该硬件 转发芯片下发第二转发表,该第二转发表记录第一转发表中被修改路由的真 实下一跳;对于需要通过该出接口输出的业务报文,执行以下步骤步骤Sl:该硬件转发芯片査找第一转发表获得刷新的路由下一跳,将业务报文通过连接接口板CPU的接口发送给接口板CPU进行处理;步骤S2:接口板CPU处理后的业务报文触发硬件转发芯片查找第二转发表获得真实下一跳,通过该出接口对处理后的业务报文迸行三层硬件转发。本专利技术的实施例还提供了一种实现数据流硬件转发的系统,用于对 接口板出接口数据流进行转发控制,包括接口板硬件转发芯片和接口板CPU,其中,该接口板硬件转发芯片设有转发控制单元,接口板CPU用 于对业务报文加以处理并向该硬件转发芯片返回处理后的业务报文;还包括出接口配置单元,用于针对接口板出接口,刷新所述硬件转发芯片的第一转发表以及向硬件转发芯片下发第二转发表;第一转发表,对于真实下一跳为接口板一出接口的全部路由,其下 一跳被修改为连接接口板CPU的接口;第二转发表,用于记录所述第一转发表中被修改路由的真实下一跳; 设置在硬件转发芯片中的第一转发表查询单元,与该第一转发表连接,用于査找第一转发表,对于需要通过该出接口输出的业务报文获得 刷新的路由下一跳,触发转发控制单元将该业务报文通过连接接口板 CPU的接口发送给接口板CPU进行处理;设置在硬件转发芯片中的第二转发表査询单元,与该第二转发表连 接,由所述处理后的业务报文触发,用于查找第二转发表获得真实下一 跳,并触发转发控制单元通过该出接口对处理后的业务报文进行三层硬 件转发。本专利技术的实施例还提供了一种网络路由设备,其至少一个接口板设 有如上所述的实现数据流硬件转发的系统。由上述技术方案可知,本专利技术的实施例通过在硬件转发芯片中维护两份 转发表,对于需要通过已配置的出接口输出的业务报文,首次查询得到接口 板CPU路由下一跳,二次査询得到真实路由下一跳,具有以下有益效果1、 实现硬件转发芯片将数据流转发到接口板CPU进行业务处理,且处 理完成后能够重新通过硬件转发芯片进行三层转发;2、 配置简便,无需在接口下大量配置ACL;3、 CPU不参与转发,提高了转发性能。通过以下参照附图对优选实施例的说明,本专利技术的上述以及其它目的、 特征和优点将更加明显。附图说明图1A为现有技术中利用ACL重定向技术实现数据流硬件转发方案的原 理示意图;图IB为现有技术中通过修改路由转发表实现数据流转发方案的原理示 意图;图2为本专利技术提供的实现数据流硬件转发的方法一实施例的流程图; 图3A为本专利技术提供的实现数据流硬件转发的方法一具体实施例的配置 流程图;图3B为本专利技术提供的实现数据流硬件转发的方法一具体实施例的处理 流程示意图;图4为一 NAT网络架构的示意图;图5A为本专利技术提供的实现数据流本文档来自技高网
...

【技术保护点】
一种实现数据流硬件转发的方法,其特征在于,包括针对接口板一出接口,对所述接口板硬件转发芯片执行以下步骤:刷新所述硬件转发芯片的第一转发表,其中,对于真实下一跳为所述出接口的全部路由,其下一跳被修改为连接接口板CPU的接口;以及,向所述硬件转发芯片下发第二转发表,所述第二转发表记录所述第一转发表中被修改路由的真实下一跳; 对于需要通过所述出接口输出的业务报文,执行以下步骤: 步骤S1:所述硬件转发芯片查找第一转发表获得刷新的路由下一跳,将所述业务报文通过连接接口板C PU的接口发送给接口板CPU进行处理; 步骤S2:所述接口板CPU处理后的业务报文触发所述硬件转发芯片查找第二转发表获得真实下一跳,通过所述出接口对所述处理后的业务报文进行三层硬件转发。

【技术特征摘要】
1.一种实现数据流硬件转发的方法,其特征在于,包括针对接口板一出接口,对所述接口板硬件转发芯片执行以下步骤刷新所述硬件转发芯片的第一转发表,其中,对于真实下一跳为所述出接口的全部路由,其下一跳被修改为连接接口板CPU的接口;以及,向所述硬件转发芯片下发第二转发表,所述第二转发表记录所述第一转发表中被修改路由的真实下一跳;对于需要通过所述出接口输出的业务报文,执行以下步骤步骤S1所述硬件转发芯片查找第一转发表获得刷新的路由下一跳,将所述业务报文通过连接接口板CPU的接口发送给接口板CPU进行处理;步骤S2所述接口板CPU处理后的业务报文触发所述硬件转发芯片查找第二转发表获得真实下一跳,通过所述出接口对所述处理后的业务报文进行三层硬件转发。2. 根据权利要求l所述的实现数据流硬件转发的方法,其特征在于, 所述第二转发表为多协议标签交换MPLS标签转发表;所述对接口板硬件转发芯片执行的步骤还包括为每一真实下一跳 分配一预留MPLS标签并记录在所述第二转发表内,该MPLS标签对应 的下一跳为真实下一跳;所述步骤SI还包括所述硬件转发芯片将为相应真实下一跳预留的 MPLS标签压入所述业务报文;所述步骤S2中硬件转发芯片査找第二转发表获得真实下一跳具体 为压入MPLS标签的业务报文触发所述硬件转发芯片査找所述MPLS 标签转发表,以及,在所述MPLS标签转发表中获得真实下一跳后,从 所述处理后的业务报文中剥离所述MPLS标签。3. 根据权利要求1所述的实现数据流硬件转发的方法,其特征在于, 所述第二转发表为预留VPN的路由转发表;所述对接口銜硬件转发芯片 执行的步骤还包括设置第一转发表内对应所述出接口的修改后路由出口 VLAN为第二 VLAN,并为所述硬件转发芯片连接接口板CPU的接口设置一个第二 VLAN子接口;将所述第二 VLAN子接口与所述预留VPN绑定;以及,设置所述预留VPN的路由转发表内对应所述出接口的真实路 由出口 VLAN为第一 VLAN。4. 根据权利要求1所述的实现数据流硬件转发的方法,其特征在于, 所述第二转发表为预留VPN的路由转发表;所述对接口板硬件转发芯片 执行的步骤还包括设置第一转发表内对应所述出接口的修改后路由的出口 VLAN为第 二 VLAN,创建第二 VLAN的虚接口并配置所述硬件转发芯片连接接口 板CPU的接口属于所述第二 VLAN;将所述第二 VLAN虚接口与所述预留VPN绑定;以及,设置为预留VPN的路由转发表内对应所述出接口的真实路由 出口 VLAN为第一 VLAN。5. 根据权利要求1到4任一所述的实现数据流硬件转发的方法,其 特征在于,还包括对于不需要通过所述出接口输出的报文,所述硬件 转发芯片査找第一转发表获得真实路由下一跳并直接进行三层硬件转 发。6. 根据权利要求1到4任一所述的实现数据流硬件转发的方法,其 特征在于,当指向所述出接口的路由发生变化时,触发更新所述第一转 发表和第二转发表。7. 根据权利要求1到4任一所述的实现数据流硬件转发的方法,其 特征在于,对所述出接口进行反向配置,包括对于CPU处理后发生地址变换的业务,在硬件转发芯片的第一转发 表中配置变换前地址的路由,其下一跳为连接接口板CPU的接口;对于CPU处理前后不发生地址变换的业务,通过ACL重定向完成 数据流到接口板CPU的处理。8. —种实现数据流硬件转发的系统,用于对接口板出接口数据流进行转发控制,包括接口板硬件转发芯片和接口板CPU,其中,所述接口 板硬件转发芯片设有转发控制单元,接口板CPU用于对业务报文加以处 理并向所述硬件转发芯片返回处理后的业务报文;其特征在...

【专利技术属性】
技术研发人员:卢胜文
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:86[中国|杭州]

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

1