運用TIPS
今回は他のDNSサーバとの連携方法や運用TIPSについて紹介します。
設定ファイルの記述が正しいか確認する
デフォルトの設定ファイルに設定を少し追加しただけの場合は問題ないですが、
実行例は次の通りです。
# unbound-checkconf unbound-checkconf: no errors in /var/unbound/unbound.conf
問い合わせをゾーン毎に制御する
ローカルゾーン
記述方法は次の通りです。
local-zone: ゾーン タイプ
下表のようなタイプの指定を行うことができます。local-zoneの指定がないときには
| refuse | rcodeをREFUSEDにして、 | 
| drop | 回答を送信しない | 
| static | NXDOMAINかNODATAを返す | 
| transparent | 通常の再帰問い合わせの処理をする | 
| redirect | ゾーンのサブドメインを異なるアドレスにリダイレクトする | 
| nodefault | AS112ゾーン | 
※ AS112ゾーンはプライベートアドレスやリンクローカルアドレスの逆引きのゾーンのことです。Unboundではデフォルトでこのゾーンに対する問い合わせにはNXDOMAIN
設定例を1つ紹介します。
試験用のドメイン
local-zone: "local." static local-data: "host1.local. A 192.168.0.1"
この設定では、
指定したDNSコンテンツサーバに問い合わる
特定のドメインに対して指定したDNSコンテンツサーバに問い合わせを行いたいときにはスタブゾーン
 
記述方法は次の通りです。
stub-zone:
    name: スタブゾーンの名前
    stub-addr: スタブゾーンのDNSサーバのIPアドレス
    stub-host: スタブゾーンのDNSサーバのドメイン名
次の例は
stub-zone:
    name: "example.org."
    stub-addr: 192.168.0.4
stub-zone:
    name: "0.168.192.in-addr.arpa."
    stub-addr: 192.168.0.4
プライベートアドレスの逆引きのゾーンに対する問い合わせはUnboundではデフォルトでNXDOMAINを返すので、
local-zone: "0.168.192.in-addr.arpa." transparent
問い合わせを指定したDNSキャッシュサーバにフォワードする
特定のドメインに対する再帰問い合わせを指定したDNSキャッシュサーバにフォワードしたいときにはフォワードゾーン
 
記述方法は次の通りです。
forward-zone:
    name: フォワードゾーンの名前
    forward-addr: フォワードゾーンのDNSサーバのIPアドレス
    forward-host: フォワードゾーンのDNSサーバのドメイン名
次の例は
forward-zone:
    name: "example.org."
    forward-addr: 192.168.0.5
forward-zone:
    name: "0.168.192.in-addr.arpa."
    forward-addr: 192.168.0.5
プライベートアドレスの逆引きのゾーンに対する問い合わせはUnboundではデフォルトでNXDOMAINを返すので、
local-zone: "0.168.192.in-addr.arpa." transparent
すべての問い合わせを指定したDNSキャッシュサーバにフォワードする
すべての問い合わせを指定したDNSキャッシュサーバにフォワードする場合にはフォワードゾーン
forward-zone:
    name: "."
    forward-addr: 192.168.0.5
バージョン番号を調べる
digやdrillを使って次のようにしてバージョンを確認できます。
$ drill version.bind @127.0.0.1 TXT CH ;; ->>HEADER
バージョン番号を設定したり、隠したりする 
ソフトウェアのバージョン特有の脆弱性への攻撃を防ぐために、
設定ファイルunbound.
version: "10.0.0"
また、
hide-version: yes
統計情報を出力する
「statistics-interval」
設定例は次のようになります。
statistics-interval: 3600 statistics-cumulative: yes
ログの出力例は次のようになります。なお、
info: server stats for thread 0: 2709 queries, 1258 answers from cache, 1451 recursions info: server stats for thread 0: requestlist max 44 avg 10.4018 exceeded 0 info: average recursion processing time 0.938908 sec info: histogram of recursion processing times info: [25%]=0.000548627 median[50%]=0.0729175 [75%]=0.0592945 info: lower(secs) upper(secs) recursions info: 0.000000 0.000001 46 info: 0.002048 0.004096 20 info: 0.004096 0.008192 21 info: 0.008192 0.016384 6 info: 0.016384 0.032768 1 info: 0.032768 0.065536 16 info: 0.065536 0.131072 250 info: 0.131072 0.262144 657 info: 0.262144 0.524288 315 info: 0.524288 1.000000 74 info: 1.000000 2.000000 32 info: 2.000000 4.000000 1 info: 4.000000 8.000000 1 info: 8.000000 16.000000 2 info: 16.000000 32.000000 2 info: 32.000000 64.000000 2 info: 64.000000 128.000000 1 info: 128.000000 256.000000 4
参考までに、
まとめ
4回に渡ってUnboundについての紹介をしてきました。UnboundはDNSキャッシュサーバとして必要な機能はほぼ実装されているのがわかったでしょうか? 通常のDNSキャッシュサーバとして足らないのはDNSラウンドロビン対応とrndcのような制御ツールくらいと思われます。本記事を読まれて興味を持たれた方は試してください。
また、
最後に、