第7章动态DNS和活动目录
本章内容包括:
• 动态D N S(D D N S)。从Wi n d o w s和D N S管理员的角度对D N S最新的动态更新特征作了
一个简要的概述。该节略述了安全连结问题和域区文件清除,还详细讨论了Wi n d o w s
2 0 0 0中的“废物清理”问题。
• D N S域区的活动目录集成。论及了用活动目录来存储D N S域区文件,为何这样使用的原
因,它提供什么服务,以及面对决定是否使用这个可选功能时的考虑,还详细讨论它提
供的动态更新安全问题。
• 依赖于S RV记录的活动目录。概览Windows 2000 域环境中S RV记录的用法。在所有
Windows 2000支持的D N S的新特征中,S RV记录是支持活动目录所必需的。
• 把活动目录与D N S结合起来(或不结合)。收集一些因素的服务,以及在使用这项技术
时哪些方面需要作出有见地的决定。
Windows 2000的活动目录实现了L D A P(轻便目录访问协议)目录服务。一段历史可以
帮助理解这意味着什么。最初的X . 5 0 0目录服务协议因为种种原因没能完全实现商业化,从而
退出了历史舞台。特别指出的是,正是这样一个如此复杂的规范,导致了它的一个子集的实
现,那就是L D A P协议。
尽管L D A P协议的特征仍然在发展,但Windows 2000现在支持一个事实是:现有的L D A P
协议的实现通常不支持全球范围的定位服务, D N S便是其中一个。X . 5 0 0最初的概念是只提供
定位的目录结构及在目录结构中定位的能力。而L D A P协议的实现却集中于目录结构的使用更
甚于对它的定位。
活动目录的设计利用了现有D N S的定位能力,并通过活动目录与域名空间的紧密联系而
实现。结果,活动目录里最高层的对象在名字上看起来像D N S域。这恰恰是因为在这儿使用
的域控制器对象代表Windows 2000的域边界。对Windows 2000的最初版本而言,它们本来是
打算以有相同结构的D N S域和子域命名的。
这里隐含的意义有很多。本章分析了一些源于这种设计及源于使用支持此设计的D N S的
最新特征的能力、相互作用以及缺陷。
7.1 动态DNS
D D N S(动态D N S)RFC 2136详述了能被D N S客户端用来请求改变D N S域的更新操作
(定义了新的D N S操作码)和消息格式。正如我们所看到的,域内容必须在本域的主服务器上
产生,于是动态D N S定义当辅服务器接收到一个更新请求时,应该被向前传送到主服务器进
行。如果认为这些听起来很简单易懂,那么就等一会儿,后面还有很多内容。更新很容易,
第二部分使用Windows 2000
D N S服务器
实现就难了。
通过对客户机所在域的授权域名服务器的定位(对N S记录的请求)来更动态更新客户端,
这样可以通过请求地址注册或任意的指针记录的注册来广播它的存在。Windows 2000实际上
是查询S O A记录而不是N S记录,然后直接向此域的主机注册。在客户机做完这些以后,它的
名字就可以被解析了,同时I P地址也能被任意检验。就象资资源记录被手工键入的一样。
如果这样做很简单的话,任何一个D N S管理员都会像一个刚拥有一辆新自行车的小孩一
样激动。正如我们所知道的,不付出代价或冒险是很难从新事物中获利的。否则老早以前就
这样做了。
7.1.1 什么是动态DNS
RFC 2136说明了D N S的动态更新能力,它介绍了D N S更新消息格式。利用更新消息格式,
客户端可以删除一个资源记录、添加一个资源记录、或检测与维护先前状态。
R F C详细说明了记录集的用法,例如,在一个D N S域里对W W W有多个相同名字(就像多
个A记录一样)的记录集。更新操作可能针对单个资源记录、一个资源记录集或多个资源记录
集。通过动态更新,可以添加资源记录,也可以删除资源记录和资源记录集。
测试一定的规则是否适合,能够应用(例如,对f s 2 . n q . e x a m p l e . n e t没有A记录存在)。这
些测试中,有的是更新请求能继续下去而必须使用的先决条件,有的只是没有相关操作的简
单的维护。这些维护利用了一种更新消息,这种更新消息有一个没有相关更新操作的测试,
从而提供了一种查询D N S数据库以确定某些资源记录或资源记录集是否存在的简单方式。
D N S服务器告知客户机维护测试或者更新操作的输出结果。如果更新操作有相关操作和
必需的先决条件,就由D N S服务器实现更新。在这种情况下,更新在一种完全无反应的方式
下进行,也就是说,此时的更新操作是原语。
对于对单个资源记录的简单的添加或删除请求,更新消息是没有限制的。更新请求可以
删除整个资源记录集。因为对通配符使用的限制,更新操作需要被清楚地指定。
RFC 2136规定了实时指定的或标准的R F C安全保障,用以施加于更新过程,但却并未为
此定义一套机制。RFC 2137首次定义了安全D N S动态更新规程。动态更新的安全问题在继续
发展,许多标准的R F C方法需要公共密钥机制提供支持。在Windows 2000的最初版本中,实
现了支持K e r b e r o s的安全方法(见本章后续章节)。
7.1.2 Windows 2000客户端对动态DNS的使用
上节提到Windows 2000客户端可以直接到主D N S服务器进行D N S更新,之所以能这样做
是因为对域数据的任何改变都要在S O A服务器上进行。Windows 2000第一版的客户端配置的
动态D N S更新的缺省值是每2 4小时试图对它的D N S条目刷新一次。
后续章节将会更清楚地讲到,不必要的更新带来了整个系统不必要的开销。所以
Windows 2000客户端做的其实比它们被指示的更高明。当它们注册的时候,它们首先发送一
个只有断言的更新,即测试一下D N S所知道的东西从客户端的角度来看是否是正确的。如果
是,则不必更新。如果客户端确实需要更新,并且域区是活动目录集成的,它将在注册失败
后尝试是否存在任何其他主服务器。如果客户端仍然失败,更新过程将在5分钟后重试,并且
等待1 0分钟。如果仍然不成功,则将在再一次尝试之前等待5 0分钟。一台Windows 2000的机
70第二部分使用Windows 2000 DNS服务器
器,在被设置为动态更新D N S之后,将会坚持不懈地让自己为人所知。
第1 5章中讨论了Windows 2000 DHCP(动态主机配置协议)服务器代表客户机进行注册
的能力。它能被设置成多种方式,但Windows 2000客户端的缺省值是处理A记录,而D H C P服
务器的缺省值是处理P T R记录。Windows NT DHCP服务器没有这种能力。D H C P能被设置为
既注册记录类型,又能对非Windows 2000客户端执行这种注册。这都是通过升级安全措施和
注册清理来实现的(见后续章节)。
7.1.3 问题是什么
既然动态D N S能让D N S管理员从维护域区文件的繁重劳动中解脱出来,并且在1 9 9 7年4月
的R F C文件中已被定义,那么为什么它还是很少被使用?或者说,在使用动态D N S之前究竟
需要知道些什么?
1. 安全
对前一个问题的回答,用一个词来说就是:安全问题。如果任何人都能注册的话,欺骗
和抢劫之间的很多变化几乎就变的微不足道了。比如说,对于w w w. e x a m p l e . n e t的A记录,或
者更大胆一点,对域名服务器n s . e x a m p l e . n e t的A记录。如果不对谁的机器或什么机器被允许
更新哪个记录进行什么控制的话,则D D N S将像一项极限运动— 只有勇敢者才去试。
微软已通过活动目录对域区的集成实现了对动态更新过程的保护。集成特征将是本章接
下来的主要话题。
2. 服务广播
在域区能被动态更新后,你也许会注意到新的S RV服务记录开始出现。活动目录依靠使
用S RV记录来定位它必要的服务。例如,预计在将来_ h t t p . _ t c p和_ f t p . _ t c p将用S RV记录来实现。
这对你的环境来说也许是个问题。所以要清楚Windows 2000这艘大船已经完全准备好了并且
能够让S RV记录上载至它的最大载量。
3. 域区清理
安全更新的另一方面的问题是更新冲突与域区清理。如果更新操作,包括应该被允许的
删除操作被拒绝,记录将会变成孤立的。例如:如果客户端在允许移动已注册的记录时失败,
并且在过一会后又被安全机制拒绝移动,那么谁来清除这些记录?
假设D N S服务器拒绝对一个已在域中使用名字域或相应I P地址的A记录进行注册更新的
话,那么考虑一下D H C P客户端试图注册其已存在的名字或者是其他的机器将要被解析到它所
注册的I P地址时的情形。
这只是对过期记录造成的问题的两个概念上的例子。如果对于更新过程没有安全问题,
这些问题就会消失。当客户端试图更新时,他就会成功,然后客户端就能执行查询和更新操
作来消除潜在冲突以及旧的记录来保证更新的正确执行。
D N S组织提供的一个明显的选择是在牺牲清理的代价下得到安全保障。但是问题在于旧
的记录将成为降低整个机器可用性的障碍。
在Windows 2000的缺省操作中,只允许D N S管理员和创建该资源记录的客户机删除此记录。
因此,如果注册一个记录的客户机抛弃了此记录,它将继续保留在D N S数据库里直到其他什么
操作被执行而把它清除。使用D H C P协议进行注册的一个动机是:清除旧记录的责任能够被移
植到一个更稳定的D H C P服务器上去。别忘了客户机能够改变并且经常改变他们的行动。
第7章动态DNS和活动目录71
7.1.4 服务影响
动态D N S的使用也给域区行为带来新的影响,也带来完成工作的新方法。例如:使用
D N S记录进行D H C P客户机的注册提供了一个对更早的W I N S的D N S集成的标准替换。再比如
说,当动态D N S和S RV记录类结合时,动态D N S提供服务广播能力,该服务以前仅可在
Wi n d o w s系统中通过N e t B I O S名字获得。
动态域区是指不断变化(至少是可能变化)的域区。不仅要求引入域区传送机制,还带
来了一些新的问题。域区传递如何提供对域区一致的拷贝? D N S管理员如何手动地编辑一个
域区文件并且在没有版本序列号时如何进行载入?你可能会说:“干嘛要手动编辑呢?动态
D N S已经把我们从那一堆改变方法中解脱出来了。”是的。但是域区清理呢?
Windows 2000试图提前考虑这些问题。D N S服务器在传送过程中锁定域区以防改变,然
而,对于传送而言,防御的第一要务是使用递增传送的通告选项。其次是根据域区的大小来
设计它,以便进行完全传送时,它们能尽量简单(因为锁定的缘故)。D N S服务器的改变日志
是如此的“深”,所以当被请求的递增改变超出了日志里已注册的改变时,一些I X F R请求会
带来A X F R传送。活动目录集成域区在主服务之间避免了这种可能的问题,但在向辅服务器传
递时却未能避免。
对于一个新的D N S管理员而言,首先要做的便是学会Windows 2000提供的新工具的使用。
特别要对D N S C M D . E X E很熟悉(见第1 2章与第1 3章)。系统监视器的D N S对象包含了许多应
该注意查看的新计数器(见第11章)。这些计数器使你能处理动态更新特征工作的好坏的。在
D N S管理接口中,提供了一些当你真的想花费一些开销。时间来对某些细节问题进行深究时
的日志特征。
7.2 DNS记录的清理特性
Windows 2000提供了清理特性来对付动态域区变得越来越差的趋势。没有活动目录集成,
Windows 2000就没有对动态D N S更新提供安全保障的能力。活动目录集成带来了安全更新,
也带来了清理的必要。本章后续章节将讨论安全特征。这一节看一下用来控制后果的清理特
性。
Windows 2000的清理策略不是那么容易理解。相反,它是在使用之前最难懂的一项特性。
在实现清理功能前忍耐一下是明智的,直到你对它在特定的服务器设置中的行为和影响有一
定的了解。
7.2.1 清理功能干什么
清理能够根据调节间隔删除旧记录,不管它们是动态还是静态添加的。假设一个记录根
据规则被认为是旧的,那么不论它是旧的还是必需的,都会被删除。所以在删除之前先想好
你要干什么。删除了必需的记录显然会带来麻烦。在一个记录被删除后,动态更新允许任何
机器注册记录来覆盖掉这个记录。
清理功能删除非当前的记录,这是根据它们离上次被刷新的时间所决定的。在一个动态
D N S更新请求中,如果指定被更新的资源记录数据与已存在的数据相同,就会引起刷新。这
就意味着静态键入的资源记录会被清理功能删除,因为它们没有被刷新。如前面所提到的,
72第二部分使用Windows 2000 DNS服务器
配置具有动态更新D N S功能的Windows 2000系统每2 4小时对资源记录进行一次更新。
当清理功能不允许时,添加到标准域区里的记录没有时间标志。结果,即使它所在域区
已经移入活动目录去存储并且允许清理功能,这些记录也不能被清理。D N S C M D . E X E工具提
供了给这些记录加上时间标志的办法。
7.2.2 清理何时发生及如何发生
清理使用很多时间间隔参数。在服务器层有两个缺省值为七天。注意七天也是D H C P协议
的缺省有效期,这并不是巧合。在域区层也有两个时间间隔,服务器层的值作为域区层设置
的缺省值。在服务器上下文菜单或“ A c t i o n (动作)” 菜单中选择对所有域区的
“A g i n g / s c a v e n g i n g(老化/清理)”属性的设置来定位服务器层的设置。对于域区层,使用域区
服务器属性里“ G e r n e r a l(一般)”选项卡中的“ A g i n g(老化)”按钮来实现。第11章讨论了
这些菜单的定位及其提供的选项。图7 - 1给出了对域区层进行设置的域区“ A g i n g / s c a v e n g i n g”
属性对话框。服务器层对话框被命名为服务器“ A g i n g / s c a v e n g i n g”属性并且除了没有域区清
理日期/时间这一项外都是和域区的相同。
图7-1 域区属性对话框中的清理设置
这些时间间隔如下所示:
• 无刷新间隔( no-refresh interval)。它设置了对一个资源记录刷新请求被拒绝的时间。
一个资源记录也许被更新,但却不允许无改变的更新即刷新操作。这个禁令达到了与限
制器一样的效果,避免了对域区数据的无用的重复工作,并使得不依赖于客户端的行为
来减少开销成为可能。减少这个值会引起域区传递的页面冲突以及目录的重复开销。
• 刷新间隔(refresh interval)。根据无刷新间隔定义了记录允许被刷新但却不允许被清理
的时间长度。一个记录当它的时间标志显示它比无刷新间隔还要“老”的话,它就会随
时被刷新。如果时间标志显示它比两个时间间隔之和还“老”,它也会被清理。
当一个记录被刷新或改变后,它就有一个新的时间标志。在允许记录清理的域区中,这
不是用动态更新实现的,而是手动创建记录实现的。尽管微软文档规定时间标志为零的被使
第7章动态DNS和活动目录73
用,但仍然仿佛没有使用任何时间标志。清理算法也不涉及到零时间标志的记录。然而,对
单个资源记录属性的“ Delete This Record when It Becomes Stale(当此记录变旧时删除)”项
仍有一个复选框,能允许清理功能。
一段缓冲时间过后才允许清理,这是对间隔逻辑意义上的补充。在清理开始之前,域区
必须在与刷新间隔相等的时间内持续地支持动态更新。这保证了客户端在记录被清理之前有
充足的机会对它进行刷新。使用服务器属性(见图11 - 4底部)里的“A d v a n c e d(高级)”选项
卡能定时开始清理,或者也能从服务器上下文菜单里手动地设置开始。
如果服务器层允许的话,清理将在一段缓冲时间过后某一点开始。清理将发生在同时允
许清理和动态更新的主域区进行。在这样的域区里,随非零时间标志一起变“老”的记录显
示了它们最近没有被充分地刷新(每两个调整间隔一次),它们可能就会被清理删除。
7.3 DNS域区的活动目录集成
听一下销售市场上的欢呼声就能让一个人相信活动目录是给所有事物带来好运的灵丹妙
药。也许这听起来很夸张,但它的确很适时地带来了Windows 2000策略对动态更新的安全性。
安全D N S动态更新规范( RFC 2137)和动态更新规范一起出台,但是研究在继续,新的努力
澄清了公共密钥加密术如何用于D N S。无论如何,微软已经选择了一项技术,用来保障动态
D N S行为的安全,这个动态D N S行为支持对活动目录的适当的设计工作。查看附录B“与D N S
相关的R F C”,草拟了一些建议。这些建议详述了发展早期G S S - A P I(RFC 2078)编码的安全
特性的步骤。
正如它所示的,域区数据的活动目录集成不仅仅提供了对上一节所讨论的与清洁度难题
相对的安全问题的一个尽管不完美但却有用的解决方法,也提供了在交易中更深远的平衡点。
7.3.1 它如何工作
域区数据集成到活动目录中的方法从某个角度来说是很简单的。域区数据仅仅传送到目
74第二部分使用Windows 2000 DNS服务器
图7-2 活动目录中列出的域区数据
录对象中去。域区里所有的东西都是一个对象,为了使用目录存储它们需要排序。在域区被
集成后,在“活动目录用户与计算机”控制器(必须允许“ A d v a n c e d”模式)里,只读模式
下(指除了可写的安全描述符之处)它对管理员来说是可见的。控制台的“ Microsoft DNS”
节点里列出了资源记录(如图7 - 2所示)。
为了实现集成,只用在服务器的属性里点击一个开关即可,这个开关如图11 - 4所示,在
第11章中简要地讨论了从文件存储到活动目录存储的改变。使用域区“属性”对话框(见图
11 - 7)里的“ G e n e r a l”控件里的“c h a n g e(改变)”按钮,可以改变个主域区的存储模式。第
一个改变成活动目录存储的主域区会触发服务器属性的改变。除了管理员以外,没有任何其
他办法能改变存储模式。
7.3.2 激活的特征
在域区数据作为目录对象被存储以后,会有一些立竿见影的效果。一些是由活动目录的
持续存储特性直接产生的,例如有了安全属性;有些是以活动目录的支持服务能使用的形式
存在的数据的结果,例如复制技术。这个讨论简单回顾了这两种“被支持”的例外,同时也
引出了对域区数据安全问题的相当长而复杂的解释,包括动态更新的安全保障及其缺省的设
置。
7.3.3 复制
活动目录使用多主设计使得对于它的大部分责任而言,任何D C(域控制器)同域里的其
他D C是完全平等的。因为每台D C之间是相距很远的,所以一个潜在的通信在域区数据向存
储在目录中的对象转化的传播中是固有的。在站点内,缺省安装将延迟限制在1 5分钟内;在
站点之间,延迟通常是站点连接方式的函数。
这种潜在的通信意味着两台D C的更新也许会冲突,因为更新不是在分布式环境中执行,
而是每台D C都认为它自己的数据是当前的,复制技术支持这种多主设计。复制技术采用一种
“最后写胜”算法,此算法对冲突解析使用“结合切断” 策略。本质是来说,是一个松散会
合的紧密连接的系统,系统中的D C并不总是平等的,而在很多情况下它们仿佛是完全相同的
克隆,带来了紧密连接。然而,因为独立的改变和复制算法,活动目录的内容是连续地会合
的,因为任何特别的改变都可能回退,因而它是一个松散的会合。存储在活动目录中的任何
东西通过这种技术自动地集成域区中的所有D C。因而,就象在标准的域区传送中一样,在活
动目录集成域区中,有一段时期里,授权于同一个域区的两台不同的D N S服务器对此域区的
查询也许会给出不同的回答。
7.3.4 多主主服务器
因为所有的域区数据只是活动目录的内容(或在所有的D C里是复制的),所以大部分情
况下对D N S服务器的改变很小是很自然的。结果是当域区数据集成到活动目录中后, D N S也
运行在多主模式下。一个域区可能存在于多个平等的主D N S设置里,每台D C上都有这样的设
置(因为只有D C包含活动目录)。
这对于标准的辅服务器来说也是可能的,只不过是有多个主服务器。当然,这些主服务
器按某种规则指定了一个服务器为“主”服务器。例如,别人是如何知道主服务器的?或者
第7章动态DNS和活动目录75
在清理时,如果所有的D N S服务器都删除旧记录的话,将是愚蠢而无效的(除非它们分担了
任务)。所以哪台服务器最初开始删除并将它传播到其他的服务器?
与可获得信息相比,一些类似的问题是不成熟的,其他问题诸如清理的发起者问题是在
内部由注册表设置管理的。可以说对D N S采用活动目录存储能够获得多主域区。主要的结果
是消除了标准D N S体系结构的易攻击性(主服务器是唯一的失败)。假如辅服务器配置为使用
多个根主域名服务器,将让域区的所有D C上的D N S服务继续拒绝域中有过期域区数据的辅服
务器。更深远的好处是必须在域中主D N S服务器上进行的动态更新,不需要传授到单个的,
有时又很远的机器。
7.3.5 安全问题
在谈论这个话题之前,先回忆一下,除非D N S域区是活动目录集成的,否则Wi n d o w s
2 0 0 0对动态更新不提供安全保障。一般说来,动态D N S更新的安全问题在任何环境下都是一
个相当复杂的事情。对在Windows 2000接口中被称为安全动态更新能力的实现及使用也是同
样的。目标是控制谁或什么机器允许向D N S注册或修改和删除已存在的注册。
7.3.6 安全的动态DNS过程
Windows 2000客户机使用一个协议向D N S服务器建立了一个安全的上下文,转而在D N S
服务器试图向D N S数据库写入时也使用这个安全上下文。客户机通过使用T K E Y交换来建立这
个安全上下文。T K E Y交换试图使用K e r b e r o s作为安全保障的提供者。如果成功的话,实际是
使用T S I G来向D N S服务器发送已标记的更新请求,以及答复客户机。D N S服务器本身基于已
建立的安全上下文使用L D A P协议来进行更新。
Windows 2000客户机可以被配置为总是尝试无保障的更新,或总是尝试有保障的更新,
或首先尝试无保障更新,然后有必要的话,再尝试有保障的更新。最后一个是缺省配置,缺
省配置的动态更新在逻辑上遵循以下步骤:
1) 客户机尝试无保障的更新。
2) 如果未成功,客户机协商一个安全方法。
3 ) 在同意使用K e r b e r o s作为安全保障提供者后,客户机向它的D N S服务器建立它的“资
格证书”。
4) 客户机使用这个资格证书请求更新。
5 ) D N S服务器模仿客户机使用这个资格证书建立一个L D A P对话。
6) DNS服务器使用L D A P方法向D N S数据尝试更新请求。
T S I G和T K E Y 在R F C中找不到T S I G和T K E Y,但是可以参考草案“ d r a f t - s k w a n - g s s -
t s i g - 0 . t x t”,RFC 2078中指出了它们关系,RFC 2535指出了它们的区别。附录B提供了
RFC的参考。
具体细节更为复杂,包括更新请求的标记和提供授权的返回结果。有意思的是K e r b e r o s作
为安全保障提供者的使用,以及D N S服务器使用通常的L D A P方法更新活动目录。D N S服务器
作为客户机来执行L D A P更新,允许存在的活动目录安全机制使用适于客户机的安全机制。
因为Wi n d o w s客户机希望使用这种安全的动态更新的方法,它们只能向Windows 2000
76第二部分使用Windows 2000 DNS服务器
D N S服务器协商安全的动态D N S更新。如果使用其他的D N S服务来支持Windows 2000,很有
可能你不能得到支持这种安全动态更新方法的D N S服务器。在Windows 2000的最初版本中不
提供对客户机配置与RFC 2137和RFC 2535兼容的方法。不使用Windows 2000 DNS服务器的
动态D N S,暂时意味着在更新过程中不能保证更新安全但在更新过程之外可以使用诸如I P S e c
通信的技术来保证安全。
7.3.7 访问控制层安全设置
对于D N S管理来说,使用Windows 2000DNS进行安全更新的真正的问题在于L D A P协议
对于D N S记录更新的成败。必须理解Wi n d o w s安全许可和所有权函数是如何规范的,因为正
是它们掌握着更新的成败。如果理解了对于域区和域区数据的缺省设置是什么以及缺省是如
何调节的,就可能在缺省配置之外管理动态更新了。这一节试图让这个问题变得尽量简单,
并且假设对前述内容有了一定的背景知识,对Wi n d o w s安全概念有大体的理解,包括对访问
控制列表和所有权的大致了解。
缺省的O u t - o f - t h e - b o x配置使得授权用户组的任何成员在任何域区里创建记录,如A记录
或P T R记录。当一个记录存在后,它能被“ E v e r y o n e”组里的任何一个成员访问,但也许只
能被最初创建者,或者被不同类型的管理员,或者被系统本身所修改。在很多情况下,这种
改变和删除已存在目录的“创建后”限制提供了一个可取的行为,但有些时候它又会带来问
题和产生旧记录。图7 - 3显示了一个集成域区的缺省安全设置。注意图7 - 3给出了一个域区,而
不是一个资源记录。
“E v e r y o n e”组是高亮度的,表明了这个组被授予了特殊的配置允许,位于它正上方的
“Authenticated Users”组表明了它被允许创建所有的子目标(这种情况下为资源记录)。授予
“E v e r y o n e”组的特权赋予域区本身的读取访问权,包括列表权。图7 - 4显示了同一个域区,
使用D N S服务器管理控制器而不是图7 - 3中的活动目录用户和计算机控制器。图7 - 4中编辑器
打开指定给“ E v e r y o n e”组的安全设置显示了细节。通过任何一种管理器接口都能提供这种
细节。
在更深入地钻研这些之前,注意一下图7 - 3中命名为“DNS Admins”的组,这是一个在
活动目录中预配置的组。通过使一个一般用户成为这个组的一员,一个管理员可以授予这个
用户一个D N S管理员的许可,如你猜想的一样。一个“ DNS Admins”成员有足够的能力配置
和运行在域控制器上永久驻留的所有D N S服务器上的D N S,但是没有对其他特征的管理权,
除非这些特征通过其他组独立地被授予特权。
因此,上一段说的是任何能和D N S协商一个安全对话作为认可陈述(授权用户成员)的
客户机都可以创建资源记录。当一个非安全的更新被协商, D N S服务器提供了一个更新的上
下文。图7 - 5显示了对A记录缺省创建的安全保障,表明了“ E v e r y o n e”组被授权“ R e a d(读
取)”许可。如果想再深入一点儿看的话,如图7 - 4所示,可以找到相同的被授权的“ R e a d”
许可,但这种情况下是对一个资源记录而言的。
如以上所见,应该指出的一点是授权用户可以在域区内创建对象。尽管这样创建对象的
类型会受到限制。但如何进行创建却不受限制。如果用户作为一个授权用户使用直接的L D A P
方法,仿佛就根本不用涉及到D N S服务器,换句话说,域中任何合法用户都能创建记录,甚
至可以直接创建。
第7章动态DNS和活动目录77
图7-3 活动目录中对域的高级ACL安全设置
图7-4 域中对“Everyone”的安全设置细节
为了改变创建记录时对其授权的许可,对活动目录容器和域区的可继承许可可以改变。
一般来说,实际的需求非常复杂;对原型或者说对被创建对象类型的对象类也有许可,当在
其中创建新的记录时这些许可也会被应用。不论是对域区还是资源记录,在“ o u t - o f - t h e - b o x”
设置中,模式类d n s Z o n e和d n s N o d e对新创建的域区或资源记录都会提供授权许可,图7 - 6给出
了用于资源记录的d n s N o d e类的缺省安全描述符。d n s Z o n e类是相似的,此外它也对授权用户
赋予许可去创建子对象。
如果我们再深入地研究下去,在图7 - 4中(对一个资源记录),我们会发现E v e r y o n e的读取
78第二部分使用Windows 2000 DNS服务器
许可和图7 - 3一模一样,这是显然的,因为图7 - 4中的内容正是从图7 - 3得来的,此许可不是从
域区A C L继承的,并且对域区的A C L的大多数改变都不会影响E v e r y o n e组对域区里新的资源
记录的读取权利。
图7-5 A记录的安全设置
那么,迄今为止我们知道了些什么?一个协议定义了进行动态D N S更新时D N S服务器使
用的安全上下文。任何授权用户都能创建新记录。E v e r y o n e组的每个成员都能读取一个记录,
也能列出一个域区。在记录被创建以后,它只能被管理员或系统或创建此记录的帐户来改变。
在包含的域区或d n s N o d e图表对象中对许可的操作可能改变新创建的资源记录的缺省许可。最
后详述一下,如何预先确定由动态D N S产生新记录的安全A C L。
任何没有明确提供A C L的新的活动目录对象被创建后,它就得到一个A C L,这个A C L包
含着从它们的容器或从对象原型缺省的安全描述符继承的安全许可,除非对它的容器至少有
一项特别指定的许可。当有指定的许可出现在容器中时,原型的许可不被使用。因此,当创
建新记录时不禁止从原型得到许可,将得到d n s N o d e的许可加上记录被创建的域区的任何可用
的继承许可。下面看一下禁止使用原型许可的指定许可。如果容器有任何指定给被创建对象
类型的继承许可,此类的原型的缺省安全描述符就不会被新对象接受,新对象只接受从容器
得到的继承许可。所以,如果域区有可继承的许可并且已经应用于资资源记录( d n s N o d e类的
对象),域区里新的资源记录就只会接受域区里可继承的许可。
由微软提供的目前的M S D N中的“活动目录程序员指南”,以文档的方式指出了覆盖一个
活动目录对象接受的它的类的缺省安全措施的方法。但是,因为在Windows 2000的最初版本
中,管理员接口中不提供关键性的先决条件,所以目前还不能禁止来自d n s N o d e和d n s Z o n e的
缺省安全措施。不向域区或资源记录对象提供任何指定的许可。如果禁止原型安全措施成为
可能,那么不论你是在想使用许可还是在不想使用时避免使用许可,你都得清楚这一点。这
里有一个预防措施:在一个域区被创建之后,改变它的许可可以防止缺省的安全描述符(在
第7章动态DNS和活动目录79
d n s N o d e原型上的)被加到新的资源记录上去。这也许被期望,也许不被期望。如果没有应用
原型缺省的安全措施,就必须保证包含域区中有可继承的许可,以提供原型中缺省安全措施
中被期望的部分(被禁止的)的。
可以看到包含域区中的许可可控制新的被包含对象(资源记录)的安全措施,这个控制
必须很小心地完成。并且有两个方面要考虑:包含域区的可继承的许可和来自原型( d n s N o d e)
的缺省许可,没有提到的是,改变对d n s N o d e原型的安全措施是一个影响活动目录中每个域的
行为(例如,假如Everyone 的读取权太过头了)。不仅仅是这样做,还必须理解E v e r y o n e为什
么赋予这个许可以及为什么在某种程度上它还很难被覆盖。如果访问能被破坏的事实能被接
受的话,改变d n s N o d e的许可是完成像这样的改变的最简单的方法。但是任何架构层的改变都
不能轻易地被改变。
图7-6 新资源记录的缺省安全措施
在一个域区被创建以后,加入能被创建任何子对象继承的许可会改变域区里将来会被创
建的资源记录的许可。因为d n s Z o n e和d n s N o d e类规定E v e r y o n e组和授权用户组分别有读取域
区数据和创建的许可。正如前所示,关于许可方面实在是没什么添加的了。所以,对原型安
全措施的改变暗示着o u t - o f - t h e - b o x设置不适合你的环境。这又意味着对架构类改变的许可,
以及由原型或域区许可提供的期望部分的许可的完全理解。
一些实验能使这变得容易理解。如果微软或者是通过扩展的第三方,使得一个合格的资
源记录的指定权限A C E能被应用于域区,那就什么事也没有了。
从Windows 2000的测试版到最终版,一直采用用禁止应用架构类的缺省安全描述的方法。
然而,有了黄金代码,似乎有些东西已经改变了但还没有被规范成文档。先前可选的一些对
象类的例子现在已经不适用了。因为安全是一个大问题,而复杂性也不小,很有可能提供修
订信息和期望的方法,就像实施Windows 2000的网络环境一样。需要从微软得到如何改变域
区数据安全性的改进信息。现在,在这些被印刷前的最后时刻,原型的缺省值需要被整理,
改变原型的缺省值到最不公用的权限集和当需要多于最不公用的权限集时对域区添加可继承
80第二部分使用Windows 2000 DNS服务器
的权限, 是一个可利用的手段。对架构类的改变能够通过活动目录架构管理控制器
(S C H M M G M T. M S C)来完成的,对域区的改变能够通过活动目录用户和计算机控制管理
(D S A . M S C)来实现,或者通过D N S服务器管理控制台(DNSMGT MSC)来实现。
现在再看一下D N S数据安全的另一方面,审计。图7 - 7给出了设置一个域区创建的记录的
缺省值以使它们是有审计功能。
图7-7 一个A记录的审计ACL
图中的复选框指出了什么行动会引发审计。它们显示为灰色是因为这些设置是从更高层
继承的。当审计开始后,这些设置会引起除了对记录的读取外所有的访问都会被写入一个审
计记录。
如果再回到图7 - 4,可以注意到对“ E v e r y o n e”的读取权限用白色框来显示。这是因为源
于d n s Z o n e类的权限直接应用于资源记录。这表明如果想要改变以这种方式赋予的权限,即没
有使用继承,那最好是在所有对象被创建之前就改变控制设置。在对象存在以后,改变并且
是只改变这些权限,就需要单独地访问每一个资源记录对象。
7.3.8 DHCP和DNS更新代理组
为了减少复杂性,微软映射了一个使用D H C P协议的预先设置的路线。不再是客户机获得
资源记录的所有权而在清除上让它们的行为变得独立,而是让D H C P执行注册。这样, D H C P
是所有者,并且能够修改和清除资源记录。这非常好,但仍然有些小问题。
如果使用缺省的D H C P行为,Windows 2000结束了对A记录的所有权, D H C P拥有了对它
的I P协议的P T R记录的所有权。这是很合理的因为客户机拥有名字, D H C P拥有I P协议。如果
客户机改变了它的名字或者重新加入了域,于是它就抛弃了域中的一个记录,对非Wi n d o w s
2 0 0 0的客户机, D H C P可能既注册名字又注册I P,所以会同时拥有两个记录,那么当多个
D H C P服务器被配置为共享一个子网的责任时就会带来一个问题,因为仅仅只有一个服务器能
改变A记录,而它们中的任何一个或许都有此记录(注意通常每个服务器都有一个唯一的I P池,
第7章动态DNS和活动目录81
所以P T R记录没有此问题)。
要解决这些问题, Windows 2000提前定义了一个特殊的组,即D N S更新代理组。当一台
机器成为这个组的一个成员时,它创建一个新的D N S记录,这个记录比已经讨论的记录的语
义稍有不同,不是创建者自动地成为记录的所有者,被D n s更新代理成员创建的记录被成功地
对其进行更新或刷新的帐户所拥有。
尽管这样试图解决了一些问题,但又带来了其他的问题。非常重要的一件事是诸如使用
D H C P协议的机器将会成为这个组中的一员,所以,所有那些机器动态创建的记录都将有新的
语义。如果一台机器这样注册了任何记录,不管是通过对客户使用D H C P还是通过自身注册,
那些记录都会应用新语义。当一台机器,如一台域控制器执行许多动态更新时,这不是一个
小问题(见下一节)。
D n s更新代理组试图用D H C P服务器作为成员,这允许它们对客户注册A记录,并且当它
们试图更新记录时从客户机那里获得对那些记录的所有权。任何由运行D H C P的机器动态注册
的记录,包括它本身的记录或当N e t l o g o n也为一个域控制器时所创建的S RV记录,当此机器是
一个D n s更新代理成员时,都会被剥夺所有权。解决的办法当然是不使用这样的机器作域控制
器,并且对D n s更新代理组成员手工键入D N S条目。
7.3.9 DNS安全小结
本章涉及了一些基本知识。活动目录集成使得可以用安全的方法来对D N S数据的访问进
行控制及更新。没有这个集成, Windows 2000就不能提供任何D N S安全措施。
更新的保护是通过由RFC 2078所规定的方法的微软版本而实现的,现今这个方法是微软
特有的。Windows 2000客户机需要扩展为使用第三方D N S服务器,这个服务器使用基于R F C
2 1 3 7和2 5 3 5的安全措施。被保护的动态更新过程在Windows 2000中支持K e r b e r o s作为安全提
供者。D N S服务器在代表客户机更新D N S数据时,本身使用L D A P方法。
当D N S数据存储到活动目录时,要接受通常的A C L权限验证,缺省值提供给授权用户组
创建资源记录的能力,以及E v e r y o n e组列出域区和读取资源记录的能力。这些权限来源于
d n s Z o n e和d n s N o d e架构对象,在Windows 2000的最初版本中,这两个架构对象只能在此处改
变,或者在它们被创建以后再在资源记录中改变。
资源记录被创建以后由创建它的帐户所有,除非这个帐户是D N S更新代理组的成员。在
这种情况下,对新建记录首次成功进行更新或刷新的帐户将成为它的所有者。
对于安全动态更新,微软策略的最初框架是为活动目录集成D N S域区配置的。它有好的
方面,也有不好的方面。在严厉地批评以前,先考虑一下这是一个先行者,是动态D N S新领
地的开拓者。当今没有其他商业操作系统在安全和动态D N S的实现这条道路上走得如此之远,
这应该是正确的。它们中的大部分功能的实现不得不在产品的时限、必需的功能以及复杂的
R F C标准之间求得平衡。现在它们中有一些已标准化,有一些还没有。最新的R F C对D N S数
据安全和更新依赖于正在建立的公钥机制,但Windows 2000已经准备参与了。在Wi n d o w s
2 0 0 0中如何使用动态D N S以及如何在动态D N S上实施安全措施,都必须经过仔细考虑。
7.4 活动目录对SRV记录的依赖
对活动目录高效的操作部分地依赖于客户机的能力和服务器在组成活动目录的域中快速
82第二部分使用Windows 2000 DNS服务器
定位关键服务的能力。D N S是完成上述大部分工作的一种方式。
举个例子来说,当一个域成员机器启动时,它必须和本域的域服务器通信,并且在第一
台域控制器不能包括全局目录时,它还得跟另一个域控制器通信。或者再举个例子,当一台
机器上的客户在枝繁叶茂的活动目录里提出一个对不同域的资源的请求时,那个域的域控制
器在决定是接受还是拒绝客户请求中起作用。
当需要域中已经定位的资源时,例如客户机在自身的域中打开一个共享文件夹时,就不
需要用到D N S服务。然而经常第一步就需要这种定位服务,在Windows 2000体系结构中,正
是用D N S来实现这种定位的。
为了使这些过程尽可能地高效, Windows 2000维护着一个相当复杂的S RV记录和C N A N E
记录集,域控制器上的N e t l o g o n过程对它负责,使用动态更新建立它,并且在记录被认为是
不合法时进行删除。
7.4.1 域定位器服务
一个Windows 2000客户机可以使用关于域的三种类型的信息来尝试找到一个域控制器:
域名(即最初版本中的D N S域);一个全局唯一的标识号I D(G U I D),即一个域内部的唯一
的名字;一个站点识别标识符。在试图定位D C时(因为大多数关键服务都在D C上),客户机
将这些信息传递给域定位器服务。
活动目录能够依据被用来代表网络拓朴结构的站点来划分。单个域可以存在于多个站点,
一个站点又可能包含于多个域,也就是说,一个站点里可能有来自多个域的机器。当有可能
进行一个查询服务时,站点被用来加速“本地”机器间的网络通信。
Windows 2000域定位器可以全部使用客户机能够提供的这三种类型的信息全部使用,来
对一个查询尽量高效地获取I P地址。如果客户机知道自己位于哪个站点,并且在一个指定的
域里请求一个诸如L D A P服务的特殊服务,第一步可能就是查询指定给被请求域和站点的
_ldap._tcp SRV记录,如果定位器已经知道域的一个D C的话,它也能向D C发送L D A P查询来
验证那时已返回给客户机的信息。
定位器服务使用期望存在于D N S 数据库里的有关域名的知识。如上所述, D C上的
N e t l o g o n服务建立和维护了这些使用动态更新的注册。当动态更新被禁止时,就变得不可能
了,而且这种查找过程的有效操作变成了某些倒霉的人的责任。不过,当D C和站点的拓扑是
静态的和可利用的,这并不是一项如它看起来那样令人恐惧的任务。
7.4.2 SRV的结构
N e t l o g o n注册了记录的许多不同的层次。图7 - 8给出了只有一个D C时,对一个单个的小的
域活动目录的这种结构的一个扩展部分。换句话说,这是一个能说明问题的最简单的一个图
示。
首先要记住的是在一个大一些的环境里,将有不同的I P地址的多个记录,或者一些注册
有相同的I P地址。当客户机查询一个特别的名字时,所有的匹配记录都用来决定返回的I P地
址。在这样的环境里,也能看到对每个域的更多的条目,以及建立在位于活动目录根部(域
森林的根域)域之下的一个更大的条目集。图7 - 8所示的内容是D N S服务器管理控制台里的,
给出了一个子域结构的印象。实际上,这种结构逻辑上是在S RV记录的名字字段而不是域字
第7章动态DNS和活动目录83
段中创建的(见图7 - 1)。
图7-8 一个简单的由Netlogon维护的SRV记录集
接下来要注意到有对L D A P、G C、K e r b e r o s和k p a s s w d服务的记录。L D A P用于L D A P服务,
在Windows 2000中总是位于D C上。G C用于全局目录服务,也是总位于D C上,但不是全部位
于,在Windows 2000中,k e r b e r o s服务器和k e r b e r o s密码改变服务器也总是在域控制器上。
所有的记录使用T C P协议,除了两个与k e r b e r o s相关的服务同时也能使用U D P协议。这可
见于S RV记录协议部分的_ T C P和_ U D P。
在名字里有站点的限定词的条目被用来依据它们在活动目录拓扑中的位置来划分服务,
因为用于指定站点的特别的D C不一定意味着这个机器物理上在这个站点里,或者说只是在逻
辑上作为站点成员而定义在活动目录站点拓扑里。当一个站点对一个特殊服务没有本地提供
者时, N e t l o g o n注册了它认为最合适的域控制器,这个站点里的成员应该首先尝试它的服务,
N e t l o g o n如何基于站点拓扑作出决定不是D N S的问题,所以本书中不涉及到这一点。重要的
是要记住当N e t l o g o n能使用动态D N S更新来调节S RV记录时,活动目录的功能更为优化。
这个结构通过一个记录有_ m s d cs的限定进一步地详细拟定了可利用的服务。在这些服务
里有一定的特殊广播,借如一个限定为p d c的广播代表域中的一个D C,像NT 4中对低级客户
机的PDC 仿真程序一样工作。条目集被每个域复制。另外,在只有活动目录的根域为人所知
的情况下,用于在活动目录内定位的条目才会在活动目录的顶层D N S域下被详细描述。
如果需要手动地维护这个结构,建议你找出所有可用的当前信息。你的整个操作将从这
个精确反映活动目录的结构里获益。
7.4.3 没有动态DNS的SRV条目
当禁止使用动态D N S更新时,必须用手工方法进行域区数据管理。这不仅包括预期的记
84第二部分使用Windows 2000 DNS服务器
录类型-A、P T R、C N A M E、N S等等,还包括N e t l o g o n提供的S RV和C N A M E记录。如同已
描述的那样,S RV记录处于活动目录体系结构中域定位器服务的核心部分,是必需的。
当运行d c p r o m o来形成一个域控制器时,创建一个S RV记录的最小列表N E T L O G O N . D N S
(程序清单7 - 1)并存储在%w i n d i r % \ s y s t e m 3 2 \ c o n f i g。尽管如此,只看到这个非层次的列表并
不能表达手工维护S RV记录的全部影响。
程序清单7-1 一个N E T L O G O N . D N S文件举例
首先,如果研究一下这个文件例子,就会注意到它建立了一个需要被正确创建的逻辑结
构。这个部分是次要的,因为这些记录提供了完全的说明并且能直接粘贴到域区文件里去。
还没有提到的是允许N e t l o g o n服务在D N S里维护S RV结构时带来的对整体性能的影响。这
个结构用来帮助客户机,由此也帮助位于设计核心位置的服务,快速和有效地定位关键服务。
这种S RV结构更支持直接查询而不是一系列的查询。这个结构也用来提供对不同的服务的最
“好”的或“最本地”的提供者的指针,该判断是基于对客户机所处的域,特别是所在的站点
的知识作出的。
不允许动态更新时,此结构需要经常随环境的改变作相应的调整,否则,它不能达到最
第7章动态DNS和活动目录85
优性能。这一点有可能特别应用于对域名有G U I D(长达1 2 8位的不可译标号)并且用于时服
务进行优化和直接定位查询的记录。条件允许的话,建议在允许动态更新的Windows 2000
D N S里使用委托授权域区来维护这些结构,如同使用更新安全一样。当整个D N S域不能被授
权列出主机和客户机,也不能列出这些与S RV相关的结构时,如果已存在的D N S被配置为能
接受下划线的话,考虑一下授权_ m s d c s , _ s i t e s , _ t c p和_ u d p .
7.5 把活动目录与DNS结合起来(或不结合)
迄今为止本章已经详细介绍了一些精选主题。如果认为在信息方面讲的太多而在简单的
答案上又讲的太少,最好好好阅读以下信息。一个Windows 2000域环境的o u t - o f - t h e - b o x网络
是瞄准于微软D N S主导所有的域环境这个设计出发点的。这里所有的域环境包括:活动目录
集成且启用了动态D N S环境,用D H C P来服务客户机的环境,使用安全动态更新的环境,以及
活动目录被防火墙保护的环境。当顺着这些方向的任何一个远离设计点时,就有新的问题需
要解决。
为了更好地说明这一点,本节收集了一些观察资料,一些是最新提到的,一些是先前讨
论过的,按照相关因素的顺序来说明。
7.5.1 活动目录和DNS的拓扑
Windows 2000的第一个版本中,实际上所有公共文档的撰写都是从一个观点出发的,那
就是在活动目录的域结构和用于D N S的域结构之间一一对应。实际上,微软和一些合作者致
力于在两个域名空间制造这种严格的同形性,是为了更方便于新的网络环境,而不是满足所
有的网络环境。
有可能获得与域中的活动目录名不同的客户机与服务器间的D N S一致性。很多通常操作
有可能但并不是完全不出问题。在Beta 2版本和零售版本最终代码的确定之间,作出了相当大
的改变来支持这种域名空间的独立性。正如支持N e t B I O S的独立性一样,但要做的更多一些。
在这里要说的另一点是就在最终代码固定之前, R F C 2 6 7 2“非终端D N S名字重定位”(定
义了D N A M E记录)获得了标准轨道。这个记录允许对D N S域名空间某一分支的替代以使其在
不同的D N S域名下仍然被认识,它创建了域分支的一个别名,就像C N A M E是对普通主机名允
许别名一样。通过D N A M E可以重新映射x y z . c o m到一个存在的D N S分支诸如a s . c o r p . c o m以使得
它的叶和子女,如c o w p o k e . c o r p . v o m能在重映射的名字下被认识(本例中为c o m p o k e . x y z . c o m)。
我们期待在明年能够看到文档化选择有较大的变化。目前,域名空间同形性这条笔直但
狭窄的路接受了大量的网络环境测试并且有文档化的指导。最有可能不出问题的。能由售者
提供文档的很有可能是调整至符合把Windows 2000活动目录分散到大范围的已存在的T C P / I P
机制里去的现实。目前如果想走这条路或需要走这条路,就应该和微软咨询服务保持联系并
作好一些惯常的准备。
7.5.2 DNS服务器与DC放置匹配的拓扑
除了网络在传输中负载以及机器负载的例外, D N S的活动目录集成似乎承担了一些难以
设计的工作。这些工作本来应该参与决定一个企业里D C需要放置在什么位置的。这个决定与
放置D N S服务的考虑同样重要。
86第二部分使用Windows 2000 DNS服务器
甚至当已经决定这个站点需要一个D C了,一个或另一个缓存服务器模式对一个站点是否
足够仍然是一个合理的问题。如果D C的放置甚至在网络崩溃条件下依赖于Windows 2000域环
境可用性的需求,也需要指明定位域区副本。考虑客户机或D H C P向何处发送更新请求是非常
重要的,当D N S没有被集成时,这些请求都传送到域区的一个主服务器去,不论它在什么地
方。随着安放在本地的D C上主服务器的提供,这仅仅是一个复制载入的问题,因为D C已经
有了大的工作负载(管理L D A P和K e r b o r o s以及复制工作),以及D N S的动态更新载入,客户
机依靠的本地辅服务器和缓存服务器是值得考虑的。随着这些本地辅服务器从它们的本地D C
获得传输, D C里的主D N S域区自动成为站点间的桥头服务器。这些D C只处理来自D N S的附
加载入,这些附加载入是由注册、刷新、改变复制以及到辅服务器的传送引起的。本地辅服
务器处理来自客户机查询的D N S载入以及由前向服务器得到的答案缓存。
7.5.3 域环境预先定义组
当在一个域中运行Windows 2000网络服务时,服务器是活动目录的一个参与者,这意味
着有一些可利用的预先定义的组。在Windows 2000的最初版本中,没有多少组是和网络服务
直接联系的,见表7 - 1。可以考虑使用这些组来帮助对管理员责任的委托授权,或者在D N S更
新代理时来缓和使用D H C P进行动态D N S更新时产生的问题。
表7-1 活动目录中预先定义的网络服务组
组名描述
Dns Update Proxy 这这个组的成员不能自动成为它们通过动态D N S创建的资源记录的所有
者
D n s a d m i n s 这一个域本地组,它的成员可以管理域中的D N S服务器
DHCP Administrators 这一个域本地组,它的成员能管理域中的D H C P服务器,注意需要企业
管理员成员授权一台D H C P服务器
DHCP Users 这一个域本地组,它的成员能检查域中D H C P服务器设置
WINS Users 这一个域本地组,它的成员能检查域中的W I N S服务器设置
7.5.4 DNS域区数据可用性
在集成域区数据到活动目录里时,那些信息对L D A P查询变得可用。只有一个安全机制是
活动目录固有的,它被用来控制更新和读取访问。因为域区数据的本质决定了它必须是可用
的,所以资源记录允许无条件读取。目前仿佛还没有什么用来阻止那些能获得允许L D A P会话
的安全上下文的人列举整个域区数据集。一个空的安全上下文可用的程度取决于施加于
E v e r y o n e组和空的、或匿名的L D A P连接上的限制。这最后一项是在最初版本的实现中某些转
换的主题。目前,用防火墙来解决问题是最好的方法,但是这样做仿佛把域区数据暴露在外,
任何活动目录的合法用户都能列出它们。这里有点离题,但任何授权用户有创建和拥有资源
记录的能力的确有相关联的相似点。
7.5.5 目录服务指南和DNS负载
本章的开始提到了如何设计D N S到活动目录拓扑的最顶层。没有提到传统的L D A P在一个
目录服务结构里通过一个指示过程进行的导航。如果一个位于第四层的客户机试图访问位于
第7章动态DNS和活动目录87
目录结构里不同分支上的第二层的某资源,客户机在树上递归地“行走”,一个节点一个节点
地到达根部,然后回到有此记录的分支。每一步都有一循环“旅行”,一个L D A P查询和对每
个成功的L D A P服务器的指示回答。这是传统的L D A P指示过程,其中每个节点都知道并且能
够将客户机引导到它的邻居,客户机可以接着查询等等。
为了支持D N S信息可用这个事实,以及目录结构与D N S结构同形的事实,微软改变了这
种定位实现的方法。在Windows 2000的发行版本中,客户机(一旦有了充足的信息,例如通
过在全局目录中的查询知道了一个资源所在的域)直接找D N S提供参考。例如,如果客户机
需要域里的L D A P服务,它将向D N S查询域里的_Ldap._tcp SRV记录。这给了客户机一条到目
标域的L D A P服务的直接途径,潜在地删去了许多L D A P树搜索。这也增加了D N S的使用性
(和可用性)。
先前已经有了N e t l o g o n如何使用D N S和S RV记录。并且期待在将来S RV对定位服务如
_ h t t p . _ t c p的用途的增加。所有的这些因素组成了广泛使用的D N S服务。
7.5.6 动态DNS更新负载
这个主题主要是收集了一些关于动态D N S对服务器工作的影响的记录和观察资料。任何
指定的网络环境都应通过度量域中实际的行动来进行分析。
在允许动态D N S后,域区文件可以被经常地改变。不同的M i c r o s o f t系统有不同的缺省值。
从c l u s t e r的试图每小时三到四次进行D N S注册更新,到Windows 2000专业版的每天一次,再
到D H C P的七天一次。本章前述章节讨论的清理参数和无刷新间隔,对减少波动和不必要的复
制或向上的域区传递有着非常重要的影响。
但事实是改变中的域区会触发传送。如果标准域区的一切都运行的很好的话,通告选项
会被使用,从属服务器请求I X F R递增传送,载入也会变小。当在活动目录里进行存储时,这
些改变将会被递增地传播,但在活动目录复制技术上小的属性会有一个相对大的负担。
因为活动目录是松散地收敛的,所以它提供给动态D N S很多机会来从不同的服务器得到
不同的同步授权回答。这可能至少和标准的域区传送相同。
当然,因为其中之一不使用动态更新,所以这是一个有争议的地方。但在设计一个D N S
网络环境时要记住这些要素。关于缓存服务器在哪里比较充分,这里还有一点额外的介绍,
因为使用它们会避免不断的域区传送。
7.6 小结
在本章里,自然不自然地放弃了曾经讨论过的活动目录和D N S之间的相交点,本章最突
出的一点是动态D N S以及由活动目录属性带来的结果。微软支持它们之间的相交来说明S RV
记录的使用和动态更新之间的关系。这些是怎么完成的留给读者自己去考虑。
88第二部分使用Windows 2000 DNS服务器