常识库

亚洲城ca88手机版官网下载> 常识库

域名系统

时间:2017年03月02日

主机名解析
????? T C P / I P连网协议中的地址利用的是3 2位的编号。但是,有几个人能够一口就答上来,某某主机的I P地址是什么呢?因此,主机一般都有一个“普通”的(比如“高斯”或“异人”)主机名。然后,由特定的应用程序负责找出和这个主机名对应的I P地址。这个过程就叫作“主机名解析”。
?????? 对想找出与具体主机名对应的I P地址的应用程序来说,不必为主机和I P地址的查找提供它自己的例程。相反地,它依靠大量的库函数进行透明操作,其中有: g e t h o s t b y n a m e ( 3 )和g e t h o s t b y a d d r ( 3 )。按照惯例,这两个函数和大量的相关进程都被归在一个独立的库内,这个库叫作解析器库; L i n u x中,它们是属于标准l i b c的。所以说白了,这个函数集合就是“解析器”。
????? 现在,在像以太网之类的小型 网络 上,甚至在一个以太网聚簇上,要维护主机名和I P地址的对应表不是件难事。维护信息通常保存在一个名为/ e t c / h o s t s的文件中。在增添或删除主机名或重新分配I P地址时,只须根据所有的主机,更新主机名即可。显而易见,这对由若干台机器组成的网络来说,是颇为头疼的。
????? 要解决这一问题,方法之一是N I S(网络信息系统),这是S u n企业开发的。简单地说,叫作Y P或黄页。N I S把主机文件(和其他信息)保存在一个主要主机的数据库内,客户机如有需要,就可从该数据库内提取。但是,这个方法仍然只适用于中等大小的网络,比如局域网,因为它只对整个主机数据库进行集中维护,并把它分发到各个服务器。在因特网上,地址信息最初也是保存在一个独立的H O S T S . T X T数据库内。这个文件的维护在“网络信息中心”(N I C)进行,而且必须由所有参与站点进行下载和安装。随着网络的扩大,这一方案的问题就越来越突出。除了定期安装H O S T S . T X T涉及的管理开销外,各个服务器的下载量也越来越大。更为严重的是,所有主机名都必须利用NIC进行注册,以保证主机名不重复。
?????? 这就是1 9 8 4年新的主机名解析方案出台的原因。它就是域名系统( D N S)。D N S是保罗·莫克皮特里斯设计的,完满解决了上面提到的两大问题。

输入DNS
?????? D N S采用域分层结构来管理主机名。一个域是若干个站点的集合,因为这些站点可以组成一个网络(例如,亚洲城网内的所有机器,或B I T N E T上的所有主机),而且因为它们都属于某个特定的组织(比如美国ZF),或仅仅因为它们的地理位置相当接近。例如,所有的大学可以归为一个. e d u域,而各个大学或亚洲城又分为一个单独的子域。如果为Groucho Marx大学指定的是g r o u c h o . e d u域,那么,为数学系局域网分配的域就是m a t h s . g r o u c h o . e d u。数学系局域网内的各台主机分到的域就是再在前面的域名前加上主机名,比如E r d o s 的就是e r d o s . m a t h s . g r o u c h o . e d u。这就是所谓的“完整资格域名”(F Q D N),它能够唯一地标识全球各地的主机。
????? 这个域分层结构的根是一个单独的点( .),名副其实地称作根域( r o o t d o m a i n),所有的域都包含在这个根域内。为指明一个主机名的确是一个完整资格域,而不是相对于某一(隐式)本地域的域名,有时会把它表示成一个追尾点。它表示该名的最后一个组件是根域。
????? 根据其在域名分层结构中的位置,域可以称作顶级域、二级域或三级域。多级子分区不是没有,但极为罕见。下面是一些大家经常能见到的顶级域:
■ .edu (主要在美国)教育部门,比如大学
■ .com 商业组织,企业
■ . o rg 非商业组织(这个域中通常是些U U C P网络)
■ .net 网络上的网关和其他管理性主机
■ .mil 美国军方
■ .gov 美国ZF部门
■ .uucp 正式场合中,对以前用做U U C P名的所有站点名来说,如果没有为它们指定域,
就会被统统归入这个域内。
?????? 从技术上来讲,前4个域属于I n t e r n e t的美国部分。但这个域中同样包含有非美国站点。特别是. n e t域中,此类非美国站点比比皆是。但是, . m i l和. g o v是美国专用域。除美国外的其他国家都可以使用得名于I S O - 3 1 6 6中定义的两个字母,来作为其顶级域。比如芬兰,它使用的是. f域;法国使用的是. f r域;德国使用的是. d e域;澳大利亚使用的则
是. a u域。在这个顶级域下,各个国家可按照自己的方式组织主机名。比如澳大利亚,它有类似于国际顶级域的二级域,名为c o m . a u和e d u . a u。其他的国家,比如德国,则不采用这种结构,而是采用一个稍长的名字直接指向正在运行特殊域的组织(或企业)。例如, f t p . i n f o r m a t i k和u n i - e r l a n g e n . d e此类的主机名是很不常见的,但在德国,类似的主机名却非常普遍。当然,这些国家域并不能代表这个域下面的主机真正就位于该国;它只是表示这台主机在这个国家的N I C(国家I n t e r n e t中心)已经注了册。比如,一个瑞士厂商可能在澳大利亚有一个分部,仍然可以用. s e顶级域来注册其下属所有主机。
?????? 现在,对域名分层结构内的域名空间进行组织,就能很好地解决域名唯一性的问题。利用D N S,主机名在其自己所处的域内,必须是独一无二的,这样才能保证它的名字有别于全球各地的主机。此外,完整资格域名也非常容易记,正因为有了它们,便可将一个大型的域分成若干个子域。但D N S还有别的好处:它允许你选择子域内的授权者作为它的管理员。比如, G r o u c h o计算中心的维护人员可能为各系创建一个子域;大家已见识过数学系和物理系子域。在发现物
理系局域网太大,太混乱,以至于很难自外部进行管理时(毕竟,学物理的人是出了名的“放荡不羁”),计算中心的维护人员会把p h y s i c s . g r o u c h o . e d u域的控制权移交给该网络的管理员。然后,该网络的管理员就可能自由地使用自己喜欢的主机名,并在不与网络外部发生冲突的前提下,按照自己的方式为主机分配I P地址。
?????? 最后,域名空间分为若干个区,每个区都包含在一个域内。注意,区和域之间的细微差别:g r o u c h o . e d u域内涵括Groucho Marx大学的所有主机,而g r o u c h o . e d u区内只包括计算中心直接管理的主机,比如数学系局域网内的主机。而物理系的主机则属于另一个不同的区,名为p h y s i c s . g r o u c h o . e d u。

利用DNS进行名字查找
????? 乍一看,域和区几乎令域名解析复杂不堪。毕竟,如果没有集中式授权机构对主机名分配的控制,小小应用程序怎能识别出这些纷繁复杂的域名?现在该来谈谈D N S的妙用了。如果想找到E r d o s主机的I P地址, D N S就会说,去问管理这台主机的人,他们会告诉你的。事实上, D N S是一个巨大的分布式数据库。它是通过一个所谓的“域名服务器”来实现的,这些域名服务器将提供具体域或域集合相关的信息。对每个区而言,至少有两个域名服务器中保存有那个区中的所有主机之验证信息。要想获得E r d o s的I P地址,只须和g r o u c h o . e d u区的域名服务器进行沟通,然后,它就会返回你所需要的数据。
大家可能会这样想:“说时容易,做时难。我怎样才能抵达Groucho Marx大学的域名服务器呢?”如果你的计算机没有装地址解析先知, D N S有。在你的应用程序想查找关于E r d o s的相关信息时,它会与一个本地域名服务器取得联系,该服务器将为此实施所谓的“交互式”查询。向根域的一个域名服务器发出查询之后,该服务器便要求得到e r d o s . m a t h s . g r o u c h o . e d u
的I P地址。根域名服务器认出这个名字不属于自己的辖区,而是属于. e d u域下面的一个辖区。
???????所以,它就会要求你与. e d u区域名服务器取得联系,并将列有所有. e d u域名服务器及其地址的清单封装起来。然后,你的本地域名服务器将开始对清单中的域名服务器一一进行查找,比如a . i s i . e d u域名服务器。它采用的方式类似于根域名服务器的方式,它知道g r o u c h o . e d u处的人们在运行它们自己的区,并把你引向他们的服务器。最后,本地域名服务器再向其中一个服务器提出查找E r d o s,E r d o s所在的域名服务器认出它是属于自己这一区之后,便返回其对应的I P地址。
?????? 现在看来,查找一个小小的I P地址似乎会产生很大的网络开销,但事实上,和目前尚未解决的H O S T S . T X T传输比较起来,简直不足一提。但仍有必要对这一查找进行改进。为了缩短查找时间,域名服务器将把获得的信息保存在自己的本地缓存内。所以,下一次你的网络中,有人想查找g r o u c h o . e d u域内的主机之I P地址时,你的域名服务器就不必费心了,直接联系g r o u c h o . e d u域名服务器即可。如果域名服务器不保存获得的信息, D N S和其他的方法一样糟糕,因为每次查找都涉及到根域名服务器。
?????? 当然,域名服务器不会永久性地保存这一信息,隔段时间后,它就会丢弃这一信息。何时丢弃由生存时间(也就是T T L)决定。D N S数据库中的每项资料都有一个由区管理员分配的一个T T L。

域名服务器
????? 容纳某一区内主机信息的域名服务器叫做这个区的验证服务器,有时也被称为主域名服务器。任何对区内主机的查询最终都会涉及到主域名服务器。为了保证整个区的连贯性,其主域名服务器必须能够得到同步更新。这是通过令其中一个主域名服务器成为首要服务器来实现的。这个首要服务器定期令传输区数据的其他域名服务器作为其从属服务器,从而从数据文件中载入该区信息。要有若干个域名服务器的原因之一是:分担工作负荷。另一个原因是备用。如果一个域名服务器良性“失效”,比如系统崩溃或丢失网络链接时,所有的查询都会转向其他的服务器。当然,这一方案并不能有效地避免服务器故障(导致所有的D N S请求做出错误的应答)和服务器程序本身出现App错误。
?????? 当然,大家也可以设想一些域内不存在作为验证域名服务器的情况(但一个域名服务器至少能为本地主机和1 2 7 . 0 . 0 . 1逆向查找提供域名服务)。不管怎么说,这类服务器都是相当有用的,因为它仍然能够针对运行于本地网络的应用程序实施D N S查询。因此,它们通常也被称为“c a c h i n g - o n l y”(只用于缓存)服务器。

DNS数据库
?????? 由上可知, D N S不仅能够处理主机的I P地址,还能够交换关于域名服务器的信息。事实上,D N S数据库内可能有整整一打不同类型的条目。
?????? D N S数据库内,一条单一的信息叫作一条资源记录,或简称R R。每条记录都有一个与之关联的类型(描述了该记录代表的数据类别)和一个类(指定该记录适用的网络类型)。后者可根据不同的编址方案(比如I P地址,是I N类;H e s i o d网络则是M I T)需求进行调节。标准的资源记录类型是A记录,它把一个完整资格域名和一个I P地址关联在一起。
?????? 当然,一个主机可以有若干个主机名。但是,必须将其中一个主机名标识为正式名或规范名,而其他的则是可以代表前者的别名。其间的区别是:规范主机名是A记录所关联的主机名,而其他的则只有一条C A N M E类型的记录,该记录指向规范主机名。关于所有的记录类型,将留在下一章深入讨论。这里只是简要先容一下。
?????? 除了A和C N A M E类记录外,大家还看到文件顶部有一条特殊的记录。这是S O A资源记录,表示Start of Authority,其中容纳服务器所属的区之普通信息。比如,它包含所有记录的默认T T L值。
????? 注意,不是以点“ .”结尾的示范文件中,所有主机名都应该被说明为与g r o u c h o . e d u域有关。S O A记录中的特殊名“@”代表这个域本身的域名。
?????? 由上可知, g r o u c h o . e d u域的域名服务器多少应该知道物理区,使之能够将主机查询引向这些主机各自的域名服务器。这通常是通过两条记录来完成的:指定该服务器之F Q D N的N S记录和把地址与主机名关联在一起的A记录。由于这两条记录把域名和空间集中保存在一起,所有它们通常也被称作“ glue records”。对真正保存子区内主机相关信息的父区来说,它们是
唯一的记录实例。指向p h y s i c s . g r o u c h o . e d u域的域名服务器的g l u e记录如下图所示。


逆向查找
????? 除了查找属于一个主机的I P地址外,大家有时还希翼查找和I P地址对应的规范主机名。这就是所谓的“逆向映射”,有几个网络服务用它来验证客户机的身份。在使用一个独立的主机文件时,逆向查找只在该文件中查找问题中I P地址所对应的主机名。如果用D N S,当然还要对问题外的名字空间进行彻底查找。D N S创建了一个i n - a d d r. a r p a特殊域,其中包含所有主
机的I P地址,这些地址采用的格式是点分四段式。例如, 1 4 9 . 7 6 . 1 2 . 4这个I P地址对应的主机名是4 . 1 2 . 7 6 . 1 4 9 . i n - a d d r. a r p a。把这些域名和其规范主机名链接起来的资源记录类型是P T R。具体程序参见下图。

?

上图GMU采用的程序,摘自n a m e d . h o s t s文件
?????? 创建一个特区通常意味着其管理员能够拥有分配I P地址的绝对支配权。由于他们手中有一个或若干个I P网络或子网,所以D N S区和I P网络之间可能会存在一对多的映射关系。比如,物理条由1 4 9 . 7 6 . 8 . 0、1 4 9 . 7 6 . 1 2 . 0和1 4 9 . 7 6 . 1 4 . 0三个子网组成。结果是, i n - a d d r. a r p a域内的新区必须随物理区一起创建,而且供该系的网络管理员专用,
它们是: 8 . 7 6 . 1 4 9 . i n - a d d r. a r p a、1 2 . 7 6 . 1 4 9 . i n - a d d r. a r p a和1 4 . 7 6 . 1 4 9 . i n - a d d r. a r p a。否则的话,在C o l l i d e r实验室安装一台新主机时,就会要求新区与其父域取得联系,以便将新地址输入它们的i n - a d d r. a r p a区文件。
子网1 2所用的区数据库参见下图:


上图子网1 2所用的数据库,摘自i n - a d d r. a r p a文件
这些新区之父区所用的记录,则参见下图:


上图?网络1 4 9 . 7 6所用的记录,摘自n a m e d . r e v文件
上面的记录产生的重要结果是验证区只能被视作I P网络的超级子集,而且更严格地说,这类网络的网络掩码必须根据字节边界来定。Groucho Marx大学的所有子网的网络掩码都是2 5 5 . 2 5 5 . 2 5 5 . 0,因此,应该为每个字网创建一个i n - a d d r. a r p a区。但是,如果各子网的网络掩码是2 5 5 . 2 5 5 . 2 5 5 . 1 2 8,大家就可以为子网1 4 9 . 7 6 . 1 2 . 1 2 8创建验证区,因为无法告知D N S“1 2 . 7 6 . 1 4 9 . i n - a d d r. a r p a域已经被分为两个特区,所以主机名分别是1到1 2 7,和1 2 8到2 5 5”。

?
?
?

XML 地图 | Sitemap 地图