- DNS概述
互联网上的主机能够互相识别、访问,通过分配IP地址的方式进行的。全球主机数量众多,人们要记住像202.12.23.203这样的IP地址,不仅记不住,而且容易出错,于是,人们采用域名的形式,如网易的ip地址为202.12.23.205,对应的域名为www.163.com,这样的域名既有意义,又便于记忆,如人们使用浏览器,在地址栏中输入主机名www.163.com,很容易浏览到网站内容。最早的域名与IP地址的对应关系记录在host文件中,通过软件进行两者的转换,但随着互联网的发展,加入到互联网的主机越来越多,实现ip与域名的转换需要新的策略方案,于是引入了域名系统DNS。
2. 主要概念
(1)DNS域名空间
DNS全称为Domain Name System,整个DNS域名系统由4个部分组成,即根域、顶级域、二级域和子域。如图所示。
从上面示意图可以看出,整个域名空间系统像一个倒置的树,最顶端为根域,也称.域,根域下面为顶级域,通常由2或3个字母的名称,用于表示国家或组织单位类型。表1是基本的“顶级域”类型及适用范围。
表1 “顶级域”类型及适用范围
类型 | 说明 |
Arpa | 为ARPA所拥有 |
Com | 用于一般的商业公司 |
Edu | 用于教育单位及学校 |
Gov | 用于政府机构 |
Int | 保留给国际性用途 |
Mil | 用于军事部门 |
Net | 用于提供大范围Internet或电话语音服务的ISP |
Org | 用于非商业的非营利组织 |
顶级域之下是第二层域,用于个人或组织注册的名称,因此没有特定的长度,但必须位于指定类型的顶级域之下,如qingdao.com。子域是由已注册的第二层域名衍生而来,可以增加组织中的DNS树状目录,并且将它们按部门或地理位置命名,如kfq.qingdao.com。主机名称则代表特定主机在DNS名称空间中的名称,而最左边的部分常可以来识别网络主机的功能,如www.kfq.qingdao.com,其中www是指主机名,而.kfq.qingdao.com是域名部分,有人习惯将www.kfq.qingdao.com称作域名,实际上是完整的主机名。
(2)Primary(Master)DNS
在域中负责名称解析的主名称服务器,每个客户端至少要指定一台此类型的服务器的地址。
(3)资源记录
表示在DNS服务器中,实际记录的DNS域名的对应信息,这些信息又细分为多种类型,都可供在名称空间中注册或解析时使用。
(4)区域(Zone)
区域是DNS中实际的管理单位,在每个区域中包含独立的数据库内容,以提供客户端的名称解析。区域与域是两个不同的概念,有时一个域包含多个区域。
(5)正向解析(Forwarding)
将主机名称(FQDN-完全合格的域名)解析为IP地址的过程,例如解析kfq.qingdao.com的名称,域名服务器依次解析“.com”、“qingdao”、“kfq”,最后得到IP的地址,并返回给客户端。
(6)反向解析(Resersing)
与正向解析相反,反向解析是将IP地址解析为主机名称的过程,同时以名为“arpa.in-addr”的域作为解析时的起始域。
3.域名的工作原理
DNS的工作原理及过程分下面几个步骤:
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果存在该纪录,则返还查询结果给本地域名服务器。
第五步:如果没有该纪录,则返回相关的下级的域名服务器的地址。
第六步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存。
第七步:域名服务器将查询到的IP地址返回到本地域名服务器中。
第八步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
整个域名解析过程如图所示。
4.实例
现以具体实例进一步说明Internet域名解析详细过程,各主机的IP地址及域名配置如下:
客户机: 192.168.1.10
本地域名服务器:221.168.12.1
根域服务器:
顶级域名服务器:202.172.16.3 域名:.com
域名服务器: 233.145.1.4 域名:zhu.com
主机 213.144.2.3 域名:www.zhu.com
要求:客户机查询www.zhu.com主机的IP地址。
查询步骤如下:
- 客户机首先根据本机网络配置中的dns地址221.168.12.1,向本地域名服务器提出域名解析,要求解析www.zhu.com的IP地址。
- 本地域名服务器从本地缓存中并没有查询到www.zhu.com的IP地址,但本地域名服务器主配置文件中包含根域的信息,请求从根域服务器中查询。
- 显然,根域服务器中A记录没有www.zhu.com,但有下一级域名服务器(顶级域名服务器)com的IP地址202.172.16.3,因此将com的IP地址返还给本地域名服务器。
- 本地域名服务器向顶级域名服务器com查询www.zhu.com的IP地址。
- 顶级域名服务器com查询不到www.zhu.com的IP地址,但可以查询到下一级zhu.com域名服务器的IP地址233.145.1.4,并将查询结果返还给本地域名服务器。
- 本地域名服务器再次向zhu.com域名服务器查询www.zhu.com的IP地址。
- zhu.com域名服务器A记录中则有www.zhu.com的IP地址213.144.2.3,因此,将该IP地址返给本地域名服务器。
- 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。