dnsmasq
私はDebianサーバーにキャッシュ専用のDNSサーバーを設定しましたが、うまく動作しています(digを介してDNS応答時間が改善されることを確認しました)。
dnsmasq
しかし、私が達成している効率(ヒット率など)について考えるために、キャッシュが何であるかを知りたいのですが。
マニュアルページとWebページを見ましたが、dnsmasq
キャッシュの内容を表示する方法が見つかりません(たとえば、dnsmasq.leaseファイルに保存されているリース操作とは異なり)。
DNSdnsmasq
キャッシュはメモリにのみ保持されますか?または、一部のログファイルを変更する必要がありますか?
答え1
アクセス権はありませんが、タイトルによるとdnsmasq
次のようになります。dnsmasqはキャッシュですか?USR1 シグナルをプロセスに送信して、dnsmasq
システムログに統計をダンプさせることができます。
$ sudo pkill -USR1 dnsmasq
次に、システムログを確認します。
$ sudo tail /var/log/syslog
Jan 21 13:37:57 dnsmasq[29469]: time 1232566677
Jan 21 13:37:57 dnsmasq[29469]: cache size 150, 0/475 cache insertions re-used unexpired cache entries.
Jan 21 13:37:57 dnsmasq[29469]: queries forwarded 392, queries answered locally 16
Jan 21 13:37:57 dnsmasq[29469]: server 208.67.222.222#53: queries sent 206, retried or failed 12
Jan 21 13:37:57 dnsmasq[29469]: server 208.67.220.220#53: queries sent 210, retried or failed 6
メモ:私はそれがdnsmasq
RAMにキャッシュを保持すると信じています。
したがって、キャッシュをダンプするには、呼び出し時に-q
スイッチを有効にする必要があります。マニュアルページにはdnsmasq
次のものがありますdnsmasq
。
-d, --no-daemon
Debug mode: don't fork to the background, don't write a pid file,
don't change user id, generate a complete cache dump on
receipt on SIGUSR1, log to stderr as well as syslog, don't fork new
processes to handle TCP queries. Note that this option is for use in
debugging only, to stop dnsmasq daemonising in production, use -k.
-q, --log-queries
Log the results of DNS queries handled by dnsmasq. Enable a full
cache dump on receipt of SIGUSR1.
答え2
マニュアルページからこの情報を取得する別の方法は次のとおりです。
キャッシュ統計は、DNS でのドメインバインディングの CHAOS クラスおよび TXT 型クエリへの応答としても使用されます。ドメイン名は、キャッシュサイズ、バインド、挿入、バインド、evictions.bind、misses.bind、Hits.bind、auth.bind、およびserver.bindです。 digユーティリティを使用してそれを照会するコマンドの例は次のとおりです。
dig +short chaos txt cachesize.bind
dig +short chaos txt hits.bind
dig +short chaos txt misses.bind
システムにsystemd-resolveのようなものがある場合は、次のようにサーバーに直接問い合わせる必要があります。
dig +short chaos txt hits.bind @serverIP