您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页一种基于DPDK实现高性能IPSCE网关[发明专利]

一种基于DPDK实现高性能IPSCE网关[发明专利]

来源:华佗小知识
(19)中华人民共和国国家知识产权局

(12)发明专利申请

(10)申请公布号 CN 112737932 A(43)申请公布日 2021.04.30

(21)申请号 202011559654.X(22)申请日 2020.12.25

(71)申请人 江苏省未来网络创新研究院

地址 210000 江苏省南京市江宁区秣周东

路12号悠谷2号楼19层(72)发明人 关洪涛 谭航 张玉军 胡德强 

王阳 刘军凯 (74)专利代理机构 北京卓岚智财知识产权代理

事务所(特殊普通合伙) 11624

代理人 蒋真(51)Int.Cl.

H04L 12/66(2006.01)H04L 29/06(2006.01)H04L 12/46(2006.01)

权利要求书1页 说明书4页 附图4页

(54)发明名称

一种基于DPDK实现高性能IPSCE网关(57)摘要

本发明提供了一种基于DPDK实现高性能IPSCE网关,其特征在于,包括管理平面、控制平面和转发平面三部分,所述管理平面是整个方案的用户管理入口,通过SOAP接口连接至控制平面;所述转发平面为整个方案的报文处理核心,负责报文的处理,通过RING连接至管理平面;所述管理平面为整个方案的管理核心,负责整个方案主要的复杂逻辑处理、协议处理、设备初始化和管理、模块初始化和管理,通过SOAP接口连接至管理平面,通过RING连接至转发平面。本发明通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;通过使用加速卡,提高对IPSEC报文的加解密性能;通过多核横向扩展,进一步提高IPSEC安全网关的性能。

CN 112737932 ACN 112737932 A

权 利 要 求 书

1/1页

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安全网关。

2

CN 112737932 A

说 明 书

一种基于DPDK实现高性能IPSCE网关

1/4页

技术领域

[0001]本发明涉及互联网领域,具体涉及一种基于DPDK实现高性能IPSCE网关。

背景技术

[0002]DPDK(Data Plane Development Kit,数据平面开发套件)由一套运行在用户空间的函数库与驱动组成,为数据平面提供高性能的数据收发和处理。IPSEC(Internet Protocol Security,互联网安全协议)是一个协议包,通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族(一些相互关联的协议的集合)。[0003]目前大多数IPSEC安全网关的实现基于LINUX系统,由于报文的多次拷贝(用户空间和内核空间)、IPSEC报文的加解密和校验、无法多核横向扩展等问题,导致IPSEC安全网的报文处理能力有限。

发明内容

[0004]本方案基于DPDK实现,既考虑到高性能要求,包括用户态网卡驱动、加速卡、转发和控制分离、转发平面可多核横向扩展等,也考虑到实现的难易程度,包括使用LINUX内核协议栈维护IPSEC隧道信息等,提供了一种基于DPDK实现高性能IPSCE网关。[0005]为实现上述目的,本发明提供的具体技术方案如下:[0006]一种基于DPDK实现高性能IPSCE网关,其特征在于,包括管理平面、控制平面和转发平面三部分,所述管理平面是整个方案的用户管理入口,通过SOAP接口连接至控制平面;所述转发平面为整个方案的报文处理核心,负责报文的处理,通过RING连接至管理平面。[0007]所述管理平面主要为用户提供基于命令行和页面的管理功能,为用户提供数据平面信息的展示功能;所述平面信息包括隧道信息、流量信息、CPU使用率、内存使用率、接口状态等。

[0008]所述管理平面为整个方案的管理核心,负责整个方案主要的复杂逻辑处理、协议处理、设备初始化和管理、模块初始化和管理,通过SOAP接口连接至管理平面,通过RING连接至转发平面。

[0009]所述控制平面运作步骤如下:

[0010]步骤1.1:接收来自管理平面的配置信息,将其生效至控制平面和LINUX内核协议栈;

[0011]步骤1.2:通过KNI将从转发平面获取的IPSCE协议报文送入LINUX内核协议栈,同时通过KNI将从LINUX内核协议栈获取的IPSEC协议报文送入转发平面;用于LINUX内核协议栈strongswan维护IPSEC隧道信息;所述维护方式分为新建、删除和更新;

[0012]步骤1.3:通过NETLINK从LINUX内核协议栈中获取IPSEC隧道信息的变化,包括新建、删除和更新,将其同步至转发平面;

[0013]步骤1.4:将从转发平面和LINUX内核协议栈获取的信息上报给管理平面。[0014]所述转发平面运作步骤如下:

3

CN 112737932 A[0015]

说 明 书

2/4页

步骤2.1:将从NIC接收IPSEC协议报文发送至控制平面,同时将从控制平面获取的

IPSEC协议报文发送至NIC;

[0016]步骤2.2:从控制平面获取IPSEC隧道信息;[0017]步骤2.3:完成IPSCE报文的校验、加密、解密、封装、解封装等;[0018]步骤2.4:定时将流量信息上报至控制平面。[0019]所述步骤2.1还包括:转发平面通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;所述步骤2.3还包括通过使用加速卡,提高对IPSEC报文的加解密性能;所述转发平面可多核横向扩展,进一步提高IPSEC安全网关的性能。

[0020]所述控制平面通过NETLINK从LINUX内核协议栈接收IPSEC隧道信息后,先对隧道信息进行加工处理,然后将其同步至转发平面,转发平面通过IPSEC隧道信息对报文进行处理。

[0021]所述转发平面从NIC接收的报文后,将报文分为三类:IPSEC协议报文、IPSEC数据报文和需要通过IPSEC隧道处理的报文;所述IPSEC协议报文发送到所述控制平面,所述控制平面通过KNI将报文发送至LINUX内核协议栈;所述IPSEC数据报文校验通过后,先送入加速卡进行解密,然后对其进行解封包操作,最后将报文通过NIC发送至内网用户;所述需要通过IPSEC隧道处理的报文,先封装IPSEC头,再送入加速卡进行报文的加密,然后添加校验头,最后通过NIC将IPSEC报文发往对端IPSEC安全网关。

[0022]所述控制平面通过KNI从LINUX内核协议栈接收IPSEC协议报文,然后发送至所述转发平面,所述转发平面通过NIC将IPSEC协议报文发送对端IPSEC安全网关。[0023]本发明提供了一种高性能的IPSEC网关方案。通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;通过使用加速卡,提高对IPSEC报文的加解密性能;通过将复杂逻辑处理移至控制平面,使转发平面处理逻辑简化,增加转发平面的稳定性和报文处理性能;通过降低转发平面和控制平面的耦合性,同时转平面使用自己独占的数据结构和无锁处理,使转发平面可以接近线性的方式进行多核横向扩展,进一步提高IPSEC安全网关的性能;通过KNI使处于用户态网卡收发的ISPEC协议报文可以和LINUX内核协议栈交互,完成IPSEC隧道信息维护,将逻辑复杂性能要求不高的部分使用LINUX内核协议栈处理,通过NETLINK从内核获取IPSEC随到信息,降低实现复杂度。本方案可以使用通用的硬件平台,以相对简单的方式实现高性能的IPSEC网关。[0024]本发明通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;通过使用加速卡,提高对IPSEC报文的加解密性能;通过多核横向扩展,进一步提高IPSEC安全网关的性能。

附图说明

[0025]图1为基于DPDK实现高性能IPSCE网关示意图;[0026]图2 NETLINK消息处理流程图;[0027]图3 NIC接收报文处理流程图;[0028]图4 KNI接收报文处理流程图。

4

CN 112737932 A

说 明 书

3/4页

具体实施方式

[0029]下面结合附图和实施例对本发明进行详细的描述,但并不以此作为对本申请保护范围的限定。

[0030]本方案基于DPDK实现,即考虑到高性能要求,包括用户态网卡驱动、加速卡、转发和控制分离、转发平面可多核横向扩展等,也考虑到实现的难易程度,包括使用LINUX内核协议栈维护IPSEC隧道信息等。实现方案如图1所示。[0031]本方案由管理平面、控制平面和转发平面三部分组成。所述管理平面是整个方案的用户管理入口,通过SOAP接口连接至控制平面;所述转发平面为整个方案的报文处理核心,负责报文的处理,通过RING连接至管理平面。

[0032]所述管理平面主要为用户提供基于命令行和页面的管理功能,为用户提供数据平面信息的展示功能;所述平面信息包括隧道信息、流量信息、CPU使用率、内存使用率、接口状态等。

[0033]所述管理平面为整个方案的管理核心,负责整个方案主要的复杂逻辑处理、协议处理、设备初始化和管理、模块初始化和管理,通过SOAP接口连接至管理平面,通过RING连接至转发平面。

[0034]所述控制平面运作步骤如下:

[0035]步骤1.1:接收来自管理平面的配置信息,将其生效至控制平面和LINUX内核协议栈;

[0036]步骤1.2:通过KNI将从转发平面获取的IPSCE协议报文送入LINUX内核协议栈,同时通过KNI将从LINUX内核协议栈获取的IPSEC协议报文送入转发平面;用于LINUX内核协议栈strongswan维护IPSEC隧道信息;所述维护方式分为新建、删除和更新;

[0037]步骤1.3:通过NETLINK从LINUX内核协议栈中获取IPSEC隧道信息的变化,包括新建、删除和更新,将其同步至转发平面;

[0038]步骤1.4:将从转发平面和LINUX内核协议栈获取的信息上报给管理平面。[0039]所述转发平面运作步骤如下:

[0040]步骤2.1:将从NIC接收IPSEC协议报文发送至控制平面,同时将从控制平面获取的IPSEC协议报文发送至NIC;

[0041]步骤2.2:从控制平面获取IPSEC隧道信息;[0042]步骤2.3:完成IPSCE报文的校验、加密、解密、封装、解封装等;[0043]步骤2.4:定时将流量信息上报至控制平面。[0044]所述步骤2.1还包括:转发平面通过使用DPDK提供的用户态网卡驱动,旁路LINUX内核协议栈收发报文,提高报文的收发效率;所述步骤2.3还包括通过使用加速卡,提高对IPSEC报文的加解密性能;所述转发平面可多核横向扩展,进一步提高IPSEC安全网关的性能。

[0045]所述控制平面通过NETLINK从LINUX内核协议栈接收IPSEC隧道信息后,先对隧道信息进行加工处理,然后将其同步至转发平面,转发平面通过IPSEC隧道信息对报文进行处理。

[0046]对于NETLINK消息的处理流程如图2所示。控制平面通过NETLINK从LINUX内核协议栈接收IPSEC隧道信息后,先对隧道信息进行加工处理,然后将其同步至转发平面,转发平

5

CN 112737932 A

说 明 书

4/4页

面通过IPSEC隧道信息对报文进行处理。

[0047]对于NIC接收的报文处理流程如图3所示。转发平面从NIC接收的报文后,将报文分为三类:IPSEC协议报文、IPSEC数据报文和需要通过IPSEC隧道处理的报文。IPSEC协议报文发送到控制平面,控制平面通过KNI将报文发送至LINUX内核协议栈。IPSEC数据报文校验通过后,先送入加速卡进行解密,然后对其进行解封包操作,最后将报文通过NIC发送至内网用户。需要通过IPSEC隧道处理的报文,先封装IPSEC头,再送入加速卡进行报文的加密,然后添加校验头,最后通过NIC将IPSEC报文发往对端IPSEC安全网关。[0048]对于KNI接收的IPSEC协议报文流程如图4所示。控制平面通过KNI从LINUX内核协议栈接收IPSEC协议报文,然后发送至转发平面,转发平面通过NIC将IPSEC协议报文发送对端IPSEC安全网关。

[0049]以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的,上述实施例和说明书中描述的仅为本发明的优选例,并不用来本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

6

CN 112737932 A

说 明 书 附 图

1/4页

图1

7

CN 112737932 A

说 明 书 附 图

2/4页

图2

8

CN 112737932 A

说 明 书 附 图

3/4页

图3

9

CN 112737932 A

说 明 书 附 图

4/4页

10

图4

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务