更新 A - 还有更多

更新 A - 还有更多

为了让我更容易理解这一点,我在示例中使用了以下内容:

deecee = 我的域控制器
dctoo = 另一个域控制器
internal.foo.bar = 我的 Windows 域的完整 DNSDomainName。foo
= 我的 Windows 域的简称 (netbios)。oursite
= 我们域中的唯一站点

我们已为 MS DNS 服务器开启了所有日志记录,并看到大量 NXDOMAIN 请求,请求形式如下:_ldap._tcp.deecee.internal.foo.bar.请注意,我不是谈论_ldap._tcp.internal.foo.bar.这些都工作正常。这是日志中的错误条目:

2/19/2015 8:07:06 AM 0960 PACKET  0000000002F885B0 UDP Snd 10.0.0.87       5052 R Q [8385 A DR NXDOMAIN] SRV    (5)_ldap(4)_tcp(6)deecee(8)internal(3)foo(3)bar(0)
UDP response info at 0000000002F885B0
  Socket = 332
  Remote addr 10.0.0.87, port 54309
  Time Query=178201, Queued=0, Expire=0
  Buf length = 0x0fa0 (4000)
  Msg length = 0x006d (109)
  Message:
    XID       0x5052
    Flags     0x8583
      QR        1 (RESPONSE)
      OPCODE    0 (QUERY)
      AA        1
      TC        0
      RD        1
      RA        1
      Z         0
      CD        0
      AD        0
      RCODE     3 (NXDOMAIN)
    QCOUNT    1
    ACOUNT    0
    NSCOUNT   1
    ARCOUNT   0
    QUESTION SECTION:
    Offset = 0x000c, RR count = 0
    Name      "(5)_ldap(4)_tcp(6)deecee(8)internal(3)foo(3)bar(0)"
      QTYPE   SRV (33)
      QCLASS  1
    ANSWER SECTION:
      empty
    AUTHORITY SECTION:
    Offset = 0x0030, RR count = 0
    Name      "(8)internal(3)foo(3)bar(0)"
      TYPE   SOA  (6)
      CLASS  1
      TTL    3600
      DLEN   38
      DATA   
        PrimaryServer: (6)deecee[C030](8)internal(3)foo(3)bar(0)
        Administrator: (5)admin[C030](8)internal(3)foo(3)bar(0)
        SerialNo     = 247565
        Refresh      = 900
        Retry        = 600
        Expire       = 86400
        MinimumTTL   = 3600
    ADDITIONAL SECTION:
      empty

请注意,客户端正在请求_ldap._tcp.deecee.internal.foo.bar.根据 Microsoft 的文档,正确的请求应该是_ldap._tcp.internal.foo.bar.

这些请求来自我们所有加入 AD 的机器。其中包括 Windows 7、Server 2008、2008 R2、2012 和 2012 R2。

我们的 DNS 服务器确实有适当的 SRV 条目,_ldap._tcp.internal.foo.bar并且它们确实能正确解析。所以这不是问题所在。

一位同事向微软提出了一个问题,几天后技术人员终于声称这是正常现象。我不相信。为什么任何文档中都没有提到这种行为?

那么,还有人看到这种行为吗?客户端在查找 SRV 记录吗_ldap._tcp.deecee.internal.foo.bar?如果是,他们是否获得了 NXDOMAIN 结果?

任何想法如何解决这一问题?

提前致谢。

更新 A - 还有更多

在我的域中,我看到以下按最常见顺序排列的无效查询:

_ldap._tcp.oursite._sites.deecee.internal.foo.bar  
_ldap._tcp.deecee.internal.foo.bar  
_ldap._tcp.oursite._sites.dctoo.internal.foo.bar  
_ldap._tcp.dctoo.internal.foo.bar  
_ldap._tcp.deecee                           <- only from our sharepoint hosts  
_ldap._tcp.oursite._sites.decee  
_ldap._tcp.oursite._sites.dctoo  
_ldap._tcp.dctoo                            <- only from our sharepoint hosts  

更新 B - SharePoint 中存在一些问题

我在其中一台受影响的机器上打开了 netlogon 调试,发现了一些有趣的东西。首先,我认为这是一个成功发送的查询:

02/26 22:31:00 [MISC] [6824] DsGetDcName function called: client PID=1884, Dom:FOO Acct:(null) Flags: DS NETBIOS RET_NETBIOS 
02/26 22:31:00 [MISC] [6824] NetpDcInitializeContext: DSGETDC_VALID_FLAGS is c07ffff1
02/26 22:31:00 [MISC] [6824] NetpDcGetName: internal.foo.bar. using cached information ( NlDcCacheEntry = 0x0000007051E732F0 )
02/26 22:31:00 [MISC] [6824] DsGetDcName: results as follows: DCName:\\DEECEE DCAddress:\\10.1.1.80 DCAddrType:0x1 DomainName:FOO DnsForestName:internal.hlc.com Flags:0x800031fc DcSiteName:oursite ClientSiteName:oursite
02/26 22:31:00 [MISC] [6824] DsGetDcName function returns 0 (client PID=1884): Dom:FOO Acct:(null) Flags: DS NETBIOS RET_NETBIOS

发送的不成功查询如下所示:

02/27 09:13:01 [MISC] [308] DsGetDcName function called: client PID=1884, Dom:DEECEE Acct:(null) Flags: WRITABLE LDAPONLY RET_DNS 
02/27 09:13:01 [MISC] [308] DsIGetDcName: DNS suffix search list allowed but single label DNS disallowed for name DEECEE
02/27 09:13:01 [MISC] [308] NetpDcInitializeContext: DSGETDC_VALID_FLAGS is c07ffff1
02/27 09:13:01 [CRITICAL] [308] NetpDcGetNameIp: DEECEE: No data returned from DnsQuery.
02/27 09:13:01 [MISC] [308] NetpDcGetName: NetpDcGetNameIp for DEECEE returned 1355
02/27 09:13:01 [MAILSLOT] [308] Sent 'Sam Logon' message to DEECEE[1C] on all transports.
02/27 09:13:03 [CRITICAL] [308] NetpDcGetNameNetbios: DEECEE: Cannot NlBrowserSendDatagram. (ALT) 53
02/27 09:13:03 [MISC] [308] NetpDcGetName: NetpDcGetNameNetbios for DEECEE returned 1355
02/27 09:13:03 [CRITICAL] [308] NetpDcGetName: DEECEE: IP and Netbios are both done.
02/27 09:13:03 [MISC] [308] DsGetDcName function returns 1355 (client PID=1884): Dom:DEECEE Acct:(null) Flags: WRITABLE LDAPONLY RET_DNS 

如果我的理解正确(如果不正确,请纠正我),其中的第一行表示 PID 为 1884 的进程正在请求 netlogon 登录到名为“DEECEE”的域。它确实认为域名是 DEECEE。当然,前面的代码片段(和其他代码片段)显示,这个进程 pid=1884 正在发送大量请求,其中一些是合法的,而另一些则不是。

检查该机器上的进程列表告诉我这是一个w3wp进程。所以我找到了应用程序池:

C:\Windows\System32\inetsrv>appcmd list wps
WP "1856" (applicationPool:SharePoint - 80)
WP "6540" (applicationPool:SharePoint Central Administration v4)
WP "1884" (applicationPool:272b926088ea454c8a4b4caa8526d3bb)
WP "8468" (applicationPool:6997d03e3ea94018841409e8b821d8da)
WP "6696" (applicationPool:SecurityTokenServiceApplicationPool)

然后我检查了该池中正在运行哪些应用程序:

PS C:\Users\administrator.HLC> Get-SPServiceApplication | foreach { if($_.ApplicationPool.Id -eq "272b9260-88ea-454c-8a4b-4caa8526d3bb") { $_ } }

DisplayName          TypeName             Id
-----------          --------             --
PerformancePoint ... PerformancePoint ... 8681c71c-81b9-41e5-ac19-58d0ccf11227
Managed Metadata ... Managed Metadata ... ef99af38-a3f8-4864-8c88-9ee421f3dfa0
App Management Se... App Management Se... 183ca7a4-825a-4807-91fc-4fe1c9fe93e0
Excel Services       Excel Services Ap... 46557c93-3d60-47f0-99ab-45cc32258137
Subscription Sett... Microsoft SharePo... 9fd75bbe-1464-4a4c-8bd0-3382c0c03dce
Search Administra... Search Administra... ee519543-e311-41fd-a8a4-0b952f731ff8
User Profile Service User Profile Serv... fe6886ab-4a2d-4216-8bcf-5160dad5c037
Business Data Con... Business Data Con... 813bb77c-9eb4-43d0-b2cc-09e8162e58e7
Work Management S... Work Management S... 81dbd284-2506-43a0-be93-2820759bb804
Search Service Ap... Search Service Ap... d641f112-b299-4318-baaf-817ef96107c4

因此我花了一些时间启用和禁用这些 SharePoint 服务并观察 DNS 查询的发出情况。看来用户配置文件服务至少引发了 _ldap._tcp.deecee 的查询。

我知道这并非 SharePoint 的错;正如我之前所说,这些查询来自各个地方。但仅针对 _ldap._tcp.deecee 的查询仅来自我们的 SharePoint 主机。

所以这又带来了一个问题。用户配置文件服务在做什么,导致查找 _ldap._tcp.deecee?不过,这仍然给我们其余的服务器留下了一个问题。

答案1

这是一个错误。

微软很早就知道这个问题(自 Win2000 以来),但没有人说服他们修复它。

答案2

启用 netlogon 调试后,我在 Win7 SP1 机器上发现了同样的结果(域控制器是 2008r2SP1)。据我所知,它还导致处理延迟 8 秒。在我看来,这似乎是 netlogon 的一个错误 API 调用。

您可以通过在工作站上运行以下命令来复制相同的 1355 错误:

nltest /dsgetdc:domaincontroller.domain.com

返回:

获取 DC 名称失败:状态 = 1355 0x54b ERROR_NO_SUCH_DOMAIN

显然是因为它使用错误的参数调用了 dsgetdc。

虽然我同意其他人的意见,但您的基础设施很可能没有问题。不过,如果能彻底查明原因就更好了。

答案3

无需修复,这些查找是为了找到您的 AD 树对应的 LDAP 服务器。

相关内容