NAT技术 与NAPT技术 、 NAT穿越

首先了解以下两个概念:
公有IP地址:也叫全局地址,是指合法的IP地址,它是由NIC(网络信息中心)或者ISP(网络服务提供商)分配的地址,对外代表一个或多个内部局部地址,是全球统一的可寻址的地址。

私有IP地址:也叫内部地址,属于非注册地址,专门为组织机构内部使用。因特网分配编号委员会(IANA)保留了3块IP地址做为私有IP地址:

10.0.0.0 ——— 10.255.255.255

172.16.0.0——— 172.16.255.255

192.168.0.0———192.168.255.255
1.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 NAT技术解决什么问题:
ip地址不够用的问题:
私有ip是不能出现在公网上的,因此一个主机要想在广域网中进行通信,即访问外网,就必须有一个公网ip,且公网ip是不可以重复的,但是我们知道IP地址的位数只有32位,也就决定了,ip地址的个数最多也就是40多亿个,但是目前地球上主机的个数远远超过这些。私有ip仅存在于局域网内,因此不同的局域网中的主句可能会有相同的私有ip地址,也就达到了ip地址的重复使用,那么如果可以使私有ip也可以通过某种方式访问外网,不就可以解决ip地址不够用的问题了吗
NAT能够将私有IP对外通信时转为全局IP.
也就是一种将私有IP和全局IP相互转化的技术方法: 很多学校, 家庭, 公司内部采用每个终端设置私有IP, 而在路由器或必要的服务器上设置全局IP; 全局IP要求唯一, 但是私有IP不需要; 在不同的局域网中出现相同的私有IP是完全不影响的。
那么NAT具体是如何将私有ip转化为公网ip的呢?
看下面的图:NAT技术 与NAPT技术 、 NAT穿越_第1张图片

  • NAT路由器将源地址从10.0.0.10替换成全局的IP 202.244.174.37;
  • NAT路由器收到外部的数据时, 又会把目标IP从202.244.174.37替换回10.0.0.10;
  • 在NAT路由器内部, 有一张自动生成的, 用于地址转换的表; 当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;
    1.3但是NAT存在缺陷:
    1.3.1无法从NAT外部向内部服务器建立连接(解决该问题的方法:NAPT技术)
    当一个局域网中的多台主机都访问外网的同一台服务器时,通过NAT路由器时会建立一张表如下:

NAT技术 与NAPT技术 、 NAT穿越_第2张图片
那么请问当外网中的服务器发数据给ip地址为10.0.0.10时,会先将数据发给NAT路由器,然后由路由器决定将数据发给那一台主机,那么此时NAT路由器就懵逼了,上面的情况路由器无法确定应将这个数据应该发送给那台主机,也就是说NAT在发送数据时可以,但是在接受数据时就会出现问题。
NAT(Network Address Translation,网络地址转换)是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。这种通过使用少量的公有IP 地址代表较多的私有IP 地址的方式,将有助于减缓可用IP 地址空间的枯竭。

1.3.2 装换表的生成和销毁都需要:额外开销
1.3.3 通信过程中一旦NAT设备异常, 即使存在热备, 所有的TCP连接也都会断开;

NAT缺陷1(不能与外网通信)的解决办法:NAPT技术
2.NAPT技术(网络地址端口转换)
由于NAT实现是私有IP和NAT的公共IP之间的转换,那么,私有网中同时与公共网进行通信的主机数量就受到NAT的公共IP地址数量的限制。为了克服 这种限制,NAT被进一步扩展到在进行IP地址转换的同时进行Port的转换,这就是网络地址端口转换NAPT(Network Address Port Translation)技术。

私有网主机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的转 换是完全透明的。

NAPT的主要优势在于,能够使用一个全球有效IP地址获得通用性。主要缺点在于其通信仅限于TCP或UDP。只要所有通信都采用TCP或UDP,NAPT就允许一台内部计算机访问多台外部计算机,并允许多台内部主机访问同一台外部计算机,相互之间不会发生冲突。
区别:
NAT:一个全局IP对应一个私有IP(即一台计算机)(或者有一个IP地址池,里面有很多外部IP地址,当有内部IP地址要出去的时候,就随机选一IP地址作为其出口IP)。**一对一,**一个内部地址转换成一个外部地址进行通信。

NAPT:一个全局IP+不同的端口号对应多个私有IP(即多台计算机),需要一个全局IP对应多台计算时,比如局域网内部计算机访问外界网络时,就得用NAPT。一对多,多个内部地址使用同一地址不同端口转换成外部地址进行通信。缺点在于其通信仅限于TCP或UDP。
好处:
NAT不仅完美地解决了lP地址不足的问题。
能够有效地避免来自网络外部的攻击。
隐藏并保护网络内部的计算机。

3.NAT穿越
这个知识我也不太了解,找了一篇博客写得还不错大家一起分享一下:
NAT穿越

你可能感兴趣的:(liunx复习之旅)