详解DNS工作原理及实例分析

  1. 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地址返给本地域名服务器。
  • 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。

 

上一篇:[论文阅读] ChartInstruct: Instruction Tuning for Chart Comprehension and Reasoning