前回はUnboundの特徴を紹介しました。今回はUnboundの新規導入方法について紹介します。
インストール
UnboundではldnsというDNSライブラリを利用しています。Unboundの配布パッケージにも含まれています。しかし、
なお、
ldnsのインストール
ldnsはNLnet Labsが開発しているDNSライブラリです。次のような機能もサポートしています。
- IPv4/
IPv6 - TSIG
- DNSSECの署名と検証
ldnsはNLnet Labsのサイトからダウンロードできます。
執筆時点での最新バージョンは1.
ldnsのtarballをダウンロードしたら、
$ tar xvzf ldns-1.3.0.tar.gz $ cd ldns-1.3.0/ $ ./configure --prefix=/usr/local $ make $ su # make install
共有ライブラリlibldns.
ldconfigコマンドを実行してライブラリキャッシュを更新します。
# /sbin/ldconfig
drillのインストール
ldnsのパッケージにはdrillというツールが含まれています。このdrillもインストールします。drillは、
ldnsのtarballを展開したディレクトリにおいて次のようにしてインストールを行います。
$ cd drill/ $ autoreconf $ ./configure --prefix=/usr/local --with-ldns=/usr/local $ make $ su # make install
なお、
Unboundのインストール
Unboundは、
執筆時点での最新バージョンは1.
Unboundのtarballをダウンロードしたら、
$ tar xvzf unbound-1.0.2.tar.gz $ cd unbound-1.0.2/ $ ./configure \ --prefix=/usr/local \ --with-conf-file=/var/unbound/unbound.conf \ --with-ldns=/usr/local $ make $ su # make install
共有ライブラリlibunbound.
# /sbin/ldconfig
起動スクリプトのサンプルファイルがcontribディレクトリにあるので、
# cp contrib/unbound.init /etc/init.d/unbound # sed -i 's_/usr/sbin/unbound_/usr/local/sbin/unbound_' /etc/init.d/unbound # chmod 755 /etc/init.d/unbound # /sbin/chkconfig --add unbound # /sbin/chkconfig unbound on
設定ファイルを/var/
# ln -s /var/unbound/unbound.conf /etc/
unboundを実行するユーザunboundとグループunboundを作成し、
# /usr/sbin/groupadd -r unbound # /usr/sbin/useradd -r -g unbound -d /var/unbound -s /sbin/nologin unbound # chown unbound:unbound /var/unbound
chrootするディレクトリ/var/
必要なファイルを作成したらchrootのディレクトリは次のようになるでしょう。
# find /var/unbound -print /var/unbound /var/unbound/unbound.conf /var/unbound/etc /var/unbound/etc/resolv.conf /var/unbound/etc/localtime /var/unbound/dev /var/unbound/dev/random /var/unbound/dev/log
以上でインストールは完了しました。
動作確認
Unboundはデフォルトの設定のままで利用できますが、
server: do-ip6: no
それではunboundを起動させてみましょう。
# /etc/init.d/unbound start
drillを使って動作確認をしてみます。drillの使い方はdigとほとんど同じです。
次の例ではgihyo.
$ drill gihyo.jp. @127.0.0.1 A ;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 19777 ;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0 ;; QUESTION SECTION: ;; gihyo.jp. IN A ;; ANSWER SECTION: gihyo.jp. 86400 IN A 219.101.198.19 ;; AUTHORITY SECTION: gihyo.jp. 86400 IN NS ns2.iprevolution.co.jp. gihyo.jp. 86400 IN NS mail0.gihyo.co.jp. ;; ADDITIONAL SECTION: ;; Query time: 507 msec ;; SERVER: 127.0.0.1 ;; WHEN: Fri Oct 31 18:32:59 2008 ;; MSG SIZE rcvd: 102
問題がなければ、
nameserver 127.0.0.1
設定例
ここではいくつかの設定例を紹介します。
ホスト自身のリゾルバとして使う場合
ホスト自身のDNSキャッシュサーバとして使う場合には、
LAN内の他のホストのリゾルバとして使う場合
LAN内の他のホストからの再帰問い合わせを受け付けるDNSキャッシュサーバとして使用する場合には、
interfaceとaccess-controlにはデフォルトで次のような設定が暗黙で設定されています。つまり、
interface: 127.0.0.1 interface: ::1 access-control: 0.0.0.0/0 refuse access-control: 127.0.0.0/8 allow access-control: ::0/0 refuse access-control: ::1 allow access-control: ::ffff:127.0.0.1 allow
このことをふまえた上で設定を追加してください。設定例は次の通りです。
interface: 0.0.0.0 interface: ::0 access-control: 192.168.0.0/24 allow access-control: 2001:DB8::/64 allow
設定が終わったら、
他のホストから、
LAN内のホストの名前の解決をする場合
ちょっとしたLAN内のホストの名前の解決のために、
ローカルデータ
local-data: "hogohoge.example.org. A 192.168.0.1" local-data: 'hogohoge.example.org. TXT "text record"' local-data: "1.0.168.192.in-addr.arpa. PTR hogohoge.example.org."
設定が終わったらunboundを再起動して、
まとめ
今回はUnboundを新規導入する方法を紹介しました。DNSキャッシュサーバとして動かすだけであればデフォルトの設定で簡単に動きます。簡易的なDNSコンテンツサーバとしても利用することができます。
設定や運用のTIPSなどについては次回以降にて紹介します。