[Unbound][cache][自分用メモ] Unboundのキャッシュをウォームスタートする方法。

AIX、UNIX、Linux
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キャッシュ情報を失わずに済むため、キャッシュを貯める時間の節約にはなるのではないかと思います。

この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。 Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

kometchtechをフォローする
タイトルとURLをコピーしました