地址转换

地址转换

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

概述编辑

Réseau sans NAT
Réseau avec NAT开始,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功能的 路由器下的 主机并没有建立真正的端对端连接,并且不能参与一些 因特网协议。一些需要初始化从外部网络建立的 TCP连接和使用 无状态协议,比如 UDP的服务将被中断。除非NAT路由器作一些具体的努力,否则送来的数据包将不能到达正确的目的地址。一些协议有时可以在 应用层网关(见下)的辅助下,在参与NAT的主机之间容纳一个NAT的实例,比如FTP。NAT也会使安全协议变的复杂,比如IPsec。
端对端连接是被 IAB委员会(Internet Architecture Board)支持的核心因特网协议之一,因此有些人据此认为NAT是对公用因特网的一个破坏。一些 因特网服务提供商只向他们的客户提供本地 IP地址,所以他们必须通过NAT来访问ISP网络以外的服务,并且这些公司能不能算的上真正的提供了因特网服务的话题也被谈起。

好处编辑

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

转换方式编辑

目前存在两种地址转换方式。一种是经常被简记为"NAT"的 网络地址转换(有时也叫做“ 网络地址端口转换”,记做 NAPT),这种方式支持端口的映射并允许多台 主机共享一个公用 IP地址。另一种也可以称作NAT或“基本NAT”,“静态NAT",但在技术上更简单一点,仅支持地址转换,不支持 端口映射,这就需要对每一个当前连接都要对应一个IP地址。宽带(broadband) 路由器通常使用这种方式来允许一台指定的计算机去接收所有的外部连接,甚至当路由器本身只有一个可用外部IP时也如此,这台路由器有时也被标记为DMZ主机。
支持端口转换的NAT又可以分为两类: 源地址转换和目的地址转换NAT 。前一种情形下发起连接的计算机的 IP地址将会被重写,后一种情况下被连接计算机的IP地址将被重写。实际上,以上两种方式通常会一起使用以支持双向通信。
[编辑] 受到NAT影响的应用程序
一些高层协议(比如FTP,Quake,SIP)是在IP包的有效数据内发送网络层(第三层)信息的。比如,主动模式的FTP使用单独的端口分别来控制命令传输和数据传输。当请求一个文件传输时, 主机在发送请求的同时也通知对方自己想要在哪个端口接受数据。但是,如果主机是在一个简单的NAT防火墙后发送的请求,那么由于端口的映射将会使对方接收到的信息无效。
一个 应用层网关(Application Layer Gateway或ALG)可以修正这个问题。运行在NAT防火墙设备上的ALG软件模块可以更新任何由地址转换而导致无效的信息。显然,ALG需要明白它所要修正的上层协议,所以每个有这种问题的协议都需要有一个单独的ALG。
但是,除FTP外的大多数传统的客户机-服务器协议不需要发送网络层(第三层)信息,也就不需要ALG。
这个问题的另一个可能的解决方法是使用象 STUN这样的技术,但是这只针对建立在 UDP上的高层协议,并且需要它内建这中技术。这种技术对对称NAT也是无效的。还有一种可能的方案是 UPnP,但它需要和NAT设备配合起来使用

用途实例编辑

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

源网络地址转换

源地址转换是基于源地址的地址转换,主要用于内网访问外网,减少 公有地址的数目,隐藏内部地址。
IP地址为192.168.1.2,192.168.1.3,192.168.1.4的3台PC机,通过源地址转换后,共用119.75.213.61的公网IP地址和互联网连接。

目的地址转换

目的地址转换可分为目标 地址映射、目标 端口映射、服务器 负载均衡等。目的地址转换也称为反向地址转换或地址映射。目的地址转换是一种单向的针对目标地址的映射,主要用于内部服务器向外部提供服务的情况,它与静态地址转换的区别在于它是单向的。外部可以主动访问内部,内部却不可以主动访问外部。另外,可使用目的地址转换实现负载均衡的功能,即可以将一个目标地址转换为多个内部服务器地址。也可以通过端口的映射将不同的端口映射到不同的机器上。
如互联网上的PC(218.92.1.2)通过访问互联网地址119.75.213.61,经过路由器的目的地址转换,成为访问置于内网的服务器192.168.1.100.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值