Unbound - About
Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern fea...
通常unboundのサービスの再起動を伴うと、それまでキャッシュしていたDNSの情報は全て消去されます。
場合によってはDNSキャッシュを持っておいたほうが、反応時間の改善としては良い場合があります。
執筆時点でのUnboundのSVN Revision 3131で、キャッシュのウォームスタートを行うことができるスクリプトが追加されました。
しかしながら作成者がロシアの方なのか、ロシア関連のドメインしか先読みしないようになっています。
ということで自分用に少しinitスクリプトを編集して、キャッシュのウォームスタートが出来るような仕掛けを作ってみました。
検証環境:
# cat /etc/redhat-release
CentOS release 6.5 (Final)
設定方法
肝になるのは以下のコマンドです。unbound-control <オプション>
dump_cache
キャッシュを標準出力にダンプするload_cache
ダンプした情報を標準入力する
/etc/init.d/unbound
を以下のように編集していきます。
stop() {
echo -n $"Stopping $prog: "
uc_exec="/usr/local/sbin/unbound-control"
# warm cache export
$uc_exec dump_cache > ${rootdir}/dump_cache
unbound-control
コマンドを試用して、DNSキャッシュ情報をダンプします。
start() {
# start句の最終行に以下を追記
uc_exec="/usr/local/sbin/unbound-control"
# warm cache import
if [ -r ${rootdir}/dump_cache ] ; then
'$uc_exec load_cache < ${rootdir}/dump_cache' > /dev/null 2>&1
fi;
}
unbound-control local_cache < <キャッシュ情報のダンプファイル>
とすることで、ダンプされたDNSキャッシュ情報を読み込むことが出来ます。
不必要にUnboundサービスを再起動などしてもDNSキャッシュ情報を失わずに済むため、キャッシュを貯める時間の節約にはなるのではないかと思います。