Windows2000 DNS 技术指南 4


第4章域信息详述
本章内容包括:
• 数据库资源记录。资源记录(Resource Record) 简称R R,组成了域区文件的内容,是
D N S的核心数据。顾名思义,资源记录包含D N S应该知道的重要资源信息,这些资源就
是其他的D N S服务器和主机。该节将说明主要的资源记录类型并介绍它们的使用。
• 缓存文件。缓存文件(根提示)将标明根域名服务器,使得任何D N S服务器都能很容易
地找到域名系统树的根。该节介绍缓存文件、它的重要性以及如何使用。
• 委托授权。将你的主域名服务器向I n t e r N I C注册使得域外的需要访问你的域名列表的客
户机可以连接到这台服务器,还可用域名服务器记录( N S记录)公布你的辅域名服务
器。该节将解释为什么要公布授权服务器。
如果D N S是有生命的,那么有些事它是靠直觉完成的,而其他的功能是要靠学习才有的。
本章将介绍D N S应完成的基本工作,即哪些D N S几乎是靠直觉完成的事情(从它的域区文件
里得到资源信息),还将介绍各种资源记录的类型,可用来使D N S完成更高级的任务的满足
用户的需要(路由邮件,服务定位信息以及利用密钥交换来提高安全结构)。本章不涉及D N S
最近才具有的新的动态升级功能。
4.1 数据库资源记录
像任何其他数据库一样, D N S的体系结构也是由表组成的,每张表包含许多记录。D N S
数据库表称为域区文件( zone file)。大多数记录都有专门的含义,因为它们标识了许多资源
的位置,它们甚至可以和其他表中的记录相联系。资源记录类型包括授权开始记录S O A
(Start Of Authority)、地址记录A(A d d r e s s)、指针记录P t r(P o i n t e r)等。本章将在后面详细
地介绍各种资源记录类型。附录F“资源记录和I n t e r N I C缓存文件”提供了一个完整的资源记
录列表。
在域区文件中能见到什么样的记录取决于若干因素。首先要看是哪一种域区文件,若是
正向查找域区和反向查找域区就很少有相同的记录。另一个决定域区文件内容的因素是管理
员想要发布或者是需要发布什么信息。本节将详细解释各种重要的记录类型。应该对它们都
很了解,并知道它们是如何使用的。
当把域区信息以文件形式存储时, Windows DNS把域区数据库文件存放在% Wi n d o w s /
s y s t e m 3 2 / d n s目录下。Windows DNS也在. / s a m p l e s子目录下提供了若干模板文件以提供文件格
式的例子。
Windows DNS服务器能在三处存储配置信息和域区信息。配置信息一般存储在注册表里,
也能存储在兼容B I N D的引导文件里( U N I X机器这样做)。域区信息存储在域区文件或活动目
录里。D N S服务器引导配置信息在注册表里的位置是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 s,D N S,Z o n e s;文件名为B O O T。不像U N I X的NAMED. BOOT文件,Windows DNS
服务器允许它的引导文件里只有主服务器、辅服务器和缓存服务器的信息,图4 - 1显示了
Windows DNS服务器“P r o p e r t i e s(属性)”里的“A d v a n c e d(高级)”选项卡。
图4-1 Windows DNS服务器属性对话框,可以设置引导选项
当“Load Zone Data on start up(启动时载入域区数据)”选项设置为“From File(从文
件)”时,注册表信息就会自动产生一个引导文件,当变成“ From Registry(从注册表)”时,
先前的引导文件移入. / b a c k u p子目录下,不论是上述哪种情况,注册表总是保持当前信息,这
种改变是在“A p p l y(应用)”按钮按下时即时生效的。
这里容易引起误导的是,除非活动目录被使用,否则总是用域区文件来存储域区信息。
尽管在图4 - 1中有“From Active Directory and Registry(从活动目录和注册表)”选项,域区
文件(即真正的资源记录)还是不存储在注册表里。当域区信息存储在活动目录里时,域区
记录通过L D A P协议传送至可见的目录对象。尽管这些域区记录仍然用于任何辅服务器,但主
服务器上不再存在域区文件。同时,也不再有“ From File(从文件)”这个选项。
Windows DNS域区文件的格式是与R F C兼容的,并且本章中这样的格式同样应用于B I N D
域区文件和Windows DNS文件。本章所包括的信息将比在Window DNS管理界面所能看到的
要多得多。这是因为实际的数据存储比所能看到的要复杂得多,而在服务器中为尽量把事情
简单化则只需对配置的选项和缺省值进行选择。
R F C 1 0 3 5、RFC l183、R F C 1 6 6 4、R F C 1 8 8 6、R F C 2 0 5 2、R F C 2 1 8 1、R F C 2 0 3 5和R F C 2 6 7 2
(可从w w w. i s i . e d u找到)是根域资源记录的最有权威的文件。当使用D N S服务器管理控制器时,
Windows DNS会自动格式化记录,但如果使用引导文件选项并在Windows DNS和B I N D之间
来回移动文件,则需要知道如何使用文本编辑器来格式化记录以及如何让Wi n d o w s接受引导
文件。Windows DNS的一个出色的特征是它可以用D N S服务器管理控制台生成一个配置,然
后把配置存进一个引导文件里,显然,如果想从Windows DNS转到基于U N I X / B I N D的系统,
这是很有帮助的,没有别的更好的方法。
4.2 资源记录语法格式
以下的内容摘自RFC 1035,由Paul Mockapetris编写,解释了R R格式的语法(第3 2~3 4页):
38第一部分理解域名系统

这些文件的格式是一系列的条目。条目基本上是以行为单位的,但也可以用括
号来续行,并且续行文本的字符中可以包括C R L F (回车换行)。任何数量的Ta b键和
空格键的组合都相当于一个分隔符,用以分隔条目中的组成项。在主文件任何一行
的后面都可以加注释,注释以分号“;”开始。定义以下条目:
以上第一条定义空行。在文件的任何地方都可使用空行,空行可以带注释也可
以不带注释。以上还定义了两个控制条目: $ O R I G I N和$ I N C L U D E。$ O R I G I N后必
须跟一个域名,其作用是将当前域设置为条目中所指定的域。$ I N C L U D条目将在当
前域名文件中插入一个域名文件。$ INCLUDE条目中的域名是任选项,目的是指定
包含文件的当前域名。$ INCLUDE条目也可以带注释。注意,不论$ I N C L U D E条目
是否改变$ I N C L U D E文件的域,都不会改变父文件(当前文件)的当前域。
后两个条目代表R R(资源记录)的格式。如果R R条目以空格开始,则这个R R
是归以上条目中最后指明的域所有。如果一个R R条目是由域名(< d o m a i n - n a m e>)
开始,则重新设定记录的所有者。< r r>的内容可以有以下两种格式:
R R以可选项T T L和C l a s s开始,然后是与类型( t y p e)和类别( c l a s s )相应的t y p e
段和R D ATA(记录数据)段。c l a s s和t y p e使用标准助记符, T T L是个十进数。若省
略c l a s s和T T L的值,则缺省为最后一次曾指定的值。因为t y p e和c l a s s的助记符是不会
重复的,对它们的句法分析将是唯一的(这里所列的顺序和示例与实际资源记录中
的顺序是不同的,这里所列的顺序更便于进行语法分析)。带有< d o m a i n - n a m e>的
记录将占主文件数据的绝大部分。
域名的每一部分用字符串表示,并用“.”分开。域名中可以使用任何字符。
以“.”结尾的域名称为绝对域名,是完整的域名。不以“.”结尾的域名称为相
对域名,实际的域名是由相对域名和在$ O R I G I N、$INCLUDE 指定的源相连接后组
成的,或者是主文件在调用例程时的目的参数。当没有源可用时,相对域名则是一
种错误。
字符串< c h a r a c t e r- s t r i n g>可用两种方式来表示:可以是没有内部空格的连续字
符集;或者是用? ?括起来的字符集,这时的字符集可以用除了?以外的任何字符,如
果要用?符,则必须和反斜杠\连用。
这些文件都是文本文件,但有些字符或表示法有特殊的意义,特别是:
. 表示根。
@ 单独的@符表示当前的源。
/X 这里的X是除了0 ~ 9数字符以外的任意字符。这种表示法是要说明这里的X
符只是个普通的字符,而没有任何特殊的含义。如? / . ?就表示一般的“.”,
而不代表根。
第4章域信息详述39

/DDD 这里的D是八进制数, D D D是相应十进制数的八进制表示,所得到的
D D D也是作为文本,而没有其他的意义。
( ) 括号用于括起跨行的数据。括号内若有行结束符,也不承认是行的结束。
; 分号用来开始注释,分号后的内容可以忽略。
本章后面所描述的每种R R的语法表示和举例均出自R F C 1 0 3 5、RFC 11 8 3、RFC 1664。这
些文档是主文件格式的权威参考资料。不过,还是要提到一些资料:
• 资源记录条目不区分大小写,所以h o s t n a m e = H O S T N A M E = H O S T N A m e。
• 在资源记录的名字中,每个标号有6 3个字符长度的限制,每个全域名也不能超过2 5 5个
字符。
• 服务资源记录( S RV )中的下划线,在R F C 2 0 5 2目前的修订本中被指定,也许是暂时的,
在指定服务和协议域时使用。目前的RFC 2052bis草案意图废除1 9 9 9年11月1 6日的R F C
2052is dvaft-ictf=dnsind-ifc2052bis-0.5txt文件。
• 为了国际化,RFC 2044采用了标准的增加字符集的支持,它在RFC 2279后就被废除了。
RFC 2279中指定了U T F - 8标准,它并不是专门处理D N S的字符集,这个标准已经内置于
Windows 2000 DNS的资源记录支持中了。
下划线使用Windows NT中经常使用下划线来命名模式。但是当把N e t B I O S名字映
射到D N S域名空间时就会有问题。Wi n d o w s管理员必须认识到目前下划线在D N S主
机和域名字中是非法的。有些域名服务器仅仅不提倡使用下划线,但有些服务器却
返回错误信息和拒绝查询。在Windows 2000中,因为D N S和Wi n d o w s名字空间必须
相互紧密联系,所以下划线的使用是一个典型的问题。剩下的问题便是U T F - 8名字或
像下划线这样的特殊字符的使用将给D N S服务器协同工作带来麻烦。
开始授权记录S O A
开始授权记录,一般称为S O A记录(S t a r t - o f - A u t h o r i t y),是所有正向和反向域区文件中
必要的第一个条目。由RFC 1035定义的S O A记录提供了每个域需要的若干关键信息。最重
要的是S O A记录中指定了域的授权域名服务器。图7 - l是S O A记录的“ Domain Name Server
Manager Properties(D N S管理器属性)”对话框,在服务器列表中双击域区图标就可以打开该
对话框。
S O A记录非常重要,它们包含以下各段(在图4 - 2中可以看到其中的某些值)。以下的列
表中给出了所有的段(但不一定和Windows DNS管理器中所显示的完全相同)。
• 所有者( o w n e r):S O A记录的所有者一般是指域区的源,也就是域区文件所代表的域。
在MS DNS Manager中,所有者是出现在服务器列表中服务器名下面的域名,它们将自
动地写入数据库。
• 有效时间(t i m e - t o - l i v e,简称T T L):域缺省的T T L值是最小T T L值(见本列表最后一项,
M - T T L)。如果使用这个设置,它将使用域缺省的T T L值(M - T T L)覆盖单个记录。
• 类别(c l a s s): S O A记录的类别对I n t e r n e t来说缺省为I N。
• 类型(t y p e):S O A记录的类型就是S O A,并出现在资源记录的t y p e列中,以表明这个记
录是指出哪个D N S服务器对这个域有授权。
40第一部分理解域名系统

图4-2 在D N S管理器中观察S O A记录
• 域区文件源( zone file source):域区文件源就是这个域主D N S服务器的主机名。在
Windows DNS中,使用管理接口时这一项是自动产生的。
• 负责人邮箱的D N S名(m a i l b o x):这里的邮箱一般都是指域管理员的电子邮件地址。邮
箱表示为“.”格式,例如a c t i o n . c n r i . r e s t o n . v a . u s,它将翻译为电子邮件地址a c t i o n@
c n r i . r e s t o n . u s。a c t i o n可能就是C N R I域的管理员。
• 序列号( serial number):序列号是用来作为版本控制的。当域区文件修改时,序列号就
会增加,辅服务器就会发现这个变化。如果序列号没有增加,辅服务器将认为它的域区
数据还是正确的,并且不会启动传送来更新数据。从属服务器请求从主服务器得到一个
序列号并把它同当前序列号相比较。如果经发现主服务器的序列号比自身的大,它使开
始一个域区传送。如果两序列号相等,就没有域区传送发生。如果主服务器的序列号更
小,不仅没有域区传送发生,从属服务器还会在它的日志文件里写进主服务器序列号比
自身序列号小的信息。
• 刷新( r e f r e s h):刷新时间告诉辅服务器隔多长时间准备进行一次域区数据刷新。刷新
时间也称刷新间隔或刷新周期。当剧新时间已到,首先检查序列号以决定是否必须进行
刷新传送。如果序列号已增加,数据发生了变化,辅服务器将重新加载域区数据,并记
录新的序列号。第5章“域名查询详述”提供了递增传送和完全域区传送的信息。
• 重试间隔(retry interval):重试间隔规定辅服务器在一次传送数据失败后相隔多久再重
试传送。
• 到期时间( expire time):到期时间指定若刷新失败,辅服务器还能连续提供多长时间的
授权回答。如果因主服务器的故障使刷新失败,辅服务器将继续回答查询直到域区数据
到期。如果主服务器恢复正常,则辅服务器将重新开始刷新。如果域区数据到期也不能
成功地刷新,则辅服务器将停止回答对这个域的查询。
• 最小T T L(M - T T L):最小有效时间表明得到的回答在多长时间内是有效的。当客户机
第4章域信息详述41

查询D N S服务器时,除了得到响应外还得到T T L时间信息,使得客户机知道这个回答还
能使用多久而不需向服务器检查记录是否有变化。如果数据不是经常变化, T T L的值就
比较大。这时,不多的几次查询就能建立可连续使用的缓存。如果T T L的值比较小,客
户机的缓存就会很快到期失效,使得即使是同样的记录,也要频繁地查询。T T L值在资
源记录中的使用是不常见的,这种使用意味着那些资源记录有一个继承的T T L值,这个
值是在域中S O A资源记录中作为最小T T L值指定的。
一个典型的S O A记录如下所示:
符号@也可用来表示当前的源(在这个例子中为e x a m p l e . n e t),以下的S O A记录和上面的
例子是等价的:
在这里,@就相当于e x a m p l e . n e t。如前所述, T T L段经常是省略的,而M - T T L的值则将
适用于域区的每个记录。注意时间均以秒为单位。
4.3 域名服务器(N S)记录
域名服务器记录告诉D N S哪个服务器是这个域或者它的子域的委托授权服务器。委托授
权给一个服务器以授权来回答查询。委托授权类似于经理把工作委托给另一个成员。一个域
名服务器可以将一个子域的全部授权都委托绘其他的服务器,或者一台主服务器可以将授权
委托给辅服务器,使得它们虽然不是地址映射的源,也可以回答查询。4 . 5节将详细描述委托
授权。图4 - 3是N S记录的域名服务器“管理器属性”对话框。
图4-3 在D N S管理器中观察N S记录
42第一部分理解域名系统

在正向域区文件和反向域区文件中都要使用N S记录,N S记录的格式如下:
记录的第一段是所有者,表示该服务器已被委托授权的域。下一个T T L段经常是空白,
管理员一般都根据S O A记录的M - T T l的值来作为T T L值。后面的类别( c l a s s )段几乎总是I N,代
表I n t e r n e t。类型N S表明它是N S记录。最后是域名服务器的“主机名.域名”,即被授权提供
回答的服务器的全域名。这个域名应该有尾部的“.”,以保证解析器能知道它是一个全域名。
可以看到,N S记录和S O A记录有许多类似的地方。两者都有所有者、T T L和类别,这几个段
在两个记录中很可能是相同的。
对每个委托授权的域名服务器都有一个N S记录,还有一个从父服务器或根服务器指向委
托授权服务器的粘合记录。可以用N S记录指定附加的域名服务器,但它们只能用于内部客户
机,外部机构只知道在I n t e r N I C注册的域名服务器和域区的委托授权服务器。
应该指出上面所说的是通常方式下的委托授权。在Windows 2000 DNS管理器中,委托授
权显得有点不同。在这里,既可通过选择“新域区”又可通过选择“新委托授权书”来生成
N S记录。前者基于当前服务器设定生成一个有N S和S O A记录的新域区。后者在当前点生成一
个子域,并且生成一个N S记录。尽管MS Windows 2000文档和这些项的使用相当的兼容,但
还是应该知道在本章中提到的委托授权通常都有一个特殊指定的意义。
N S记录有以下形式:
可能通常见到的N S记录会是以下形式:
因为域区文件中第一个记录是S O A记录,而在SOA 记录中已说明了所有者。所以在N S记
录中可以省去所有者,从而得到以上的形式也就是假定所有者是由S O A记录指定的当前的源
e x a m p l e . n e t。
可以注意到在以上的例子中没有指定T T L值,而域名服务器N S 1 . I S I . E D U . N S 1 . U S C . E D U .
是用点号结尾的正式域名。没有要求委托授权的服务器和授权的域一定是同一个域,这也是
D N S结构的一个优点。注意这些域名实际上有不同的域名后缀。
4.3.1 指针记录和反向查找
指针记录也称P T R记录,它是反向地址解析的关键记录.如果已知一台主机的I P地址,而
要知道其主机名,就需要从反向地址(或直接简称地址)到主机名的反向解析。P T R记录是
[反向网络地址] . i n - a d d r. a r p a域的域区文件的主体。图4 - 4是P T R记录的D N S管理器属性对话框。
反向域区文件(i n - a d d r文件)也像其他文件一样是以S O A记录和N S记录开始的,而文件的
其余部分则通常都是P T R记录,有时是规范名字( C N A M E)记录。
P T R记录的格式如下(参见图4 - 4):
观察1 . 1 6 8 . 1 9 2 . i n - a d d r.arpa 域的主服务器的域区文件,有如下的形式:
第4章域信息详述43

图4-4 在D N S管理器中观察P T R记录
首先,注意主机名后面都有“ .”,也就是都是全域名,所以这些名字不需要再附加其他信
息。如果尾部没有“ .”,则域区的源应加到主机名的后面。因为源是1 . 1 6 8 . 1 9 2 . i n - a d d r. a r p a,
所以域名会变得很难看。
因为这个域区文件表示的是反向地址映射,数字1 . 1 6 8 . 1 9 2要加在P T R记录中出现的数字
的后面。因此,n s . e x a m p l e . n e t的反向地址是1 . 1 . 1 6 8 . 1 9 2。把这个数字倒转,就是它的I P地址
1 9 2 . 1 6 8 . 1 . 1。
这个例子使用了C类地址的表示法。对于B类网络,其反向( i n - a d d r)域区文件将有所不
同。以1 3 2 . 1 0 . 0 . 0网络为例,域名为x y z . c o m。在引导文件中,这个域的反向( i n - a d d r)域区
文件的条目将表示为:
域区文件可设置为:
另外,也可使用$O R I G I N命令将此域区以域来分段:
44第一部分理解域名系统

键入带句点的全域名在Windows NT4中,M S知识集的# Q 1 5 4 5 5 5文件对于何时在
DNS 管理控制器中应该输入带尾部“ .”的全域名,何时又可以不这样输入做了说明:
当指定的服务器是记录中的数据时(如N S记录中的域名服务器、C N A M E记录中的
规范名、S O A记录中的主域名服务器、M S记录的邮件服务器等),全域名必须加尾
部的“.”,因为这些段中的服务器可以是在当前域中,也可以不在当前域,所以必
须用全域名。而其他的和服务器有关的名字可不使用加尾部“.”的全域名(如A记
录中的主机名、C N A M E记录中的别名、S O A记录或N S记录中的域名等),这些名字
在使用时会被域补充成全域名。在Windows 2000 DNS服务器管理控制器中,也应用
了相似的语法分析。并且当不需要键入“ .”时,你是否键入它有时与写进域区文件
的内容并不相关。
这种将域区在逻辑上分段的文件设置可以大大地简化大型域区文件的管理。$ O R I G I N命
令重新设置了以下所有R R的域名,使之与$ O R I G I N命令中指定的域名一致。若使用$
I N C L U D E命令则还可以进一步简化。使用$ I N C L U D E命令可以把每个源的P T R记录放在不
同的文件中,然后通过主域区文件中的$ I N C L U D E命令插入这些文件。这样所得到的域区文
件有以下形式:
这时,两个$ I N C L U D E命令中的文件应包含相应子网和主机的P T R记录。
有时候,在子网边界通过完全的八位字节来授权i n - a d d r. a r p a域并不能满足需求。当使用
无层次I n t e r n e t域路由( C I D R )时,一个与逆向查找很相像的查找是基于规范名记录和i n -
a d d r. a r p a子域的委托授权的。详见R F C 2 3 1 7。
4.3.2 地址(A)记录
地址记录是主机名到I P(版本4)地址的映射。这些记录在正向查找域区文件和根缓存文
件中使用。对于I P版本6,使用相应的4 A(A A A A)资源记录。A记录的格式和N S记录的格式
类似。A记录中包含所有者、类别、T T L、类型,最后是主机地址。以上的顺序可以有所不同,
例如将TTL 值放在类别的前面也是可以的。Windows 2000 DNS服务器将在同一台主机的多个
A记录间循环,每个A记录给主机名提供一个不同的I P地址。
A记录的格式可以是以下形式(参见图4 - 5):
一个具体的A记录可以是:
在一个A记录中,所有者就是记录本身的主机名。因为由S O A记录表明的源是e x a m p l e . n e t,
上面例子中的主机名实际将转换为f s 1 . e x a m p l e . n e t。这是因为f s 1没有加“.”,根据D N S缺省的
第4章域信息详述45

特性就会将源的域名加在资源名的后面。其结果是对主机f s 1 . e x a m p l e . n e t的查询就指向这条记
录,并返回相应的I P地址。图4 - 5是A记录的D N S管理控制器属性对话框。
和P T R记录类似,TTL 值是由S O A记录的M - T T L值来获得的。$ O R I G I N和$ I N C L U D E语
句也可以用在A记录中。如果域的主域名服务器也为子域服务,则可使用$ O R I G I N语句重新
将这条命令以下的记录的源设置到相应的子域。同样, $ INCLUDE语句也可将一些记录组分
段放人相应文件,使域区文件得以简化。
图4-5 在D N S管理控制器中观察A记录
4.3.3 邮件交换(M X)记录
邮件交换记录简称M X(Mail Exchange)记录。M X记录为域的成员提供到哪里投递邮
件的信息。M X记录的格式类似于N S记录,它也包含所有者、T T L、类别、类型和邮件交换
者本身。此外,M X记录还有一个优先级段,用来规定每个可以传送邮件的主机的优先级。用
一个M X记录指向一台用于邮件的主机并不是配置那台主机接收邮件!图4 - 6给出了M X记录的
D N S管理控制器属性对话框。
M X记录的格式如下:
以下是M X记录的例子(参见图4 - 6):
第二行说明了两件事情。一个是,若S O A记录是文件中设置源的最后一条记录,则N S会
自动地成为S O A记录中指定域e x a m p l e . n e t的邮件交换者。要注意文件中M X之前的记录顺序产
生的影响是很大的,所以如果紧接在M X前面的记录是A记录而不是S O A记录(如s e c o n d -
fiddler IN A 192.168.1.32),主机m a i l h u b就成为主机s e c o n d f i d d l e r的邮件交换者而不是域
46第一部分理解域名系统

e x a m p l e . n e t的邮件交换者。所以,如果M X记录中没有指定所有者, D N S将认为其所有者是以
前的记录中最后规定的那一个。
图4-6 在D N S管理控制器中观察M X记录
如果域可以有若干邮件交换者,则可使用优先级来指定它们的使用顺序。使用优先级可
为邮件的投递提供一定的冗余度以保证邮件的投递。优先级的值应是0~6 5 5 3 5之间的数,数
值越小,优先级越高。
以下的M X记录中使用了优先级1 0、2 0和3 0,其中1 0优先于2 0,2 0又优先于3 0。
在以上的例子中,三个M X记录都是e x a m p l e . n e t域的邮件交换记录,优先级的设置表明
m a i l h u b是主邮件交换服务器。
如果m a i l h u b不可用或者太忙,邮件可以发送到m a i l h u b 2。如果m a i l h u b和m a i l h u b 2都不响
应,就可以选用m a i l h u b 3。
4.3.4 规范名(C N A M E)记录
规范名记录简称C N A M E(Canonial Name)记录。C N A M E记录对一个规范名(域名、
主机名)建立别名。别名指向或另一台机器。例如,可以通过使用C N A M E记录,使主D N S域
名服务器和邮件主机是同一台机器。图4 - 7是C N A M E记录的D N S管理器属性对话框。
C N A M E记录的格式有以下形式:
试考虑以下情况:某企业已注册了n s . x y z . c o m为域的主D N S服务器,但邮件程序又要求使
用专门的计算机名如m a i l h o s t作为邮件主机名。为解决这个问题,可使计算机的实际名字
第4章域信息详述47

(规范名)为n s . x y z . c o r n,然后加一个C N A M E记录使得到m a i l h o s t的邮件也送到n s . x y z . c o m。
用这种方法,除了管理员以外,其他人都不知道两个名字或者两种服务实际是使用了一个地
址。试考虑以下假定:某企业使用f t p . x y z . c o m作为F T P的主服务器。它还想运行一个We b服务
器,但We b服务器被命名为w w w. c o m,并且和F T P服务在同一台机器上运行,于是便可以加一
个规范名记录,把w w w报文指向f t p . x y z . c o m。
图4-7 在D N S管理控制器中观察C N A M E记录
用邮件交换程序建立循环在邮件交换程序中,如发送邮件,要避免产生循环,因为
循环使邮件无法投递。循环将使邮件在一个圈中循环投递而没有最后的目的地。如
将邮件发送到一台机器,这台机器将邮件发送到另一台机器,而最后又将邮件发送
回第一台机器。有些邮件程序通过对本地主机和其他机器不使用相等或更小值优先
级的M X记录来避免循环。
与以上情况相应的域区文件有以下的形式:
名字m a i l h o s t . x y z . c o m和ns.xyz. com都会被正确解析,并得到同样的I P地址。
另外一个例子是用C N A M E记录指定F T P和W W W服务的地址:
C N A M E记录也可用于F T P、T F T P和H T T P等其他服务。C N A M E记录可以使这些服务所
在的主机使用任何已成习惯的名字。C N A M E也可以使得虽然改变了有关服务的物理主机,但
这些服务使用的机器名不变,照常提供服务。这样就可以通过使用新的计算机来提高服务的
48第一部分理解域名系统

性能,而不影响服务的正常运转。因为通过C N A M E记录很容易为服务指定一台新主机,而一
般的用户都不会察觉。注意使用S RV记录也可以提供这种好处。
指向一台不真实的主机M X记录和N S记录都不能指向一台不真实的主机,也就是说,
一台仅仅以C N A M E别名命名的主机。在N S记录中指定的所有主机也必须在同一个
域区文件里有一个A记录用作直接的解析。如果忘记这些规则中的一个,域名服务器
不会停止运作,但它会产生出错信息。
4.3.5 服务(S RV)记录
从技术上来说, S RV记录是一个实验性的资源记录,微软构造了一个服务基础来消除传
统的N e t B I O S服务,这个基础是依赖于定位提供查询服务主机的S RV记录的。在旧的操作系统
( N T 4或更早)下,主机提供什么样的服务是通过N e t B I O S来广播的。在新的操作系统即
Windows 2000 下,则通过使用S RV记录来实现。客户机必须认识S RV记录从而通过S RV记录
找到提供所需服务的主机,换句话说,如果客户机不知道该向D N S询问些什么,它就不会得
到答案。当客户机能够查询一种类型的服务并且得到回答,它将得到一个I P地址,以便和所
请求的服务取得联系。
一个实例是一个用户通过客户机请求登录上网,要做到这一点,客户机必须能够确认用
户使用了正确的域控制器。即客户机必须知道向何处发送确认请求。客户机应向作为登录域
域控制器的服务器发送一个D N S查询。尽管实际的过程更为复杂,但是在域控制器被确认后,
用户身份认证过程会继续。
当D N S能够执行动态更新时,服务记录由N E T L O G O N进程创建。用来保持活动目录结构,
否则,一些S RV记录必须手动地创造,下面列出了一些需要S RV记录服务类型的例子。S RV记
录能够被用来广播除了已能被查询的服务外的其他服务。图4 - 8显示了创建广播s 1 . e x a m p l e . n e t
主机上的H T T P服务器的S RV记录的过程。
图4-8 创建广播s 1主机上的- h t t p . - t c p . e x a m p l e . n e t的服务记录
服务记录的格式如下所示:
第4章域信息详述49

注意在“s e r v i c e”和“ p r o t o c o l”之间必须有一个点号。优先级值( < p r i o r i t y >值)很像M X
记录的优先级值,值越小,优先权越高。取值的范围从0到6 5 5 3 5。权值( < w e i g h t >值)用在对同
一个服务有多个具有同等优先权的记录时,取值从1到6 5 5 3 5,查询被响应的早晚与权值成正
比。这样做比用轮转法对负载平衡的影响更先进一些。当不考虑负载平衡时权值被置为0。对
于目标( t a rg e t )域而言,还有特殊值,即当记录中指示的服务在此域中被确认为不可用时,便
在目标域中填入一个句点。
以下是一个S RV记录的例子。
一些活动目录所需的由S RV记录广播的服务类型如下所示:
_ldap._tcp.<domainname> —允许客户机在指定域中找到l d a p服务器。
_ldap._tcp.<sitename>._sites.<domainname> —允许客户机在最切合指定站点的域中找到
l d a p服务器。
_gc._tcp.<forestname> —允许客户机找到使用活动目录根域的全局目录服务器。
_gc._tcp.<sitename>._sites.<forestname> —允许客户机找到与指定的使用活动目录根域
的站点最切合的全局目录服务器。
_kerberos._tcp.<domainname> —允许客户机找到对本域的kerberos KDC服务。
_kerberos._udp.<domainname> —除了使用U D P而不是T C P协议外同上。
_kerberos._tcp.<sitename>._sites.<domainname> —允许客户机找到最切合指定站点的域
中的K D C。
_kpasswd._tcp.<domainname> —允许客户机找到域中的k e r b e r o s改变密码服务。
_ k p a s s w d . _ u d p . < d o m a i n n a m e >—除了使用U D P而不是T C P协议外同上。
注意一些用_ m c d c s作为< d o m a i n n a m e >或< f o r e s t n a m e >的第一个限定词的S RV记录是被用
于构造域控制器的分类和服务查询树的。这样活动目录客户机和服务器就能通过简单的查询
而不是一系列的链式查询来定位。这与用_ s i t e s把活动目录中与指定名字站点最切合的服务定
位收集在一起是很相似的。
4.3.6 Windows Internet域名服务器(W I N S)记录
Microsoft DNS服务器和其他一些专门适用于Windows 2000/NT的服务器支持W I N S记录类
型。它不是一个与R F C一致的资源记录。W I N S记录的格式与其他记录格式基本相同,但也有
一些差别,为了理解W I N S及其类似于D N S前向服务器作用,见第1 6章。在小范围内,当客户
机没有使用A记录在D N S上注册而是在一台W I N S服务器上注册,此服务器的资源记录能让
D N S回答那些由N e t B I O S命名的客户机的查询。但必须是在W I N S记录位于域区根部的域中才
能进行。
W I N S和W I N S记录在D N S中的使用有许多值得注意的地方,所以有一章专门用来讨论它。
在这里要注意在向非Microsoft DNS服务器(极少情况)进行域区传送时,W I N S记录应当被省略,
这是R F C的规则来决定的。所以要记住,只有Windows DNS服务器才知道W I N S有什么用途,
你的I S P可能不希望在域区传送时将W I N S记录传送到它的服务器!
比较好的设计是Windows 域的辅服务器也运行MS DNS,而不是U N I X主机的D N S,这样,
W I N S的记录就可以传送到所有需要它的服务器。这种做法也符合这样的设计规则:主服务器
50第一部分理解域名系统

和辅服务器不仅都是授权的,而且它们可以访问所有相同的信息。如果只有一些域名服务器
解析域内的W I N S地址,客户机将会有不确定的行为。
W I N S记录格式的最基本的形式如下所示:
这里,选项<L lookup-timeout>值是D N S等待W I N S服务器作出回答响应的时间, Wi n d o w s
2 0 0 0的缺省值是2秒。<c cache-timeout>值是D N S缓存W I N S响应的时间长度。Windows 2000
的缺省值是1 5分钟(以秒的形式给出)。这两个在使用时都必须用L或C作为值的前缀。L O C A L
选项的参数控制域区传送的传播,当此选项在使用W I N S记录将不会被传送。注意S O A记录的
最小有效时间与W I N S记录无关,因为C<cache timeout>参数实际目已决定了D N S能保持记录
不变的时间。
以下是一个W I N S资源记录的例子:
利用W I N S查找特性的最简单的方法是通过Windows DNS管理控制台将一条W I N S记录加
到域区文件。要加入一条W I N S记录,先在D N S管理控制台中选中正确的域区根节点,然后再
单击右键从上下文菜单中选择属性( P r o p e r t i e s ),出现一个新的对话框。在这个域区属性对话
框中,选择W I N S选项卡就可以添加W I N S记录以及输入W I N S服务器的I P地址,如图4 - 9所示。
图4-9 配置域区以使用W I N S前向查找
只使用可靠性较高的W I N S服务器,并且要知道D N S在查找失败后必须再向下在W I N S服
务器上查找,所以它必须和W I N S交流,这样你的D N S服务器必须具备相当的能力。如前所述,
这样的W I N S记录必须在域区根部。这意味着此域区里所有在根域以下的子域都能使用W I N S。
这样单个的被W I N S解析的N e t B I O S名字看起来就像多个D N S全域名。这就是为什么建议仅为
此目的而单独创建一个域的原因。如图4 - 1 0中所示使用了一个新的p c . e x a m p l e . n e t。在
Windous DNS服务器管理控制台中,这样的新域必须作为一个新域区被创建。
第4章域信息详述51

4.3.7 反向Windows Internet域名服务器(W I N S - R)记录
Windows Internet域名服务器( W I N S )的另一个选项是反向W I N S记录,可以简称为W I N S -
R记录。这种资源记录用在i n - a d d r. a r p a域并由W I N S为D N S提供反向查找的能力。W I N S - R记
录的格式和W I N S记录很相似,其差别在于存放记录的域区文件不同以及最后一个参数不同。
W I N S - R记录的形式如下所示,它的“ L O C A L”和“T L M E O U T”选项的意义和W I N S记
录的相一致。
在Windows DNS管理控制台中,W I N S - R记录通过i n - a d d r. a r p a域的域区属性对话框来设置
成有效或无效(见图4 - 1 0 )。选择“ W I N S - R”选项卡,指定应该加到从W I N S得到的主机名后
面的域名。选项卡中还有一个选项可以指定W I N S - R记录的影响范围,以防止将记录传送到不
能理解W I N S记录类型的辅服务器。
图4-10 配置一个i n - a d d r. a r p a反向查找域区来使用W I N S - R记录
4.4 缓存文件
缓存文件(cache file)保存根域名服务器的名字和地址。缓存文件有时称为提示文件( h i n t
f i l e ),因为它可以给服务器提供如何解析困难查询的提示。缓存文件并不如它的名字所隐含的
那样存放以前解析的结果。缓存文件不能和域名服务器的缓存相混淆,缓存是在查徇被解析
时建立的,相反,缓存文件通常包含根服务器的名字和I P地址,对于I n t e r n e t缓存文件条目是
静态的(除非I n t e r N I C增加一个新的根服务器),并且在通过标准的委托授权不能复位一个主机
时,它们会给出一些其他可用的D N S服务器, M i c r o s o f t文档经常称此为根隐含文件。在
Windows 2000/NT中,它以名为C A C H E . D N S的文件给出。图4 - 11显示了D N S服务器。缓存文
52第一部分理解域名系统

件的内容,坦白地讲,缓存文件作为信息并不是很有用,但它必须存在以使D N S能工作。
D N S服务器假设缓存文件里的条目都是合法的,并且是可达的主机。当一台D N S服务器不能
到达这些根服务器进行查询解析时,就会导致严重的死循环。
如果使用的是“拆分( s p l i t - b r a i n)”式的D N S服务器设计,或者当服务器不和I n t e r n e t连
接时,或者I n t e r N I C根域服务器变化时(这是很少发生的)才需改变缓存文件。可以直接通过
F T P从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。
图4 - 11 DNS服务器属性对话框中的根提示文件C A C H E . D N S
保证缓存文件有内容应保证缓存文件是有确定内容的。如果其中没有定义根级服务
器, D N S服务器可能陷入死循环。在这种情况下,由于没有定时机制来终止循环,
也就不能再解析任何其他的主机。
通过缓存文件访问根域服务器
域名服务器必须尽最大的可能来回答查询,即使它们没有包含可以迅速和直接回答的本
地信息。有些递归查询需要D N S服务器从其他地方获得回答。如果在域名树中上溯没有得到
结果,缓存文件能使D N S服务器很快地访问根域服务器,从而在树中找到向下查找的途径,
到达指定主机的域的授权D N S服务器。
如果网络中的计算机没有连接到I n t e r n e t或者是使用“拆分”式设计,但仍使用D N S进行
主机名的解析,缓存文件仍必须指向根域服务器。如果根域名服务器恰好就在本地网域名树
的顶端,则引导配置文件中的缓存指向将不是缓存文件,而是指向一个包含这个域名服务器
的名字和I P地址,并作为根域授权的域区文件。这样做是合法的,并且工作得很好。对于不
能回答的查询将认为是不存在的域。如果此域名服务器能指向另一个它认为是根服务器的计
算机,则查询还可以继续并得到良好的结果。M i c r o s o f t推荐的一个可选方案是用一个仅包含
“.”或仅包含那些在指定的专用D N S设计中起根服务器功能的服务器的缓存文件。
第4章域信息详述53

4.5 委托授权
委托授权是指命名一台域名服务器的行为。为一个只有两层的域确定授权服务器时,首
先必须做的事是向I n t e r N I C注册。识别子域授权服务器的必要方法是通过父域的委托授权。委
托授权将域的主域名服务器和辅域名服务器在I n t e r n e t上公布,委托它们为授权服务器。委托
一个服务器所需要的只是一个N S记录,并且需要这台服务器有合法的A记录。向I n t e r N I C注册
一个域的行为实际上是向I n t e r N I C发出的为自己的域里服务器委托授权的请求,这个服务器是
在注册模板中指定的。
如果一个域名服务器已被委托为域的授权服务器,则这个域外部的客户机和域名服务器
就能找到它并通过它来进行查询。在很少情况下,两台域名服务器,一台主服务器和一台辅
服务器,在一个域中都被确认是委托授权的。这并不意昧着所有的辅服务器都必须被委托授
权,只有那些要被域外部的计算机访问的域名服务器才需要被授权。
辅服务器也可以只属于域的内部,只有直接配置使用它们的主机才可以向辅服务器提出
查询。如果一个域名服务器已是域的授权,但没有确定为可以回答查询的辅服务器,则通过
这个服务器进行查询的主机将收到“ lame delegation(不完全委托授权)”的错误信息。
还需要指出的是Microsoft DNS服务器信息有时使用委托授权和通常情况下不一样。例如,
在管理控制器中,称做“ new delegation(新授权)”的任务不仅创建一个N S记录还创建一个子
域。在这种情况下,其实是委托授权了一个新子域。
4.6 小结
本章描述了D N S所存储的信息,对一些重要的资源记录做了较详细的解释。也讨论了委
托授权和授权假设以及缓存(根提示)文件。
54第一部分理解域名系统

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值