NAT穿透
外觀
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
在電腦科學中,NAT穿越(NAT traversal)涉及TCP/IP網絡中的一個常見問題,即在處於使用了NAT裝置的私有TCP/IP網絡中的主機之間建立連接的問題。
會遇到這個問題的通常是那些客戶端網絡互動應用程式的開發人員,尤其是在對等網絡和VoIP領域中。IPsec VPN客戶普遍使用NAT-T來達到使ESP包通過NAT的目的。
儘管有許多穿越NAT的技術,但沒有一項是完美的,這是因為NAT的行為是非標準化的。這些技術中的大多數都要求有一個公共伺服器,而且這個伺服器使用的是一個眾所周知的、從全球任何地方都能訪問得到的IP位址。一些方法僅在建立連接時需要使用這個伺服器,而其它的方法則通過這個伺服器中繼所有的數據——這就引入了頻寬開銷的問題。
兩種常用的NAT穿越技術是:UDP路由驗證和STUN。除此之外,還有TURN、ICE、ALG,以及SBC。
NAT穿透與IPsec
[編輯]為了於NAT之上實現IPsec,下列的協定必須在防火牆中實作:
- Internet Key Exchange (IKE) - UDP埠500
- Encapsulating Security Payload (ESP) - IP協定號50
或者是NAT-T之例:
- IPsec NAT-T - UDP埠4500
在家庭路由器上,這通常通過啟用「IPsec穿透」來實現。
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行為
[編輯]- Session Traversal Utilities for NAT(STUN)
- Traversal Using Relay NAT(TURN)
- NAT-T Negotiation of NAT-Traversal in the IKE
- Teredo tunneling uses NAT traversal to provide IPv6 connectivity.
- Session Border Controller(SBC)
- UDP打洞(UDP hole punching)
- TCP打洞(TCP hole punching)
- ICMP打洞(ICMP hole punching)
NAT穿透基於NAT控制
[編輯]- Realm-Specific IP(RSIP)
- Middlebox Communications(MIDCOM)
- SOCKS
- NAT Port Mapping Protocol(NAT PMP)
- Internet Gateway Device(IGD)協定,由通用隨插即用(UPnP)討論區所定義。
- Application Layer Gateway(ALG)
NAT穿透整合技術
[編輯]University 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(頁面存檔備份,存於互聯網檔案館)