我们在使用相同域名“example.com”托管 Apache Web HTTP 服务的现有 Linux 服务器配置新域控制器时遇到问题。
第一个域控制器的 IP 地址为 192.168.234.5,第二个域控制器的 IP 地址为 192.168.78.5,Apache Web 服务器的 IP 地址为 192.168.234.232,全部使用 BIND DNS 服务器。
我们如何配置它?配置将在哪里设置?
答案1
关于这个概念,论坛上已经有几个问题和答案。通常,最好不要将 TLD 用于现有的 DNS 区域,而应该为 AD 创建一个新子区域。例如,ad.example.com。
但是,Active Directory 始终可以与现有 DNS 区域共存,甚至可以使用绑定 DNS 服务器。
通常,Active Directory 域控制器会创建并管理 Active Directory DNS 域的 DNS 记录,客户端也可以使用称为 DNS 动态更新的过程来注册自己的 DNS 记录。
鉴于 Active Directory 在这些场景中通常是辅助的,因此动态更新通常不是一种选择。
以下文章介绍了创建 Active Directory 实施和运行所需的记录的步骤。
将 Windows DNS 集成到现有 DNS 命名空间
https://learn.microsoft.com/en-us/troubleshoot/windows-server/networking/integrate-windows-dns-into-existing-dns-namespace
概括
Windows 域名系统 (DNS) 的一项功能是支持动态主机更新(记录在 RFC 2136 中)。要利用此功能,可以在没有其他 DNS 服务器的环境中以及已实施非动态 DNS 服务器的环境中部署 Windows DNS(例如 BIND 4.9.7 及更早版本等)。在已实施 BIND 服务器的环境中部署 Windows DNS 时,您有多种集成选项:
- 将区域从非动态权威 DNS 服务器迁移到运行 Windows DNS 的服务器。
- 委派父 DNS 域下的子 DNS 域。对于与区域根名称不同的 Active Directory 域名,将子域委派给 Windows DNS。例如,如果 Active Directory 域名为 dev.reskit.com,包含此名称的区域为 reskit.com,则将 dev.reskit.com 委派给运行 DNS 的基于 Windows 的服务器。
- 将域控制器 (DC) 定位器记录 (SRV 记录) 使用的每个子域委托给基于 Windows 的服务器。这些子域是 _msdcs.reskit.com、_sites.reskit.com、_tcp.reskit.com 和 _udp.reskit.com。当 Active Directory 域名 (例如 reskit.com) 与区域根的名称 (例如 reskit.com) 相同且无法直接委托给运行 DNS 的基于 Windows 的服务器时,可以使用此选项。客户端可以是名为 reskit.com 的 Active Directory 域的成员,但可以在名为 dynamic.reskit.com 的 DNS 区域中注册。
本文介绍了上面列出的第四种选择,即如何将 Windows DNS 集成到已实施 DNS 命名空间的组织中,其中对具有 Active Directory 域名称的区域具有权威性的 DNS 服务器不支持 RFC 2136(动态更新)。本文还讨论了这样一种情况:当对具有 Active Directory 域名称的区域具有权威性的 DNS 服务器不支持动态 DNS 更新时,域成员使用与 Active Directory 域名称不同的主 DNS 后缀来允许基于 Windows 的计算机动态注册 DNS 记录。
更多信息
要将 Windows DNS 集成到基于非动态 DNS 服务器的现有命名空间中,您可以委派定位器记录(SRV 记录)使用的子域,以便可以使用动态更新(根据 RFC 2136)。请按以下步骤操作:
在对具有 Active Directory 域名称的区域具有权威性的非动态 DNS 服务器上,将以下区域委托给运行 DNS 的基于 Windows 2000 的服务器:
_udp. DNS域名 _tcp. DNS域名 _sites. DNS域名 _msdcs. DNS域名
例如,如果根区域名为 reskit.com,则将 _udp.reskit.com、_tcp.reskit.com、_sites.reskit.com 和 _msdcs.reskit.com 委托给基于 Windows 的服务器。
您还必须委派另外两个子域:
ForestDnsZones。ForestDNSName DomainDnsZones。DNSDomainName
在基于 Windows 的服务器上,创建步骤 1 中委派的前向区域,并启用区域进行动态更新。
要创建新区域:
在 Windows 服务器上启动 DNS 管理器。
在 DNS 管理器中展开适当的 DNS 服务器。
右键单击“正向查找区域”文件夹,然后单击“新建区域”。
当新区域向导启动时,单击下一步,选择“主要区域”并选中将区域存储在 Active Directory 中复选框,然后单击下一步。
对于 AD 集成区域,选择区域数据的存储位置,可以是域或林中的所有 DNS 服务器,也可以是域中的所有 DCS(Windows 2000 中的唯一选项)。
在名称框中输入区域的名称。例如,输入 _msdcs.reskit.com。
单击下一步。查看向导的摘要后,单击完成。
要使区域能够接受动态更新,请执行以下操作:
- 使用运行 DNS 的 Windows 服务器上的 DNS 管理器,右键单击新区域,单击“属性”,然后单击“常规”选项卡。
- 在“允许动态更新”框中,单击“仅安全更新(推荐)”或“是”。只有在将服务器升级为域控制器后,“仅安全更新”选项才可用。重复此过程,直到步骤 1 中描述的所有四个区域都已创建并允许动态更新。这允许域控制器定位器记录在 DNS 中动态注册和取消注册。
此外,可以创建并配置一个或多个区域,以允许客户端和服务器动态地向 Windows 服务器注册自身。例如,可以使用名为 dynamic.reskit.com 的区域通过动态更新注册网络上的所有客户端和服务器。要配置此类区域:在对父区域(例如 reskit.com)具有权威性的非动态 DNS 服务器上,将新区域委托给运行 DNS 的基于 Windows 的服务器。例如,将 dynamic.reskit.com. 区域委托给 Windows 服务器。在 Windows 服务器上,为上面委托的区域(dynamic.reskit.com)创建正向查找区域。在 Windows 服务器上,启用区域以进行动态更新。
当 Windows 域控制器启动时,Netlogon 服务会尝试在权威区域中注册多条 SRV 记录。由于要注册 SRV 记录的区域已委派(在步骤 1 和 2 中)给 Windows 服务器,这些记录可以在该服务器上动态更新,因此这些注册将会成功。此外,DC 将尝试在根区域(例如 reskit.com)中注册其 Netlogon.dns 文件中列出的 A 记录。在这种情况下,由于根区域位于非动态 DNS 服务器上,因此这些更新将不会成功。DC 上的系统日志中将生成以下事件:
Event Type: Warning Event Source: NETLOGON Event Category: None Event ID: 5773 Date: <DateTime> Time: <DateTime> User: N/A Computer: DC Description: The DNS server for this DC does not support dynamic DNS. Add the DNS records from the file %SystemRoot%\System32\Config\netlogon.dns to the DNS server serving the domain referenced in that file.
要纠正此行为:
每个 Windows DC 都有一个位于其 %SystemRoot%\System32\Config 文件夹中的 Netlogon.dns 文件。此文件包含 DC 在 Netlogon 服务启动时将尝试注册的 DNS 记录列表。在进行以下更改之前,最好复制此文件,以便您拥有 DC 尝试向 DNS 服务器注册的原始记录列表。请注意,每个 DC 都有不同的记录,因为这些记录特定于每个 DC 上的每个网络适配器。检查 Netlogon.dns 文件以识别文件中的所有 A 记录。您可以通过“IN”类描述符后面的记录类型来识别 A 记录。例如,以下两个条目是 A 记录:
reskit.com. 600 IN A 10.10.10.10 gc._msdcs.reskit.com. 600 IN A 10.10.10.10
Netlogon.dns 文件中的 A 记录数量取决于 DC 拥有的适配器数量、每个适配器配置的 IP 地址数量以及 DC 的角色。DC 寄存器:
域名的每个 IP 地址都有一个 A 记录。
如果 DC 也是全局编录 (GC) 服务器,它会为其每个 IP 地址注册 gc._msdcs.DnsForestName。
由于非动态 DNS 服务器不会接受域控制器动态注册 A 记录的尝试,因此必须在权威 DNS 服务器(本文示例中为区域 reskit.com 的权威 DNS 服务器)上手动配置 A 记录。Windows 部署不需要添加与域名对应的 A 记录(例如 reskit.com),并且可能仅当不支持 SRV DNS 记录的第三方 LDAP 客户端正在搜索 Windows DC 时才需要添加。
在 Windows 服务器上,在适当的区域中创建步骤 A 中确定的 GC 服务器特定的 A 记录。例如,在 _msdcs.reskit.com 区域中为 GC 服务器创建 A 记录。
在对区域根具有权威性的非动态 DNS 服务器上,在根区域 (例如,reskit.com) 中为步骤 A 中确定的非 GC 服务器特定的 A 记录创建 A 记录。例如,在 reskit.com 区域中为 reskit.com 创建 A 记录。
应使用以下注册表项来禁止 DC 尝试注册 Netlogon.dns 文件中的 A 记录。将以下 REG_DWORD RegisterDnsARecords 值设置为 0(零):
HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
- 要纠正此行为:一旦您拥有 Active Directory 林和域,您应将 Active Directory 与运行 DNS 的 Windows 服务器负责的 DNS 域集成。此外,您还应重新配置已配置为接受动态更新的区域,使其仅接受安全动态更新。