报文转发方法、装置、网络设备和计算机可读存储介质与流程

文档序号:33948015发布日期:2023-04-26 09:17阅读:53来源:国知局
报文转发方法、装置、网络设备和计算机可读存储介质与流程

本发明涉及通信,具体而言,涉及一种报文转发方法、装置、网络设备和计算机可读存储介质。


背景技术:

1、nat(network address translation,网络地址转换)是一种常用的节省ip地址的网络技术,其是将ip数据报文头中的ip地址转换为另一个ip地址,并通过转换端口号达到地址重用的目的。

2、现有技术中,为了提升网络设备的nat转发性能,一般采用以下两种解决方案:一种是使用高端的cpu(central processing unit,中央处理器),高端的cpu性能好,nat报文即使走纯软件转发,也可以达到nat转发的性能要求,但是高端cpu意味着成本的上升;另一种是使用外挂的硬件nat转发芯片,专用的nat转发芯片的硬件表项资源充足,可以保证转发性能,然而外挂芯片也会导致整体的成本上升。上述两个方案虽然可以解决nat转发性能差的问题,但都会增加成本,不适用于低成本网络设备。

3、对于低成本网络设备,通常采用cpu自带的硬件加速模块来加速nat转发。在使用硬件加速模块时,由于低成本cpu自带的硬件加速模块支持的硬件表项数目有限,当硬件加速模块的硬件表项资源耗尽之后,超出硬件表项的nat报文只能走纯软件转发,纯软件转发流程需要报文经过完整的协议栈处理,会耗费大量的cpu资源,导致nat转发性能降低。


技术实现思路

1、有鉴于此,本发明的目的在于提供一种报文转发方法、装置、网络设备和计算机可读存储介质,以解决低成本网络设备在硬件加速模块的硬件表项资源不足的情况下导致nat转发性能降低的问题。

2、为了实现上述目的,本发明实施例采用的技术方案如下:

3、第一方面,本发明提供一种报文转发方法,应用于网络设备,所述网络设备的多核处理器包括nat处理核和硬件加速模块,所述nat处理核维护有软件转发表,所述硬件加速模块维护有硬件转发表,所述软件转发表和所述硬件转发表中的表项均包括nat规则;其中,所述硬件转发表中的表项由所述硬件加速模块根据所述nat处理核下发的表项生成,所述软件转发表中的表项为所述nat处理核未下发到所述硬件加速模块的表项;所述方法包括:

4、所述硬件加速模块在接收到的报文未命中所述硬件转发表中的nat规则时,将所述报文发送到所述nat处理核;

5、所述nat处理核接收到所述硬件加速模块上送的报文时,确定所述报文是否命中所述软件转发表中的nat规则;

6、当所述报文命中所述软件转发表中的nat规则时,根据所述报文命中的nat规则转发所述报文。

7、在可选的实施方式中,所述软件转发表中的表项还包括命中率,所述命中率为单位时间内命中对应表项中的nat规则的报文个数;所述nat处理核还维护有已下发表,所述已下发表和所述软件转发表的结构相同,所述已下发表中的表项为所述nat处理核下发到所述硬件加速模块的表项;所述方法还包括:

8、所述nat处理核在所述硬件转发表中的表项数目达到设定阈值且所述软件转发表中的表项数目大于等于预设数目的情况下,分别将所述软件转发表和所述已下发表中的各表项按照命中率进行排序;

9、若所述已下发表中的命中率最小值小于等于所述软件转发表中的命中率最大值,则计算所述软件转发表中命中率最大的预设数目个表项对应的第一命中率平均值,以及所述已下发表中命中率最小的预设数目个表项对应的第二命中率平均值;

10、若所述第一命中率平均值大于所述第二命中率平均值,则对所述软件转发表中命中率最大的预设数目个表项和所述已下发表中命中率最小的预设数目个表项执行置换操作,并将所述已下发表中发生置换的表项下发到所述硬件加速模块。

11、在可选的实施方式中,所述对所述软件转发表中命中率最大的预设数目个表项和所述已下发表中命中率最小的预设数目个表项执行置换操作,包括:

12、对所述已下发表中命中率最小的预设数目个表项进行备份;

13、将所述已下发表中命中率最小的预设数目个表项中的内容替换为所述软件转发表中命中率最大的预设数目个表项中的内容;

14、将所述软件转发表中命中率最大的预设数目个表项中的内容替换为备份的所述已下发表中命中率最小的预设数目个表项的内容。

15、在可选的实施方式中,所述方法还包括:

16、所述nat处理核在所述硬件转发表中的表项数目未达到设定阈值的情况下,将所述软件转发表中的表项移动至所述已下发表,并将所述已下发表中新增的表项下发到所述硬件加速模块,以便所述硬件加速模块根据所述已下发表中新增的表项在所述硬件转发表中生成对应的表项。

17、在可选的实施方式中,所述多核处理器还包括转发核,所述软件转发表中的nat规则由所述转发核生成并同步到所述nat处理核;所述软件转发表中的表项还包括时间戳,所述时间戳为所述转发核同步对应nat规则到所述nat处理核的时间;所述方法还包括:

18、所述nat处理核在所述报文命中所述软件转发表中的nat规则,且所述nat规则所在表项中的时间戳不为预设值时,计算当前时间戳与所述nat规则所在表项中的时间戳的差值;

19、若所述差值小于所述单位时间,则将所述nat规则所在表项中的命中率加1;

20、若所述差值大于等于所述单位时间,则将所述nat规则所在表项中的命中率加1,并将所述nat规则所在表项中的时间戳设置为所述预设值。

21、在可选的实施方式中,所述方法还包括:

22、所述nat处理核在所述报文未命中所述软件转发表中的nat规则时,将所述报文发送到所述转发核,以便所述转发核根据收到的所述报文生成对应的nat规则,并根据所述报文对应的nat规则转发所述报文,将所述报文对应的nat规则同步到所述nat处理核;

23、根据所述转发核同步的nat规则,在所述nat处理核的软件转发表新增对应的表项。

24、第二方面,本发明提供一种报文转发装置,应用于网络设备,所述网络设备的多核处理器包括nat处理核和硬件加速模块,所述nat处理核维护有软件转发表,所述硬件加速模块维护有硬件转发表,所述软件转发表和所述硬件转发表中的表项均包括nat规则;其中,所述硬件转发表中的表项由所述硬件加速模块根据所述nat处理核下发的表项生成,所述软件转发表中的表项为所述nat处理核未下发到所述硬件加速模块的表项;所述装置包括:

25、规则管理模块,用于当所述nat处理核接收到所述硬件加速模块上送的报文时,确定所述报文是否命中所述软件转发表中的nat规则;其中,所述硬件加速模块在接收到的报文未命中所述硬件转发表中的nat规则时,将所述报文发送到所述nat处理核;

26、报文转发模块,用于当所述报文命中所述软件转发表中的nat规则时,根据所述报文命中的nat规则转发所述报文。

27、在可选的实施方式中,所述软件转发表中的表项还包括命中率,所述命中率为单位时间内命中对应表项中的nat规则的报文个数;所述nat处理核还维护有已下发表,所述已下发表和所述软件转发表的结构相同,所述已下发表中的表项为所述nat处理核下发到所述硬件加速模块的表项;所述装置还包括:

28、规则置换模块,用于在所述硬件转发表中的表项数目达到设定阈值且所述软件转发表中的表项数目大于等于预设数目的情况下,分别将所述软件转发表和所述已下发表中的各表项按照命中率进行排序;若所述已下发表中的命中率最小值小于等于所述软件转发表中的命中率最大值,则计算所述软件转发表中命中率最大的预设数目个表项对应的第一命中率平均值,以及所述已下发表中命中率最小的预设数目个表项对应的第二命中率平均值;若所述第一命中率平均值大于所述第二命中率平均值,则对所述软件转发表中命中率最大的预设数目个表项和所述已下发表中命中率最小的预设数目个表项执行置换操作,并将所述已下发表中发生置换的表项下发到所述硬件加速模块。

29、第三方面,本发明提供一种网络设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述实施方式中任一项所述的报文转发方法的步骤。

30、第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的报文转发方法的步骤。

31、本发明实施例提供的报文转发方法、装置、网络设备和计算机可读存储介质,该网络设备的多核处理器包括nat处理核和硬件加速模块,nat处理核维护有软件转发表,硬件加速模块维护有硬件转发表,软件转发表和硬件转发表中的表项均包括nat规则;其中,硬件转发表中的表项由硬件加速模块根据nat处理核下发的表项生成,软件转发表中的表项为nat处理核未下发到硬件加速模块的表项。硬件加速模块在接收到的报文未命中硬件转发表中的nat规则时,将报文发送到nat处理核,nat处理核接收到硬件加速模块上送的报文时,确定报文是否命中软件转发表中的nat规则;当报文命中软件转发表中的nat规则时,根据报文命中的nat规则转发报文。通过在多核处理器中独立分配nat处理核,由该nat处理核完成nat软硬件表项管理和软件nat转发功能,在硬件资源不足的情况下,执行转发操作的任务只在nat处理核上完成,且功能单一,相比于走完整协议栈进行nat转发,缩短了转发路径,减少了报文的nat转发流程,加速了软件转发效率,从而提升了网络设备的nat转发性能。

32、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

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