NAT的工作模型和特點

2021-08-20 07:11:42 字數 2956 閱讀 6583

nat名字很準確,網路位址轉換,就是替換ip報文頭部的位址資訊。nat通常部署在乙個組織的網路出口位置,通過將內部網路ip位址替換為出口的ip位址提供公網可達性和上層協議的連線能力。那麼,什麼是內部網路ip位址?

rfc1918規定了三個保留位址段落:10.0.0.0-10.255.255.255;172.16.0.0-172.31.255.255;192.168.0.0-192.168.255.255。這三個範圍分別處於a,b,c類的位址段,不向特定的使用者分配,被iana作為私有位址保留。這些位址可以在任何組織或企業內部使用,和其他internet位址的區別就是,僅能在內部使用,不能作為全球路由位址。這就是說,出了組織的管理範圍這些位址就不再有意義,無論是作為源位址,還是目的位址。對於乙個封閉的組織,如果其網路不連線到internet,就可以使用這些位址而不用向iana提出申請,而在內部的路由管理和報文傳遞方式與其他網路沒有差異。

對於有internet訪問需求而內部又使用私有位址的網路,就要在組織的出口位置部署nat閘道器,在報文離開私網進入internet時,將源ip替換為公網位址,通常是出口裝置的介面位址。乙個對外的訪問請求在到達目標以後,表現為由本組織出口裝置發起,因此被請求的服務端可將響應由internet發回出口閘道器。出口閘道器再將目的位址替換為私網的源主機位址,發回內部。這樣一次由私網主機向公網服務端的請求和響應就在通訊兩端均無感知的情況下完成了。依據這種模型,數量龐大的內網主機就不再需要公有ip位址了。

圖2 nat轉換過程示意圖

雖然實際過程遠比這個複雜,但上面的描述概括了nat處理報文的幾個關鍵特點:

1. 網路被分為私網和公網兩個部分,nat閘道器設定在私網到公網的路由出口位置,雙向流量必須都要經過nat閘道器; 2. 網路訪問只能先由私網側發起,公網無法主動訪問私網主機; 3. nat閘道器在兩個訪問方向上完成兩次位址的轉換或翻譯,出方向做源資訊替換,入方向做目的資訊替換; 4. nat閘道器的存在對通訊雙方是保持透明的; 5. nat閘道器為了實現雙向翻譯的功能,需要維護一張關聯表,把會話的資訊儲存下來。

隨著後面對nat的深入描述,讀者會發現,這些特點是鮮明的,但又不是絕對的。其中第二個特點打破了ip協議架構中所有節點在通訊中的對等地位,這是nat最大的弊端,為對等通訊帶來了諸多問題,當然相應的克服手段也應運而生。事實上,第四點是nat致力於達到的目標,但在很多情況下,nat並沒有做到,因為除了ip首部,上層通訊協議經常在內部攜帶ip位址資訊。這些我們稍後解釋。

如果乙個內部主機唯一占用乙個公網ip,這種方式被稱為一對一模型。此種方式下,轉換上層協議就是不必要的,因為乙個公網ip就能唯一對應乙個內部主機。顯然,這種方式對節約公網ip沒有太大意義,主要是為了實現一些特殊的組網需求。比如使用者希望隱藏內部主機的真實ip,或者實現兩個ip位址重疊網路的通訊。

nat最典型的應用場景就如同圖2描述的,乙個組織網路,在出口位置部署nat閘道器,所有對公網的訪問表現為一台主機。這就是所謂的一對多模型。這種方式下,出口裝置只占用乙個由internet服務提供商分配的公網ip位址。面對私網內部數量龐大的主機,如果nat只進行ip位址的簡單替換,就會產生乙個問題:當有多個內部主機去訪問同乙個伺服器時,從返回的資訊不足以區分響應應該**到哪個內部主機。此時,需要nat裝置根據傳輸層資訊或其他上層協議去區分不同的會話,並且可能要對上層協議的標識進行轉換,比如tcp或udp埠號。這樣nat閘道器就可以將不同的內部連線訪問對映到同一公網ip的不同傳輸層埠,通過這種方式實現公網ip的復用和解復用。這種方式也被稱為埠轉換pat、napt或ip偽裝,但更多時候直接被稱為nat,因為它是最典型的一種應用模式。

在一對多模型中,按照埠轉換的工作方式不同,又可以進行更進一步的劃分。為描述方便,以下將ip和埠標記為(naddr:nport),其中n代表主機或nat閘道器的不同角色。

圖3 按照埠轉換對映方式分類

全錐形nat

其特點為:一旦內部主機埠對(iaddr:iport)被nat閘道器對映到(eaddr:eport),所有後續的(iaddr:iport)報文都會被轉換為(eaddr:eport);任何乙個外部主機傳送到(eaddr:eport)的報文將會被轉換後發到(iaddr:iport)。

限制錐形nat

其特點為:一旦內部主機埠對(iaddr:iport)被對映到(eaddr:eport),所有後續的(iaddr:iport)報文都會被轉換為(eaddr:eport);只有 (iaddr:iport)向特定的外部主機haddr傳送過資料,主機haddr從任意埠傳送到(eaddr:eport)的報文將會被**到(iaddr:iport)。

埠限制錐形nat

其特點為:一旦內部主機埠對(iaddr:iport)被對映到(eaddr:eport),所有後續的(iaddr:iport)報文都會被轉換為(eaddr:eport);只有(iaddr:iport)向特定的外部主機埠對(haddr:hport)傳送過資料,由 (haddr:hport)傳送到(eaddr:eport)的報文將會被**到(iaddr:iport)。

對稱型nat

其特點為:nat閘道器會把內部主機「位址埠對」和外部主機「位址埠對」完全相同的報文看作乙個連線,在閘道器上建立乙個公網「位址埠對」對映進行轉換,只有收到報文的外部主機從對應的埠對傳送回應的報文,才能被轉換。即使內部主機使用之前用過的位址埠對去連線不同外部主機(或埠)時,nat閘道器也會建立新的對映關係。

事實上,這些術語的引入是很多混淆的起源。現實中的很多nat裝置是將這些轉換方式混合在一起工作的,而不單單使用一種,所以這些術語只適合描述一種工作方式,而不是乙個裝置。比如,很多nat裝置對內部發出的連線使用對稱型nat方式,而同時支援靜態的埠對映,後者可以被看作是全錐型nat方式。而有些情況下,nat裝置的乙個公網位址和埠可以同時對映到內部幾個伺服器上以實現負載分擔,比如乙個對外提供web伺服器的站點可能是有成百上千個伺服器在提供http服務,但是對外卻表現為乙個或少數幾個ip位址。

NAPT和NAT的工作原理及其區別

napt 網路位址埠轉換napt 網路位址埠轉換napt network address port translation 是人們比較熟悉的一種轉換方式。napt普遍應用於 接入裝置中,它可以將中小型的網路隱藏在乙個合法的ip位址後面。napt與 動態位址nat不同,它將內部連線對映到外部網路中的乙...

描述模型和主要特點

基本原理 應具有能夠對抗來自個人的 擁有很少資源 如 利用公開可獲取的工具等 的威脅源發起的惡意 攻擊 一般的自然災難 災難發生的強度弱 持 續時間很短 系統區域性範圍等 以及其他相當 危害程度的威脅所造成的關鍵資源損害,並在威 脅發生後,能夠恢復部分功能。應具有能夠對抗來自小型組織的 如自發的三兩...

Flash Player的工作模型

flash player的工作模型 flash player主要由兩大部件組成,如圖1 4所示。顧名思義,actionscript虛擬機器負責執行編譯後的actionscript位元組碼,而圖形渲染引擎則用來繪製 顯示列表 display list 中的圖形物件。1.4.1 flash player...