DNS入门
域名系统DNS
域名系统概述
域名系统DNS(Domain Name System)是互联网使用的命名系统,包括如何定义网络中机器的域名、如何划分域名服务器、如何进行域名到IP的解析等功能。
互联网的域名结构
早期的互联网使用非等级的名字空间,优点是名字简短。但当互联网上的用户数急剧增加时,用非等级的名字空间来管理一个很大的而且是经常变化的名字集合是非常困难的。因此,互联网后来就采用了层次树状结构的命名方法。采用这种命名方法,任何一个连接在互联网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。这里,“域”(domain)是名字空间中一个可被管理的划分。域还可以被划分为子域,而子域还可继续划分为子域的子域,这样就形成了顶级域、二级域、三级域等等。
从语法上讲,每一个域名都由标号(label)序列组成,而各标号之间用点隔开。例如下面的域名
就是中央电视台用于收发电子邮件的计算机(即邮件服务器)的域名,它由三个标号组成,其中标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名;
DNS规定,域名中的标号都由英文字母和数字组成,每一个标号不超过63个字符,也不区分大小写。由多个标号组成的完整域名总共不超过255个域名。
用域名树来表示互联网的域名系统是最清楚的。域名树的树叶就是单台计算机的名字,它不能再继续往下划分子域了。
域名服务器
具体实现域名系统是使用分布在各地的域名服务器。一个服务器所负责管辖的范围叫做区(zone).每一个区设置相应的权限域名服务器,用来保存该区中所有主机的域名到IP地址的映射。
图6-2是区的不同划分方法的举例.假定abc公司有下属部门x和y,部门x下面又分三个部门u,v,w,而y下面还有其他下属部门t。图6-2(a)表示abc公司只设一个分区abc.com。这时,区abc.com和域abc.com指的是同一件事。但图6-2(b)表示abc公司划分了两个区:abc.com和y.abc.com。这两个区都隶属于域abc.com,都各设置了相应的权限域名服务器。
图6-3以图6-2(b)中公司abc划分的两个区为例,给出了DNS域名服务器树状结构图。这种DNS域名服务器树状结构图可以更准确地反映出DNS的分布式结构。
从图6-3可看出,互联网上的DNS域名服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为四种不同的类型:
- 根域名服务器(root name server)
- 顶级域名服务器(TLD 服务器)
- 权限域名服务器
- 本地域名服务器
下面简单讨论一下域名的解析过程。这里要注意两点。
第一,主机向本地域名服务器的查询一般都是采用递归查询:如果主机所询问的本地域名服务器不知道被查询域名的IP地址,那么本地域名就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替该主机继续查询),而不是让该主机自己进行下一步的查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
第二,本地域名服务器向根域名服务器的查询通常是采用迭代查询。迭代查询的特点是这样的:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询(而不是替本地域名服务器进行后续的查询)。
图6-5用例子说明了这两种查询的区别。