いくつかのサーバーを備えた中小企業のネットワークがあります。簡単にするために、そのうちの1つにBIND9 DNSサーバーを追加し、各ローカルマシン(vpn.example.com、web.example.com、storage.example.comなど)のエントリを追加しました。これらのエントリは、ローカルネットワークにのみ提供されます。たとえば、vpn.example.comでnslookupを実行すると、常に期待される有効な応答が得られます。ただし、多くの場合、そのサーバーへのSSHの試行は、次のように失敗します。
# nslookup vpn.example.com
Server: 192.168.1.13
Address: 192.168.1.13#53
Non-authoritative answer:
Name: vpn.example.com
Address: 192.168.1.14
# ssh [email protected]
(after a ~10 second pause)
ssh: Could not resolve hostname vpn.example.com: Name or service not known
# ssh [email protected]
[Connects immediately]
他のアプリケーションからの接続と同様に、vpn.example.comへのWebリクエストは成功します。
これは断続的に発生し、ネットワークまたはサーバーの再起動に関連しているようです。すべてが1日か2日稼働した後、おそらくクライアントキャッシュが最終的に問題を把握したため、問題は解決したようです(?)。 MacとWindowsのマシンで見ています。助言がありますか?
ドメイン名を匿名化したので、重要な情報を隠しました。接続しているサービスのドメイン名はたまたま.local
で終わりますか?
Nslookupは、ルックアップをDNSサーバーに直接送信します。 SSHはシステムを呼び出して、名前を解決するように要求します。DNSを使用する場合もありますが、hostsファイル、マルチキャストDNS(bonjour)、またはその他の名前解決プロトコルを使用する場合もあります。したがって、他の構成済みの名前解決方法の1つが失敗している可能性があります。
構成された名前解決サービスについては、/etc/nsswitch.conf
のホスト行を参照してください。