这是昨天出现的情况:我们在一台机器上有一个共享,我们必须使用别名 (CNAME) 进行访问。该机器运行的是 Windows Server 2012 R2,并为 Windows 7 和 8 客户端提供服务。
Windows 7 客户端可以毫无问题地打开共享 \SHARECNAME 或 \IP.AD.DR.ESS Windows 8 客户端只能通过 \IP.AD.DR.ESS 打开共享
最终有效的方法是创建 CNAME 的 SPN 记录以指向 HOSTNAME(setspn -S HOST/CNAME HOSTNAME 等),然后共享就变得可用了。
HOSTNAME 机器确实记录了一个错误:
“Kerberos 客户端从服务器 HOSTNAME$ 收到 KRB_AP_ERR_MODIFIED 错误。使用的目标名称是 cifs/CNAME。”我没有找到太多信息,但确实为我指明了设置正确 SPN 记录的方向。
我想了解的是客户体验为什么会有差异?
谢谢。
答案1
不太确定,但是您是否碰巧设置了 DisableStrictNameChecking 注册表设置?
http://www.md3v.com/enable-windows-server-smb-2-0-alias-cname
IP 与 CName 以及 SPN 显然表明涉及 Kerberos。也许是 SMB 3.0 加密本身在发挥作用。这只会在 Server2012 到 Win8 的连接上出现,但这是 SMB 2 和 SMB 3 之间的主要区别之一。我不认为共享上的加密是默认启用的,但通过迁移到 SMB 3,协议可能需要 Kerberos 身份验证。
答案2
我们在使用新的 NetApp 时也遇到了类似的问题。所有 W10/2012 客户端都无法访问 CNAME 共享,但 W7/2008R2 客户端可以访问。我们不必创建 CNAME SPN。我们所做的就是删除使用 setspn -l cname 显示的 CNAME 的所有 SPN。
注意:我们也将 CNAME 作为 AD 计算机帐户,并且它一直保留在那里。