域名的概念与机制
1. 介绍
本文主要介绍域名(DNS)的一些机制及实现方法,下面我们就具体看一下它的情况。
1.1. 域名的历史
产生域名的的根本动机在于管理方便,原来的主机名与IP地址映射是保存在NIC的hosts.txt文件中的,当时因为主机数量少,这个文件也不经常变化,因此其它主机几天一次从NIC的主机上下载这个文件进行主机名和IP地址映射就可以了。但随着网络的发展,这种方法变得无法使用,因为经常会有主机要求下载,对NIC的主机造成巨大的压力,而且也不能保证服务的质量。许多局域网用户希望自己管理自己的主机名,而不希望等NIC许多天把自己的主机名加在hosts.txt文件中,有些组织也希望有自己的名字空间配置。是需要一个能够简单管理的方法了。最后决定使用层次式的名字空间组织方案,以.为分隔标准不同的层次。整个名字空间以分布式数据库管理。请看阅读前不要把平常的域名和这里的域名系统混在一起。最好的方法就是把原来的观念忘记了,看现在的新东西。
1.2. DNS设计目标
DNS的设置目标影响了它的结构,主要目标是对资源有一个一致的名字空间,为了避免不同编码带来的问题,需要包括网络标记,地址,路由或其它信息作为名字的一部分。出于对实验数据的分析,看来分布式的存储条件是必须的。要在获取数据的代价和数据准确性之间有一个平衡。需要对名字所代表的资源类型有一个标记。要支持多协议访问。名字服务器操作独立于通信系统。应该能够使用不同的机器都能够使用这一系统,使用的方法可能不同,但是都要能够使用。
1.3. 基于使用的一些假设
设计系统时是基于下面假设进行的:数据库的初始大小和使用系统的主机成正比,但最后数据库的大小会和用户的数目成正比,这一过程会发生在一些资源(如邮箱和其它一些要加入到域名系统中的信息)进入系统开始;大部分的数据改变比较慢,但系统能够对改变有一些快速的适应。由相应的组织负责分布式数据库的维护。域名系统的用户可以选择自己喜欢的主机。因为其中的数据十分敏感而且重要,因此一定要保证正确性,如果因为主机或网络失败而造成无法为用户服务,用户要以原来的数据为准,不要自己胡乱想一个数据就用。在查询的时候要避免循环查询,一种方法是将未找到这一信息返回给用户,让用户再找新的主机寻找相应的地址,一种是由主机找别的主机寻找相应的地址,找到后由相应的主机返回地址给用户,这两个方法各有好处。域名系统假设所有的数据是在一个主文件中保存,这个主文件的内容分布存储于系统中的各台主机上。用户通过标准的查询程序resolover查询。主文件的标准形式使得它可以在不同主机间进行传输(利用FTP,电子邮件等方式)。本地可以使用文本编辑器进行管理,然后将这个文件传输到名字服务器那里,然后通知名字服务器的管理员加载这个文件就是了。对于resolver来说,配置好的名字服务器是地址信息的主要来源。域名系统定义了访问数据的过程和访问其它名字服务器的方法,它还定义了缓冲的大小和更新缓冲的时间等配置信息。