此篇主要介绍DNS的概念、DNS层次体系、服务器端的解析方式。

 
DNS 是域名系统 (Domain Name System) 的缩写,机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
其实,域名的最终指向是IP。
DNS:Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的IP地址,这一命名的方法或这样管理域名的系统叫做域名管理系统。
简单的说DNS的作用就是,将域名翻译为ip的过程,就是dns解析。
 
DNS名称的解析方法
主要有两种:一是通过HOSTS文件解析,二是通过DNS服务器解析。
1.HOSTS文件
这是最初的一种查询方式,它是由人工进行输入、删除、修改所有DNS名称与IP地址对应数据。显然网络较大时是不适用的。
WIN2003中,HOSTS文件位于%SYSTEMROOT%System32DriversEtc目录中。是一个纯文本文件
如下图所示就是一个Hosts文件的例子,我们在图中可以很清楚地看到Hosts文件把www.baidu.com解析为119.75.213.61
 
2.DNS服务器
DNS的设计要求使用分布式结构,既可以允许主机分散管理数据,同时数据又可以被整个网络所使用。管理的分散有利于缓解单一主机的瓶颈,缓解流量压力,同时也让数据更新变得简单。DNS还被设计使用有层次结构的名称空间为主机命名,以确保主机域名的唯一性。
目前DNS采用的是分布式的解析方案。具体是这样的,互联网管理委员会规定,域名空间的解析权都归根服务器所有,也就是说,根服务器对互联网上所有的域名都享有完全的解析权!
那这个根服务器不就相当于全世界唯一的Hosts文件了吗?呵呵,不要着急,根服务器用了一个简单的操作,就改变了这种结构。根服务器使用的是什么操作?委派!下图就是根服务器委派的示意图,如下图所示,根服务器把com结尾的域名解析委派给其他的DNS服务器,以后所有以com结尾的域名根服务器就都不负责解析了,而由被委派的服务器负责解析。而且根服务器还把以net,org,edu,gov等结尾的域名都一一进行了委派,这些被委派的域名被称为顶级域名,每个顶级域名都有预设的用途,例如com域名用于商业公司,edu域名用于教育机构,gov域名用于政府机关等等,这种顶级域名也被称为顶级机构域名。根服务器还针对不同国家进行了域名委派,例如把所有以CN结尾的域名委派给中国互联网管理中心,以JP结尾的域名委派给日本互联网管理中心,CN,JP这些顶级域名被称为顶级地理域名
 
这里有2个很重要的概念,一个是完全合格域名FQDN,另一个就是委派delegation
FQDN
全域名(FQDN,Fully Qualified Domain Name)是指主机名加上全路径,全路径中列出了序列中所有域成员。全域名可以从逻辑上准确地表示出主机在什么地方,也可以说全域名是主机名的一种完全表示形式。从全域名中包含的信息可以看出主机在域名树中的位置。例如,myjj公司的Web服务器的全域名可以是www.myjj .com. ,而域名中以点结尾的则认为是全域名。这种区别在理解和控制解析过程时是非常重要的。句点实际上指出了域名树的根。
什么是区域委派
一个完整的DNS区域包含以自己的DNS域名为基础命名空间的所有DNS命名空间的信息,当基于此DNS命名空间新建一个DNS区域时,新建的区域称为子区域。
例如,完整的a.ns.yb.com区域包含了以 .com为基础命名空间的所有DNS命名空间的信息,yb.com. 则称为.com的一个子区域,而 ns.yb.com. 被成为 yb.com的子域。
 
默认情况下,DNS区域管理自己的子区域,并且子区域伴随DNS区域一起进行复制和更新。不过,你可以将子区域委派给其他DNS服务器来进行管理,此时,被委派的服务器将承担此DNS子区域的管理,而父DNS区域中只是具有此子区域的委派记录。
区域委派适用于许多环境,常见的场景有:
  • 将某个子区域委派给某个对应部门中的DNS服务器进行管理;
  • DNS服务器的负载均衡,将一个大区域划分为若干小区域,委派给不同的DNS服务器进行管理;
  • 将子区域委派给某个分部或远程站点。
你只能在主要区域中执行区域委派。对于任何一个被委派的子区域,父DNS区域中只是具有指向子区域中权威DNS服务器的A记录和NS记录,而实际的解析过程必须由委派到的子区域中的权威DNS服务器完成,即被委派到的DNS服务器上必须具有以被委派的子区域为域名的主要区域。
总结要点:
  DNS名称体系是有层次的,域是其层次结构的基本单位,任何一个域最多属于一个上级域,但可以有多个或没有下级域。在同一个域中不能有相同的下级域或主机名,但在不同的域中则可以有相同的下级域名或主机名。
  1.根域:(Root Domain)根域只有一个,根域是默认的,一般不需要表示出来。DNS命名空间都是由位于美国的INTERNIC负责管理域进行授权管理的。在根域服务器中并没有保存全世界的所有的DNS名称,其中只保存着顶级域的DNS服务器名称与IP地址的对应关系。每一层的DNS服务器只负责管理其下一层域的DNS服务器名称与IP地址的对应关系。
  2.顶级域(Top-Level Domain,TLD)
  在根域之下的第一级域便是顶级域。顶级域位于最右边。顶级域有两种类型的划分方法:机构域和地理域。比如:.com是机构域 .cn是地理域。
  3.各级子域(Subdomain)
  除了根域和顶级域之外,其它域均称为子域。一个域可以有多个子域。
  4. 主机名(Host Name)
  位于最左边的便是域主机名。
  5.反向域(in-addr.arpa)
  反向域使用一个IP地址的一个字节值来代表一个子域,这样反向域in-addr.arpa就被划分为256个子域,每个子域代表该字节的一个可能值0-255。。根据同样的方法,又可以将每一个子域进一步划分为256个子域。这样,可以对每个子域继续划分,直到将全部的地址空间都在反向域中表示出来。
 
DNS名称解析的查询模式
DNS:域名系统 用户在访问互联网时通过输入www.yb.com 其实输入的是一个计算机名,用户计算机把它交给DNS服务器,服务器在接到请求后会回应用户计算机一个IP地址,用户计算机在通过DNS服务器返回的IP地址访问互联网。如下图所示
 
  上图中,DNS客户机查询DNS服务器,要求获得某台计算机的IP,由于DNS服务器能够根据自己DNS数据库中对应查询,所以它将自己资源记录中的www.yb.com=1.1.1.1返回给客户机。
  客户机把所要访问的计算机名交给DNS服务器,然后服务器开始查询。DNS服务器查询有3种:1、递归查询 2、迭代查询 3、转发器
  1、递归查询:递归即是有来有往
 
 
  当DNS客户机发送给DNS服务器要求解析某个计算机名时,DNS服务器查找自己的数据库,如果数据库中有对应的域名和IP的映射信息,则把该域名所对应的IP地址返回给客户机。如果服务器在自己的数据库中没有发现该资源记录,则宣告查询失败
  2、迭代查询:
迭代查询指的是一台DNS服务器发往令外一台DNS服务器的查询
迭代的意思就是若在某地查不到,该地就会告知查询者其它地方的地址。让查询转到其它地方去查
 
 
 
迭代查询的详细过程:
  ① 客户机向本地DNS服务器发起请求,问www.yb.com的IP地址是多少?
  ② 本地DNS服务器收到DNS客户机的迭代查询,根服务器作出相应,提供靠近所提交域名的DNS服务器的IP地址
  ③ 本地DNS服务器向靠近所提交的DNS服务器发起迭代查询,以此类推,直到本地DNS服务器收到所要查询的资源记录
  ④ DNS服务器收到资源记录后发送给本地DNS服务器
  ⑤ 本地DNS服务器将资源记录回应给DNS客户机
 
  3、转发器
  转发器通过内部DNS服务器把用户的发来的请求(内部DNS服务器无法解析的请求)转发给外部网络上的DNS服务器进行解析
  ①客户机向本地DNS服务器发起DNS请求:www.yb.com的IP是?
  ②本地DNS服务器自己的资源记录中没有该记录,由于配置了转发功能,把DNS客户机发的请求转发给了外网的DNS服务器
  ③外网DNS服务器把资源记录返回给本地DNS服务器
  ④本地DNS服务器把该记录回应给客户机
 
 
 
     下一篇主要介绍:DNS客户端的解析过程