none
跨站点的基于AD的DFS共享问题

    问题

  • 公司是Windows 2008 R2的AD,原通过基于AD的DFS发布文件服务器的共享目录,用户通过\\domain 或 \\domain.local 这样的方式去访问发布在AD上的共享文件夹。现在公司新增了分厂,于是将AD扩展到了分厂,属同一个domain,分成两个Site。两个Site中分别都有2台DC。因为有防火墙隔断,PC Client只能连接本site的DC,不允许连接另一个site的DC。

    现在发现用户在访问\\domain \\domain.local 路径时,有时是正常的,有时却会出现“找不到网络路径”这样的情况。怀疑是DNS解析将其指向的另一个site的DC,以至于无法连接到。

    客户端报错信息

    不知道这种情况有什么解决办法?

    谢谢!



    2016年7月4日 0:54

全部回复

  • Hi Stanley_L 您好,

    根据您的环境描述,这很有可能是因为 DFSN 客户端无法完成连接到一个 DFSN 的路径,通常会发生此错误。
    连接可能会由于以下原因之一而失败︰
    •未能连接到域控制器以获取 DFSN 命名空间引用
    •连接到一个 DFSN 服务器故障
    •DFSN 服务器故障提供文件夹引用

    建议您可以查看下面的文章来做排错

    https://support.microsoft.com/en-sg/kb/975440

    如果查下来发现,只有disable firewall 才有用,说明可能firewalls block dfs 需要用 RPC端口,您可以看一下这篇文章的端口设置。

    https://technet.microsoft.com/en-us/library/cc782417(v=ws.10).aspx

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年7月4日 7:41
    版主
  • Hi Mary,

    感谢你的答复。

    我读了你提供的文档链接,测试了一下,发现文档所说的问题似乎和我的案例不完全一样。

    我现在的问题是:用户访问DFS命名空间 \\<DomainName>\<DFSNamespace> 时总是成功的,而访问域名 \\<DomainName> 则时好时坏。

    我想DNS对 <DomainName>的解析是各台DC轮询的?所以我怀疑是否是因为客户端访问 \\<DomainName> 时有时会解析到另一个Site的DC的IP,而因为两个Site之间有防火墙,客户端无法访问到另一个Site的DC,使得客户端访问 \\<DomainName> 失败?

    是否有办法确保客户端在访问\\<DomainName> 的时候,优先访问本Site的DC呢?

    Best Regards,

    Stanley


    2016年7月4日 8:59
  • Hi Stanley_L ,

    所以现在你的问题是用户可以跨站点访问dfs share, 通过dfs 命名空间\\DOMAINNAME\DFSNAMESPACE\SHARE 是好的,

    但是客户端连接到另外一个站点的DC 去了? 如果你客户端有设置优先的dns 服务器为主站点的dns的话,客户端会连接到主站点的dc 服务器。

    您可以查看一下这个分厂站点是否有dns 服务器, 有的话,客户端设置成本站点的dns, 这样就会找本站点的dns 服务器,然后会优先链接本站点的DC

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年7月4日 9:17
    版主
  • Hi Mary,

    两个站点都有各自的2台DNS服务器(同时也是DC),客户端上都仅设置本站点的DNS服务器。

    但我在客户端上测试,先清空DNS缓存,然后ping <DomainName>时,会随机得到两个站点中任意一台DC的IP。当这个IP跟客户端属于同一站点时,客户端就能正常访问\\<DomainName>;而当这个IP跟客户端不属于同一站点时,客户端就无法访问\\<DomainName> 。看上去客户端并未优先连接本站点的DC。这是怎么回事呢?

    Best Regards,

    Stanley


    • 已编辑 Stanley_L 2016年7月4日 9:34 纠正输入错误
    2016年7月4日 9:31
  • Hi Stanley,

    你好,只有当你访问具体的命名空间时你访问的才是 dfs namespace,所以你当你 访问路径为\\domain name\DFSROOT\SHARE,才是实际真正访问dfs 命名空间的共享.

    事实上直接访问\\< domian name > , 你连接的是主站点的DC或者分站点的DC。 所以这个就变成了你跨站点去连主站点的DC/或者分站点的DC, 然后就会出现你上述问题。据我所知这是by design 的行为, 所以如果你需要访问你的dfs share,请输入dfs 命名空间路径 \\<Domain Name>\<DFS Namespace>,不要省略后面的 dfs namespace.

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年7月5日 1:53
    版主
  • Hi Mary,

    因为在AD上有多个dfs namespace,且名称长短不一,用户很难记住所有dfs namespaec的完整路径,所以过去在只有一个Site的时候,用户都是先进入 \\<DomainName>,看到所有的namespace后,再进入自己需要的namespace。如今有了两个有防火墙隔断的site,就出现了之前所描述的时好时坏的情况。像这样的场景,有什么更好的解决办法吗?

    Best Regards,

    Stanley

    2016年7月5日 2:04
  • Hi Stanley,

    据我所知,目前并没有特别好的方法,除非你该站点的所有的DC也被加入成为一台域命名空间服务器。

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年7月5日 2:46
    版主
  • Hi Mary,

    我确实是将所有DC都加入成为与命名空间服务器的。

    另外我现在发现,访问\\<DomainName> 出现问题的似乎都是WinXP的客户端,Win7的客户端好像一直都能正常访问。不知道这是不是WinXP的功能上的局限?

    Best Regards,

    Stanley

    2016年7月5日 2:51
  • Hi Stanley,

    >我确实是将所有DC都加入成为与命名空间服务器的。

    >访问\\<DomainName> 出现问题的似乎都是WinXP的客户端,Win7的客户端好像一直都能正常访问

    如果是这样的情况的话, 有这个可能性,试试看打下windows XP 的下列补丁。现在微软已经停止对XP support了,所以只能尝试已有的补丁看看。

    https://support.microsoft.com/en-sg/kb/898900

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年7月5日 5:57
    版主
  • Hi Mary,

    这个Patch页面中的下载链接已经失效了。但我对比了一下这个页面文档所描述的两个系统文件mup.sys和netapi32.dll的版本都是5.1.2600.2756,而且是针对WinXP SP2的。我们客户端的XP都已升级到了SP3,mup.sys和netapi32.dll的版本都已高于这个patch了。

    Best Regards,

    Stanley

    2016年7月5日 6:11
  • Hi Stanley,

    看一下event log呢?客户端和服务器的event log 里面有没有对应的 event 提示?

    另外WinXP SP3 的补丁都打好。

    Best Regards,

    Mary


    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com.

    2016年7月7日 8:30
    版主
  • Hi Mary,

    客户端和服务器的event log里都没发现异常。XP客户端都已经通过Windows Update打全了所有的补丁。

    Best Regards

    Stanley

    2016年7月7日 9:34
  • 可以考虑使用Active Directory Sites and Services  -Sites 基于ip地址网段区分不同site,以便客户端登录时DsGetDcName查询定位DC时给到合适的本地DC。另外注意本地客户端tcp/ip 主副DNS都使用本地DNS服务器(大多数就是DC集成的)。

        
    2016年10月9日 4:04
  • Hi Merlyn,

    Site当然是配置好的,否则Win7客户端也无法正确地访问了。

    2016年10月10日 0:42