配置 Windows 环境以允许我使用 DNS CNAME 来引用服务器需要什么过程?
我想这样做,以便我可以将我的服务器命名为 SRV001,但仍然有\\file
观点到该服务器,因此当 SRV002 替换它时,我不必更新人们拥有的任何链接,只需更新 DNS CNAME,每个人都会指向新服务器。
答案1
为了便于故障转移方案,一种常用技术是针对不同的机器角色使用 DNS CNAME 记录(DNS 别名)。这样,无需更改实际机器名称的 Windows 计算机名称,只需切换 DNS 记录以指向新主机即可。
这可以在 Microsoft Windows 机器上运行,但要使其与文件共享一起工作,需要采取以下配置步骤。
大纲
- 问题
- 解决方案
- 允许其他机器通过 DNS 别名使用文件共享(DisableStrictNameChecking)
- 允许服务器通过 DNS 别名 (BackConnectionHostNames) 与自身进行文件共享
- 提供多个 NetBIOS 名称 (OptionalNames) 的浏览功能
- 为其他 Windows 功能(如打印 (setspn))注册 Kerberos 服务主体名称 (SPN)
- 参考
1. 问题
在 Windows 计算机上,文件共享能通过计算机名称(有或没有完整资格)或 IP 地址进行工作。但是,默认情况下,文件共享不管用使用任意 DNS 别名。要使文件共享和其他 Windows 服务能够使用 DNS 别名,您必须按照下文所述更改注册表并重新启动计算机。
2.解决方案
允许其他机器通过 DNS 别名使用文件共享(DisableStrictNameChecking)
仅此更改将允许网络上的其他计算机使用任意主机名连接到该计算机。(但是,此更改不会允许计算机连接到本身通过主机名,请参阅下面的 BackConnectionHostNames)。
编辑注册表项并添加设置为 1 的 DWORD 类型的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
值。DisableStrictNameChecking
编辑注册表项(在 2008 R2 上)并添加一个设置为 1 的 DWORD 类型的
HKLM\SYSTEM\CurrentControlSet\Control\Print
值DnsOnWire
允许服务器通过 DNS 别名 (BackConnectionHostNames) 与自身进行文件共享
此更改对于 DNS 别名与计算机的文件共享配合使用以找到自身而言是必需的。这将创建可在 NTLM 身份验证请求中引用的本地安全机构主机名。
为此,请对客户端计算机上的所有节点执行以下步骤:
- 向注册表子项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
添加新的多字符串值BackConnectionHostNames
- 在“数值数据”框中,键入用于计算机上的本地共享的 CNAME 或 DNS 别名,然后单击“确定”。
- 注意:在单独的行中键入每个主机名。
提供多个 NetBIOS 名称 (OptionalNames) 的浏览功能
允许在网络浏览列表中查看网络别名。
- 编辑注册表项并添加多字符串类型的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters
值OptionalNames
- 添加应在 NetBIOS 浏览条目下注册的名称的换行符分隔列表
- 名称应符合 NetBIOS 约定(即不是 FQDN,只是主机名)
为其他 Windows 功能(如打印 (setspn))注册 Kerberos 服务主体名称 (SPN)
注意:基本功能无需执行此操作,此处已记录以保证完整性。我们遇到过一种情况,DNS 别名无法正常工作,因为有旧的 SPN 记录干扰,因此如果其他步骤不起作用,请检查是否有任何杂散的 SPN 记录。
您必须为所有新的 DNS 别名 (CNAME) 记录注册 Kerberos 服务主体名称 (SPN)、主机名和完全限定域名 (FQDN)。如果不这样做,DNS 别名 (CNAME) 记录的 Kerberos 票证请求可能会失败并返回错误代码KDC_ERR_S_SPRINCIPAL_UNKNOWN
。
要查看新 DNS 别名记录的 Kerberos SPN,请使用 Setspn 命令行工具 ( setspn.exe
)。Setspn 工具包含在 Windows Server 2003 支持工具中。您可以从 Windows Server 2003 启动盘的 Support\Tools 文件夹中安装 Windows Server 2003 支持工具。
如何使用该工具列出计算机名称的所有记录:
setspn -L computername
要为 DNS 别名 (CNAME) 记录注册 SPN,请使用 Setspn 工具,语法如下:
setspn -A host/your_ALIAS_name computername
setspn -A host/your_ALIAS_name.company.com computername
3. 参考文献
所有 Microsoft 参考资料均通过以下方式提供:http://support.microsoft.com/kb/
- 连接到基于 Windows 2000 的计算机或基于 Windows Server 2003 的计算机上的 SMB 共享可能无法使用别名
- 涵盖了如何使用 DNS 别名记录从其他计算机到服务器计算机的文件共享正常工作的基础知识。
- KB281308
- 安装 Windows Server 2003 Service Pack 1 后,尝试使用服务器的 FQDN 或 CNAME 别名本地访问服务器时出现错误消息:“访问被拒绝”或“没有网络提供商接受给定的网络路径”
- 介绍如何使 DNS 别名与文件服务器本身的文件共享一起工作。
- KB926642
- 如何在 Windows Server 2003 和 Windows 2000 Server 中使用 DNS 别名 (CNAME) 记录合并打印服务器
- 涵盖更复杂的场景,其中可能需要更新 Active Directory 中的记录以使某些服务正常工作以及使浏览此类服务正常工作,如何注册 Kerberos 服务主体名称 (SPN)。
- KB870911
- 分布式文件系统更新以支持 Windows Server 2003 中的合并根
- 使用 DFS 涵盖更复杂的场景(讨论 OptionalNames)。
- KB829885
答案2
实现具有冗余性的 Windows 文件共享的另一种方法是使用具有复制功能的分布式文件系统 (DFS-R)。为了实现这一点,您的文件服务器上至少需要有 Windows Server 2003 R2。
设置 DFS 根目录后,可以指定多个服务器提供单个共享。如果其中一个服务器发生故障,使用该服务器的客户端将自动故障转移到其他服务器之一。
有关详细信息,请参阅 Microsoft 的DFS 概述。