インストール
まずは、以下のコマンドを実行しUnboundをインストールします。
dnf install unboundunbound.conf の編集
次に、/etc/unbound/unbound.conf を編集していきます。
num-threadsを1に設定します。これは、同時に問い合わせを待ち受ける数の設定です。基本的にはCPUのコア数程度にしておくとパフォーマンスがいいですが、問い合わせ数が少ない場合には1としておいて問題ありません。
num-threads: 1待ち受けインターフェースの設定
問い合わせを待ち受けるIPアドレスを設定します。 何も記載がない状態ではローカルホストからのみリッスンする状態となっています。 例えば192.168.0.1で待ち受けるには
interface 192.168.0.1のように設定します。
すべてのインターフェースで待ち受ける場合は
interface 0.0.0.0とします。
アクセスコントロール設定
また、access-control パラメータを設定し、DNS問い合わせができるネットワークを指定します。
以下は、内部アドレスからの問い合わせは許可する例です。
access-control 10.0.0.0/8 allow
access-control 172.16.0.0/12 allow
access-control 192.168.0.0/16 allow
access-control: 0.0.0.0/0 refuse
access-control: ::0/0 refuseフォワード設定
内部解決するゾーン以外は外部に問い合わせたい場合はゾーン”.”を指定して forward-addr にフォワードしたい DNS サーバーを指定します。
forward-zone:
name: "."
forward-addr: 10.10.10.1内部解決したいレコードの設定
別途、ローカルで解決したいレコードがある場合は /etc/unbound/local.d/local-data.conf のようなファイルを作成し、内部で解決したいレコードを記載します。
local-zone: "example.com"
local-data: "foo.example.com. 300 IN MX 10 baa.example.com"
local-data: "baa.example.com 300 IN A 192.168.0.100"また、一部のレコードはローカルで解決したいが、それ以外は外部に問い合わせを投げたいという場合はtransparentを指定して
local-zone: "example.com." transparent
local-data: "foo.example.com. 300 IN MX 10 baa.example.com"
local-data: "baa.example.com 300 IN A 192.168.0.100"のように記載します。
トラブルシュート
実運用している中でインターネット接続ができなくなることがあり、/var/log/messages を確認すると DNSSEC の validation falure が出ていました。このような場合はキャッシュをクリアしたり、あるいはサービスを再起動することで解消します。
キャッシュの削除は以下のコマンドを実行します。
unbound-control flush_bogus