曼茂立 駱磊 田輝 高海軍
摘 ?要:移動通信技術(shù)和我們的日常生活息息相關(guān),因此文章聚焦移動通信網(wǎng)絡(luò)安全,旨在保證移動通信安全的情況下提高傳輸效率。文章主要使用IPSec協(xié)議簇進(jìn)行加密,確保傳輸數(shù)據(jù)的保密性、真實(shí)性和完整性,并針對IPSec在面對吞吐海量數(shù)據(jù)的時候會造成高延遲的問題提出解決方案,使用數(shù)據(jù)平面開發(fā)工具DPDK設(shè)計架構(gòu),解決由內(nèi)核和上下文切換的分層網(wǎng)絡(luò)數(shù)據(jù)包處理造成的瓶頸問題。
關(guān)鍵詞:IPSec;DPDK;移動通信網(wǎng)絡(luò)
中圖分類號:TP393 ? ? ? ?文獻(xiàn)標(biāo)識碼: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 ?引 ?言
隨著祖國經(jīng)濟(jì)騰飛,人民生活逐步富裕,手機(jī)成了人們?nèi)粘I钪械谋匦杵?,手機(jī)上網(wǎng)用戶越來越多,根據(jù)《中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》統(tǒng)計,截至2021年6月我國的網(wǎng)民規(guī)模多達(dá)10.11億,而手機(jī)上網(wǎng)人數(shù)多達(dá)9.86億人,已經(jīng)成為全球規(guī)模最大的數(shù)字社會,相應(yīng)的也產(chǎn)生了巨量的數(shù)字?jǐn)?shù)據(jù),保證數(shù)字?jǐn)?shù)據(jù)的安全傳輸就是保證廣大人民群眾的切身利益,因此本文聚焦移動通信網(wǎng)絡(luò)的網(wǎng)絡(luò)安全,網(wǎng)絡(luò)安全技術(shù)多種多樣,其中IPSec(internet Protocol Security)就是涉及安全問題非常常用的一個協(xié)議簇。
隨著大數(shù)據(jù)、云計算等技術(shù)的應(yīng)用,數(shù)據(jù)規(guī)模也隨之跨越式增長,在人員密集區(qū)域如火車站,商場,學(xué)校等,其產(chǎn)生的數(shù)據(jù)量也是非常巨大的,而傳統(tǒng)的IPSec在吞吐海量數(shù)據(jù)的時候其吞吐率會嚴(yán)重衰減,延遲變長,影響用戶使用,究其原因,其性能主要瓶頸是由內(nèi)核和上下文切換的分層網(wǎng)絡(luò)數(shù)據(jù)包處理造成的。
為優(yōu)化IPSec在面對上述問題時的高延遲,解決瓶頸問題,提出使用DPDK套件進(jìn)行用戶態(tài)協(xié)議棧設(shè)計,它的優(yōu)點(diǎn)是繞過了內(nèi)核網(wǎng)絡(luò)數(shù)據(jù)包的處理,并在用戶空間中提供了對數(shù)據(jù)包的直接訪問,解決其在進(jìn)行上下文切換時的瓶頸問題。
1 ?IPSec概述
1.1 ?簡介
IPSec(internet Protocol Security)是涉及安全問題非常常用的一個協(xié)議簇,它具體是指一套用于端到端報文加密的安全協(xié)議,主要由ESP、AH、SA以及IKE組成,旨在確保傳輸數(shù)據(jù)的保密性、真實(shí)性和完整性,其體系結(jié)構(gòu)如圖1所示,其應(yīng)用場景非常廣泛,主要為IP層(第三層)提供安全性保障,目前主要應(yīng)用的有兩類算法:其一是以AES、DES等作為加密算法的對稱加密算法,其二是以SHA1、SHA256、MD5等作為加密算法的單向哈希算法。
1.2 ?移動通信網(wǎng)絡(luò)IPSec
在移動通信網(wǎng)絡(luò)里建立VPN,目前沒有形成專門的協(xié)議,使用的還是傳統(tǒng)協(xié)議,比如IPSec,但是這些協(xié)議在移動通信網(wǎng)絡(luò)下使用是存在問題的,比如在使用傳統(tǒng)IPSec時,通常情況下應(yīng)用預(yù)共享密鑰或者是數(shù)字證書來進(jìn)行身份認(rèn)證,但是預(yù)共享密鑰安全系數(shù)不夠高,所以通常情況下都是用數(shù)字證書的方式。而在移動通信網(wǎng)絡(luò)IPSec的情況下,數(shù)字證書存儲的安全性是無法保障的,所以要做些修改,比如使用基于L2TP和IPSec協(xié)議的預(yù)共享密鑰方式[1,2]等,這里不做贅述。
2 ?數(shù)據(jù)平面開發(fā)工具DPDK
2.1 ?DPDK簡介
為了應(yīng)對這種多副本實(shí)現(xiàn)和上下文切換成本,英特爾公司提出了一種數(shù)據(jù)平面解決方案,稱為數(shù)據(jù)平面開發(fā)工具包(DPDK)[3,4]。DPDK是一組數(shù)據(jù)平面庫和網(wǎng)卡驅(qū)動程序,它支持快速的數(shù)據(jù)包處理,并涉及從網(wǎng)卡到用戶空間應(yīng)用程序的網(wǎng)絡(luò)數(shù)據(jù)包處理中的零復(fù)制操作。它的一些核心組件是環(huán)境抽象層(EAL)、內(nèi)存管理器、緩沖區(qū)管理器、隊列管理器、包流分類和輪詢模式驅(qū)動程序等。
2.2 ?cryptodev庫
DPDK網(wǎng)絡(luò)包處理庫在用戶空間中提供高效的包處理,而對于加密操作,它提供了cryptodev庫,用于在軟件級(虛擬加密設(shè)備)和硬件級(物理加密設(shè)備)快速管理不同的加密操作。虛擬加密設(shè)備是靈活的、可定制的,可以綁定到多個核和多個加密隊列,以加快加密/解密成本。
2.3 ?DPDK KNI
從操作的角度來看,DPDK需要綁定到一個網(wǎng)卡上,因此網(wǎng)卡需要對用戶空間中的DPDK應(yīng)用程序可見。此外,DPDK應(yīng)用程序不能直接訪問基于內(nèi)核套接字的應(yīng)用程序,反之亦然,因此在不同的層面上使用時,DPDK API通過高效的上下文切換實(shí)現(xiàn)高效的KNI(kernel NIC Interface),來允許DPDK訪問Linux控制應(yīng)用程序。
3 ?應(yīng)用設(shè)計
3.1 傳統(tǒng)處理框架與DPDK處理框架
Linux中部署最廣泛的開源IPsec項目是strongSwan和Openswan。這兩個項目都是FreeS/WAN項目的延續(xù),但自2003年以來全面發(fā)展的范圍各不相同。Openswan是以IKEv1為主要安全聯(lián)盟協(xié)議開發(fā)的,后來擴(kuò)展到補(bǔ)充部分IKEv2。與Openswan相比,strongSwan初始版本只包含IKEv2作為安全關(guān)聯(lián)協(xié)議延遲供應(yīng)商采用IKEv2,從版本4開始以后,完全支持IKEv1和IKEv2。本文選擇了正在被開源社區(qū)不斷開發(fā)和廣泛部署的VPN(Virtual Private Network)應(yīng)用程序strongSwan作為數(shù)據(jù)平面效率的研究對象[5,6]。
而主要則是設(shè)計網(wǎng)關(guān)框架[7],傳統(tǒng)的設(shè)計是采用iptables規(guī)則,其主要工作在內(nèi)核態(tài),如圖2所示,為將部分內(nèi)容簡化后的框架圖,該圖主要有兩部分,一個是左側(cè)的內(nèi)核空間,一個是右側(cè)的用戶空間。其在內(nèi)核空間設(shè)計了網(wǎng)絡(luò)報文處理、安全關(guān)聯(lián)數(shù)據(jù)庫(Security Association Database)和安全策略數(shù)據(jù)庫(Security Policy Database)存儲和ESP報文處理,而用戶空間和內(nèi)核空間之間的交互是通過NetlinkxFRM進(jìn)行的,沒有直接訪問內(nèi)核空間,這個設(shè)計中的關(guān)鍵點(diǎn)是,所有的處理和存儲都是在內(nèi)核空間中完成的,而用戶空間對網(wǎng)絡(luò)數(shù)據(jù)包沒有直接的讀寫訪問。顯然前文所提到的瓶頸是內(nèi)核層的網(wǎng)絡(luò)數(shù)據(jù)包處理模塊,它從網(wǎng)卡讀取/寫入網(wǎng)絡(luò)數(shù)據(jù)包,這個瓶頸對于所有基于內(nèi)核套接字的網(wǎng)絡(luò)應(yīng)用程序來說都是常見的。
圖2 ?傳統(tǒng)處理框架流程
而為了解決這個瓶頸,使用DPDK實(shí)現(xiàn)網(wǎng)關(guān)框架設(shè)計,會使用用戶空間來進(jìn)行驅(qū)動,繞過了內(nèi)核網(wǎng)絡(luò)數(shù)據(jù)包的處理,并在用戶空間中提供了對數(shù)據(jù)包的直接訪問,以此為設(shè)計思路,來提升傳輸效率,DPDK處理框架如圖3所示,與圖2明顯不同的是,所有的操作到集中到了用戶空間,主要包含了這么幾部分,分別是Socket-dpdk,IPSec-processor,Kernel-libIPSec,下面對這幾部分進(jìn)行簡要說明。
圖3 ?DPDK處理框架流程
3.2 ?Socket-dpdk
與傳統(tǒng)方式不同的是,使用DPDK的嵌套字socker dpdk替代了原本的socket,由其進(jìn)行隊列的接收和發(fā)送,該模塊主要負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)包的處理和過濾。本設(shè)計是以前DPDK插座設(shè)計的延伸。報文從DPDK端口讀取,如果是IKE報文,則轉(zhuǎn)換為strongSwan報文,然后排隊到charon。所有的IKE任務(wù)仍然由strongSwan管理,IKE功能作為strongSwan的默認(rèn)功能;如果報文類型為ESP,則將報文放入IPSec-processor隊列(不進(jìn)行任何轉(zhuǎn)換)進(jìn)行ESP報文處理。套接字dpdk在一個獨(dú)立的核心上并行地獨(dú)立處理原始數(shù)據(jù)包。為了整合新的功能,有兩個環(huán)形緩沖區(qū)來保持IKE流量和IPSec數(shù)據(jù)包(ESP);然后分別在socket receiver函數(shù)和IPSec-processor模塊中訪問(以便進(jìn)一步處理)。在本文的設(shè)計中,使用了以下套接字結(jié)構(gòu):
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為快速批量加密操作提供了虛擬加密設(shè)備。如上所述,strongSwan加密模塊效率不高,因此在本文提出的模型中,使用DPDK加密設(shè)備來避免任何中間包轉(zhuǎn)換。加密/解密是在DPDK加密設(shè)備中使用兩個隊列完成的;一個用于入站,另一個用于出站,位于兩個獨(dú)立的核心上。關(guān)于核心、隊列和數(shù)據(jù)包流如圖3所示。該模塊總共使用兩個核心來處理入站和出站數(shù)據(jù)包。SAD、SPD也由該模塊管理,并通過DPDK哈希表實(shí)現(xiàn)。本模塊直接訪問DPDK端口的原始數(shù)據(jù)包進(jìn)行處理,不涉及任何復(fù)制操作。這種零拷貝訪問和DPDK加密設(shè)備,使得ESP報文處理更加高效。
3.4 ?Kernel-libIPSec
這個模塊負(fù)責(zé)管理從內(nèi)核到KNI的路由路徑,反之亦然。IKE SA建立時啟用路由,其實(shí)現(xiàn)方式與之前的用戶空間設(shè)計類似。
3.5 ?實(shí)驗結(jié)果
為了評估DPDK對性能的改善,測試環(huán)境是兩臺計算機(jī)之間的高速點(diǎn)對點(diǎn)連接,實(shí)驗環(huán)境清單如表1所示,為了建立安全關(guān)聯(lián)(SA),選擇對稱加密算法AES進(jìn)行加密,因為DODK只支持兩種AES模式,即CTR和CBC,雖然OFB和CFB優(yōu)于CBC,但在DPDK加密開發(fā)庫中不支持它們,因此本文選擇CBC模式[8,9]。
為了獲得數(shù)據(jù),本文使用常用工具iperf來對吞吐量進(jìn)行測量,qperf來對延遲時間進(jìn)行測量,通過吞吐量和延遲來對比分析所設(shè)計的處理框架的性能提升。經(jīng)過30次實(shí)驗,取實(shí)驗平均值,其數(shù)據(jù)如表2所示。
根據(jù)實(shí)驗數(shù)據(jù)可以看出,在吞吐量方面,并沒有明顯變化,因為吞吐量更依賴于ESP報文處理成本,所以吞吐量沒有顯著提高;但是在延遲方面有很大改善,相比于原來,延遲時間縮短了62.62%,顯然,硬件層接口只會影響延遲時間。
我們最終可以得出結(jié)論,對于基于DPDK的IPSec應(yīng)用,可以明顯縮短數(shù)據(jù)傳輸延遲時間,改善用戶體驗。
4 ?結(jié) ?論
本文對于傳統(tǒng)IPSec,移動通信網(wǎng)絡(luò)下的IPSec,以及數(shù)據(jù)平面開發(fā)工具都做了介紹,并闡述了基于DPDK的應(yīng)用設(shè)計。基于DPDK的高性能IPSec既可以保證用戶的網(wǎng)絡(luò)通信安全,同時也不會因為加密算法導(dǎo)致降低網(wǎng)絡(luò)的吞吐率。在移動數(shù)據(jù)的時代,人們的生產(chǎn)生活與數(shù)據(jù)息息相關(guān),網(wǎng)絡(luò)數(shù)據(jù)安全也越來越受到普通用戶注重,因此在保證數(shù)據(jù)安全的前提下,提升用戶上網(wǎng)質(zhì)量是非常必要的。
參考文獻(xiàn):
[1] 劉曄麗,岳俊峰,賈妍婕.基于IPv6蜂窩式移動通訊的虛擬專用網(wǎng)絡(luò) [J].四川兵工學(xué)報,2010,31(4):97-98+132.
[2] 周春月,劉云,盧燕飛.一種非對稱隧道模式的移動VPN方案 [J].計算機(jī)工程與應(yīng)用,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] 吳承.用戶態(tài)IPSec協(xié)議棧的研究與實(shí)現(xiàn) [D].西安:西安電子科技大學(xué),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工程設(shè)計與仿真 [J].實(shí)驗技術(shù)與管理,2021,38(2):73-77.
[8] 周益旻,劉方正,杜鎮(zhèn)宇,等.IPSec VPN安全性漏洞分析及驗證 [J].計算機(jī)工程,2021,47(6):142-151.
[9] 田春岐,王立明,蔡勉,等.IPSec VPN的研究和分析 [J].計算機(jī)工程與應(yīng)用,2004(4):163-166.
作者簡介:曼茂立(1820.12—),男,漢族,河北承德人,副教授,碩士研究生,研究方向:通訊工程;駱磊(1994.06—),男,滿族,河北承德人,助教,碩士研究生,研究方向:圖像處理;田輝(1982.03—),男,滿族,河北承德人,副教授,博士研究生,研究方向:機(jī)械優(yōu)化設(shè)計;高海軍(1990.01—),男,滿族,河北承德人,講師,博士,研究方向:礦床學(xué)及礦床地球化學(xué)、校企合作及職業(yè)教育。