我们正在运行带有 LDAP 后端的 Samba 3 域 (Samba 3.5.6)。最近,我们在虚拟机 (名为schnellwienix
) 上安装了 Windows 7,并将计算机加入域,按照Samba Wiki Windows 7 页面上的提示。Windows 计算机通过成功消息确认加入,并且我们的域控制器 (DC) 创建了正确的计算机帐户。一切似乎都正常。
但是,当任何域用户尝试登录时,Windows 登录屏幕都会显示错误消息
目前没有可用的登录服务器
Windows 计算机上的 NETLOGON 服务定期记录两条故障消息:上面的“无可用服务器”和“RPC 调用失败”。每次重新启动计算机时都会出现此问题,并且会一直存在,直到计算机管理员转到“我的电脑”->“管理”->“本地用户和组”并尝试在其中查找任何域帐户,这会导致问题消失,直到计算机重新启动。重新启动、schnellwienix
重新启动smbd
和域控制器或重新加入域都无济于事。nmbd
winbindd
我们有两个正在运行的域控制器,几十台 Windows 计算机成功使用这些域控制器进行登录。PDCasterix
是否配置了
domain logons = Yes
domain master = Yes
local master = Yes
preferred master = Yes
obelix
是所有主控都设置为 的 BDC No
,但domain logons = Yes
。两个 DC 都连接到同一个 WINS 服务器,该服务器根据请求为 PDC、DC 和 LM 提供正确的地址(通过 Sambanet lookup
命令检查)。每台计算机都会在 DNS 中解析为其正确的名称,但 DNS 中没有配置任何特殊的 Windows 域名。
我尝试分析与域控制器对话的网络流量转储:
schnellwienix
通过 DHCP 获取 IP 地址,并在数据包中获取正确的 DNS 和 WINS 服务器地址。schnellwienix
通过 DNS查询_ldap._tcp.dc._msdc.<ourdomain>
,获取no such domain
。schnellwienix
在NBNS上注册自己的名字,并向PDC查询,获取的IPasterix
。schnellwienix
SMB_NETLOGON
将包含消息的协议数据包发送SAM LOGON request from client
到邮件槽,邮件槽\MAILSLOT\NET\NETLOGON
的计算机名称和用户名为空。首先,它发送到广播地址,然后(可能在名称解析之后)发送到广播地址和。它可靠且快速地从和asterix
获得响应“SAM 响应 - 用户未知” 。asterix
obelix
SMB_NETLOGON
schnellwienix
定期重试,但总是失败。
两者的 Samba 日志文件asterix
均未obelix
显示日志级别 10 上的事件。
网络拓扑很简单:所有计算机都位于同一个子网中,除了 WINS 服务器,该服务器由大学提供,其地址由 DNS 提供。我们在另一台 Windows 7 计算机上间歇性地遇到同样的问题,所有其他计算机运行良好。然而,这是我们第一次虚拟的Windows 机器,通过 VirtualBox 使用桥接网络接口进行虚拟化。
有人知道这是怎么回事吗?我该怎么做才能进一步调试它?
答案1
如果您在尝试解析 DNS 名称时遇到错误,并且 WINS 服务器未返回正确的响应(即 SMB_NETLOGON 数据包),则意味着您的 Win7 计算机将无法发现要通信的域控制器。这与您收到的错误消息一致。
为了帮助您排除这些类型的错误,请通过运行“nltest /dbflag:2000ffff”启用 Netlogon 日志记录,并在重现问题后查看 %windir%\debug\netlogon.log。您将看到计算机尝试定位域控制器以及它所得到的错误。一旦您修复了这些问题,它应该就可以正常工作了。
既然您提到 WINS 服务器是由大学提供的,那么它实际上可以从 VM 访问吗?很可能您无法进行 NetBIOS 名称解析,因为您的 WINS 服务器无法访问,并且您的 DNS 配置已损坏(步骤 2 中的错误)。