windows 2003 DNS 4004或4015错误的原因

windows 2003 DNS 4004或4015错误是DNS错误中比较头痛的错误.他们常常一起出现.
(在朋友们聊天或新闻组看新闻的时候也常常看到这两个错误).
因为引起这两个错误的原因很复杂---反正微软没有相应的说明文档.
我只是总结一下自己所知道的.不过我相信我的文档已经比微软要详细了!

关于4004错误
事件类型: 错误
事件来源: DNS
事件种类: 无
事件 ID:4004
描述:DNS 服务器无法完成枚举区域 . 的目录服务。这台 DNS 服务器配置成使 用从 Active Directory 中获得的信息并且没有它就无法加载区域。请检 查 Active Directory 运行正确并重复区域的枚举。 扩展的错误调试信息(可能为空)是 ""。 事件数据包含此错误。

★首先,出现这一错误最大的可能是域控制器的DNS服务具有不合理的区域,或者缺少所需要的SRV记录,运行Netdiag可以得到更多的信息.

★有记录表明,当你使用DCpromo命令使域控制器降级的时候,你总是会收到4004或4015错误,解决并停止这个事件可用如下方法:
1.创建一个根区域;
2.右键单击根区域并选择"属性";
3.将此区域纳入到主要区域;
4.删除根区域.

★windows时间服务的错误配置可能会导致这个错误.查一查日记中有没有任何关于W32Time服务的错误日记.因为错误的时间配置会导致DNS服务在某个时刻不能联系到AD.
解决了W32Time服务的错误,就可以解决4004的错误.

★在单DC的环境,在安装了windows 2003 SP1的域控制器上,由于DNS集成了AD区域,并且DNS服务器网卡的DNS设置为127.0.0.1,DNS会出现这个错误和4015错误.
修改这个地址不能解决问题.删除并重安装DNS服务,(期间不要重启计算机,不然会失去所有的DNS记录),可以解决这个错误.
当然,如果你有多台DNS服务器,在删除和重安装DNS期间重新启动服务器是更好的做法,因为这时可以完全删除并重建DNS记录.

★另外,如果你有两台域控制器,出错4004错误很可能是服务器的网卡设置有问题,解决这个错误,只要对DC的网卡作如下设置:
DC1:首选DNS地址指向DC2
备选DNS地址指向自己.
DC2:首选DNS地址指向DC1
备选DNS地址指向自己.

★有人指出,如果你只有一台DC或两台DC并且它们的整合到AD区域的时候,可能导致这个错误.因为DC可能运行着别的服务或者DC的运行速度比较慢.这可能是4004错误的最终原因.
因为DNS的启动比较早,此时AD还不能答复查询,(因为DNS不需要等待AD的启动,而AD的启动则需要DNS启动在先),Netlogon服务在启动时尝试注册AD区域,而这时AD可能还没有完全初始化,于是就出现了错误.
你可以忽略这个错误,如果你有多台DC,你可以把DC的首选DNS指向别的控制器,备选DNS指向自己.

★此外,可能是没有连入internet,所以找不到根服务器.如果你在虚拟机中出现此错误,可以忽略.


关于4015错误
事件类型: 错误
事件来源:DNS
事件种类:无
事件 ID: 4015
描述:DNS 服务器从 Active Directory 服务 (DS) 中遇到一个严重错误。 检查 Active Directory 是否运行正常。 扩展的错误调试信息(可能为空)是 ""。 事件数据包含此错误。

★可能是由于在DNS数据库中记录了一些不正确的信息,或者是由于域控制器的DNS服务配置不正确.尝试如下步骤:
删除domain.com区域中的_msdcs文件夹,然后重新注册该信息.
(dox注: 运行net stop netlogon 和net start netlogon 命令重启netlogon服务,可重建DC的相关记录).

★运行netdiag /debug /fix >c:\netdiag.txt命令修复DC的记录.

★把子域控制器提升为上一级域控制器的时候出现了这一问题,因为DNS仍然被配置为先前的区域.
让控制器和主域控制器同步可以解决这一问题.

★这个错误被报告出现在设置了internet共享连接(ICS)的DNS服务器上,(ICS)设置它自身为DNS代理服务,这样就与DNS发生了冲突.
ICS不支持同时配置为DNS或DHCP服务.

★错误的原因与4004错误的原因一样,即使用DCpromo命令使域控制器降级的时候,你总是会收到4004或4015错误,解决并停止这个事件可用如下方法:
1.创建一个根区域;
2.右键单击根区域并选择"属性";
3.将此区域纳入到主要区域;
4.删除根区域.


★有人认为,造成这一错误的原因是DNS和AD服务不同时启动造成的,(DNS启动早一点).据说可用如下方法解决:
定位注册表HKLM\System\CurrentControlSet\Services\NTDS\Parameters,增加一个Dword值命名为“Repl Perform Initial Synchronizations”,设置为10进制的数值为0.
意思是使AD服务和DNS查询在启动之后加载.
(dox在此注明:这个方法我可没有试验过).


★有人报告,这一错误的原因是域DNS服务的根区域没有为子域提供可信任的服务列表.特别是创建了子域而AD没有动态更新的时候,会出现这个错误.
运行"repadmin /syncall dc.subdomain.domain.com dc=subdomain, dc=domain, dc=com /force"可以进行修复.


★使用域升级和重命名工具把域控制器从windows 2000升级到windows 2003.升级之后,域重命名工具会修改域名,但是DNS仍然有一些数据指向旧的域名.删除和重安装DNS服务可以解决这个问题.

★还有人报告,这个错误与丢失了FSMO所有者(所有者应该为域控制器)有关,当修改了不存在的所有者后,问题解决了.


★微软说:DNS服务用活动目录存储DNS数据,当它查询目录遭遇LDAP(轻型目录服务协议)错误,比如,查询不到数据库,这个错误可能会出现.
(dox注明:我觉得这仍然与AD和DNS的启动顺序有关,AD的启动不依赖于DNS,而DNS启动的时候,AD还没有启动,DNS不能获得AD中的相应数据.)

★以下这个错误的报告和4004差不多,即认为错误会发生在windows 2003 SP1的电脑上,域控制器集成了AD区域,并且DNS服务器的的DNS设置为区域127.0.0.1,DNS会出现这个4004和4015错误.不用修改这个地址不能.只要删除并重安装DNS服务,(如果是单DC,期间不要重启计算机),可以解决这个错误.

★也有人报告,这个错误是由于网卡的DNS设置不正确而出现的,解决方法和4004的解决方法类似.
PDC的首选DNS应该指向BDC,次选指向自己;而BDC的首选DNS应该指向PDC,次选指向自己.

posted @ 2007-12-08 21:50  艾阳君  阅读(493)  评论(0编辑  收藏  举报