(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