一种IPv6节点访问IPv4节点的方法

文档序号:7614937阅读:192来源:国知局
专利名称:一种IPv6节点访问IPv4节点的方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种IPv6节点访问IPv4节点的方法。
背景技术
随着信息技术的不断进步,互联网在我国得到了迅速的发展。互联网上的计算机之间的通信采用IP(Internet Protocol)技术,现在的IP版本是IPv4。但是,随着互联网络规模的迅速扩大,IPv4定义的有限地址空间将被耗尽,地址空间的不足必将制约互联网的进一步发展。为了更好的适应互联网的发展,国际网络标准组织提出了新的IP版本IPv6,它弥补了IPv4的缺陷,是将取而代之的新技术。
IPv6协议具有很多优点。首先,它提供了巨大的地址空间,这实际上是推广IPv6的最大动力。其次,IPv6的地址结构和地址分配采用严格的层次结构,以便于进行地址聚合,从而大幅度地缩小了路由器中路由表的规模。再次,IPv6协议支持网络节点的地址自动配置,可以实现即插即用功能。而且,IPv6协议对主机移动性有较好的支持,适合于越来越多的互联网移动应用。另外,IPv6协议在安全性、对多媒体流的支持性等方面都具有超过IPv4的优势。所以,IPv6代替IPv4时必然趋势。
IPv4与IPv6的替换过程将是漫长的,不会像电话号码升级那么简单,有一个逐渐牵引的过程。目前与IPv4网络的2亿多用户相比,IPv6网络的用户目前实在是少得多。按照因特网中的Robert Metcalfe准则,一个网络的价值与它的节点数目的平方成正比。如果一个网络的应用和服务不够好,就不能吸引用户,不如一个成熟的、完善的网络有吸引力。因此,IPv4不可能被马上废弃,IPv6要取代IPv4只能采取共存和过渡策略。
互联网上的应用很多,但大都离不开域名系统(DNS)的支持,域名系统的主要作用是用来进行域名与IP地址的转换,即域名解析,比如浏览网站、Email、FTP等都需要先进行域名解析。
在IPv4到IPv6的过渡过程中,IPv6和IPv4的共存与过渡需要解决的问题是IPv6网络和IPv4网络之间的通信。为了实现IPv4网络和IPv6网络之间的DNS(Domain Name System)查询和响应,目前,业内主要采用应用层网关DNS-ALG(Domain Name Server-Application Level Gate)结合NAT-PT(Network Address Translation-Protocol Translation)的方法,在IPv4和IPv6网络之间起到一个翻译的作用。
网络地址转换NAT-PT网络应用组网如图1所示,包括IPv6网络和IPv4网络,两个网络中间由NAT-PT作为网关完成互连。在IPv6节点访问IPv4网络节点时,IPv6网络首先通过DNS协议获得要访问主机的IP地址,IPv6节点的DNS请求过程,是首先发送IPv6 DNS请求,DNS类型为AAAA,请求服务器的IPv6地址,当IPv6节点从NAT-PT或者IPv6 DNS服务器得到返回的DNS应答时,IPv6节点并不是马上使用这个IPv6地址开始正式访问,而是又发送一个IPv6DNS请求,DNS类型为A,再次请求服务器的IPv4地址,其目的是尽量获得IPv4和IPv6地址,由应用层决定用哪个协议栈通信。

发明内容
虽然在解决IPv6网络和IPv4网络之间通信问题时,已有技术已经提出了一套系统的解决方案,但是,实现IPv6网络和IPv4网络之间高效地通信,仍然存在不足之处。已有技术中IPv6节点访问IPv4节点的流程如图2所示。首先,IPv6节点只能获得IPv4节点的IPv6地址,还无法既获得IPv4节点的IPv6地址,也获得其IPv4地址,导致IPv6节点只能被迫使用IPv6地址与IPv4节点进行通信,应用软件无法自主选择通信协议栈;其次,IPv6节点访问IPv4节点的速度很慢。
导致已有技术上述不足的直接原因是NAT-PT设备对来自IPv6节点的源、目的地址为IPv6请求类型为A的DNS请求报文的处理方法为直接丢弃。因为来自IPv6节点的IPv6A的DNS请求报文被直接丢弃,致使IPv6节点无法通过IPv6 DNS请求获得IPv4节点的IPv4地址,应用软件无法选择通信协议栈;也是因为来自IPv6节点的IPv6 A的DNS请求报文被直接丢弃,导致IPv6节点等待应答信息,直到超时(超时时间为6秒),超时以后IPv6节点会重发IPv6 A的DNS请求,需要重发5次,总共会导致有30秒的等待,30秒的时间延迟最终导致IPv6中断访问IPv4节点时速度很慢。
本发明的发明目的是公开一种IPv6节点访问IPv4节点的方法,使IPv6节点既可以获得IPv4节点的IPv6地址,也可以获得IPv4地址,提高IPv6节点访问IPv4节点时DNS请求的速度。
本发明的目的是通过以下技术方案实现的本发明公开了一种IPv6节点访问IPv4节点的方法,包括A.IPv6节点发送源、目的地址为IPv6的域名解析系统DNS请求报文,请求类型为AAAA或者A6;B.网络地址转换协议NAT-PT设备翻译源、目的地址为IPv6的DNS请求报文,将请求类型转换为A,发送给IPv4 DNS服务器;C.IPv4 DNS服务器收到所述请求报文,IPv4 DNS服务器返回DNS应答报文,源、目的地址和域名对应的IP地址均为IPv4的、请求类型为A的DNS应答报文;D.所述NAT-PT设备收到所述应答报文,翻译DNS应答报文,将类型转换为AAAA或者A6,源、目的地址和域名对应的IP地址翻译成IPv6地址,发送被翻译后的应答报文给IPv6节点;E.IPv6节点收到所述应答报文,发送源、目的地址为IPv6的、请求类型为A的DNS请求报文;F.所述NAT-PT设备收到所述请求报文,生成DNS Refuse拒绝报文,发送给IPv6节点,域名解析服务DNS请求结束。
根据所述的提高IPv6节点访问IPv4节点速度的方法,所述的步骤F还包括丢弃所述请求报文根据所述的提高IPv6节点访问IPv4节点速度的方法,所述的步骤E还包括E10.所述NAT-PT设备收到所述请求报文,翻译该报文中的源、目的IP地址,发送翻译后的请求报文。
E20.IPv4 DNS服务器收到报文,返回DNS应答报文,该报文类型为A,源、目的地址和域名对应的IP地址均为IPv4地址E30.所述NAT-PT设备收到DNS应答报文,处理DNS应答报文。
根据所述的提高IPv6节点访问IPv4节点速度的方法,所述的步骤E10还包括记录所述DNS请求报文ID字段里的报文ID。
根据所述的提高IPv6节点访问IPv4节点速度的方法,所述的步骤E30包括E31.所述NAT-PT设备收到DNS应答报文,E32.比较所述DNS应答报文的ID和已经记录下的ID,根据比较结果处理报文。
根据所述的提高IPv6节点访问IPv4节点速度的方法,所述的步骤E32包括比较所述DNS应答报文的ID和已经记录下的ID,
如果ID相同,则翻译应答报文的源、目的地址,不转换请求类型,发送翻译后的应答报文给IPv6节点,域名解析服务DNS请求结束。
如果ID不相同,则跳转到步骤D;因此,本发明保证IPv6节点既可以获得IPv4节点的IPv6地址,也可以获得其IPv4地址,使应用软件自主选择通信协议栈成为可能,同时提高了域名解析服务DNS请求的速度。


图1为NAT-PT组网示意图;图2为已有技术中IPv6节点访问IPv4节点的示意图;图3为本发明中IPv6节点访问IPv4节点的示意图;图4为本发明中IPv6节点访问IPv4节点的示意图;具体实施方式
贯穿说明书,示出的该优选实施例和示例应被看作本发明的范例而不示限制。
已有技术中网络地址转换NAT-PT设备对来自IPv6节点的源、目的地址为IPv6请求类型为A的DNS请求报文的处理方法为直接丢弃。因为来自IPv6节点的IPv6 A的DNS请求报文被直接丢弃,致使IPv6节点无法通过IPv6 DNS请求获得IPv4节点的IPv4地址,应用软件无法选择通信协议栈;也是因为来自IPv6节点的IPv6 A的DNS请求报文被直接丢弃,导致IPv6节点等待应答信息,直到超时(超时时间为6秒),超时以后IPv6节点会重发IPv6 A的DNS请求,需要重发5次,总共会导致有30秒的等待,30秒的时间延迟最终导致IPv6中断访问IPv4节点时速度很慢。本发明提供了两种方案来解决上述问题。
以图1中的IPv6节点A访问IPv4节点C为例,假设图1中节点A有一个IPv6地址IPv6_adr1,节点B有一个IPv6地址IPv6_adr8节点C有一个IPv4地址IPv4_adr2,对外域名WWW.CBA.COM若节点A即将开始与节点C的会话时,节点A首先会发出域名解析查询报文,报文格式如表1所示表10 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+| ID |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+|QR| Opcode |AA|TC|RD|RA| Z|RCODE |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+| ……|+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+|QUERY |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+|ANSWER |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+其中,ID16bits,DNS CLIENT通过ID来确认响应与查询是否匹配;QUERY查询字段,查询报文中用于承载DNS请求查询问题,查询字段格式如表2所示;ANSWER答案字段,应答报文中用于承载DNS请求的应答信息,答案字段格式如表3所示;表20 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+| NAME |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+| TYPE |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| CLASS |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+其中,NAME域名TYPE类型,其中A表示请求IPv4地址,AAAA和A6表示请求IPv6地址CLASS类,通常是1,表示internet数据表30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+| NAME |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+| TYPE |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+| …… |+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|/ RDATA // /+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+其中,NAME域名TYPE类型,其中A表示请求IPv4地址,AAAA和A6表示请求IPv6地址CLASS类,通常是1,表示internet数据TTL生存时间的秒数,通常是2天RDLENGTH数据长度RDATA数据方案一方案一中,IPv6节点访问IPv4节点的过程如图4所示。
步骤410,节点A首先会发出域名解析查询报文,DNS请求报文DNS请求类型AAAA或A6请求域名WWW.CBA.COMSA=IPv6_adr1
DA=IPv6_adr3步骤420,DNS-ALG截获并翻译该请求中的“AAAA”或“A6”记录为“A”记录DNS请求类型A请求域名WWW.CBA.COMSA=IPv4_adr1DA=IPv4_adr4再将翻译后的DNS请求转发给IPv4域中的DNS服务器步骤430,IPv4域中的DNS服务器返回DNS应答如下DNS请求类型A请求域名WWW.CBA.COM,对应的IP地址IPv4_adr2SA=IPv4_adr4DA=IPv4_adr1步骤440,DNS-ALG截获并翻译该数据包应答如下DNS请求类型AAAA/A6请求域名WWW.CBA.COM,对应的IP地址IPv6_adr2SA=IPv6_adr3DA=IPv6_adr1DNS-ALG在NAT-PT中保存IPv6_adr1和IPv4_adr1之间,以及IPv6_adr2和IPv4_adr2的映射关系。
包含“AAAA”或“A6”记录的DNS应答数据包返回给节点A步骤450,域名解析完成,于是节点A发起会话如下DNS请求类型ASA=IPv6_adr1DA=IPv6_adr2该数据包被路由到保存有IPv6_adr2和IPv4_adr2之间映射关系的NAT-PT网关设备。
步骤460,NAT-PT设备生成DNS Refuse报文,将该拒绝报文发送给IPv6节点,丢弃请求报文。
NAT-PT设备发送DNS Refuse报文,通知IPv6节点,源目的地址为IPv6的DNS请求中携带A请求,将被拒绝。IPv6节点收到拒绝报文后,IPv6节点将不再发送源、目的地址为IPv6请求类型为A的DNS请求报文,直接进行与IPv4节点的后续会话,避免IPv6节点反复发送查询报文,解决了等待延时的问题。
方案二方案二中,IPv6节点访问IPv4节点的过程如图3所示。
步骤310,节点A首先会发出域名解析查询报文,DNS请求报文DNS请求类型AAAA或A6请求域名WWW.CBA.COMSA=IPv6_adr1DA=IPv6_adr3步骤320,DNS-ALG截获并翻译该请求中的“AAAA”或“A6”记录为“A”记录DNS请求类型A请求域名WWW.CBA.COMSA=IPv4_adr1DA=IPv4_adr4再将翻译后的DNS请求转发给IPv4域中的DNS服务器步骤330,IPv4域中的DNS服务器返回DNS应答如下DNS请求类型A请求域名WWW.CBA.COM,对应的IP地址IPv4_adr2SA=IPv4_adr4
DA=IPv4_adr1步骤340,DNS-ALG截获并翻译该数据包应答如下DNS请求类型AAAA/A6请求域名WWW.CBA.COM,对应的IP地址IPv6_adr2SA=IPv6_adr3DA=IPv6_adr1DNS-ALG在NAT-PT中保存IPv6_adr1和IPv4_adr1之间,以及IPv6_adr2和IPv4_adr2的映射关系。包含“AAAA”或“A6”记录的DNS应答数据包返回给节点A步骤350,域名解析完成,于是节点A发起会话如下DNS请求类型ASA=IPv6_adr1DA=IPv6_adr2该数据包被路由到保存有IPv6_adr2和IPv4_adr2之间映射关系的NAT-PT网关设备,NAT-PT设备对源、目的地址是IPv6,请求类型为A的报文进行相应处理。
步骤360,DNS-ALG截获并翻译该数据包应答如下DNS请求类型A(保持不变)SA=IPv4_adr1DA=IPv4_adr2再记录该DNS请求的ID字段。
步骤370,IPv4域中的DNS服务器返回DNS应答如下DNS请求类型A请求域名WWW.CBA.COM,对应的IP地址IPv4_adr2SA=IPv4_adr4DA=IPv4_adr1
步骤380,DNS-ALG截获DNS应答数据包,因为步骤3和步骤7返回的应答内容相同,NAT-PT使用已经记录下的ID进行比较,如果ID不相同,则跳到步骤4;如果ID相同,则只将该数据包中IPv4源、目的地址翻译成IPv6格式,DNS请求类型A请求域名WWW.CBA.COM,对应的IP地址IPv4_adr2SA=IPv4_adr4DA=IPv4_adr1再发送给IPv6节点。
IPv6节点收到报文的源、目的为IPv6地址,应答内容为A,内容携带IPv4地址的DNS应答,这时IPv6节点已经得到IPv4和IPv6地址,可以由应用软件选择使用哪个协议栈在IPv6节点访问IPv4节点时,因为本发明公开的两种方案,使得IPv6节点可以收到源、目的为IPv6地址,应答内容为A的应答报文,内容携带IPv4地址的DNS应答报文,IPv6节点可以获得IPv4节点的IPv4和IPv6地址,可以由应用软件自主选择通信协议栈。
权利要求
1.一种IPv6节点访问IPv4节点的方法,其特征在于,包括A.IPv6节点发送源、目的地址为IPv6的域名解析系统DNS请求报文,请求类型为AAAA或者A6;B.网络地址转换协议NAT-PT设备翻译源、目的地址为IPv6的DNS请求报文,将请求类型转换为A,发送给IPv4 DNS服务器;C.IPv4 DNS服务器收到所述请求报文,IPv4 DNS服务器返回DNS应答报文,源、目的地址和域名对应的IP地址均为IPv4的、请求类型为A的DNS应答报文;D.所述NAT-PT设备收到所述应答报文,翻译DNS应答报文,将类型转换为AAAA或者A6,源、目的地址和域名对应的IP地址翻译成IPv6地址,发送被翻译后的应答报文给IPv6节点;E.IPv6节点收到所述应答报文,发送源、目的地址为IPv6的、请求类型为A的DNS请求报文;F.所述NAT-PT设备收到所述请求报文,生成DNS Refuse拒绝报文,发送给IPv6节点,域名解析服务DNS请求结束。
2.根据权利要求1所述的提高IPv6节点访问IPv4节点速度的方法,其特征在于,所述的步骤F还包括丢弃所述请求报文
3.根据权利要求1所述的提高IPv6节点访问IPv4节点速度的方法,其特征在于,所述的步骤E还包括E10.所述NAT-PT设备收到所述请求报文,翻译该报文中的源、目的IP地址,发送翻译后的请求报文。E20.IPv4 DNS服务器收到报文,返回DNS应答报文,该报文类型为A,源、目的地址和域名对应的IP地址均为IPv4地址E30.所述NAT-PT设备收到DNS应答报文,处理DNS应答报文。
4.根据权利要求3所述的提高IPv6节点访问IPv4节点速度的方法,其特征在于,所述的步骤E10还包括记录所述DNS请求报文ID字段里的报文ID。
5.根据权利要求3、4所述的提高IPv6节点访问IPv4节点速度的方法,其特征在于,所述的步骤E30包括E31.所述NAT-PT设备收到DNS应答报文,E32.比较所述DNS应答报文的ID和已经记录下的ID,根据比较结果处理报文。
6.根据权利要求5所述的提高IPv6节点访问IPv4节点速度的方法,其特征在于,所述的步骤E32包括比较所述DNS应答报文的ID和已经记录下的ID,如果ID相同,则翻译应答报文的源、目的地址,不转换请求类型,发送翻译后的应答报文给IPv6节点,域名解析服务DNS请求结束。如果ID不相同,则跳转到步骤D。
全文摘要
本发明公开一种IPv6节点访问IPv4节点的方法。网络地址转换协议NAT-PT设备收到源、目的地址为IPv6,请求类型为A的域名解析系统DNS报文时,对该报文进行处理,避免了IPv6节点等待超时和重发请求信息的问题。通过本发明,可以解决IPv6节点访问IPv4节点时延过大的问题,同时保证IPv6节点既获得IPv4节点的IPv4地址,也获得IPv6地址,使得应用软件可以任意选择IPv4地址,或者IPv6地址与IPv4节点进行通信。
文档编号H04L29/06GK1933477SQ20051003727
公开日2007年3月21日 申请日期2005年9月13日 优先权日2005年9月13日
发明者陈洪飞, 张原 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1