情况:
- 我们有需要测试的 DR 站点
DR 站点上混合了 Linux 和 Windows 主机。如果生产站点中的 SERVER 不可用,则发生灾难时,DR 上的 SERVER_DR 将打开并加入同一个 Windows 域。这样做是为了以防主站点是不可用,我们不想删除 SERVER 表单 AD 的原始记录。
我要解决的问题是 DR 站点中的名称解析。进程和脚本使用 DNS 名称 SERVER,因此在 DR 站点中对 SERVER 的请求应转换为 SERVER_DR。我们无权在 Windows DNS 上执行任何操作。
我的想法是使用 BIND 来解决这个问题。DR 中的主机应该能够使用 AD 进行身份验证。事实上,他们不需要访问 Windows 域中 DR 站点之外的任何其他内容,这应该可以简化问题。
需要DR主机访问的服务主要是文件共享和SQL服务器。我相信SQL服务器可能是一个问题,因为他们使用SPN
这带来了一个想法,即在 DR 站点中由 BIND 持有的 our.domain.com 区域使用 BIND,但是当 Windows DR 主机需要针对 AD 进行身份验证时,我可以看到可能的问题,因为如果我没记错的话,它们需要使用未解码的记录。我们不能由于我前面提到的原因,从 AD 委派区域。
解决这个问题值得麻烦吗?我的一位同事建议为每个 Windows DR 主机使用 hosts 文件。但是看起来很丑,因为它们并不多,我设置 BIND 的时间可能会被浪费掉。
HOSTS 文件不会使 AD 身份验证正常工作。AD 身份验证需要只有 DNS 服务器才能提供的 SRV RR(因为 HOSTS 文件只是 A RR)。
看看这里:我之前给出的关于使用 BIND 支持 AD 的答案:使用 BIND9 和 DHCPD 来支持 Windows 域
如果您的 Windows 服务器计算机名称不同,您将会遇到一些软件无法正常工作的问题。只是尝试将非 DR 名称“别名”到具有不同计算机名称集的 Windows 服务器将适用于某些协议,但其他协议将一蹶不振(例如,AD 中的 SPN 与计算机“绑定”名称)。
我不清楚为什么不能在 DR 站点中使用 Windows DNS。我认为您可以启动 Windows DNS 服务器,如果情况变得更糟,请将 _msdcs.domain.com 区域委托给现有 BIND 基础结构中的 Windows DNS 服务器。
我想我需要更多地了解你想要完成的事情以及为什么你有你所做的限制,但总的来说,我会努力使 DR 环境尽可能接近生产环境所以将操作移至 DR 环境时,您只需要做最少的工作。
没有一种简单的方法可以让 DR 站点上的主机将“SERVER”解析为 SERVER_DR 的 IP 地址,同时仍保持所有 AD DNS 工作正常。您需要做的是为所有服务器引用使用别名。
我通常的方法是创建一个没有 AD 整合的新域(例如 mydomain.site)。这允许您为不同的 DNS 服务器使用单独和不同的区域文件。然后将所有对您的服务器的引用更改为 server.mydomain.site。这允许您的用户使用单个服务器名称,该名称可解析为适合该站点的任何名称。
注意 Windows 文件共享要使用 CNAME 别名,您需要为 LanManServer 服务添加一个注册表项。有关详细信息,请参阅http://support.microsoft.com/kb/281308。这适用于 W2k8 以及 2k 和 2k3。
我强烈建议您使用 Windows DNS 来托管 .site 域。如果您真的无法说服您的系统管理员提供帮助,那么您可以使用 BIND 并将 Windows DNS 服务器配置为 fowarders。然后 BIND 将解析 .site 域,而 Windows 将用于所有其他域,包括 AD 域。然而,这使事情变得更复杂,所以如果可以的话,我会避免它。
JR
PS re“NB for Windows 文件共享以使用 CNAME 别名”
使用别名的意义在于,您可以使用 UNC 名称(如 \myserver.mydomain.site\share)浏览共享或映射网络驱动器,其中名称“myserver.mydomain.site”解析为目标服务器的 IP 地址,并且可以解析到不同站点的不同IP地址。默认情况下,除非服务器名称与真实服务器名称匹配,否则 LanManServer 服务将不允许浏览,并且您会收到类似“网络上存在重复名称”的错误消息。这样做是为了提高安全性。我提到的知识库文章描述了如何关闭名称检查,以便像上面那样工作的 UNC 名称。
实际上我经常使用这个技巧,因为它可以很容易地将文件共享移动到不同的服务器。它不是 DFS 的替代品,但可能是一个有用的技巧。