AppSync:发现 Windows 主机失败并显示通信错误
Сводка: 因为代理无法与 Exchange 服务器通信,AppSync 无法发现 Exchange 主机。
Симптомы
在某些情况下,在编辑或从 DNS 中删除额外的 DNS 名称但未在目标主机上正确更新之前,这可能不会导致任何问题。此时,代理程序将无法再将从 getnameinfo 获取的 FQDN 解析为 IP 地址,并且发现将失败。
发现 Windows 主机和推送安装代理程序文件可能会失败。尝试成功 ping 主机名、完全限定域名 (FQDN) 和主机 IP。这可能发生在已查找到的主机或新安装中。在推送安装期间,代理文件将推送到代理,但安装的发现阶段将失败。
您可能会在日志中看到以下错误:
服务器日志:
<DATE> DEBUG [Thread-59 (HornetQ-client-global-threads-777292290)] [com.emc.archway.service.archwayagent.ArchwayConversation] [] [] c2fdae32-c9fe-44b3-9e5f-d60bf3c9f5e6->>> Connecting to host <FQDN of Windows Host> <DATE> ERROR [Thread-59 (HornetQ-client-global-threads-777292290)] [stderr] [] [] java.net.SocketException: Connection reset
代理程序日志
<DATE> INFO [14032] [] [Host Name] [] setHostInfo:: hostname returned by getnameinfo is <Stale FQDN> <DATE> INFO [14032] [] [Host Name] [] m_hostname is <Stale FQDN> <DATE> INFO [14032] [] [Host Name] [] calling setAddrInfo for p_socket_instance hostname (Stale FQDN) <DATE> INFO [14032] [] [Host Name] [] setAddrInfo() called for host <Stale FQDN>
AppSync 检测到不再有效的 Windows 主机的 DNS 名称。
Причина
当主机在 DNS 服务器中有多个 DNS 条目时,可能会发生这种情况。运行代理发现时,AppSync 代理使用 Windows getnameinfo 函数来确定主机的名称。如果特定主机具有多个 DNS 名称,则 getnameinfo 可能不会返回与在 AppSync GUI 中输入的名称相同的名称。
有关“getnameInfo”的更多详细信息,请访问以下链接:
https://docs.microsoft.com/windows/win32/api/ws2tcpip/nf-ws2tcpip-getnameinfo
Разрешение
-
最合适的解决方案是与网络管理员合作,以确保主机在发现过程中返回正确的 DNS 名称。
-
命令“nbtstat -n”可用于显示在主机上注册的 DNS 名称。此命令不会显示未连接到网络的网络适配器的 DNS 名称。
-
命令“nbtstat -RR”可用于强制主机从 DNS 服务器更新其 DNS 记录。
-
如果无法将 DNS 条目添加回 DNS 服务器或无法从 Agent 中删除记录,则可以按如下方式解决此问题。更新目标 Windows 主机上的 hosts 文件,使其将 FQDN 解析为目标主机的 IP 地址。hosts 文件位于 C:\Windows\System32\Drivers\etc。