连接到Server 2008共享失败

(这已经开始变得相当长了,但是希望能够提供一些事情的摘要,以便碰到这个问题的其他人 – 这不是一个简单的万能解决scheme,其他解决scheme或途径调查结果也可以在答案中find)。

我在x64 Server 2008 R1 SP1服务器上运行可靠的共享时出现问题。

所有这些在重新启动后都能正常工作,但是经过一段时间(一天之内),共享对于XP和Server 2003服务器就无法使用了。 有趣的是,它们仍然可用于其他Server 2008服务器。

试图访问\\server\share ,Server 2003立即返回,只是给我的消息“指定的networking名称不再可用”,XP需要一两分钟超时之前,提供相同的消息。 事件日志中似乎没有任何内容表明存在问题。

在过去的一两天内做了一些Googlesearch,我曾经看到下面的一些指责:

  • 坏的networking驱动程序(Broadcom [这是我们使用的惠普服务器有什么]似乎得到了一些片状提及)…我已经更新到最新的驱动程序,没有结果(见参考文献1和2)
  • 赛门铁克反病毒…我们没有使用它(目前在服务器上没有AV)(见参考文献1和3)
  • 接收窗口自动调整…我禁用了netsh int tcp set global autotuninglevel=disablednetsh int tcp set global rss=disabled (见参考文献4)

这些都没有影响。 Windows防火墙当前被禁用。

与其他Server 2008盒(x32和x64)可以连接,我只能假设有一些新的安全configuration不太正确 – 或者有一个AD问题,我需要跟踪,但不知道从哪里开始。 即使有人不知道如何解决,如果有人知道我需要用Wireshark寻找这将是一个帮助。

编辑 …我已经把一个Wireshark跟踪(仅由目标主机过滤),我所看到的是客户端(在这种情况下,Server 2003)发送一个SMB“谈判协议请求”消息到Server 2008,但是没有从服务器收到“协商协议响应”。 客户端重试,直到超时。 请注意,服务器正在响应会话请求。 这是事件的全部顺序:

 C -> S NBSS Session Request S -> C NBSS Positive Session Response C -> S SMB Negotiate Protocol Request [no response; time passes]. C -> S NBSS Session Request S -> C NBSS Positive Session Response C -> S SMB Negotiate Protocol Request [no response; time passes]. [repeat] 

EDIT2 …从服务器2008年客户端Wiresharking一个SMB连接显示谈判协议响应正在发送,但与SMBv2:

 C -> S NBSS Session Request S -> C NBSS Positive Session Response C -> S SMB Negotiate Protocol Request S -> C SMB2 NegotiateProtocol Response C -> S SMB2 SessionSetup Request S -> C SMB2 SessionSetup Response [then the conversation contines, bringing the share back] 

我将尝试禁用2k8服务器上的SMBv2(按照petri.co.il上的这些说明 ),并查看是否有帮助 – 应强制服务器随处使用SMB1。

EDIT3 …我也在Microsoft Technet论坛上发现了这篇文章 (“Windows 2008保持断开连接的共享+ outlook 2007保持连接交换2007”[ 原文如此 ]),其他人build议检查TCP Offload Chimneyconfiguration。 然而在目前这个时候,禁用了SMB2(见上面的EDIT2),目前情况似乎没有问题 – 上周五,SMB2被禁用后,股价还没有消失。 一个快速谷歌发现别人 (MS Technet论坛“服务器2008年共享文件打开问题”)谁发现禁用SMB2也是一个解决scheme。 在自我回答和closures这个问题之前,我会让它打好几天。


引用…
(1)Microsoft Networking Team – 从不同客户端到Windows Server 2008服务器的间歇性文件共享连接
(2)424help.com – Windows 2008服务器networking连接问题
(3)Symantec AVForums – MR3lockingServer 2008文件共享
(4)Usenet – 服务器2008 R2文件共享访问在重负载下失败 (也反映在techarena,eggheadcafe等各种networking论坛上)

在捕获中,将Packet Length添加到显示的列,然后按该列进行sorting。 你有没有比正常的以太网帧更大的帧? (我觉得1514)。 如果可能的话,你应该从服务器获取这个捕获。 或者在镜像服务器交换机端口的交换机端口上。

自从SMB2被禁用以来,已经将近一周了(见问题中的EDIT2),从那以后,共享就一直保持稳定。 作为参考,服务器configuration有:

  • 最新的networking驱动程序(适用于HP NC373i)
  • 接收窗口自动调整禁用(请参阅问题的详细信息)
  • SMB2已禁用(通过registry)

我可能可以重新启用接收窗口自动调整,但是因为这是一个活跃的系统,这可能不会很快发生:我现在就放弃它,因为如果它没有中断,不要修复它

如果其他人有类似的问题,解决scheme可能会有所不同(请参阅此问题的其余部分) – 但禁用SMB2最终是解决我的情况。

顺便说一下,google似乎指出了可以通过禁用SMB2来解决其他问题,包括(从MSDN知识库中直接获得快乐的简短标题):

  • KB 974103 – 如果path包含联结点,则无法访问基于Windows Server 2008或Vista的计算机上承载的共享文件或文件夹
  • KB 937082 – 不能configuration发送到基于Windows Vista的文件服务器的最大并发SMB请求数
  • KB 980044 – 您无法访问运行Windows Server 2008或Windows Vista的计算机上的共享文件夹中新近复制的文件
  • KB 950836 – 使用SMB 2.0协议在运行Windows Server 2008或Windows Vista的计算机上执行与networking相关的操作(如ADMT迁移)时,性能不佳

希望这一切都可以帮助别人:-)

编辑 – 2014年5月 …多年之后。 微软最近发布了知识库文章Windows停止响应,如果使用SMB v1协议访问针对Server 2008的共享文件 ,该文件可能会发生问题“由于Mrxsmb10.sys驱动程序中死锁发生”,和提供了一个修补程序。 这个问题还没有在这里重新实现,所以我不会申请 – 但细节听起来像我上面的经验。 如果对其他人有用,我会在答案中join它。