网络地址转换原理
网络地址转换原理及其配置实例发表时间:2010-1-4 王茂芝 郭科 来源:万方数据关键字:网络模型 寻址 网络地址转换 网络连接介绍了网络分层模型。阐述了不同层次寻址的概念和内容以及具体实施过程。指
网络地址转换原理及其配置实例
发表时间:2010-1-4 王茂芝 郭科 来源:万方数据
关键字:网络模型 寻址 网络地址转换 网络连接
介绍了网络分层模型。阐述了不同层次寻址的概念和内容以及具体实施过程。指出了网络地址转换NA T 技术的核心思想是以端口空间换地址空闻,并详细解释了NAT 技术的原理和实施过程。最后给出了一个基于NA T 技术的配置实例。
1 引言
随着计算机的普及以及Internet 应用的推广,越来越多的计算机通过各种方式接入到Internet 中。但现行Internet 的IP 地址(IPv4)采用的是32位的编址方式,从而导致口地址的分配面临“枯竭”的危险。针对这一潜在威胁,现已采用了一系列的补救措施。其中最彻底的措施是把IPv4升级为IPv6,使地址空间从32位扩充为128位。还有就是基于网络私有地址划分的代理(Proxy)技术和网络地址转换(Network Address Translator,NA T) 技术心。对一个局域网而言,使用这两种技术,理论上只需为其分配一个可路由的IP 地址,就可实现全网络机器接入并访问Internet ,从而达到节约IP 地址的目的。其中,代理技术是一种应用级的解决方案:由于此时网络活动的每个报文,都要从物理层一直上升到应用层才能得到处理,所以延时大,效率和通用性较差;而NA T 技术则是应用层以下的解决方案,所以性能和通用性较好。
本文在给出网络分层模型和寻址的概念后,探讨NAT 技术的原理,并给出了一个配置实例。为实验室网络维护与管理提供了借鉴和参考。
2网络分层模型与寻址
基于TCP /IP 技术的Internet 网络分层模型如图1所示。需要说明的是,关于TCP /IP 的层次结构模型有些文献中分为4层:应用层、传输层、IP 层(互联网层) 、网络接口层。本文把网络接口层分成网络接口和物理硬件2部分(见图1) 。
TCP /IP 模型这种概念分层包含了2个重要的分界线:(1)协议地址分界线,用以区分高层和低层的寻址。具体地讲就是高层用IP 地址,而低层用的是物理(MAC)地址;(2)操作系统分界线,用以区分系统程序和应用程序。具体讲就是传输层以上的为应用程序,以下的通常为系统程序。应用程序通过一种所谓的端口机制(Socket机制) 访问操作系统的内容。
除了把口地址映射为物理地址的过程称为寻址外,我们把端口的确定、域名和IP 地址转换以及IP 地址和物理(MAC)地址的转换都称为寻址。在这种广义寻址概念下,寻址就包括3方面的内容:(1)应用层中的应用程序访问传输层时端口的确定;(2)在域名系统(Domain Name System,DNS) 哺1解析出网络域名对应的IP 地址后,IP 层根据目的机器IP 地址进一步确定传送分组时的路由;(3)在利用低层通信链路传送信息时,实现口地址和物理地址的转换工作。
为此,首先需要明确以下3点:(1)在TCP /IP 构架下,端口和应用是对应的,如文件传输应用(ftp)和端口20与2l 对应,网页浏览服务(ht—tp) 和端口80对应,远程登录(telnet)和端口23对应等;(2)IP地址通常和机器(的连接) 对应,也就是说,给定一个IP 地址,可以唯一地确定和某台机器相连的一个连接,从而进一步确定某台机器(可以认为IP 地址和机器之间建立了对应关系) ;(3)物理(MAC)地址通常和实施底层通信的具体物理硬件设备(如网卡或其他网络接口设备) 联系。
这样,作为端口机制(在操作系统中通常以Socket 套接字方式予以实现) 就可实现应用层访问传输层时端口的确定,完成端口的寻址工作;DNS 解析出网络域名对应机器的IP 地址,定位该机器,然后IP 层的路由算法用来确定分组的投递方向,完成IP 地址的寻址工作;另外,地址转换协议(Address Resolution Protocol,An_P)用来实现把IP 地址映射为物理(MAC)
,地址的过程,反向地址转换协议(Reverse AddressResolution Protocol,RASP) 用来实现物理地址映射为IP 地址的过程。通过这两个协议实现IP 地址和物理地址的相互映射,完成物理地址的寻址工作,并进一步实现底层链路的数据通信。

图1 网络分层模型与寻址
3 网络地址转换原理
网络地址转换指的是NAT ,而不是ASP 或RARP 。在上述TCP /IP 分层模型构架下,1个网络通信连接由五元组构成,即源IP 地址,源端口,目的IP 地址,目的端口,协议类型。1台参与通信的主机可以同时建立的连接数取决于协议端口号。在IPv4中,协议端口号为16 bit ,所以可建立的连接数最多为。一般情况下,1台主机并发的网络连接数远小于216个。根据统计,1台普通客户机并发网络连接一般为5—50个,而一般的服务器为50—500个。这样,如果能够充分利用协议端口,就可以使1个IP 地址给很多主机同时使用。以端口空间换地址空间,这就是NA T 的核心思想。下面通过一个实例解释“以端口空间换地址空间的思想”以及NA T 的操作过程。如图2所示,有1个内部局域网络(172.20.x .x) 使用的是私有IP 地址(172.20.130.x) ,通过1个NAT 网关和外部Inter —net 相连。其中,NAT 网关有两个接口,一个和内部网络相连,其接口IP 为172.20.130.168;另一个接I :1和外部网络相连,其接口IP 为202.1 15.143.16。在这种结构下,只要配置好NAT 网关,就可实现内部局域网络(172.20.L X)所有机器(其私有IP 地址为:172.20.130.x) 通过1个外部IP 地址(即NAT 网关和外部网络相连的IP 地址:202.115.143.16) 接入Internet 的效果。
如图2所示,假设机器172.20.130.1通过http 向机器202.115.128.33发送一个网页服务(www)请求。此时网络连接对应的五元组为(172.20.130.1,Source —Port —AA ,202.115.128.33,80,TCP) ,假定此连接源机器端口为AA ,并且协议类型为传输层的TCP 而不是应用层的http 。

图2 NAT 网络连接示意图
由于源IP 是一个不可路由的私有IP ,只能在局域网内部使用,所以,如果此时五元组不做任何修改的话,那么此网络连接返回的信息将不可达。实际情况是:在网络传送分组经过NAT 网关时,NAT 网关要对分组报头控制信息做修改(主要是对IP 地址、端口号以及校验和3项进行修改) 。表1显示了局域网内部1台主机向外部互联网某一机器发送www 请求以及外部主机对其请求进行响应时,2个不同方向分组信息传送过程网络连接五元组数值在经过NAT 网关前后的调整情况。从表1可以发现:内网主机对于外网是不可见的,外网看到的只是NAT 网关。这一点可以从对www 的请求对应的网络连接五元组的目的IP 地址清楚地得到反映。
既然内网主机对于外网是不可见的,那么信息是如何传送回发起请求的源内网主机呢? 这是通过NAT 网关设备保留一个如表2所示的数据结构来实现的。具体就是:产生响应的主机先把信息传送回NA T 网关,NAT 网关根据此时五元组的目的端口号(为NAT 全局端口号) 查表2所示的数据结构,得到源内网主机IP 和源端口号,从而修改五元组的数值(见表
1) 把数据从NAT 网关发送回源内网主机相应的端口(应用) ,这样就完成了整个网络活动。从表2可见,NAT 网关设备中的全局端口号是非常关键的,因为正是通过它才实现了内网主机IP 和源端口号与外网主机IP 和目的端口号之间的映射关系,这也正是“以端口空间(NAT网关的全局端口) 换地址空间(内网所有主机IP 地址)”思想的体现。
表1 2个不同方向上网络连接(请求和响应) 五元组在经过NAT 网关前后时的变化值

表2 NAT网关中保留的内网IP 和源端口号与外网IP 和目的端口号的映射关系

4 基于NAT 技术的配置实例
一个在Linux 环境下基于NA T 技术的配置实例已在笔者所在实验室通过测试且运行稳定。其中,内网主机136台,只搭配一台NA T 服务器和占用1个外部可路由IP 。NAT 网
,关设备所处的网络环境如图2所示。并且假定NA T 网关与外部网络互连的网卡名为ethO 。
如果eth0对应IP 地址是通过动态方式获得,配置如下:

其中语句1:打开口转发功能,语句2:装载nat 模块,语句3和4:保证在应用NAT 技术时ftp 操作的顺利进行,语句5:清空nat 表中的所有规则,语句6和7:配置NAT 转发功能。语句6和语句7的区别在于一个针对的是动态IP ,而另一个则是静态IP 。每个语句的细节限于篇幅在此不作详细介绍,有兴趣的读者可以参阅Linux 相关书籍。 5 结论
NAT 技术是一种实用性较强并且经过了实践检验的比较成熟的技术,它能较好地解决部分单位IP 地址短缺的问题。特别是由于它能完全隐藏内网信息,并保持较高的吞吐量和较低的延迟,因此它经常和包过滤技术相结合并成为新一代防火墙构筑的基础。它的不足之处在于仍有部分应用需要特殊处理才能通过NA T 。