才子佳人博客

我的故事我讲述

NAT转换原理及类型
 
来源:xjh  编辑:xjh  2011-11-28

随着Internet的迅速发展,连接Internet的主机数量飞速增长,IP地址短缺与Internet发展的矛盾日益严重。那么,如何有效解决目前IP地址短缺的问题呢?人们提出了许多解决的方案,NAT(Network Address Translation 网络地址转换)技术提供了一种完全将内部网络和Internet网隔离的方法,让内部网络中的计算机通过少数几个甚至一个IP(已申请的一个公网IP)访问Internet资源,从而节省了IP地址,并得到广泛的应用。

NAT简介

NAT的功能就是让内部网络中的计算机通过少数几个甚至一个IP(已申请的公网IP)访问Internet资源。在网络内部,各计算机间通过内部的IP地址进行通讯,而当内部的计算机要与外部Internet网络进行通讯时,具有NAT功能的设备负责将其内部的IP地址转换为合法的IP(经过申请的IP)地址进行通信。

NAT技术主要用于连接和安全方面。目前企业内部网络用户数量大,而能申请的合法的全球唯一IP地址有限。NAT能够有效的解决企业IP地址短缺问题,利用NAT技术能够实现多个用户共同使用一个合法的IP地址连接互联网。而另一种需要出于安全方面来考虑,在一定程度上防范网络攻击的发生。企业期望隐藏LAN内部网络结构,NAT可以将内部LAN与外部Internet隔离,使外部网络用户无法了解通过NAT设置的内部IP地址。

从理论上来讲,借助NAT技术可以实现利用一个合法的IP地址连接几百台、甚至几百万台内部网络地址主机。可以有效的减少IP地址的使用,节省大量的IP地址资源,缓解IPv4地址的不足问题,有利IPv6的发展。

NAT技术类型

NAT包括有静态NAT、动态地址NAT和端口多路复用地址转换三种技术类型。静态NAT是把内部网络中的每个主机地址永久映射成外部网络中的某个合法地址;动态地址NAT是采用把外部网络中的一系列合法地址使用动态分配的方法映射到内部网络;端口多路复用地址转换是把内部地址映射到外部网络的一个IP地址的不同端口上。根据不同的需要,选择相应的NAT技术类型。

1、静态NAT(Static NAT)

静态NAT是把非注册IP地址(如本地局域网IP地址)一对一地映射到注册IP地址(如公网IP地址)。这在网络设备需要以公网IP地址访问外网时特别有用。但一定要注意,这里仅例举了单一的正方向的IP地址转换,实际上是可以反方向,或者双方向进行IP地址转换的,下面动态NAT和复用NAT也一样可以有正向、反向、或者双向转换方式。


比如内部网络中的192.168.32.10、192.168.32.12和192.168.32.15这三个专网IP地址设备在通过路由器访问公网时,对应转换成213.18.123.110、213.18.123.111和213.18.123.112这三个公网IP地址,让对方看到的也是这三个公网IP地址。

2、动态NAT(Dynamic NAT)

动态NAT是把非注册IP地址映射到一组注册IP地址,具体映射是哪两组IP地址之间的映射关系,还要看所配置的具体公用IP地址池和通信时间。但最终非注册IP地址与注册IP地址还是一对一地进行映射。


比如内网中的三个IP地址与一个范围为213.18.123.100 到213.18.123.150的公网IP地址池进行映射。最终的结果是,192.168.32.10映射为213.18.123.116,192.168.32.12映射为213.18.123.112,而192.168.32.15映射为213.18.123.125,……。

3、网络地址端口转换NAPT(Network Address Port Translation)

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


比如,本地网络中的所有用户通过路由器访问公用网络时,都将映射成同一个公网IP地址——213.18.123.100,只是所使用的端口不同而已(分别为101、102、103号端口)。这对于公网IP地址比较紧张,而内网中又部署了多种应用服务器时特别有用,可以通过一个公网IP地址配置多个应用服务器。

NAPT与NAT的区别在于,NAPT不仅转换IP包中的IP地址,还对IP包中TCP和UDP的Port进行转换。这使得多台私有网主机利用1个NAT公共IP就可以同时和公共网进行通信。

NAPT地址转换表

方向

字段

旧地址:端口

新地址:端口

内网->外网

源地址:源端口

192.168.0.3:30000

172.38.1.5:40001

内网->外网

源地址:源端口

192.168.0.4:30001

172.38.1.5:40002

外网->内网

目标地址:目标端口

172.38.1.5:40001

192.168.0.3:30000

外网->内网

目标地址:目标端口

172.38.1.5:40002

192.168.0.4:30001


NAT地址转换原理

NAT进行地址转换的过程就是把本地地址转换成全局地址的过程,无论数据包是从内部网络发往外部网络,还是从外部网络发往内部网络。不同的只是本地地址和全局地址所对应的网络不同。

NAT技术密切相关的几个术语描述详见:http://winda.blog.51cto.com/55153/241596

数据包由内部网络发往外部网络时,NAT的基本转换原理如下:

(1)当配置了内部本地地址的残余域计算机要与外部网络通信时,数据包到达NAT路由器后,数据包采用内部本地地址为源地址,外部全局地址为目的地址进行封装。

(2)NAT路由器先检查在路由表中是否有包含数据包目的地址的路由表项。如果没有与目的地址相匹配的路由表顶,则该数据包被丢弃。如果有与目的地址相匹配的路由表项,则路由器检验数据包是否是从内部网络发往外部网络的,并且检验数据包是否与已配置的NAT匹配。然后,路由器检查地址转换表,看是否有包含内部本地地址和内部全局地址的NAT表项。如果找到了,则把数据包的源地址用内部本地全局地址替换。

(3)路由器使用内部全局地址,把数据包发往目的地址。

当数据包是从公用网络发往内部网络,NAT的基本转换原理如下:

(1)公用网络上的计算机发送数据包到私用网络时,采用源地址是外部全局地址,目的地址为内部全局地址进行封装。

(2)当数据包到达内部网络中,NAT路由器查找地址转换表和目的地址,映射到残余域(私有内部网络)中的计算机。

(2)如果存在匹配的NAT表项,则路由器把内部全局地址转换成内部本地地址,然后在发往目的计算机前检查路由表。如果没有发现目的地址路由表项,则数据包将被丢弃。

总之、NAT技术无可否认是在IPv4地址资源的短缺时候起到了缓解作用;在减少用户申请ISP服务的花费和提供比较完善的负载平衡功能等方面带来了不少好处。但是在IPv4地址在以后几年将会枯竭,NAT技术不能改变IP地址空间不足的本质。然而在安全机制上也潜在着威胁,在配置和管理上也是一个挑战。如果要从根本上解决IP地址资源的问题,IPv6才是最根本之路。在IPv4转换到IPv6的过程中,NAT技术确实是一个不错的选择,相对其他的方案优势也非常明显。

私网地址(本地地址)范围

在IP地址中,可以根据IP地址的作用范围分为本地地址和全局地址两大类。本地地址就是只有本地网络用户才可以访问,并仅作用于本地网络的IP地址。这属于非注册类型的IP,不能在互联网等公网中使用。各类地址的范围如下:

A:10.0.0.0 ~ 10.255.255.255

B: 172.16.0.0 ~ 172.31.255.255

C: 192.168.0.0~ 192.168.255.255

参考来源:
《计算机网络第五版》谢希仁 电子工业出版社
http://net.it168.com/app/2007-04-27/20070427029901.shtml
http://winda.blog.51cto.com/55153/241596
http://www.dzsc.com/data/html/2010-12-3/87576.html
http://linux.chinaunix.net/techdoc/beginner/2009/05/21/1113964.shtml


分类:网络日志| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: