域名结构
在了解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),如果我们把域名空间结构中的根比作国家,*域名比作省级行政单位,二级域名看作是市级单位、三级、四级看作是镇和乡,那么自然地,我们会想到管辖国家的是总理,管辖省级单位的是省长,下面还有市长、镇长等等。
假设一个域http://abc.com的层次结构如图分布。
如果采用(a)的方式,那么整个从abc这个节点以下的子树成为一个区,它们由一个(通常是1组)域名服务器管理,就好像http://abc.com是一个北京市,下面所有事务都有北京市长说了算;
如果采用(b)的方式,那么abc节点以下的字数分成了两个区:x节点以下的部分的子树和y节点以下的子树,这两棵子树分别有x和y对应的域名服务器管理,就好像http://abc.com是一个福建省,x是福州市,y是厦门市,福建省的省长只管理福州市和厦门市的市长,但不会直接管理福州市和厦门市以下的单位。福州市和厦门市以下的单位分别给福州市市长和厦门市市长来管辖。
像这种把一个域中的一部分子树分给另一个域名服务器管辖,叫做“授权委托”,做了“授权委托”以后的域名服务器很显然管理的范围就小了,它的子节点由被委任的下一级域名服务器管理了。
因特网上的域名结构呈树状分布,因此DNS服务器也是对应的树形结构,每一个DNS服务器能够提供部分域名(它管辖的域名)到IP地址的解析。