13.5域区数据维护
过去有一段时间维护域区数据意味着打开一个ASCII码文件,然后编辑它,以改变资源记录,修改SOA记录的版本序列号,接着重启服务器以载入刚更新的数据。尽管现在仍有人这样做(在windows 环境下要少于其他环境),但现在已有许多其他的维护域区数据的方法。本节将介绍windows 2000 和NT4中所用的方法(windows 2000 和NT4有较大区别),示范如何在服务器间移动数据和如何准备一台替换服务器并插入替换一台退休的服务器。
在服务器之间移动域区文件时应注意几件事。首先,windows 2000 的启动配置文件所支持的指令很有限。因此,尽管需要添加一个目录声明,BIND使用windows 的启动配置文件不会有什么问题,但反过来就不行了。因为启动文件是BIND对DNS的扩展,不是RFC文档中的规范,所以微软只对其提供有限的支持,即缓存、主和辅,任何其他的指令都被忽略。域区数据文件是完全符合标准的,在windows 2000 DNS和BIND间可完全移植,但有两个例外。一个是如果WINS和WINS-R记录被使用,则必须删除它们,另一个例外是当允许清理时所增加的时间标签。如果计划将WndowsDNS上的主域区移到BIND作为主域区,这将是最容易的,只需先禁止域区清理,然后在移动域区前更新文件。如果想移动一个域区用于创建一个辅域区,最简单的方法是使用域区传送,额外的时间标签信息将会被自动清除,因为它们只能存在于主域区。
如果移动域区的目的是为取代主名字服务器作准备,要传输众多信息的一种容易的方法是建立一台新的作为辅服务器的机器。当域区信息传输完以后,就可将辅服务器改为主服务器。以更改DNS服务。现在这台新主机可以放在网络上替代旧主机提供DNS服务了。
13.5.1动态更新域区的清理
管理动态域区首先要求在更新时提供可接受的安全级别,其次是对域区文件大小的管理。没有删除资源记录的程序或管理员,动态更新域区将随时间的推移无限长大。这样就消耗了能被DNS服务器更好使用的宝贵内存,并使查询速度减慢。更重要的是当有新的注册请求时可能会引起冲突。第7章较详细地介绍了随windows 2000 所发行的清理器的配置使清理工作自动化。因为清理工作可能会过度,所以在允许该特性以前和调整它的参数或允许域区老化时应十分小心,作好充分准备。
即使允许了清理,仍然有时需要干涉以清理域区。推荐的方法是定期检查域区的尺寸。当启用动态更新的大多数时候,数据存储在活动目录中,那么此时不是只简单地检查主服务器的域区文件大小就够了。如果配置了辅服务器,则还应该检查辅服务器的域区文件大小。另外,可以在DNS管理控制台中手动检查域区或编写脚本将数据传输到文件。做这件事的传统方法是使用nslookup,但windows 2000 中的命令行工具也提供了一种方法,如程序清单13-4所示。下面是命令dnscmd/EnumRecards的语法和以及一个利用它列出一个小的测试域区的例子。
13.5.2管理多个域区
对能管理的域区的数目是没有固定限制的。管理多个域区需要管理员的极大注意和技巧来组织数据库并使之容易读出。管理员必须关注IP地址的分配,并必须有为主机分配地址的方案。一般来说,要维护两个域区:一个是为了从域名查找IP地址的正向查找域区,另一个是由IP地址查找域名的反向查找域区,即in_addr域区。
通过DNS管理控制台可以增加多个windows 2000 DNS服务器并修改由这些服务器管理的域区。重要的是要注意在创建用于Internet连接的主服务器和辅服务器时,必须首先使用DNS管理控制台来定义和配置一台DNS服务器。然后才可以定义一个或多个由这台服务器管理的域区。服务器所能管理的域区的数目没有固定的限制。
当应用到对DNS名字服务器的实际配置和操作时,通常对主和辅DNS服务器的引用实际上易使人误解。因为每台DNS服务器按照域区的管理分组管理属于自己的一部分域名空间,服务器上的数据存储在域区文件中。在微软的产品中,域区是指域名空间的一个连续分支,比如一个域及其直系子孙,且一个域区有一个SOA记录。windows 2000 中的域区的缺省命名是.dns而不是可能是一种遗憾,因为按后者命名可在目录列表中将域和域区按它们的子域自然分组。使用反转的名字,自然分组的目录列表会如下所示:
当使用缺省的文件命名规则时,在目录列表中的各项的组织形式浏览起来不太方便,如下所示:
如果需要管理大量的域区,推荐使用能使你在目录中通过文件名了解域的结构的命名规则。
当管理员考虑重组公司的网络结构时可能会遇到下面的问题:是否可能有两台主域名服务器,每台负责一个域区并有这样一个域,例如带以下子域的example.net域?
该管理员可能想一台名字服务器负责“consult和training”子域,另一台名字服务器负责“advisory和communication”子域。这样做没有问题,但你必须根据你的偏好创建五个或三个域区。
这里example.net授权给其四个子域,所以共有五个域区。你也可以将其中两个子域放在example.net域中,这样就得到下面的配置:
上面的例子只给出了两种将一个带四个子域的域形成的主域区分布到两台服务器上的方法。当然,也有其他的配置方案。将大域区划分以达到分布的目的的方法类似于活动目录的结构,对大的并且分散的机构来说,网络的拓扑结构对优化是十分重要的。