第3章域名服务器的类型
本章内容包括:
• 主域名服务器。主域名服务器得到授权来响应对域区的查询,同时,它也是提供所有域
区地址的来源。这一节描述主域名服务器的特性。注意有时一个主域名服务器也被称为
一个主服务器。这个新说法来自于B I N D版本8设置文件的改变。本章中任何地方涉及到
的主域名服务器,都能与主服务器互换。
• 辅域名服务器。辅域名服务器是备份服务器。它们不是域区源数据存放的地方,但它们
也授权响应域名的查询。辅域名服务器通常从域的主D N S服务器获得域区数据。注意辅
服务器也被称为从属服务器。
• 缓存域名服务器。顾名思义,缓存域名服务器是用来缓存地址数据的。缓存是多数服务
器都有的特性。缓存域名服务器专门用来缓存查询的地址,而不承担任何其他的工作。
它们没有包含许多主机的域区文件,也不从其他D N S服务器传送数据。缓存域名服务器
也回答查询,但没有授权。这一节将描述缓存服务器并解释为什么它们是有价值的。
• 传递查询:前向服务器和从属服务器。前向服务器和从属服务器也是D N S服务器,它们
和其他D N S服务器有非常特殊的合作关系来分担处理查询的责任。这一节介绍前向服
务器和从属服务器,解释它们如何给管理员提供服务设计的选项。
• 确定D N S服务器的类型。如果你遇到一台服务器,但不知道它起什么作用,这一节将
介绍如何区分主服务器、辅服务器、前向服务器、从属服务器和缓存服务器。
一个域名服务器能够只扮演一个角色或同时扮演几个角色。本章提供了一个服务器能扮
演的可能角色的概述。注意到一个D N S服务器能同时支持多个域,有时又对每个域都有一个
角色,这是很重要的。有些角色,比如说仅作缓存,对整个服务器来说是必须设置的。那么,
一个D N S服务器的种类当选择它的设置时就已经确定了。这种设置使得服务器能支持每一个
域。
除了解释潜在的D N S服务器的作用,本章也揭示和讨论了一些有助于阐述主服务器、辅
服务器、前向服务器、从属服务器和缓存服务器之间区别的体系结构。在实际问题和应用中
能更好的理解这一点。对于这种关系的唯一的确定性是有些D N S服务器对每个域来说都是主
服务器,剩下的就由自己指定了。
3.1 主域名服务器
主域名服务器是D N S的主要成员,对I n t e r n e t中域名数据的发布和查找起着非常重要的作
用。主域名服务器总是地址数据的初始来源。主服务器对域中的域名有最高授权,并因为它
们是域区间传送域区数据的唯一来源,就具有向任何一个甚至全部需要其数据的服务器发布
域的信息的功能。一个辅服务器在向另一个辅服务器进行域区传送时也可以是“主服务器”,
但是文件却在主域名服务器上。这种语言上的混淆在RFC 2136 中被澄清。它区分了从属服务
器,主服务器和根主域名服务器( primary master server)。
• 从属服务器。一台授权的用来搜索域区传送的服务器。并且在域区中用N S记录来命名。
• 主服务器。一台设置为向一个或多个从属服务器传送数据源的授权服务器。
• 根主域名服务器。在域区传送互联( t r a n s f e r- d e p e n d e n c y )图中作为根的主服务器。根主
域名服务器在域区S O A记录中被命名。根据定义,每个域区只能有一台根主域名服务
器。
数据发布过程从管理员手工建立配置引导文件开始,他可以从U N I X主机的BIND DNS实
现来复制,更可能的是在安装时通过D N S服务器管理接口输入所有服务器需要的引导配置数
据。Windows 2000 DNS服务器将自动地把任何配置文件放在% w i n d i r % \ s y s t e m 3 2 \ d n s文件夹
中。
需手工配置的D N S的基本数据信息包括:
• 域的名字(如果域名需要在企业外部被解析,则必须由I n t e r N I C批准)。
• 每个准备提供域名解析的服务器的I P地址和名字。
• 各域名服务器的主机名和地址。
• 其他包括在这个D N S服务器域区的计算机的主机名和地址。
第11章提供了安装和配置Windows 2000 DNS服务器的指导。
3.1.1 存储Windows DNS引导配置数据
有两种方法可用来存储Windows DNS引导配置数据:通过引导文件和通过注册表。缺省
方式是通过注册表。想通过引导配置文件而不是注册表,则必须在“ s t a r t u p(开始菜单)”中
的“Load Zone Data(装载域区数据)”下选择“ From File(从文件)”选项来设置引导方法。
这个选择菜单在D N S服务器属性的“A d v a n c e d(高级)”选项下。
不像D N S服务器软件以前的版本, Windows 2000 DNS服务器在选择或改变引导方法时会
自动更新注册表和引导文件(在以前的版本中,同步是一项繁重的工作)。注册表的键值是
H K L M \ S y s t e m \ C u r r e n t C o n t r o l S e t \ S e r v i c e \ D N S。第11章讨论了改变存储方法的影响。
在Windows 2000中,也可以使用活动目录集成域区,但只能用于主域区。因为辅服务器
不修改数据,所以没有必要让辅服务器直接访问主服务器的数据,它们仅仅在通常方式下进
行域区传送。对于主域区,活动目录的集成意味着域区数据存储在目录里。这提供了一种存
储和复制(传送)数据的更健壮的方式。如果使用活动目录集成域区,多个域控制器就能共
享主域区信息。从整个存储到单个源记录,这种集成都提供访问控制,作为确保域区数据安
全的方式。
3.1.2 配置数据和域
Microsoft DNS提供的配置文件可与U N I X方式的B I N D配置兼容,这样,过渡到MS DNS
服务器就容易多了。Windows 2000中缓存文件的缺省名称为C A C H E . D N S。
配置数据不仅要指定服务器存储域区文件的目录和缓存目录,还要包含该服务器将支持
的域名的列表,以及指示该服务器对每个域是哪种类型的服务器;是主服务器、辅服务器,
还是缓存服务器。如果服务器是主服务器,则引导配置信息包含每个域的源域区文件。如果
服务器是辅服务器,则应包括主服务器的I P地址。这样,该服务器就知道到哪里请求更新数
据。
第3章域名服务器的类型计计29
如果一个主服务器在运行。对域所做的修改可以是增加或删除主机、子域、邮件服务器、
域名服务器等等。如果使用引导配置文件使服务器启动和运行,则只能修改主服务器的源文
件。域名服务器引导文件的结构如下所示(已插入了用分号“;”开始的注释行,以便说明
引导文件的语句)。
此例是以U N I X管理员风格的形式给出的。本例中Windows 2000 忽略了目录。要注意这
些文件,包括缓存文件,若不特别说明都有扩展名. D N S。此时不必担心所有的配置选项。介
绍D N S安装的第11章将给出理解及使用这些选项所需的所有信息。另外,许多设置是自动的。
以上的缓存服务器指向根域( .)。其缓存文件包含了关于各主根服务器地址的条目。
Windows 2000 DNS本身就带有这个根缓存文件,并且它的最新版本总是可以从I n t e r N I C的
f t p : / / r s . i n t e r n i c . n e t / d o m a i n / n a m e d . r o o t,一定要将文件名改为缓存文件名(不要把根缓存文
件和只用来进行缓存的服务器相混淆)。F T P站点可能是得到最新版本的最简便的方式。根缓
存文件只有在I n t e r n e t本身授权宣布要增加新的根域服务器的时候(几乎不会发生),或者你的
D N S服务器只是用来支持一个与外界隔离的内部网络时才需更新。注意只有在准备公共的使
用服务器进行网络查找时才用到这些文件。有些公司对I n t e r n e t地址的解析分为内部的和外部
的。这经常用于单独的内部或外部服务器。
上述例子示出了域名服务器引导文件的结构。h o s t . d b文件包含了e x a m p l e . n e t域的列表,
h o s t s . r e v文件包含了1 . 1 6 8 . 1 9 2 . i n - a d d r. a r p a域的列表,这个域包含了I n t e r n e t地址(i n - a d d r)
的映射,即1 9 2 . 1 6 8 . 1 . 0网络的I P地址到主机名的映射。省略的目录语句告诉UNIX BIND域名
服务器这些文件所存放的路径是< c : \ w i n n t \ s y s t e m 3 2 \ d n s。
3.2 辅域名服务器
辅域名服务器包含域的授权地址信息,但这些数据是从主服务器通过域区数据传送而获
得的。辅服务器对数据的备份是很重要的,并且它们也应答查询,从而减轻了主服务器的负
担。BIND 8. x 将辅服务器称为从属服务器。
辅服务器也是有授权的,因为它们也有域区文件的副本,这些副本是从主服务器在域区
传送时获得的。辅域名服务器的功能包括两个方面:
• 将工作负荷分布到几台计算机。因为现在有多台机器处理对一个域名的查询,解析查询
的响应时间可以减少。负荷分布是因为解析器可以记录哪些域名服务器它们曾经使用过,
以及这些服务器对每次查询的响应时间。
• 取决于服务器所在的地理位置、路由等因素,有些服务器的响应比其他服务器更好一些。
30计计第一部分理解域名系统
解析器利用所保持的信息来对不同的查询选择不同的域名服务器。
• 冗余性。有了辅域名服务器,即使主服务器有故障而不能提供服务,域的请求仍然可以
转发,查询仍然可以被解析。特别有用的是在地理位置不同的网络安置辅服务器,或是
在一个国家的不同地区安排辅服务器。
对反向地址域和缓存的根域的本地主机解析每台计算机的0.0.127. in-addr. a r p a域文
件和根缓存文件的指向和内容通常都是相同的,因为每台计算机都有一个地址为
1 2 7 . 0 . 0 . 1的回饶端口。回饶端口经常标识本地主机( l o c a l h o s t ),用于网络服务的内部
通信。
域名服务器可以通过本地主机地址调用自己来进行解析,这可以加速域名服务
器的操作,因为此时的通信实际上并没有经过网络。
当然,如果仔细地看这些项目的话,就会发现活动目录集成域区的多主服务器( m u l t i -
m a s t e r)模型在没有辅服务器的情况下,也能完成上述所有的功能。
电子邮件是必须设立冗余点的很好的实例。假设x y z . c o m在San Jose. California有它的主域
名服务器。管理员决定在不同的子网设立辅服务器,但还在同一幢楼。如果xyz. com 和
I n t e r n e t的连接因故断了,则它不能立即回答外部的D N S查询。如果有人要发电子邮件到
x y z . c o m域,则肯定不能成功,而一般会得到“ u n k n o w n h o s t(主机名未知)”错误。
现在假设x y z . c o m决定在美国的东海岸设立辅域名服务器,其域名为a b c . c o m。如果x y z . c o m
的连接断了,则查询仍将由在a b c . c o m域的辅服务器来回答。此外, x y z . c o m解析外部查询的总
体响应也会改善,因为它有了总体的分布式安排更便于处理从美国各地到来的查询。例如一件
发送到x y z . c o m域的电子邮件,若出现了投递问题,就会再次排队,而不会就此终止传递。
以下例子显示了辅域名服务器的一个引导文件:
从上例可以看到域的数据源是来自主机1 9 2 . 1 6 8 . 1 . 2 2 0,这个辅域名服务器将存放域区文
件的备份文件,并称为h o s t s . d b。辅域名服务器缓存的指向也和主域名服务器一样。注意对于
0.0.127. in-addr. a r p a域来说它就是主域名服务器,因为回饶地址都是计算机自用的,因此每台
机器对自己的回饶网络来说都是主服务器。
辅服务器并不一定必须存放域信息的备份,但一般都推荐这样做。辅服务器保持这样的
本地副本使它能更快地启动,因为它启动时不必再立即向主服务器要求域区信息。并且如果
数据正准备更新,不需要传送比检查新域区更多的信息。尽管这并不能保证这份初始数据一
定是最新的,但至少辅服务器可以开始以这些数据来应答查询。
3.3 缓存域名服务器
缓存服务器可以改进网络中D N S服务器的性能。当D N S经常查询一些相同的目标时,安
第3章域名服务器的类型计计31
装缓存服务器可以对查询提供更快速的响应,而不需要通过主服务器或辅服务器。缓存服务
器所需的设置是很简单的,如以下例子所示:
缓存服务器的配置文件中只包括目录、回饶域( 0 . 0 . 1 2 7 . i n - a d d r. a r p a)和c a c h e语句本身。
对缓存服务器的唯一要求是应有一个包含域名服务器本身在内的根缓存文件。因为缓存
服务器是没有授权的,所以它也不能对域进行委托授权。缓存服务器可以配置为可转发查询,
然后将结果存储起来,以便为响应今后的查询所用。
如果一个机关或企业已有I S P提供的主D N S服务,那么,再配置一个缓存服务器可以很好
地改善系统的性能并且支持远程站点的链接。为了给Wi n d o w s配置一个缓存服务器, D N S服
务必须首先启动。当新的服务器建立后, c a c h e和回饶将自动产生。唯一需要的操作是在
Windows 服务器重启以后和终止其他系统以后保证D N S服务的启动。大多数用于支持一个
Wi n d o w s域环境的D N S服务的安装不需要I S P(I n t e r n e t服务提供商)。但是来自于公共名字空
间I S P或内部名字服务器的外部名字,会给本地缓存带来很多好处。
缓存服务器有不少优点,主要的是对多用户来说,系统的性能提高了,否则的话,这些
用户的查询还必须转发到另外的服务器来完成。缓存服务器也有缺点,它所存储的信息不一
定是最新的。不过可以设置信息的有效时间,以便控制缓存服务器在到达设置的时限时放弃
相应的缓存数据。一个问题是Windows 2000 DNS实现了N C A C H E,或者说是忽略响应缓存。
这通常不会带来问题,但有时也会带来混乱,特别是D N S管理员进行改变或测试时。
3.4 传递查询:前向服务器和从属服务器
一个D N S服务器可以指定另一个服务器为它的前向服务器( f o r w a r d e r ),以确定当它自己
不能回答查询时,下一步将把查询转向何处。而从属( s l a v e )关系是使服务器依靠它的前向服
务器来回答查询,它也不能再成为其他D N S服务器的客户机。前向服务器和从属服务器的基
本差别是:
• 前向服务器:发送查询到一台指定的机器,等待很短的时间,再开始自己查找。
• 从属服务器:发送查询到一台指定的机器,并等待回答。从属服务器本身不对查询进行
解析。
注意这里的“从属服务器”不是指辅服务器,而是一个实际上叫做“从属服务器”的定
义。
前向服务器是一台指定用来处理查询的机器(见图3 - 1)。
客户机,也包括其他的D N S服务器,在将查询发送到前向服务器后,等待一段时间,如
果没有收到回答,也可自己开始查找结果。因为大量的通信都要通过前向服务器,它们将建
立很大的地址缓存。如果要使缓存为很多用户使用,可使用前向服务器。
图3 - 1所示为前向服务器的处理过程:
1 ) 客户机向本地D N S服务器发出查询。
32计计第一部分理解域名系统
第3章域名服务器的类型计计33
2 ) 本地D N S服务器将查询转送到前向服务器,并开始等待。
3) 前向服务器向I n t e r n e t上的一台域名服务器发送查询并等待。
4) 如果没有收到回答,本地D N S服务器将查询发送到I n t e r n e t上的一台域名服务器。
图3-1 前向服务器代表其他D N S服务器进行查询
前向服务器和本地D N S服务器最终都能得到一个响应,并建立缓存。
如果一个客户机的域名服务器有一个指定的前向服务器并且接收到一个查询却不能从它
的本地域区文件或c a c h e中得到结果,此域名服务器不会执行递归查询来得到结果(第5章
“域名查询详述”将介绍递归查询),而是将查询转发到指定的前向服务器。由指定的前向域
名服务器来进行搜索和提供答案。如果前向服务器不能返回回答,服务器自身才开始一个递
归查询。
前向转发有一定的用途。用途之一是将查询转发到若干台确信能够解析的D N S服务器,
从而在这些机器上建立相应主机的缓存,以便于将来的查询。但前向服务器最经常的应用是
在防火墙内外建立双D N S服务器体系。一个连接到I n t e r n e t的机构需要解析I n t e r n e t主机名,但
可能因安全的原因,不希望将自己的网络暴露给I n t e r n e t的其余用户。这时可用一台内部的
D N S服务器将所有到机构的域的外部查询都前向转发到一台外部的D N S服务器(前向服务器)
来寻求答案。
从属服务器是必须使用前向服务器的D N S服务器(见图3 - 2)。从属服务器发送查询到指
定的机器,等待回答,若前向服务器没有很快地给出回答,也不允许从属服务器自己来解析
查询。这种选择可作为一种很有用的安全措施,因为可以使所有的查询都只经过由从属服务
器到前向服务器的一条通路。这也是一种很好的方法,使得只有得到授权的外部查询才能通
过防火墙,在此基础上,可以实施很好的安全措施。
图3 - 2所示的过程如下:
1) 客户机向本地D N S服务器发送查询。
2) 本地D N S服务器将查询前向转发到一台前向服务器,并开始等待。
本地DNS服务器
前向(DNS
服务器)
DNS 客户机
3) 前向服务器将查询发送到I n t e r n e t上的一台域名服务器并等待。
4) 如果没有得到结果,则从属服务器(在这种情况下,就是本地D N S服务器)也不会自己
开始解析。
图3-2 从属服务器必须等待前向服务器的响应
从属服务器是设置为使用前向服务器的D N S服务器,其唯一的限制是:从属服务器只能
从指定的前向服务器得到查询结果。再回到前面所提到的安全考虑,一台内部D N S服务器提
供对所有内部主机的名字解析服务。这提供了对解析是否终止I n t e r n e t服务的控制。
一台外部的D N S服务器对所有受保护的主机和机构提供外部域名的解析。而内部域名服
务应由防火墙内的D N S服务器提供服务以防止内部的名字和地址被外部知道。记住D N S服务
器上的任何信息都可以很容易地由一次简单的查询来发现。Windows 2000的活动目录集成用
访问控制列表(A C L)来控制访问。
为设置前向服务器,引导文件中必须具有描述前向服务器的条目,或者必须在“Forwarders”
选项卡中输入相应的信息,在“ Server Properties( 服务器属性)”对话框中用鼠标单击
“F o r w a r d e r s”图标就会显示“F o r w a r d e r s”选项卡。要打开“Server Properties”对话框,只需选
择服务器的“P r o p e r t i e s (属性)”即可。如果检查一下“Do not use Recursion(不用递归)”复选
框,会发现已经建立了从属服务器。
不论是上述哪一种情况,都必须将前向服务器的I P地址包含在配置中。以下的例子显示
了相应的引导文件条目。注意这里使用的是Windows 2000的缺省目录。在这里顺带提一下,
因为不管怎样有时你会忘记东西放在哪里,而如果有什么能告诉你它在哪儿将是非常棒的。
34计计第一部分理解域名系统
从属
DNS 客户机
本地DNS服务器
前向(DNS
服务器)
3.5 确定D N S服务器的类型
以下对各种不同的D N S服务器类型进行小结,可以帮助读者选择某一类服务器并加以实
现:
• 主服务器:具有一个或几个域区的授权。域区就是一个或几个域的数据,也可以是一
个域的部分数据。
• 辅服务器:也具有授权功能,作为主域名服务器的备份。它通过域区传送从主服务器
获得所有的域区数据。
• 前向服务器:由其他的D N S服务器指定的一台处理其所有查询的D N S服务器。
• 从属服务器:配置为使用前向服务器的D N S服务器,但它没有其他选择,必须使用前
向服务器进行所有查询。注意这里不是指辅服务器。
• 缓存服务器:通过自己的查询操作建立地址缓存的服务器。只用于缓存的服务器,没有
自己的域区数据,只为客户机进行查询。
Windows 2000 DNS服务器可以提供上述所有的服务,一个有趣的区别是当它被授权于一
个或多个域区时就叫做从属服务器。第11章将更加详细地讨论这些不同类型服务器的设置。
如果有了系统管理员的权限,就可以确定当前系统中的服务器是什么类型。系统管理员
或者可以阅读引导文件,或者通过D N S管理控制器观察域的属性。D N S服务器的功能在U N I X
系统引导文件中以无格式英文拼写。文件中也列出了有关域名服务器功能的语句,以有关服
务器的目的或功能开始。对于Wi n d o w s来说,这个文件告知你在服务器上的所有域区以及哪
些被用于缓存文件中。如果域名服务器是通过注册表来启动(可以通过注册表或者引导配置
文件启动),则引导文件只有一条语句,说明是由注册表启动。
使用D N S服务控制器时,可以用鼠标右键单击所列出的任何一个域名以打开“ Z o n e
P r o p e r t i e s(域区属性)”对话框,如图3 - 3所示。图中所示的“ G e n e r a l(常规选项卡)”给出
了域的有关信息,指出服务器是主服务器还是辅服务器。如果D N S管理控制器中除了1 2 7 . i n -
a d d r. a r p a外没有列出其他域,就可以知道这是一台缓存服务器或者是一台从属服务器。要区
别究竟是哪个,查看缓存文件或查看服务器属性的“ Root Hints(根提示)”选项卡。
如果没有管理员的权限,但知道服务器的I P地址,则可通过服务器任何一个域的S O A记
录来检查这台服务器。如果S O A记录的s o u r c e条目就是该服务器,则可以肯定这台机器就是这
个域的主服务器。
辅服务器可以提供它从主服务器传来的域区的授权数据。图3 - 3显示了辅服务器是如何配
置的,其中的I P地址域显示了所指定的主服务器的I P地址。可以将辅服务器安排在局域网中
来提供查询服务,以减轻广域网的负荷并提高安全性。同样,可以在一个较慢的连接上使用
第3章域名服务器的类型计计35
缓存前向服务器,因为它可以通过缓存本地查找的应答来减少所需带宽。
如果一台服务器还没有域区,则它可能是缓存服务器或还没有被授权的辅服务器。
图3-3 指向存储数据的域区文件的主服务器
3.6 小结
各种D N S服务器可帮助你设计系统并迎接域名服务的挑战。主服务器是数据的来源;辅
服务器是数据的备份,并能分担查询的负荷;缓存服务器也能减轻查询的负荷而不需要增加
管理工作量;前向服务器和从属服务器可以提高安全性,并体现缓存的优点。
第4章将详细讨论如何构造D N S记录、记录的内容,以及如何利用源记录实现D N S服务器
之间的交流。
36计计第一部分理解域名系统