NAPT(Network Address Port Translation)

NAPT(Network Address Port Translation)

时间:  2015-02-28 21:37
作者:  lsgxeva
分类:  我的笔记>>工作学习>>ADC
摘要:  NAT NAPT
标签:   NAT NAPT
提示: 文章均来自网络,版权为原作者所有,如有侵犯权益,请联络我们.


NAPT和NAT的工作原理及其区别
NAPT(Network Address Port Translation)_第1张图片
NAPT
网络地址端口转换NAPT
    网络地址端口转换NAPT(Network Address Port Translation)是人们比较熟悉的一种转换方式。NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。
    NAPT是一种较流行的NAT的变体通过转换TCP或UDP协议端口号以及地址来提供并发性。除了一对源和目的IP地址以外,这个表还包括一对源和目的协议端口号,以及NAT盒使用的一个协议端口号。
    NAPT的主要优势在于,能够使用一个全球有效IP地址获得通用性。主要缺点在于其通信仅限于TCP或UDP。只要所有通信都采用TCP或UDP,NAPT就允许一台内部计算机访问多台外部计算机,并允许多台内部主机访问同一台外部计算机,相互之间不会发生冲突。
 
NAT
    网络地址转换(NAT,Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
    NAT(Network Address Translation,网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP 地址空间的枯竭。
 
1.1 NAT工作原理
    NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共IP,为202.204.65.2;私有网络端口的IP地址是保留地址,为192.168.1.1。私有网中的主机 192.168.1.2向公共网中的主机166.111.80.200发送了1个IP包(Des=166.111.80.200,Src=192.168.1.2)。当IP包经过NAT网关时,NAT会将IP包的源IP转换为NAT的公共 IP并转发到公共网,此时IP包(Des=166.111.80.200,Src=202.204.65.2)中已经不含任何私有网IP的信息。由于IP 包的源IP已经被转换成NAT的公共IP,响应的IP包(Des=202.204.65.2,Src=166.111.80.200)将被发送到NAT。 这时,NAT会将IP包的目的IP转换成私有网中主机的IP,然后将IP包(Des=192.168.1.2,Src=166.111.80.200)转 发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的。

1.2 NAPT技术
    由于NAT实现是私有IP和NAT的公共IP之间的转换,那么,私有网中同时与公共网进行通信的主机数量就受到NAT的公共IP地址数量的限制。为了克服 这种限制,NAT被进一步扩展到在进行IP地址转换的同时进行Port的转换,这就是网络地址端口转换NAPT(Network Address Port Translation)技术。
     NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的TCP端口号。
NAPT算得上是一种较流行的NAT变体,通过转换TCP或UDP协议端口号以及地址来提供并发性。除了一对源和目的IP地址以外,这个表还包括一对源和目的协议端口号,以及NAT盒使用的一个协议端口号。
        说简单点就是在NAT的基础上增加了一个端口号,使原来单纯的IP地址之间的映射转变为端口的映射,可以使一个公网IP对应多个内网IP,这样内网IP的数量就可以不受限制了。
    NAPT与NAT的区别在于,NAPT不仅转换IP包中的IP地址,还对IP包中TCP和UDP的Port进行转换。这使得多台私有网主机利用1个NAT公共IP就可以同时和公共网进行通信。(NAPT多了对TCP和UDP的端口号的转换)

    私有网主机192.168.1.2要访问公共网中的 Http服务器166.111.80.200。首先,要建立TCP连接,假设分配的TCP Port是1010,发送了1个IP包(Des=166.111.80.200:80,Src=192.168.1.2:1010),当IP包经过NAT 网关时,NAT会将 IP包的 源IP转换为 NAT的公共IP,同时将 IP包的 源Port转换为 NAT动态分配的1个Port。然后,转发到 公共网,此时IP包 (Des=166.111.80.200:80,Src=202.204.65.2:2010)已经不含任何私有网IP和Port的信息。由于IP包的源 IP和Port已经被转换成NAT的公共IP和Port,响应的IP包 (Des=202.204.65.2:,Src=2010166.111.80.200:80)将被发送到NAT。这时NAT会将 IP包的 目的IP转换成 私有网主机的IP,同时将 IP包的 目的Port 转换为 私有网主机的Port ,然后将IP包 (Des=192.168.1.2:1010,Src=166.111.80.200:80)转发到 私网 。对于通信双方而言,这种IP地址和Port的转换是完全透明的。

过程:
客户机将数据包发给运行NAT的计算机。
NAT主机将数据包中的源端口号和源私有IP地址转换成自己的端口号和公网的IP地址,然后将数据包发给外部网络的目的主机。
NAT主机记录一条跟踪信息在地址转换映像表中,以便向客户机发送响应信息。
外部网络发送回送信息给NAT主机。
NAT主机根据映像表中的记录,将所收到数据包的端口号和公用IP地址转换成目标主机的端口号和内部网络中目标主机的专用IP地址,并转发给目标主机。

举例:
内网机器(192.168.0.5) 访问目标主机(220.181.28.42)

1、客户机发送数据包
目的主机 220.181.28.42
目的端口 80
源主机 192.168.0.5         (内网的私有IP)
源端口 1025                  (随机打开)
  
2、进行地址转换
目的主机 220.181.28.42
目的端口 80
源主机 218.22.192.21  (NAT服务器的公网IP)
源端口 5000                (随机打开)
  
3、记录映像
192.168.0.5 tcp 1025 ----- 218.22.192.21 tcp 5000
  
4、外部网络主机向NAT主机发送响应信息
目的主机 218.22.192.21
目的端口 5000
源主机 220.181.28.42
源端口 80
  
5、查找映像关系将数据包发给客户机
目的主机 192.168.0.5
目的端口 1025
源主机 220.181.28.42
源端口 80






来自为知笔记(Wiz)


你可能感兴趣的:(NAPT(Network Address Port Translation))