(计算机软件与理论专业论文)nat网关的研究与实现.pdf_第1页
(计算机软件与理论专业论文)nat网关的研究与实现.pdf_第2页
(计算机软件与理论专业论文)nat网关的研究与实现.pdf_第3页
(计算机软件与理论专业论文)nat网关的研究与实现.pdf_第4页
(计算机软件与理论专业论文)nat网关的研究与实现.pdf_第5页
已阅读5页,还剩81页未读 继续免费阅读

(计算机软件与理论专业论文)nat网关的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 学科专业:计算机软件与理论 论文题目: n a t 网关的研究与实现 硕士生:黄鹂声 导师:汪文勇副教授 随着互联网规模的迅速扩张,出现了一个紧迫的问题: i p 地址的紧缺。按 照现有i p 地址的分配速度,1 0 年以内就将会没有可供分配的i p 地址。、l n a t 技术是解决以上问题的一个重要手段。n a t 允许多台主机共享一个合法 外部地址来访问互联网,从而节约了宝贵的i p 地址资源,在互联网中得到了广 泛的应用。 同时,为了解决目前i p v 4 所存在的主要弊病,i e t f 着手开发了新一代 i n t e r n e t 协议i p v 6 ,并有可能取代现有i p v 4 协议。在i p v 6 完全取代i p v 4 以前,必然存在个较长的过渡期,在过渡期内,n a t p t 技术也是实现纯i p v 6 和i p v 4 网络之间互访的重要手段。可见,无论i p v 6 能否取代i p v 4 ,n a t 技术 都具有广阔的应用前景。 本论文对n a t 技术进行了研究。首先分析了i p v 4 协议下n a p t 网关的技术 实现原理和技术途径,其次分析了i p v 4 一i p v 6 网关的技术原理。最后,给出了 自行设计和实现的n a t 软件网关原型系统,并详细讨论了部分关键模块的设计 和实现细节。 _ ) ( 关键词:n a p t p t i p v 4 k i p v 6 a l g a b s t r a c t m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y s u b j e c t : s t u d ya n di m p l e m e n t a t i o no fn a tg a t e w a y m a s t e r :h u a n gl is h e n ga d v i s o r :p r o f w a n gw e n y o n g w it ht h ef a s te x p a n s i o no fi n t e r n e t a nu r g e n tp r o b l e mc a m eo u t :w e h a v en o te n o u g hi pa d d r e s s e s a c c o r d i n gt ot h ec o n s u m i n gs p e e do fi p a d d r e s s ,t h e r ew i l lb en om o r ei pa d d r e s st oa s s i g nw i t h i n 1 0 y e a r s n a tt e c h n o l o g yi sa ni m p o r t a n tm e t h o do fo v e r e o m i n gt h i sp r o b l e m n a t a l l o w sm u l t i p l ec o m p u t e r st os h a r eo n eg l o b a li pa d d r e s st ov i s i ti n t e r n e t t h u se c o n o m i z e dp r e c i o u si pa d d r e s sr e s o u r c e s s on a ti sw i d e l yu s e di n i n t e r n e t i no r d e rt os o l v et h em a i np r o b l e m so fi p v 4 ,i e t fs t a r t st od e v e l o p i n t e r n e tp r o t o c o lo fn e wg e n e r a t i o n i p v 6 i p v 6m a yr e p l a c ee x i s t i n g i p v 4p r o t o c o li nt h ef u t u r e b e f o r e b ea1 0 n gt r a n s i t i o np e r i o d d u r i n g i p v 6c o u l dr e p l a c ei p v 4 ,t h e r em u s t t h ep e r i o d ,n a t p tt e c h n o l o g yi sa n i m p o r t a n tm e a n sf o rp u r ei p v 6a n di p v 4n e t w o r k st ov i s i te a c ho t h e r i t i so b v i o u s ,n om a t t e rw h e t h e ri p v 6c o u l dr e p l a c ei p v 4 ,n a tt e c h n o l o g y h a saw i d ea p p li c a t i o np r o s p e c t t h i st h e s i sh a ss t u d i e dt h en a tt e c h n o l o g y a tf i r s t ,i ta n a l y s e dt h e t e c h n 0 1 0 9 i c a lp r i n c i p l ea n dt e c h n 0 1 0 9 i c a lm e t h o do fi p v 4n a p tg a t e w a y , s e c o n d l y t h et h e s i sa n a l y s e dt h et e c h n o l o g yo f i p v 4 一i p v 6g a t e w a y a t l a s t ,n a p ts o f t w a r eg a t e w a yp r o t o t y p es y s t e mw a sp r e s e n t e d ,a n dd e t a i l s o f d e s i g na n di m p l e m e n t a t i o no f s o m ek e ym o d u l e sa p p e a r e di nt h er e m a i n i n g p a g e so ft h i st h e s i s k e yw o r d s :n a p t p ,ii p v 4 i p v 6 a l g 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:j 啦嘞洲;,月;日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:邋导师签名:遨幽 日期:扣啦1 月日 主要符号表 以下是论文中一些重要缩写的全称,供参考 a l g b i a b i s d n s d s t m f t p i c m p v 6 i p i p v 4 i p v 6 l i b p c a p n a t n a t p t n a p t - p t p t r f c s i i t 丁r t a p p l i c a t i o nl a y e rg a t e w a y b u m pi n t h ea p i b u m pi n t h es t a c k d o m a i nn a m es e r v jc e s d u a ls t a c kt r a n s i t i o nm e c h a n i s m f i l et r a n s f e rp r o t o c o l i n t e r n e tc o n t r o lm e s s a g ep r o t o c o lv e r s i o n6 i n t e r n e tp r o t o c o l i n t e r n e tp r o t o c o lv e r s i o n4 i n t e r n e tp r o t o c o lv e r s i o n6 l i b r a r yo fp a c k e tc a p t u r e n e t w o r ka d d r e s st r a n s l a t i o n n e t w o r ka d d r e s st r a n s l a t i o na n dp r o t o c o lt r a n s l a t i o n n e t w o r ka d d r e s sp o r tt r a n s l a t i o na n dp r o t o c o lt r a n s l a t i o i l p r o t o c o lt r a n s l a t i 0 1 r e q u e s tf o rc o m m e n t s s t a t e l e s si p i c m pt r a n s l a t i o n t r a n s p o r tr e l a yt r a n s la t o r n a p t 网关的研究与实现 第一章引言 1 1n a t 技术广泛应用的背景 随着i n t e r n e t 网的飞速发展,每年连入的主机数成倍增长。由于开始设计 i p v 4 协议的时候并没有考虑到这么大的规模,所以分组的地址选择了3 2 位,它 可以使分组的格式很好地对齐,但i n t e r n e t 网面临着路由表爆炸和整个地址耗 尽的危机。从9 5 年开始全球的i p 地址以平均每年6 0 0 0 万8 0 0 0 万的速度被消 耗。可以预见,在短短的几年之内,全球地址将可能全部用完。 网络地址转换n a t ( n e t w o r ka d d r e s st r a n s l a t i o n ,r f c l 6 3 1 ) 技术和无类域 间路由( c i d r ) 就是为解决这些问题而开发的一种直接的解决方案。它可以使 i n t e r n e t 网得到足够的喘息时间来等待新一代i p 协议的出台。由于n a t 技术提 供了一种掩饰网络内部本质的方法,即n a t 通过1 个外部地址来响应外部世界 的寻址,从而在互联网络中得到了广泛的应用。 另外,通过使用代理技术也可以使用1 个i p 地址供多个用户同时上网,但 这种技术的一个缺点就是需要对客户端的软件进行修改和配置,给用户带来很 多不便。更为重要的是需要为每一种应用都编写特定的代理服务器,使得系统 的扩展性不是很好。而n a t ( 传统n a t ) 则工作在网络中较低的层次,逻辑上是 工作在i p 层,给用户连接i n t e r n e t 提供了更大的透明性,其工作则更像一个 路由器而并非个代理网关,同时也便于网络应用的扩展,并不需要给每种弱i 的应用都开发一种代理服务。由于n a t ( 传统n a t ) 并没有工作在应用层( 代理 网关工作在应用层,它理解提供服务的每一种协议细节) ,从而,n a t 并不需要 理解和操纵应用层的数据,具有更高的效率,使得n a t 技术在防火墙中得到广 泛应用。 1 2传统n a t 技术白啦用情况 在目前应用广泛的防火墙中,大量采用了n a t 技术。防火墙的主要功能就 是防止外部主机对内网中主机的非授权访问,而限制从外部网络到内部网络的 连接是主要技术之一,n a t 具有这种功能。当外网的主机要主动访问内网的主机 时,一般情况下要首先与内网中的某台主机建立连接( 多数内网不允许从外部 发起连接) ,但是,它不知道内网主机的i p 地址( 由前面的分析可知,在i n t e r n e t n a p t 网关的研究与实现 传输的i p 数据报并没有含有内部网络地址的私有信息,这样,内网中的主机对 于外部主机是不可见的,它们被n a t 保护起来了) ,其次内网主机地址一般是内 部保留地址,不允许在i n t e r n e t 上传输,再次n a t 内部的记录表中也没有与这 个外部来的连接的表项,因此不允许连接的请求通过n a t ,这样就起到了防火墙 安全防护的作用。 目前几乎所有国内外路由器和防火墙产品都具有n a t 功能,有大量软件也 带有n a t 功能。比较有代表性的如w i n r o u t e 、s y g a t e 、i n t e r n e tg a t e w a ys e r v e r 等。其中s y g a t e 是目前使用最广泛的n a t 软件,支持几乎所有网络应用协议和 各种联网方式。 w i n d o w s2 0 0 0 w i n d o w s9 8 s e m e 自带的i c s( i n t e r n e tc o n n e c t i o n s h a r e ) ,也是一套n a t 类型的共享上网软件,安装以上版本的w i n d o w s 以后就 可以添加该组件实现共享上网,但是功能比较简单,几乎没有管理控制能力。 目前国内基于i p v 4 协议的n a t 硬件产品相对较多,软件n a t 网关相对较少。 混合协议的n a t p t 网关还处于研究阶段。 1 3n a t 技术的进展 随着i p v 6 规范的制订和i p v 6 试验网络的不断扩大,i n t e r n e t 已经成为了 i p v 4 和i p v 6 混合协议网络,i p v 4 到v 6 之间必定存在一个相当长的过渡期,在 过渡期内,有许多技术可以实现i p v 4 与i p v 6 之间的互访,n a t p t 就是一个重 要手段。 可以预见,i n t e r n e t 由i p v 4 向i p v 6 过渡需要一个相当长的时间才能完成, 如何渐进的、无伤害的由基于i p v 4 的网络过渡到基于i p v 6 的网络,同时尽可 能减少过渡成本是我们当前面临的主要问题。 由于过渡是渐进的,在过渡的初期,i n t e r n e t 将由运行i p v 4 的“海洋”和 运行i p v 6 的“小岛”组成。随着时间的推移,i p v 4 的海洋将会逐渐变小,而 i p v 6 的小岛将会越来越多,i n t e r n e t 将逐步成为i p v 6 的“海洋”,而i p v 4 网 络将成为其中的“小岛”,并最终被i p v 6 完全取代。 在整个过渡的期间内,都需要重点解决i p v 6 网络和i p v 4 网络之间互相通 信的问题:在i p v 6 发展初期,我们会发现,实际上i p v 6 站点很少,能够提供 的信息服务更少得可怜,我们在i p v 6 网络内部几乎没有什么东西可以访问;在 i p v 6 网络不断壮大后,又需要考虑到大量不具备i p v 6 处理能力的纯i p v 4 主 几 n a p t 网关的研究与实现 或网络应用,避免投资的浪费。 总结起来,有如下两种现实的协议间访问需求,也就应该有两种相应的协 议转换网关: n ) i p v 6l i 帆游翊l p v d | i 嘈雪i ;( b ) i p v 4l 帆访鲫i p v 8 络 图卜1 通过n a t 网关实现异种协议互访 为了满足这些现实需求,完全有必要在同一网关上同时实现i p v 4 和i p v c 协议的任意组合n a t 功能,如图所示。 i p v 4 v 6 任意 n a p t 一 p t 转换 1 一 j _ = 二 l if l 图卜2 任意功能组合的n a t 网关 根据以上的分析,可以看出,n a t 技术将会在实际应用中广泛存在并不断发 展。因此,我们需要跟踪和研究n a t 技术的最新进展,并研究如何克服n a t 技 术的固有局限性。 n a p t 网关的研究与实现 1 4课题来源 本课题为教研室自拟,希望跟踪国内外技术的发展动态,了解和掌握n a t 的原理和技术,并实现一个自主开发的有一定实用价值的软件n a t 网关。在此 基础上,对i p v 4 一i p v 6 的n a t p t 技术进行一些研究合探索,为下一步研究工作 做好技术储备。 1 5 课题的主要工作 在系统研究过程中,我们实现了i p v 4 协议的n a p t 网关,并针对目前n a t 网关的薄弱环节,实现了认证与授权功能。并结合根据目前i p v 6 技术的发展, 对i p v 4 - i p v 6 的n a t - p t 技术进行了探索和初步设计。 本人在本课题中的工作是:i p v 4 一i p v 4n a p t 网关的设计和实现、i p v 4 一i p v 6 的n a p t p t 转换器模块的设计、f t pa l g 的设计与实现。 n a p t 网关的研究与实现 第二章i p v 4 - v 4n a t 技术原理 i p v 4 是目前应用最广泛的协议,目前n a t 技术讨论和商业实现大多基于 i p v 4 进行,我们的研究首先仍然在i p v 4 上进行。在以后的章节中,再对i p v 6 一v 4 的n a t 技术进行讨论。 2 1 n a t 的分类 n a t 主要包括三种方式:静态n a t 、动态n a t 和p a t 。 静态n a t 静态n a t ( s t a t i ct r a n s l a t i o n ) 是最简单的一种转换方式,它在n a t 表中为 每一个需要转换的内部地址创建了固定的转换条目,映射了唯一的全局地址。 内部地址与全局地址一对应。每当内部节点与外界通信时,内部地址就会转 化为对应的全局地址。 动态n a t 动态n a t ( d y n a m i ct r a n s l a t i o n ) 可以将多个内部地址映射为多个公网地址, 常用于d d n 专线上i n t e r n e t 网。此时用户会得到多个公网地址( 常常为1 6 个) , 可以通过建立一个地址池,使大家共同使用这些公网地址。 p a t p a t ( p o r ta d d r e s st r a n s l a t i o n ) 也称为 a p t ,就是将多个内部地址映射为 一个公网地址,但以不同的协议端口号与不同的内部地址相对应。这种方式常 用于拨号上i n t e r n e t 网。 以上所有的地址转换功能,都是由防火墙或者边缘路由器( 即连接内部网 络和公用网络的路由器) 完成的,而对于通信的各节点,无论是内部还是外部 的,都是透明的。 由于目前绝大多数n a t 应用中,n a p t ( p a t ) 类型网关是最常见的,因此, 本论文主要讨论n a p t 网关的各项原理和实现技术。 2 2 n a t 涉及的协议和标准 下图显示了n a t 网关需要介入的各个网络层次及相关协议 n a p t 网关的研究与实现 应用层:f t p d n s 传输层:t c p u d p 网络层:i p f l c m p 链路层:e t h e m e t a r p 图2 - 1n a t 网关工作在网络的不同层次 对于一个n a t 网关来说,不仅仅工作在网络层,还需要在网络的各个层次进行 操作,从链路层开始一直到应用层,以下简单介绍n a t 网关涉及的各层次协议。 2 2 1 链路层 ( 1 ) e t h e r n e t 帧格式 由于目前大多数网络都是以太网,所以本课题仅仅研究在以太网环境下的 实现技术和相关标准。作为一个网关,应该具备底层网络功能,以实现不同接 口的地址绑定和各接口之间的数据包转发。 r f c 8 9 4 定义了i p 分组在以太网上传输的标准,传输i p 分组的以太网帧格 式如下: 0l23 012 34567890l2 34567890l2345678901 + 一+ 一+ 一+ - + - + - + 一十一+ 一+ - + - + - + - 一+ 一+ - + - + - + - + _ + 一+ 一+ 一+ 一+ 一+ 一 一+ 一+ 一+ 一+ 一+ 一+ _ s o u r c ee t h e r n e ta d d r e s s | + - - _ - + 一+ - + - - + - + - + - + - + 一+ 一+ 一+ 一十一十- + - + - + - + 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ ii + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ - + - 十一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一十一+ 一十- + - + - + - + 一+ 一+ - + - + - + - 斗 | d e s t i n a t i o n e t h e r n e ta d d r e s s d a t a l + 一+ 一+ 一+ 一+ 一+ - + - + - + - + - + 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一十一十一十一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ i1 + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 6 字节目标以太网地址 坐! ! 旦苤塑堑塑量塞婴 6 字节源以太网地址; 2 字节协议类型( 0 8 0 0 :i p v 4 ;0 8 0 6 :a r p :8 0 3 5 :r a r p ;8 6 d d :i p v 6 ) ; 数据( 对于i p v 4 协议来说,长度在4 6 1 5 0 0 字节之间;对于a r p r a r p 协 议,长度为2 8 字节) 。 ( 2 ) a r p 协议 当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是 根据4 8 b i t 的以太网地址来确定目的接口的。设备驱动程序从不检查i p 数据报 中的目的i p 地址。地址解析为这两种不同的地址形式提供映射:3 2 b i t 的i p 地 址和数据链路层使用的任何类型的地址。r f c 8 2 6 p l u m m e r l 9 8 2 是a r p 规范描述 文档。一个封装了a r p 协议的以太网帧格式如下: 01 23 0123456789012 345678901234567890 i + 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一十一+ | _ s o u r c ee t h e r n e ta d d r e s s + 一十一十一+ 一+ 一十一+ 一十一+ 一十一十一十一十一+ 一+ 一十一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一十一+ 一+ 一+ ll + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ id e s t i n a t i o ne t h e r n e ta d d r e s s s e n d e rh a r d w a r ea d d r e s s f + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一十一十一十一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一十一+ 一十 ltarget h a r d w a r ea d d r e s s 1 + 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一+ 一十一+ 一+ 一+ 一+ 一十一+ 一+ 一十一+ 一+ 一+ 一+ 一+ 一+ 一+ i t a r g e tp r o t o c o la d d r e s s l + 一+ 一十一十一+ 一+ 一+ 一十一十一十一十一十一十一+ 一十一+ 一+ 一+ 一+ 一+ 一十一十一+ 一十一十一+ 一+ 一+ 一+ 一+ 一十一十一十 i s y n 一艇c e i v e d a e s t 阻i s 髓d 卜一 一s y n _ k e c e i r e d 4 e s t a 扎i s 髓d 一 s e q = 1 0 i ( a c k _ 3 0 1 一) e s t 蚰l 工s 既d 5 e s t a b l i s 髓d 一一 ( s e q = 1 0 1 一一) e s l :蚰l i s 珏d 图2 - 3 三次握手过程 塑垒旦! 旦苤塑塑塞兰窭望一 建立连接应用的是四次握手。当一方需要关闭连接的时候,就发送一个f i n 来终止这个方向的连接;另一端收到f i n 后,发回一个a c k 表示确认,然后再 发送一个f i n 给主动关闭方;主动关闭方收到f i n 后,发送a c k 确认。至此, t c p 连接关闭。这是由t c p 的半关闭造成的,既然t c p 连接是全双工,因此每个 方向必须单独地进行关闭。 t c pa 1 e s t 皿i s 髓d 2 ( c 1 0 e e ) f i n 一聃。i t 一1 3 f i n 一憾。i t 一2 4 t i m e a i t 5 t i m e w i t 6 ( 2m 乳) c l o s 曲 2 2 4 应用层 一 一一 一s e 。= 3 0 0 一一 c l o s e 一驰工t i 服务器l i 用户1 _ 。一n 一一一 iil l ,_ 一v - 一l i u s e x l | i i p i | | f 、。一i iii l ,- 一一v - - - - i 一一一 i 用户l 一 i 文件i | i d i p | |i 系统i i 、一,l 一 用户f t p 图2 - 5f t p 过程 n a p t 网关的研究与实现 图中用户p i 开始控制连接,控制连接与t e l n e t 协议很象。在开始阶段, 标准f t p 命令由用户p i 产生并通过控制连接传送到服务器进程。服务器p j 向 用户p i 返回标准应答。f t p 命令指定数据连接参数和文件系统操作。用户d t p 在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数 据端口不必在开始f t p 命令的机器上,但用户或用户f t p 进程必须确定它在指 定的数据端口上侦听。这个数据连接是全双工的。 f t p 命令 f t p 命令一般按照功能不同,可以分为三类:访问控制命令、传输参数命令、 f t p 服务命令。这里仅仅列出n a p t 相关的两个命令:p o r t 和p a s v 。 表2 - if t p 部分命令解释 p o r t参数是要使用的数据连接端口,通常情况下对此不需要命令 响应。如果使用此命令时,要发送3 2 位的i p 地址和1 6 位的t c p 端口号。上面的信息以8 位为一组,逗号间隔十进制传输,如: p o r th l ,h 2 ,h 3 ,h 4 ,p l ,p 2 。其中h 1 是i p 地址的最高8 位。 p a s v此命令要求服务器d t p 在指定盼数据端口侦听,进入被动接 收请求的状态,参数是主机和端口地址。 2 3n a t 中的地址转换 n a t 技术的基本功能就是用1 个或几个i p 地址来实现局域网络上的所有主 机都可以访问i n t e r n e t 。n a t 技术可以为t c p 、u d p 以及i c m p 的部分信息进行 透明中继。下面以t c p 为主要对象讨论其工作原理。 t c p 是建立在所谓的连接抽象( c o n n e c t i o na b s t r a c t i o n ) 之上的,它所对 应的对象不是t c p 的一个单独的端口而是一条虚电路连接,也就是说,t c p 是使 用连接而不是使用协议端口号作为基本的抽象概念。在t c p 中连接是用l 对端 点来标识的。t c p 把端点( e n d p o i n t ) 定义为一个i p 地址端口对( h o s t ,p o r t ) , 因此可以将l 条t c p 连接用1 个4 元组( s o u r c ea d d r e s s ;s o u r c ep o r t : d e s t i n a t i o na d d r e s s :d e s t i n a t i o np o r t ) 来定义,这样的一个连接抽象允许 n a p t 网关的研究与实现 多个连接共享1 个端点,从而可以看出这种基于连接的抽象为利用1 个i p 地址 进行外部世界的访问提供了基础。 虽然u d p 是无连接的,但实际上,可以将它作为虚连接来看待。 n a t 网关上运行的t c p i p 网关软件与常规的网关软件并不相同。通常常规 路由器只是机械地根据i p 包中的目的i p 地址以及路由表将i p 数据报从一个刚 络转发给另个网络,而n a t 网关在i n e r n e t 内部网络和i n t e r n e t 之间中继 i p 数据报并非凭借目的i p 地址,它的中继是面向连接的。 在如图所示的环境中,n a t 网关运行在本地网络的边界,同时具有内部接口 和外部接口,在外部网络和内部网络之间完成地址端口转换。 图2 - 6i p v 4n a t 网关运行环境 当内部主机i 0 0 0 i 0 发送一个远程登陆包到主机1 3 8 7 6 2 9 7 ,用全球通 用地址1 3 8 7 6 2 9 7 作为目标地址,然后送包到第一个路由器。路由器有一个 子网1 3 8 7 6 0 o 1 6 静态路由,所以包可以继续往前传送到广域网。但是,在 包被网前传之前,n a p t 转换i p 和t c p 包头里源地址1 0 0 0 1 0 和源t c p 端口 3 0 1 7 成通用唯一地址1 3 8 7 6 2 8 4 和唯t c p 端口。在往回传的包经过同样的 地址和t c p 端口转换,和上边一样。 这个转换不需要改变主机或路由器。这个转换是完全透明的。 除了重定向信息类型,t c p u d p 任务和i c m p 信息都可以通过n a p t 路由器来 控制。i c m p 查询类型包和t c p u d p 包的转换类型一样,在于i c m p 包头的标志域 对一地和合法i p 地址的查询标志对应。所以,一对地址( 本地i p 地址,本 地z c m p 查询标志) 通过n a p t 路由器映射成一对( 指派i p 地址,指派i c m p 查 询标志) 。i c m p 错误信息同样需要进行更改,包括i c m p 有效负荷的改变、i p 和 i c m p 报头。 n a p t 网关的研究与实现 n a t 的地址转换过程存在3 个不同的阶段: ( 1 ) 连接关系的映射关系的建立阶段。发生在会话的开始,当内部的1 台机 器要与外部的1 台机器发生通信时发生,n a t 动态地为其分配未使用的t c p 端口 号,并且会记下这个映射关系,为以后转发i p 数据包使用。 ( 2 ) 映射关系的查找与转换阶段。当有外部进入的数据报或从内部出去的数 据报通过n a t 时,n a t 都在内部进行了查找,以便找到对应的映射进行地址转换。 ( 3 ) 映射关系解除阶段。当t c p 连接关闭时,n a t 会释放分配给这条连接的 端口,以便以后的连接可以继续使用。 2 3 1 地址绑定过程 对n a p t 而言,在许多私有地址映射个全球唯一地址时,绑定是从成对地 址( 私有i p 地址,私有端口) 到另外一对地址( 指派地址,指派端口) 。 和基本n a t 一样,绑定是在某个内部客户( 私有i p 地址,私有端口) 发动 第一个外传任务时触发的。 n a p t 网关的绑定过程包括两个步骤的工作:网关首先在内部维护的映射装 置中获取一个可用的( 指派地址,指派端口) 对,然后将这个地址端口对绑定 到内部客户提交的( 私有地址,私有端口) 。 2 3 2 地址查询和转换 在一个地址端口对建立绑定以后,个软状态将用绑定来维持这个连接。 属于相同任务的包将按照这个绑定进行地址端口转换。转换的确切属性和转换 算法将在接下去的章节中进行讨论。 2 3 3 地址释放 当基于单个地址或成对地址绑定的最后一个任务终止时,绑定自己将终止 2 4以太网环境下n a p t 网关的工作流程 n a t 网关一般具有多个网络接口,至少一个内部网络接口和一个外部网络接 口。有的n a t 网关能够在一个物理接口上生成多个虚拟接口,用于灵活地网络 n a p t 网关的研究与实现 连接。如图所示 修改或重新生成网络帧 网应用层网 络络 接 传输层 接 口网络层口 链路层 图2 - 7n a t 网关在多个网络接口之间修改并转发数据 一个完整的n a p t 不仅仅工作在网络层,而是需要在从链路层到应用层之间 的各个进行分析和处理。一般情况下,n a p t 网关不断地从各个网络接口上接收 网络帧,在网络协议模型的各个层次对其进行修改,以形成一个新的网络帧 并通过合适的网络接口发送出去。 以下,我们将举例说明n a p t 的工作原理,假设内部网络的地址段为私有地 址段1 9 2 1 6 8 0 x ,其中一台计算机的i p 地址为1 9 2 1 6 8 0 6 ,我们在n a p t 网 关上设定一个用作n a t 的地址2 0 2 1 1 1 。 1 ) 当用户发出t c p 连接请求时( 假设端口为1 2 3 4 ) ,n a p t 网关将根据n a t 设置,分配2 0 2 1 1 1 的一个端口,假设为2 2 2 2 ,分配给该用户; 2 ) 网关为该连接建立一个n a t 表项,表项中的内容为来源地址 1 9 2 1 6 8 0 6 :1 2 3 4 、已分配资源2 0 2 1 1 1 :2 2 2 2 : 3 ) n a p t 网关将该连接的i p 包源地址替换,替换为2 0 2 1 1 1 :2 2 2 2 ,并将 数据包发出: 4 ) 当外部主机数据返回到n a p t 网关外网接口时,返回的数据包的目的地 址为2 0 2 1 1 1 :2 2 2 2 ,n a p t 网关根据这个地址在表项中查出对应的地址端口 1 9 2 1 6 8 0 6 :1 2 3 4 ; 5 ) n a p t 网关将返回的数据包中的目的地址端口改为1 9 2 1 6 8 0 6 :1 2 3 4 , 并将i p 包发出。 n a p t 网关的研究与实现 6 ) 在整个通信过程中,n a p t 网关对t c p 连接的状态进行跟踪,并不断地对 双方发送的帧进行n a t 转换和转发,对一些特殊的应用协议( 如f t p ) ,还需要 对载荷进行修改。 7 ) 当两个主机通信完毕,其中一方需要终止连接的时候( 假如是 1 9 2 1 6 8 0 6 ) ,n a p t 网关在检测到第二次f i n 的a c k 时,删除n a t 表项,收回 2 2 2 2 端口。 8 ) 整个n a t 过程完成。 为了实现上述n a p t 过程,需要对每一个收到的以太网帧进行数据修改和替 换。以下,我们在网络协议的各层,对这些修改进行详细讨论。 2 4 1 对以太网帧的操作 作为网关的基本功能,需要根据各个接口的配置情况,将帧头部中的源m a c 地址修改为自己某个网络接口的m a c 地址,将目的地址修改为a r p 表中相应主 机的m a c 地址,或下一网关的m a c 地址。 2 4 2 对l p 首部的操作 在n a p t 模型中,每个包的i p 头必须改变,包括i p 地址( 外传包的源i p 地址,往里传的目的i p 地址) 和i p 校验和。 2 4 3 对u d p 首部的操作 对u d p 报头的操作包括如下几点: 1 端口转换 对u d p 任务,在报头中变化必须扩展成包含转换u d p 端口( 外传数据的源 u d p 端口和内传的目的u d p 端口) 的转换。 2 校验和的更正 这是因为t c p u d p 校验和计算中,同时有一个伪首部,包含源和目的i p 地 址。因此,一旦i p 头部被改变或u d p 端口被改变,必须重新计算u d p 校验和。 有一个例外,校验和为o 的u d p 报头不需要改变。 24 4 对t o p 首部的操作 对t c p 报头的操作包括如下几点: n a p t 网关的研究与实现 1 端口转换 对t c p 任务,与u d p 类似,在报头中变化必须扩展成包含转换t c p 端口( 外 传数据的源t c p 端口和内传的目的t c p 端口) 的转换。 2 校验和的更正 t c p 的校验和u d p 一样,有一个伪首部,包含源和目的i p 地址。因此,一 旦i p 头部被改变或t c p 端口被

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论