一个独立管理的 D N S 子树称为一个区域 ( z o n e ) 。一个常见的区域是一个二级域,如
n o a o . e d u。许多二级域将它们的区域划分成更小的区域。例如,大学可能根据不同的系来
划分区域,公司可能根据不同的部门来划分区域。
如果你熟悉U n i x的文件系统,会注意到D N S 树中区域的划分同一个逻辑U n i x文件
系统到物理磁盘分区的划分很相似。正如无法确定图 1 4 - 1 中区域的具体位置,我们也
不知道一个Unix文件系统中的目录位于哪个磁盘分区。
一旦一个区域的授权机构被委派后,由它负责向该区域提供多个名字服务器。当一个新
系统加入到一个区域中时,该区域的 D N S 管理者为该新系统申请一个域名和一个 I P 地址,并
将它们加到名字服务器的数据库中。这就是授权机构存在的必要性。例如,在一个小规模的
大学,一个人就能完成每次新系统的加入。但对一个规模较大的大学来说,这一工作必须被
专门委派的机构(可能是系)来完成,因为一个人已无法维持这一工作。
一个名字服务器负责一个或多个区域。一个区域的管理者必须为该区域提供一个主名字
服务器和至少一个辅助名字服务器。主、辅名字服务器必须是独立和冗余的,以便当某个名
字服务器发生故障时不会影响该区域的名字服务。
主、辅名字服务器的主要区别在于主名字服务器从磁盘文件中调入该区域的所有信息,
而辅名字服务器则从主服务器调入所有信息。我们将辅名字服务器从主服务器调入信息称为
区域传送。
当一个新主机加入一个区域时,区域管理者将适当的信息(最少包括名字和 I P 地址)加
入到运行在主名字服务器上的一个磁盘文件中,然后通知主名字服务器重新调入它的配置文
件。辅名字服务器定时(通常是每隔 3小时)向主名字服务器询问是否有新数据。如果有新数
据,则通过区域传送方式获得新数据。
当一个名字服务器没有请求的信息时,它将如何处理?它必须与其他的名字服务器联系。
(这正是D N S的分布特性)。然而,并不是每个名字服务器都知道如何同其他名字服务器联系。
相反,每个名字服务器必须知道如何同根的名字服务器联系。 1 9 9 3 年4月时有8个根名字服务
器,所有的主名字服务器都必须知道根服务器的 I P 地址(这些I P 地址在主名字服务器的配置
文件中,主服务器必须知道根服务器的 I P 地址,而不是它们的域名)。根服务器则知道所有二
级域中的每个授权名字服务器的名字和位置(即 I P 地址)。这意味着这样一个反复的过程:正
在处理请求的名字服务器与根服务器联系,根服务器告诉它与另一个名字服务器联系。在本
章的后面我们将通过一些例子来详细了解这一过程。
你可以通过匿名的F T P获取当前的根服务器清单。具体是从f t p . r s . i n t e r n i c . n e t
或nic.ddn.mil 获取文件n e t i n f o / r o o t - s e r v e r s . t x t。
D N S 的一个基本特性是使用超高速缓存。即当一个名字服务器收到有关映射的信息(主
机名字到 I P 地址)时,它会将该信息存放在高速缓存中。这样若以后遇到相同的映射请求,
就能直接使用缓存中的结果而无需通过其他服务器查询。 1 4 . 7 节显示了一个使用高速缓存的
例子。
14.3 DNS的报文格式
D N S 定义了一个用于查询和响应的报文格式。图 1 4 - 3 显示这个报文的总体格式。
144使用TCP/IP详解,卷1:协议