CN115225430A - 一种高性能IPsec VPN CPU负载均衡方法 - Google Patents
一种高性能IPsec VPN CPU负载均衡方法 Download PDFInfo
- Publication number
- CN115225430A CN115225430A CN202210843953.9A CN202210843953A CN115225430A CN 115225430 A CN115225430 A CN 115225430A CN 202210843953 A CN202210843953 A CN 202210843953A CN 115225430 A CN115225430 A CN 115225430A
- Authority
- CN
- China
- Prior art keywords
- cpu
- load balancing
- ipsec vpn
- processing module
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 abstract description 4
- 230000007547 defect Effects 0.000 abstract description 2
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种高性能IPsec VPN CPU负载均衡方法,涉及信息安全技术领域,具体一种高性能IPsec VPN CPU负载均衡方法,所述IPsec VPN CPU负载均衡方法包括有网卡接收模块,所述网卡接收模块包括有拷贝单元和接收单元,且接收单元采用中断的方式,所述网卡接收模块单向信号连接有中断处理模块。该高性能IPsec VPN CPU负载均衡方法,通过网卡接收模块、中断处理模块、CPU核获取模块和数据处理模块之间的配合,针对传统IPsecVPN设备在隧道数量较少时无法充分利用多核CPU的优势进行负载均衡的缺陷,对linux网络转发机制进行了优化处理,从而实现在单隧道时也能充分利用多核CPU优势进行负载均衡。
Description
技术领域
本发明涉及信息安全技术领域,具体为一种高性能IPsec VPN CPU负载均衡方法。
背景技术
IPsec VPN是虚拟转用网络(Virtual Private Network,以下简称VPN)的一种实现方式,是指在公用网络上建立专用网络,进行加密通讯,VPN可通过服务器、硬件、软件等多种方式实现,其中,在VPN设备中最为关键的技术就是加密,加密速度直接影响VPN设备的性能,IPSEC VPN安全网关能够为各类业务系统提供高性能的、多任务并行处理的加密传输、身份验证等核心安全认证服务,实现局域网互联、远程接入、加密通信等,支持SM1、SM2、SM3、SM4等多种密码算法,保证传输信息的机密性、完整性和有效性,同时提供安全、完善的密钥管理机制,自身具备较强的安全防护能力,安全网关全面支持PKI信息安全基础设施,提供包括加密传输、身份验证等核心安全认证服务,并可以通过负载均衡技术、IPSEC技术等技术,在不改变网络结构和应用模式的情况下,实现对目前所有网络层以上应用的完全支持。
然而传统VPN设备常受linux内核转发机制的制约很难达到较高性能,这是由于linux中对数据转发的处理依据是对源目地址,源目端口号进行hash运算,然后分配给相应的CPU处理,这在处理一般高并发的网络应用时有很好的CPU负载均衡作用,但在IPsec VPN应用中,隧道两端的用户数不确定,最少为一对,此时两端的源目地址、源目端口就始终是相同的,此时再利用源目地址、端口号等信息进行CPU负载分配则会出现严重的不均衡,从而制约IPsec VPN整体的转发性能。
发明内容
本发明提供了一种高性能IPsec VPN CPU负载均衡方法,解决了上述背景技术所提出的问题。
为实现以上目的,本发明通过以下技术方案予以实现:一种高性能IPsec VPN CPU负载均衡方法,所述IPsec VPN CPU负载均衡方法包括有网卡接收模块,所述网卡接收模块包括有拷贝单元和接收单元,且接收单元采用中断的方式,所述网卡接收模块单向信号连接有中断处理模块,所述中断处理模块远离网卡接收装置的一端单向信号连接有CPU核获取模块,所述循环获取模块单向信号连接有包处理模块,所述包处理模块单向信号连接有数据处理模块。
可选的,所述拷贝单元由网卡接收网络数据包,通过DMA拷贝的方式至系统内存。
可选的,所述接收单元通过中断的方式通知CPU数据包已接收完成。
可选的,所述中断处理模块对系统收到中断后执行中断处理程序将网络包放入待处理队列,系统获取CPU核编号,将相应处理任务放入队列。
可选的,所述CPU核获取模块中CPU核编号采用循环获取的方式。
可选的,所述包处理模块是对n个CPU核,从0–(n-1)范围内循环获取,将所有的包处理任务平摊至所有CPU核,系统轮训队列数据并进入包处理程序。
可选的,所述数据处理模块中各CPU核可并行处理未按地址、端口进行CPU分配的网络数据包。
本发明具备以下有益效果:
1、该高性能IPsec VPN CPU负载均衡方法,通过网卡接收模块、中断处理模块、CPU核获取模块和数据处理模块之间的配合,针对传统IPsec VPN设备在隧道数量较少时无法充分利用多核CPU的优势进行负载均衡的缺陷,对linux网络转发机制进行了优化处理,从而实现在单隧道时也能充分利用多核CPU优势进行负载均衡。
2、该高性能IPsec VPN CPU负载均衡方法,通过包处理模块、数据处理模块和网卡接收模块之间的配合,利用系统轮训队列数据并进入包处理程序的方式,有效地解决了转发性能的问题,由于网络数据未按地址、端口等进行CPU分配,故各CPU核可并行处理不同数据包,从而大幅提升IPsec VPN转发性能。
附图说明
图1为本发明中循环获取CPU编号的流程图;
图2为本发明中哈希运算获取CPU编号的流程图;
图3为本发明中Linux网络模块的流程图;
图4为本发明中Linux网络模块优化后的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1至图4,本发明提供一种技术方案:一种高性能IPsec VPN CPU负载均衡方法,IPsec VPN CPU负载均衡方法包括有网卡接收模块,网卡接收模块包括有拷贝单元和接收单元,且接收单元采用中断的方式,中断的方式实现对数据包接收完成的显示,网卡接收模块单向信号连接有中断处理模块,中断处理模块是采用中断的方式,中断处理模块远离网卡接收装置的一端单向信号连接有CPU核获取模块,循环获取模块单向信号连接有包处理模块,包处理模块单向信号连接有数据处理模块,网卡接收模块、中断处理模块、CPU核获取模块、包处理模块和数据处理模块的配合,解决了传统IPsec VPN设备在隧道数量较少时无法充分利用多核CPU的优势进行负载均衡的缺陷,并通过对linux网络转发机制进行了优化处理,从而实现在单隧道时也能充分利用多核CPU优势进行负载均衡,大幅提升IPsecVPN转发性能。
拷贝单元由网卡接收网络数据包,通过DMA拷贝的方式至系统内存。
接收单元通过中断的方式通知CPU数据包已接收完成,通过触发网络中断的方式实现对CPU数据包接收完成的显示。
中断处理模块对系统收到中断后执行中断处理程序将网络包放入待处理队列,系统获取CPU核编号,将相应处理任务放入队列。
CPU核获取模块中CPU核编号采用循环获取的方式,循环获取的方式替代了哈希运算。
包处理模块是对n个CPU核,从0–(n-1)范围内循环获取,将所有的包处理任务平摊至所有CPU核,系统轮训队列数据并进入包处理程序,达到负载均衡的效果,CPU通过轮训的方式检查队列中是否有数据包待处理,如果有就进入包处理程序,将包处理的目的分摊到所有的CPU核上,进入包处理程序后就是通用的一些网络协议处理流程。
数据处理模块中各CPU核可并行处理未按地址、端口进行CPU分配的网络数据包,各CPU核可并行处理不同数据包,大幅提升转发性能。
综上所述,该高性能IPsec VPN CPU负载均衡方法,传统获取CPU编号方式:
int get_cpu_id(skb)
{
int id=0;
id=hash(skb->dst_addr,skb->src_addr,skb->dst_port,skb->src_port);
//hash函数在输入相同时输出也是相同的
return id%NUM_CPU;
}
在传统模式中,获取CPU核编号是通过对数据包中的源地址、目的地址、源端口、目的端口等信息进行哈希运算而得出来的,在两端(客户端、服务端)地址单一不变时,哈希运算出来的结果也是相同的,即所获取的CPU核也是固定不变的;
本申请中改进后获取CPU编号方式:
int get_cpu_id(skb)
{
Static id=0;
id++;
if(id==NUM_CPU)id=0;
return id;
}
在本发明中,将获取CPU核编号的哈希运算更改为循环获取,即针对n个CPU核,从0–(n-1)范围内循环获取,将所有的包处理任务平摊至所有CPU核,达到负载均衡的效果。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制;术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性,此外,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (7)
1.一种高性能IPsec VPN CPU负载均衡方法,其特征在于:所述IPsec VPN CPU负载均衡方法包括有网卡接收模块,所述网卡接收模块包括有拷贝单元和接收单元,且接收单元采用中断的方式,所述网卡接收模块单向信号连接有中断处理模块,所述中断处理模块远离网卡接收装置的一端单向信号连接有CPU核获取模块,所述循环获取模块单向信号连接有包处理模块,所述包处理模块单向信号连接有数据处理模块。
2.根据权利要求1所述的一种高性能IPsec VPN CPU负载均衡方法,其特征在于:所述拷贝单元由网卡接收网络数据包,通过DMA拷贝的方式至系统内存。
3.根据权利要求1所述的一种高性能IPsec VPN CPU负载均衡方法,其特征在于:所述接收单元通过中断的方式通知CPU数据包已接收完成。
4.根据权利要求1所述的一种高性能IPsec VPN CPU负载均衡方法,其特征在于:所述中断处理模块对系统收到中断后执行中断处理程序将网络包放入待处理队列,系统获取CPU核编号,将相应处理任务放入队列。
5.根据权利要求1所述的一种高性能IPsec VPN CPU负载均衡方法,其特征在于:所述CPU核获取模块中CPU核编号采用循环获取的方式。
6.根据权利要求1所述的一种高性能IPsec VPN CPU负载均衡方法,其特征在于:所述包处理模块是对n个CPU核,从0–(n-1)范围内循环获取,将所有的包处理任务平摊至所有CPU核,系统轮训队列数据并进入包处理程序。
7.根据权利要求1所述的一种高性能IPsec VPN CPU负载均衡方法,其特征在于:所述数据处理模块中各CPU核可并行处理未按地址、端口进行CPU分配的网络数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210843953.9A CN115225430A (zh) | 2022-07-18 | 2022-07-18 | 一种高性能IPsec VPN CPU负载均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210843953.9A CN115225430A (zh) | 2022-07-18 | 2022-07-18 | 一种高性能IPsec VPN CPU负载均衡方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115225430A true CN115225430A (zh) | 2022-10-21 |
Family
ID=83611473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210843953.9A Pending CN115225430A (zh) | 2022-07-18 | 2022-07-18 | 一种高性能IPsec VPN CPU负载均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225430A (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301664A (zh) * | 2011-07-20 | 2011-12-28 | 华为技术有限公司 | 多核处理器的流分发方法及装置 |
CN103049336A (zh) * | 2013-01-06 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于哈希的网卡软中断负载均衡方法 |
US20140059111A1 (en) * | 2012-08-27 | 2014-02-27 | Vmware, Inc. | Method and system for enabling multi-core processing of vxlan traffic |
CN105975433A (zh) * | 2016-06-30 | 2016-09-28 | 瑞斯康达科技发展股份有限公司 | 一种报文处理方法及装置 |
CN106371925A (zh) * | 2016-08-31 | 2017-02-01 | 北京中测安华科技有限公司 | 一种高速大数据的检测方法及装置 |
CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
CN107832149A (zh) * | 2017-11-01 | 2018-03-23 | 西安微电子技术研究所 | 一种针对多核处理器动态分组管理的Receive‑side Scaling电路 |
CN108718268A (zh) * | 2017-04-07 | 2018-10-30 | 格尔软件股份有限公司 | 一种提高vpn服务端并发处理性能的方法 |
CN109117270A (zh) * | 2018-08-01 | 2019-01-01 | 湖北微源卓越科技有限公司 | 提高网络数据包处理效率的方法 |
CN109561105A (zh) * | 2018-12-29 | 2019-04-02 | 江苏博智软件科技股份有限公司 | 一种基于报文零拷贝方式的高性能报文捕获发送平台 |
CN109995828A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团河北有限公司 | Ipoib性能优化方法、装置、设备及介质 |
CN110119304A (zh) * | 2018-02-07 | 2019-08-13 | 华为技术有限公司 | 一种中断处理方法、装置及服务器 |
CN110795222A (zh) * | 2019-10-25 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种多线程任务调度方法、装置、设备及可读介质 |
CN111984402A (zh) * | 2020-07-25 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种线程池统一调度监控方法及系统 |
CN114553780A (zh) * | 2020-11-11 | 2022-05-27 | 北京华为数字技术有限公司 | 负载均衡的方法、装置以及网卡 |
-
2022
- 2022-07-18 CN CN202210843953.9A patent/CN115225430A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301664A (zh) * | 2011-07-20 | 2011-12-28 | 华为技术有限公司 | 多核处理器的流分发方法及装置 |
US20140059111A1 (en) * | 2012-08-27 | 2014-02-27 | Vmware, Inc. | Method and system for enabling multi-core processing of vxlan traffic |
CN103049336A (zh) * | 2013-01-06 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种基于哈希的网卡软中断负载均衡方法 |
CN105975433A (zh) * | 2016-06-30 | 2016-09-28 | 瑞斯康达科技发展股份有限公司 | 一种报文处理方法及装置 |
CN106371925A (zh) * | 2016-08-31 | 2017-02-01 | 北京中测安华科技有限公司 | 一种高速大数据的检测方法及装置 |
CN106713185A (zh) * | 2016-12-06 | 2017-05-24 | 瑞斯康达科技发展股份有限公司 | 一种多核cpu的负载均衡方法及装置 |
CN108718268A (zh) * | 2017-04-07 | 2018-10-30 | 格尔软件股份有限公司 | 一种提高vpn服务端并发处理性能的方法 |
CN107832149A (zh) * | 2017-11-01 | 2018-03-23 | 西安微电子技术研究所 | 一种针对多核处理器动态分组管理的Receive‑side Scaling电路 |
CN109995828A (zh) * | 2017-12-30 | 2019-07-09 | 中国移动通信集团河北有限公司 | Ipoib性能优化方法、装置、设备及介质 |
CN110119304A (zh) * | 2018-02-07 | 2019-08-13 | 华为技术有限公司 | 一种中断处理方法、装置及服务器 |
CN109117270A (zh) * | 2018-08-01 | 2019-01-01 | 湖北微源卓越科技有限公司 | 提高网络数据包处理效率的方法 |
CN109561105A (zh) * | 2018-12-29 | 2019-04-02 | 江苏博智软件科技股份有限公司 | 一种基于报文零拷贝方式的高性能报文捕获发送平台 |
CN110795222A (zh) * | 2019-10-25 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种多线程任务调度方法、装置、设备及可读介质 |
CN111984402A (zh) * | 2020-07-25 | 2020-11-24 | 苏州浪潮智能科技有限公司 | 一种线程池统一调度监控方法及系统 |
CN114553780A (zh) * | 2020-11-11 | 2022-05-27 | 北京华为数字技术有限公司 | 负载均衡的方法、装置以及网卡 |
Non-Patent Citations (1)
Title |
---|
赵欢欢;张根全;张惠鑫;: "基于DPDK混合中断轮询模式的报文传输框架", 无线电通信技术, no. 03 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109842585B (zh) | 面向工业嵌入式系统的网络信息安全防护单元和防护方法 | |
US10498718B2 (en) | Device identification and authentication in a network | |
JP3599552B2 (ja) | パケットフィルタ装置、認証サーバ、パケットフィルタリング方法及び記憶媒体 | |
US7055171B1 (en) | Highly secure computer system architecture for a heterogeneous client environment | |
US7650500B2 (en) | Encryption communication system | |
CN113472817B (zh) | 一种大规模IPSec的网关接入方法、装置及电子设备 | |
CN108964880A (zh) | 一种数据传输方法及装置 | |
CN104639596A (zh) | 用于使用rdma的低等待时间fifo消息收发中支持多个发送器的系统和方法 | |
CN111541658B (zh) | 一种pcie防火墙 | |
WO2016068941A1 (en) | Secure transactions in a memory fabric | |
JP3296514B2 (ja) | 暗号通信端末 | |
CN113810397A (zh) | 协议数据的处理方法及装置 | |
CN115225430A (zh) | 一种高性能IPsec VPN CPU负载均衡方法 | |
CN111835613B (zh) | 一种vpn服务器的数据传输方法及vpn服务器 | |
CN111741014A (zh) | 消息发送方法、装置、服务器及存储介质 | |
CN115361210A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN112333162B (zh) | 一种业务处理方法及设备 | |
CN115208599A (zh) | 一种防御DDoS攻击的方法以及相关装置 | |
CN106209666A (zh) | 一种基于负载均衡器的链路复用方法及系统 | |
CN113709139B (zh) | 基于NUMA架构的openstack东西向转发性能优化方法和系统 | |
WO2022270228A1 (ja) | Ipネットワークにアクセスするための通信サービスを提供するための装置、方法及びそのためのプログラム | |
Lackorzynski et al. | Secure and Efficient Tunneling of MACsec for Modern Industrial Use Cases | |
CN113923046B (zh) | 一种分布式防火墙安全通信的实现方法及系统 | |
CN116418602B (zh) | 一种基于可信硬件的元数据保护匿名通信方法及系统 | |
CN114142998B (zh) | 一种数据加密处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221021 |
|
RJ01 | Rejection of invention patent application after publication |