5.将所有的域区传送到一台新的使用注册表启动的windows 2000 DNS服务器
windows 2000 对于从注册表启动有两种设置选择,一种是使用文件存储域区数据,另一种是使用活动目录存储域区数据。如果不是活动目录集成的存储方式,可以很容易的将服务器改为使用启动文件。然后强制服务器更新数据文件,此后就可使用前面讲过的方法传送域区文件了。当域区传送完成并配置了其属性以后,可以将服务器改回使用注册表启动。但如果采用的是活动目录存储,按上面的方法就达不到传送域区文件的目的。在这种情况下,最容易的方法是在管理控制台中创建新域区并在创建新域区模板中指定从已存在的域区数据中导入数据。任何时候需要导入少数几个域区都可以方便地采用这种方法。
6.在两台使用注册表启动的windows NT4DNS服务器之间传送域区器。
如果在NT4中使用注册表启动DNS服务器,则应按照以下步骤传送一个域区文件:
1)在目的服务器上使用DNS管理器创建新域区。按源服务器配置创建的新域区,可为主域区或辅域区。新域区必须以同样的域区文件名来创建。如从源服务器复制的源域区文件是paradise.com.dns,则新的域区文件名也必需是paradise.com.dns。
2)在控制面板中打开“services”,停止两台NT4服务器上的DNS服务器。
3)人工从源服务器复制%systemroot%system32DNS文件夹中的文件.dns到目标服务器的相同文件夹
4)需要的话,编辑拷贝来的域区文件以调整SOA、NS和相关联的A记录使其使用正确的主机名和IP地址。
5)重新启动新windows NT上的DNS服务器。
以下步骤可以从由注册表启动的DNS服务器传送多个域区文件。而步骤1~2只用于目的windows NTDNS服务器,步骤5~8只用于源windows NTDNS服务器。而步骤9~14只用于目的windows NTDNS服务器。在该过程中,建立了一台起替代作用的服务器,并且该服务器上以前的域区部将丢失。
1)使用DNSManager创建一个称为Sample.com的样本主域区。创建样本域区可以确保
DNS服务器启动文件的信息写入注册表,并使DNS服务器知道缓存信息的存放位置。
2)使用DNS管理器,删除在步骤1创建的样本区域。
3)从控制面板打开“Service”,停止两台windows NTDNS服务器的MicrosoftDNS服务
4)从源DNS服务器,将要传送的域区文件.dns从文件夹%Systemroot%system32DNS复制到目标windows NTDNS服务器的相同的文件夹。
5)启动注册表编辑器(Regedt32.exe).
6)到注册表的以下子键:
7)单击“Zones”,再单击“Registry”,单击“SaveKey”。
8)将这个键值保存到可以重新恢复到目标服务器的位置,关闭注册表编辑器。
9)将保存的注册表文件移到目的服务器上。
10)启动注册表编辑器。
11)选择以下子键:
12)单击“Zones”,以验证已被选中,再单击“Registry”,单击“Restore”。
13)找到保存到目标服务器的注册表键值文件。
14)在确认对话框中单击“Yes”,关闭注册表编辑器。
15)重新启动新NTDNS服务器上的MicrosoftDNS服务器服务。
从注册表键值传送的信息保持了域区名,并不断在DNS管理器中为每个复制的域区创建域区名。可选的服务器配置信息也一同被传送。还是要注意,不准确地使用注册表编辑器将导致严重的系统问题,甚至要重新安装windows 才能恢复正常。在使用这个工具之前一定要备份注册表。
在完成该过程以后,很可能需要调整新服务器的主机名和IP地址。此时,已经可以准备关掉旧的服务器并将新的服务器连接到网上。最好隔离新服务器对新的IP和主机名做一些有限的测试,因为当旧机器在运作时,新机器不能在连接到网上。
注意MicrosoftDNS不能人工地提出域区来进行测试,管理员必须等到域区传送后才能检查结果。在一台具有授权来进行域区传送的机器上运行的nslookup应用程序可以用来观察域区的内客和将它复制到一个文件。另一个管理员可以使用的工具是事件查看器,它既能看到城区传送的请求,也能看到城区传送本身。事件查看器可以报告传送的状态、传送发生的日期和时间、所影响的域以及所写的城区文件名。如果你的DNS不能运行,事件查看器和nslookup都是windows NT的最好的故障处理工具。
13.5.4在NT4中操纵DNS服务器存在的问题
在windows NT4的DNS服务器的实现中,对域区的操作并不一直都一帆风顺。例如,先创建一个辅域区,然后再将它改为主域区,则注册表并没有更新来反映这个变化。下一次重新启动DNS服务器时会得到一个错误信息,指出没有主DNS服务器地址。在这种情况下,DNS服务器不会启动。另外,文件CACHE.DNS会被一个空白文件所覆盖,导致不能对授权域区以外的域名进行解析。
升级到服务补丁4的NT4中,微软DNS服务器已针对该问题作了修补,从而可以准确地写回域区类型链值来反映域区的正确作用。在windows 2000 中这已不再是一个问题。
windows 2000 也存在一些WindowNT中就存在的问题。特别是当域区文件包含一个主机名的大量的(大约为一百个)“A”记录(每个映射为不同的IP地址),在显示域区信息时用户接口会停止响应(挂起)。
在这种情况下,被NT4DNS管理器(DNSADMIN.EXE)所占用的内存容量会迅速增加,直到给出一个对话框,显示虚拟内存的容量太少,要求用户增加交换文件的大小。几分钟后,系统会给出另一个对话框,显示没有足够的内存来显示所有的记录。在DNS管理器的右下角也会显示内存不足的信息,并再次显示虚拟内存的容量太少的信息。当一个特定的节点有大量记录时,因为RPC缓冲空间不足,DNS管理工具也要挂起。
为解决NT4的这个问题,需要编辑注册表来增加缺省的用于DNS管理的RPC缓冲空间的大小,参见以下的操作步骤:
1)运行注册表编辑器。
2)输入以下键值
3)在“Edit”菜单中,单击“AddValue”,并使用以下信息创建一个值为16384的RpcBufferAlloc键:
4)对以下键值重复步骤2和步骤3:
5)关闭注册表编辑器。
另一个问题存在于DNS服务器的管理接口,而不是DNS服务器本身。当有一个或几个域区包含多于65535个记录时,又将面临另一个问题:用DNS管理器观察DNS域区时,它可能停止响应。此时如果检查“性能监视器”或“任务管理器”,可以看到DNS管理器已使用了90%CPU资源。
现在对这个问题还没有解决办法。windows 2000 似乎也受到一些类似的、可能与该问题相关的问题的影响。DNS服务器仍将启动并正常工作、但DNS管理器停止响应。然而,在windows 2000 DNS服务器的管理控制台上只可访问大约一半的资源记录。无论在windows NT还是windows 2000 中,如果你的域区有多于65535个记录,你应该使用文本编辑器,如WordPad(写字板)或Edit来编辑这些文件。
13.6小结
本章提供了一些与DNS服务器体系的实际运行相关方法和实践,以及一些难得的信息。一些信息是关于运行于WindwosNT4上的DNS服务器的,因为NT4的DNS服务器有不同的实现方法且存在不同的问题。
(本章完)