基于NATPT技术的IPv4.docx
- 文档编号:11110506
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:8
- 大小:168.12KB
基于NATPT技术的IPv4.docx
《基于NATPT技术的IPv4.docx》由会员分享,可在线阅读,更多相关《基于NATPT技术的IPv4.docx(8页珍藏版)》请在冰豆网上搜索。
基于NATPT技术的IPv4
基于NAT-PT技术的IPv4/IPv6互连互通的实现
时间:
2010-07-06来源:
中国论文在线
摘要:
针对IPv6网络与原有的IPv4网络实现无缝互通,国际上已经出现了多种过渡技术和互连方案。
本文主要针对纯IPv4和纯IPv6节点间的正常通信,采用NAT-PT和DNS-ALG技术相结合的办法作为解决方案,分析了该方法的工作机制,用流程图的方式反映了实现的过程,同时也提出了该技术尚存在的一些问题。
关键词:
NAT-PT,DNS-ALG,NAPT-PT,SIIT,地址池
Abstract:
InordertoimplementtheIpv6networkcommunicatingwithIpv4seamlessly,therehavebeenvarioustransitiontechnologiesandcommunicatingplans.MainlypointingtonormalcommunicationbetweenpureIpv4andpureIPv6nodesingear,thepapertakesthewayofcombiningNAT-PTwithDLG-ALG,analysesthemechanismofthisapproach,reflectstherealizationprocedurewithflowchartandthenadvancessomehiddenproblems.
Keywords:
NAT-PT,DNS-ALG,NAPT-PT,SIIT,AddressPool
1.引言
为了开展对于IPv4/IPv6过渡问题和高效无缝互连问题的研究,国际上,IETF组建了专门的workinggroup即NGTRANS工作组来处理这个问题。
同时,IETF在全球范围内成立试验床6-Bone,专门对IPv6的特性进行研究。
目前已经出现了多种过渡技术和互连方案,这些技术各有特点,用于解决不同过渡时期、不同环境的通信问题。
在过渡的初期,要解决的问题可以分成两大类:
第一类就是解决这些IPv6的小岛之间互相通信的问题;第二类就是解决IPv6的小岛与IPv4的海洋之间通信的问题。
目前解决过渡问题基本技术主要有三种:
双协议栈(RFC2893obsoleteRFC1933)、隧道技术(RFC2893)和NAT-PT(RFC2766)。
双协议栈(DualStack):
采用该技术的节点上同时运行IPv4和IPv6两套协议栈。
这是使IPv6节点保持与纯IPv4节点兼容最直接的方式,针对的对象是通信端节点(包括主机、路由器)。
这种方式对IPv4和IPv6提供了完全的兼容,但是对于IP地址耗尽的问题却没有任何帮助。
由于需要双路由基础设施,这种方式反而增加了网络的复杂度。
隧道技术(Tunnel):
隧道技术提供了一种以现有IPv4路由体系来传递IPv6数据的方法,也就是将IPv6的分组作为无结构意义的数据封装在IPv4数据报中,被IPv4网络传输。
根据建立方式的不同,隧道可以分成两类:
(手工)配置的隧道和自动配置的隧道。
隧道技术巧妙地利用了现有的IPv4网络,它的意义在于提供了一种使IPv6的节点之间能够在过渡期间通信的方法,但它并不能解决IPv6节点与IPv4节点之间相互通信的问题。
NAT-PT:
这种方法通过转换网关进行IPv4地址和IPv6地址转换以及协议翻译。
转换网关作为通信的中间设备,可在IPv4和IPv6网络之间转换IP报头的地址,同时根据协议不同对分组做相应的语义翻译,从而使纯IPv4和纯IPv6站点之间能够透明通信。
从已有的过渡机制可以看出,它们都是针对某一种问题而提出的,都不是普遍适用的,每一种机制都只适用于某种或几种特定的网络情况,而且常常需要和其它的技术组合使用。
在实际应用时需要综合考虑各种实际情况来制定合适的过渡策略。
本文拟针对采用NAT-PT和DNS_ALG技术的结合实现IPv6节点和IPv4节点之间的双向通信,分析说明原理并提出实现流程。
IPv6单协议网络节点A和IPv4单协议网络节点B通过NAT-PT设备通信
图1为IPv6单协议网络节点和IPv4因特网边界通过NAT-PT设备的连接示意图。
在IPv6单协议网络A中,3ffe:
b00:
ffff:
0:
0:
1:
:
/96是为NAT-PT操作预定义的网络前缀,在网络A中产生的并使用该前缀目的地址的数据包被路由到充当NAT-PT设备的路由器R1,然后,数据包中的IPv6地址被转换为IPv4地址并传送给IPv4因特网上的IPv4单协议网络节点。
此外网络A有到IPv6因特网的纯IPv6链路,其默认IPv6路由被配置指向路由器R2以到达IPv6因特网。
2.1传统NAT-PT工作机制(IPv6toIPv4)
2.1.1基本NAT-PT工作机制
NAT-PT网络拓扑示意图
如图2所示,假设其中节点IPv6-A的IPv6地址为FEDC:
BA98:
:
7654:
3210,节点IPv6-B的IPv6地址为FEDC:
BA98:
:
7654:
3211,节点IPv4-C的IPv4地址为132.146.243.30。
NAT-PT有一个IPv4地址缓冲池,缓冲池中IPv4的地址属于子网120.130.26/24。
当IPv6-A节点想和IPv4节点通信,节点A发出如下数据包:
源地址SA=FEDC:
BA98:
:
7654:
3210,目的地址DA=PREFIX:
:
132:
146:
243:
30。
上述数据包路由到NAT-PT,在那里被翻译成IPv4的数据包。
如果该数据包不是会话起始包,NAT-PT应该已经保存了该会话的状态信息(如已分配的IPv4地址和其它一些翻译中要用到的参数)。
若这些状态信息不存在,那么数据包将被丢弃。
如果该数据包是会话起始包,NAT-PT从地址缓冲池中分配一个IPv4地址(如120.130.26.10)给IPv6节点,并把数据包翻译成IPv4数据包。
在会话期间,NAT-PT保存翻译的参数和IPv6到IPv4的映射关系。
经过翻译形成的IPv4数据包具有源和目的地址分别为SA=120.130.26.10,DA=132.146.243.30。
任何从C节点回应的IPv4数据包会被NAT-PT通过保存的会话信息识别出是属于前面的同一个会话,并将其翻译成有如下参数的IPv6数据包:
SA=PREFIX:
:
132:
146:
243:
30,DA=FEDC:
BA98:
7654:
3210。
这时,翻译后的数据包在IPv6域内可以像正常的数据包那样传送。
2.1.2NAPT-PT工作机制
NAPT-PT通过网络地址、端口翻译和协议翻译,能使多个IPv6节点只使用地址缓冲池中的一个IPv4地址和外部的IPv4节点进行透明的通信。
IPv6节点的TCP/UDP端口号被翻译成已分配的IPv4地址的TCP/UDP端口号。
但当缓冲池中的IPv4地址分配完时,NAT-PT不能再为另外的IPv6节点提供对IPv4节点的访问。
NAPT-PT解决了NAT-PT存在的这个内在缺陷。
通过对传输层端口的复用,NAPT-PT能在一个IPv4地址上支持63K个TCP和63K个UDP连接。
对于如图2所示的连接,当用NAPT-PT代替NAT-PT时,所有的IPv6节点的IPv6地址可以翻译成一个IPv4地址:
120.130.26.10。
图2中的IPv6节点A与IPv4节点C建立了一个TCP连接。
设节点A发送了如下的数据包:
源地址SA=FEDC:
BA98:
7654:
3210,源TCP端口号=3017;目的地址DA=PREFIX:
:
132:
146:
243:
30,目的TCP端口号=23。
当数据包到达NAPT-PT设备时,NAPT-PT为其在已经分配的IPv4地址上再分配一个TCP端口,并把IPv6数据包翻译成如下的IPv4数据包:
SA=120.130.26.10,源TCP端口号=1025;DA=132.146.243.30,目的TCP端口=23。
对于返回的数据包也会被NAPT-PT辨识出,并被翻译成如下所示的IPv6数据包:
SA=PREFIX:
:
132:
146:
243:
30,源TCP端口号=23;DA=FEDC:
BA98:
7654:
3210,目的TCP端口号=3017。
还有一种情况,若节点A可能是IPv6域中唯一的HTTP服务器(端口号为80),设IPv4节点C发送一个包:
SA=132.146.243.30,源TCP端口号=1025;DA=120.130.26.10,的TCP端口号=80。
NAPT-PT会把这个包转换为:
SA=PREFIX:
:
132.146.243.30,源TCP端口号=1025;DA=FEDC:
BA98:
:
7654:
3210,目的TCP端口号=80。
此例表明,所有到达NAPT-PT路由器的目标端口为80的会话都将被发送到相同的节点A。
2.2DNS-ALG工作机制
在DNS中,IPv4域名和地址之间的映射关系保存为“A”记录,IPv6域名和地址之间的映射关系保存为“AAAA”或“A6”记录。
设计NAT-PT的目的是在IPv6节点和IPv4节点没有其它的相互通信手段的情况下提供它们之间的互通机制。
2.2.1IPv4节点访问IPv6节点时IPv4地址分配
IPv4节点访问IPv6节点
如图3所示,假设其中节点A有一个IPv6地址FEDC:
BA98:
7654:
3210,节点B有一个IPv6地址FEDC:
BA98:
7654:
3211,节点C有一个IPv4地址132.146.243.30。
NAT-PT有一个IPv4地址缓冲池,缓充池中IPv4的地址属于子网120.130.26/24。
当节点C发出对节点A进行域名解析的请求数据包时,解析请求被传送到IPv6域的DNS上。
NAT-PT设备上的DNS-ALG会把进入IPv6域的A记录DNS请求数据包(DNS数据包的TCP/UDP源和目的端口号均为53)翻译如下:
对域名到地址解析的请求数据包,请求类型“A”改为“AAAA”或“A6”;对地址到域名解析的请求数据包,用字符串“IP6.INT”代替“IN.ADDR.ARPA”,用V6地址代替字符串“IN-ADDR.ARPA”前的V4地址。
同时,当DNS应答数据包从IPv6域中的DNS服务器上返回给IPv4域中的请求节点时,DNS-ALG翻译DNS应答数据包的格式如下:
把DNS应答中“A6”记录翻译成“A”记录(当域名被完整地解析出时,只翻译“A6”记录);用NAT-PT从地址缓冲池中分配的IPv4地址代替IPv6域中DNS服务器解析出并返回的IPv6地址。
若IPv4还没有分配给IPv6节点,则在这时候从地址缓冲池中分配。
以图3中的访问节点A为例,若C开始一个与A的会话时,它首先通过本地的DNS服务器查询节点A的“A”记录。
本地DNS服务器把这个DNS请求转发给IPv6域中的DNS服务器。
DNS-ALG截获并翻译该请求中的“A”记录为”AAAA”或“A6”记录,再将翻译后的DNS请求转发给IPv6域中的DNS服务器。
节点A返回DNS应答为:
节点AAAAAFEDC:
BA98:
7654:
3210
DNS-ALG截获并翻译该数据包应答为:
节点AA120.130.26.1
DNS-ALG在NAT-PT中保存FEDC:
BA98:
:
7654:
3210和120.130.26.1之间的映射关系。
包含“A”记录的DNS应答数据包返回给节点C。
于是节点C发起会话如下:
SA=132.146.243.30,源TCP端口号=1025;DA=120.130.26.1,目的TCP端口号=80。
该数据包被路由到保存有FEDC:
BA98:
:
7654:
3210和120.130.26.1之间映射关系的NAT-PT,NAT-PT把数据包翻译成:
SA=PREFIX:
:
132.146.243.30,源TCP端口号=1025;DA=FEDC:
BA98:
:
7654:
3210,目的TCP端口号=80。
这时数据包便可在IPv6域内正确地传送。
2.2.2IPv6节点访问IPv4节点时的IPv4地址分配
如图3所示,假设节点A要访问节点C,节点A通过DNS解析节点C的“AAAA”记录。
因为节点C可能拥有IPv6和IPv4地址,NAT-PT设备上的DNS-ALG将对AAAA记录解析的请求数据包转发给外部DNS服务器,同时生成一个对C节点的A记录解析的请求数据包并发送出去。
如果外部DNS服务器上有C节点的AAAA记录,该记录将返回到NAT-PT,在那里再将原文转发给节点A。
若外部DNS服务器中还有C节点的A记录,则A记录返回NAT-PT,DNS-ALG将对该记录进行翻译,若A记录为:
节点CA132.146.243.30
其被翻译成:
节点CAAAAPREFIX:
:
132.146.243.30或节点CA6PREFIX:
:
132.146.243.30
在PREFIX不改变的情况下,现在节点可以像其它的IPv6地址一样使用上面的IPv6地址,IPv6域内的DNS服务器可以缓存上述记录。
3.实现流程
由上述原理和分析可以得到下面的互通处理流程。
3.1NAT-PT流程图
NAT-PT流程图
3.2DNS-ALG流程图
4.结束语
以上流程已在实现后证明是可行正确的。
NAT-PT的原理和SIIT类似,其改进的地方是将传统IPv4下的NAT应用于SIIT中的IPv4地址的选取当中,这样可以以很少的IPv4地址构成自己的IPv4地址分配池,可以给大量需要进行地址转换的应用使用协议转换服务。
在实现方面,有了DNS-ALG的支持,不但可以实现IPv6发起的与IPv4之间的通信,反之,同样可以实现。
有些应用需要一定程度的地址稳定性,NAT-PT可以被配置成提供IPv6到特定IPv4地址的静态映射。
NAT-PT简单易行,但在应用上有一些限制。
首先,在拓扑结构上要求一次会话中所有报文的转换都在一个路由器上,因此地址/协议转换方法较适用于只有一个路由器出口的STUB网络(存根网络);其次,一些协议字段在转换时不能完全保持原有的含义;另外,协议转换方法缺乏端到端的安全性等。
所以该机制只是适用于过渡的初始阶段,随着IPv6网络的逐渐扩大,相信目前的几种过渡技术会被更新的技术所取代。
参考文献
[1]G.TsirtsisandP.Srisuresh,“NetworkAddressTranslation-ProtocolTranslation(NAT-PT)”,RFC2766[S].2000.
[2]E.Nordmark,“StatelessIP/ICMPTranslationAlgorithm(SIIT)”,RFC2765[S].
2000.
[3]P.SrisureshandP.Akkiraju,“DNSextensionstoNetworkAddressTranslators(DNS_ALG)”,RFC2694[S].1999.
[4]IPv6技术白皮书(四).中国协议分析网.
[5]张云勇,刘韵洁,张智江.基于IPv6的下一代互联网.电子工业出版社.2004.7:
254-255.
[6](加)RegisDesmeules.CiscoIPv6网络实现技术.人民邮电出版社.2004.1:
196-206.
[7](美)戴维斯(Davies,J.).理解IPv6.清华大学出版社.2004.3:
219-225.
[8]IPv6技术白皮书
(一).中国协议分析网.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 NATPT 技术 IPv4
![提示](https://static.bdocx.com/images/bang_tan.gif)