CN112737932A - 一种基于dpdk实现高性能ipsce网关 - Google Patents
一种基于dpdk实现高性能ipsce网关 Download PDFInfo
- Publication number
- CN112737932A CN112737932A CN202011559654.XA CN202011559654A CN112737932A CN 112737932 A CN112737932 A CN 112737932A CN 202011559654 A CN202011559654 A CN 202011559654A CN 112737932 A CN112737932 A CN 112737932A
- Authority
- CN
- China
- Prior art keywords
- plane
- ipsec
- message
- management
- dpdk
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0485—Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于DPDK实现高性能IPSCE网关,其特征在于,包括管理平面、控制平面和转发平面三部分,所述管理平面是整个方案的用户管理入口,通过SOAP接口连接至控制平面;所述转发平面为整个方案的报文处理核心,负责报文的处理,通过RING连接至管理平面;所述管理平面为整个方案的管理核心,负责整个方案主要的复杂逻辑处理、协议处理、设备初始化和管理、模块初始化和管理,通过SOAP接口连接至管理平面,通过RING连接至转发平面。本发明通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;通过使用加速卡,提高对IPSEC报文的加解密性能;通过多核横向扩展,进一步提高IPSEC安全网关的性能。
Description
技术领域
本发明涉及互联网领域,具体涉及一种基于DPDK实现高性能IPSCE网关。
背景技术
DPDK(Data Plane Development Kit,数据平面开发套件)由一套运行在用户空间的函数库与驱动组成,为数据平面提供高性能的数据收发和处理。IPSEC(InternetProtocol Security,互联网安全协议)是一个协议包,通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族(一些相互关联的协议的集合)。
目前大多数IPSEC安全网关的实现基于LINUX***,由于报文的多次拷贝(用户空间和内核空间)、IPSEC报文的加解密和校验、无法多核横向扩展等问题,导致IPSEC安全网的报文处理能力有限。
发明内容
本方案基于DPDK实现,既考虑到高性能要求,包括用户态网卡驱动、加速卡、转发和控制分离、转发平面可多核横向扩展等,也考虑到实现的难易程度,包括使用LINUX内核协议栈维护IPSEC隧道信息等,提供了一种基于DPDK实现高性能IPSCE网关。
为实现上述目的,本发明提供的具体技术方案如下:
一种基于DPDK实现高性能IPSCE网关,其特征在于,包括管理平面、控制平面和转发平面三部分,所述管理平面是整个方案的用户管理入口,通过SOAP接口连接至控制平面;所述转发平面为整个方案的报文处理核心,负责报文的处理,通过RING连接至管理平面。
所述管理平面主要为用户提供基于命令行和页面的管理功能,为用户提供数据平面信息的展示功能;所述平面信息包括隧道信息、流量信息、CPU使用率、内存使用率、接口状态等。
所述管理平面为整个方案的管理核心,负责整个方案主要的复杂逻辑处理、协议处理、设备初始化和管理、模块初始化和管理,通过SOAP接口连接至管理平面,通过RING连接至转发平面。
所述控制平面运作步骤如下:
步骤1.1:接收来自管理平面的配置信息,将其生效至控制平面和LINUX内核协议栈;
步骤1.2:通过KNI将从转发平面获取的IPSCE协议报文送入LINUX内核协议栈,同时通过KNI将从LINUX内核协议栈获取的IPSEC协议报文送入转发平面;用于LINUX内核协议栈strongswan维护IPSEC隧道信息;所述维护方式分为新建、删除和更新;
步骤1.3:通过NETLINK从LINUX内核协议栈中获取IPSEC隧道信息的变化,包括新建、删除和更新,将其同步至转发平面;
步骤1.4:将从转发平面和LINUX内核协议栈获取的信息上报给管理平面。
所述转发平面运作步骤如下:
步骤2.1:将从NIC接收IPSEC协议报文发送至控制平面,同时将从控制平面获取的IPSEC协议报文发送至NIC;
步骤2.2:从控制平面获取IPSEC隧道信息;
步骤2.3:完成IPSCE报文的校验、加密、解密、封装、解封装等;
步骤2.4:定时将流量信息上报至控制平面。
所述步骤2.1还包括:转发平面通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;所述步骤2.3还包括通过使用加速卡,提高对IPSEC报文的加解密性能;所述转发平面可多核横向扩展,进一步提高IPSEC安全网关的性能。
所述控制平面通过NETLINK从LINUX内核协议栈接收IPSEC隧道信息后,先对隧道信息进行加工处理,然后将其同步至转发平面,转发平面通过IPSEC隧道信息对报文进行处理。
所述转发平面从NIC接收的报文后,将报文分为三类:IPSEC协议报文、IPSEC数据报文和需要通过IPSEC隧道处理的报文;所述IPSEC协议报文发送到所述控制平面,所述控制平面通过KNI将报文发送至LINUX内核协议栈;所述IPSEC数据报文校验通过后,先送入加速卡进行解密,然后对其进行解封包操作,最后将报文通过NIC发送至内网用户;所述需要通过IPSEC隧道处理的报文,先封装IPSEC头,再送入加速卡进行报文的加密,然后添加校验头,最后通过NIC将IPSEC报文发往对端IPSEC安全网关。
所述控制平面通过KNI从LINUX内核协议栈接收IPSEC协议报文,然后发送至所述转发平面,所述转发平面通过NIC将IPSEC协议报文发送对端IPSEC安全网关。
本发明提供了一种高性能的IPSEC网关方案。通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;通过使用加速卡,提高对IPSEC报文的加解密性能;通过将复杂逻辑处理移至控制平面,使转发平面处理逻辑简化,增加转发平面的稳定性和报文处理性能;通过降低转发平面和控制平面的耦合性,同时转平面使用自己独占的数据结构和无锁处理,使转发平面可以接近线性的方式进行多核横向扩展,进一步提高IPSEC安全网关的性能;通过KNI使处于用户态网卡收发的ISPEC协议报文可以和LINUX内核协议栈交互,完成IPSEC隧道信息维护,将逻辑复杂性能要求不高的部分使用LINUX内核协议栈处理,通过NETLINK从内核获取IPSEC随到信息,降低实现复杂度。本方案可以使用通用的硬件平台,以相对简单的方式实现高性能的IPSEC网关。
本发明通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;通过使用加速卡,提高对IPSEC报文的加解密性能;通过多核横向扩展,进一步提高IPSEC安全网关的性能。
附图说明
图1为基于DPDK实现高性能IPSCE网关示意图;
图2 NETLINK消息处理流程图;
图3 NIC接收报文处理流程图;
图4 KNI接收报文处理流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述,但并不以此作为对本申请保护范围的限定。
本方案基于DPDK实现,即考虑到高性能要求,包括用户态网卡驱动、加速卡、转发和控制分离、转发平面可多核横向扩展等,也考虑到实现的难易程度,包括使用LINUX内核协议栈维护IPSEC隧道信息等。实现方案如图1所示。
本方案由管理平面、控制平面和转发平面三部分组成。所述管理平面是整个方案的用户管理入口,通过SOAP接口连接至控制平面;所述转发平面为整个方案的报文处理核心,负责报文的处理,通过RING连接至管理平面。
所述管理平面主要为用户提供基于命令行和页面的管理功能,为用户提供数据平面信息的展示功能;所述平面信息包括隧道信息、流量信息、CPU使用率、内存使用率、接口状态等。
所述管理平面为整个方案的管理核心,负责整个方案主要的复杂逻辑处理、协议处理、设备初始化和管理、模块初始化和管理,通过SOAP接口连接至管理平面,通过RING连接至转发平面。
所述控制平面运作步骤如下:
步骤1.1:接收来自管理平面的配置信息,将其生效至控制平面和LINUX内核协议栈;
步骤1.2:通过KNI将从转发平面获取的IPSCE协议报文送入LINUX内核协议栈,同时通过KNI将从LINUX内核协议栈获取的IPSEC协议报文送入转发平面;用于LINUX内核协议栈strongswan维护IPSEC隧道信息;所述维护方式分为新建、删除和更新;
步骤1.3:通过NETLINK从LINUX内核协议栈中获取IPSEC隧道信息的变化,包括新建、删除和更新,将其同步至转发平面;
步骤1.4:将从转发平面和LINUX内核协议栈获取的信息上报给管理平面。
所述转发平面运作步骤如下:
步骤2.1:将从NIC接收IPSEC协议报文发送至控制平面,同时将从控制平面获取的IPSEC协议报文发送至NIC;
步骤2.2:从控制平面获取IPSEC隧道信息;
步骤2.3:完成IPSCE报文的校验、加密、解密、封装、解封装等;
步骤2.4:定时将流量信息上报至控制平面。
所述步骤2.1还包括:转发平面通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;所述步骤2.3还包括通过使用加速卡,提高对IPSEC报文的加解密性能;所述转发平面可多核横向扩展,进一步提高IPSEC安全网关的性能。
所述控制平面通过NETLINK从LINUX内核协议栈接收IPSEC隧道信息后,先对隧道信息进行加工处理,然后将其同步至转发平面,转发平面通过IPSEC隧道信息对报文进行处理。
对于NETLINK消息的处理流程如图2所示。控制平面通过NETLINK从LINUX内核协议栈接收IPSEC隧道信息后,先对隧道信息进行加工处理,然后将其同步至转发平面,转发平面通过IPSEC隧道信息对报文进行处理。
对于NIC接收的报文处理流程如图3所示。转发平面从NIC接收的报文后,将报文分为三类:IPSEC协议报文、IPSEC数据报文和需要通过IPSEC隧道处理的报文。IPSEC协议报文发送到控制平面,控制平面通过KNI将报文发送至LINUX内核协议栈。IPSEC数据报文校验通过后,先送入加速卡进行解密,然后对其进行解封包操作,最后将报文通过NIC发送至内网用户。需要通过IPSEC隧道处理的报文,先封装IPSEC头,再送入加速卡进行报文的加密,然后添加校验头,最后通过NIC将IPSEC报文发往对端IPSEC安全网关。
对于KNI接收的IPSEC协议报文流程如图4所示。控制平面通过KNI从LINUX内核协议栈接收IPSEC协议报文,然后发送至转发平面,转发平面通过NIC将IPSEC协议报文发送对端IPSEC安全网关。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (8)
1.一种基于DPDK实现高性能IPSCE网关,其特征在于,包括管理平面、控制平面和转发平面三部分,所述管理平面是整个方案的用户管理入口,通过SOAP接口连接至控制平面;所述转发平面为整个方案的报文处理核心,负责报文的处理,通过RING连接至管理平面。
2.根据权利要求1所述的基于DPDK实现高性能IPSCE网关,其特征在于,所述管理平面主要为用户提供基于命令行和页面的管理功能,为用户提供数据平面信息的展示功能;所述平面信息包括隧道信息、流量信息、CPU使用率、内存使用率、接口状态等。
3.根据权利要求1所述的基于DPDK实现高性能IPSCE网关,其特征在于,所述控制平面运作步骤如下:
步骤1.1:接收来自管理平面的配置信息,将其生效至控制平面和LINUX内核协议栈;
步骤1.2:通过KNI将从转发平面获取的IPSCE协议报文送入LINUX内核协议栈,同时通过KNI将从LINUX内核协议栈获取的IPSEC协议报文送入转发平面;用于LINUX内核协议栈strongswan维护IPSEC隧道信息;所述维护方式分为新建、删除和更新;
步骤1.3:通过NETLINK从LINUX内核协议栈中获取IPSEC隧道信息的变化,包括新建、删除和更新,将其同步至转发平面;
步骤1.4:将从转发平面和LINUX内核协议栈获取的信息上报给管理平面。
4.根据权利要求1所述的基于DPDK实现高性能IPSCE网关,其特征在于,所述转发平面运作步骤如下:
步骤2.1:将从NIC接收IPSEC协议报文发送至控制平面,同时将从控制平面获取的IPSEC协议报文发送至NIC;
步骤2.2:从控制平面获取IPSEC隧道信息;
步骤2.3:完成IPSCE报文的校验、加密、解密、封装、解封装等;
步骤2.4:定时将流量信息上报至控制平面。
5.根据权利要求1所述的基于DPDK实现高性能IPSCE网关,其特征在于,所述步骤2.1还包括:转发平面通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;所述步骤2.3还包括通过使用加速卡,提高对IPSEC报文的加解密性能;所述转发平面可多核横向扩展,进一步提高IPSEC安全网关的性能。
6.根据权利要求1所述的基于DPDK实现高性能IPSCE网关,其特征在于,所述控制平面通过NETLINK从LINUX内核协议栈接收IPSEC隧道信息后,先对隧道信息进行加工处理,然后将其同步至转发平面,转发平面通过IPSEC隧道信息对报文进行处理。
7.根据权利要求1所述的基于DPDK实现高性能IPSCE网关,其特征在于,所述转发平面从NIC接收的报文后,将报文分为三类:IPSEC协议报文、IPSEC数据报文和需要通过IPSEC隧道处理的报文;所述IPSEC协议报文发送到所述控制平面,所述控制平面通过KNI将报文发送至LINUX内核协议栈;所述IPSEC数据报文校验通过后,先送入加速卡进行解密,然后对其进行解封包操作,最后将报文通过NIC发送至内网用户;所述需要通过IPSEC隧道处理的报文,先封装IPSEC头,再送入加速卡进行报文的加密,然后添加校验头,最后通过NIC将IPSEC报文发往对端IPSEC安全网关。
8.根据权利要求1所述的基于DPDK实现高性能IPSCE网关,其特征在于,所述控制平面通过KNI从LINUX内核协议栈接收IPSEC协议报文,然后发送至所述转发平面,所述转发平面通过NIC将IPSEC协议报文发送对端IPSEC安全网关。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559654.XA CN112737932B (zh) | 2020-12-25 | 2020-12-25 | 一种基于dpdk实现高性能ipsce网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559654.XA CN112737932B (zh) | 2020-12-25 | 2020-12-25 | 一种基于dpdk实现高性能ipsce网关 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112737932A true CN112737932A (zh) | 2021-04-30 |
CN112737932B CN112737932B (zh) | 2023-04-07 |
Family
ID=75615839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011559654.XA Active CN112737932B (zh) | 2020-12-25 | 2020-12-25 | 一种基于dpdk实现高性能ipsce网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112737932B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117254976A (zh) * | 2023-11-15 | 2023-12-19 | 杭州海康威视数字技术股份有限公司 | 基于VPP的国标IPsec VPN实现方法、装置、***及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841026A (zh) * | 2014-02-21 | 2014-06-04 | 烽火通信科技股份有限公司 | 一种路由器ip协议栈的vpn路由管理***及方法 |
CN104270280A (zh) * | 2014-09-02 | 2015-01-07 | 烽火通信科技股份有限公司 | 在路由器上实现LSP ping和tracert的***及方法 |
CN106302199A (zh) * | 2016-08-10 | 2017-01-04 | 成都广达新网科技股份有限公司 | 一种基于三层交换机设备的用户态协议栈实现方法及*** |
CN107911237A (zh) * | 2017-11-10 | 2018-04-13 | 南京邮电大学 | 一种基于dpdk的用户空间内数据包快速检测方法 |
CN108366018A (zh) * | 2017-01-26 | 2018-08-03 | 普天信息技术有限公司 | 一种基于dpdk的网络数据包处理方法 |
CN111614631A (zh) * | 2020-04-29 | 2020-09-01 | 江苏深网科技有限公司 | 一种用户态流水线架构防火墙*** |
CN111934894A (zh) * | 2019-05-13 | 2020-11-13 | 烽火通信科技股份有限公司 | 基于dpdk管理无线网络接口的方法及*** |
-
2020
- 2020-12-25 CN CN202011559654.XA patent/CN112737932B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841026A (zh) * | 2014-02-21 | 2014-06-04 | 烽火通信科技股份有限公司 | 一种路由器ip协议栈的vpn路由管理***及方法 |
CN104270280A (zh) * | 2014-09-02 | 2015-01-07 | 烽火通信科技股份有限公司 | 在路由器上实现LSP ping和tracert的***及方法 |
CN106302199A (zh) * | 2016-08-10 | 2017-01-04 | 成都广达新网科技股份有限公司 | 一种基于三层交换机设备的用户态协议栈实现方法及*** |
CN108366018A (zh) * | 2017-01-26 | 2018-08-03 | 普天信息技术有限公司 | 一种基于dpdk的网络数据包处理方法 |
CN107911237A (zh) * | 2017-11-10 | 2018-04-13 | 南京邮电大学 | 一种基于dpdk的用户空间内数据包快速检测方法 |
CN111934894A (zh) * | 2019-05-13 | 2020-11-13 | 烽火通信科技股份有限公司 | 基于dpdk管理无线网络接口的方法及*** |
CN111614631A (zh) * | 2020-04-29 | 2020-09-01 | 江苏深网科技有限公司 | 一种用户态流水线架构防火墙*** |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117254976A (zh) * | 2023-11-15 | 2023-12-19 | 杭州海康威视数字技术股份有限公司 | 基于VPP的国标IPsec VPN实现方法、装置、***及电子设备 |
CN117254976B (zh) * | 2023-11-15 | 2024-03-19 | 杭州海康威视数字技术股份有限公司 | 基于VPP的国标IPsec VPN实现方法、装置、***及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112737932B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11683266B2 (en) | Computational accelerator for storage operations | |
US9380134B2 (en) | RoCE packet sequence acceleration | |
US7327762B2 (en) | Packet data processing apparatus in packet data communication system | |
US6275588B1 (en) | Apparatus and method for performing and controlling encryption/decryption for data to be transmitted on local area network | |
CN101409675A (zh) | 网络分组净荷压缩 | |
CN102143218B (zh) | web接入云体系结构及接入方法 | |
WO2022032984A1 (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN111262823B (zh) | 一种安全网关及其数据处理方法 | |
CN106656714A (zh) | 一种基于EtherCAT总线的通信协议方法及*** | |
CN112737932B (zh) | 一种基于dpdk实现高性能ipsce网关 | |
JP4426351B2 (ja) | 仮想私設網機能と無線lan機能を有する複合ネットワーク装置具現方法 | |
CN113660191A (zh) | Fc-ae-1553协议桥接mil-std-1553和gjb1188b协议的通讯方法 | |
CN113810397B (zh) | 协议数据的处理方法及装置 | |
WO2020233442A1 (zh) | 区块链与网络***、数据接收与发送方法及设备 | |
CN101212480B (zh) | 在usb主机和usb装置之间通信的方法和设备 | |
CN115529180B (zh) | IPSec加解密卸载方法 | |
JP2003050788A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
CN102932458A (zh) | 一种ppp协议的硬件加速***及其实现方法 | |
JP2003229905A (ja) | 送信装置、受信装置およびそれらの方法 | |
CN115883149A (zh) | 一种基于fpga的pcie链路的内外网通信方法 | |
CN113612668A (zh) | 一种桥接三种协议的通讯方法 | |
JP2002026927A (ja) | カプセリング方法及び装置並びにプログラム記録媒体 | |
JP3360727B2 (ja) | パケット転送システム及びそれを用いたパケット転送方法 | |
US20230269311A1 (en) | Method and device for data transmission and storage medium | |
EP1049292A2 (en) | System and method for network monitoring |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |