IT一点通操作系统专版linux操作系统 → linux管理员手册--主机名解析、进入DNS(10)


  共有1452人关注过本帖树形打印

主题:linux管理员手册--主机名解析、进入DNS(10)

帅哥哟,离线,有人找我吗?
玉洁
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:4358 积分:44060 威望:50 精华:10 注册:07/11/2007 20:50:21
linux管理员手册--主机名解析、进入DNS(10)  发帖心情 Post By:24/07/2007 00:16:57

主机名解析

  如前所述,TCP/IP网络中的编址是围绕着32比特的数字的,然而,想多记住几个也是很难的。因此,通常主机都用“普通”的名字命名,如gauss或strange。这时,找出与名字相关的IP地址就是程序的职责了。这个过程称为主机名解析(host name resolution)。
  一个想要找出给定主机名的IP地址的应用程序不一定要提供自己的例程来查找主机以及IP地址。相反地,它依赖于显然是做这个工作的几个库函数,称为gethostbyname(3)和gethostbyaddr(3)。传统上,这些以及一些相关的过程被组合成一个独立的库,称为解析库(resolver library);在Linux上,这些是标准libc的部分。通俗地说,这个函数的集合因而被称为“解析器”(the resolver)。
  如今,在一个象以太网一样的小网上,或者甚至是一族以太网上,维护一张映射主机名到地址的表并不是十分困难的事。该信息通常被存放在文件/etc/hosts中。当增加或移走主机,或重新分配地址时,你所要做的就是更新所有主机上的hosts文件。很明显,当网络不仅仅是由少数几台机器组成时,这将成为繁重的负担。
  针对这个问题的一个解决方案是NIS,即有Sun Microsystems开发的网络信息系统(Network Information System),通俗地称为YP,或者黄页(Yellow Pages)。NIS在主主机上将hosts文件(以及其它信息)存储在一个数据库里,客户可以从中检索所需的信息。不过,这个方法只适应中等大小的网络如局域网,因为它涉及到集中地维护整个主机数据库,并且把它分发到所有服务器上。
  在互连网上,地址信息最初也是存储在一个HOSTS.TXT数据库中的。这个文件原是由网络信息中心(Network Information Center),即NIC,来维护的,并且所有参与站点都需要下载并安装。当网络增长时,这种方案带来了几个问题。除了涉及定期安装HOST.TXT的额外管理方面的开销外,分发这个库的服务器负荷变得太高了。更为严重的问题是所有的名字必须在NIC登记,它必须确定没有重名存在。
这就是为什么在1984年采用了一个新的名字解析方案,即域名系统(Domain Name System)。DNS是由Paul Mockapetris设计的,同时能解决这两个问题。

进入DNS

  DNS用域的层次结构来组织主机名。一个域是在某些方面相关的站点的一个集合---由于他们组成了一个特有的网络(例如,校园内的所有机器,或BITNET上的所有主机),因为它们都属于某个机构(就象美国政府),或者因为它们只是在地理位置上比较靠近。例如,大学被(组合)分组在edu域,每个大学或学院使用一个独立的子域(subdomain),在子域下面包含它们的主机。Groucho Marx大学可以给予groucho.edu域,数学系的局域网指定为maths.groucho.edu。系部网络上的主机将有这个域名附加在它们的主机名后;所以erdos被认为是erdos.maths.groucho.edu。这被称为全资域名(fully qualified domain name),或FQDN,它在世界范围内唯一地标识出该主机。
  这棵树的根的入口是用一个点(dot)来表示的,它被很恰当的称作根域(root domain),并且包含了所有其它域。为了指出一个主机名是一个全资域名,而不是一个与某个(隐含的)本地域相关的名字,有时会写上一个附加点。这表示这个名字的最后的组成部分是根域。
  依赖它在层次结构中的位置,一个域可以被称为是顶层、第二层、或第三层的。还可以再划分出分层,但很好这样做。你会常看到以下几个顶层域:
  edu (大部分在美国) 教育机构如大学等。
  com 商业机构、公司。
  org 非商业机构。常常是私有UUCP网络在这个域中。
  net 网络上的网关以及其它的管理主机。
  mil 美国军事机构。
  gov 美国政府机构。
  uucp 具官方称,以前用作无域名的UUCP名字的所有站点名,已被移入该域。
  技术上来说,以上的头四个属于Internet的美国部分,但你可能在这几个域中还是能见到不是美国的站点。Net域尤其是这样。然而,mil和gov是美国专有的。
  在美国以外的地方,每个国家通常在两字符国家代码(在ISO-3166中定义)后面使用一个她自己命名的顶层域。例如,芬兰(Finland)使用fi域,fr由法国(France)使用,de由德国(Germany)使用,au由澳大利亚(Australia)使用,cn由中国(China)使用等等。在这个顶层域下面,每个国家的NIC可以自由地以他们想要的方式组织主机名。例如,澳大利亚有一个与国际顶层域相似的次层域,命名为com.au,edu.au,等等。其他国家,如德国,不使用这一额外层,而是使用直接引用运行一特定域的机构的稍长些的名字。例如,象ftp.informatik.uni-erlangen.de这样的主机名并非少数。由此可见德国人的效率如何了。
当然,这些国家的域并不意味着在该域下的主机实际上一定位于那个国家之中;这仅仅说明这台主机是在那个国家的NIC注册登记的。一个瑞典(Swedish)的厂商可能在澳大利亚有一分支机构,但他的所有主机仍然注册为se顶层域。
  现在,以域名的层次结构来组织名字空间很好地解决了名字的唯一性问题;利用DNS,一台主机的名字只需在它的域中是唯一的,就可以在世界范围内有一个与所有其它主机不同的名字了。此外,全资名称是很容易记忆的。就其本身而言,这些已是将大的域分割成几个子域的很好的理由了。
  但是,DNS甚至为你比这做得更多:它允许你将子域权限授权给它(子域)的管理者。例如,在Groucho 计算中心的维护者可以为每个系部创建一个子域;在上面我们已经遇见了maths和physics子域了。当他们发现物理系的网络太大了,而且从外界来看混乱而难以管理(总之,物理学家是一类不受拘束的人),他们就可以简单地将physics.groucho.edu域的控制权交给这个网络的管理员。这样,他们就可以自由地使用他们喜欢的无论什么样的主机名了,并且可以以各种方式在他们的网络中分配IP地址了,而不需要外界的干涉。
  在本小节结束时,我们还要说一下,名字空间可以分成区(zones),每个区根于一个域。请注意区与域的细微差别:域groucho.edu包括Groucho Marx大学的所有主机,而区仅包括计算中心直接管理的主机,例如那些在数学系的主机。在物理系的主机就属于一个不同的区,也即physics.groucho.edu。在图2.3中,区的开始是在域名的右侧用小圆圈标出的。



阿杰空间:www.sunenze.com         IT一点通:www.cnit128.com  
卖客360:www.max360.cn             淘宝123购物导航:www.taobo123.cn
企业直达:www.rboot.cn             企业直通:www.directok.cn
支持(0中立(0反对(0回到顶部