1. gzyueqian
      18078865874
      首頁 > 新聞中心 > > 正文

      IPSec與NAT之間的兼容性分析和解決方案

      更新時間: 2007-07-05 10:31:05來源: 粵嵌教育瀏覽量:1051

        網(wǎng)絡(luò)安全協(xié)議IPSec(IP Security)和網(wǎng)絡(luò)地址轉(zhuǎn)換NAT(Network Address Translation)已經(jīng)得到了廣泛的應(yīng)用,但是如果一起運行的話,會遇到很多問題。

      1 引 言

        從IP的角度來看,NAT對IP的低層進(jìn)行了修改,對IP協(xié)議來說是一種背離;而從應(yīng)用的角度來看,網(wǎng)絡(luò)管理人員必須要處理網(wǎng)絡(luò)地址的問題,NAT使用戶可以采取多種方式把自己的網(wǎng)絡(luò)和主機對外部公共網(wǎng)絡(luò)隱藏起來,是一種好的工具,現(xiàn)在,無論是大企業(yè)還是中小企業(yè)都在使用。與NAT、類似,IPSec:也是一種好工具,他使用戶可以安全地通過Internet連接到遠(yuǎn)程終端。然而,由于IPSec協(xié)議架構(gòu)本身以及缺乏支持IPSec的NAT設(shè)備,當(dāng)IPSec和NAT在一起運行時就會出現(xiàn)很多問題。要解決兩者共存的問題,就必須對IPSec和NAT有一定的了解。

      2 IPSec和NAT的工作原理

      2.1 NAT技術(shù)簡介

        NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)實現(xiàn)的核心是把內(nèi)部子網(wǎng)中的數(shù)據(jù)報文的保留IP地址報頭信息轉(zhuǎn)換為外部合法的IP地址再向外部網(wǎng)絡(luò)發(fā)送,在收到外部數(shù)據(jù)報文后,根據(jù)NAT設(shè)備維護(hù)的地址映射表用內(nèi)部保留地址反向替換外部合法IP地址,使得內(nèi)部子網(wǎng)中機器能收到數(shù)據(jù)報文信息。

        NAT有3種類型:靜態(tài)NAT(Static NAT)、動態(tài)地址NAT(Pooled NAT)、網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Port-Level NAT)。但不管如何,NAT協(xié)議都會分析IP數(shù)據(jù)報的報頭,匹配地址轉(zhuǎn)換表中的規(guī)則,修改滿足匹配規(guī)則的IP數(shù)據(jù)報報頭。并根據(jù)協(xié)議的需要重新計算IP數(shù)據(jù)報的校驗和。例如:對TCP包,由于存在TCP報頭偽頭,其內(nèi)包含相應(yīng)的地址信息,NAT還必須修改TCP報頭并重新計算其校驗和。

      2.2 IPSec協(xié)議

        IPSec:協(xié)議不是一個單獨的協(xié)議,他給出了應(yīng)用于IP層上網(wǎng)絡(luò)數(shù)據(jù)安全的一整套體系結(jié)構(gòu),包括網(wǎng)絡(luò)認(rèn)證協(xié)議Authentication Header(AH)、封裝安全載荷協(xié)議Encapsulating Security Payload(ESP)、密鑰管理協(xié)議Internet KeyExchange(IKE)和用于網(wǎng)絡(luò)認(rèn)證及加密的一些算法等。

        其中AH協(xié)議定義了認(rèn)證的應(yīng)用方法,提供數(shù)據(jù)源認(rèn)證和完整性保證;ESP協(xié)議定義了加密和可選認(rèn)證的應(yīng)用方法,提供可靠性保證。AH和ESP可以單獨使用,也可以同時使用。IPSec模式有兩種,分別是傳輸模式和隧道模式,圖1是用ESP在兩種不同的模式下對IP數(shù)據(jù)報進(jìn)行封裝。

      3 IPSec與NAT的兼容性問題

        NAT與IPSec的兼容性問題主要有以下幾個方面:

        (1)IPSec的AH與NAT。

        AH封裝對IP包的完整性保護(hù)包括了外層IP頭中的IP地址域。而NAT需要修改IP地址域以進(jìn)行地址轉(zhuǎn)換,這樣就會導(dǎo)致AH包無效。由于ESP封裝并不對外層IP頭進(jìn)行加密,完整性計算也不包括外層IP頭中的域,因此,這種修改并不會影響ESP封裝。

        (2)校驗和與NAT。

        在傳輸模式中,如果IP包中封裝的上一層協(xié)議(傳輸層)是TCP或者UDP,在這些協(xié)議的協(xié)議頭中都有一個校驗和字段,他和IP頭中的IP地址有關(guān)。在NAT的處理中,當(dāng)NAT更改了IP頭中的源地址或者目的地址后,會重新計算并修改傳輸層的校驗和字段。這樣NAT如果按普通的處理更改該字段,這個IP包就會被對方的IPSec丟棄。如果不修改該字段的值,在接收端,雖然IPSec不會丟棄這個包,但傳輸層在進(jìn)行校驗和校驗時會出錯,這個報文還是會被傳輸層丟棄。對于隧道模式,不存在這個問題。

        (3)IPSec:

        與NAPT(NAT端口映射)。NAPT需要更改傳輸層的端口號。如果一個IP包受到了IPSec的保護(hù),傳輸層的端口號一定會受到完整性保護(hù),在NAPT對端口號進(jìn)行修改后,該IP包就會被接收方的IPSec丟棄。

        (4)IKE協(xié)商時的固定目標(biāo)端口和NAPT。

        NAPT的工作原理是通過不同的端口號來區(qū)分不同的連接。IKE協(xié)商時,進(jìn)行的UDP通信的端口號一般是固定的(通常是500),這時就會出現(xiàn)問題。

        (5)在隧道模式的ESP情況下,TCP/UDP報頭是不可見的,因此不能被用于進(jìn)行內(nèi)外地址的轉(zhuǎn)換,而此時靜態(tài)NAT和ESF IPSec可以一起工作,因為只有IP地址要進(jìn)行轉(zhuǎn)換,對高層協(xié)議沒有影響。

      4.IPSec穿越NAT的解決方案

        在IPSec:中,SA的管理可通過IKE自動協(xié)商來完成。需要IKE協(xié)商和UDP封裝兩種方法配合起來使用,以完成IPSec穿越NAT。

      4.1 IKE協(xié)商 

        4.1.1階段一

        (1)探測是否支持IPSec-_NAT穿越

        在IKE的階段協(xié)商(主模式)中的前兩條消息中應(yīng)加入一個Vendor ID載荷,通過Vendor ID載荷交換來確定遠(yuǎn)程主機是否支持NAT穿越。

        (2)探測在通信路徑中是否存在NAT

        NAT-D(NAT Discovery)載荷不僅用于探測兩個IKE實體之間是否存在NAT,也用于探測NAT所處的位置。所以需要在第三與第四個IKE協(xié)商消息中各包含2個NAT-D載荷,個NAT-D載荷包含遠(yuǎn)端主機的地址與端口的散列值,第二個NAT-D載荷包含本地主機的地址與端口的散列值。

        為了探測出兩臺主機之間的NAT,需要檢查IP地址和端口是否沿著傳輸路徑發(fā)生改變。協(xié)商雙方只需各自向?qū)Χ税l(fā)送源方和目的方的IP地址與端口的散列值,就可以檢測地址和端口在傳輸過程中是否發(fā)生改變。如果協(xié)商雙方計算出的散列值與其收到的散列值相同,則表示他們之間沒有NAT。反之,則是在傳輸中對地址或端口進(jìn)行了轉(zhuǎn)換,說明所通過的IPSec:報文進(jìn)行了NAT穿越的處理。

        4.1.2 階段二

        (1)協(xié)商是否使用NAT穿越(在SA載荷中協(xié)商)

        在快速模式中進(jìn)行IPSec SA的協(xié)商,確定是否采用UDP封裝的方式,為此在原來的傳輸模式和隧道模式的基礎(chǔ)上,添加了兩種另外的模式:UDP封裝隧道模式和UDP封裝傳輸模式。

        (2)IPSec SA協(xié)商成功后,就可以利用協(xié)商好的安全參數(shù),采用所選擇的UDP封裝模式,發(fā)送ESP保護(hù)的數(shù)據(jù)包,成功地穿越NAT設(shè)備,進(jìn)行通信。

      4.2 UDP封裝

        ESP協(xié)議對數(shù)據(jù)包的上層(TCP/UDP)數(shù)據(jù)封裝后,上層數(shù)據(jù)被加密保護(hù),這樣NAT無法獲取正確的端口信息,從而使得轉(zhuǎn)換發(fā)生失敗。

        用IPv4協(xié)議中標(biāo)準(zhǔn)UDP協(xié)議頭封裝IPSec:數(shù)據(jù)包,構(gòu)成一個UDP隧道,通信路徑上的設(shè)備看到的是UDP數(shù)據(jù)包。其端口值對NAT可見,就可以進(jìn)行正確的轉(zhuǎn)換。因此,在這種方式下,不需要改變網(wǎng)絡(luò)的基礎(chǔ)設(shè)施,

        只需在IPSec網(wǎng)關(guān)或?qū)崿F(xiàn)有IPSec:的主機上進(jìn)行IPSec和NAT協(xié)同工作處理。圖2和圖3是兩種傳輸模式下UDP對。ESP包的封裝。

        由于UDP封裝的ESP包使用了IKE協(xié)商端口500,因此必須對IKE協(xié)商包的格式進(jìn)行修改以區(qū)別這兩種不同的包。具體的做法是在IKE數(shù)據(jù)包中的UDP頭和IKE頭之間添加4 B的Non-ESP標(biāo)志。其值設(shè)為全O,而在ESP頭中的前4 B是SPI字段,在實現(xiàn)過程中該字段不為0。這樣就能有效的區(qū)分UDP封裝的ESP包和IKE協(xié)商包了。

        NAT將一個私有IP地址映射為一個公有IP地址(或者還有端口)的時間是有限度的,要是在這個限度內(nèi)沒有被使用,就會被釋放掉,這樣就刪除該IPSec SA。表示對等方NAT穿越的映射關(guān)系已經(jīng)被刪除。這樣會使后續(xù)的IPSec通信中斷。所以專門設(shè)計了一個UDP的Keepalive數(shù)據(jù)包,定時發(fā)送,保證NAT設(shè)備中的映射關(guān)系不被釋放。接收方接收到Keepalive數(shù)據(jù)包后,不對Keepalive數(shù)據(jù)包進(jìn)行處理,而是直接將其丟棄。這樣做的目的是NAT中的映射關(guān)系在IPSec通信的過程中不會被過早地釋放掉。

        圖4是UDP封裝的IPSec的處理流程。

      5 結(jié) 語

        NAT技術(shù)和IPSec:技術(shù)在目前都得到了較為廣泛的應(yīng)用。NAT的核心是修改IP頭中的IP地址。而IPSec卻要保護(hù)IP包,因此同時使用這兩種技術(shù)會出現(xiàn)很多問題,解決他們之間的不兼容問題變得非常迫切。本文介紹的UDP封裝方法無需修改NAT網(wǎng)關(guān)和路由器,比較簡單地解決了IPSec的NAT穿越,具有一定的現(xiàn)實意義。

      免費預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲成色在线观看网站 | 欧美理论电影久久网站 | 亚洲日韩精品欧美国产动漫第一页 | 日本特黄特黄刺激免费大片 | 制服中文字幕在线一区 | 亚洲国产午夜理论片大全 |