一、DNS服务器的功能
DNS作用:在IP地址和主机名之间建立连接,通俗的说就是给互联网上的主机取名字。
DNS即域名系统本质上是由各种各样的服务器来完成相关功能的,这些服务器成为DNS服务器,DNS服务器提供了四个重要的功能。
(1)主机名到IP地址的转换;
(2)DNS可以提供主机别名这样的服务,也就是说一个主机可以有一个规范主机名和多个主机别名,例如现实生活中给别人起外号一样。
(3)可以为邮件服务器取别名。
(4)可以提供负载分配的功能:即可实现冗余服务器,一个IP地址集合可以对应于用一个规范主机名。这在如今互联网飞速发展的情况下非常有用。例如很多大型网站域名是统一的,例如www.163.com,但是后台肯定是一个庞大的服务器集群为域名提供相关服务。这时怎么做负载分配呢?DNS这时可以起到很重要的作用。
二、DNS特点
(1)分布式数据库:一个由分层DNS服务器实现的分布式数据库。
(2)应用层协议:DNS服务器实现域名转换(域名/地址转换)。也就是说在DNS里面涉及到了IP地址,这个是网络层的构成元素,但是DNS是在应用层实现转换的,所以DNS是一个应用层协议。
三、不使用集中式DNS的原因
为什么不使用集中式的DNS呢?有以下几个原因
(1)如果使用集中式的DNS可能会出现单点故障,也就是说如果中央服务器垮了那么DNS就崩溃了。
(2)巨大的访问量也会使集中式的DNS不堪重负。
(3)对集中式的数据库而言,远距离的访问会很慢,近距离访问可能就会比较快,这种情况下从最优化的角度来说不太合理。
(4)集中式的DNS维护比较麻烦
(5)扩展起来也不方便。
四、分布式、层次数据库
下图是分布式、层次数据库的架构:
在整个DNS系统里面我们是按照分层的方式来组织的。
最上面的一层叫做根域名服务器,root服务器下面有若干顶级服务器,这些服务器负责某一类域名的管理。顶级域服务器的下层是若干权威域DNS服务器。这些权威DNS服务器就负责某一个顶级域名的解析。例如google.com负责所有google.com域名的解析。在权威DNS服务器下面还可以设置更下层的域名解析服务器。例如google.com下面还有很多分公司,每个公司的都有自己的域名解析服务器。
下面举一个例子:
在这样一个分布、层次化的数据库里客户机如何确定主机名www.amazon.com的IP地址呢?
(1)客户机查询根服务器的得到com DNS服务器的IP地址;
(2)客户机查询com DNS服务器得到amazon.com DNS服务器的IP地址;
(3)客户机查询amazon.com DNS服务器得到www.amazon.com的IP地址。
1、根域名服务器
刚才我们讲到所有的DNS查询第一步是去查询根域名服务器,这里我们就对根域名服务器做一个介绍。
迄今为止共有13个根域名服务器,13台根域名服务器分布在世界各地,这些服务器一般都是大型的集群,对外我们可以看成是一台服务器,另外在全世界还有这些服务器的多个镜像存在。
由于镜像服务器的存在,所以在很多时候我们的客户机并不一定要去访问根域名服务器。一般情况下只需访问邻近的根域名服务器的镜像就可以。
2、顶级域服务器
顶级域服务器构成体系:互联网的设计者把顶级域名分为两类:
(1)用途域名:com、org、net、edu等。
(2)国家顶级域名:uk、fr、ip、cn等
3、权威DNS服务器
权威DNS域名服务器是真正的负责某一具体域名的解析工作。
在因特网上具有公共可访问主机(例如Web服务器和邮件服务器)的每个组织机构必须提供公共可访问的DNS记录,这些记录将这些主机的名字映射为IP地址。组织机构的权威DNS服务器负责保存这些DNS记录。
多数大学和公司维护它们基本权威DNS服务器。
4、本地DNS服务器
在上述DNS服务器的下方还有一个本地服务器也叫默认域名服务器,本地服务器严格来说不属于DNS体系的层次结构。
每个ISP(例如居民ISP、公司、大学)都由一个本地DNS;
每台主机需要配置一个本地DNS服务器才能正常上网。当主机发出DNS请求时改请求被发往本地DNS服务器。
注意:本地DNS服务器起着代理的作用,转发请求到层次结构中。