首页 > 编程知识 正文

nat与napt的区别,nat原理详解

时间:2023-05-05 18:42:23 阅读:150774 作者:4481

另一方面,3358 www.Sina.com/: networkaddresstransfer网络地址转换被定义。NAT

3358 www.Sina.com/: networkaddressporttransfer网络地址端口转换。 也称为PAT。虚拟机。

NAT和NAPT的功能是完成NAPT,允许计算机与外部网络通信。 它是内网路由器或FW。内部私有地址和全局网络地址的转换,广泛应用于各种类型的因特网接入方式和各种类型的网络。

接入广域网(WAN)技术

将私有(保留)地址转化为合法IP地址的转换技术包含一个包含许多外部IP地址的IP地址池。 内部IP地址出去的时候,随机选择IP地址,作为其出口IP 两者的区别:内部地址转换为外部地址进行通信。

NAT:一个全局IP对应一个私有IP(即一台计算机)(或者在需要多台计算机的全局IP时(例如局域网中的计算机访问外部网络时)使用NAPT。)。一对一,,多个内部地址使用同一地址的不同端口转换为外部地址进行通信。 缺点是其通信为NAPT:一个全局IP+不同的端口号对应多个私有IP(即多台计算机)

一对多

NAT不仅完美地解决了lP地址不足的问题。 可以有效地避免网络外部的攻击。 隐藏并保护网络中的计算机。 实现TCP流量的负载均衡。 NAT不仅实现了常见的地址转换功能,还提供了TCP或UDP,无需对NAT平台进行修改,即可支持几种特殊的APP应用协议,具有很好的可扩展性。 这些特殊协议的消息有效载荷中包含地址和端口信息,该信息也可能需要地址转换。 此方法要求在连接到互联网的专用网络的路由器上安装NAT软件。 安装NAT软件的路由器称为好处:,并且至少具有一个有效的外部全局IP地址。 因此,所有使用本地地址的主机在与外部通信时,都必须通过NAT路由器将本地地址转换为全局IP地址才能连接到internet。

可支持的特殊协议包括文件传输协议(FTP )、互联网控制消息协议(icmp )和域名系统(DNS ) 互联网定位服务)、H.323、sip (会话发起协议)、NetMeeting 3.01、NBT

地址转换ALG(Application Layer Gateway,应用级网关)机制

无论本地主机的IP是什么,一律转换为外部全局IP。 无论本地主机上的TCP端口是什么,它始终转换为彼此不同的新端口。NAT路由器

10.0.0~10.255.255个类172.16.0.0~172.31.255.255 16个类b192.168.0.0~192.168.255

目前常用的针对UDP的NAT地址转换表方法主要有:内网地址穿透方法:NAT 穿透(NAT Traversal)、http://针对TCP的NAT透明技术现在也是难点。 实用技术还很少。

第二、工作原理2.1 NAT NAT是将IP报头内的IP地址转换为其他IP地址的过程。 在实际APP应用中,NAT主要用于实现专用网接入公共网的功能。 这样,通过使用公用IP地址数量少的专用IP地址,可以缓解可用IP地址空间的枯竭。

NAT的基本工作原理是,当专用网络主机和公共网络主机通信的IP数据包通过NAT网关时,在专用IP和NAT的公共IP之间转换IP数据包中的源IP或目标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)转发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的。

2.2 NAPT

由于NAT实现是私有IP和NAT的公共IP之间的转换,那么,私有网中同时与公共网进行通信的主机数量就受到NAT的公共IP地址数量的限制。为了克服这种限制,NAT被进一步扩展到在进行IP地址转换的同时进行Port的转换,这就是网络地址端口转换NAPT(Network Address Port Translation)技术。NAPT也被称为“多对一”的NAT,或者叫PAT(Port Address Translations,端口地址转换)、地址超载(address overloading)。

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,同时将源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,同时将目的Port转换为私有网主机的Port,然后将IP包 (Des=192.168.1.2:1010,Src=166.111.80.200:80)转发到私网。对于通信双方而言,这种IP地址和Port的转换是完全透明的。

2.3 实现方法

NAT的实现方式有三种,即静态转换Static Nat动态转换Dynamic Nat端口多路复用OverLoad

静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问。

建立内部本地地址和全局地址的一对一永久映射。

动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址是不确定的,是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址。也就是说,只要指定哪些内部地址可以进行转换,以及用哪些合法地址作为外部地址时,就可以进行动态转换。动态转换可以使用多个合法外部地址集。当ISP提供的合法IP地址略少于网络内部的计算机数量时。可以采用动态转换的方式。

建立内部本地地址和全局地址池的临时映射关系,过一段时间没有用就会删除映射关系。

端口多路复用(Port address Translation,PAT)是指改变外出数据包的源端口并进行端口转换,即端口地址转换(PAT,Port Address Translation)。采用端口多路复用方式。内部网络的所有主机均可共享一个合法外部IP地址实现对Internet的访问,从而可以最大限度地节约IP地址资源。同时,又可隐藏网络内部的所有主机,有效避免来自internet的攻击。因此,目前网络中应用最多的就是端口多路复用方式。

ALG(Application Level Gateway),即应用程序级网关技术:传统的NAT技术只对IP层和传输层头部进行转换处理,但是一些应用层协议,在协议数据报文中包含了地址信息。为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换。例如:对于FTP协议的PORT/PASV命令、DNS协议的 "A" 和 "PTR" queries命令和部分ICMP消息类型等都需要相应的ALG来支持。

如果协议数据报文中不包含地址信息,则很容易利用传统的NAT技术来完成透明的地址转换功能,通常我们使用的如下应用就可以直接利用传统的NAT技术:HTTP、TELNET、FINGER、NTP、NFS、ARCHIE、RLOGIN、RSH、RCP等。

三、示例

 1. 私有ip为192.168.0.2的计算机想和外界网络通信,如果地址未经转换,网络方因为只识别全局IP,不识别私有IP,将无法回信。

 

 2. 通过NAT把私有IP转换成全局IP就可以和外界顺畅通信了


3. 假设这个局域网内还有一台私有IP为192.168.0.3的计算机也要外界网络通信。此时用同一个全局IP的话,网络将不知道回复给哪个私有IP。NAT到这儿就不灵了。

 

 

4. 如果在地址转换的时候,加上端口号来区分是哪个私有IP,就可以解决上面的多台内部计算机和外界通信的问题了。这就是NAPT。

 

 

四、easy IP

Easy IP 方式的实现原理与上节介绍的地址池NAPT转换原理类似,可以算是NAPT的一种特例,不同的是Easy IP 方式可以实现自动根据路由器上WAN接口的公网IP地址实现与私网IP地址之间的映射(无需创建公网地址池)。

Easy IP 主要应用于将路由器WAN 接口IP 地址作为要被映射的公网IP 地址的情形,特别适合小型局域网接入Internet 的情况。这里的小型局域网主要指中小型网吧、小型办公室等环境,一般具有以下特点:内部主机较少、出接口通过拨号方式获得临时(或固定)公网IP 地址以供内部主机访问Internet。

图示为Easy IP 方式的实现原理,具体过程如下:



① 假设私网中的Host A 主机要访问公网的Server,首先要向Router 发送一个请求报文(即Outbound 方向),此时报文中的源地址是10.1.1.100,端口号1540。
② Router 在收到请求报文后自动利用公网侧WAN 接口临时或者固定的“公网IP地址:端口号”(162.10.2.8:5480),建立与内网侧报文“源IP 地址:源端口号”间的Easy IP转换表项(也包括正、反两个方向),并依据正向Easy IP 表项的查找结果将报文转换后向公网侧发送。此时,转换后的报文源地址和源端口号由原来的(10.1.1.100:1540)转换成了(162.10.2.8:5480)。
③ Server 在收到请求报文后需要向Router 发送响应报文(即Inbound 方向),此时只须将收到的请求报文中的源IP 地址、源端口号和目的IP 地址、目的端口号对调即可,即此时的响应报文中的目的IP 地址、目的端口号为162.10.2.8:5480。
④ Router 在收到公网侧Server 的回应报文后,根据其“目的IP 地址:目的端口号”查找反向Easy IP 表项,并依据查找结果将报文转换后向内网侧发送。即转换后的报文中的目的IP地址为10.1.1.100,目的端口号为1540,与Host A 发送请求报文中的源IP地址和源端口完全一样。
如果私网中的Host B 也要访问公网,则它所利用的公网IP 地址与Host A 一样,都是路由器WAN 口的公网IP地址,但转换时所用的端口号一定要与Host A 转换时所用的端口不一样。 

Easy IP功能是指进行地址转换时,直接使用接口的外网IP地址作为转换后的源地址,能够最大程度的节省IP地址资源,不需要公网IP地址池。它也可以利用访问控制列表控制哪些内部地址可以进行地址转换。
 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。