專利名稱:網絡地址轉換穿越方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信領域,尤其是一種網絡地址轉換(Network Address Translation, NAT)穿越方法和系統(tǒng)。
背景技術:
基于IP技術的虛擬專用網(Virtual Professional Network, VPN)是 通過Internet平臺將局域網擴展到遠程網絡和遠程計算機用戶的一種成本 效益極佳的方法。隨著網絡安全技術的飛快發(fā)展,越來越多大型企業(yè)利用互 聯網采用IP安全(IP Security, IPSec )協(xié)議技術建立VPN網絡,IPSec協(xié) 議已逐漸成為VPN構建的主流技術。IPSec協(xié)議是由互聯網工程工業(yè)組(Internet Engineering Task Force, IETF) 1998年底頭見劃并制定的網全各 IP層標準,為IP數據報提供了高質量的、可互操作的、基于密碼學的安全 性。特定的通信方之間在IP層通過加密與數據源驗證等方式,來保證數據報 在網絡上傳輸時的私有性、完整性、真實性和防重放。IpSec協(xié)議通過AH(Authentication Header, 認證頭)協(xié)議和ESP (Encapsulating Security Payload,封裝安全載荷)兩個安全協(xié)議實現了上述目標。AH協(xié)議為IP數據 包提供無連接的數據完整性和數據源身份認證,同時具有防重放攻擊的能力; ESP協(xié)議為IP數據包提供數據的保密性(力口密)、無連接的數據完整性、數據 源身份認證以及防重放攻擊保護。AH和ESP都有兩種工作模式,即傳輸模式和隧道模式,傳輸模式為上層載荷提供安全保護,隧道模式為上層載荷以及 IP包頭同時提供安全保護。另外,NAT技術通過改變進出內部網絡的IP數據包的源和目的地址,把 無效的內部網絡地址翻譯成合法的IP地址在Internet上使用。該技術一方 面可以把私有IP地址隱藏起來,使外界無法直接訪問內部網絡,對內部網絡 起到保護作用;另一方面,它可以緩解由于IPv4設計上的不足,而導致的 IP地址嚴重短缺的現狀。但是,被廣泛使用的NAT設備卻制約著基于IPSec技術的VPN的發(fā)展, 這是因為IPSec協(xié)議在VPN中承擔保護傳輸數據的安全性任務。在數據傳輸 過程中,任何對IP地址及傳輸標志符的修改,都被視作對該協(xié)議的違背,并 導致數據包不能通過安全檢查而被丟棄。但在VPN中運用NAT技術,則不可 避免地要將私網地址映射為公網地址,即對IP地址要進行修改。因此,在 VPN網絡中如何使IPSec和NAT協(xié)同工作,實現NAT的透明穿透具有現實意 義。現有技術中,解決方案是采用UDP封裝法實現NAT的透明穿透,不需要 修改現有的NAT網關和路由器。隧道模式下ESP封裝的步驟為普通的ESP 封裝處理;插入一個適當格式的UDP頭部。該UDP封裝法是在原有的IP包的 IP頭和ESP的數據之間再封裝一個UDP頭,這樣封裝后的數據包端口值對NAT 可見,就可以正確的實現端口轉換。但是上述現有技術的方案還不完善,至少存在以下問題IPSec隧道兩端必須支持相關RFC (Request For Comments);由于添加了 一個UDP報文頭,從而導致加大了帶寬開銷;增加的UDP字段可能導致報文分片,影響傳輸效率,并增加了 IPSec隧道對端設備的負荷。發(fā)明內容本發(fā)明實施例提供一種網絡地址轉換穿越方法和系統(tǒng),用以對隧道模式下ESP報文進行MT轉換,實現隧道模式下ESP報文的NAT穿越,而且IPSec隧道兩端無需支持RFC。本發(fā)明實施例提供了 一種網絡地址轉換穿越方法,包括根據接收到的IP安全隧道的出隧道方向的封裝安全載荷^^文和入隧道方向的封裝安全載荷報文分別創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表;以及根據所述出隧道方向的狀態(tài)會話流表和所述入隧道方向的狀態(tài)會話流表本發(fā)明實施例提供了 一種網絡地址轉換穿越系統(tǒng),包括創(chuàng)建模塊,用于根據接收到的IP安全隧道的出隧道方向的封裝安全載荷報文和入隧道方向的封裝安全載荷報文分別創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表;以及轉換模塊,用于根據所述出隧道方向的狀態(tài)會話流表和所述入隧道方向的狀態(tài)會話流表對接收到的所述IP安全隧道的其他封裝安全載荷報文進行IP地址轉換。本發(fā)明實施例通過創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài) 會話流表,并4艮據所述隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流 表對所述IPSec隧道的后續(xù)ESP寺艮文進行IP地址轉換,實現了隧道才莫式下 ESP報文的NAT穿越,而且IPSec隧道兩端無需支持RFC。
圖1為本發(fā)明實施例網絡地址轉換穿越方法的一流程示意圖; 圖2為本發(fā)明實施例網絡地址轉換穿越方法的另一流程示意圖; 圖3為本發(fā)明實施例網絡地址轉換穿越系統(tǒng)的一結構示意圖; 圖4為本發(fā)明實施例網絡地址轉換穿越系統(tǒng)的另一結構示意圖。
具體實施方式
下面結合附圖對本發(fā)明的具體實施例作進一步詳細的說明。 本發(fā)明實施例提供的網絡地址轉換穿越方法能夠用于處理由NAT內的設備或客戶端發(fā)起IPSec連接。如圖1所示,為本發(fā)明實施例網絡地址轉換穿越方法的一流程示意圖。本實施例包括以下步驟步驟l01 、根據接收到的IPSce隧道的出隧道方向的ESP報文和入隧道方向的ESP報文分別創(chuàng)建該IPSec隧道的出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會^舌流表。通常NAT設備(或防火墻設備)的狀態(tài)會話流表都是通過五元組標識的, 即源IP地址、目的IP地址、源端口號、目的端口號和協(xié)議類型。ESP才艮文 直接承載在IP報文上,沒有端口信息。同時,ESP報文是區(qū)分方向的,入隧 道方向和出隧道方向的4艮文通過不同的安全參數索引(Security Parameters Index, SPI )字段(32bit )進行標識。SPI字段可以作為類似UDP/TCP報文 的源端口、目的端口字段對NAT表項進行標識。對于NAT出隧道(outbound )方向的ESP報文,轉換后的源IP地址為公 網IP地址,其NAT轉換的狀態(tài)會話流表的表項為源IP,目的IP, ESP, out SPI, 0 --〉轉換后的源IP,目的IP, ESP, out SPI, 0;對于NAT入隧道(inbound )方向的ESP才艮文,轉換后的目的IP地址為 私網IP地址,其NAT轉換的狀態(tài)會話流表的表項為轉換后的源IP,目的IP, ESP, 0, inSPI<--源IP,目的IP, ESP, 0, in SPI。步驟l02、根據出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表 對才妻收到的上述I PS c e隧道的其他ESP報文進行I P地址轉換。根據步驟101中創(chuàng)建的兩個方向的ESP報文的NAT狀態(tài)會話流表,對該 IPSce隧道的后續(xù)ESP #^文進行IP地址轉換,即實現了該IPSce隧道的ESP 報文的NAT穿越。當私網另一條IPSec隧道的ESP報文到達NAT設備時,按 照上述的過程可以繼續(xù)建立該IPSec隧道的ESP報文的NAT狀態(tài)會話流表, 完成ESP報文的NAT狀態(tài)會話流表創(chuàng)建的IPSec隧道的后續(xù)才艮文可以通過所 創(chuàng)建的NAT狀態(tài)會話流表進行NAT穿越。本實施例通過根據所創(chuàng)建的IPSec隧道的出隧道方向的狀態(tài)會話流表和 入隧道方向的狀態(tài)會話流表,對該IPSec隧道的后續(xù)ESP報文進行IP地址轉 換,實現了隧道模式下ESP報文的NAT穿越,而且IPSec隧道兩端無需支持 RFC,從而使得現網部署的IPSec網關設備不需要進行升級就可以支持ESP報 文的NAT穿越。為了避免兩個方向ESP報文沖突的問題,需要進一步判斷兩個SPI是否 屬于同一個IPSec隧道的兩個方向的SPI。如圖2所示,為本發(fā)明實施例網 絡地址轉換穿越方法的另一流程示意圖。與上一實施例相比,本實施例中步 驟101具體可以包括以下步驟步驟1011、根據接收到的IPSec隧道的出隧道方向的ESP才艮文創(chuàng)建所述 IPSec隧道的出隧道方向的狀態(tài)會話流表和臨時狀態(tài)會話流表,臨時狀態(tài)會 話流表的表項包括轉換后的公網源IP地址、/>網目的IP地址、封裝安全載 荷協(xié)議標識。進一步地,本步驟中當接收到兩條IPSec隧道的出隧道方向的ESP報文 時,根據接收到的先后順序,丟棄后接收到的出隧道方向的ESP報文;步驟1012、在接收到的入隧道方向的ESP報文中,根據臨時狀態(tài)會話流 表匹配出入隧道方向的ESP報文。進一步地,本步驟中當在一預設時間即臨時狀態(tài)會話流表的超時時間內, 沒有匹配出入隧道方向的ESP報文,即ESP報文的NAT狀態(tài)會話流表的創(chuàng)建失 敗,則刪除已經創(chuàng)建的出隧道方向的狀態(tài)會話流表和臨時狀態(tài)會話流表;步驟1013、根據所匹配出的入隧道方向的ESP報文創(chuàng)建上述IPSec隧道 的入隧道方向的狀態(tài)會話流表。本實施例中,當一個IPSec隧道的第一個ESP報文到達NAT^殳備時,創(chuàng)建該 ESP報文outbound方向的NAT狀態(tài)會話流表,并同時創(chuàng)建一個臨時狀態(tài)會話流 表,以允許IP地址匹配的inbound方向的ESP報文進入,該臨時狀態(tài)會話流表 項可以包括轉換后的源IP、目的IP和ESP。如果有兩條IPSec隧道的第一個ESP 報文都到達NAT設備,則按照先后順序,將后到達NAT設備的另一條IPSec隧道 的outbound方向的ESP報文丟棄,保證回應的ESP報文是同一條IPSec隧道的回 應報文。當回應的第一個ESP報文匹配到了臨時狀態(tài)會話流表的表項,可以斷 定是同一條IPSec隧道的回應報文,此時創(chuàng)建該ESP報文inbound方向的NAT狀 態(tài)會話流表,實現了創(chuàng)建一條IPSec隧道的ESP報文NAT狀態(tài)會話流表,能夠保 證回應的ESP報文是同一條IPSec隧道的回應報文,有效地避免了兩個方向ESP報文的沖突。本實施例中,步驟1013之后還可以包括刪除臨時狀態(tài)會話流表的操作。如圖3所示,為本發(fā)明實施例網絡地址轉換穿越系統(tǒng)的一結構示意圖。 本實施例包括相互連接的創(chuàng)建模塊10和轉換模塊20。其中,創(chuàng)建模塊10用 于根據接收到的IPSec隧道的出隧道方向的ESP報文和入隧道方向的ESP報 文分別創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表;轉換 模塊20用于根據上述出隧道方向的狀態(tài)會話流表和上述入隧道方向的狀態(tài) 會話流表對接收到的上述IPSec隧道的其他ESP報文進行IP地址轉換。本實施例通過轉換模塊20根據創(chuàng)建模塊10所創(chuàng)建的IPSec隧道的出隧 道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表,對該IPSec暖道的后 續(xù)ESP報文進行IP地址轉換,實現了隧道模式下ESP報文的NAT穿越,而且 IPSec隧道兩端無需支持RFC,從而使得現網部署的IPSec網關設備不需要進 行升級就可以支持ESP報文的NAT穿越。如圖4所示,為本發(fā)明實施例網絡地址轉換穿越系統(tǒng)的另 一結構示意圖。與上一實施例相比,本實施例中創(chuàng)建模塊10可以包括順次連接的第一創(chuàng)建單元ll、匹配單元12和第二創(chuàng)建單元13。其中第一創(chuàng)建單元ll用于根據接收到的IPSec隧道的出隧道方向的ESP報文創(chuàng)建出隧道方向的狀態(tài)會話流表和臨時狀態(tài)會話流表,上述臨時狀態(tài)會話流表的表項包括轉換后的公網源IP地址、^^網目的IP地址、ESP協(xié)議標識;匹配單元12用于在接收到的入隧道方向的ESP報文中,根據上述臨時狀態(tài)會話流表匹配出入隧道方向的ESP報文;第二創(chuàng)建單元13,與轉換模塊20連接,用于根據上述入隧道方向的ESP報文創(chuàng)建入隧道方向的狀態(tài)會話流表。進一步地,本實施例還可以包括刪除單元14,與第二創(chuàng)建單元13連接,用于在第二創(chuàng)建單元1 3創(chuàng)建入隧道方向的狀態(tài)會話流表后,刪除臨時狀態(tài)會 話流表。本實施例中,當一個IPSec隧道的第一個ESP報文到達NATi殳備時,第一創(chuàng) 建單元創(chuàng)建該ESP報文outbo皿d方向的NAT狀態(tài)會話流表,并同時創(chuàng)建一個臨狀態(tài)會話流表的表項可以包括轉換后的源IP、目的IP和ESP。如果有兩條IPSec 隧道的第一個ESP報文都到達NAT設備,第一創(chuàng)建單元則可以按照先后順序, 將后'到達NAT設備的另一條IPSec隧道的outbound方向的ESP才良文丟棄,保證回 應的ESP報文是同一條IPSec隧道的回應報文。當匹配單元根據臨時狀態(tài)會話 流表的表項匹配出了回應的ESP報文,第二創(chuàng)建單元創(chuàng)建該ESP報文inbound 方向的NAT狀態(tài)會話流表,從而本實施例實現了創(chuàng)建一條IPSec隧道的ESP報文 NAT狀態(tài)會話流表,能夠保證回應的ESP報文是同一條IPSec隧道的回應報文, 有效地避免了兩個方向ESP報文的沖突。本領域普通技術人員可以理解實現上述方法實施例的全部或部分步驟 可以通過程序指令相關的硬件來完成,前述的程序可以存儲于一計算機可讀 取存儲介質中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述 的存儲介質包括R0M、 RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。最后應說明的是以上實施例僅用以說明本發(fā)明的技術方案,而非對其 限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術 人員應當理解其依然可以對前述各實施例所記載的技術方案進行修改,或 者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技 術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。
權利要求
1、一種網絡地址轉換穿越方法,其特征在于包括根據接收到的IP安全隧道的出隧道方向的封裝安全載荷報文和入隧道方向的封裝安全載荷報文分別創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表;根據所述出隧道方向的狀態(tài)會話流表和所述入隧道方向的狀態(tài)會話流表對接收到的所述IP安全隧道的其他封裝安全載荷報文進行IP地址轉換。
2、 根據權利要求l所述的網絡地址轉換穿越方法,其特征在于所述出隧 道方向的狀態(tài)會話流表的表項包括轉換前的私網源IP地址、私網目的IP地 址、封裝安全載荷協(xié)議標識、出隧道方向的安全參數索引;以及轉換后的公 網源IP地址、公網目的IP地址、封裝安全載荷協(xié)議標識、出隧道方向的安全 參數索引。
3、 根據權利要求l所述的網絡地址轉換穿越方法,其特征在于所述入隧 道方向的狀態(tài)會話流表的表項包括轉換前的公網源IP地址、公網目的IP地 址、封裝安全載荷協(xié)議標識、入隧道方向的安全參數索引;以及轉換后的私 網源IP地址、私網目的IP地址、封裝安全載荷協(xié)議標識、入隧道方向的安全 參數索引。
4、 根據權利要求l所述的網絡地址轉換穿越方法,其特征在于所述根裝安全載荷報文分別創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會 話流表包括根據接收到的IP安全隧道的出隧道方向的封裝安全載荷報文創(chuàng)建出隧道 方向的狀態(tài)會話流表和臨時狀態(tài)會話流表,所述臨時狀態(tài)會話流表的表項包 括轉換后的公網源IP地址、公網目的IP地址、封裝安全載荷協(xié)議標識;根據所述臨時狀態(tài)會話流表在接收到的入隧道方向的封裝安全載荷報文中匹配出入隧道方向的封裝安全載荷報文;根據所述入隧道方向的封裝安全載荷報文創(chuàng)建入隧道方向的狀態(tài)會話流表。
5、 根據權利要求4所述的網絡地址轉換穿越方法,其特征在于所述根據 所迷入隧道方向的封裝安全載荷報文創(chuàng)建入隧道方向的狀態(tài)會話流表之后還 包括刪除所述臨時狀態(tài)會話流表。
6、 根據權利要求4所述的網絡地址轉換穿越方法,其特征在于所述根據 接收到的IP安全隧道的出隧道方向和入隧道方向的封裝安全載荷報文分別創(chuàng) 建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表還包括當在所 述臨時狀態(tài)會話流表的超時時間內,沒有匹配出入隧道方向的封裝安全載荷 報文,則刪除所述出隧道方向的狀態(tài)會話流表和所述臨時狀態(tài)會話流表。
7、 根據權利要求4或5所述的網絡地址轉換穿越方法,其特征在于當接收 到兩條IP安全隧道的出隧道方向的封裝安全載荷報文時,根據接收到的先后 順序,丟棄后接收到的出隧道方向的封裝安全載荷報文。
8、 一種網絡地址轉換穿越系統(tǒng),其特征在于,該系統(tǒng)包括 創(chuàng)建^^塊,用于根據接收到的IP安全隧道的出隧道方向的封裝安全載荷報文和入隧道方向的封裝安全載荷報文分別創(chuàng)建出隧道方向的狀態(tài)會話流表 和入隧道方向的狀態(tài)會話流表;轉換模塊,用于根據所述出隧道方向的狀態(tài)會話流表和所述入隧道方向的狀態(tài)會話流表對接收到的所述IP安全隧道的其他封裝安全載荷報文進行IP 地址轉換。
9、 根據權利要求8所述的網絡地址轉換穿越系統(tǒng),其特征在于所述創(chuàng)建 模塊包括第 一創(chuàng)建單元,用于根據接收到的IP安全隧道的出隧道方向的封裝安全 載荷報文創(chuàng)建出隧道方向的狀態(tài)會話流表和臨時狀態(tài)會話流表,所述臨時狀 態(tài)會話流表的表項包括轉換后的公網源IP地址、公網目的IP地址、封裝安全 載荷協(xié)議標識;匹配單元,用于根據所述臨時狀態(tài)會話流表匹配出入隧道方向的封裝安 全載荷報文;第二創(chuàng)建單元,用于根據所述入隧道方向的封裝安全載荷^^艮文創(chuàng)建入隧 道方向的狀態(tài)會話流表。
10、 根據權利要求9所述的網絡地址轉換穿越系統(tǒng),其特征在于所述創(chuàng)建 模塊還包括刪除單元,用于在第二創(chuàng)建單元創(chuàng)建入隧道方向的狀態(tài)會話流表后,刪 除所述臨時狀態(tài)會話流表。
全文摘要
本發(fā)明實施例涉及一種網絡地址轉換穿越方法和系統(tǒng),方法包括根據接收到的IP安全隧道的出隧道方向的封裝安全載荷報文和入隧道方向的封裝安全載荷報文分別創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表;以及根據所述出隧道方向的狀態(tài)會話流表和所述入隧道方向的狀態(tài)會話流表對接收到的所述IP安全隧道的其他封裝安全載荷報文進行IP地址轉換。系統(tǒng)包括相互連接的創(chuàng)建模塊和轉換模塊。本發(fā)明通過創(chuàng)建出隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表,并根據所述隧道方向的狀態(tài)會話流表和入隧道方向的狀態(tài)會話流表對所述IPSec隧道的后續(xù)ESP報文進行IP地址轉換,實現了隧道模式下ESP報文的NAT穿越,而且IPSec隧道兩端無需支持RFC。
文檔編號H04L12/46GK101222412SQ200810056678
公開日2008年7月16日 申請日期2008年1月23日 優(yōu)先權日2008年1月23日
發(fā)明者朱志強 申請人:華為技術有限公司