硬件路由表的维护方法及装置与流程

文档序号:20203482发布日期:2020-03-27 20:52阅读:363来源:国知局
硬件路由表的维护方法及装置与流程

本发明涉及通信技术领域,尤指一种硬件路由表的维护方法及装置。



背景技术:

随着网络技术的发展,有些应用场景中需要连接多个网络运营商,网络设备通过外网接口与多个网络运营商连接,通过内网接口与其他网络设备或者服务器连接,为了确保网络服务质量,通常需要做到源进源出。源进源出要求从一个网络运营商对应的外网接口接收到的请求报文,在经过内网的服务器处理后得到响应报文,然后通过同一外网接口发出该响应报文,例如,通过联通对应的外网接口接收请求报文,内网的服务器处理后生成响应报文,再从联通对应的外网接口发出。

目前,网络设备通过流表实现源进源出,从一个网络运营商对应的外网接口接收到请求报文,在流表中记录请求报文的基本信息(例如:源/目的互联网协议(internetprotocol,ip)地址,源/目的端口)等的基础上,还会记录对应会话的外网接口和内网接口的对应关系,在经过内网的服务器处理后得到响应报文,根据之前流表中记录的外网接口和内网接口的对应关系,确定对应的外网口作为响应报文的出接口,从而实现了源进源出。

上述方法基于流表实现源进源出,对于无流表的网络设备无法实现源进源出,对于有流表的网络设备,耗费的性能成本很高。



技术实现要素:

本发明实施例提供一种硬件路由表的维护方法及装置,用以解决现有技术中存在的对于无流表的网络设备无法实现源进源出,对于有流表的网络设备,耗费的性能成本很高的问题。

根据本发明实施例,提供一种硬件路由表的维护方法,应用于网络设备的转发芯片中,所述网络设备还包括cpu,所述网络设备通过不同的外网接口与至少一个网络运营商连接,所述网络设备通过内网接口与其他网络设备或者服务器连接,所述方法包括:

获取通过各个外网接口接收到的报文的源互联网协议ip地址;

在硬件路由表中查找与所述源ip地址匹配的路由;

确定所述路由是否携带反向路由标识;

若确定所述路由未携带所述反向路由标识,则将所述报文转发给所述cpu,以使所述cpu生成与所述报文对应的反向路由,并下发所述反向路由和所述反向路由标识,所述反向路由包括所述源ip地址、所述报文的源端口和源媒体访问控制mac地址;

将所述反向路由和所述反向路由标识添加到所述硬件路由表中。

可选的,还包括:

若确定所述路由携带所述反向路由标识,则在所述路由中添加命中标记,以使所述cpu根据所述命中标记对所述硬件路由表中的各个路由进行老化处理。

根据本发明实施例,还提供一种硬件路由表的维护方法,应用于网络设备的cpu中,所述网络设备还包括转发芯片,所述网络设备通过不同的外网接口与至少一个网络运营商连接、通过内网接口与其他网络设备或者服务器连接,所述方法包括:

接收所述转发芯片转发的报文,所述报文是所述转发芯片获取通过各个外网接口接收到的报文的源ip地址后,在硬件路由表中查找与所述源ip地址匹配的路由,并确定所述路由未携带反向路由标识后发送的;

生成与所述报文对应的反向路由,所述反向路由包括所述源ip地址、所述报文的源端口和源mac地址;

向所述转发芯片下发所述反向路由和所述反向路由标识,以使所述转发芯片将所述反向路由和所述反向路由标识添加到所述硬件路由表中。

可选的,还包括:

在设定时段内监控所述硬件路由表中携带所述反向路由标识的各个路由是否携带命中标识,所述命中标识是所述转发芯片监控到所述硬件路由表中的路由被命中后添加的;

老化处理在所述设定时段内携带所述反向路由标识而未携带所述命中标识的路由。

根据本发明实施例,还提供一种硬件路由表的维护装置,应用于网络设备的转发芯片中,所述网络设备还包括cpu,所述网络设备通过不同的外网接口与至少一个网络运营商连接,所述网络设备通过内网接口与其他网络设备或者服务器连接,所述装置包括:

获取模块,用于获取通过各个外网接口接收到的报文的源互联网协议ip地址;

查找模块,用于在硬件路由表中查找与所述源ip地址匹配的路由;

确定模块,用于确定所述路由是否携带反向路由标识;

转发模块,用于若确定所述路由未携带所述反向路由标识,则将所述报文转发给所述cpu,以使所述cpu生成与所述报文对应的反向路由,并下发所述反向路由和所述反向路由标识,所述反向路由包括所述源ip地址、所述报文的源端口和源媒体访问控制mac地址;

添加模块,用于将所述反向路由和所述反向路由标识添加到所述硬件路由表中。

可选的,所述添加模块,还用于:

若确定所述路由携带所述反向路由标识,则在所述路由中添加命中标记,以使所述cpu根据所述命中标记对所述硬件路由表中的各个路由进行老化处理。

根据本发明实施例,还提供一种硬件路由表的维护装置,应用于网络设备的cpu中,所述网络设备还包括转发芯片,所述网络设备通过不同的外网接口与至少一个网络运营商连接、通过内网接口与其他网络设备或者服务器连接,所述装置包括:

接收模块,用于接收所述转发芯片转发的报文,所述报文是所述转发芯片获取通过各个外网接口接收到的报文的源ip地址后,在硬件路由表中查找与所述源ip地址匹配的路由,并确定所述路由未携带反向路由标识后发送的;

生成模块,用于生成与所述报文对应的反向路由,所述反向路由包括所述源ip地址、所述报文的源端口和源mac地址;

下发模块,用于向所述转发芯片下发所述反向路由和所述反向路由标识,以使所述转发芯片将所述反向路由和所述反向路由标识添加到所述硬件路由表中。

可选的,还包括:

监控模块,用于在设定时段内监控所述硬件路由表中携带所述反向路由标识的各个路由是否携带命中标识,所述命中标识是所述转发芯片监控到所述硬件路由表中的路由被命中后添加的;

处理模块,用于老化处理在所述设定时段内携带所述反向路由标识而未携带所述命中标识的路由。

根据本发明实施例,还提供一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存储的程序时,实现上述的方法步骤。

根据本发明实施例,还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法步骤。

本发明有益效果如下:

本发明实施例提供一种硬件路由表的维护方法及装置,通过获取通过各个外网接口接收到的报文的源ip地址;在硬件路由表中查找与所述源ip地址匹配的路由;确定所述路由是否携带反向路由标识;若确定所述路由未携带所述反向路由标识,则将所述报文转发给所述cpu,以使所述cpu生成与所述报文对应的反向路由,并下发所述反向路由和所述反向路由标识,所述反向路由包括所述源ip地址、所述报文的源端口和源mac地址;将所述反向路由和所述反向路由标识添加到所述硬件路由表中。该方案中,基于网络设备的硬件路由表实现源进源出,网络设备上均会设置硬件路由表,即使该网络设备上无流表,也可以实现源进源出,因此适用范围很广;并且,硬件路由表的性能成本很低,相对于现有技术可以避免流表的性能成本高的问题。

附图说明

图1为本发明实施例中一种以转发芯片为执行主体的硬件路由表的维护方法的流程图;

图2为本发明实施例中一种以cpu为执行主体的硬件路由表的维护方法的流程图;

图3为本发明实施例中一种与图1对应的硬件路由表的维护装置的结构示意图;

图4为本发明实施例中一种与图2对应的硬件路由表的维护装置的结构示意图;

图5为本申请示出的一种电子设备的结构示意图。

具体实施方式

针对现有技术中存在的对于无流表的网络设备无法实现源进源出,对于有流表的网络设备,耗费的性能成本很高的问题,本发明实施例提供一种硬件路由表的维护方法,网络设备包括转发芯片和中央处理器(centralprocessingunit,cpu),网络设备通过不同的外网接口与至少一个网络运营商连接,网络设备通过内网接口与其他网络设备或者服务器连接,下面分别以转发芯片和cpu为执行主体介绍硬件路由表的维护方法。

首先介绍以转发芯片为执行主体的硬件路由表的维护方法,该方法的流程如图1所示,执行步骤如下:

s11:获取通过各个外网接口接收到的报文的源ip地址。

网络设备通过不同的外网接口与各个网络运营商连接,因此,就可以通过各个外网接口接收报文,针对接收到的每一个报文,可以获取报文的源ip地址。

s12:在硬件路由表中查找与源ip地址匹配的路由。

硬件路由表中保存了多个路由,可以从中查找与源ip地址匹配的路由,由于是硬件路由表,查找的速度非常快。

s13:确定路由是否携带反向路由标识。

反向路由标识用来表明该路由是反向路由,是为实现源进源出而设置的路由,反向路由标识可以但不限于用class_id为100来表示。

s14:若确定路由未携带反向路由标识,则将报文转发给cpu,以使cpu生成与报文对应的反向路由,并下发反向路由和反向路由标识。

由于匹配的路由未携带反向路由标识,也就是说该路由并不是反向路由,为了实现源进源出,需要由cpu生成该报文对应的反向路由。

其中,反向路由包括报文的源ip地址、报文的源端口和报文的源媒体访问控制(mediaaccesscontroladdress,mac)地址。

s15:将反向路由和反向路由标识添加到硬件路由表中。

若后续匹配到该反向路由,就可以基于该反向路由转发报文,实现源进源出,无需cpu再次生成反向路由。

该方案中,基于网络设备的硬件路由表实现源进源出,网络设备上均会设置硬件路由表,即使该网络设备上无流表,也可以实现源进源出,因此适用范围很广;并且,硬件路由表的性能成本很低,相对于现有技术可以避免流表的性能成本高的问题。

一种可选的实施方式,上述方法还包括:

若确定路由携带反向路由标识,则在路由中添加命中标记,以使cpu根据命中标记对硬件路由表中的各个路由进行老化处理。

若确定报文匹配的路由携带反向路由标识,可以在路由中添加命中标记,用来表明该路由被匹配上过,cpu可以基于命中标记对这些路由进行老化处理,从而可以更加有效地管理硬件路由表。

其中,命中标识可以但不限于为hit字段置为true,若未被命中,hit字段置为false。

以上介绍了以网络设备的转发芯片为执行主体的硬件路由表的维护方法,下面介绍以cpu为执行主体的硬件路由表的维护方法,该方法的流程如图2所示,包括:

s21:接收转发芯片转发的报文。

其中,报文是转发芯片获取通过各个外网接口接收到的报文的源ip地址后,在硬件路由表中查找与源ip地址匹配的路由,并确定路由未携带反向路由标识后发送的。

s22:生成与报文对应的反向路由。

其中,反向路由包括源ip地址、报文的源端口和源mac地址。

s23:向转发芯片下发反向路由和反向路由标识,以使转发芯片将反向路由和反向路由标识添加到硬件路由表中。

反向路由标识用来表明该路由是反向路由,是为实现源进源出而设置的路由,可以但不限于用class_id为100来表示。

该方案中,基于网络设备的硬件路由表实现源进源出,网络设备上均会设置硬件路由表,即使该网络设备上无流表,也可以实现源进源出,因此适用范围很广;并且,硬件路由表的性能成本很低,相对于现有技术可以避免流表的性能成本高的问题。

一种可选的实施方式,上述方法还包括:

在设定时段内监控硬件路由表中携带反向路由标识的各个路由是否携带命中标识,命中标识是转发芯片监控到硬件路由表中的路由被命中后添加的;

老化处理在设定时段内携带反向路由标识而未携带命中标识的路由。

在设定时段内未携带命中标识的路由,说明该路由在设定时段内都未被命中,可以对该路由进行老化处理,以降低硬件路由表消耗。其中,设定时段可以根据实际需要进行设定。

老化处理的方式有很多中,下面列举一种方式进行说明:建立与硬件路由表对应的软件路由表,可以10分钟为一个间隔周期,每隔10分钟,遍历1/6的软件路由表,查询遍历到的路由的hit字段的值,若为false,则将该路由的age_tick加1,若age_tick为2,则从硬件路由表中删除该路由;记录当前遍历位置,待下个10分钟,从前一个间隔周期记录位置开始,再遍历1/6,执行相同处理。其中,上述间隔周期以及遍历路由的数量可以根据实际情况进行动态调整。

基于同一发明构思,本发明实施例提供一种硬件路由表的维护装置,与如图1所示的硬件路由表的维护方法相对应,应用于网络设备的转发芯片中,网络设备还包括cpu,网络设备通过不同的外网接口与至少一个网络运营商连接,网络设备通过内网接口与其他网络设备或者服务器连接,该装置的结构如图3所示,包括:

获取模块31,用于获取通过各个外网接口接收到的报文的源ip地址;

查找模块32,用于在硬件路由表中查找与源ip地址匹配的路由;

确定模块33,用于确定路由是否携带反向路由标识;

转发模块34,用于若确定路由未携带反向路由标识,则将报文转发给cpu,以使cpu生成与报文对应的反向路由,并下发反向路由和反向路由标识,反向路由包括源ip地址、报文的源端口和源mac地址;

添加模块35,用于将反向路由和反向路由标识添加到硬件路由表中。

该方案中,基于网络设备的硬件路由表实现源进源出,网络设备上均会设置硬件路由表,即使该网络设备上无流表,也可以实现源进源出,因此适用范围很广;并且,硬件路由表的性能成本很低,相对于现有技术可以避免流表的性能成本高的问题。

可选的,添加模块35,还用于:

若确定路由携带反向路由标识,则在路由中添加命中标记,以使cpu根据命中标记对硬件路由表中的各个路由进行老化处理。

基于同一发明构思,本发明实施例提供一种硬件路由表的维护装置,与如图2所示的硬件路由表的维护方法相对应,应用于网络设备的cpu中,网络设备还包括转发,网络设备通过不同的外网接口与至少一个网络运营商连接,网络设备通过内网接口与其他网络设备或者服务器连接,该装置的结构如图4所示,包括:

接收模块41,用于接收转发芯片转发的报文,报文是转发芯片获取通过各个外网接口接收到的报文的源ip地址后,在硬件路由表中查找与源ip地址匹配的路由,并确定路由未携带反向路由标识后发送的;

生成模块42,用于生成与报文对应的反向路由,反向路由包括源ip地址、报文的源端口和源mac地址;

下发模块43,用于向转发芯片下发反向路由和反向路由标识,以使转发芯片将反向路由和反向路由标识添加到硬件路由表中。

该方案中,基于网络设备的硬件路由表实现源进源出,网络设备上均会设置硬件路由表,即使该网络设备上无流表,也可以实现源进源出,因此适用范围很广;并且,硬件路由表的性能成本很低,相对于现有技术可以避免流表的性能成本高的问题。

可选的,还包括:

监控模块,用于在设定时段内监控硬件路由表中携带反向路由标识的各个路由是否携带命中标识,命中标识是转发芯片监控到硬件路由表中的路由被命中后添加的;

处理模块,用于老化处理在设定时段内携带反向路由标识而未携带命中标识的路由。

本申请实施例还提供了一种电子设备,请参见图5所示,包括处理器510、通信接口520、存储器530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。

存储器530,用于存放计算机程序;

处理器510,用于执行存储器530上所存放的程序时,实现上述实施例中任一所述的硬件路由表的维护方法。

通信接口520用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

该方案中,基于网络设备的硬件路由表实现源进源出,网络设备上均会设置硬件路由表,即使该网络设备上无流表,也可以实现源进源出,因此适用范围很广;并且,硬件路由表的性能成本很低,相对于现有技术可以避免流表的性能成本高的问题。

相应地,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的硬件路由表的维护方法。

该方案中,基于网络设备的硬件路由表实现源进源出,网络设备上均会设置硬件路由表,即使该网络设备上无流表,也可以实现源进源出,因此适用范围很广;并且,硬件路由表的性能成本很低,相对于现有技术可以避免流表的性能成本高的问题。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的可选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括可选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1