求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

NAT穿透查看源代码讨论查看历史

跳转至: 导航搜索
NAT穿透

中文名: nat穿透

外文名: NAT Traversal

学 科: 计算机科学

领 域: 计算机科学

常用技术: UDP路由验证和STUN

涉 及: TCP/IP网络

计算机科学中,nat穿透(NAT traversal)涉及TCP/IP网络中的一个常见问题,即在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。[1]

简介

在计算机科学中,nat穿透(NAT traversal)涉及TCP/IP网络中的一个常见问题,即在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。   会遇到这个问题的通常是那些客户端网络交互应用程序的开发人员,尤其是在对等网络和VoIP领域中。IPsecVPN客户普遍使用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) 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控制

Realm-Specific IP(RSIP) MiddleboxCommunications(MIDCOM) SOCKS NAT Port Mapping Protocol(NAT PMP) Internet Gateway Device(IGD)协定,由通用即插即用(UPnP)论坛所定义。 Application Layer Gateway(ALG)

NAT穿透整合技术

Interactive Connectivity Establishment(ICE)

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

用途

当前的Internet面临两大问题,即可用IP地址的短缺和路由表的不断增大,这使得众多用户的接入出现困难。 使用NAT技术可以使一个机构内的所有用户通过有限的数个(或1个)合法IP地址访问Internet,从而节省了Internet上的合法IP地址;另一方面,通过地址转换,可以隐藏内网上主机的真实IP地址,从而提高网络的安全性。

NAT术语

在NAT中,有4个地址术语是必须正确理解的,它们是Inside Local、Inside Global、Outside Local和Outside Global。   在这些术语中,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地址。此地址是从一个从全局可路由的地址或网络空间中分配的。

相关术语

静态内部源地址转换 所谓静态内部源地址转换是指将一个内部本地的IP地址转换成为惟一的内部全局地址,即私有地址和合法地址之间的静态一一映射。这种转换通常用在内部网上的主机需要对外提供服务(如Web、E-mail服务等)的情况下。 动态内部源地址转换 在动态内部源地址转换的方式下,一组内部本地地址与一个内部全局地址池之间建立起一种动态的一一映射关系。这种地址转换形式下,内部主机可以访问外部网络,外部主机也能对内部网络进行访问,但必须是在内网IP地址与内部全局地址之间存在映射关系时才能成功,并且这种映射关系是动态的。 复用内部全局地址 Cisco路由器可以把内部全局地址进行复用性的转换,从而实现内部本地地址对内部全局地址的多对一的映射。地址复用被启用时,路由器在高层协议(如TCP或UDP端口号)维持有关的信息,将全局地址转换为本地地址。当多个内部本地地址映射到同一个全局地址时,端口号将用来区别不同的本地地址。复用内部全局地址的技术也被称为PAT(Port AddressTranslation。端口地址转换)。

参考来源

  1. [1],简易百科 ,