新闻  |   论坛  |   博客  |   在线研讨会
剖析IPv6时代的域名系统(上)
lulu888 | 2009-05-24 13:59:35    阅读:825   发布文章

IPv6协议是取代IPv4的下一代网络协议,它具有许多新的特性与功能。域名系统(DNS)是Internet的基础架构,IPv6的新特性也需要DNS的支持。因此,DNS必须升级以满足IPv6的需求。本文将从IPv6 DNS的体系结构、IPv6的地址解析、IPv6地址自动配置和即插即用、IPv4到IPv6的过渡等几方面对IPv6时代的DNS进行分析和研究。

  一、 IPv6优势简介

  域名系统(Domain Name System,简称DNS)的主要功能是通过域名和IP地址之间的相互对应关系来精确定位网络资源,即根据域名查询IP地址,反之亦然。DNS是当今Internet的基础架构,众多的网络服务都是建立在DNS体系基础之上的。业界权威人士说:“只有理解了DNS,才真正懂得了Internet。” IPv6协议是用来取代IPv4的互联网协议。相比IPv4,IPv6具有很多优点。首先,它提供了巨大的地址空间;其次,IPv6的地址结构和地址分配采用严格的层次结构,以便于进行地址聚合,从而使路由器中路由表的规模大幅度“瘦身”;再次,IPv6协议支持网络节点地址的自动配置,可以实现即插即用功能。此外,IPv6协议对主机移动性有较好的支持,适合于越来越多的互联网移动应用;IPv6协议在安全性、对多媒体流的支持性等方面都具有超过IPv4的优势。

  IPv6网络中的DNS非常重要,一些IPv6的新特性和DNS的支持密不可分。本文从IPv6 DNS的体系结构、IPv6的地址解析、IPv6地址自动配置和即插即用、IPv4到IPv6的过渡等几方面对IPv6时代的DNS进行了分析和研究。

  二、IPv6域名系统的体系结构

  IPv6网络中的DNS与IPv4的DNS在体系结构上是一致的,都采用树型结构的域名空间(如图1所示)。IPv4协议与IPv6协议的不同并不意味着需要单独应用IPv4 DNS体系和IPv6 DNS体系,相反,它们的DNS体系和域名空间必须保持一致,即IPv4和IPv6共同拥有统一的域名空间。在IPv4到IPv6的过渡阶段,域名可以同时对应于多个IPv4和IPv6的地址。随着IPv6网络的普及,IPv6地址将逐渐取代IPv4地址。

  图1的最上方是DNS树形结构中惟一的根(Root),用点号“.”表示。根的下一级称为顶级域(Top Level Domain, 简称TLD),也称一级域。顶级域的下级就是二级域(Second Level Domain, 简称SLD),二级域的下级就是三级域,依此类推。每个域都是其上级域的子域(Sub Domain),比如 “.net.cn”是“.cn”的子域,而“cnnic.net.cn”既是“net.cn”的子域,也是“.cn”的子域。

  DNS树上的每一个节点都有一个标识(Label),根节点的标识是“空”(即长度为0),其他节点的标识长度在1~63字节之间。一个节点的域名是由从这个节点到根节点的路径上的所有标识从左到右顺序排列组成的,标识之间用“.”分隔。例如http://www.ccw.net.cn/

  图 DNS域名空间的树型结构

  整个DNS域名空间划分成若干个区(Zone),见上图中的椭圆标记。每个区都有域名服务器(包括主服务器和辅服务器),以资源记录(Resource Record)的形式来存储域名信息。资源记录包括了主机名(域名)和IP地址的对应以及子域服务器的授权等多种类型。 用户在使用DNS服务时,不必细致地了解DNS域名空间的树型结构体系,只须在设置网络时指定一个DNS服务器或使用动态主机配置(DHCP)等相关技术。用户的应用程序可以通过操作系统内嵌的解析器(Resolver)访问DNS系统,查询域名相关的网络资源信息。

  三. IPv6地址及其表示方法

  IPv6地址长度为128比特,地址按照其传输类型分为3种:

  (1) 单播地址(Unicast Address):用来标识单一网络接口。目标地址是单播地址的数据包将发送给以这个地址为标识的网络接口。
  (2) 任播地址(Anycast Address):用来标识一组网络接口(通常属于不同的节点)。目标地址是任播地址的数据包发送给其中路由意义上最近的一个网络接口的地址。
  (3) 多播地址(Multicast Address):用来标识一组网络接口(通常属于不同的节点)。发送到多播地址的数据包将发送给本组中所有的网络接口。在IPv6中没有广播地址(Broadcast Address),用多播地址取代。 其中,单播地址按照地址的传输范围分为可聚合全局单播地址(Aggregatable Global Unicast Addresses)、NSAP地址、IPX层次地址、站点本地地址(Site-Local Address)和链路本地地址(link-Local Address)等。所有的网络接口至少要有一个链路本地地址,同时还可以拥有多个地址(包括单播地址,任播地址和多播地址)。

  IPv6的地址在表示和书写时,用冒号将128比特分割成8个16比特的部分,每个部分包括4位的16进制数字。例如:

   1080:0000:0000:0000:0008:0800:200C:123A

  在每个4位一组的十六进制数中,如其高位为0,则可省略。例如将0800写成800,0008写成8,0000写成0。于是1080:0000:0000:0000:0008:0800:200C:123A可缩写成1080:0:0:0:8:800:200C:123A。为了进一步简化,规范中导入了重叠冒号的规则,即用重叠冒号置换地址中的连续16比特的0。例如,将上例中的连续3个0置换后,可以表示成如下的缩写形式: 1080::8:800:200C:123A。重叠冒号的规则在一个地址中只能使用一次,例如:地址0:0:0:BA98:7654:0:0:0可缩写成::BA98:7654:0:0:0或0:0:0:BA98:7654::,但不能记成::BA98:7654::。

  另外,可以用“IPv6地址/前缀长度”来表示地址前缀。这个表示方法类似于CIDR中IPv4的地址前缀表示法。这里IPv6地址是上述任一种表示法所表示的IPv6地址,前缀长度是一个十进制值,指定该地址中最左边的用于组成前缀的比特数。例如,对32比特的前缀10800000(十六进制),可以如下表示:

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客