BIND9でそのサーバが持っているキャッシュの中身を確認する方法は次の通り。
# rndc dumpdb
このコマンドを実行すると、キャッシュの中身がダンプファイルとして保存されます。
保存先は任意に設定可能。
BIND9.2.1のデフォルトでは、以下のファイルに保存される。
/var/named/data/cache_dump.db
このファイルの保存先の指定は、named.confにて
以下のファイル指定を任意に変更することで変更可能。
options {
dump-file "/var/named/data/cache_dump.db";
};
保存されたダンプファイルは、
テキストファイルなので任意のエディタで中身を確認することができる。
以下は、www.yahoo.co.jpの名前解決を実施した後のダンプファイルの一部。
; authauthority yahoo.co.jp. 876 NS ns10.yahoo.co.jp. 876 NS dnsg01.yahoo.co.jp. ; glue dnsg01.yahoo.co.jp. 86376 A 211.14.12.10 ; glue ns10.yahoo.co.jp. 86376 A 210.80.243.9 ; authanswer www.yahoo.co.jp. 276 A 124.83.139.191 276 A 124.83.147.202 276 A 124.83.147.203 276 A 124.83.147.204 276 A 124.83.147.205 276 A 124.83.167.212 276 A 203.216.231.160 276 A 203.216.235.154 276 A 203.216.235.201 276 A 203.216.243.218 276 A 203.216.247.225 276 A 203.216.247.249
黄色部分がそのキャッシュレコードのTTLを表している。
当然、時間と共に減っていくので、
rndc dumpdbコマンドを実施する度に減っていくことが確認できる。
TTLが0になるとキャッシュから消える。
キャッシュを持っているネームサーバは
そのレコードに対する問い合わせを受けた際に
外部への問い合わせは行わず、
自分の持っているキャッシュの情報を返す。
プライマリネームサーバでゾーンファイルを更新しても
新しい情報による名前解決が行われない場合などは、
このコマンドを使ってキャッシュを確認すれば
キャッシュがあるかどうか、または、
あとどのぐらいキャッシュが残っているのかを確認できる。