国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種隧道型SSL_VPN網(wǎng)關(guān)設(shè)備性能提升方法*

2018-05-05 07:30駱華杰陳宇燕
通信技術(shù) 2018年4期
關(guān)鍵詞:通信協(xié)議網(wǎng)卡內(nèi)核

陳 洋,駱華杰,陳宇燕

(中國(guó)電子科技集團(tuán)公司第三十研究所,四川 成都 610041)

0 引 言

VPN(Virtual Private Network)虛擬專(zhuān)有網(wǎng)絡(luò)的關(guān)鍵技術(shù)包括數(shù)據(jù)加密技術(shù)、身份認(rèn)證技術(shù)、隧道技術(shù)和密鑰管理技術(shù)[1]。它的發(fā)展是為了解決企業(yè)或個(gè)人能夠廉價(jià)且安全地利用公共網(wǎng)絡(luò)構(gòu)建“專(zhuān)有”網(wǎng)絡(luò)進(jìn)行通信的問(wèn)題。根據(jù)VPN在網(wǎng)絡(luò)協(xié)議的不同層次上的實(shí)現(xiàn)進(jìn)行劃分,可以將VPN分為鏈路層VPN、網(wǎng)絡(luò)層VPN和傳輸層VPN[2]。目前,市場(chǎng)上企業(yè)級(jí)用戶應(yīng)用最廣泛的是后兩者,即IPsec VPN產(chǎn)品和SSL VPN產(chǎn)品。這兩類(lèi)產(chǎn)品在應(yīng)用模式、關(guān)鍵技術(shù)等方面有共通之處,在網(wǎng)絡(luò)適應(yīng)性、產(chǎn)品性能等方面又存在差異。本文將對(duì)SSL VPN的基礎(chǔ)知識(shí)進(jìn)行介紹,并重點(diǎn)剖析和解決如何提升其性能表現(xiàn),使產(chǎn)品更具市場(chǎng)競(jìng)爭(zhēng)力。

1 SSL VPN技術(shù)概述

1.1 SSL VPN通信原理

SSL VPN網(wǎng)絡(luò)通信雙方使用的核心協(xié)議是SSL協(xié)議。SSL協(xié)議在TCP/IP協(xié)議棧中介于應(yīng)用層與傳輸層之間,如圖1所示[3]。SSL協(xié)議內(nèi)部又分為兩個(gè)子層,上層的握手協(xié)議實(shí)現(xiàn)通信雙方的認(rèn)證與密鑰交換、通信參數(shù)協(xié)商;下層的記錄協(xié)議作為承載層,在握手協(xié)議交互過(guò)程后,承載并傳輸用戶數(shù)據(jù)。最新的SSL協(xié)議已演進(jìn)為T(mén)LS1.2,可詳閱RFC5246。

圖1 SSL協(xié)議體系結(jié)構(gòu)

SSL協(xié)議設(shè)計(jì)之初是為了保障Web應(yīng)用的通信安全??蛻舳丝梢岳肳eb瀏覽器自帶的SSL功能和SSL VPN網(wǎng)關(guān)建立起SSL加密通道,在通過(guò)數(shù)字證書(shū)對(duì)用戶信息進(jìn)行認(rèn)證后,SSL VPN網(wǎng)關(guān)將客戶端加密的請(qǐng)求進(jìn)行解釋后,轉(zhuǎn)發(fā)給相關(guān)的服務(wù)器進(jìn)行通信。因此,SSL VPN被廣泛應(yīng)用于網(wǎng)上銀行、郵箱等互聯(lián)網(wǎng)服務(wù)中[4]。這種VPN隧道的建立無(wú)需安裝客戶端軟件。由于基于TCP協(xié)議天然具有穿越防火墻、地址轉(zhuǎn)換設(shè)備的能力,特別適用于移動(dòng)接入。

對(duì)于一些企業(yè)應(yīng)用如FTP,由于可以內(nèi)嵌于瀏覽器,由Web頁(yè)面呈現(xiàn)、由HTTPS協(xié)議承載,自然而然地得到了SSL VPN提供的安全傳輸保護(hù)。

如果是企業(yè)的非Web應(yīng)用需要SSL VPN提供安全保障,則需要在用戶端設(shè)備運(yùn)行一個(gè)客戶端小程序,實(shí)現(xiàn)對(duì)被保護(hù)應(yīng)用的TCP或UDP端口監(jiān)聽(tīng),代被保護(hù)應(yīng)用建立SSL隧道,并封裝轉(zhuǎn)發(fā)應(yīng)用數(shù)據(jù)給SSL服務(wù)器端[5]。

以上三種應(yīng)用場(chǎng)景的SSL VPN稱(chēng)作代理型SSL VPN,特點(diǎn)為承載的用戶數(shù)據(jù)為應(yīng)用層數(shù)據(jù),對(duì)特定端口的數(shù)據(jù)截獲,并通過(guò)SSL隧道傳輸。通信雙方通常以客戶/服務(wù)器非對(duì)等方式交互,并對(duì)客戶端并發(fā)數(shù)的支持性要求較高。

隨著SSL VPN產(chǎn)品在通信雙方均引入隧道技術(shù),出現(xiàn)了隧道型SSL VPN。特點(diǎn)是可以根據(jù)策略抓取用戶設(shè)備或用戶網(wǎng)絡(luò)的IP包,由SSL隧道承載發(fā)送,使其支持網(wǎng)絡(luò)到網(wǎng)絡(luò)的保護(hù)。這種應(yīng)用場(chǎng)景下,通信雙方對(duì)等,均需部署SSL VPN設(shè)備,稱(chēng)之為隧道型SSL VPN網(wǎng)關(guān)。如果說(shuō)IPsec VPN的通信原理是IP over IP,那么隧道型SSL VPN的通信原理就是IP over TCP。

1.2 隧道型SSL VPN網(wǎng)關(guān)的應(yīng)用模式

隧道型SSL VPN網(wǎng)關(guān)設(shè)備主要用于保護(hù)用戶子網(wǎng)或主機(jī)。部署時(shí),隧道型SSL VPN網(wǎng)關(guān)設(shè)備串接在被保護(hù)網(wǎng)絡(luò)出口與路由器(IP網(wǎng)關(guān))之間,如圖2所示。SSL VPN網(wǎng)關(guān)配置為與用戶子網(wǎng)同網(wǎng)段IP,缺省網(wǎng)關(guān)IP地址配置為路由器IP地址,無(wú)需改變用戶網(wǎng)絡(luò)拓?fù)渑c既有配置。如果將SSL VPN網(wǎng)關(guān)之間建立一條SSL隧道,配置策略為保護(hù)子網(wǎng),那么子網(wǎng)A與子網(wǎng)B之間的IP包會(huì)被網(wǎng)關(guān)提取到應(yīng)用層,封裝為SSL記錄協(xié)議的凈荷傳送到對(duì)端再解封裝轉(zhuǎn)發(fā)給對(duì)端子網(wǎng),完成安全通信。

圖2 網(wǎng)關(guān)-網(wǎng)關(guān)應(yīng)用場(chǎng)景

2 隧道型SSL VPN網(wǎng)關(guān)的性能瓶頸分析

2.1 主流設(shè)備的技術(shù)架構(gòu)

通過(guò)查閱大量技術(shù)文獻(xiàn)和產(chǎn)品資料,隧道型SSL VPN大都基于虛擬網(wǎng)卡技術(shù)實(shí)現(xiàn)[1]。隧道型SSL VPN網(wǎng)關(guān)設(shè)備普遍以嵌入式Linux作為軟件平臺(tái),內(nèi)部體系結(jié)構(gòu)如圖3所示。配置管理模塊提供用戶界面,包含設(shè)備網(wǎng)絡(luò)參數(shù)配置、狀態(tài)查看、策略增刪啟停等功能。VPN通信協(xié)議模塊實(shí)現(xiàn)SSL協(xié)議,根據(jù)配置管理單元下發(fā)的策略啟停SSL隧道。安全服務(wù)模塊提供SSL握手協(xié)議及記錄協(xié)議相關(guān)的算法支持。虛擬網(wǎng)卡驅(qū)動(dòng)提供內(nèi)核態(tài)用戶數(shù)據(jù)的提取發(fā)送,以及與用戶態(tài)VPN通信協(xié)議模塊間的數(shù)據(jù)傳遞。

圖3 設(shè)備內(nèi)部體系結(jié)構(gòu)

廠商根據(jù)產(chǎn)品功用及性能需求,有的直接利用OpenSSL開(kāi)源軟件實(shí)現(xiàn)VPN通信協(xié)議模塊和安全服務(wù)模塊。OpenSSL是志愿者共同開(kāi)發(fā)的一個(gè)健壯的、商業(yè)級(jí)別的、自包含的安全開(kāi)發(fā)包,實(shí)現(xiàn)了SSL/TLS協(xié)議和一個(gè)功能完整的加密庫(kù)[6]。它的硬件引擎規(guī)范了接口,方便廠商自己實(shí)現(xiàn)各種軟硬算法。廠商也可以利用Linux自帶的TUN/TAP驅(qū)動(dòng)實(shí)現(xiàn)虛擬網(wǎng)卡模塊,TAP設(shè)備指明與協(xié)議棧交互的是來(lái)自以太網(wǎng)的數(shù)據(jù)包,TUN設(shè)備指明交互的是一個(gè)類(lèi)似點(diǎn)到點(diǎn)設(shè)備的數(shù)據(jù)包。就隧道型SSL VPN網(wǎng)關(guān)而言,創(chuàng)建虛擬網(wǎng)卡使用TUN或TAP驅(qū)動(dòng)沒(méi)有本質(zhì)區(qū)別,虛擬網(wǎng)卡與用戶態(tài)交互的都是以太網(wǎng)幀。

2.2 主要瓶頸與解決方案

隧道型SSL VPN設(shè)備主要提供網(wǎng)絡(luò)到網(wǎng)絡(luò)的傳輸安全保護(hù),采用網(wǎng)關(guān)對(duì)網(wǎng)關(guān)的部署方式,弱化了對(duì)SSL隧道并發(fā)連接數(shù)性能的需求,更強(qiáng)調(diào)了單SSL隧道的業(yè)務(wù)處理轉(zhuǎn)發(fā)能力。相對(duì)于其他層VPN設(shè)備,隧道型SSL VPN兩端設(shè)備要將業(yè)務(wù)數(shù)據(jù)兩次從內(nèi)核態(tài)提取到用戶態(tài)封裝解封裝。市場(chǎng)上SSL VPN產(chǎn)品,以深信服VPN系列產(chǎn)品為例,SSL隧道吞吐率普遍不到千兆電口帶寬的30%。

從硬件架構(gòu)方面提升單SSL隧道處理能力,需選用高性能處理器平臺(tái),用硬件方式實(shí)現(xiàn)安全服務(wù)單元功能等。從軟件架構(gòu)方面看,調(diào)整空間相對(duì)局促。

3 通過(guò)軟件方式提升整機(jī)性能的一種方法

3.1 虛擬網(wǎng)卡與VPN通信協(xié)議模塊間的協(xié)議改造

虛擬網(wǎng)卡與VPN通信協(xié)議模塊間以字符設(shè)備讀寫(xiě)read/write的方式進(jìn)行業(yè)務(wù)數(shù)據(jù)(以太網(wǎng)幀)的交互。內(nèi)外網(wǎng)雙向,一包業(yè)務(wù)數(shù)據(jù)就會(huì)觸發(fā)一次read或write調(diào)用,造成用戶態(tài)與內(nèi)核態(tài)的一次通信交互。經(jīng)分析,作者提出軟硬件架構(gòu)均不變,將一幀一讀寫(xiě)的方式改造為多幀拼接再讀寫(xiě)的方式。VPN通信協(xié)議模塊與虛擬網(wǎng)卡交互的數(shù)據(jù)直接映射到記錄協(xié)議的凈荷。改造前SSL記錄協(xié)議承載的業(yè)務(wù)數(shù)據(jù)凈荷和改造后業(yè)務(wù)數(shù)據(jù)凈荷協(xié)議格式對(duì)比,如圖4所示。

圖4 記錄協(xié)議承載單幀與多幀對(duì)比

一次交互數(shù)據(jù)改為多幀拼接方式后,能保障在傳輸業(yè)務(wù)數(shù)據(jù)總量不變的前提下,成倍地減少內(nèi)核態(tài)與用戶態(tài)的數(shù)據(jù)讀寫(xiě)頻次。用戶態(tài)VPN通信協(xié)議模塊還能夠充分利用SSL記錄協(xié)議分段長(zhǎng)度最大16 kB的承載能力。一次記錄協(xié)議的socket收發(fā),便可直接承載多幀拼接的業(yè)務(wù)數(shù)據(jù)。

3.2 虛擬網(wǎng)卡內(nèi)部Skb數(shù)據(jù)包處理流程改造

以Linux內(nèi)核源碼2.6.33.4版本自帶的通用TUN/TAP設(shè)備驅(qū)動(dòng)源文件drivers/net/tun.c(版本1.6)為例。該驅(qū)動(dòng)在機(jī)制上已經(jīng)實(shí)現(xiàn)了以太網(wǎng)幀在內(nèi)核態(tài)以Skb結(jié)構(gòu)體形式與用戶態(tài)字符緩沖區(qū)形式之間的轉(zhuǎn)換與傳遞。要實(shí)現(xiàn)以太網(wǎng)幀的拼接與解拼接處理,需改造幾個(gè)重點(diǎn)函數(shù)。用戶態(tài)向內(nèi)核態(tài)虛擬網(wǎng)卡驅(qū)動(dòng)發(fā)送包,稱(chēng)下行方向,需改造tun_get_user函數(shù),實(shí)現(xiàn)解拼接。從內(nèi)核態(tài)向用戶態(tài)發(fā)送數(shù)據(jù)包,稱(chēng)上行方向,需改造tun_chr_aio_read函數(shù),實(shí)現(xiàn)拼接。數(shù)據(jù)處理流程如圖5所示。

如果將原數(shù)據(jù)驅(qū)動(dòng)的算法形象地稱(chēng)之為“上車(chē)即走,一人也走”,那么新算法可以稱(chēng)為“上車(chē)即走,即拼即走”。這樣既保障了人少時(shí)能及時(shí)發(fā)車(chē),又能保障人多時(shí)每趟車(chē)都盡量坐滿,運(yùn)能利用極大提升。

3.3 試驗(yàn)結(jié)果

記錄協(xié)議一次可以承載最多16 kB的業(yè)務(wù)數(shù)據(jù),按照以太網(wǎng)幀最大1 500 kB計(jì)算,理論上一次可以拼接10幀。將2臺(tái)測(cè)試用網(wǎng)關(guān)設(shè)備對(duì)連,建立一條明通隧道,使用飛秋傳遞大文件觀察拼接幀數(shù)與千兆網(wǎng)口傳輸吞吐率的關(guān)系,結(jié)果如表1所示。

圖5 改造后的下行和上行數(shù)據(jù)處理流程

表1 拼接幀數(shù)與千兆網(wǎng)口傳輸吞吐率的關(guān)系

可以得出結(jié)論,相同軟硬件架構(gòu)下,經(jīng)過(guò)改造的虛擬網(wǎng)卡,拼接多幀方式比單幀方式吞吐率明顯成倍提升。超過(guò)一定拼接數(shù)后達(dá)到極限,可能是其他因素導(dǎo)致了新的瓶頸顯現(xiàn),影響了性能的進(jìn)一步提升,有待進(jìn)一步研究。

4 結(jié) 語(yǔ)

由于SSL記錄協(xié)議并未定義承載業(yè)務(wù)數(shù)據(jù)的封裝格式[1],給了各廠商較大的自由度來(lái)實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)封裝。本文提出的隧道型SSL VNP網(wǎng)關(guān)設(shè)備性能提升方法,對(duì)既有實(shí)現(xiàn)的改造代價(jià)較小。同廠商設(shè)備由于記錄協(xié)議業(yè)務(wù)數(shù)據(jù)的封裝遵從相同自定義格式,對(duì)通道性能提升明顯。但是,正是這種自定義方式的改造,在跨廠商設(shè)備互通方面則不具備優(yōu)勢(shì),有待進(jìn)一步觀察SSL協(xié)議的發(fā)展。其他方面,考慮到用戶可接受的成本與安全需求,隧道型SSL VPN設(shè)備還可以考慮集成防火墻包過(guò)濾功能、雙機(jī)熱備功能、多機(jī)負(fù)載均衡等功能,但會(huì)極大地增加設(shè)備軟硬件復(fù)雜度,對(duì)性能的瓶頸分析和提升會(huì)是更復(fù)雜的研究課題。

參考文獻(xiàn):

[1] 劉洪強(qiáng).基于SSL協(xié)議的VPN技術(shù)研究與實(shí)現(xiàn)[D].濟(jì)南:山東大學(xué),2008.LIU Hong-qiang.Research and Implementation of SSL-based VPN[D].Jinan:Shandong University,2008.

[2] 梁鈞.基于SSL協(xié)議的VPN關(guān)鍵技術(shù)的分析與設(shè)計(jì)[D].昆明:云南大學(xué),2010.LIANG Jun. Study and Design on SSL-based VPN Key Technology[D].Kunming:Yunnan University,2010.

[3] 王厚濤.SSL VPN安全技術(shù)研究及改進(jìn)[D].北京:北京郵電大學(xué),2011.WANG Hou-tao.The SSL VPN Security Technology Research and Improvement[D].Beijing:BeiJing University of Posts and Telecommunications,2011.

[4] 池卓軒.VPN技術(shù)在企業(yè)應(yīng)用中的研究[D].廣州:華南理工大學(xué),2010.CHI Zhuo-xuan.The Study of VPN Technology in Enterprise Applications[D].Guangzhou:South China University of Technology,2010.

[5] 楊文凱.SSLVPN安全關(guān)鍵技術(shù)研究[D].成都:西南交通大學(xué),2010.YANG Wen-kai.Research on Security Key Technology of SSL VPN[D].Chengdu:Southwest Jiaotong University,2010.

[6] 王瑋,龍毅宏,唐志紅等.OpenSSL引擎機(jī)制的研究[J].通信技術(shù),2011,44(10):63.WANG Wei,LONG Yi-hong,TANG Zhi-hong,et al.Study on OpenSSL Engine Mechanism[J].Communication Technologies,2011,44(10):63.

猜你喜歡
通信協(xié)議網(wǎng)卡內(nèi)核
多內(nèi)核操作系統(tǒng)綜述①
強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
活化非遺文化 承啟設(shè)計(jì)內(nèi)核
基于Wireshark的列控中心以太網(wǎng)通信協(xié)議解析器的研究與實(shí)現(xiàn)
部署Linux虛擬機(jī)出現(xiàn)的網(wǎng)絡(luò)故障
微軟發(fā)布新Edge瀏覽器預(yù)覽版下載換裝Chrome內(nèi)核
Server 2016網(wǎng)卡組合模式
車(chē)載網(wǎng)絡(luò)通信協(xié)議標(biāo)準(zhǔn)化問(wèn)題研究
電動(dòng)汽車(chē)充電接口及通信協(xié)議新國(guó)標(biāo)發(fā)布
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專(zhuān)用Dragon網(wǎng)卡