AppSync:通信エラーでWindowsホストの検出が失敗する
Сводка: エージェントがExchangeサーバーと通信できないため、AppSyncはExchangeホストの検出に失敗します。
Симптомы
場合によっては、余分なDNS名が編集されるかDNSから削除されても、ターゲット ホストで正しく更新されなくなるまで、問題が発生しないことがあります。この時点で、エージェントはgetnameinfoから取得したFQDNをIPアドレスに解決できなくなり、検出は失敗します。
Windowsホストの検出とエージェント ファイルのプッシュ インストールが失敗する場合があります。ホストのホスト名、完全修飾ドメイン名(FQDN)、IPへのpingは成功します。これは、すでに検出されたホストまたは新規インストールで発生する可能性があります。プッシュ インストール中に、エージェント ファイルはエージェントにプッシュされますが、インストールの検出フェーズは失敗します。
ログに次のエラーが表示されることがあります。
Server Logs:
<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サーバーに追加し直したり、エージェントからレコードを削除したりできない場合は、次のように問題を回避できます。ターゲットWindowsホスト上のhostsファイルを更新して、FQDNがターゲット ホストのIPアドレスに解決されるようにします。C:\Windows\System32\drivers\etcにあるhostsファイルを編集します。