剖析IPv6时代的域名系统( 三 )


其次,用户在改变ISP时,要随ISP的改变而改变其拥有的IPv6地址 。假如手工修改用户子网中所有在DNS中注册的地址,是一件非常烦琐的事情 。而在用“A6”记录表示的地址链中,只要改变地址前缀对应的ISP名字即可,这样大大减少了DNS中资源记录的修改,并且在地址分配层次中越靠近底层,所需要改动的越少 。
2. 反向解析
IPv6反向解析的记录和IPv4一样,是“PTR”,但地址表示形式有两种 。一种是用 “.”分隔的半字节16进制数字格式(Nibble Format),低位地址在前,高位地址在后,域后缀是“IP6.INT.” 。另一种是二进制串(Bit-string)格式,以“[”开头,16进制地址(无分隔符,高位在前,低位在后)居中,地址后加“]”,域后缀是“IP6.ARPA.” 。半字节16进制数字格式与“AAAA”对应,是对IPv4的简单扩展 。二进制串格式与“A6”记录对应,地址也象“A6”一样,可以分成多级地址链表示,每一级的授权用“DNAME”记录 。和“A6”一样,二进制串格式也支持地址层次特性 。
五、IPv6中的即插即用与DNS
IPv6协议支持地址自动配置,这是一种即插即用的机制 。IPv6支持无状态地址自动配置和有状态地址自动配置两种方式 。
在无状态地址自动配置方式下,需要配置地址的网络接口先使用邻居发现机制获得一个链路本地地址 。网络接口得到这个链路本地地址之后,再接受路由器宣告的地址前缀,结合接口标识得到一个全局地址 。而有状态地址自动配置的方式,如DHCP(动态主机配置协议),需要一个DHCP服务器,通过客户机/服务器模式从DHCP服务器处得到地址配置的信息 。
IPv6节点通过地址自动配置得到IPv6地址和网关地址 。但是,地址自动配置中不包括DNS服务器的自动配置,如何自动发现提供解析服务的DNS服务器也是一个需要解决的问题 。正在研究的DNS服务器的自动发现的解决方法可以分为无状态和有状态两类 。
在无状态的方式下,需要为子网内部的DNS服务器配置站点范围内的任播地址 。要进行自动配置的节点以该任播地址为目的地址发送服务器发现请求,询问DNS服务器地址、域名和搜索路径等DNS信息 。这个请求到达距离最近的DNS服务器,服务器根据请求,回答DNS服务器单播地址、域名和搜索路径等DNS信息 。节点根据服务器的应答配置本机DNS信息,以后的DNS请求就直接用单播地址发送给DNS服务器 。
在有状态的DNS服务器发现方式下,是通过类似DHCP这样的服务器把DNS服务器地址、域名和搜索路径等DNS信息告诉节点 。当然,这样做需要额外的服务器 。
六、 IPv6过渡阶段与DNS
在从IPv4到IPv6的过渡过程中,作为Internet基础架构的DNS服务也要支持这种网络协议的升级和转换 。IPv4和IPv6的DNS记录格式等方面有所不同,为了实现IPv4网络和IPv6网络之间的DNS查询和响应,可以采用应用层网关DNS-ALG结合NAT-PT的方法,在IPv4和IPv6网络之间起到一个翻译的作用 。例如,IPv4的地址域名映射使用“A”记录,而IPv6使用“AAAA”或“A6”记录 。那么,IPv4的节点发送到IPv6网络的DNS查询请求是“A”记录,DNS-ALG就把“A”改写成“AAAA”,并发送给IPv6网络中的DNS服务器 。当服务器的回答到达DNS-ALG时,DNS-ALG修改回答,把“AAAA”改为“A”,把IPv6地址改成DNS-ALG地址池中的IPv4转换地址,把这个IPv4转换地址和IPv6地址之间的映射关系通知NAT-PT,并把这个IPv4转换地址作为解析结果返回IPv4主机 。IPv4主机就以这个IPv4转换地址作为目的地址与实际的IPv6主机通过NAT-PT通信 。示意如下图 。对于采用双协议栈方式的过渡方法,在DNS服务器中同时存在“A”记录和“AAAA”(或“A6”)记录 。由于节点既可以处理IPv4协议,也可以处理IPv6协议,因此无需类似DNS-ALG的转换设备 。无论DNS服务器回答“A”记录还是“AAAA”记录,都可以进行通信 。

推荐阅读