web-dev-qa-db-ja.com

ローカルDNSキャッシュの内容を読み取る方法は?

Windowsではipconfig /displaydnsと私はローカルDNSのキャッシュコンテンツを表示します。

LinuxでDNSのキャッシュコンテンツを一覧表示するにはどうすればよいですか?

できるだけクロスディストリビューションのソリューションを入手したいと考えています。

35
Hanan N.

systemd以前は、OSレベルのDNSキャッシュはほとんどありませんでした

systemdより前は、 nscd でない限り、Linux(およびおそらくほとんどのUnix)ではOSレベルのDNSキャッシュがありませんでした。または dnsmasq がインストールされ、実行されていました。

それでも、nscdのDNSキャッシング機能は、少なくとも 壊れているため 、少なくともDebianではデフォルトで無効にされていました。

dnsmasqについては、 キャッシュはデフォルトでRAM で発生するようです。

17

nscdは、ネームサービスキャッシングデーモンです。これは、Linux、Solaris、その他がネームサービス検索をキャッシュするために使用するユーティリティです。この場合のネームサービスは一般的な用語であり、厳密にホストの解決だけでなく、ユーザー、グループなどにも限定されます。

キャッシュの実際の内容を確認する方法はわかりませんが、/usr/sbin/nscd -gを使用して統計情報を表示できます。

これは、キャッシュがどれほど効率的であるかを示すことができますが、正確に解決することはできません。

DNSMASQなどの代替キャッシュツールを使用している場合は、他のオプションを使用できます。

9
Tim Kennedy

nscdを使用している場合、バイナリキャッシュファイルのASCII文字列を表示することで、コンテンツ(およびおそらく他のゴミ)を表示できます。Debian/ Ubuntuでは、ファイルは/var/cache/nscd/hostsはホスト/ DNSキャッシュ用なので、strings /var/cache/nscd/hostsキャッシュ内のホストを表示します。

バイナリ形式をデコードせずにnscdキャッシュを検査する適切な方法がないように見えるため、これは完全なハックであることに注意してください。

4
SteveK