前回は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. 起動スクリプトのサンプルファイルがcontribディレクトリにあるので、 設定ファイルを/var/ unboundを実行するユーザunboundとグループunboundを作成し、 chrootするディレクトリ/var/ 必要なファイルを作成したらchrootのディレクトリは次のようになるでしょう。 以上でインストールは完了しました。 Unboundはデフォルトの設定のままで利用できますが、 それではunboundを起動させてみましょう。 drillを使って動作確認をしてみます。drillの使い方はdigとほとんど同じです。 次の例ではgihyo. 問題がなければ、 ここではいくつかの設定例を紹介します。 ホスト自身のDNSキャッシュサーバとして使う場合には、 LAN内の他のホストからの再帰問い合わせを受け付けるDNSキャッシュサーバとして使用する場合には、 interfaceとaccess-controlにはデフォルトで次のような設定が暗黙で設定されています。つまり、 このことをふまえた上で設定を追加してください。設定例は次の通りです。 設定が終わったら、 他のホストから、 ちょっとしたLAN内のホストの名前の解決のために、 ローカルデータ 設定が終わったらunboundを再起動して、 今回はUnboundを新規導入する方法を紹介しました。DNSキャッシュサーバとして動かすだけであればデフォルトの設定で簡単に動きます。簡易的なDNSコンテンツサーバとしても利用することができます。 設定や運用のTIPSなどについては次回以降にて紹介します。# /sbin/
# 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
# ln -s /var/unbound/unbound.conf /etc/
# /usr/sbin/groupadd -r unbound
# /usr/sbin/useradd -r -g unbound -d /var/unbound -s /sbin/nologin unbound
# chown unbound:unbound /var/unbound
# 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
動作確認
server:
do-ip6: no
# /etc/init.d/unbound start
$ 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
設定例
ホスト自身のリゾルバとして使う場合
LAN内の他のホストのリゾルバとして使う場合
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内のホストの名前の解決をする場合
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."
まとめ