web-dev-qa-db-ja.com

UseDNSを無効にせずに逆ルックアップが原因で遅いSSHログインを修正

Azure VM)からサーバーに接続しようとすると、DNSの逆引き参照に失敗するため、多くの時間がかかります。

UseDNS noを使用してルックアップを無効にし、問題を完全に回避することはできますが、これによりログの有用性が低下するため、そのようにはしたくありません。

また、ローカルゾーンをキャッシュして提供するためにローカルBINDサーバーを実行しています。

私が気付いたのは、SSHクライアントがユーザー名を送信するたびに、namedが次のような複数の警告を発することです。

Mar 10 22:56:04 ghost named[1813]: DNS format error from 8.8.8.8#53 resolving 137.161.97.23.in-addr.arpa/PTR for client 127.0.0.1#37839: invalid response

これは、フォワーダーとして構成されているすべてのサーバーと、そのゾーンにサービスを提供しているMicrosoftサーバーに対して繰り返されます。次に、1秒間の一時停止があり、すべてが4回繰り返されます。

nslookup -type=ptr -nosearch -d2 137.161.97.23.in-addr.arpa 207.46.75.254を実行すると、同様の警告が発生しますが、4回繰り返されません。

だから私の質問は:

  1. この応答がキャッシュされないのはなぜですか?
  2. Sshdが3回再試行するのはなぜですか?
  3. 私はそれについて何かをすることができますか?

[〜#〜] update [〜#〜]クライアントマシンにPTRレコードがないことはわかっていますが、クライアントにPTRレコードがないことは完全に有効です。その上、私はクライアントマシンのDNSレコードを制御できません。

3
Marcin Wisnicki

ユースケースと、DNSまたはssh構成を修正しないことで回避しようとしていることによっては、サーバー上のhostsファイルを変更して、名前とIPをsshdに報告できます。

実際にキャッシュネームサーバーをローカルで実行している場合、nslookupはシステムのリゾルバー(resolv.confのエントリのみ)を使用しないため、キャッシュされません。デフォルトでは、Linuxサーバーにはローカルキャッシュはありません。一般的なものには、nscd、sssd、およびbindが含まれます。

3
Ben