一种实现IPSec加速的方法、装置、设备及介质制造方法及图纸

技术编号:37237960 阅读:10 留言:0更新日期:2023-04-20 23:19
本发明专利技术公开了一种实现IPSec加速的方法、装置、设备及介质,涉及数据传输技术领域。所述方法包括:基于Linux内核在IP_LOCAL_INPUT和IP_LOCAL_OUT对应的hook点注册最高优先级的钩子函数;在收到应用层开启IPSec的信号后,通过所述最高优先级的钩子函数获取具有IPSec特征的数据包然后标记,表示该数据包已处理完毕,使该数据包绕过iptables规则,减少CPU在网络层处理数据包的时间。本发明专利技术提供一种实现IPSec加速的方法、装置、设备及介质,通过将具有IPSec特征的数据包绕过iptables规则,减少CPU在网络层处理网络数据包的时间,实现IPSec加速效果。加速效果。加速效果。

【技术实现步骤摘要】
一种实现IPSec加速的方法、装置、设备及介质


[0001]本专利技术涉及数据传输
,特别涉及一种实现IPSec加速的方法、装置、设备及介质。

技术介绍

[0002]在计算机
,网络安全越来越显得重要。目前,通常在软件层面运行IPsec(InternetProtocol Security,互联网安全协议)实现网络安全,即通过软件实现发送方和接收方的密钥交换以及对传输数据加密和解密处理。但是,由于接收IPSec数据包需要频繁加密和解密的特点,导致设备上IPsec的处理速度较慢,同时还可能占用大量CPU资源,从而不能有效使用网络带宽。因此,如何实现一种加速IPSec的方案是本领域的技术人员目前需要解决的问题之一。
[0003]目前主流的实现IPSec加速的方法有两种:一是通过增加专门的硬件部分代替CPU来处理IPSec数据包,从而减轻CPU的处理负担;二是优化网络驱动中负责加密与解密IPSec数据包模块的算法,在同样的CPU处理负担下,尽可能地处理更多的IPSec数据包。
[0004]在现有实现IPSec加速的方法中,通过专用芯片来实现IPSec加速的方法虽然提速效果明显,但是也会带来较高的硬件成本。而通过优化加密与解密IPSec数据包模块算法的方式来加速IPSec,则有较为明显的提速上限,很难进一步提升性能。

技术实现思路

[0005]本专利技术要解决的技术问题,在于提供一种实现IPSec加速的方法、装置、设备及介质,通过将具有IPSec特征的数据包绕过iptables规则,减少CPU在网络层处理网络数据包的时间,实现IPSec加速效果。
[0006]第一方面,本专利技术提供了一种实现IPSec加速的方法,包括:
[0007]基于Linux内核在IP_LOCAL_INPUT和IP_LOCAL_OUT对应的hook点注册最高优先级的钩子函数;
[0008]在收到应用层开启IPSec的信号后,通过所述最高优先级的钩子函数获取具有IPSec特征的数据包然后标记,表示该数据包已处理完毕,使该数据包绕过iptables规则,减少CPU在网络层处理数据包的时间。
[0009]进一步地,根据数据包的报文类型和端口号确定数据包是否为具有IPSec特征的数据包。
[0010]进一步地,通过Linux内核的Netfilter在IP_LOCAL_INPUT对应的hook点注册最高优先级的第一钩子函数,在IP_LOCAL_OUT对应的hook点注册最高优先级的第二钩子函数;
[0011]在收到应用层开启IPSec的信号后,当应用程序接收数据包时,通过第一钩子函数获取具有IPSec特征的数据包然后标记为NF_STOP;当应用程序发送数据包时,通过第二钩子函数获取具有IPSec特征的数据包然后标记为NF_STOP。
[0012]第二方面,本专利技术提供了一种实现IPSec加速的装置,包括:钩子函数注册模块以
及数据包标记模块;
[0013]所述钩子函数注册模块,用于基于Linux内核在IP_LOCAL_INPUT和IP_LOCAL_OUT对应的hook点注册最高优先级的钩子函数;
[0014]所述数据包标记模块,用于在收到应用层开启IPSec的信号后,通过所述最高优先级的钩子函数获取具有IPSec特征的数据包然后标记,表示该数据包已处理完毕,使该数据包绕过iptables规则,减少CPU在网络层处理数据包的时间。
[0015]进一步地,所述数据包标记模块中,根据数据包的报文类型和端口号确定数据包是否为具有IPSec特征的数据包。
[0016]进一步地,所述钩子函数注册模块具体用于通过Linux内核的Netfilter在IP_LOCAL_INPUT对应的hook点注册最高优先级的第一钩子函数,在IP_LOCAL_OUT对应的hook点注册最高优先级的第二钩子函数;
[0017]所述数据包标记模块具体用于在收到应用层开启IPSec的信号后,当应用程序接收数据包时,通过第一钩子函数获取具有IPSec特征的数据包然后标记为NF_STOP;当应用程序发送数据包时,通过第二钩子函数获取具有IPSec特征的数据包然后标记为NF_STOP。
[0018]第三方面,本专利技术提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
[0019]第四方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
[0020]本专利技术实施例中提供的技术方案,至少具有如下技术效果:
[0021]1、加速效果好,可以有效提升CPU在应用层IPSec网络数据包的处理能力,实现IPSec加速;
[0022]2、兼容范围广,加速原理是基于Linux内核实现,因此适合绝大多数发行版本的Linux系统,由于不涉及对加密与解密算法的修改,一定程度上避免了算法不一致导致部分应用程序无法解密数据包的问题;
[0023]3、使用成本低,仅需要通过对Linux系统内核的改造即可实现,适用于软件批量升级,且对修改克制,对其他应用进程影响较小,且不需要对设备进行额外的硬件改造。
[0024]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0025]下面参照附图结合实施例对本专利技术作进一步的说明。
[0026]图1为本专利技术实施例一中方法中的流程图;
[0027]图2为本专利技术实施例一中优化后的Linux内核中网络层数据包收发流程的简化调用逻辑图;
[0028]图3为本专利技术实施例二中装置的结构示意图;
[0029]图4为本专利技术实施例三中电子设备的结构示意图;
[0030]图5为本专利技术实施例四中介质的结构示意图。
具体实施方式
[0031]本专利技术实施例通过提供一种实现IPSec加速的方法、装置、设备及介质,通过将具有IPSec特征的数据包绕过iptables规则,减少CPU在网络层处理网络数据包的时间,实现IPSec加速效果。
[0032]本专利技术实施例中的技术方案,总体思路如下:
[0033]针对现有的IPSec加速方案均有不足,专利技术人经过大量数据统计分析,发现在网络层上的iptables规则处理有较大的优化加速潜力——iptables的INPUT链会通过内核的Netfilter在IP_LOCAL_INPUT的hook点NF_INET_LOCAL_IN注册钩子函数,通过这种方法,iptables就可以实现对每个数据包的处理。但随着iptables规则数量的增加,当通过IPSec进行较大的数据流传输时,iptables对每个数据包的分析处理就会严重影响CPU的工作效率;于是专利技术人实现了一种基于Lin本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现IPSec加速的方法,其特征在于,包括:基于Linux内核在IP_LOCAL_INPUT和IP_LOCAL_OUT对应的hook点注册最高优先级的钩子函数;在收到应用层开启IPSec的信号后,通过所述最高优先级的钩子函数获取具有IPSec特征的数据包然后标记,表示该数据包已处理完毕,使该数据包绕过iptables规则,减少CPU在网络层处理数据包的时间。2.根据权利要求1所述的方法,其特征在于:根据数据包的报文类型和端口号确定数据包是否为具有IPSec特征的数据包。3.根据权利要求1所述的方法,其特征在于:通过Linux内核的Netfilter在IP_LOCAL_INPUT对应的hook点注册最高优先级的第一钩子函数,在IP_LOCAL_OUT对应的hook点注册最高优先级的第二钩子函数;在收到应用层开启IPSec的信号后,当应用程序接收数据包时,通过第一钩子函数获取具有IPSec特征的数据包然后标记为NF_STOP;当应用程序发送数据包时,通过第二钩子函数获取具有IPSec特征的数据包然后标记为NF_STOP。4.一种实现IPSec加速的装置,其特征在于,包括:钩子函数注册模块以及数据包标记模块;所述钩子函数注册模块,用于基于Linux内核在IP_LOCAL_INPUT和IP_LOCAL_OUT对应的hook点注册最高优先级的钩子函...

【专利技术属性】
技术研发人员:陈玉龙陈乃康潘浩
申请(专利权)人:福建星网智慧科技有限公司
类型:发明
国别省市:

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

1