薛江波 胡曦明 馬苗 李鵬
摘 要:針對IPSec VPN如何實(shí)現(xiàn)NAT穿越的問題,基于H3C Cloud Lab平臺,通過仿真實(shí)驗(yàn)對采用RSIP、NAT-T和NAT前置等現(xiàn)有三種主流IPSec VPN的NAT穿越技術(shù)進(jìn)行了性能分析。在此基礎(chǔ)上,提出了一種基于IPSec隧道多層嵌套的解決方案并進(jìn)行了仿真實(shí)驗(yàn)。結(jié)果表明該方案具有安全性完備、協(xié)議設(shè)計(jì)一體化以及實(shí)現(xiàn)復(fù)雜度低等特點(diǎn),為VPN的NAT穿越提供了一種新的技術(shù)途徑。
關(guān)鍵詞:IPSec;虛擬專用網(wǎng);隧道;地址轉(zhuǎn)換;多層嵌套
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A
Simulation of NAT traversal yechnique based on IPSec VPN
Abstract: Aiming at the problem of NAT traversal of IPSec VPN, based on the H3C Cloud Lab platform, the performance of NAT traversal using three mainstream IPSec VPN, such as RSIP, NAT-T and NAT preamble, is analyzed through simulation. Based on this, a solution based on multilayer nested IPSec tunnels is proposed and simulated. The results show that the scheme has the characteristics of complete security, protocol design integration and low complexity of implementation, and provides a new technical approach for NAT traversal of VPN.
Key words: IPSec; VPN; tunnel; NAT; multi-layer tunneling
1 引言
VPN(Virtual Private Network,虛擬專用網(wǎng))是目前廣泛采用的一種在廣域網(wǎng)環(huán)境下實(shí)現(xiàn)園區(qū)網(wǎng)互聯(lián)的解決方案,其中基于IPSec(Internet Protocol Security)構(gòu)建VPN的技術(shù)[1],一方面由于IPSec引入了完整的安全機(jī)制,包括加密、認(rèn)證和數(shù)據(jù)防篡改功能,另一方面IPSec協(xié)議通過包封裝技術(shù)在私網(wǎng)間搭建隧道可有效解決私網(wǎng)數(shù)據(jù)通過公網(wǎng)跨區(qū)域傳輸問題,因而在校園網(wǎng)[2]、遠(yuǎn)程教育[3]、金融行業(yè)[4]、即時(shí)通信[5]等多個(gè)領(lǐng)域得到大規(guī)模應(yīng)用。
在實(shí)際應(yīng)用中,由于私網(wǎng)公網(wǎng)之間的地址轉(zhuǎn)換(Network Address Translation, NAT)會改變IP數(shù)據(jù)包頭部,從而使得IPSec隧道構(gòu)建機(jī)制與NAT不能兼容,由此造成IPSec VPN的適用場合受限。因此,IPSec VPN的NAT穿越技術(shù)[6]作為VPN的關(guān)鍵技術(shù)得到了廣泛關(guān)注和深入研究。
2 發(fā)展現(xiàn)狀
在基于IPSec實(shí)現(xiàn)VPN的技術(shù)中,IPSec協(xié)議起到的關(guān)鍵作用有保護(hù)IP包首部和載荷數(shù)據(jù)的完整性,這意味著IPSec禁止任何對整個(gè)IP包數(shù)據(jù)的修改。與之對比,NAT處理過程則恰恰是通過修改IP數(shù)據(jù)包的首部和載荷數(shù)據(jù)中攜帶的傳輸層端口號等信息,來實(shí)現(xiàn)私網(wǎng)地址和公網(wǎng)地址之間的轉(zhuǎn)換。目前,針對NAT環(huán)境下的IPSec VPN部署問題已形成了較為成熟的解決方案。
2.1 技術(shù)方案
(1)基于特定域IP (Realm Specific IP,RSIP)的穿越技術(shù)[7]
IPSec與NAT之所以有沖突,是因?yàn)樵趨f(xié)議最初設(shè)計(jì)的時(shí)候就沒有考慮到兩種技術(shù)之間的兼容性,要想徹底消除它們之間的沖突應(yīng)當(dāng)從協(xié)議設(shè)計(jì)角度去分析,對于IPSec可以更改其協(xié)議設(shè)計(jì)從而從根源上解決沖突或者對于NAT則可以使用其替代協(xié)議RSIP,這種解決方案能夠全面解決IPSec與NAT的兼容問題,但是它的實(shí)現(xiàn)則相對復(fù)雜,而且需要對原有設(shè)備做較大改動。
(2)基于NAT-T(NAT Traversal)的穿越技術(shù)[8]
使用UDP封裝ESP(Encapsulating Security Payload)載荷,UDP提供了最小標(biāo)準(zhǔn)的封裝,在ESP頭之前再加一個(gè)8字節(jié)的UDP頭,相較于TCP,UDP是面向無連接的協(xié)議,避免了引入TCP會對IPSec造成負(fù)面影響。這種方法不需要對Internet密鑰交換協(xié)議(Internet Key Exchange, IKE)或者IPSec做修改,實(shí)現(xiàn)也最為簡單。
(3)基于NAT前置的穿越技術(shù)[9]
對于站點(diǎn)到站點(diǎn)之間建立IPSec VPN的情況,在工程中可以在同一設(shè)備中實(shí)現(xiàn)IPSec和NAT,并且將NAT放在IPSec之前處理,就可以避免兩種技術(shù)的沖突。但是,這種解決方案有它的局限性,如果超出了它的適用范圍,則這種方案就不再適用了。
2.2 仿真實(shí)驗(yàn)
H3C Cloud Lab是H3C推出的一款推出的界面圖形化全真網(wǎng)絡(luò)設(shè)備模擬軟件,用戶可以通過該平臺實(shí)現(xiàn)多種型號網(wǎng)絡(luò)通信設(shè)備的組網(wǎng)、配置和調(diào)試,與Packet Tracer等應(yīng)用軟件型模擬實(shí)驗(yàn)工具不同,H3C Cloud Lab可以在仿真環(huán)境下實(shí)現(xiàn)完整的數(shù)據(jù)通信過程。
在上述RSIP、NAT-T和NAT前置等現(xiàn)有三種主流IPSec VPN的NAT穿越技術(shù)中,NAT-T技術(shù)由于實(shí)現(xiàn)相對簡單因而得到廣泛應(yīng)用。為深入開展研究,本文基于H3C Cloud Lab對NAT-T進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)拓?fù)鋱D如圖1所示。
在設(shè)備RTA處抓取報(bào)文,圖2為IKE SA(ISAKMP Security Association)第一階段協(xié)商報(bào)文,在此階段兩端設(shè)備均使用UDP500端口進(jìn)行協(xié)商,圖3為IKE SA第二階段協(xié)商報(bào)文,在NAT環(huán)境中IPSec SA(IPSec Security Association)的協(xié)商以及后續(xù)數(shù)據(jù)流量的傳輸均使用UDP4500端口。根據(jù)抓包結(jié)果分析可知使用NAT-T技術(shù)報(bào)文封裝格式如圖4所示。
需要說明的是,實(shí)驗(yàn)中沒有特殊說明的地方IKE均指的是IKEv1。在這個(gè)實(shí)驗(yàn)中也可以使用IKEv2協(xié)商方式進(jìn)行,IKEv2[10]與IKEv1都是使用UDP 500端口進(jìn)行IKE SA和IPSec Sa協(xié)商,不同的是后續(xù)流量IKEv2均使用UDP 4500端口傳輸,即用NAT-T技術(shù)傳輸,因此若使用IKEv2協(xié)商方式則不用考慮NAT環(huán)境,也簡化了部署步驟。
2.3 性能分析
(1)處理時(shí)延長。需要借助NAT-T技術(shù),增加了設(shè)備處理的時(shí)間。
(2)安全性不夠完備。使用野蠻模式協(xié)商IKE SA過程中響應(yīng)者的身份無法得到有效保護(hù)。
(3)功能受限。野蠻模式提供的功能非常有限[11]。
3 基于IPSec隧道多層嵌套的NAT穿越技術(shù)
常見的NAT穿越方案可以滿足大多數(shù)企業(yè)的需求,但是對于安全性需求更高的企業(yè)來說常見的NAT穿越方案則不足以滿足需求,需要一種更加可靠安全的NAT穿越方案。為此,本文提出一種基于IPSec隧道多層嵌套[12]的解決方案并進(jìn)行仿真實(shí)驗(yàn)。
3.1方案設(shè)計(jì)
這種方案的思路是,首先在兩端外部網(wǎng)關(guān)出口端搭建IPSec隧道以保證內(nèi)部網(wǎng)關(guān)之間可以正常建立外層IPSec隧道,其次在內(nèi)部網(wǎng)關(guān)之間建立內(nèi)層IPSec隧道,最后通過嵌套隧道實(shí)現(xiàn)IPSec VPN,并且兩個(gè)私網(wǎng)數(shù)據(jù)能夠正常通過兩端NAT設(shè)備。
3.2 技術(shù)實(shí)現(xiàn)
針對上述方案設(shè)計(jì),使用IKE協(xié)商IPSec VPN,在H3C Cloud Lab仿真平臺上搭建實(shí)驗(yàn)環(huán)境并完成相關(guān)配置(如表1和表2所示),組網(wǎng)方案如圖5所示。
3.2.1 配置設(shè)備NAT_A
設(shè)備NAT_A IPSec安全策略配置命令如表1所示。
3.2.2 配置設(shè)備RTA
設(shè)備RTA IPSec安全策略配置命令如表2所示。
配置完成后分別在NAT_A以及RTA設(shè)備對應(yīng)接口啟用IPSec安全策略即可。
3.3 驗(yàn)證與分析
3.3.1 發(fā)送端處理流程
使用多層隧道嵌套技術(shù)發(fā)送端設(shè)備的處理過程及原理如圖6和圖7所示。
(1)當(dāng)數(shù)據(jù)包到達(dá)設(shè)備RTA時(shí),檢測該數(shù)據(jù)包目的IP,當(dāng)該數(shù)據(jù)包的目的IP為隧道1對端IP時(shí)則引起IPSec隧道1的興趣流,對該數(shù)據(jù)包進(jìn)行封裝后進(jìn)入隧道1并轉(zhuǎn)發(fā)至設(shè)備NAT_A,否則正常轉(zhuǎn)發(fā)該數(shù)據(jù)包。
(2)當(dāng)數(shù)據(jù)包到達(dá)設(shè)備NAT_A時(shí),檢測該數(shù)據(jù)包的目的IP,當(dāng)數(shù)據(jù)包的目的IP為隧道2對端IP時(shí)引起IPSec隧道2的興趣流,對該數(shù)據(jù)包進(jìn)行封裝后將數(shù)據(jù)包轉(zhuǎn)發(fā)至公網(wǎng),最終傳輸?shù)綄Χ嗽O(shè)備,否則正常轉(zhuǎn)發(fā)該數(shù)據(jù)包。
3.3.2 多層隧道嵌套實(shí)現(xiàn)
由于IPSec隧道1安全協(xié)議采用的是AH協(xié)議,因此在數(shù)據(jù)部分并沒有加密,而是在原始IP頭之前添加了一個(gè)AH認(rèn)證頭。
根據(jù)圖8可知IKE協(xié)商IKE SA以及IPSec SA過程[13]。
(1)階段1工作模式選取主模式,主模式適用于IKE/ISAKMP交換的階段1(ISAKMP身份保護(hù)交換),總共使用了六條消息、三個(gè)步驟(請求/響應(yīng)),最終建立起IKE SA。其中,主模式的認(rèn)證方式為預(yù)共享密鑰的認(rèn)證,預(yù)共享密鑰的主模式交換如圖14所示。
(2)階段2交換模式為快速模式,快速模式依附于階段1的交互,其自身并不是一個(gè)完整的消息交互過程。作為SA協(xié)商過程的階段2,快速模式交換用于非ISAKMP SA(如AH、ESP)共享策略的協(xié)商以及密鑰材料的衍生。
(3)經(jīng)過階段1、階段2后IPSec SA就已經(jīng)協(xié)商成功,即IPSec隧道已經(jīng)搭建起來。
分析圖9和10所示,抓包結(jié)果可以得出IPSec多層隧道嵌套的報(bào)文封裝結(jié)構(gòu)如圖11所示。
3.3.3 實(shí)驗(yàn)總結(jié)
仿真實(shí)驗(yàn)表明,基于IPSec隧道多層嵌套的解決方案能夠?qū)崿F(xiàn)IPSec VPN的NAT穿越,該方案的優(yōu)點(diǎn)是IKE協(xié)商方
式可以不使用野蠻模式(積極模式),在協(xié)商過程中既可以保護(hù)發(fā)起者身份信息又可以保護(hù)響應(yīng)者信息,其中隧道1使用AH協(xié)議可以認(rèn)證整個(gè)數(shù)據(jù)包,隧道2采用ESP協(xié)議既有加密又有認(rèn)證,具有更完備的安全性。這種隧道嵌套方式只使用了IPSec技術(shù),沒有引入其它實(shí)現(xiàn)VPN的協(xié)議,協(xié)議體系更加一體化,因而在工程實(shí)現(xiàn)上更加簡捷,實(shí)現(xiàn)的復(fù)雜度低。
4 結(jié)束語
本文從常見的NAT穿越方式出發(fā),對NAT-T穿越方式進(jìn)行仿真實(shí)驗(yàn)并作了性能分析,在此基礎(chǔ)上提出使用多層隧道嵌套方式來解決IPSec與NAT的不兼容問題并進(jìn)行仿真實(shí)驗(yàn)。結(jié)果表明,本方案在性能上可以有效解決IPSec與NAT兼容問題,并且可以充分保障遠(yuǎn)程企業(yè)內(nèi)部網(wǎng)絡(luò)通信數(shù)據(jù)的安全。
采用隧道嵌套技術(shù)雖然可以解決許多實(shí)際應(yīng)用問題,但是這種方式對設(shè)備提出了較高的要求,并且對設(shè)備的運(yùn)算和數(shù)據(jù)傳輸承載能力提出了更高的要求,隧道嵌套技術(shù)仍然存在缺陷。
基金項(xiàng)目:
(1)陜西省教育科學(xué)“十三五”規(guī)劃2016年度課題:陜西高校面向大眾創(chuàng)業(yè)萬眾創(chuàng)新的教育實(shí)踐支撐平臺研究(SGH16H024)。
(2)中央高校基本科研業(yè)務(wù)費(fèi)專項(xiàng)資金資助項(xiàng)目:面向教育云的數(shù)據(jù)中心網(wǎng)絡(luò)關(guān)鍵技術(shù)研究(GK201503065)。
(3)現(xiàn)代教學(xué)技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室開放課題資助項(xiàng)目:大學(xué)計(jì)算機(jī)綜合能力培養(yǎng)生態(tài)鏈及其關(guān)鍵技術(shù)研究(SYSK201501)。
(4)陜西師范大學(xué)非師范拔尖創(chuàng)新人才培養(yǎng)計(jì)劃2017年度項(xiàng)目。
參考文獻(xiàn)
[1] 王鳳領(lǐng).基于IPSec的VPN技術(shù)的應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(09):250-253.
[2] 劉勁松,李超,柴文磊.IPv6校園網(wǎng)中IPSec VPN安全分析與應(yīng)用研究[J].信息安全與技術(shù),2011(06):40-41.
[3] 朱祥華.VPN技術(shù)在企業(yè)遠(yuǎn)程辦公中的研究與應(yīng)用[J].信息安全與技術(shù),2011(01):35-38.
[4] 林濤.IPSec VPN在銀行無線網(wǎng)絡(luò)中的應(yīng)用[J].中國金融電腦,2009(01):62-65.
[5] 黃超,趙建平,韋勇鋼.Netlink消息通信機(jī)制的IPSec VPN實(shí)現(xiàn)研究[J].網(wǎng)絡(luò)空間安全,2017,8(Z5):41-44.
[6] 張永平,萬艷麗.VPN網(wǎng)絡(luò)中IPSec穿越NAT的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2008(01):250-252.
[7] 洪帆,王嶺,朱賽凡.利用RSIP解決IPSEC和NAT的不兼容問題[J].計(jì)算機(jī)應(yīng)用,2003(S2):1-3.
[8] 李云釗.NAT-T實(shí)現(xiàn)IPSEC穿越NAT的全面分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2005(08):50-52.
[9] 何光文.IPSec與NAT在企業(yè)網(wǎng)中的共存模式[J].科技風(fēng),2015(02):112.
[10] 陳卓,張正文.Internet密鑰交換協(xié)議IKEv2研究[J].計(jì)算機(jī)應(yīng)用與軟件,2008(02):269-270+280.
[11] 何寶宏,田輝.IP虛擬專用網(wǎng)技術(shù)(第二版)[M].北京:人民郵電出版社,2011.
[12] 曹炯清. IPSec與NAT沖突問題隧道嵌套解決方案研究[J]. 信息安全與技術(shù),2015,6(01):35-39.
[13] 王昱白,汪海航,譚成翔.基于IPSec的VPN密鑰交換(IKE)協(xié)議的分析與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2003(01):62-63+99.