7.2 DNS记录的清理特性
windows 2000 提供了清理特性来对付动态域区变得越来越差的趋势。没有活动目录集成,windows 2000 就没有对动态DNS更新提供安全保障的能力。活动目录集成带来了安全更新,也带来了清理的必要。本章后续章节将讨论安全特征。这一节看一下用来控制后果的清理特性。
windows 2000 的清理策略不是那么容易理解。相反,它是在使用之前最难懂的一项特性。在实现清理功能前忍耐一下是明智的,直到你对它在特定的服务器设置中的行为和影响有一定的了解。
7.2.1清理功能干什么
清理能够根据调节间隔删除旧记录,不管它们是动态还是静态添加的。假设一个记录根据规则被认为是旧的,那么不论它是旧的还是必需的,都会被删除。所以在删除之前先想好你要干什么。删除了必需的记录显然会带来麻烦。在一个记录被删除后,动态更新允许任何机器注册记录来覆盖掉这个记录。
清理功能删除非当前的记录,这是根据它们离上次被刷新的时间所决定的。在一个动态DNS更新请求中,如果指定被更新的资源记录数据与已存在的数据相同,就会引起刷新。这就意味着静态键入的资源记录会被清理功能删除,因为它们没有被刷新。如前面所提到的,配置具有动态更新DNS功能的windows 2000 系统每24小时对资源记录进行一次更新。
当清理功能不允许时,添加到标准域区里的记录没有时间标志。结果,即使它所在域区已经移入活动目录去存储并且允许清理功能,这些记录也不能被清理。DNSCMD.EXE工具提供了给这些记录加上时间标志的办法。
7.2.2清理何时发生及如何发生
清理使用很多时间间隔参数。在服务器层有两个缺省值为七天。注意七天也是DHCP协议的缺省有效期,这并不是巧合。在域区层也有两个时间间隔,服务器层的值作为域区层设置的缺省值。在服务器上下文菜单或“Action(动作)”菜单中选择对所有域区的“Aging/scavenging(老化/清理)”属性的设置来定位服务器层的设置。对于域区层,使用域区服务器属性里“Gerneral(一般)”选项卡中的“Aging(老化)”按钮来实现。第11章讨论了这些菜单的定位及其提供的选项。图7-1给出了对域区层进行设置的域区“Aging/scavenging”属性对话框。服务器层对话框被命名为服务器“Aging/scavenging”属性并且除了没有域区清理日期/时间这一项外都是和域区的相同。
这些时间间隔如下所示:
•无刷新间隔(no-refreshinterval)。它设置了对一个资源记录刷新请求被拒绝的时间。一个资源记录也许被更新,但却不允许无改变的更新即刷新操作。这个禁令达到了与限制器一样的效果,避免了对域区数据的无用的重复工作,并使得不依赖于客户端的行为来减少开销成为可能。减少这个值会引起域区传递的页面冲突以及目录的重复开销。
•刷新间隔(refreshinterval)。根据无刷新间隔定义了记录允许被刷新但却不允许被清理的时间长度。一个记录当它的时间标志显示它比无刷新间隔还要“老”的话,它就会随时被刷新。如果时间标志显示它比两个时间间隔之和还“老”,它也会被清理。
当一个记录被刷新或改变后,它就有一个新的时间标志。在允许记录清理的域区中,这不是用动态更新实现的,而是手动创建记录实现的。尽管微软文档规定时间标志为零的被使用,但仍然仿佛没有使用任何时间标志。清理算法也不涉及到零时间标志的记录。然而,对单个资源记录属性的“DeleteThisRecordwhenItBecomesStale(当此记录变旧时删除)”项仍有一个复选框,能允许清理功能。
一段缓冲时间过后才允许清理,这是对间隔逻辑意义上的补充。在清理开始之前,域区必须在与刷新间隔相等的时间内持续地支持动态更新。这保证了客户端在记录被清理之前有充足的机会对它进行刷新。使用服务器属性(见图11-4底部)里的“Advanced(高级)”选项卡能定时开始清理,或者也能从服务器上下文菜单里手动地设置开始。
如果服务器层允许的话,清理将在一段缓冲时间过后某一点开始。清理将发生在同时允许清理和动态更新的主域区进行。在这样的域区里,随非零时间标志一起变“老”的记录显示了它们最近没有被充分地刷新(每两个调整间隔一次),它们可能就会被清理删除。
(未完待续)