如何找到消失的DNS记录?


Windows活动目录应用的多主机复制模式的缺点之一就是变更复制很快,小错误可能在短时间内就变成大错误。域名系统DNS)的区和记录可能损坏,包含错误的信息甚至消失不见了。

找到删除的DNS记录

DNS记录可以人工删除,某些操作可以导致这个结果,比如DC降级或其它对象清除,当然,DNS记录也可以程式地删除。记住,该记录和所有AD对象一样,可以在任意DC/DNS服务器上删除,并且这会复制到所有DC。追踪的方式之一是找到被删除的对象,然后查看元数据。所有DC上的内置LDP.exe工具对该操作都很有帮助。

另外,找出AD上的DNS记录要根据复制范围。这些位置如下。表1显示陈列DNS记录的LDP工具。记住,DNS记录只会显示这三个位置中的一个。

表1:AD中的复制范围位置

复制范围  AD位置
 所有DC  Cn=MicrosoftDNS,cn=system,dc=wtec,dc=adapps,dc=hp,dc=com
 域中的DNS服务器  Dc=DomainDNSZones,dc=wtec,dc=adapps,dc=hp,dc=com
 林中的DNS服务器  Dc=ForestDNSZones,dc=wtec,dc=adapps,dc=hp,dc=com

当对象被删除时,它们被放在“删除对象”文件夹,如图1所示。但是删除的DNS对象存储在其它DNS记录存储的库中。例如,在图2中,我们看见存储在DC=DomainDNSZones库中的DNS记录,但是其中它也有“删除对象”库。

图1:删除对象

图1:删除对象

图2:DNS记录列表

图2:DNS记录列表

记住:想要显示删除对象文件夹默认情况下隐藏在LDP.exe中),做法如下:

在LDP.exe工具中,连接到一个DC并绑定管理员证书

进入选项-控制,在“预定义负载”区域选择 “还原删除对象”。

通过选择“树-域名)-完成”刷新

展开DC=deletedObjects、dc=domainDNSzones…库,删除的DNS对象就显示了图3)。在这种情况下,我们感兴趣的记录是“DC=_dcdiag_test_record…”。在这个例子中重建了很多次。注意,在图3中,在LDP右边板)中显示的属性没有什么帮助。

该命令用以下格式:

  1. Reapadmin /showobjmeta DCName ObjectDN 

所以在这个例子中,我们从LDP工具中得到了ObjectDN并这样插入它:

  1. C:\Users\olseng>repadmin /showobjmeta wtec-dc4 "dc=_dcdiag_test_record\0ADEL:ba38f888-9314-4ddf-852d-736db6ae181e,cn=deleted objects,dc=domaindnszones,dc=wtec,dc=adapps,dc=hp,dc=com>dnsdelete.txt 

图3:删除的DNS对象

图3:删除的DNS对象

我想要它直达一个文件来让它使用起来更简单。输出如图4所示。注意,红线圈起来的部分是属性。该属性在对象删除时建立。同时显示的还有初始DC的GUID和时间标记。GUID可以通过在DNS管理单元上的CNAME记录里查看或运行解析成DC名称。DC名称通常显示的不会是GUID。现在删除记录的时间、它何时在哪个DC上执行都很明显了。这对于解开记录消失之谜有所帮助。

图4:被删除DNS记录的输出

图4:被删除DNS记录的输出

相关内容