`

NAT【维基】

 
阅读更多

网络地址转换

维基百科,自由的百科全书

       在计算机网络中,网络地址转换Network Address Translation或简称NAT),也叫做网络掩蔽或者IP掩蔽IP masquerading),是一种在IP封包通过路由器防火墙时重写源IP地址或目的IP地址的技术。这种技术被普遍使用在有多台主机但只通过一个公有IP地址访问因特网的私有网络中。根据规范,路由器是不能这样工作的,但它的确是一个方便并得到了广泛应用的技术。当然,NAT也让主机之间的通信变得复杂,导致通信效率的降低。

概述

       1990年代中期,NAT是作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来的。网络地址转换在很多国家都有很广泛的使用。所以NAT就成了家庭和小型办公室网络连接上的路由器的一个标准特征,因为对他们来说,申请多余的IP地址的代价要高于所带来的效益。

       在一个典型的配置中,一个本地网络使用一个专有网络的指定子网(比如192.168.x.x或10.x.x.x)和连在这个网络上的一个路由器。这个路由器占有这个网络地址空间的一个专有地址(比如 192.168.0.1),同时它还通过一个或多个因特网服务提供商提供的公有的IP地址(叫做“过载” NAT) 连接到因特网上。当信息由本地网络向因特网传递时,源地址被立即从专有地址转换为公用地址。由路由器跟踪每个连接上的基本数据,主要是目的地址和端口。 当有回复返回路由器时,它通过输出阶段记录的连接跟踪数据来决定该转发给内部网的哪个主机;如果有多个公用地址可用,当数据包返回时,TCPUDP客户机的端口号可以用来分解数据包。对于因特网上的一个系统,路由器本身充当通信的源和目的地址。

流行在网络上的一种看法认为,IPv6的广泛采用将使得NAT不再需要,因为NAT只是一个处理IPv4的地址空间不足的方法。

 

缺点

       在一百个具有NAT功能的路由器下的主机并没有建立真正的IP地址,并且不能参与一些因特网协议。一些需要初始化从外部网络建立的TCP连接和使用无状态协议,比如UDP的服务将被中断。除非NAT路由器作一些具体的努力,否则送来的数据包将不能到达正确的目的地址。一些协议有时可以在应用层网关(见下)的辅助下,在参与NAT的主机之间容纳一个NAT的实例,比如FTP。NAT也会使安全协议变的复杂,比如IPsec

       端对端连接是被IAB委员会Internet Architecture Board)支持的核心因特网协议之一,因此有些人据此认为NAT是对公用因特网的一个破坏。一些因特网服务提供商只向他们的客户提供本地IP地址,所以他们必须通过NAT来访问ISP网络以外的服务,并且这些公司能不能算的上真正的提供了因特网服务的话题也被谈起。

       NAT除了带来方便和代价之外,对全双工连接支持的缺少在一些情况下可以看作是一个有好处的特征而不是一个限制。在一定程度上,NAT依赖于本地网 络上的一台机器来初始化和路由器另一边的主机的任何连接,它可以阻止外部网络上的主机的恶意活动。这样就可以阻止网络蠕虫病毒来提高本地系统的可靠性,阻 挡恶意浏览来提高本地系统的私密性。很多具有NAT功能的防火墙都是使用这种功能来提供核心保护的。另外,它也为UDP的跨局域网的传输提供了方便。

 

基本NAT和端口号转换

基本网络地址转换 (Basic NAT)

       这一种也可称作NAT或“静态NAT”。它在技术上比较简单一点,仅支持地址转换不支持端口映射,这就需要对每一个当前连接都要对应一个IP地址,因此要维护一个公网的地址池。宽带(broadband)路由器通常使用这种方式来允许一台指定的计算机去接收所有的外部连接,甚至当路由器本身只有一个可用外部IP时也如此,这台路由器有时也被标记为DMZ主机

 

       基本NAT要维护一个NAT表,结构如下:

内网IP 外网IP
192.168.1.55 219.152.168.222
192.168.1.59 219.152.168.223
192.168.1.155 219.152.168.224

网络地址端口转换(NAPT)

       这种方式支持端口的映射并允许多台主机共享一个公用IP地址。

       支持端口转换的NAT又可以分为两类:源地址转换目的地址转换NAT 。前一种情形下发起连接的计算机的IP地址将会被重写,使得内网主机发出的数据包能够到达外网主机。后一种情况下被连接计算机的IP地址将被重写,使得外 网主机发出的数据包能够到达内网主机。实际上,以上两种方式通常会一起使用以支持双向通信。

 

       NAPT也要维护一个NAT表,结构如下:

内网IP 外网IP
192.168.1.55:5566 219.152.168.222:9200
192.168.1.59:80 219.152.168.222:9201
192.168.1.59:4465 219.152.168.222:9202

受到NAT影响的应用程序

       一些高层协议(比如FTPQuakeSIP)是在IP包的有效数据内发送网络层(第三层)信息的。比如,主动模式FTP使用单独的端口分别来控制命令传输和数据传输。当请求一个文件传输时,主机在发送请求的同时也通知对方自己想要在哪个端口接受数据。但是,如果主机是在一个简单的NAT防火墙后发送的请求,那么由于端口的映射将会使对方接收到的信息无效。

       一个应用层网关Application Layer GatewayALG)可以修正这个问题。运行在NAT防火墙设备上的ALG软件模块可以更新任何由地址转换而导致无效的信息。显然,ALG需要明白它所要修正的上层协议,所以每个有这种问题的协议都需要有一个单独的ALG

       但是,除FTP外的大多数传统的客户机-服务器协议不需要发送网络层(第三层)信息,也就不需要ALG

       这个问题的另一个可能的解决方法是使用象STUN这样的技术,但是这只针对建立在UDP上的高层协议,并且需要它内建这种技术。这种技术对于对称NAT也是无效的。还有一种可能的方案是UPnP,但它需要和NAT设备配合起来使用。

 

不同类型的NAT

更进一步的信息请参见外部连接

Full cone NAT,亦即著名的一对一(one-to-one) NAT
  • 一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送.任意外部主机都能通过给eAddr:port2发包到达iAddr:port1

 

Full Cone NAT.svg
Address-Restricted cone NAT
  • 一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由 eAddr:port2向外发送.任意外部主机(hostAddr:any)都能通过给eAddr:port2发包到达iAddr:port1的前提 是:iAddr:port1之前发送过包到hostAddr:any. "any"也就是说端口不受限制
Restricted Cone NAT.svg
Port-Restricted cone NAT

类似受限制锥形NAT(Restricted cone NAT),但是还有端口限制。

  • 一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由 eAddr:port2向外发送.一个外部主机(hostAddr:port3)能够发包到达iAddr:port1的前提是:iAddr:port1之 前发送过包到hostAddr:port3.
Port Restricted Cone NAT.svg
Symmetric NAT(对称NAT)
  • 每一个来自相同内部IP与端口,到一个特定目的地地址和端口的请求,都映射到一个独特的外部IP地址和端口。同一内部IP与端口发到不同的目的地和端口的信息包,都使用不同的映射
  • 只有曾经收到过内部主机封包的外部主机,才能够把封包发回
  • Sam评注:对称NAT——对称NAT与上述3种类型都不同,不管是全锥NAT,限制性锥NAT,还是端口限制性锥NAT,它们都属于锥NAT(Cone NAT)。当同一内部主机使用相同的端口与不同地址的外部主机进行通信时,对称NAT会重新建立一个Session,为这个Session分配不同的端口号,或许还会改变IP地址。
Symmetric NAT.svg

 

NAT其他用途实例

  • 负载均衡: 目的地址转换NAT可以重定向一些服务器的连接到其他随机选定的服务器。
  • 失效终结: 目的地址转换NAT可以用来提供高可靠性的服务。如果一个系统有一台通过路由器访问的关键服务器,一旦路由器检测到该服务器当机,它可以使用目的地址转换NAT透明的把连接转移到一个备份服务器上。
  • 透明代理: NAT可以把连接到因特网的HTTP连接重定向到一个指定的HTTP代理服务器以缓存数据和过滤请求。一些因特网服务提供商就使用这种技术来减少带宽的使用而不用让他们的客户配置他们的浏览器支持代理连接。

相关主题

外部链接

分享到:
评论

相关推荐

    何为NAT 何为NAT 何为NAT

    NAT(Network Address Translation)是网络地址转换的缩写,是一种网络技术,用于解决公网IP地址短缺的问题。通过NAT,内部网络中的设备可以使用私有IP地址进行通信,而对外界显示统一的公网IP地址,从而有效地节省...

    sort_nat.zip_sort nat_sort_nat

    标题中的"sort_nat.zip_sort nat_sort_nat"可能是指一个用于整理文件名的程序或脚本,它采用了自然排序(Natural Sort)的方式,使得文件名按照人类阅读习惯进行排序。自然排序不仅考虑字符的顺序,还能理解数字序列...

    专用接口芯片NAT9914及其应用_nat9914_专用接口芯片NAT9914及其应用_

    《专用接口芯片NAT9914及其应用》 在信息技术领域,接口芯片扮演着至关重要的角色,它们是系统间通信的关键桥梁。其中,NAT9914是一款专为通用接口总线(GPIB)设计的高性能接口芯片,广泛应用于测试与测量设备、...

    UDP穿越Symmetric NAT(对称型NAT)的端口猜测方法

    标题中的“UDP穿越Symmetric NAT(对称型NAT)的端口猜测方法”涉及到的是互联网通信中的一个关键问题,即如何在对称型网络地址转换(Symmetric NAT)环境中实现用户数据报协议(UDP)的数据传输。Symmetric NAT是一种...

    windows 系统NAT类型检测工具

    NAT类型通常分为三种:完全锥形NAT、限制锥形NAT和端口限制锥形NAT,这决定了设备对外部网络的可达性和可识别性。本文将详细介绍NAT类型及其检测工具。 **NAT类型详解** 1. **完全锥形NAT (Full Cone NAT)** 在...

    自动NAT检测STUN源代码.rar_nat stun_nat 类型_nat在线检测_nat检测_网络类型

    标题中的“自动NAT检测STUN源代码.rar”暗示了这是一个关于网络通信的软件开发项目,专注于 NAT(网络地址转换)类型的检测。STUN(Simple Traversal of UDP through NATs,简单UDP穿越NAT)是一种协议,用于帮助...

    防火墙NAT Server & 源NAT实验.zip

    防火墙NAT Server & 源NAT实验

    静态NAT配置

    静态NAT配置 静态NAT(Network Address Translation)是一种将私有地址转化为合法IP地址的技术,广泛应用于各种类型的Internet接入方式和网络中。下面是静态NAT配置的知识点: 一、静态NAT的定义 静态NAT是一种...

    NAT类型检测

    NAT类型分为几种,包括开放NAT、端口限制NAT和完全限制NAT,每种类型对网络连接的影响不同,尤其是在多人在线游戏、远程桌面访问和VoIP等需要稳定、低延迟的网络应用中。 1. 开放NAT(Full Cone NAT): 这是最宽松...

    NAT64-rfc6146

    NAT64是一种网络地址和协议转换技术,它允许IPv6-only(只有IPv6地址的)客户端能够与IPv4服务器通信。这种技术在RFC6146文档中得到了标准化,它是由IETF(互联网工程任务组)在2011年发布的标准跟踪文档。NAT64是...

    NAT配置实验报告_17113501

    【NAT配置实验报告_17113501】是关于网络地址转换(NAT)配置的一个实验报告,主要涉及在Windows Server 2003虚拟机和Cisco Packet Tracer仿真环境中实施NAT的过程,以实现内外网的通信。 **NAT(Network Address ...

    wireshark的NAT分析

    ### Wireshark的NAT分析 #### 一、引言 在现代网络环境中,网络地址转换(Network Address Translation,简称NAT)是一项重要的技术,它允许一个或多个私有IP地址在网络边界路由器上被转换为一个公共IP地址,从而...

    九、常用网络协议与应用-静态NAT、动态NAT、NAPT、Easy ip NAT、NAT server【基于华为ensp】

    本篇文章将深入探讨几种常见的NAT类型,包括静态NAT、动态NAT、NAPT、Easy IP NAT以及NAT Server,并结合华为的ENSPI(Enterprise Network Simulation Platform - Interactive)进行实践操作。 1. 静态NAT:静态NAT...

    NatTypeTest工具,NAT类型测试小工具

    **NAT类型测试工具——NatTypeTest** 在互联网通信中,NAT(Network Address Translation,网络地址转换)是一种网络技术,用于将私有IP地址转换为公共IP地址,以解决IPv4地址短缺的问题。NAT类型是描述网络连接中...

    ASA中的策略NAT

    **策略NAT(Policy-Based NAT)**是一种网络地址转换技术,它允许管理员基于特定的源和目的IP地址以及端口来定义NAT规则,与传统的源NAT(PAT)不同,策略NAT不仅可以转换源地址,还可以根据需要转换目的地址。...

    NAT原理与NAT的简单穿越

    NAT(网络地址转换)是互联网访问中常见的一种技术,它的主要目的是解决IP地址短缺问题,通过将私有IP地址转换为公网IP地址,使得内网中的设备能够访问互联网。NAT分为两种主要类型:基本NAT(Network Address ...

    NAT实现NAT-master

    **NAT技术详解** 网络地址转换(Network Address Translation, 简称NAT)是一种在IP网络中广泛使用的技术,其主要目的是解决IP地址短缺问题并保护内部网络。NAT技术通过将私有IP地址转换为公共IP地址,或者反之,...

    NAT穿透之NAT类型检测.pdf

    ### NAT穿透之NAT类型检测 #### 概述 随着互联网的发展,IP地址资源变得越来越紧张,为了缓解这一问题,NAT(Network Address Translation)技术应运而生。NAT技术能够有效地解决IP地址耗尽的问题,使得多个内部...

    nat测试工具

    NAT类型通常分为几种,包括严格NAT(Symmetric NAT)、端口限制NAT(Port-restricted NAT)、锥形NAT(Cone NAT)和全锥形NAT(Full Cone NAT)。不同类型的NAT会影响网络设备之间的通信方式,尤其是对于需要P2P(点...

    windows网络流量nat工具

    NAT(Network Address Translation)是网络地址转换技术,主要用于解决IP地址稀缺问题,它允许内部网络的设备使用私有IP地址,通过一个公共IP地址访问外部网络。在Windows操作系统中,实现NAT功能通常依赖于操作系统...

Global site tag (gtag.js) - Google Analytics