在上篇内容里,主要介绍DNS的概念与诞生发展。接下来的篇幅,将重点解释DNS伺服器,以及伺服器是以怎样的原理执行DNS的工作流程。

域名结构

在了解DNS伺服器之前,需要先了解网际网路上的域名空间结构,具体如下图所示:

顶级域名是域名的最后一个部分,即是域名最后一点之后的字母,例如在http://example.com这个域名中,顶级域是.com(或.COM),大小写视为相同。

二级域名是域名的倒数第二个部分,例如在http://example.com这个域名中,二级域名是example。以此类推。

域名伺服器

网际网路上的DNS伺服器按照层次安排,根据不同层次的域名伺服器所起的作用,可以把域名伺服器分为4种不同的类型。

【根域名伺服器】

最高层次的域名伺服器(就好像国家总理一样),也是最重要的域名伺服器。全球有13个根域名伺服器名称,分别是(它们是按照字母排列命名的):

  • a.root-servers.net.
  • b.root-servers.net.
  • c.root-servers.net.
  • d.root-servers.net.
  • e.root-servers.net.
  • f.root-servers.net.
  • g.root-servers.net.
  • h.root-servers.net.
  • i.root-servers.net.
  • j.root-servers.net.
  • k.root-servers.net.
  • l.root-servers.net.
  • m.root-servers.net.

当然,并不是一个名字对应一台物理伺服器的地址,一个根伺服器的名字可以作为入口对应一组伺服器集群来提供域名解析服务。

【顶级域名伺服器】

就好像国家总理下面的各个省长,管辖省级单位。在DNS中,它们负责管理在该顶级域名伺服器注册的下一级域名(二级域名)。所有顶级域名伺服器的名称和IP地址是在根伺服器注册的,也就是说,根域名伺服器知道所有的顶级域名伺服器的名称和IP地址。

【 权威域名伺服器】

负责一个区的域名伺服器,就好像省长以下的那些市长、镇长、乡长等行政官。顶级域名伺服器也可以算作是权威域名伺服器,只不过由于其特殊性,我们专门把它划分为一类。因此权威域名伺服器通常是指顶级域名以下的管理二级、三级、四级等域名的伺服器。

上面三种伺服器的关系可以用这张图表示:

【本地域名伺服器】

这类伺服器不属于上面的层次结构,当一个主机(个人电脑)发出DNS请求时,查询请求就被发送到本地域名伺服器,本地域名伺服器负责回答这个查询,或者代替主机向域名空间中不同层次的权威域名伺服器查询,再把查询的结果返回给主机。

下面的图示表示了一个域名的解析过程以及各个类型的域名伺服器所处的位置。

为什么要使用DNS伺服器

域名伺服器提供了从域名到IP地址的解析服务,网际网路上的域名数量极大,不可能所有的域名信息都保存在一个域名伺服器中,也不能上述每个节点都采用一个域名伺服器。在实际的公网DNS系统中,域名伺服器采用划分区的方式来管理。

一个伺服器所负责管辖的范围叫做区(zone),如果我们把域名空间结构中的根比作国家,顶级域名比作省级行政单位,二级域名看作是市级单位、三级、四级看作是镇和乡,那么自然地,我们会想到管辖国家的是总理,管辖省级单位的是省长,下面还有市长、镇长等等。

假设一个域abc.com的层次结构如图分布。

如果采用(a)的方式,那么整个从abc这个节点以下的子树成为一个区,它们由一个(通常是1组)域名伺服器管理,就好像abc.com是一个北京市,下面所有事务都有北京市长说了算;

如果采用(b)的方式,那么abc节点以下的字数分成了两个区:x节点以下的部分的子树和y节点以下的子树,这两棵子树分别有x和y对应的域名伺服器管理,就好像abc.com是一个福建省,x是福州市,y是厦门市,福建省的省长只管理福州市和厦门市的市长,但不会直接管理福州市和厦门市以下的单位。福州市和厦门市以下的单位分别给福州市市长和厦门市市长来管辖。

像这种把一个域中的一部分子树分给另一个域名伺服器管辖,叫做「授权委托」,做了「授权委托」以后的域名伺服器很显然管理的范围就小了,它的子节点由被委任的下一级域名伺服器管理了。

网际网路上的域名结构呈树状分布,因此DNS伺服器也是对应的树形结构,每一个DNS伺服器能够提供部分域名(它管辖的域名)到IP地址的解析。


推荐阅读:
查看原文 >>
相关文章