有一次,在我们的 SBS 2011 服务器上,我为主 NIC 分配了 2 个 IP 地址。这导致 Windows 在 DNS 服务器启动时向 DNS 添加两个 IP 的静态条目。这当然会造成各种混乱,所以我最终删除了辅助 IP 地址。但是,每次重新启动 DNS 服务器服务时,不再存在的 IP 地址的静态条目都会不断重新出现。显然,某个地方有对此 IP 的引用导致了这种情况,但我不知道在哪里查找。
为什么 Windows 会为不再分配给机器的 IP 不断重新创建此 DNS 条目?
答案1
弄清楚这一点后,我感觉自己很愚蠢,但它足够晦涩难懂,所以值得发布答案以防其他人遇到同样的问题。
过去,在尝试修复另一个 DNS 问题时,我修改了 DNS 服务的注册表项,使其包含一个包含相关地址的 PublishAddresses 参数。一旦我修改此值以删除旧的 IP 地址,一切就会按预期运行。
关于此问题的更多详细信息请参见此处:
http://social.technet.microsoft.com/Forums/en-US/winserverNIS/thread/3eaf3017-373f-4361-a51f-0a20b2e51067
链接引述:
HKLM\System\ControlSet001\Services\DNS\参数\ListenAddress
HKLM\System\ControlSet001\Services\DNS\参数\PublishAddress您不必更改注册表即可使其正常工作。从您显示的注册表条目来看,它表明 DNS 服务是注册此数据的罪魁祸首,而不是 Netlogon 服务。DNS 将自行注册,因为 NS 记录必须反映正确的 FQDN 和 IP 地址。我建议检查 NS 记录的 DNS 区域属性。确保它们显示的是新 IP 地址。一旦正确,我建议将注册表条目改回默认值,我不认为 ListenAddress 和 PublishAddress STR 或 DWORD 值默认在那里。您可以在删除它们之前导出该密钥,然后返回并运行 ipconfig /registerdns 并重新启动 netlogon 服务。检查是否显示正确的 IP。
答案2
解决此类问题的一个好方法是从 www.systernals.com 下载 Procmon,并在启动 DNS 服务时运行它 - 它应该会向您显示它从哪里提取无效 IP。