互联网域名系统的设计是同网络的传输体制无关的。所以,为IPv6网络建立的域名系统可以和传统的IPv4域名系统结合在一起,而不需要另外建立一套独立的IPv6域名系统。现在Internet上最通用的域名服务软件BIND版本9已经实现了对IPv6地址的支持,所以要解决IPv6地址和主机名之间的映射就很容易实现了。
要支持IPv6, 域名服务系统需要支持以下的新特性:
解析IPv6地址的类型(type),即AAAA和A6类型
为IPv6地址的逆向解析提供的反向域,即ip6.int.
识别上述新特性的域名服务器就可以为IPv6的地址-名字解析提供服务。
(1). 正向解析
IPv4的地址正向解析的资源记录是"A",而IPv6地址的正向解析目前有两种资源记录,即"AAAA"和"A6"记录。其中"AAAA"较早提出,它是对IPv4协议"A""录的简单扩展,由于IP地址由32位扩展到128位,扩大了4倍,所以资源记录由"A"扩大成4个"A"。但"AAAA"用来表示域名和IPv6地址的对应关系,并不支持地址的层次性。
AAAA资源记录类型用来将一个合法域名解析为IPv6地址,与IPv4所用的A资源记录类型相兼容。之所以给这新资源记录类型取名为AAAA,是因为128位的IPv6地址正好是32位IPv4地址的四倍,下面是一条AAAA资源记录实例:
host1.microsoft.com IN AAAA FEC0::2AA:FF:FE3F:2A1C
"A6"是在RFC2874基础上提出,它是把一个IPv6地址与多个"A6"记录建立联系,每个"A6"记录都只包含了IPv6地址的一部分,结合后拼装成一个完整的IPv6地址。"A6"记录支持一些"AAAA"所不具备的新特性,如地址聚集,地址更改(Renumber)等。
"A6"记录根据可聚集全局单播地址中的TLA、NLA和SLA项目的分配层次把128位的IPv6的地址分解成为若干级的地址前缀和地址后缀,构成了一个地址链。每个地址前缀和地址后缀都是地址链上的一环,一个完整的地址链就组成一个IPv6地址。这种思想符合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"一样,二进制串格式也支持地址层次特性。
IP6.INT域用于为IPv6提供逆向地址到主机名解析服务。逆向检索也称为指针检索,根据IP地址来确定主机名。为了给逆向检索创建名字空间,在IP6.INT域中,IPv6地址中所有的32位十六进制数字都逆序分隔表示。例如,为地址FEC0::2AA:FF:FE3F:2A1C(完全表达式为:FEC0:0000:0000:0000:02AA:00FF:FE3F:2A1C)查找域名时,在IP6.INT域中是:C.1.A.2.F.3.E.F.F.F.0.0.A.A.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.C.E.F.IP6.INT.
总之,以地址链形式表示的IPv6地址体现了地址的层次性,支持地址聚集和地址更改。但是,由于一次完整的地址解析要分成多个步骤进行,需要按照地址的分配层次关系到不同的DNS服务器进行查询,并且所有的查询都成功才能得到完整的解析结果。这势必会延长解析时间,出错的机会也增加。因此,在技术方面IPv6协议需要进一步改进DNS地址链功能,提高域名解析的速度才能为用户提供理想的服务。