BIND9 でキャッシュの中身を確認する





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になるとキャッシュから消える。

キャッシュを持っているネームサーバは
そのレコードに対する問い合わせを受けた際に
外部への問い合わせは行わず、
自分の持っているキャッシュの情報を返す。

プライマリネームサーバでゾーンファイルを更新しても
新しい情報による名前解決が行われない場合などは、
このコマンドを使ってキャッシュを確認すれば
キャッシュがあるかどうか、または、
あとどのぐらいキャッシュが残っているのかを確認できる。