曼茂立 駱磊 田輝 高海軍





摘 ?要:移動通信技術和我們的日常生活息息相關,因此文章聚焦移動通信網絡安全,旨在保證移動通信安全的情況下提高傳輸效率。文章主要使用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—),男,滿族,河北承德人,講師,博士,研究方向:礦床學及礦床地球化學、校企合作及職業教育。