DNS 系统解析过程概述
作者:
--------------------------------------------------------------------------------
正文:
DNS 系统解析过程概述
DNS(Domain Name Servive,域名服务)是Internet/Intranet中最基础也是非常重要的一项服务,提供了网络访问中域名到IP地址的自动转换。我们知道,Inetrnet上的主机成千上万,并且还在随时不断增加,不可能由一个或几个DNS服务器能够实现这样的解析过程,传统主机表(hosts)方式更无法胜任,事实上DNS依靠一个分布式数据库系统对网络中主机域名进行解析,并及时地将新主机的信息传播给网络中的其它相关部分,因而给网络维护及扩充带来了极大的方便。
DNS提供的服务就是要将人们所熟悉的名字映射成IP地址。一般有两种机制来完成,一种是有主机表来完成,另一种是采用域名服务的守护进程(named , 或 in.namd)来实现。这两种方式都能实现域名与IP之间的互相映射。
目前的IP地址与域名由谁分配?Internet的最高层域名由Internet网络协会负责网络地址分配的委员会进行登记和管理,它还为Internet的每一台主机分配唯一的IP地址。全世界现有3个大的网络信息中心:
INTER NIC 负责美国及其它地区
RIPE-NIC 负责欧洲地区
APNIC 负责亚太地区
DNS 层次结构
DNS是一个很复杂的概念,在了解DNS结构之前,让我们先掌握一些有关DNS 的一些常用术语。
表1列出了常用的DNS术语。
术语 说明
域 代表网络一部分的逻辑实体或组织
域名 主机名的一部分,它代表包含这个主机的域。它可以和域交换使用
主机 网络上的一台计算机
节点 网络上的一台计算机
域名服务器 提供DNS服务的计算机,它将DNS名字转化为IP地址
解析 把一个DNS服务器转化为与其相映的IP地址的过程
解析器 从域名服务器中提取DNS信息的程序或库子程序
反向解析 将给出的IP地址转化为其相映的DNS名字
欺骗 使网络看上去好象具有不同的IP地址或域名的行为
表1 常用DNS术语
好了,掌握了上面的一些术语以后,让我来介绍一下DNS的层次结构,以便能让大家更深刻的认识DNS的整个体系结构和了解DNS 系统的解析过程。 DNS实际上是一个分布式的数据库系统,它是有层次结构的系统,DNS并没有一张保存着所有的主机信息的主机表,相反,这些信息是存放在许多分布式的域名服务器中,这些域名服务器组成一个层次结构的系统,顶层是一个根域(root domain),它使用符号点号" . "来表示。其实,域的概念和我们地理上的行政区域管理的概念是类似地,一个国家行政机构包括中央政府,(就相当于根域)和各个省份的省政府(第一级域名),省政府之下又包括许多市政府(第二级域名),市政府之下包括许多县政府(第三级域名),等等依次类推,每一个下级子域都是上级域的子域。每个域都有自己一组的域名服务器,这些服务器中保存着当前域的主机信息和下级子域的域名服务器信息。例如根域服务器不必知道根域内所有主机的信息,它只要知道所有子域的域名服务器的地址即可。
图2表示了域名的层次结构:
图 2 DNS的 层次结构
在图2中包括了地理域和机构域两种类型,其中地理域是以中国为例说明的,机构域是以com举例说明的。如上图所示,www.china-pub.com 标明了Internet上的一个主机,com是一级域,china-pub是二级域,www,mail,dns都是主机名,用以标明主机的服务类型。这个例子就形象的说明了域名系统的层次结构和分层管理机制。
第一层域(即顶级域名)一般有两种类型,一种是地理域,另一种是机构域,地理域是通过地理区域来划分域名,例如中国的地理域名是CN,日本是JP,香港是HK,美国一般不使用地理域名;机构域是根据注册的机构类型来分类。
常用机构类的顶级域名为:
域名 机构的类型
.GOV 政府机构
.EDU 教育机构
.INT 国际组织(如北大西洋公约组织NATO)
.MIL 军事部门
.COM 商业机构
.NET 网络中心
.ORG 社会组织、专业协会
表3
尽管机构名称不能告诉用户有关系统物理地点的情况,但大多数使用机构名称的系统都属于美国,不过现在有些域名(如.COM、.NET和.ORG)已可供全球申请使用。
其它机构类新型顶级域名:
域名 机构的类型
.FIRM 商业或公司
.STORE 提供购买商品的业务部门
.WEB 主要活动和WWW有关的实体
.ARTS 以文化性娱乐活动为主的活动
.REC 以消遣性娱乐活动为主的实体
.INFU 提供信息服务的实体
.NOM 有针对性的个人或人员的命名
表4
(以上7个域名是Internet 国际特别委员会IAHC于1997年2月4日最新扩充的机构域名)
下面的表5中列举了一些普及地理类顶级域名:
域名 国家或地区 域名 国家或地区 域名 国家或地区 域名 国家或地区
.am 亚美尼亚 .aq 南极洲 .ar 阿根廷 .au 澳大利亚
.bb 巴巴多斯 .be 比利时 .bg 保加利亚 .ca 加拿大
.ch 瑞士 .cl 智利 .cn 中国 .cr 哥斯达黎加
.cy 塞浦路斯 .de 德国 .dk 丹麦 .ec 埃及
.eg 萨尔瓦多 .es 西班牙 .fi 芬兰 .gb 英国(官方)
.gr 希腊 .hk 香港 .hu 匈牙利 .ie 爱尔兰
.il 以色列 .in 印度 .ir 伊朗 .it 意大利
.jm 牙买加 .jp 日本 .kr 韩国 .lt 立陶宛
.lu 卢森保 .mo 澳门 .mx 墨西哥 .ni 尼加拉瓜
.nl 荷兰 .no 挪威 .nz 新西兰 .pe 贝卢
.ph 菲律宾 .pl 波兰 .pt 葡萄牙 .ru 俄国
.se 瑞典 .sg 新加坡 .si 斯洛文尼亚 .th 泰国
.tn 突尼斯 .tr 土耳其 .tw 台湾 .us 美国
.uk 英国(通用 .ve 委内瑞拉 .vn 越南 .zm 赞比亚
表5
DNS解析过程及原理
在上面介绍了域的概念和域的层次结构之后,就可以进一步了解DNS的工作原理和过程了,DNS的工作原理及过程分下面几个步骤:
第一步:客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后,就先查询本地的缓存,如果有该纪录项,则本地的域名服务器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录,则本地域名服务器就直接把请求发给根域名服务器,然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域)的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求,然后接受请求的服务器查询自己的缓存,如果没有该纪录,则返回相关的下级的域名服务器的地址。
第五步:重复第四步,直到找到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时还将结果返回给客户机。
让我们举一个例子来详细说明解析域名的过程.假设我们的客户机如果想要访问站点:www.linejet.com , 此客户本地的域名服务器是dns.company.com , 一个根域名服务器是NS.INTER.NET , 所要访问的网站的域名服务器是dns.linejet.com,域名解析的过程如下所示:
(1)客户机发出请求解析域名www.linejet.com的报文
(2)本地的域名服务器收到请求后, 查询本地缓存, 假设没有该纪录, 则本地域名服务器dns.company.com则向根域名服务器NS.INTER.NET发出请求解析域名www.linejet.com
(3)根域名服务器NS.INTER.NET收到请求后查询本地记录得到如下结果:linejet.com NS dns.linejet.com (表示linejet.com域中的域名服务器为:dns.linejet.com ), 同时给出dns.linejet.com的地址,并将结果返回给域名服务器dns.company.com。
(4)域名服务器dns.company.com 收到回应后,再发出请求解析域名www.linejet.com的报文。
(5)域名服务器 dns.linejet.com收到请求后,开始查询本地的记录,找到如下一条记录: www.linejet.com A 211.120.3.12 (表示linejet.com域中域名服务器dns.linejet.com的IP地址为:211.120.3.12),并将结果返回给客户本地域名服务器dns.company.com。
(6)客户本地域名服务器将返回的结果保存到本地缓存,同时将结果返回给客户机。
这样就完成了一次域名解析过程,
小结
DNS是一个很复杂的概念,在我们动手搭建和配置DNS系统之前,一定要好好了解DNS 系统解析过程,这样才能不会一头雾水,只知道如何配置,却不知道为什么这样配置。