CN101262410A - 基于nat-pt的dns应用层网关的实现方法 - Google Patents

基于nat-pt的dns应用层网关的实现方法 Download PDF

Info

Publication number
CN101262410A
CN101262410A CNA2007100378617A CN200710037861A CN101262410A CN 101262410 A CN101262410 A CN 101262410A CN A2007100378617 A CNA2007100378617 A CN A2007100378617A CN 200710037861 A CN200710037861 A CN 200710037861A CN 101262410 A CN101262410 A CN 101262410A
Authority
CN
China
Prior art keywords
address
ipv6
ipv4
territory
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2007100378617A
Other languages
English (en)
Other versions
CN101262410B (zh
Inventor
张文良
李存
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHANGHAI YIREN COMMUNICATION TERMINAL CO Ltd
Infinite Shanghai Communication Terminals Ltd
Original Assignee
SHANGHAI YIREN COMMUNICATION TERMINAL CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SHANGHAI YIREN COMMUNICATION TERMINAL CO Ltd filed Critical SHANGHAI YIREN COMMUNICATION TERMINAL CO Ltd
Priority to CN2007100378617A priority Critical patent/CN101262410B/zh
Publication of CN101262410A publication Critical patent/CN101262410A/zh
Application granted granted Critical
Publication of CN101262410B publication Critical patent/CN101262410B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种基于NAT-PT的DNS应用层网关的实现方法,用于处理IPv4网络和IPv6网络之间DNS报文的转换,所述方法包括DNS头处理步骤,查询问题域处理步骤,回答域处理步骤,授权域处理步骤,以及额外信息域处理步骤,其中采用了简化报文问题和资源记录处理的措施。本发明通过对DNS报文头及四个域的比较简单的转换处理,实现由IPv4节点发起连接的通信。本发明以NAT-PT为基础,是NAT-PT不可分割的一部分,是实现由IPv4节点发起连接的重要一环,是实现IPv4网络和IPv6网络之间双向通信的基础。

Description

基于NAT-PT的DNS应用层网关的实现方法
技术领域
本发明涉及一种用于IPv4和IPv6共存的网络中的DNS(Domain NameServer,域名服务器)报文转换方法,尤其涉及一种基于NAT-PT的DNS应用层网关的实现方法。
背景技术
IPv4(TCP/IP)协议是当Internet上最重要的协议族,它是连接到Internet上的所有计算机都必须支持的协议。但是,随着Internet的发展,IPv4的一些缺点也逐渐暴露出来,其中最主要的缺点就是地址空间严重不足。由于历史原因,分配给我国的IPv4地址较少,地址枯竭问题就更加严重。
IPv6是设计用来替代现有IPv4(TCP/IP)协议,也被称作下一代互联网协议。IPv6是为了解决IPv4所存在的一些问题和不足而提出的,同时它还在许多方面提出了改进,例如路由方面、自动配置方面。IPv6协议包括IPv6基本协议和ICMPv6协议。
虽然IPv6的优越性无庸置疑,但要IPv4马上退出历史舞台显然是不可能的,所以在一段很长的时间内,V4节点和V6节点将共同存在。由于V4和V6节点必然要经常通信,所以必须要实现一种有效的转换机制,使得V4节点和V6节点能够无障碍的通信。为了解决这个难题,提出了网络地址转换-协议转换(NAT-PT)及网络地址端口转换-协议转换(NAPT-PT)。从而在网络层上实现了从IPv6节点主动向IPv4节点建立单向连接。
图1是NAT-PT应用示意图。当IPv6主机101要与IPv4主机121通信时,首先需要在IPv6网络100中标识IPv4主机,NAT-PT网关110向IPv6网络100中广播一个96位的地址前缀,用96位地址前缀加上32位IPv4主机地址作为对IPv4网络120中的主机的标识。IPv6主机101发给IPv4主机121的报文,通过96位前缀被路由到NAT-PT网关110处,NAT-PT网关对IPv6报文头进行转换,利用一IPv4地址池111分配临时IPv4地址标识IPv6源地址,报文转换为IPv4报文后发给IPv4目的主机。
由于全球公用的IPv4地址的获取困难,NAT-PT网关必须实现IPv4地址的共享。NAT-PT的地址共享是通过传输层标识(TCP/UDP端口或ICMP类型码)的跟踪与复用来实现的。这时,当内部网络主机向外建立连接时,NAT-PT网关必须动态分配对外的地址和传输层标识,记录每个连接会话(UDP/ICMP是伪连接)与外部地址的绑定关系,然后跟踪该连接的状态,当连接关闭后,NAT-PT网关必须自动释放先前分配的地址和传输层标识,以便后续连接使用。
通过传输层标识的复用及会话跟踪,NAT-PT网关能够使一个IPv4地址最多建立63K个TCP/UDP连接或ICMP应答。
考虑NAPT-PT的情况。同样假设内部V6主机主动向外部V4主机建立连接,从V6主机给V4主机发送一个V6报文,则
转换前:
源地址:FEDC:BA98::7654:3210
源TCP端口:3017
目的地址:PREFIX::132.146.243.30
目的TCP端口:23
转换后:
源地址:120.130.26.15
源TCP端口:1025
目的地址:132.146.243.30
目的TCP端口:23
而从IPv4节点主动向IPv6节点建立的连接,还必须在应用层添加应用层网关(ALG)才能实现。同时第三层的地址或传输层的标识,也需要进行相应的转换,这种服务叫应用层网关(ALG),域名查询服务DNS就是其中一种。DNS应用层网关(DNS-ALG)用于在IPv4网络和IPv6网络间转换DNS报文,从而使两个网络之间能够互相通信。在通常情况下,实现一个完整的DNS应用层网关是比较复杂的,因为网络设备进行协议转换、地址转换的处理开销较大。因此简化DNS应用层网关,降低网络设备在进行协议转换、地址转换处理时的开销,是目前需要解决的问题。
发明内容
本发明所要解决的技术问题是提供一种基于NAT-PT的DNS应用层网关的实现方法,它能够以尽量小的改动,尽量小的处理开销,实现IPv4节点和Ipv6节点的基本互通。
本发明为解决上述技术问题而采用的技术方案是提供一种基于NAT-PT的DNS应用层网关的实现方法,用于处理IPv4网络和IPv6网络之间DNS报文的转换,所述方法包括:
a.DNS头处理步骤,重新计算DNS报文的资源记录数;
b.查询问题域处理步骤,包括:查询类型转换步骤,将所述查询问题域中,对应于IPv4域/IPv6域的查询类型分别转换为对应于IPv6域/IPv4域的查询类型;以及地址映射步骤,将所述查询问题域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址;
c.回答域处理步骤,包括:资源类型转换步骤,将所述回答域中对应于IPv4域/IPv6域的资源类型分别转换为对应于IPv6域/IPv4域的资源类型;以及地址映射步骤,将所述回答域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址;
d.授权域处理步骤,记录所述授权域中第一个NS或MX中资源数据的值;以及
e.额外信息域处理步骤,包括:记录第一个匹配上述NS或MX中的资源数据值的A或AAAA资源记录;资源类型转换步骤,将对应于IPv4域/IPv6域的资源类型转换为对应于IPv6域/IPv4域的资源类型;以及地址映射步骤,将所述额外信息域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述DNS头处理步骤中,重新计算DNS报文的资源记录数包括,对于回答域中第一个资源记录类型是CNAME的资源记录数记为2,对于第一个资源记录数不是CNAME的资源记录数记为1。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述查询问题域处理步骤中,查询类型转换步骤包括:对来自IPv4域的A或AAAA查询,将查询类型均转换为AAAA;对于来自IPv6域的AAAA查询,将DNS报文复制为两个,其中一个DNS报文查询类型仍然为AAAA,另一个DNS报文查询类型转换为A;以及对于来自IPv6域的A查询,视为错误而将其丢弃。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述查询问题域处理步骤中,地址映射步骤包括:对于来自IPv4域的PTR查询,在一地址映射表中查找其查询名中的IPv4地址所对应的IPv6地址,若不命中,则给IPv4源端发送出错报文,若命中,则将映射后的地址回填入所述查询名中;对于来自IPv6域的PTR查询,在所述地址映射表中查找其查询名中IPv6地址所对应的IPv4地址,若不命中,则将其丢弃,若命中,则将映射后的地址回填入所述查询名中。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述回答域处理步骤中,若第一条资源记录是CNAME类型,则复制第一条资源记录,接着对第二条资源记录执行所述资源类型转换步骤和地址映射步骤,并忽略其他资源记录;若第一条资源记录不是CNAME类型,则对第一条记录执行所述资源类型转换步骤和地址映射步骤,并忽略其他资源记录。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述回答域处理步骤中,资源类型转换步骤包括:对来自IPv4域的A或AAAA回答,将资源类型均转换为AAAA;对于来自IPv6域的AAAA回答,将资源类型转换为A;对于来自IPv6域的A回答,将DNS报文则丢弃。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述回答域处理步骤中,所述地址映射步骤包括:对来自IPv4域的A回答,在一地址映射表中查找其资源数据中的IPv4地址所对应的IPv6地址,将映射后的地址回填入所述资源数据中,并修改资源数据长度;对于来自IPv4域的PTR回答,在一地址映射表中查找其域名中IPv4地址所对应的IPv6地址,并将映射后的地址回填入所述域名中;对来自IPv6域的AAAA回答,在一地址映射表中查找其资源数据中的IPv6地址所对应的IPv4地址,若不命中,则为所述IPv6地址分配一IPv4地址,并在地址映射表中创建IPv6-IPv4映射;以及将映射后的地址回填入所述资源数据中,并修改资源数据长度;以及对于来自IPv6域的PTR回答,在一地址映射表中查找其域名中的IPv6地址所对应的IPv4地址,若不命中,则将其丢弃,若命中,则将映射后的地址回填入所述域名中。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述额外信息域处理步骤中,所述资源类型转换步骤包括:对来自IPv4域的A或AAAA记录,将资源类型均转换为AAAA;对于来自IPv6域的AAAA记录,将资源类型转换为A;对于来自IPv6域的A记录,将DNS报文则丢弃。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,所述额外信息域处理步骤中,所述地址映射步骤包括:对来自IPv4域的A记录,在一地址映射表中查找其资源数据中的IPv4地址所对应的IPv6地址,将映射后的地址回填入所述资源数据中,并修改资源数据长度;对来自IPv6域的AAAA记录,在一地址映射表中查找其资源数据中的IPv6地址所对应的IPv4地址,若不命中,则为所述IPv6地址分配一IPv4地址,并在地址映射表中创建IPv6-IPv4映射;以及将映射后的地址回填入所述资源数据中,并修改资源数据长度;对来自IPv6域的A记录,视为错误而将其丢弃。
上述的基于NAT-PT的DNS应用层网关的实现方法,其中,只处理问题数为1的DNS查询报文。
本发明由于采用上述技术方案对DNS报文头及四个域的比较简单的转换处理,实现由IPv4节点发起连接的通信。本发明以NAT-PT为基础,是NAT-PT不可分割的一部分,是实现由IPv4节点发起连接的重要一环,是实现IPv4网络和IPv6网络之间双向通信的基础。本发明尤其适用存在于大的IPv4网络中IPv6子网与IPv4网络之间的通信,与只支持单协议栈的IPv4子网(IPv4协议栈)和IPv6子网(IPv6协议栈)之间的互通等。
附图说明
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:
图1是目前NAT-PT的一个应用示意图。
图2是应用本发明的DNS应用层网关的NAT-PT结构示意图。
图3是本发明的DNS应用层网关的实现方法的各个流程图。
图4是本发明的DNS应用层网关的实现方法的查询问题域处理流程图。
图5是本发明的DNS应用层网关的实现方法的回答域处理流程图。
图6是本发明的DNS应用层网关的实现方法的授权域处理流程图。
图7是本发明的DNS应用层网关的实现方法的额外信息域处理流程图。
具体实施方式
为便于后文的描述和理解,下面首先简略描述DNS报文的格式。
DNS定义了一个用于查询和响应的报文格式。表1显示这个报文的总体格式。
Figure A20071003786100101
表1
如表1所示,这个报文由12字节长的首部和4个长度可变的字段组成。标识字段由客户程序设置并由服务器返回结果,客户程序通过它来确定响应与查询是否匹配。16bit的标志字段被划分为若干子字段。随后的4个16bit字段说明最后4个变长字段中包含的条目数。对于查询报文,问题数通常是1,而其他3项则均为0。类似地,对于应答报文,回答数至少是1,剩下的两项可以是0或非0。
问题部分中每个问题的格式如表2所示,通常只有一个问题。
Figure A20071003786100102
表2
查询名是要查找的名字,它是一个或多个标识符的序列。每个标识符以首字节的计数值来说明随后标识符的字节长度,每个名字以最后字节为0结束,长度为0的标识符是根标识符。计数字节的值必须是0-63的数,因为标识符的最大长度仅为63。该字段无需以整32bit边界结束,即无需填充字节。每个问题有一个查询类型,而每个响应(也称一个资源记录)也有一个类型。大约有20个不同的类型值,表3列出了其中的一些主要的类型值。
  类型   涵义
  A   IPv4主机地址
  AAAA   IPv6主机地址
  NS   授权域名服务器
  CNAME   别名
  SOA   授权区域
  PTR   域名指针
  MX   邮件服务器
表3
DNS报文中最后的三个字段,回答字段、授权字段和附加信息字段,均采用一种称为资源记录RR(Resource Record)的相同格式。表4显示了资源记录的格式。
Figure A20071003786100111
表4
如表4所示,域名是记录中资源数据对应的名字。它的格式和前面介绍的查询名字段格式相同。类型说明RR的类型码,它的值和前面介绍的查询类型值是一样的。类通常为1,指Internet数据。生存时间字段是客户程序保留该资源记录的秒数。资源记录通常的生存时间值为1天。资源数据长度说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型1(A记录)资源数据是4字节的IP地址,即IPv4地址。
请结合参阅表1~表4,对于从IPv4域发往IPv6域、或者从IPv6域发往IPv4域的DNS报文,需要进行的转换包括:
A、AAAA记录,查询问题域中查询类型做相应的调整,到IPv4域的报文查询类型设置成A,到IPv6域的报文查询类型设置成AAAA。
A、AAAA类型的资源记录中类型做相应的调整,到IPv4域的报文类型设置成A,到IPv6域的报文类型设置成AAAA。如果资源数据包含IPv4或IPv6地址,通过查找地址映射表,找到对应的IPv6或IPv4地址,回填入资源数据中,并且修改资源数据长度的值;若该映射是静态映射,则生存时间取标准值(默认1天);若映射是动态映射,则生存时间置零;对于AAAA记录(来自IPv6域),如果映射不存在,还需要给IPv6地址动态分配一个全球有效的IPv4地址,并且在地址映射表中创建相应的IPv6-IPv4地址映射表项。
其他字段均保持不变。
对于PTR记录,查询问题域中的查询名是编码后的IPv4或IPv6地址,通过查找地址映射表,找到对应的IPv6或IPv4地址,编码后回填入查询名中。若映射不存在,则需要给发送端返回一个差错报文。
PTR类型的资源记录中域名是编码后的IPv4或IPv6地址,通过查找地址映射表,找到对应的IPv6或IPv4地址,编码后回填入域名中。若映射不存在,则直接丢弃该报文。
其他字段均保持不变。
对于NS、MX、SOA、CNAME记录,各字段均保持不变。
在本发明的实施例中,DNS-ALG的实现方法基于一些基本策略,使用这些策略可以以最小的处理开销实现IPv4域与IPv6域之间的基本互通,这些策略包括:
1.只处理问题数等于1的情况。
2.对于IPv6域送往IPv4域的查询报文,如果查询类型是AAAA,则生成两个查询报文:AAAA查询类型的查询报文,A查询类型的查询报文。
3.对于资源记录数大于1的情况,如果回答域中第一个资源记录类型是CNAME,则只处理前两个资源记录;如果第一个资源记录类型不是CNAME,则只处理第一个资源记录。授权域和额外信息域中的资源记录全部处理。
4.只对第一个完全正确的IPv4/IPv6地址进行映射,即只保证一个、并且是第一个IP地址翻译的正确性。
下面结合图2~图7分别叙述采用上述策略的DNS-ALG实现方法的各个流程。
图2是应用本发明的DNS应用层网关的NAT-PT结构示意图。请参阅图2,IPv4网络120中具有IPv4主机121和IPv4域名服务器122,IPv6网络100中具有IPv6主机101和IPv6域名服务器102。IPv4主机121查询另一IPv4主机,或者IPv6主机101查询另一IPv6主机都可直接由本网络的域名服务器获得回答。当例如IPv4主机121欲查询一IPv6主机时,本网络域名服务器122无法回答该查询,则将该报文转发出去,由设置于IPv4网络120与IPv6网络100之间的NAT-PT网关110接收。NAT-PT网关110具有DNS-ALG 112,用以处理自IPv4网络120发往IPv6网络100(或者反过来)的DNS报文,即将该报文进行格式转换后,以IPv6网络所支持的格式发往IPv6域名服务器102。处理流程如图3所示,分别包括DNS头处理301、查询问题域处理302、回答域处理303、授权域处理304以及额外信息域处理305,以下是各个流程的详细处理:
首先是DNS头的处理流程,该流程十分简单,只要重新计算资源记录数即可。基于上述的策略3,对于回答域中第一个资源记录类型是CNAME的资源记录数填2,对于第一个资源记录类型不是CNAME的资源记录数填1。其他字段都不变。
其次,DNS查询问题域处理流程如图4所示。首先是检测查询报文的类401,如果是Internet(IN),进行后续处理,如果不是,则丢弃(420),在402中,检测源报文类型,对来自IPv4源和IPv6源的报文分别处理,处理的步骤主要包括查询类型转换和地址映射。查询类型转换步骤是将查询问题域中对应于IPv4域/IPv6域的查询类型分别转换为对应于IPv6域/IPv4域的查询类型;地址映射步骤是将查询问题域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址。
查询类型转换步骤包括:
404:在IPv4报文的查询类型判断403后,由于IPv6域中不能有A记录,所以所有从IPv4源来的A记录或者AAAA记录都必须转换成AAAA记录,以便能够发往IPv6域。
408:在IPv6报文的查询类型判断407后,由于IPv4域中既能有A记录,又能有AAAA记录,所以我们把从IPv6源来的AAAA记录查询的DNS报文复制为两个DNS报文,一个仍然以AAAA记录发送,另一个转换为A记录发送。
411:从IPv6源来的A记录查询视为错误情况,直接丢弃(420)。
地址映射步骤包括:
在IPv4报文的查询类型判断403后,对于PTR记录,在一地址映射表中查找其查询名中的IPv4地址所对应的IPv6地址,若不命中,则给IPv4源端发送出错报文(405),若命中,则将映射后的地址回填入查询名中(406)。
在IPv6报文的查询类型判断407后,对于PTR记录,在地址映射表中查找其查询名中的IPv6地址所对应的IPv4地址,若不命中,则将其丢弃(412),若命中,则将映射后的地址回填入查询名中(414)。
上述步骤完成后,或者对于其他查询类型,均进入结束步骤414,不再处理。执行上述转换的DNS查询报文将可由NAT-PT110送往相应的网络。
其次,DNS回答域处理流程如图5所示。基于前文的策略3,即对于资源记录数大于1的情况,如果回答域中第一个资源记录类型是CNAME,则只处理前两个资源记录;如果第一个资源记录类型不是CNAME,则只处理第一个资源记录。在回答域处理流程中,先判断第一条资源记录是否是CNAME类型(501),若第一条资源记录是CNAME类型,则复制该记录,不改变该记录字段的所有值,接着处理第二条资源记录(502)若第一条资源记录不是CNAME类型,则只处理该条记录。回答域中余下的所有资源记录全部忽略,直接去掉。这么做的目的是保证回答域中所有RR的翻译完全正确,在简化处理的同时保证至少能够正确回答一个查询问题。
在步骤503中,判断回答报文的类,如果是Internet(IN),则继续处理,判断源报文类型(504),对来自IPv4源和IPv6源的报文分别处理,处理的步骤主要包括资源类型转换和地址映射。资源类型转换步骤是将回答域中对应于IPv4域/IPv6域的资源类型分别转换为对应于IPv6域/IPv4域的资源类型;地址映射步骤是将回答域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址。在图5中,这两个步骤是结合在一起进行的,下面将参照图5同时对这两个步骤进行描述。
在IPv4报文的资源类型判断505后,进行资源类型转换506,由于IPv6域中不能有A记录,所以所有从IPv4源来的回答中A记录或者AAAA记录都必须转换成AAAA记录,以便能够发往IPv6域。
承接上述,在资源类型转换506后,在步骤507中,对来自IPv4域的A记录的回答,在一地址映射表中查找其资源数据中的IPv4地址所对应的IPv6地址;在步骤508中,将映射后的地址回填入所述资源数据中,并修改资源数据长度。
在IPv6报文的资源类型判断509后,进行资源类型转换510,将从IPv6源来的AAAA记录转换为A记录。而从IPv6源来的A记录的回答视为错误情况(514),直接丢弃(521)。
承接上述,在资源类型转换510后,对来自IPv6域的AAAA回答,在一地址映射表中查找其资源数据中的IPv6地址所对应的IPv4地址(511),若不命中,则为所述IPv6地址分配一IPv4地址,并在地址映射表中创建IPv6-IPv4映射(512)这样,无论是否命中,都能将IPv6地址映射到一IPv4地址,然后将映射后的地址回填入所述资源数据中,并修改资源数据长度(513)。
PTR记录只需进行地址映射处理,请参照图5,对于来自IPv4域的PTR记录的回答,在一地址映射表中查找其域名中IPv4地址所对应的IPv6地址(515),并将映射后的地址回填入域名中(516);对于来自IPv6域的PTR记录的回答,在一地址映射表中查找其域名中的IPv6地址所对应的IPv4地址,若不命中,则将其丢弃(517),若命中,则将映射后的地址回填入域名中(518)。
上述流程中查找地址映射表有三种结果:
命中的表项是静态地址映射(例如步骤508),只要把查表得到的映射后的地址回填入资源数据中,并且修改相应的资源数据长度即可。
命中的表项是动态地址映射(例如步骤517),除了把查表得到的映射后的地址回填入资源数据中,并且修改相应的资源数据长度之外,还需要把生存时间设为零,防止DNS服务器或者主机缓存该条资源记录。
对于IPv6域送往IPv4域的应答报文,还有可能查找地址映射表不命中(例如步骤512)。这时需要立即动态地分配一个全局有效的IPv4地址,并且在地址映射表中添加这条IPv6-IPv4动态地址映射关系。
上述步骤完成后,或者对于其他资源记录(519),均进入结束步骤(520)。执行上述转换的DNS回答报文将可由NAT-PT110送往相应的网络。
DNS授权域和额外信息域的内容是在如下情况产生的:当DNS服务器收到一个DNS查询报文,查询的内容是该服务器授权范围之外的内容,而且在缓冲中也没有相应的答案时,就会在生成的应答报文授权域中,由NS记录指名查询问题所涉及到的授权DNS服务器的域名;在额外信息域中,由A记录或者AAAA记录指名该授权DNS服务器的IP地址。
因此,在本发明中,记录授权域中第一条NS记录或MX记录(情况和NS记录类似)中的资源数据的内容,并且记录第一个匹配授权域中第一个NS或MX记录的资源数据的A或AAAA记录的域名。通过翻译匹配记录中的IPv4或IPv6地址,使得源端(即查询端)收到应答报文后,能够按照正确的IP地址向DNS授权服务器发送查询报文。
DNS授权域处理流程如图5所示。与前述的查询问题域处理流程和回答域处理流程一样,同样经过资源报文类判断601、源报文类型判断602,之后,无论对于来自IPv4域或IPv6域的报文,遍历授权域中每个的资源记录(603),记录第一条NS记录或MX记录中的资源数据的值(604)。
DNS额外信息域处理流程如图7所示。首先,记录第一个匹配上述授权域中第一个NS或MX记录的资源数据的A或AAAA记录的域名(701),这是为了保证至少有一条IPv4-IPv6地址翻译是正确的。然后经过资源报文类判断701、源报文类型判断702之后,对来自IPv4源和IPv6源的报文分别进行处理,处理步骤主要包括资源类型转换和地址映射。资源类型转换步骤是将对应于IPv4域/IPv6域的资源类型转换为对应于IPv6域/IPv4域的资源类型;地址映射步骤是将额外信息域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址。
对于IPv4源AAAA、A记录的处理步骤704~707与图4所示的回答域的处理步骤506~508相似,而对于IPv6源的AAAA记录的处理步骤709~713与图4所示的处理步骤510~514相似,因此不再赘述。
在某些具体应用中,还可能需要对PTR类型的记录进行处理,其步骤为714~717,流程与图4所示步骤715~718也相似,因此也不再赘述。
对于额外信息域中的每一个资源记录,都要进行处理(718),然后进入结束步骤720。
这里,查找地址映射表也有三种结果:
命中的表项是静态地址映射(例如步骤707),只要把查表得到的映射后的地址回填入资源数据中,并且修改相应的资源数据长度即可。
命中的表项是动态地址映射(例如步骤714),除了把查表得到的映射后的地址回填入资源数据中,并且修改相应的资源数据长度之外,还需要把生存时间设为零,防止DNS服务器或者主机缓存该条资源记录。
对于IPv6域送往IPv4域的应答报文,还有可能查找地址映射表不命中(例如步骤711)。这时需要立即动态地分配一个全局有效的IPv4地址,并且在地址映射表中添加这条IPv6-IPv4动态地址映射关系。
额外信息域中的A、AAAA记录的地址是授权域名服务器的IP地址。额外信息域中IPv6-IPv4地址的翻译是为了实现DNS非授权服务器发送的应答报文的IPv6-IPv4地址的翻译。
本发明的实施例中通过上述对DNS报文头及四个域的比较简单的转换处理,对于由IPv4节点发起的连接或由IPv6节点发起的连接,都可实现IPv4网络与IPv6网络之间的互相通信。本发明是以NAT-PT为基础,是NAT-PT不可分割的一部分,是实现由IPv4节点发起连接的重要一环,是实现IPv4网络和IPv6网络之间双向通信的基础。本发明尤其适用存在于大的IPv4网络中IPv6子网与IPv4网络之间的通信,与只支持单协议栈的IPv4子网(IPv4协议栈)和IPv6子网(IPv6协议栈)之间的互通等。
以上的实施例说明仅为本发明的较佳实施例说明,本领域技术人员可依据本发明的上述实施例说明而作出其它种种等效的替换及修改。然而这些依据本发明实施例所作的种种等效替换及修改,属于本发明的发明精神及由权利要求所界定的专利范围内。

Claims (10)

1. 基于NAT-PT的DNS应用层网关的实现方法,用于处理IPv4网络和IPv6网络之间DNS报文的转换,其特征在于,所述方法包括:
a.DNS头处理步骤,重新计算DNS报文的资源记录数;
b.查询问题域处理步骤,包括:
查询类型转换步骤,将所述查询问题域中,对应于IPv4域/IPv6域的查询类型分别转换为对应于IPv6域/IPv4域的查询类型;以及
地址映射步骤,将所述查询问题域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址;
c.回答域处理步骤,包括:
资源类型转换步骤,将所述回答域中对应于IPv4域/IPv6域的资源类型分别转换为对应于IPv6域/IPv4域的资源类型;以及
地址映射步骤,将所述回答域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址;
d.授权域处理步骤,记录所述授权域中第一个NS或MX中资源数据的值;以及
e.额外信息域处理步骤,包括:
记录第一个匹配上述NS或MX中的资源数据值的A或AAAA资源记录;
资源类型转换步骤,将对应于IPv4域/IPv6域的资源类型转换为对应于IPv6域/IPv4域的资源类型;以及
地址映射步骤,将所述额外信息域中的IPv4/IPv6地址分别映射成IPv6/IPv4地址。
2. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述DNS头处理步骤中,重新计算DNS报文的资源记录数包括,对于回答域中第一个资源记录类型是CNAME的资源记录数记为2,对于第一个资源记录数不是CNAME的资源记录数记为1。
3. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述查询问题域处理步骤中,查询类型转换步骤包括:
对来自IPv4域的A或AAAA查询,将查询类型均转换为AAAA;
对于来自IPv6域的AAAA查询,将DNS报文复制为两个,其中一个DNS报文查询类型仍然为AAAA,另一个DNS报文查询类型转换为A;
对于来自IPv6域的A查询,视为错误而将其丢弃。
4. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述查询问题域处理步骤中,地址映射步骤包括:
对于来自IPv4域的PTR查询,在一地址映射表中查找其查询名中的IPv4地址所对应的IPv6地址,若不命中,则给IPv4源端发送出错报文,若命中,则将映射后的地址回填入所述查询名中;
对于来自IPv6域的PTR查询,在所述地址映射表中查找其查询名中的IPv6地址所对应的IPv4地址,若不命中,则将其丢弃,若命中,则将映射后的地址回填入所述查询名中。
5. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述回答域处理步骤中,
若第一条资源记录是CNAME类型,则复制第一条资源记录,接着对第二条资源记录执行所述资源类型转换步骤和地址映射步骤,并忽略其他资源记录;
若第一条资源记录不是CNAME类型,则对第一条记录执行所述资源类型转换步骤和地址映射步骤,并忽略其他资源记录。
6. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述回答域处理步骤中,资源类型转换步骤包括:
对来自IPv4域的A或AAAA回答,将资源类型均转换为AAAA;
对于来自IPv6域的AAAA回答,将资源类型转换为A;
对于来自IPv6域的A回答,将DNS报文则丢弃。
7. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述回答域处理步骤中,所述地址映射步骤包括:
对来自IPv4域的A回答,在一地址映射表中查找其资源数据中的IPv4地址所对应的IPv6地址,将映射后的地址回填入所述资源数据中,并修改资源数据长度;
对于来自IPv4域的PTR回答,在一地址映射表中查找其域名中IPv4地址所对应的IPv6地址,并将映射后的地址回填入所述域名中;
对来自IPv6域的AAAA回答,在一地址映射表中查找其资源数据中的IPv6地址所对应的IPv4地址,若不命中,则为所述IPv6地址分配一IPv4地址,并在地址映射表中创建IPv6-IPv4映射;以及将映射后的地址回填入所述资源数据中,并修改资源数据长度;以及
对于来自IPv6域的PTR回答,在一地址映射表中查找其域名中的IPv6地址所对应的IPv4地址,若不命中,则将其丢弃,若命中,则将映射后的地址回填入所述域名中。
8. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述额外信息域处理步骤中,所述资源类型转换步骤包括:
对来自IPv4域的A或AAAA记录,将资源类型均转换为AAAA;
对于来自IPv6域的AAAA记录,将资源类型转换为A;
对于来自IPv6域的A记录,将DNS报文则丢弃。
9. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,所述额外信息域处理步骤中,所述地址映射步骤包括:
对来自IPv4域的A记录,在一地址映射表中查找其资源数据中的IPv4地址所对应的IPv6地址,将映射后的地址回填入所述资源数据中,并修改资源数据长度;
对来自IPv6域的AAAA记录,在一地址映射表中查找其资源数据中的I Pv6地址所对应的IPv4地址,若不命中,则为所述IPv6地址分配一IPv4地址,并在地址映射表中创建IPv6-IPv4映射;以及将映射后的地址回填入所述资源数据中,并修改资源数据长度;
对来自IPv6域的A记录,视为错误而将其丢弃。
10. 如权利要求1所述的基于NAT-PT的DNS应用层网关的实现方法,其特征在于,只处理问题数为1的DNS查询报文。
CN2007100378617A 2007-03-07 2007-03-07 基于nat-pt的dns应用层网关的实现方法 Expired - Fee Related CN101262410B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2007100378617A CN101262410B (zh) 2007-03-07 2007-03-07 基于nat-pt的dns应用层网关的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2007100378617A CN101262410B (zh) 2007-03-07 2007-03-07 基于nat-pt的dns应用层网关的实现方法

Publications (2)

Publication Number Publication Date
CN101262410A true CN101262410A (zh) 2008-09-10
CN101262410B CN101262410B (zh) 2010-12-08

Family

ID=39962628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007100378617A Expired - Fee Related CN101262410B (zh) 2007-03-07 2007-03-07 基于nat-pt的dns应用层网关的实现方法

Country Status (1)

Country Link
CN (1) CN101262410B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102347993A (zh) * 2010-07-28 2012-02-08 中国移动通信集团公司 一种网络通信的方法和设备
CN103428303A (zh) * 2012-05-22 2013-12-04 中兴通讯股份有限公司 IPv6主机访问IPv4服务器的方法及系统
CN104410725A (zh) * 2014-09-17 2015-03-11 广州杰赛科技股份有限公司 Gpu的处理方法、系统以及基于gpu的dns解析方法和系统
CN105100293A (zh) * 2014-05-19 2015-11-25 中兴通讯股份有限公司 地址转换方法、装置及数据交互方法、系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153502A1 (en) * 2003-02-04 2004-08-05 Luliang Jiang Enhanced DNS server
CN100474858C (zh) * 2004-09-27 2009-04-01 上海贝尔阿尔卡特股份有限公司 域名解析方法、域名服务器及域名系统
CN100411381C (zh) * 2005-04-28 2008-08-13 华为技术有限公司 跨不同自治系统的混合网络vpn站点间的通信方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102347993A (zh) * 2010-07-28 2012-02-08 中国移动通信集团公司 一种网络通信的方法和设备
CN102347993B (zh) * 2010-07-28 2014-03-26 中国移动通信集团公司 一种网络通信的方法和设备
CN103428303A (zh) * 2012-05-22 2013-12-04 中兴通讯股份有限公司 IPv6主机访问IPv4服务器的方法及系统
CN105100293A (zh) * 2014-05-19 2015-11-25 中兴通讯股份有限公司 地址转换方法、装置及数据交互方法、系统
CN104410725A (zh) * 2014-09-17 2015-03-11 广州杰赛科技股份有限公司 Gpu的处理方法、系统以及基于gpu的dns解析方法和系统

Also Published As

Publication number Publication date
CN101262410B (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
US7158526B2 (en) Packet communication method and apparatus and a recording medium storing a packet communication program
CN101087296B (zh) 利用网络处理器实现IPv4/IPv6网络协议转换的方法
CN1965515B (zh) 用于使IPv4私有网络中的节点经由IPv6接入网络到达IPv4公共网络节点的布置
US7639686B2 (en) Access network clusterhead for providing local mobility management of a roaming IPv4 node
US7701952B2 (en) Packet communication method and apparatus and a recording medium storing a packet communication program
US7302496B1 (en) Arrangement for discovering a localized IP address realm between two endpoints
CN102132544B (zh) 用于在因特网协议版本6域中接收数据分组的方法、以及相关联的装置和住宅网关
US20070147421A1 (en) ISATAP router for tunneling packets and method thereof
CN1711743A (zh) 在数据网络中允许远程访问的方法和设备
CN102904976B (zh) 基于前缀分配的扩展双重无状态IPv4-IPv6翻译方法
US20100046517A1 (en) Address translator using address translation information in header area on network layer level and a method therefor
CN101795303A (zh) 能够连接到具有本地地址域的网络的方法及系统
CN102934410A (zh) 用私用ipv4可达性增强ds-lite
CN101325580B (zh) 基于nat-pt的ftp应用层网关的实现方法
US20050010668A1 (en) Traversable network address translation with hierarchical internet addressing architecture
CN100459572C (zh) 由IPv4到IPv6网络的基于端口的报文转换实现方法
CN101262410B (zh) 基于nat-pt的dns应用层网关的实现方法
CN100518147C (zh) 一种基于双向隧道的实现跨异构网络移动通信的方法
US7266119B2 (en) NAT system for supporting mobile IP in private networks and its method
CN103888554B (zh) IPv4与IPv6互通的域名解析方法和系统
JP3915230B2 (ja) パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体
CN112261054B (zh) 基于应用业务服务质量的Ethernet/IP与IPv6协议转换系统及方法
US9667592B2 (en) Efficient utilization of internet protocol addresses
JP4670979B2 (ja) パケット生成方法およびその機能を有する情報処理装置並びにパケット生成プログラムを記録した記録媒体
CN102684972B (zh) 一种兼容IPv4地址的通信方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101208

Termination date: 20150307

EXPY Termination of patent right or utility model