« 上一篇下一篇 »

中国IPv4地址配备数量现状及NAT转换技术如何拯救IP地址匮乏的时代的中国网民

一、背景

    大家都知道,IPv4的地址数量总共只有43亿,这个数字是远远不够地球上70亿人的上网设备来分配的,而且现在已经基本用完。亚太地区的地区性注册机构亚太互联网络信息中心(APNIC)也耗尽了所有IPv4地址,仅剩两年前为特定用途而保留的一小部分地址。而我们中国作为发展中国家,互联网的起步时间比较晚,IP分配数量与实际使用数量严重不匹配,我们国家为了快速解决IP地址匮乏的这个问题,NAT技术诞生了。
-----------------------------------------

二、概念

  NAT(Network Address Translation),中文名唤作网络地址转换,诞生于IP地址匮乏的时代。

  NAT的基本思想是ISP(Internet服务提供商)为每个家庭或者公司分配一个IP地址,这个IP地址用作Internet流量的传输,也就是大家常说的外网IP地址或者公网IP地址。在客户网络的内部,每台计算机有唯一一个IP地址,即内网IP地址,这些地址主要用于路由内部流量。当一个数据包离开客户网络发送至其他ISP时,需要进行地址转换,把唯一的内网IP地址转换成外网的IP地址
由于IPv4地址空间有限,所以目前的因特网面临着公网IP地址资源匮乏的困境,其次,路由表日益增大,路由效率下降。

     网络地址转换(NAT, Network Address Translation)与VLSM和CIDR技术一样都是为了解决这些问题而诞生的。但它们实现的机制不一样,后两者是通过调整掩码部分来解决这个问题,而NAT技术是通过将内网地址转化为公网地址来实现的。

NAT服务运行在连接内外网之间的路由设备上,在内外通信时对数据报中的地址进行转换。

当前NAT技术的应用非常广泛,因为它可以节约紧缺的公网地址。

三、应用领域
NAT服务是工作在路由器或三层交换机甚至是防火墙上的,它主要应用于一下情形:

1.无足够公网IP地址

当网络中并不是每个用户都具备合法的公网地址并要连接到英特网中时,在内外的边界路由器上配置NAT,让NAT为内部外部网络地址实现互相转换。

当前绝大多数的路由器共享上网采用的即是这种原理。

2.重构网络IP地址

当需要改变内部地址时,也可以使用NAT来实现,并节省许多工作量。如原本采用的C类网段,但用户数量超出其可提供的地址数时,按理说你需要更换到上一级网段以提供更多的地址。但是这样一来就使的你需要重新配置此前用户的IP地址。

如果采用NAT可以让新增加的用户单独使用另一个网段的地址,然后通过NAT将新网段的地址映射到原网段中的一个地址即可,这种时候新网段整体就会被认为就旧网段的其中一个设备。

利用这种方法可以减少繁琐的操作,但确实会使网络管理难度提升,因为这时新网段的所有设备实际上就等于共享旧网段中的一个地址了。

3.实现简单的TCP负载均衡

使用NAT可以把多个私网IP地址映射到一个公网IP地址,实现服务器的TCP均衡。

 

四、NAT地址基本转换原理
在私有网络中计算机是使用内部本地地址(Inside Local Addresses)来进行通信的,当需要和外部网络进行通行时,就需要为其配置内部全局地址(Inside Global Addresses)。

总的来说,NAT就是内部本地地址到内部全局地址之间的转换过程。

当数据报从内部网络发往边界路由时,该数据报的源地址会是内部本地地址,目标地址是外部本地地址,这时边界路由就要相应地将源地址转换为内部全局地址及将目标地址转换为外部全局地址。反之亦然。其

     NAT的基本思想是ISP(Internet服务提供商)为每个家庭或者公司分配一个IP地址,这个IP地址用作Internet流量的传输,也就是大家常说的外网IP地址或者公网IP地址。在客户网络的内部,每台计算机有唯一一个IP地址,即内网IP地址,这些地址主要用于路由内部流量。当一个数据包离开客户网络发送至其他ISP时,需要进行地址转换,把唯一的内网IP地址转换成外网的IP地址。

  这种地址转化使用IP地址的三个范围,这些地址已被声明私有化,任何内网中的设备可以任意使用这些地址,但是在这三个范围内的IP地址不允许出现在Internet(外网)上,这三个保留的地址范围是:


    10.0.0.0~10.255.255.255/8

    172.16.0.0~172.31.255.255/12

    192.168.0.0~192.168.255.255/16

  他们分别可以容纳16777216、1048576、65536台主机。一般家里用无线路由器,就用到了网络地址转换技术,我们连上wifi后分配的IP地址一般是以172或192为开头。学校或者大企业里面的网络可能会用到10开头的地址范围。

  NAT将内网外网划分好之后,是如何使内网的设备访问外网的呢?

  如下图,当计算机A在内网(假设IP为10.0.0.1)想去访问一个Internet上的网站S(假设IP地址为54.223.189.245)时,A的数据包需要先经过一个NAT盒子(NAT box),这个盒子先将A的IP源地址转换成外网的真实IP地址(假设IP为121.0.0.2),然后将转换后的数据包发送至Internet。

NAT Translate

这一个过程是要依赖NAT中本地地址与全局地址的映射来实现的,所以需要事先配置。

NAT的类型
NAT路由器中虽然可以配置多种不同的地址转换,但总体来说也就是静态NAT和动态NAT两种。

静态NAT(Static NAT)
静态NAT把非公网注册IP地址一对一的映射到公网注册IP地址。这在网络设备需要以公网IP地址访问外部网络时特别有用。

这个转换可以是双向的,也可以是单方向的,甚至是反方向的。

Static NAT

动态NAT(Dynamic NAT)
动态NAT把一个非公网注册IP地址动态的映射到公网注册IP地址池中的一个地址。具体如何映射是依赖其配置的,但和静态NAT最大的不同的是动态的映射并非一对一的进行。

Dynamic NAT

上方的表即动态NAT需要使用的映射表。

重载/复用NAT(Overloading NAT)
这是动态NAT的一种特殊形式,它通过将IP和端口组合起来,把多个非公网注册IP地址映射到一个公网注册IP地址。

这也就是通常说的端口地址转换(PAT, Port Address Translation)技术,通过该技术上千内网设备都可以仅通过一个公网IP地址访问因特网。

下图是一个重载NAT的示例:

Overloading NAT

可以看到,多个内部地址被转化为公网地址中对应的端口中。

重叠NAT(Overlapping NAT)
这是NAT的一种特殊形式,它既可以表现为静态NAT,也可以表现为动态NAT。当内部网络中使用的IP地址等同于公网注册IP地址时,边界路由将截获来自内部网络的数据报,并用可用的公网IP地址替换。

这既可以通过静态NAT实现,也可以通过DNS或动态NAT实现。

这种应用看似多余,但实际上是很重要的,它有两大作用:

它可以隐藏内部服务器的真正地址,保护内部服务器的安全。因为对外而言,能看见的只有被转换后的地址。
它可以将内部已经配置好但会和公网地址冲突的地址转换为不会冲突的地址,这样不重新配置内部地址的前提下也不与外部网络冲突。

名词解释
内部网络(Internal Network):一个边缘局域网。
外部网络(External Network):除本地网络外的所有网络。
本地地址(Local Address):本地地址即仅本地网络有效的地址,无法直接在外部网络使用的地址,不可路由。
内部本地地址(Inside Local Address):分配给内部网络主机的IP地址,由DHCP或手动分配。
外部本地地址(Outside Local Address):与内部本地地址性质一致,是外部网络主机对内部用户呈现的地址。
全局地址(Global Address):它是与本地地址相对应的地址,是可路由的地址。
内部全局地址(Inside Global Address):内部主机对外部网络呈现的地址,和外部本地地址相对应。
外部全局地址(Outside Global Address):外部主机分配的公网注册IP地址,但也有可能是ISP分配的私网IP地址(由ISP进行NAT转换)

五、现状

    亚太互联网络信息中心的一位发言人称,如果一个比较大的企业需要更多IP地址,将面临下面几个选择:要么加速向IPv6的更新转移,不过这需要很多的技术及硬件准备; 要么在IP交易市场中购买目前在转让出售的地址,由于现在每个IPv4地址价格在人民币25元至60元之间,这对于普通的使用者来说较为昂贵,对卖方来说则有利可图。IPv6转移活动将随着市场需求力量开始作用而启动,但最终所有人都需要转移到IPv6地址系统中去,这是唯一可行的长远解决方案。尽管IPv6转移活动已经启动,但现在的IPv4地址交易市场仍十分火爆,毕竟物以稀为贵!