【計算機網絡】NAT:網絡地址轉換


  NAT(Network Address Translation,網絡地址轉換)是1994年提出的。當在專用網內部的一些主機本來已經分配到了本地IP地址(即僅在本專用網內使用的專用地址),但現在又想和因特網上的主機通信(並不需要加密)時,可使用NAT方法。

  這種方法需要在專用網連接到因特網的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫做NAT路由器,它至少有一個有效的外部全球IP地址。這樣,所有使用本地地址的主機在和外界通信時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和因特網連接。另外,這種通過使用少量的公有IP 地址代表較多的私有IP 地址的方式,將有助於減緩可用的IP地址空間的枯竭。在 RFC 1632中有對NAT的說明。
  簡單地說,NAT就是在局域網內部網絡中使用內部地址,而當內部節點要與外部網絡進行通訊時,就在網關(可以理解為出口,打個比方就像院子的門一 樣)處,將 內部地址替換成公用地址,從而在外部公網(internet)上正常使用,NAT可以使多台計算機共享Internet連接,這一功能很好地解決了公共 IP地址緊缺的問題。通過這種方法,您可以只申請一個合法IP地址,就把整個局域網中的計算機接入Internet中。這時,NAT屏蔽了內部網絡,所有內部網計算機對於公共網絡來說是不可見的,而內部網計算機用戶通常不會意識到NAT的存在。如下圖所示。這里提到的內部地址,是指在內部網絡中分配給節點 的私有IP地址,這個地址只能在內部網絡中使用,不能被路由(一種網絡技術,可以實現不同路徑轉發)使用。雖然內部地址可以隨機挑選,但是通常使用的是下面的 地址:10.0.0.0~10.255.255.255,172.16.0.0~172.16.255.255, 192.168.0.0~192.168.255.255。NAT將這些無法在互聯網上使用的保留IP地址翻譯成可以在互聯網上使用的合法IP地址。而全 局地址,是指合法的IP地址,它是由NIC(網絡信息中心)或者ISP(網絡服務提供商)分配的地址,對外代表一個或多個內部局部地址,是全球統一的可尋 址的地址。

附圖

  NAT功能通常被集成到路由器、防火牆、ISDN路由器或者單獨的NAT設備中。比如Cisco路由器中已經加入這一功能,網絡管理員只需在路由器的IOS中設 置NAT功能,就可以實現對內部網絡的屏蔽。再比如防火牆將WEB Server的內部地址192.168.1.1映射為外部地址202.96.23.11,外部訪問202.96.23.11地址實際上就是訪問訪問 192.168.1.1。另外資金有限的小型企業來說,現在通過軟件也可以實現這一功能。Windows 98 SE、Windows 2000 都包含了這一功能。雖然NAT可以借助於某些代理服務器來實現,但考慮到運算成本和網絡性能,很多時候都是在路由器上來實現的。

NAT技術類型

  NAT有三種類型:靜態NAT(Static NAT)、動態地址NAT(Pooled NAT)、網絡地址端口轉換NAPT(Port-Level NAT)。

  靜態NAT設置起來最為簡單和最容易實現的一種,內部網絡中的每個主機都被永久映射成外部網絡中的某個合法的地址。當一個內部主機必須被作為一個固定的外部地址訪問時,通過靜態NAT實現。

  動態NAT則是在外部網絡中定 義了一系列的合法地址(地址池),采用動態分配的方法映射到內部網絡。動態NAT轉換的工作過程是這樣的,當有一個內部主機需要訪問外網時,從公用IP地址池中取出一個可用的地址分配給該主機使用。當通信完成后,所獲取的公用IP地址也被釋放回地址池中。外部公用IP在被分配給一個內部主機通信使用時,該地址不能不能再次被分配給其他內部主機使用。

  動態地址NAT只是轉換IP地址,它為每一個內部的IP地址分配一個臨時的外部IP地址,主要應用於撥號,對於頻繁的遠程聯接也可以采用動態NAT。當遠程用戶聯接上之后,動態地址NAT就會分配給他一個IP地址,用戶斷開時,這個IP地址就會被釋放而留待以后使用。

  NAPT是把內部地址映射到外部網絡的一個IP地址的不同端口上。NAPT(Network Address Port Translation),即 網絡端口 地址轉換,可將多個內部 地址映射為一個合法公網地址,但以不同的協議 端口號與不同的內部地址相對應,也就是<內部地址+內部端口>與<外部地址+外部端口>之間的轉換。NAPT普遍用於 接入設備中,它可以將中小型的網絡隱藏在一個合法的IP地址后面。NAPT也被稱為“多對一”的NAT,或者叫PAT(Port Address Translations,端口 地址轉換)、地址超載(address overloading)。NAPT與 動態地址NAT不同,它將多個內部連接映射到外部網絡中的一個單獨的IP地址上,同時在該地址上加上一個由NAT設備選定的TCP 端口號。即在NAT路由器中存儲一張NAT轉換表(NAT translation table),表中記錄了<內部地址+內部端口>與<外部地址+外部端口>的對應關系。當外部報文到達NAT路由器時,它們都有相同的IP,該路由器就通過過NAT轉換表尋找源IP地址

   在Internet 中使用NAPT時,所有不同的信息流看起來好像來源於同一個IP地址。這個優點在小型辦公室內非常實用,通過從ISP處申請的一個IP地址,將多個連接通 過NAPT接入Internet。實際上,許多SOHO遠程訪問設備支持基於PPP的動態IP地址。這樣,ISP甚至不需要支持NAPT,就可以做到多個 內部IP地址共用一個外部IP地址上Internet,雖然這樣會導致信道的一定擁塞,但考慮到節省的ISP上網費用和易管理的特點,用NAPT還是很值 得的。

  

NAT穿透方法

  目前常用的針對UDP的NAT 穿透(NAT Traversal)方法主要有:STUNTURNICEuPnP等。其中ICE方式由於其結合了STUN和TURN的特點,所以使用最為廣泛。針對TCP的NAT穿透技術目前仍為難點。實用的技術仍然不多。

uPnp。對於NAT穿越技術,http://www.wildlee.org/2010_12_1227.html這篇文件可以看一看。

 
參考資料:
  1.百度百科-NAT
  2.http://www.emule.org.cn/topic/nat/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM