`

NAT工作原理(Network Address Translation, NAT)

阅读更多

IP地址耗尽促成了CIDR的开发,但CIDR开发的主要目的是为了有效的使用现有的internet地址。而同时根据RFC 1631(IP Network Address Translator)开发的NAT却可以在多重的internet子网中使用相同的IP,用来减少注册IP地址的使用。
 
  NAT技术使得一个私有网络可以通过internet注册IP连接到外部世界,位于inside网络和outside网络中的NAT路由器在发送数据包之前,负责把内部IP翻译成外部合法地址。内部网络的主机不可能同时于外部网络通信,所以只有一部分内部地址需要翻译。
 
  NAT的翻译可以采取静态翻译(static translation)和动态翻译(dynamic translation)两种。静态翻译将内部地址和外部地址一对一对应。当NAT需要确认哪个地址需要翻译,翻译时采用哪个地址pool时,就使用了动态翻译。采用portmultiplexing技术,或改变外出数据的源port技术可以将多个内部IP地址影射到同一个外部地址,这就是PAT(port address translator)。
 
  当影射一个外部IP到内部地址时,可以利用TCP的load distribution技术。使用这个特征时,内部主机基于round-robin机制,将外部进来的新连接定向到不同的主机上去。注意:load distributiong只有在影射外部地址到内部的时候才有效。
 
  NAT使用的几种情况:
 
  a,连接到internet,但却没有足够的合法地址分配给内部主机。
 
  b,更改到一个需要重新分配地址的ISP。
 
  c,有相同的IP地址的两个internat合并。
 
  d,想支持负载均衡(主机)。
 
  采用NAT后,一个最主要的改变就是你失去了端对端IP的traceability,也就是说,从此你不能再经过NAT使用ping和traceroute,其次就是曾经的一些IP对IP的程序不再可以正常运行,潜在的不易被观察到的缺点就是增加了网络延时。
 
  NAT可以支持大部分IP协议,但有几个协议需要注意,首先tftp,rlogin,rsh,rcp和ipmulticast都被NAT支持,其次就是bootp,snmp和路由表更新全部给拒绝了。
 
  NAT的几个相关概念:
 
  Inside Local IP address: 指定于内部网络的主机地址,全局唯一,但为私有地址。
 
  Inside Global IP address: 代表一个或更多内部IP到外部世界的合法IP。
 
  Outside Global IP address: 外部网络主机的合法IP。
 
  Outside Local IP address: 外部网络的主机地址,看起来是内部网络的,私有地址。
 
  Simple Translation Entry: 影射IP到另一个地址的Entry。
 
  Extended Translation Entry:影射IP地址和端口到另一个pair的Entry。
采用NAT,可以实现以下几个功能:
 
  a,Translation inside local addresses
 
  b,Overloading inside global addresses
 
  c,TCP load distribution
 
  d,Handing overlapping networks
 
  下面我们一一叙述它们的工作原理。

a,内部地址翻译(Translation inside local addresses):
 
  这是比较通用的一种方法,将内部IP一对一的翻译成外部地址。
 
  在内部主机连接到外部网络时,当第一个数据包到达NAT路由器时,router检查它的NAT表,因为是NAT是静态配置的,故可以查询出来(simply entry),然后router将数据包的内部局部IP(源地址)更换成内部全局地址,再转发出去。外部主机接受到数据包用接受到的内部全局地址来响应,NAT接受到外部回来的数据包,再根据NAT表把地址翻译成内部局部IP,转发过去。
 
  b,内部全局地址复用(overloading inside glogal addresses)
 
  使用地址和端口pair将多个内部地址影射到比较少的外部地址。这也是所谓的PAT。和内部地址翻译一样,NAT router同样也负责查表和翻译内部IP地址,唯一的区别就是由于使用了overloading,router将复用同样的内部全局IP地址,并存储足够的信息以区分它和其他地址,这样查询出来的是extended entry。NAT router和外部主机的通讯采用翻译过的内部全局地址,故同一般的通信没有差别,router到内部主机通讯时,同样要查NAT表。
 
  c,TCP负载重分配(TCP load distributing)和以上两种操作不同,这是NAT由外到内的翻译,所以那种以为WEB server一定要放置到
 
  NAT外部的说法是错误的。
 
  工作原理:外部主机向虚拟主机(定义为内部全局地址)通讯,NAT router接受外部主机的请求并依据NAT表建立与内部主机的连接,把内部全局地址(目的地址)翻译成内部局部地址,并转发数据包到内部主机,内部主机接受包并作出响应。NAT router再使用内部局部地址和端口查询数据表,根据查询到的外部地址和端口做出响应。
 
  此时,如果同一主机再做第二个连接,NAT router将根据NAT表将建立与另一虚拟主机的连接,并转发数据。
 
  d,处理重叠网络。
 
  这种方法主要用于两个intranet的互连,同样给我们处理两个重叠网络提供了方法。它的实现要求DNS server的支持(用于区别两个不同的主机)。
 
  1,主机A要求向主机C建立连接,先象DNS server做地址查询。
 
  2,NAT router截获DNS的响应,如果地址有重叠,将翻译返回的地址。它将创建一个simply entry把重叠的外部全局地址(目的地址)翻译成外部局部地址。
 
  3,路由器转发DNS响应到主机A,它已经把主机C的地址(外部全局地址)翻译成外部局部地址。
 
  4,当路由器接受到主机C的数据包时,它将建立内部局部、全局,外部全局、局部地址间的转换,主机A将由内部局部地址(源地址)翻译成内部全局地址,主机C将由外部全局地址(目的地址)翻译成外部局部地址。
 
  5,主机C接受数据包并继续通讯。
 
  NAT的具体配置和校验不再叙述

 

================================================================================

NAT概述:网络地址转换(Network Address Translation, NAT)通过将内部网络的的私有IP 地址翻译成唯一的公网IP地址,使内部的网络可以连接到互联网等外部网络上

NAT的优点

§ 节省公有合法IP地址

§ 处理地址交叉

§ 增强灵活性

§ 安全性(隐藏内部网络的细节,避免来自外部网络的攻击)

NAT的缺点

§ 延迟增大

§ 配置和维护的复杂性

§ 不支持某些应用

NAT的类型:

静态转换(Static Translation)

动态装换(Dynamic Translation)

端口多路复用(Port Address Translation )

NAT的基本原理:

改变IP包头,使目的地址、源地址或两个地址在包头中被不同地址替换

NAT的术语:

* 内部局部IP地址(inside local address):在内部网络中分配给主机的私有ip地址,也就是说,在内部的所有私有地址

* 内部全局IP地址(inside global IP address ):一个合法的IP地址,它对外代表一个或者多个内部局部IP地址,也就是说,在内部的私有地址通向外部的一个网关,即分配给内部私有地址的公有地址,能代替内部的私有地址

* 外部全局IP地址(outside global IP address):由其所有者给外部网络上的主机分配的IP地址,也就是说,在外部的所有私有地址

* 外部局部IP地址(outside local IP address):外部主机表现在内部网络的IP地址,也就是说,在外部的主机分配的一个能代替所有私有的地址

NAT的个作原理:

以下图来讲原理:

NAT工作原理拓扑图

首先,我们要清楚,在局域网内部的私有地址是不能访问外网的,必须通过转换成公有地址才可以访问Internet,以上所图,是两个公司之间的Inter网络互相交流,下面来谈谈它的工作原理

192.168.1.0网络的PC1想要访问192.168.10.0网络的User1

1.PC1向RA(网关)发送请求,告诉自己的私有IP地址和MAC地址,并且要求自己要到达192.168.10.0网络的User1主机

2.RA收到请求后,把PC1的源IP地址进行转换,变成内部全局地址,即公有地址202.16.58.1,并且为PC1制定一个随机产生的端口号(来识别某台主机),发送到Inter网

3.Inter网络收到了内部全局IP地址的请求,之间进行路由选择,被RB接收,RB通过查看RA发送过来的内部全局IP地址和端口号等信息,直接发送给192.168.10.0网络的网关

4.网关路由器RB收到了信息,根据对方发过来的目标主机信息,把数据传输给192.168.10.0网络的User1主机

5.根据ICMP协议,user1主机需要回应,对数据进行相应的处理,把数据封装后发送给网关

6.网关把user1的私有IP地址转换成外部局部IP地址,即公有地址202.16.58.2,通过这个公有地址,转发到路由器RA

7.RA收到数据包,查看自己缓存里的对应的主机和端口,并对192.168.1.0网络的PC1进行转发

思考:如果两个局域网的主机网络是一样的怎么办呢?

这样就构成了地址交叉,我们知道,在一个网络或者子网中,IP地址一样会产生冲突,就那上图来说把,假如192.168.10.0网络也是192.168.1.0网络,两个公司合并了,那该怎么去解决这个IP冲突呢?

其原理和上述原理一样,只不过多了个地址交叉的过程,在这里两个网关,其中的一个充当一个善意的欺骗者,告诉网络中一个假的消息,其实自己是很清楚的,只是把自己当成了一个代理作用,帮别人转发信息

NAT的几个用法:

复用内部LAN地址(PAT):通过允许对TCP连接或者UDP会话进行转换,从而达到节省内部全局地址集中的合法地址

TCP负载均衡:利用NAT技术,用对外的IP地址来代表多个同样的服务器

  • 大小: 21.7 KB
分享到:
评论

相关推荐

    12 NAT(network address translation)

    详细介绍了NAT的配置过程,包括静态NAT,动态NAT,以及PAT。

    网络地址转换详细描述,Network Address Translation (NAT)

    网络地址转换(Network Address Translation,简称NAT)是互联网通信中的一个重要概念,它确保了众多设备能够在共享的公共IP地址下进行通信,解决了IPv4地址空间有限的问题。每台接入互联网的设备都有一个独特的IP...

    NAT工作原理.pdf

    NAT(Network Address Translation)是一种网络技术,主要目的是解决IP地址短缺的问题,允许私有网络内的设备使用非全局唯一的IP地址进行互联网通信。NAT路由器作为公共网络与私有网络的桥梁,通过转换IP地址来实现...

    UDP穿透NAT的原理与实现

    在互联网环境中,由于私有IP地址的广泛使用,NAT(Network Address Translation)技术成为连接内网与公网的重要桥梁。然而,NAT会阻碍直接的端到端通信,特别是对于需要双向通信的UDP协议。本文将深入探讨UDP穿透NAT...

    操作系统之网络管理算法:Network Address Translation (NAT).zip

    操作系统之网络管理算法系列算法教程

    NAT原理及注意事项

    ### NAT原理及注意事项详解 #### 一、NAT(网络地址转换)概念解析 NAT,即Network Address Translation,是一种在网络层实现IP地址转换的技术,主要用于解决IPv4地址空间不足的问题。随着互联网用户和设备数量的...

    nat从入门到精通(nat原理 配置 应用)

    ### NAT从入门到精通(NAT原理 配置 应用) #### 1. NAT原理与配置 **NAT(Network Address Translation,网络地址转换)**是一种被广泛应用于解决IPv4地址短缺问题的技术。它通过将私有网络内的私有IP地址转换为...

    P2P之UDP穿透NAT的原理与实现资料+源代码

    在P2P网络中,UDP(User Datagram Protocol)穿透NAT(Network Address Translation)是一项关键技术,它使得位于不同NAT后的设备能够直接通信,从而提高网络效率并降低中心服务器的压力。 NAT是一种网络地址转换...

    The NAT-PT Providing IPv4 to IPv6 and IPv6 to IPv4 Address Translation

    NAT-PT(Network Address Translation and Protocol Translation)作为解决此问题的一种技术方案,为IPv6-only主机与IPv4-only主机之间的通信提供了可能。 #### NAT-PT概述 NAT-PT是一种混合了网络地址翻译(NAT)和...

    虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理.docx

    2. **NAT模式(Network Address Translation)** NAT模式是一种节省IP地址并保护内部网络的方式。在这种模式下,虚拟机的网络流量通过宿主机的NAT服务转发到外部网络,虚拟机对外部网络来说看起来像是宿主机的一个...

    NAT技术优缺点讨论

    分析的NAT技术优缺点,并用实例第七两方面进行实例分析

    路由器的NAT的原理及配置.pdf

    NAT(Network Address Translation)是网络中的一种技术,它的主要作用是解决IPv4地址空间不足的问题。当企业内部网络中的设备使用的是未被Internet认可的非法IP地址时,NAT可以将这些非法IP转换为合法的公网IP,...

    Nat网络穿越资料汇总

    NAT(Network Address Translation,网络地址转换)是互联网通信中的一种核心技术,主要用于解决IP地址短缺问题,同时也为内部网络提供对外部网络的访问能力。它通过将私有IP地址转换为公共IP地址,使得内部网络的...

    NAT原理介绍之NAT分类.doc

    NAT(Network Address Translation,网络地址转换)是一种将私网IP地址转换为公网IP地址的技术,用于解决IP地址不足的问题。NAT技术可以将多个私网IP地址映射到一个公网IP地址上,从而实现多个私网用户共享一个公网...

    P2P 之 UDP穿透NAT的原理与实现(附源代码)P2PServer.rar

    NAT(Network Address Translation)是互联网上广泛使用的技术,用于解决IP地址短缺问题,但同时也给P2P通信带来了挑战。本资源“P2P 之 UDP穿透NAT的原理与实现(附源代码)P2PServer.rar”旨在详细介绍如何通过UDP...

    利用Linux下的NAT功能实现多机共用一个IP地址.pdf

    NAT(Network Address Translation,网络地址转换)是一种使多台计算机共用一个公网IP地址的技术。通过NAT,可以将私有IP地址转换为公网IP地址,从而实现多机共用一个IP地址。 在当前的网络环境中,IP地址的紧缺是...

    网络原理NAT

    NAT(Network Address Translation,网络地址转换)是一种被广泛应用于网络中的技术,主要用于解决IPv4地址空间不足的问题。通过NAT,可以在一个公共IP地址下隐藏多个私有IP地址,使得内网中的多台主机能够通过同一...

Global site tag (gtag.js) - Google Analytics