APP下载

IVI过渡方案中域名解析问题的研究

2010-03-24王相林陈国峰

关键词:双栈网关报文

王相林,陈国峰

(杭州电子科技大学计算机学院,浙江杭州310018)

0 引 言

从IPv4到IPv6的过渡已成必然趋势。在过渡期间,为了保证IPv4与IPv6之间的互通性,IETF提出了一系列相关的过渡机制,最新的研究成果就包括基于SIIT(the stateless IP/ICMP translation,无状态IP/ICMP翻译技术)的IVI无状态地址翻译机制[1-3]。在IVI过渡方案中DNS的设计与部署十分重要,但在实际部署过程中会暴露出IVI6(i)主机无法访问双栈服务器及IPv6环境中的双栈节点对IPv4的A类型DNS查询报文得不到正确回复的问题。该文主要通过分析现有IVI过渡方案中域名解析模块[4、5]如何给IPv6网络内节点返回一个所需的IPv4服务器对应的IPv6地址,并针对该通信过程中暴露出来的有关域名解析方面的问题,提出通过对域名解析的响应报文类型设置选择规则及添加高速缓存的方法来加以解决。

1 IVI过渡方案中现有域名解析模块的部署方案

IVI过渡方案的主要思路是从空间巨大的全球IPv6地址(IPG6)和全球IPv4地址(IPG4)中各选取一部分地址一一映射,这些地址分别被称为IVI6(i)及IVI4(i)地址,用i来区分这些地址的不同提供商。随着过渡的不断深化,当IVI4(i)范围逐渐扩大到整个全球IPv4地址空间时,则过渡完成。

目前IVI过渡方案中的域名解析模块是根据DNS64[6、7]的原理,引入了IVIDNS64域名解析扩展机制。方案对每个IVI翻译器分别部署一个IVIDNS64,此时IVIDNS64作为DNS代理[8]来实现。在IPv6主机解析一个纯IPv4域名的过程中,IVIDNS64在转发AAAA类型(IPv6协议的记录类型)查询的同时生成A类型(IPv4协议的记录类型)查询,并将返回的响应报文中的IPv4地址映射到IVIG6(i)中,合成AAAA类型记录返回给IPv6主机。

以IPv6向IPv4发起并建立连接的流程为例,如图1所示,说明这一过程(这种情况不考虑IPv6子网中部署DNS的情况,所有的域名由IPv4 DNS来解析,DNS只提供单栈接入):

步骤分析:

(1)IPv6节点将AAAA类型DNS查询报文发送到IVIDNS64;

(2)IVIDNS64收到查询报文后查找本地的静态域名解析表,如果存在请求的信息,则直接将AAAA类型的DNS应答报文发送到发起请求的IPv6主机;

(3)如果IVIDNS64中没有相应记录,IVIDNS就向其配置的IPv4域中的IPv4 DNS服务器转发AAAA查询报文并同时发起A查询;

(4)IPv4DNS收到查询报文后查找自己的记录,并将这个地址填入DNS响应报文的回答字段,此时DNS报文的类型为A,然后回复给IVIDNS64;

(5)IVIDNS64收到响应报文后,通过IVI网关将DNS报文回答报文的目的地址修改成IVI映射后的IPv6地址;

(6)然后IVIDNS64将记录类型从A修改为AAAA,完成后将响应报文送返到发起请求的IPv6主机。

至此,IVIDNS64的工作结束。IPv6结点现在知道要访问的节点地址为目标IPv4地址在IPv6网络中的镜像地址,即经IVI网关映射后的IPv6地址。最后源IPv6主机就可以发起连接,报文经IVI网关进行源地址和目的地址映射后,完成通信。

图1 现在域名解析模块运行机制

2 IVI过渡方案中域名解析模块存在的问题分析

2.1 IVIDNS64与双栈服务器通信产生的响应报文类型选择问题

当IPv6网络侧主机发出的AAAA类型查询后,对于IPv4网络中的双栈服务器,既有A记录,又有AAAA记录,根据这种机制,会同时返回原始查询的AAAA类型和经过转化的A查询记录。但其中返回的原始AAAA类型所对应的IPv6地址对于只部署IVI翻译器的子网来说,并不可用。因为发起查询的IPv6主机并不能通过这个地址,访问到目标主机,所以IVIDNS64不用考虑获取这个查询,这样就产生了对响应报文类型进行正确选择的问题。

2.2 IVIDNS64对特殊网络环境下的查询报文不能给出正确回复

在一些特殊情况下IVI网关内的IPv6环境也可能不是纯IPv6网络,即可能存在双栈节点,路由器跟DNS服务器同时也支持IPv4协议,此时IVI网关对于也使用IPv4协议的节点来说相当于一个普通网关,不起地址转换的作用。在IPv6侧一个与IVI网关连接的双栈节点上,当某个应用程序希望得到一个域名对应的IPv4地址,就会生成一个A类型的查询报文以获得地址,这个查询报文会通过网关转发,并在IPv4 DNS服务器上进行查询后返回响应报文,由于IVIDNS64是无状态运行的,在IVI网关IPv4一侧没有关于包含A查询的IPv6查询报文记录,其默认操作就是将响应从A修改成AAAA类型,从而使发起请求的主机无法得到正确类型的回复。

3 针对现有域名解析模块存在问题的改进

3.1 对域名解析的响应报文类型建立选择的规则

对于IVIDNS64与双栈服务器通信产生的响应报文类型选择问题,在IVI过渡方案中,当IVI6(i)主机的应用程序发送AAAA查询后,只有当IVIDNS64程序最终正确获取域名对应的服务器的IPv4地址所映射到IVIG6(i)的IPv6地址,才能完成通信任务。所以,对于双栈服务器原始的AAAA查询记录,IVIDNS64实际不用获取这个查询。具体的通信步骤设计如下:

(1)IVI6(i)主机的应用程序向已配置的IVIDNS64发起AAAA类型查询,IVIDNS64先查找本地记录,如存在有效记录,则直接回复,不向外转发查询;

(2)将集成IVIDNS64模块的主机网卡开启混杂模式,抓取IPv6主机应用程序发出的AAAA类型的查询报文,再生成A类型查询,然后发送AAAA查询和A查询到外部的DNS,同时设置定时器,再截获这一时间内返回的DNS回复报文;

(3)IPv4网络配置的DNS服务器收到域名查询请求,查找数据库中的有效记录,完成后发送经解析后的应答报文;

(4)IVIDNS64模块截获设定时间内返回的DNS回复报文,此时对回复报文本方案设置了如下选择规则。

1)如果在定时器所指定时间内,IVIDNS64只获得正确的AAAA类型回复,则直接将该回复转发到发起请求的IPv6主机。

2)如果在定时器所指定时间内,只获得正确的A类型回复,则先由IVIDNS64将其从A类型改为AAAA类型,并根据IVI网关已配置的地址前缀,修改DNS报文回答区RDATA字段,将IPv4地址替换为映射后的IVIG6(i)地址,然后将这一修改过的AAAA类型回复返给发起请求的IVI6(i)主机应用程序。

3)如果IVIDNS64同时获得了正确的AAAA类型回复和A类型回复,则将A类型回复按照b)中的处理方式,然后将修改后的回复返回到应用程序;

(5)应用程序收到回复报文后,根据返回的IVIG6(i)地址作为目的地址发起通信连接。

3.2 设计一个高速缓存来记录通过的查询报文类型

针对IVIDNS64对特殊网络环境下的查询报文不能给出正确回复的问题,新改进的方案是在IVI DNS64模块内部建立一个高速缓存区,用来记录所有通过的查询报文的类型。主要思路如下:当通过的查询报文类型为A,则在高速缓存中增加一个相应的条目用来记录,这个条目会一直保留到域名解析过程结束为止(若查询类型为AAAA,也进行相同处理);当响应报文返回时,IVIDNS64就将其与高速缓存区中暂存的查询报文记录进行比对,如果发现缓存区中对应的查询记录也是A类型,那么IVIDNS64就不再对响应报文进行修改,而仅由网关转发回发起请求的查询节点;如果缓存中查询记录是AAAA类型,则根据原有的转换原则,对响应报文进行修改,形成新的AAAA类型响应报文;响应报文转换完成发出后,IVI DNS64缓存区中相应的记录将被删除。

3.3 新方案部署后的通信流程

新方案部署后,原有方案中通信流程将不再适用。此时新方案中域名解析模块处理流程如图2所示:

图2 新方案域名解析模块处理流程图

4 结束语

IVI过渡方案是现阶段连接两种协议

网络的最新机制,但目前关于IVI过渡方案的域名解析相关研究还很少。如果域名解析模块不完善会使得IVI过渡方案在推广及应用中受到不利影响。该文对现有IVI过渡方案的域名解析模块存在的问题进行了分析,并对具体的缺陷提出了相关的改进方案,今后还要对其应用在实际的网络中进行实验,并不断进行测试,使其达到预期的效果。此外,对于主流操作系统,如Windows2000/xp,Solaris8.0等不支持IPv6解析的问题,后续的工作还可以结合这个展开。该改进方案对完善IVI过渡技术域名解析模块的布署有很大的推进作用,同时在一定程度上可以推进IPv4网向IPv6网过渡。

[1] Nordmark E.Stateless IP/ICMP Translation Algorithm(SIIT)[S].RFC 2765,February,2000.

[2] Li X,Bao C,Chen M,etal.The CERNET IVITranslation Design and Dep loyment for the IPv4/IPv6 Coexistence and Transition[R].Beijing:Tsinghua University,2010.

[3] Zhu Yuncheng,Chen Maoke,Zhang Hong,et al.StatelessMappingand Multip lexingof IPv4Addresses in Migration to IPv6 Internet[C].New Orleans:Global Telecommunications Con ference,2008:1-5.

[4] 王相林.IPv6核心技术[M].北京:科学出版社,2009:106-109.

[5] 韩瑾.IPv4/IPv6共存网络域名系统的研究[D].天津:天津大学,2007.

[6] Bagnulo M,Sullivan A,Matthews P,et al.DNS64:DNS extensions for Network Address Translation from IPv6 Clients to IPv4 Servers[R].Madrid:UC 3M,2009.

[7] Li X,Bao C.DNS46 for the IPv4/IPv6 Stateless Translator[R].Beijing:Tsinghua University,2010.

[8] 武浦军,余镇危,张英,等.IPv6 DNS代理软件的设计与实现[J].计算机工程,2005,31(11):211-213.

猜你喜欢

双栈网关报文
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
浅析IPv6网络演进及其部署方案
ATS与列车通信报文分析
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计
IPv4到IPv6演进技术及策略探讨