一、域名系统概述

域名系统DNS是互联网使用的命名系统,用来便于人们使用的机器名字转换为ip地址。使用层次结构和分布式结构来定义DNS。
DNS在区域传输时使用TCP协议,其余使用UDP协议(如解析域名的时候)。

二、域名结构

早期的互联网使用了非等级的名字空间,其优点是名字简短。但当互联网人数急剧增加时,这种方式管理起来是非常困难的。因此互联网后来就采用层次树状结构的命名方式。
采用这种方式,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名。这里的是名字空间中一个可被管理的划分。是可划分的,可以形成顶级域、二级域、三级域,等等。
域名系统DNS知识总结

三、域名服务器

如果采用上述的树状结构,每一个节点都采用一个域名服务器,这样会使得域名服务器的数量太多,使域名服务器系统的运行效率降低。所以在DNS中,采用划分区的方法来解决。

一个服务器所负责管辖(或有权限)的范围叫做区(zone)。
各单位根据具体情况来划分自己管辖范围的区。但在一个区中的所有节点必须是能够连通的。每一个区设置相应的权限域名服务器,用来保存该区中的所有主机到域名IP地址的映射。

总之,DNS服务器的管辖范围不是以“域”为单位,而是以“区”为单位。区是DNS服务器实际管辖的范围。

区 <= 域。

下图是以上图b中abc公司划分的两个区为例,给出了DNS域名服务器树状结构图。这种DNS域名服务器树状结构图可以更准确地反映出DNS的分布式结构。图中的每一个域名服务器都能够部分域名到IP地址的解析。当某个DNS服务器不能进行域名到IP地址的转换时,它就会设法找因特网上别的域名服务器进行解析。

从下图可以看出,因特网上的DNS服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为下面四种不同的类型。
域名系统DNS知识总结
根域名服务器:最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。需要注意的是,在很多情况下,根域名服务器并不直接把待查询的域名直接解析出IP地址,而是告诉本地域名服务器下一步应当找哪一个顶级域名服务器进行查询。一般情况下都不查询根域名服务器,而是直接查询顶级域名服务器。

顶级域名服务器:负责管理在该顶级域名服务器注册的二级域名。

权限域名服务器:负责一个“区”的域名服务器。

本地域名服务器:本地服务器不属于下图的域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。

四、域名解析过程

一、主机向本地域名服务器的查询一般都是采用递归查询。

所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。

二、本地域名服务器向根域名服务器的查询的迭代查询。

迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

下图给出了这两种查询的差别
域名系统DNS知识总结

五、高速缓存

为了提高DNS查询效率,并减轻根域名服务器的负荷和减少互联网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存(有时也称为告诉缓存域名服务器)。用来存放最近查询过的域名以及从何处获得域名映射信息的记录。

在上图的查询过程中,如果在不久前有用户查询过域名葳y.abc.com的ip地址,本地域名服务器就不必向根域名服务器重新查询此ip地址,而是直接把高速缓存中存放的上次查询结果高速用户。

假定本地域名服务器的缓存中并没有y.abc.com的ip地址,而是存放着顶级域名服务器dns.com的ip地址,那么本地域名服务器也可以不向根域名服务器进行查询,而是直接向com顶级域名服务器查询请求报文。这样不仅可以大大减轻根域名服务器的负荷,与能够使互联网上的DNS查询请求和回答报文的数量大为减少。

相关文章: