unboundでキャッシュをクリアする設定

unboundをキャッシュサーバとして使用する際、権威サーバのTTLを受け継ぐので、権威サーバ上で該当のドメインが消えた際、キャッシュサーバではTTLが0にならない限り、そのドメインはキャッシュされ続けます。

なので、定期的にクエリを飛ばすようにして、該当のドメインが存在しない場合はクリアする設定をします。

unboundキャッシュクリア設定

リゾルバにデータへのクエリーを頻繁に行わせるように低く設定することができます。

キャッシュサーバとしてunboundを動かしている場合、権威サーバへのクエリを低く設定することで、権威サーバで名前解決ができなくなった際、クエリの設定状況により、キャッシュをクリアすることが可能になります。

キャッシュ内のクエリーを設定

以下のように”unbound.conf”で設定を追記します。
今回は権威サーバへ10秒ごとにクエリするようにします。

# vi /etc/unbound.conf
cache-max-ttl: 10

設定に問題は無いかチェックをします。
以下の出力結果が出ればOKです。

# unbound-checkconf
unbound-checkconf: no errors in /var/unbound/unbound.conf

再起動を実施します。

# service unbound restart
unbound を停止中:                                          [  OK  ]
unbound を起動中:                                          [  OK  ]

確認コマンド

# watch -n 1 drill www.test.jp

Every 1.0s: drill www.test.jp                                                                Wed May  7 16:45:04 2014

;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 22953
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3
;; QUESTION SECTION:
;; www.test.jp. IN      A

;; ANSWER SECTION:
www.test.jp.    198     IN      A       10.0.0..65

;; AUTHORITY SECTION:
test.jp.        198     IN      NS      dns1.test.ne.jp.
test.jp.        198     IN      NS      dns2.test.ne.jp.
test.jp.        198     IN      NS      dns1.test.jp.

;; ADDITIONAL SECTION:
dns1.test.ne.jp.       298     IN      A       192.168.1.1
dns2.test.ne.jp.       298     IN      A       192.168.1.2
dns1.test.jp.   198     IN      A       10.0.0.9

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Wed May  7 16:45:04 2014
;; MSG SIZE  rcvd: 159

クエリ先で名前解決ができなかったので、キャッシュはクリアされます。

# watch -n 1 drill www.test.jp

Every 1.0s: drill www.test.jp                                                                Wed May  7 16:33:24 2014

;; ->>HEADER<<- opcode: QUERY, rcode: SERVFAIL, id: 25149
;; flags: qr rd ra ; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; www.test.jp. IN      A

;; ANSWER SECTION:

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 3 msec
;; SERVER: 127.0.0.1
;; WHEN: Wed May  7 16:33:24 2014
;; MSG SIZE  rcvd: 29

スプーフィングパケットの制御設定

ついでに、スプーフィングパケットを1000個(推奨)を受け取ると自動でキャッシュをクリアする設定です。

# vi /etc/unbound.conf
unwanted-reply-threshold: 1000

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!