複製鏈接
請複製以下鏈接發送給好友

nat穿透

鎖定
在計算機科學中,nat穿透(NAT traversal)涉及TCP/IP網絡中的一個常見問題,即在處於使用了NAT設備的私有TCP/IP網絡中的主機之間建立連接的問題。
中文名
nat穿透
外文名
NAT Traversal
學    科
計算機科學
領    域
計算機科學
常用技術
UDP路由驗證和STUN
涉    及
TCP/IP網絡

nat穿透簡介

計算機科學中,nat穿透(NAT traversal)涉及TCP/IP網絡中的一個常見問題,即在處於使用了NAT設備的私有TCP/IP網絡中的主機之間建立連接的問題。 [1] 
會遇到這個問題的通常是那些客户端網絡交互應用程序的開發人員,尤其是在對等網絡VoIP領域中。IPsecVPN客户普遍使用NAT-T來達到使ESP包通過NAT的目的。
儘管有許多穿越NAT的技術,但沒有一項是完美的,這是因為NAT的行為是非標準化的。這些技術中的大多數都要求有一個公共服務器,而且這個服務器使用的是一個眾所周知的、從全球任何地方都能訪問得到的IP地址。一些方法僅在建立連接時需要使用這個服務器,而其它的方法則通過這個服務器中繼所有的數據——這就引入了帶寬開銷的問題。
兩種常用的NAT穿越技術是:UDP路由驗證和STUN。除此之外,還有TURNICEALG,以及SBC

nat穿透NAT穿透與IPsec

為了於NAT之上實現IPsec,下列的協議必須在防火牆中實作:
  • Internet Key Exchange (IKE) -UDP端口500
  • Encapsulating Security Payload (ESP) - IP協議號50
或者是NAT-T之例:
  • IPsec NAT-T - UDP端口4500
在家庭路由器上,這通常通過啓用“IPsec穿透”來實現。

nat穿透IETF文獻

  • RFC 1579- Firewall Friendly FTP
  • RFC 2663- IP Network Address Translator (NAT) Terminology and Considerations
  • RFC 2709- Security Model with Tunnel-mode IPsec for NAT Domains
  • RFC 2993- Architectural Implications of NAT
  • RFC 3022- Traditional IP Network Address Translator (Traditional NAT)
  • RFC 3027- Protocol Complications with the IP Network Address Translator (NAT)
  • RFC 3235- Network Address Translator (NAT)-Friendly Application Design Guidelines
  • RFC 3715- IPsec-Network Address Translation (NAT) Compatibility
  • RFC 3947- Negotiation of NAT-Traversal in the IKE
  • RFC 5128- State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs)

nat穿透相關技術

nat穿透NAT穿透技術與NAT行為

  • Session Traversal Utilities for NAT(STUN)
  • Traversal Using Relay NAT(TURN)
  • NAT-TNegotiation of NAT-Traversal in the IKE
  • Teredo tunnelinguses NAT traversal to provideIPv6connectivity.
  • Session Border Controller(SBC)
  • UDP打洞(UDP hole punching)
  • TCP打洞(TCP hole punching)
  • ICMP打洞(ICMP hole punching)

nat穿透NAT穿透基於NAT控制

  • Realm-Specific IP(RSIP)
  • MiddleboxCommunications(MIDCOM)
  • NAT Port Mapping Protocol(NAT PMP)
  • Internet Gateway Device(IGD)協定,由通用即插即用(UPnP)論壇所定義。
  • Application Layer Gateway(ALG)

nat穿透NAT穿透整合技術

  • Interactive Connectivity Establishment(ICE)

nat穿透 research papers

  • Cornell University - Characterization and Measurement of TCP Traversal through NATs and Firewalls
  • Columbia University - An Analysis of the Skype Peer-to-Peer Internet Telephony
  • Peer to peer communication across Network Address Translators (UDP Hole Punching)
  • Internet By All Means - An article on how to maximize your chances to get around firewalls

nat穿透用途

當前的Internet面臨兩大問題,即可用IP地址的短缺和路由表的不斷增大,這使得眾多用户的接入出現困難。
使用NAT技術可以使一個機構內的所有用户通過有限的數個(或1個)合法IP地址訪問Internet,從而節省了Internet上的合法IP地址;另一方面,通過地址轉換,可以隱藏內網上主機的真實IP地址,從而提高網絡的安全性。

nat穿透NAT術語

在NAT中,有4個地址術語是必須正確理解的,它們是Inside Local、Inside Global、Outside Local和Outside Global。 [2] 
在這些術語中,Inside(內部)是指那些由機構或企業所擁有的內部網絡,這些網絡上的主機通常分配了私有地址。這些地址不能直接在Internet上進行路由,從而也就不能直接用於對Internet的訪問,必須通過網絡地址的轉換,以合法IP的身份來訪問Internet。前者即InsideLocal地址。後者則為Inside Global地址。Local(本地)的地址是不能在Internet上通信的IP地址;Global(全局)的地址是能在Internet上通信的地址。Outside(外部)是指除了我們考察的內部網絡之外的所有網絡。有了對Inside、Outsider Local和Global4個詞的解釋,讓我們來看一看4個地址的定義。
●Inside Local Address(內部本地地址)
指一個網絡內部分配給網上主機的IP地址,此地址通常不是Internet上的合法地址,即不是網絡信息中心 (NIC)或Internet服務提供商(ISP:internet service provider)所分配的IP地址。
●Inside Global Address(內部全局地址)
用來代替一個或者多個內部本地IP地址的、對外的、Internet上合法的IP地址。
●Outside Local Address(外部本地地址)
一個外部主機相對於內部網所用的IP地址。此地址需要是Internet上合法的地址,但是從內部網可以進行路由地址空間中進行分配的。
●Outside Global Address(外部全局地址)
主機擁有者分配給在外部網上主機的IP地址。此地址是從一個從全局可路由的地址或網絡空間中分配的。

nat穿透相關術語

靜態內部源地址轉換
所謂靜態內部源地址轉換是指將一個內部本地的IP地址轉換成為惟一的內部全局地址,即私有地址和合法地址之間的靜態一一映射。這種轉換通常用在內部網上的主機需要對外提供服務(如Web、E-mail服務等)的情況下。
動態內部源地址轉換
在動態內部源地址轉換的方式下,一組內部本地地址與一個內部全局地址池之間建立起一種動態的一一映射關係。這種地址轉換形式下,內部主機可以訪問外部網絡,外部主機也能對內部網絡進行訪問,但必須是在內網IP地址與內部全局地址之間存在映射關係時才能成功,並且這種映射關係是動態的。
複用內部全局地址
Cisco路由器可以把內部全局地址進行復用性的轉換,從而實現內部本地地址對內部全局地址的多對一的映射。地址複用被啓用時,路由器在高層協議(如TCP或UDP端口號)維持有關的信息,將全局地址轉換為本地地址。當多個內部本地地址映射到同一個全局地址時,端口號將用來區別不同的本地地址。複用內部全局地址的技術也被稱為PAT(Port AddressTranslation。端口地址轉換)。
參考資料
  • 1.    Kivinen T, Swander B, Huttunen A, et al. Negotiation of NAT-Traversal in the IKE[R]. 2004.
  • 2.    Capone J M, Immaneni P. Protocol and system for firewall and NAT traversal for TCP connections: U.S. Patent 7,646,775[P]. 2010-1-12.