DNSプロトコルを使用した「ping」

Aug 19 2020

DNSサーバーへのネットワーク接続が機能していること、およびサーバーがルックアップ要求を発行する以外に最小限の応答しか行わないことを確認するための「グッドプラクティス」は受け入れられていますか?特定の例としてNagiosのコードを見ると、「この名前は解決されますか?」に向けられているように見えます。「サーバーは大丈夫ですか?」ではなく。

nullクエリを試しましたが、無視されているようです。サーバーのステータスをリクエストしようとしましたが、一部の応答(通常は「実装されていません」)で、他の応答は要求を無視します。pingを無視するサーバーシステムをたくさん見たので、pingに頼るよりも良いものが好きです。また、機能などをいじくり回すという余分な手間があります。

現在、一貫して信頼できる唯一の解決策は、サーバーがこれをキャッシュして応答するのに最小限の労力を費やすと仮定して、google.comのようなものを検索することだと思います:これを数分ごとに行う必要があるので、私はしませんその所有者を混乱させたい。

回答

2 telcoM Aug 19 2020 at 16:01

RFC 6303には、基本的にすべてのDNSサーバーが応答できる必要のある多数のDNSゾーンがリストされています。これらのゾーンがローカル目的で使用されていない場合、基本的にこれらのクエリがDNS階層のルートに不必要に伝播されるのを防ぎます。

それらの中で最も古く、最もよく知られているのは、ループバックネットワークの逆引きゾーンであり、特に、IPv4アドレス127.0.0.1(つまりFQDN 1.0.0.127.in-addr.arpa.)のPTRレコードです。基本的に、すべてのDNSサーバー、他のDNSサーバーにクエリを実行せずにそれを提供できる必要があります。

したがって、dig -x 127.0.0.1 @dns-server-address技術的には特定のレコードのクエリですが、「サーバーは大丈夫ですか?」として効果的に適用できます。これは記録であるため、すべてのDNSサーバーは、最小限の労力で、他のDNSサーバーに接続することなく解決できるはずです。

名前のクエリはlocalhost.実質的に同じように適切である必要があります。使用しているツールが追加される可能性を防ぐために、クエリしている名前がすでに完全修飾されていることを示すために、末尾にピリオドを明示的に含める必要があることに注意してください。結果を歪める可能性のあるローカルドメインのサフィックス。