基于DPDK的高性能移动通信网络IPSec

2022-07-10 13:45曼茂立骆磊田辉高海军
现代信息科技 2022年5期

曼茂立 骆磊 田辉 高海军

摘  要:移动通信技术和我们的日常生活息息相关,因此文章聚焦移动通信网络安全,旨在保证移动通信安全的情况下提高传输效率。文章主要使用IPSec协议簇进行加密,确保传输数据的保密性、真实性和完整性,并针对IPSec在面对吞吐海量数据的时候会造成高延迟的问题提出解决方案,使用数据平面开发工具DPDK设计架构,解决由内核和上下文切换的分层网络数据包处理造成的瓶颈问题。

关键词:IPSec;DPDK;移动通信网络

中图分类号:TP393        文献标识码:A文章编号:2096-4706(2022)05-0076-03

A High-Performance Mobile Communication Network IPSec Based on DPDK

MAN Maoli, LUO Lei, TIAN Hui, GAO Haijun

(Hebei Petroleum University of Technology, Chengde  067000, China)

Abstract: Mobile communication technology is closely related to our daily life, Therefore, this paper focuses on the security of mobile communication network, in order to improve the transmission efficiency under the condition of ensuring the security of mobile communication. This paper mainly uses IPSec protocol cluster for encryption to ensure the confidentiality, authenticity and integrity of transmitted data. Aiming at the problem that IPSec will cause high delay when in the face of handling massive data, this paper puts forward a solution, and uses the data plane development tool DPDK to design the architecture to solve the bottleneck problem caused by the layered network packet processing of kernel and context switching.

Keywords: IPSec; DPDK; mobile communication network

0  引  言

隨着祖国经济腾飞,人民生活逐步富裕,手机成了人们日常生活中的必需品,手机上网用户越来越多,根据《中国互联网络发展状况统计报告》统计,截至2021年6月我国的网民规模多达10.11亿,而手机上网人数多达9.86亿人,已经成为全球规模最大的数字社会,相应的也产生了巨量的数字数据,保证数字数据的安全传输就是保证广大人民群众的切身利益,因此本文聚焦移动通信网络的网络安全,网络安全技术多种多样,其中IPSec(internet Protocol Security)就是涉及安全问题非常常用的一个协议簇。

随着大数据、云计算等技术的应用,数据规模也随之跨越式增长,在人员密集区域如火车站,商场,学校等,其产生的数据量也是非常巨大的,而传统的IPSec在吞吐海量数据的时候其吞吐率会严重衰减,延迟变长,影响用户使用,究其原因,其性能主要瓶颈是由内核和上下文切换的分层网络数据包处理造成的。

为优化IPSec在面对上述问题时的高延迟,解决瓶颈问题,提出使用DPDK套件进行用户态协议栈设计,它的优点是绕过了内核网络数据包的处理,并在用户空间中提供了对数据包的直接访问,解决其在进行上下文切换时的瓶颈问题。

1  IPSec概述

1.1  简介

IPSec(internet Protocol Security)是涉及安全问题非常常用的一个协议簇,它具体是指一套用于端到端报文加密的安全协议,主要由ESP、AH、SA以及IKE组成,旨在确保传输数据的保密性、真实性和完整性,其体系结构如图1所示,其应用场景非常广泛,主要为IP层(第三层)提供安全性保障,目前主要应用的有两类算法:其一是以AES、DES等作为加密算法的对称加密算法,其二是以SHA1、SHA256、MD5等作为加密算法的单向哈希算法。

1.2  移动通信网络IPSec

在移动通信网络里建立VPN,目前没有形成专门的协议,使用的还是传统协议,比如IPSec,但是这些协议在移动通信网络下使用是存在问题的,比如在使用传统IPSec时,通常情况下应用预共享密钥或者是数字证书来进行身份认证,但是预共享密钥安全系数不够高,所以通常情况下都是用数字证书的方式。而在移动通信网络IPSec的情况下,数字证书存储的安全性是无法保障的,所以要做些修改,比如使用基于L2TP和IPSec协议的预共享密钥方式[1,2]等,这里不做赘述。

2  数据平面开发工具DPDK

2.1  DPDK简介

为了应对这种多副本实现和上下文切换成本,英特尔公司提出了一种数据平面解决方案,称为数据平面开发工具包(DPDK)[3,4]。DPDK是一组数据平面库和网卡驱动程序,它支持快速的数据包处理,并涉及从网卡到用户空间应用程序的网络数据包处理中的零复制操作。它的一些核心组件是环境抽象层(EAL)、内存管理器、缓冲区管理器、队列管理器、包流分类和轮询模式驱动程序等。

2.2  cryptodev库

DPDK网络包处理库在用户空间中提供高效的包处理,而对于加密操作,它提供了cryptodev库,用于在软件级(虚拟加密设备)和硬件级(物理加密设备)快速管理不同的加密操作。虚拟加密设备是灵活的、可定制的,可以绑定到多个核和多个加密队列,以加快加密/解密成本。

2.3  DPDK KNI

从操作的角度来看,DPDK需要绑定到一个网卡上,因此网卡需要对用户空间中的DPDK应用程序可见。此外,DPDK应用程序不能直接访问基于内核套接字的应用程序,反之亦然,因此在不同的层面上使用时,DPDK API通过高效的上下文切换实现高效的KNI(kernel NIC Interface),来允许DPDK访问Linux控制应用程序。

3  应用设计

3.1 传统处理框架与DPDK处理框架

Linux中部署最广泛的开源IPsec项目是strongSwan和Openswan。这两个项目都是FreeS/WAN项目的延续,但自2003年以来全面发展的范围各不相同。Openswan是以IKEv1为主要安全联盟协议开发的,后来扩展到补充部分IKEv2。与Openswan相比,strongSwan初始版本只包含IKEv2作为安全关联协议延迟供应商采用IKEv2,从版本4开始以后,完全支持IKEv1和IKEv2。本文选择了正在被开源社区不断开发和广泛部署的VPN(Virtual Private Network)应用程序strongSwan作为数据平面效率的研究对象[5,6]。

而主要则是设计网关框架[7],传统的设计是采用iptables规则,其主要工作在内核态,如图2所示,为将部分内容简化后的框架图,该图主要有两部分,一个是左侧的内核空间,一个是右侧的用户空间。其在内核空间设计了网络报文处理、安全关联数据库(Security Association Database)和安全策略数据库(Security Policy Database)存储和ESP报文处理,而用户空间和内核空间之间的交互是通过NetlinkxFRM进行的,没有直接访问内核空间,这个设计中的关键点是,所有的处理和存储都是在内核空间中完成的,而用户空间对网络数据包没有直接的读写访问。显然前文所提到的瓶颈是内核层的网络数据包处理模块,它从网卡读取/写入网络数据包,这个瓶颈对于所有基于内核套接字的网络应用程序来说都是常见的。

图2  传统处理框架流程

而为了解決这个瓶颈,使用DPDK实现网关框架设计,会使用用户空间来进行驱动,绕过了内核网络数据包的处理,并在用户空间中提供了对数据包的直接访问,以此为设计思路,来提升传输效率,DPDK处理框架如图3所示,与图2明显不同的是,所有的操作到集中到了用户空间,主要包含了这么几部分,分别是Socket-dpdk,IPSec-processor,Kernel-libIPSec,下面对这几部分进行简要说明。

图3  DPDK处理框架流程

3.2  Socket-dpdk

与传统方式不同的是,使用DPDK的嵌套字socker dpdk替代了原本的socket,由其进行队列的接收和发送,该模块主要负责网络数据包的处理和过滤。本设计是以前DPDK插座设计的延伸。报文从DPDK端口读取,如果是IKE报文,则转换为strongSwan报文,然后排队到charon。所有的IKE任务仍然由strongSwan管理,IKE功能作为strongSwan的默认功能;如果报文类型为ESP,则将报文放入IPSec-processor队列(不进行任何转换)进行ESP报文处理。套接字dpdk在一个独立的核心上并行地独立处理原始数据包。为了整合新的功能,有两个环形缓冲区来保持IKE流量和IPSec数据包(ESP);然后分别在socket receiver函数和IPSec-processor模块中访问(以便进一步处理)。在本文的设计中,使用了以下套接字结构:

struct socket_dpdk_socket_t {

uint16_t port;

uint16_t natt;

int max_packet;

uint16_t eth_port_id;

struct rte_kni *kni;

uint16_t loop_core;

struct rte_mempool *pktmbuf _pool;

struct rte_ring *ike_packets;

struct rte_ring *IPSec_packets;

struct rte_ring *IPSec0_interface;

};

3.3  IPSec-processor

所有输入方向和输出方向的ESP报文处理,包括封装、填充、加密/解密等操作,都在这个模块中完成。DPDK API为快速批量加密操作提供了虚拟加密设备。如上所述,strongSwan加密模块效率不高,因此在本文提出的模型中,使用DPDK加密设备来避免任何中间包转换。加密/解密是在DPDK加密设备中使用两个队列完成的;一个用于入站,另一个用于出站,位于两个独立的核心上。关于核心、队列和数据包流如图3所示。该模块总共使用两个核心来处理入站和出站数据包。SAD、SPD也由该模块管理,并通过DPDK哈希表实现。本模块直接访问DPDK端口的原始数据包进行处理,不涉及任何复制操作。这种零拷贝访问和DPDK加密设备,使得ESP报文处理更加高效。

3.4  Kernel-libIPSec

这个模块负责管理从内核到KNI的路由路径,反之亦然。IKE SA建立时启用路由,其实现方式与之前的用户空间设计类似。

3.5  实验结果

为了评估DPDK对性能的改善,测试环境是两台计算机之间的高速点对点连接,实验环境清单如表1所示,为了建立安全关联(SA),选择对称加密算法AES进行加密,因为DODK只支持两种AES模式,即CTR和CBC,虽然OFB和CFB优于CBC,但在DPDK加密开发库中不支持它们,因此本文选择CBC模式[8,9]。

为了获得数据,本文使用常用工具iperf来对吞吐量进行测量,qperf来对延迟时间进行测量,通过吞吐量和延迟来对比分析所设计的处理框架的性能提升。经过30次实验,取实验平均值,其数据如表2所示。

根据实验数据可以看出,在吞吐量方面,并没有明显变化,因为吞吐量更依赖于ESP报文处理成本,所以吞吐量没有显著提高;但是在延迟方面有很大改善,相比于原来,延迟时间缩短了62.62%,显然,硬件层接口只会影响延迟时间。

我们最终可以得出结论,对于基于DPDK的IPSec应用,可以明显缩短数据传输延迟时间,改善用户体验。

4  结  论

本文对于传统IPSec,移动通信网络下的IPSec,以及数据平面开发工具都做了介绍,并阐述了基于DPDK的应用设计。基于DPDK的高性能IPSec既可以保证用户的网络通信安全,同时也不会因为加密算法导致降低网络的吞吐率。在移动数据的时代,人们的生产生活与数据息息相关,网络数据安全也越来越受到普通用户注重,因此在保证数据安全的前提下,提升用户上网质量是非常必要的。

参考文献:

[1] 刘晔丽,岳俊峰,贾妍婕.基于IPv6蜂窝式移动通讯的虚拟专用网络 [J].四川兵工學报,2010,31(4):97-98+132.

[2] 周春月,刘云,卢燕飞.一种非对称隧道模式的移动VPN方案 [J].计算机工程与应用,2010,46(17):15-18.

[3] YANG Y F.Research and Implementation of User-Mode IPSec Based on DPDK [J].Computer Science and Application,2018,8(1):123-129.

[4] 吴承.用户态IPSec协议栈的研究与实现 [D].西安:西安电子科技大学,2014.

[5] SHARMA G.Secure Remote Access IPSEC Virtual Private Network to University Network System [J].Journal of Computer Science Research,2021,3(1):16-27.

[6] ULLAH S,CHOI J,OH H.IPsec for high speed network links:Performance analysis and enhancements [J].Future Generation Computer Systems,2020,107:112-125.

[7] 李超凡,刘伟,吴响,等.高性能IPSec VPN工程设计与仿真 [J].实验技术与管理,2021,38(2):73-77.

[8] 周益旻,刘方正,杜镇宇,等.IPSec VPN安全性漏洞分析及验证 [J].计算机工程,2021,47(6):142-151.

[9] 田春岐,王立明,蔡勉,等.IPSec VPN的研究和分析 [J].计算机工程与应用,2004(4):163-166.

作者简介:曼茂立(1820.12—),男,汉族,河北承德人,副教授,硕士研究生,研究方向:通讯工程;骆磊(1994.06—),男,满族,河北承德人,助教,硕士研究生,研究方向:图像处理;田辉(1982.03—),男,满族,河北承德人,副教授,博士研究生,研究方向:机械优化设计;高海军(1990.01—),男,满族,河北承德人,讲师,博士,研究方向:矿床学及矿床地球化学、校企合作及职业教育。