專(zhuān)利名稱(chēng):一種基于IPsec的NAT表項(xiàng)?;罘椒ê驮O(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其是一種基于IPsec (IP Security,IP安全)的NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)表項(xiàng)保活方法和設(shè)備。
背景技術(shù):
IPsec是三層隧道加密協(xié)議,是實(shí)現(xiàn)三層VPN (Virtual Private Network,虛擬專(zhuān)用網(wǎng)絡(luò))的安全技術(shù),并用于在IP層提供以下安全服務(wù):(I)數(shù)據(jù)機(jī)密性=IPsec發(fā)起方在通過(guò)網(wǎng)絡(luò)傳輸報(bào)文前對(duì)報(bào)文進(jìn)行加密;(2)數(shù)據(jù)完整性=IPsec響應(yīng)方對(duì)接收?qǐng)?bào)文進(jìn)行認(rèn)證,以確保報(bào)文在傳輸過(guò)程中沒(méi)有被篡改;(3)數(shù)據(jù)來(lái)源認(rèn)證=IPsec響應(yīng)方可以認(rèn)證發(fā)送IPsec報(bào)文的IPsec發(fā)起方是否合法;(4)防重放:IPsec響應(yīng)方可以檢測(cè)并拒絕接收過(guò)時(shí)或者重復(fù)的報(bào)文。
為了實(shí)現(xiàn)上述安全服務(wù),IPsec提供了認(rèn)證和加密等兩種安全機(jī)制;認(rèn)證機(jī)制使IP通信的響應(yīng)方能夠確認(rèn)報(bào)文發(fā)起方的真實(shí)身份以及報(bào)文在傳輸過(guò)程中是否遭篡改;力口密機(jī)制通過(guò)對(duì)報(bào)文進(jìn)行加密運(yùn)算來(lái)保證報(bào)文的機(jī)密性,防止報(bào)文在傳輸過(guò)程中被竊聽(tīng)。其中,IPsec協(xié)議中的AH (Authentication Header,驗(yàn)證頭)協(xié)議定義了認(rèn)證的應(yīng)用方法,ESP(Encapsulating Security Payload,封裝安全載荷)協(xié)議定義了加密和可選認(rèn)證的應(yīng)用方法;在實(shí)際進(jìn)行IP通信時(shí),可以根據(jù)實(shí)際安全需求同時(shí)使用AH和ESP,或者選擇使用其中一種。
IPsec在兩個(gè)端點(diǎn)之間提供安全通信,且兩個(gè)端點(diǎn)被稱(chēng)為IPsec對(duì)等體,分別為IPsec發(fā)起方和IPsec響應(yīng)方;此外,SA (Security Association,安全聯(lián)盟)是IPsec對(duì)等體之間對(duì)某些要素的約定;例如,使用哪種協(xié)議(AH、ESP)、使用哪種協(xié)議封裝模式(傳輸模式、隧道模式)、使用哪種加密算法等;進(jìn)一步的,IPsec對(duì)等體之間可以通過(guò)IKE (InternetKey Exchange, Internet密鑰交換)協(xié)商建立SA信息,如圖1所示,為IPsec與IKE的關(guān)系示意圖。
其中,IKE使用兩個(gè)階段為IPsec進(jìn)行密鑰協(xié)商并建立SA: (I) IPsec發(fā)起方和IPsec響應(yīng)方彼此之間建立一個(gè)已通過(guò)身份認(rèn)證和安全保護(hù)的通道,即建立一個(gè)IKE SA ;(2)通過(guò)第一階段建立的IKE SA為IPsec協(xié)商安全服務(wù),即為IPsec協(xié)商具體的SA,建立用于最終IP數(shù)據(jù)安全傳輸?shù)腎Psec SA。
如圖2所示,NAT是將IP報(bào)文頭中的IP地址轉(zhuǎn)換為另一個(gè)IP地址的過(guò)程,并用于實(shí)現(xiàn)私有網(wǎng)絡(luò)訪(fǎng)問(wèn)公共網(wǎng)絡(luò),有助于減緩可用IP地址空間的枯竭;進(jìn)一步的,如圖3所示,NAPT (Network Address Port Translation,網(wǎng)絡(luò)地址端口轉(zhuǎn)換)允許多個(gè)內(nèi)部地址映射到同一公有地址上,且NAPT同時(shí)映射IP地址和端口號(hào):即來(lái)自不同內(nèi)部地址的IP報(bào)文的源地址可以映射到同一外部地址,但各IP報(bào)文的端口號(hào)被轉(zhuǎn)換為該地址的不同端口號(hào),因此能夠共享同一地址,即私網(wǎng)IP地址+端口號(hào)與公網(wǎng)IP地址+端口號(hào)之間的轉(zhuǎn)換。
在目前的組網(wǎng)應(yīng)用中,IPsec以及NAT的使用都非常普遍,因此當(dāng)前可以同時(shí)部署IPsec和NAT設(shè)備;如圖4所示,RT2 (路由器)為NAT設(shè)備,PCl (主機(jī))和RTl在NAT內(nèi)側(cè),PC2和RT3在NAT外側(cè);當(dāng)PCl和PC2之間需要通信時(shí),需要在RTl和RT3之間建立一條IPsec鏈路;在RTl向RT3發(fā)送IKE協(xié)商報(bào)文后,NAT設(shè)備需要為該IKE協(xié)商報(bào)文維護(hù)NAT轉(zhuǎn)換表項(xiàng),以使RT3回應(yīng)的IKE協(xié)商報(bào)文能夠正確發(fā)送給RTl ;該NAT轉(zhuǎn)換表項(xiàng)有一定的老化時(shí)間(該老化時(shí)間為NAT設(shè)備上進(jìn)行配鉻的),在老化時(shí)間內(nèi)如果沒(méi)有IKE協(xié)商報(bào)文經(jīng)過(guò)NAT設(shè)備,則NAT設(shè)備會(huì)刪除該NAT轉(zhuǎn)換表項(xiàng)。
現(xiàn)有技術(shù)中,為了使NAT設(shè)備上的NAT轉(zhuǎn)換表項(xiàng)不被刪除,RTl需要周期性發(fā)送NAT表項(xiàng)?;顖?bào)文(發(fā)送周期缺省為20秒);但是,RTl周期性發(fā)送NAT表項(xiàng)保活報(bào)文(NATKeepalive報(bào)文)的前提條件是IKE SA存在,假設(shè)IKE SA不存在,則RTl不會(huì)發(fā)送NAT表項(xiàng)?;顖?bào)文給NAT設(shè)備。
由于IKE SA和IPsec SA不是必然同時(shí)存在,當(dāng)IKE SA不存在,IPsec SA存在時(shí),RTl不會(huì)發(fā)送NAT表項(xiàng)?;顖?bào)文,NAT設(shè)備在老化時(shí)間之后會(huì)刪除NAT轉(zhuǎn)換表項(xiàng);因此,在IPsec穿越NAT的情況下,由于沒(méi)有NAT轉(zhuǎn)換表項(xiàng),會(huì)導(dǎo)致RT3發(fā)送給RTl的流量由于無(wú)法命中NAT轉(zhuǎn)換表項(xiàng),從而出現(xiàn)斷流。發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種基于IPsec的NAT表項(xiàng)?;罘椒ê驮O(shè)備,當(dāng)不存在IKE SA,且存在IPsec SA時(shí),能夠發(fā)送NAT表項(xiàng)?;顖?bào)文,避免IPsec響應(yīng)方發(fā)送給IPsec發(fā)起方的流量在NAT設(shè)備上無(wú)法命中NAT轉(zhuǎn)換表項(xiàng)。
為了達(dá)到上述目的,本發(fā)明實(shí)施例提供一種基于IPsec的NAT表項(xiàng)保活方法,應(yīng)用于包括IPsec發(fā)起方、NAT設(shè)備和IPsec響應(yīng)方的網(wǎng)絡(luò)中,該方法包括以下步驟:
所述IPsec發(fā)起方建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA,并利用所述IKESA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsec SA,并啟動(dòng)所述IKESA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器;
所述IPsec發(fā)起方在所述IKE SA或者IPsec SA被刪除時(shí),判斷所述IKESA或者IPsec SA是否為SA集合中的最后一個(gè)SA;其中,在初始狀態(tài)下,所述SA集合中包括所述IKE SA以及利用所述IKE SA建立的所有IPsec SA ;
如果是,所述IPsec發(fā)起方刪除所述NAT報(bào)文發(fā)送定時(shí)器;
如果否,所述IPsec發(fā)起方保留所述NAT報(bào)文發(fā)送定時(shí)器;
其中,在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之前,所述IPsec發(fā)起方周期性通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文。
所述IPsec發(fā)起方建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA之后,所述IPsec發(fā)起方為所述IKE SA啟動(dòng)第一老化定時(shí)器,且在所述第一老化定時(shí)器超時(shí)之后,所述IPsec發(fā)起方刪除所述IKE SA ;
所述IPsec發(fā)起方利用所述IKE SA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsecSA之后,所述IPsec發(fā)起方為所述IPsec SA啟動(dòng)第二老化定時(shí)器,且在所述第二老化定時(shí)器超時(shí)之后,所述IPsec發(fā)起方刪除所述IPsec SA。
所述IPsec發(fā)起方刪除所述NAT報(bào)文發(fā)送定時(shí)器之后,所述方法還包括:
所述IPsec發(fā)起方停止向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文。
所述IPsec發(fā)起方建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA,具體包括:所述IPsec發(fā)起方通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文,由所述NAT設(shè)備在收到所述IKE協(xié)商報(bào)文時(shí),為所述IKE協(xié)商報(bào)文建立對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),并為所述NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器;
所述IPsec發(fā)起方通過(guò)所述NAT設(shè)備收到來(lái)自所述IPsec響應(yīng)方的IKE協(xié)商報(bào)文時(shí),建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA。
所述NAT表項(xiàng)?;顖?bào)文用于使收到所述NAT表項(xiàng)?;顖?bào)文的所述NAT設(shè)備,更新所述NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器。
本發(fā)明實(shí)施例提供一種IPsec發(fā)起方設(shè)備,應(yīng)用于包括所述IPsec發(fā)起方、NAT設(shè)備和IPsec響應(yīng)方的網(wǎng)絡(luò)中,所述IPsec發(fā)起方具體包括:
建立模塊,用于建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA,并利用所述IKESA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsec SA ;
判斷模塊,用于在所述IKE SA或者IPsec SA被刪除時(shí),判斷所述IKE SA或者IPsec SA是否為SA集合中的最后一個(gè)SA ;其中,在初始狀態(tài)下,所述SA集合中包括所述IKE SA以及利用所述IKE SA建立的所有IPsec SA ;
維護(hù)模塊,用于在建立IKE SA時(shí),啟動(dòng)所述IKE SA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器;在判斷結(jié)果為是時(shí),刪除所述NAT報(bào)文發(fā)送定時(shí)器;在判斷結(jié)果為否時(shí),保留所述NAT報(bào)文發(fā)送定時(shí)器;
發(fā)送模塊,用于在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之前,周期性通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文。
還包括:處理模塊,用于在建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA時(shí),為所述IKE SA啟動(dòng)第一老化定時(shí)器,在所述第一老化定時(shí)器超時(shí)之后,刪除所述IKE SA;在建立本設(shè)備與IPsec響應(yīng)方之間的IPsec SA時(shí),為所述IPsecSA啟動(dòng)第二老化定時(shí)器,在第二老化定時(shí)器超時(shí)之后,刪除所述IPsec SA。
所述發(fā)送模塊,還用于在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之后,停止向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文。
所述建立模塊,具體用于通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文,由所述NAT設(shè)備在收到所述IKE協(xié)商報(bào)文時(shí),為所述IKE協(xié)商報(bào)文建立對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),并為所述NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器;
通過(guò)所述NAT設(shè)備收到來(lái)自所述IPsec響應(yīng)方的IKE協(xié)商報(bào)文時(shí),建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA。
所述NAT表項(xiàng)?;顖?bào)文用于使收到所述NAT表項(xiàng)?;顖?bào)文的所述NAT設(shè)備,更新所述NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例至少具有以下優(yōu)點(diǎn):本發(fā)明實(shí)施例中,在IPsec穿越NAT環(huán)境下,當(dāng)不存在IKE SA,且存在IPsec SA時(shí),能夠繼續(xù)發(fā)送NAT表項(xiàng)?;顖?bào)文,從而避免IPsec響應(yīng)方發(fā)送給IPsec發(fā)起方的流量在NAT設(shè)備上無(wú)法命中NAT轉(zhuǎn)換表項(xiàng),繼而避免出現(xiàn)斷流的現(xiàn)象。
圖1是現(xiàn)有技術(shù)中IPsec與IKE的關(guān)系示意圖2是現(xiàn)有技術(shù)中NAT的處理過(guò)程示意圖3是現(xiàn)有技術(shù)中NAPT的處理過(guò)程示意圖4是現(xiàn)有技術(shù)中同時(shí)部署IPsec和NAT設(shè)備的網(wǎng)絡(luò)示意圖5是本發(fā)明實(shí)施例提供的基于IPsec的NAT表項(xiàng)保活方法流程圖6是本發(fā)明實(shí)施例提出的IPsec發(fā)起方的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明實(shí)施例提出一種基于IPsec的NAT表項(xiàng)?;罘椒?,該方法應(yīng)用于包括IPsec發(fā)起方(NAT內(nèi)側(cè)設(shè)備)、NAT設(shè)備和IPsec響應(yīng)方(NAT外側(cè)設(shè)備)的網(wǎng)絡(luò)中,在IPsec穿越NAT設(shè)備的網(wǎng)絡(luò)環(huán)境下,當(dāng)不存在IKE SA,且存在IPsec SA時(shí),IPsec發(fā)起方能夠繼續(xù)發(fā)送NAT表項(xiàng)?;顖?bào)文,從而避免IPsec響應(yīng)方發(fā)送給IPsec發(fā)起方的流量在NAT設(shè)備上無(wú)法命中NAT轉(zhuǎn)換表項(xiàng),繼而避免出現(xiàn)斷流的現(xiàn)象。
如圖5所示,該基于IPsec的NAT表項(xiàng)?;罘椒òㄒ韵虏襟E:
步驟501,IPsec發(fā)起方建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA,并啟動(dòng)IKE SA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器。
本發(fā)明實(shí)施例中,IPsec發(fā)起方建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA,具體包括=IPsec發(fā)起方通過(guò)NAT設(shè)備向IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文(用于協(xié)商SA的相關(guān)信息);IPsec發(fā)起方通過(guò)NAT設(shè)備收到來(lái)自IPsec響應(yīng)方的IKE協(xié)商報(bào)文時(shí),建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA。
本發(fā)明實(shí)施例中,IPsec發(fā)起方通過(guò)NAT設(shè)備向IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文之后,為了保證IPsec響應(yīng)方發(fā)送的IKE協(xié)商報(bào)文能夠正確傳輸給IPsec發(fā)起方,則:NAT設(shè)備在收到IKE協(xié)商報(bào)文時(shí),需要為IKE協(xié)商報(bào)文建立對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),并為NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器。
具體的,NAT設(shè)備在收到IKE協(xié)商報(bào)文后,如果NAT設(shè)備上沒(méi)有IKE協(xié)商報(bào)文對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),則為IKE協(xié)商報(bào)文建立NAT轉(zhuǎn)換表項(xiàng),為NAT轉(zhuǎn)換表項(xiàng)設(shè)鉻老化時(shí)間(根據(jù)實(shí)際經(jīng)驗(yàn)進(jìn)行設(shè)鉻),并為NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器;如果NAT設(shè)備上有IKE協(xié)商報(bào)文對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),則更新NAT轉(zhuǎn)換表項(xiàng)對(duì)應(yīng)的老化定時(shí)器(即對(duì)老化定時(shí)器重新計(jì)時(shí))。
以圖4為本發(fā)明實(shí)施例的應(yīng)用場(chǎng)景示意圖,假設(shè)RTl和RT3部署有IPsec,RTl和RT2相連的接口上配鉻了 IPsec策略,RT3和RT2相連的接口上配鉻了 IPsec策略,且RT2上開(kāi)啟NAT功能,PCl和PC2為主機(jī),PCl在NAT內(nèi)側(cè),PC2在NAT外側(cè);則:在PCl需要向PC2發(fā)送數(shù)據(jù)時(shí),RTl為IPsec發(fā)起方,RT3為IPsec響應(yīng)方,RT2為NAT設(shè)備。
RTl在接收到PCl需要向PC2發(fā)送的數(shù)據(jù)后,根據(jù)路由獲知出接口為自身與RT2相連的接口,地址為17.17.17.12,且由于該接口上配鉻了 IPsec策略,因此RTl觸發(fā)IPsec的SA協(xié)商過(guò)程,以在RTl和RT3之間建立IPsec隧道。進(jìn)一步的,在IPsec隧道的建立過(guò)程中,RTI需要通過(guò)NAT設(shè)備向RT3發(fā)送IKE協(xié)商報(bào)文,且RT3需要通過(guò)NAT設(shè)備向RTl返回IKE協(xié)商報(bào)文。
在上述過(guò)程中,在RTl通過(guò)RT2向RT3發(fā)送IKE協(xié)商報(bào)文之后,為了保證RT3能夠通過(guò)RT2向RTl返回IKE協(xié)商報(bào)文,因此RT2上需要維護(hù)IKE協(xié)商報(bào)文對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng);即:在RT2上沒(méi)有IKE協(xié)商報(bào)文對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng)時(shí),為IKE協(xié)商報(bào)文建立NAT轉(zhuǎn)換表項(xiàng),且NAT轉(zhuǎn)換表項(xiàng)存在一定的老化時(shí)間(RT2上手工配鉻的),并從建立NAT轉(zhuǎn)換表項(xiàng)開(kāi)始,為該NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器;如果RT2上有IKE協(xié)商報(bào)文對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),則只需要清除老化定時(shí)器當(dāng)前的計(jì)時(shí),并重新啟動(dòng)該老化定時(shí)器。
本發(fā)明實(shí)施例中,為了使NAT設(shè)備上的NAT轉(zhuǎn)換表項(xiàng)不被刪除,該IPsec發(fā)起方還需要啟動(dòng)IKE SA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器;在啟動(dòng)NAT報(bào)文發(fā)送定時(shí)器之后,IPsec發(fā)起方周期性(基于NAT報(bào)文發(fā)送定時(shí)器的時(shí)間確定)通過(guò)NAT設(shè)備向IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文(該報(bào)文格式明文形式)。
其中,該NAT表項(xiàng)保活報(bào)文用于使收到NAT表項(xiàng)?;顖?bào)文的NAT設(shè)備,更新NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器。具體的,由于NAT表項(xiàng)保活報(bào)文的IP頭中源地址與IKE協(xié)商報(bào)文的IP頭中源地址相同,NAT表項(xiàng)?;顖?bào)文的IP頭中目的地址與IKE協(xié)商報(bào)文的IP頭中目的地址相同,NAT表項(xiàng)保活報(bào)文的m)P頭中源端口與IKE協(xié)商報(bào)文的m)P頭中源端口相同,NAT表項(xiàng)?;顖?bào)文的m)P頭中目的端口與IKE協(xié)商報(bào)文的m)P頭中目的端口相同;且nat轉(zhuǎn)換表項(xiàng)是為IKE協(xié)商報(bào)文所建立的,其中會(huì)記錄IKE協(xié)商報(bào)文的相關(guān)信息(IP頭中源地址和目的地址,UDP頭中源端口和目的端口);因此NAT設(shè)備在收到NAT表項(xiàng)保活報(bào)文之后,可以利用NAT表項(xiàng)保活報(bào)文的IP頭中源地址和目的地址、UDP頭中源端口和目的端口匹配到NAT轉(zhuǎn)換表項(xiàng),并更新NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器,即刷新老化定時(shí)器為初始值。
本發(fā)明實(shí)施例中,IPsec發(fā)起方建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA之后,該IPsec發(fā)起方還需要為IKE SA啟動(dòng)第一老化定時(shí)器,且在第一老化定時(shí)器超時(shí)之后,IPsec發(fā)起方需要?jiǎng)h除IKE SA ;此外,還可以手工刪除IKESA。此外,IPsec響應(yīng)方建立本設(shè)備與IPsec發(fā)起方之間的IKE SA之后,該IPsec響應(yīng)方也需要為IKE SA啟動(dòng)第一老化定時(shí)器,且在第一老化定時(shí)器超時(shí)之后,IPsec響應(yīng)方需要?jiǎng)h除IKE SA0其中,上述第一老化定時(shí)器的老化時(shí)間為IPsec發(fā)起方和IPsec響應(yīng)方協(xié)商出的生命周期。
步驟502,IPsec發(fā)起方利用IKE SA (即步驟501中所確定的IKE SA)建立本設(shè)備與IPsec響應(yīng)方之間的IPsec SA。
本發(fā)明實(shí)施例中,IPsec發(fā)起方利用IKE SA建立本設(shè)備與IPsec響應(yīng)方之間的IPsec SA之后,該IPsec發(fā)起方還需要為IPsec SA啟動(dòng)第二老化定時(shí)器,且在第二老化定時(shí)器超時(shí)之后,IPsec發(fā)起方需要?jiǎng)h除IPsec SA ;此外,還可以手工刪除IPsec SA ;此外,IPsec響應(yīng)方建立本設(shè)備與IPsec發(fā)起方之間的IPsec SA之后,該IPsec響應(yīng)方也需要為IPsec SA啟動(dòng)第二老化定時(shí)器,且在第二老化定時(shí)器超時(shí)之后,IPsec響應(yīng)方需要?jiǎng)h除IPsec SA。其中,上述第二老化定時(shí)器的老化時(shí)間為IPsec發(fā)起方和IPsec響應(yīng)方協(xié)商出的生命周期。
步驟503,IPsec發(fā)起方在IKE SA或者IPsec SA被刪除(老化刪除或手工刪除)時(shí),判斷IKE SA或者IPsec SA是否為SA集合中的最后一個(gè)SA ;其中,在初始狀態(tài)下,SA集合中包括IKE SA以及利用該IKE SA建立的所有IPsec SA ;如果是,則執(zhí)行步驟504 ;如果否,則執(zhí)行步驟505。
基于NAT設(shè)備上為IKE協(xié)商報(bào)文建立的NAT轉(zhuǎn)換表項(xiàng),SA集合中的IKESA和IPsecSA均與NAT轉(zhuǎn)換表項(xiàng)相對(duì)應(yīng);IKE SA和IPsec SA與NAT轉(zhuǎn)換表項(xiàng)相對(duì)應(yīng)是指其具備相同五元組信息(源地址、目的地址、源端口、目的端口、協(xié)議類(lèi)型);具體的,IPsec發(fā)起方通過(guò)NAT設(shè)備向IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文以建立IKE SA時(shí),NAT設(shè)備上會(huì)為IKE協(xié)商報(bào)文建立NAT轉(zhuǎn)換表項(xiàng),且IPsec發(fā)起方需要利用該IKE SA建立多個(gè)IPsec SA;在此過(guò)程中,建立的所有IKE SA和IPsec SA均與NAT轉(zhuǎn)換表項(xiàng)相對(duì)應(yīng)。
步驟504,IPsec發(fā)起方刪除NAT報(bào)文發(fā)送定時(shí)器。
步驟505,IPsec發(fā)起方保留NAT報(bào)文發(fā)送定時(shí)器。
本發(fā)明實(shí)施例中,在NAT報(bào)文發(fā)送定時(shí)器被刪除之前,IPsec發(fā)起方需要周期性通過(guò)NAT設(shè)備向IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文;在NAT報(bào)文發(fā)送定時(shí)器被刪除之后,IPsec發(fā)起方需要停止向IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文;之后,NAT設(shè)備上由于沒(méi)有收到NAT表項(xiàng)?;顖?bào)文,因此會(huì)導(dǎo)致NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器超時(shí),NAT轉(zhuǎn)換表項(xiàng)被NAT設(shè)備刪除。
綜上所述,本發(fā)明實(shí)施例中,在IPsec穿越NAT環(huán)境下,當(dāng)不存在IKE SA,且存在IPsec SA時(shí),只要存在和NAT轉(zhuǎn)換表項(xiàng)對(duì)應(yīng)的IKE SA或者IPsec SA,則能夠繼續(xù)發(fā)送NAT表項(xiàng)?;顖?bào)文;且只有當(dāng)最后一個(gè)SA (IKE SA或者IPsec SA)被刪除時(shí),才會(huì)刪除NAT報(bào)文發(fā)送定時(shí)器,并停止發(fā)送NAT表項(xiàng)保活報(bào)文;從而可以避免IPsec響應(yīng)方發(fā)送給IPsec發(fā)起方的流量在NAT設(shè)備上無(wú)法命中NAT轉(zhuǎn)換表項(xiàng),繼而可以避免出現(xiàn)斷流的現(xiàn)象。
基于與上述方法同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種IPsec發(fā)起方設(shè)備,應(yīng)用于包括所述IPsec發(fā)起方、NAT設(shè)備和IPsec響應(yīng)方的網(wǎng)絡(luò)中,如圖6所示,所述IPsec發(fā)起方具體包括:
建立模塊11,用于建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA,并利用所述IKESA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsec SA ;
判斷模塊12,用于在所述IKE SA或者IPsec SA被刪除時(shí),判斷所述IKE SA或者IPsec SA是否為SA集合中的最后一個(gè)SA ;其中,在初始狀態(tài)下,所述SA集合中包括所述IKE SA以及利用所述IKE SA建立的所有IPsec SA ;
維護(hù)模塊13,用于在建立IKE SA時(shí),啟動(dòng)所述IKE SA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器;在判斷結(jié)果為是時(shí),刪除所述NAT報(bào)文發(fā)送定時(shí)器;在判斷結(jié)果為否時(shí),保留所述NAT報(bào)文發(fā)送定時(shí)器;
發(fā)送模塊14,用于在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之前,周期性通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)保活報(bào)文。
所述IPsec發(fā)起方還包括:處理模塊15,用于在建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA時(shí),為所述IKE SA啟動(dòng)第一老化定時(shí)器,在所述第一老化定時(shí)器超時(shí)之后,刪除所述IKE SA ;在建立本設(shè)備與IPsec響應(yīng)方之間的IPsec SA時(shí),為所述IPsec SA啟動(dòng)第二老化定時(shí)器,在所述第二老化定時(shí)器超時(shí)之后,刪除所述IPsec SA。
所述發(fā)送模塊14,還用于在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之后,停止向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文。
所述建立模塊11,具體用于通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文,由所述NAT設(shè)備在收到所述IKE協(xié)商報(bào)文時(shí),為所述IKE協(xié)商報(bào)文建立對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),并為所述NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器;
通過(guò)所述NAT設(shè)備收到來(lái)自所述IPsec響應(yīng)方的IKE協(xié)商報(bào)文時(shí),建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA。
本發(fā)明實(shí)施例中,所述NAT表項(xiàng)保活報(bào)文用于使收到所述NAT表項(xiàng)?;顖?bào)文的所述NAT設(shè)備,更新所述NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器。
其中,本發(fā)明裝鉻的各個(gè)模塊可以集成于一體,也可以分離部署。上述模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝鉻中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝鉻中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝鉻中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
以上公開(kāi)的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于IPsec的NAT表項(xiàng)?;罘椒ǎ瑧?yīng)用于包括IPsec發(fā)起方、NAT設(shè)備和IPsec響應(yīng)方的網(wǎng)絡(luò)中,其特征在于,該方法包括以下步驟: 所述IPsec發(fā)起方建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA,并利用所述IKE SA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsec SA,并啟動(dòng)所述IKE SA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器; 所述IPsec發(fā)起方在所述IKE SA或者IPsec SA被刪除時(shí),判斷所述IKE SA或者IPsecSA是否為SA集合中的最后一個(gè)SA ;其中,在初始狀態(tài)下,所述SA集合中包括所述IKE SA以及利用所述IKE SA建立的所有IPsec SA ; 如果是,所述IPsec發(fā)起方刪除所述NAT報(bào)文發(fā)送定時(shí)器; 如果否,所述IPsec發(fā)起方保留所述NAT報(bào)文發(fā)送定時(shí)器; 其中,在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之前,所述IPsec發(fā)起方周期性通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文。
2.如權(quán)利要求1所述的方法,其特征在于, 所述IPsec發(fā)起方建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA之后,所述IPsec發(fā)起方為所述IKE SA啟動(dòng)第一老化定時(shí)器,且在所述第一老化定時(shí)器超時(shí)之后,所述IPsec發(fā)起方刪除所述IKE SA ; 所述IPsec發(fā)起方利用所述IKE SA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsec SA之后,所述IPsec發(fā)起方為所述IPsec SA啟動(dòng)第二老化定時(shí)器,且在所述第二老化定時(shí)器超時(shí)之后,所述IPsec發(fā)起方刪除所述IPsec SA。
3.如權(quán)利要求1所述的方法,其特征在于,所述IPsec發(fā)起方刪除所述NAT報(bào)文發(fā)送定時(shí)器之后,所述方法還包括: 所述IPsec發(fā)起方停止向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)?;顖?bào)文。
4.如權(quán)利要求1所述的方法,其特征在于,所述IPsec發(fā)起方建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA,具體包括: 所述IPsec發(fā)起方通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文,由所述NAT設(shè)備在收到所述IKE協(xié)商報(bào)文時(shí),為所述IKE協(xié)商報(bào)文建立對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),并為所述NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器; 所述IPsec發(fā)起方通過(guò)所述NAT設(shè)備收到來(lái)自所述IPsec響應(yīng)方的IKE協(xié)商報(bào)文時(shí),建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA。
5.如權(quán)利要求4所述的方法,其特征在于, 所述NAT表項(xiàng)?;顖?bào)文用于使收到所述NAT表項(xiàng)保活報(bào)文的所述NAT設(shè)備,更新所述NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器。
6.一種IPsec發(fā)起方設(shè)備,應(yīng)用于包括所述IPsec發(fā)起方、NAT設(shè)備和IPsec響應(yīng)方的網(wǎng)絡(luò)中,其特征在于,所述IPsec發(fā)起方具體包括: 建立模塊,用于建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA,并利用所述IKE SA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsec SA ; 判斷模塊,用于在所述IKE SA或者IPsec SA被刪除時(shí),判斷所述IKE SA或者IPsecSA是否為SA集合中的最后一個(gè)SA ;其中,在初始狀態(tài)下,所述SA集合中包括所述IKE SA以及利用所述IKE SA建立的所有IPsec SA ;維護(hù)模塊,用于在建立IKE SA時(shí),啟動(dòng)所述IKE SA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器;在判斷結(jié)果為是時(shí),刪除所述NAT報(bào)文發(fā)送定時(shí)器;在判斷結(jié)果為否時(shí),保留所述NAT報(bào)文發(fā)送定時(shí)器; 發(fā)送模塊,用于在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之前,周期性通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)保活報(bào)文。
7.如權(quán)利要求6所述的設(shè)備,其特征在于,還包括: 處理模塊,用于在建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA時(shí),為所述IKE SA啟動(dòng)第一老化定時(shí)器,在所述第一老化定時(shí)器超時(shí)之后,刪除所述IKESA ;在建立本設(shè)備與IPsec響應(yīng)方之間的IPsec SA時(shí),為所述IPsec SA啟動(dòng)第二老化定時(shí)器,在所述第二老化定時(shí)器超時(shí)之后,刪除所述IPsec SA。
8.如權(quán)利要求6所述的設(shè)備,其特征在于, 所述發(fā)送模塊,還用于在所述NAT報(bào)文發(fā)送定時(shí)器被刪除之后,停止向所述IPsec響應(yīng)方發(fā)送NAT表項(xiàng)保活報(bào)文。
9.如權(quán)利要求6所述的設(shè)備,其特征在于, 所述建立模塊,具體用于通過(guò)所述NAT設(shè)備向所述IPsec響應(yīng)方發(fā)送IKE協(xié)商報(bào)文,由所述NAT設(shè)備在收到所述IKE協(xié)商報(bào)文時(shí),為所述IKE協(xié)商報(bào)文建立對(duì)應(yīng)的NAT轉(zhuǎn)換表項(xiàng),并為所述NAT轉(zhuǎn)換表項(xiàng)維護(hù)老化定時(shí)器; 通過(guò)所述NAT設(shè)備收到來(lái)自所述IPsec響應(yīng)方的IKE協(xié)商報(bào)文時(shí),建立本設(shè)備與所述IPsec響應(yīng)方之間的IKE SA。
10.如權(quán)利要求9所述的設(shè) 備,其特征在于, 所述NAT表項(xiàng)?;顖?bào)文用于使收到所述NAT表項(xiàng)?;顖?bào)文的所述NAT設(shè)備,更新所述NAT轉(zhuǎn)換表項(xiàng)的老化定時(shí)器。
全文摘要
本發(fā)明公開(kāi)了一種基于IPsec的NAT表項(xiàng)?;罘椒ê驮O(shè)備,該方法包括IPsec發(fā)起方建立本設(shè)備與IPsec響應(yīng)方之間的IKE SA,并利用所述IKE SA建立本設(shè)備與所述IPsec響應(yīng)方之間的IPsec SA,并啟動(dòng)所述IKE SA對(duì)應(yīng)的NAT報(bào)文發(fā)送定時(shí)器;所述IPsec發(fā)起方在所述IKE SA或者IPsec SA被刪除時(shí),判斷所述IKE SA或者IPsec SA是否為SA集合中的最后一個(gè)SA;如果是,所述IPsec發(fā)起方刪除所述NAT報(bào)文發(fā)送定時(shí)器;如果否,所述IPsec發(fā)起方保留所述NAT報(bào)文發(fā)送定時(shí)器。本發(fā)明實(shí)施例中,可以避免出現(xiàn)斷流。
文檔編號(hào)H04L29/12GK103179225SQ20131008692
公開(kāi)日2013年6月26日 申請(qǐng)日期2013年3月18日 優(yōu)先權(quán)日2013年3月18日
發(fā)明者楊超 申請(qǐng)人:杭州華三通信技術(shù)有限公司