Unbound

2009/1/17更新

対応バージョン: 1.2.0

unbound-controlを使用するとローカル/リモートのUnboundを操作したり各種統計情報を取得することができる。

以下、設定手順を記す。

SSL証明書作成

ローカル/リモートにかかわらずサーバに接続するにはSSLを利用するのでまずサーバ側でSSLの証明書を作成する。

これにはUnbound付属のunbound-control-setupを使用する。

リモートサーバに接続する場合はリモート側で証明書を作成してローカルにコピーする。

% sudo /usr/local/sbin/unbound-control-setup
setup in directory /var/unbound
generating unbound_server.key
Generating RSA private key, 1024 bit long modulus
................................++++++
..........++++++
e is 65537 (0x10001)
generating unbound_control.key
Generating RSA private key, 1024 bit long modulus
.................++++++
.........++++++
e is 65537 (0x10001)
create unbound_server.pem (self signed certificate)
create unbound_control.pem (signed client certificate)
Signature ok
subject=/CN=unbound-control
Getting CA Private Key
Setup success. Certificates created. Enable in unbound.conf file to use

証明書は/var/unbound配下に以下の4種類が作成される。

unbound_server.pem
unbound_server.key

サーバの公開鍵証明書(pem)と秘密鍵(key)

unbound_control.pem
unbound_control.key

クライアントの公開鍵証明書(pem)と秘密鍵(key)

公開鍵証明書の内容は以下のコマンドで参照できる。

% sudo openssl x509 -in <ファイル> -text

設定ファイル変更

unbound.confにてremote-controlのcontrol-enableをyesに設定する。

remote-control:
        control-enable: yes

ローカルサーバに接続する場合はこれだけでよいが、リモートサーバに接続する場合はcontrol-interfaceでサービスをバインドするインタフェースを指定する(デフォルトはループバックインタフェースにバインドするのでリモートからの接続を受け付けない)。

remote-control:
        control-interface: 192.168.0.100

その他、待ち受けポート、サーバ/クライアントそれぞれの証明書のパスを指定できるのでデフォルト以外の設定にしたい場合は適宜変更する。

サーバ再起動

サーバを再起動し、待ち受けポートに953ポートが追加されていることを確認する。

% sudo service unbound restart

% netstat -na|egrep '(Proto|:53|:953)'
Proto Recv-Q Send-Q Local Address  Foreign Address  State
tcp        0      0 127.0.0.1:53   0.0.0.0:*        LISTEN
tcp        0      0 127.0.0.1:953  0.0.0.0:*        LISTEN
udp        0      0 127.0.0.1:53   0.0.0.0:*

サーバ接続

サーバへの接続はunbound-controlを使用する。

接続したいサーバを指定して制御コマンドを送ると当該サーバが制御できる(ローカルサーバの場合はサーバは省力可)。

% sudo /usr/local/sbin/unbound-control [-s <サーバ>] <コマンド>

以下、いくつかの制御コマンドの実行例を示す。

status

サーバの稼働状況出力

% sudo /usr/local/sbin/unbound-control status
version: 1.2.0
verbosity: 1
threads: 1
modules: 2 [ validator iterator ]
uptime: 346 seconds
unbound (pid 20434) is running...
stats

統計情報出力

% sudo /usr/local/sbin/unbound-control stats
thread0.num.queries=1
thread0.num.cachehits=0
thread0.num.cachemiss=1
thread0.num.recursivereplies=1
thread0.requestlist.avg=0
thread0.requestlist.max=0
thread0.requestlist.overwritten=0
thread0.requestlist.exceeded=0
thread0.requestlist.current.all=0
thread0.requestlist.current.user=0
thread0.recursion.time.avg=0.756473
thread0.recursion.time.median=0
total.num.queries=1
total.num.cachehits=0
total.num.cachemiss=1
total.num.recursivereplies=1
total.requestlist.avg=0
total.requestlist.max=0
total.requestlist.overwritten=0
total.requestlist.exceeded=0
total.requestlist.current.all=0
total.requestlist.current.user=0
total.recursion.time.avg=0.756473
total.recursion.time.median=0
time.now=1232123631.180667
time.up=96.178490
time.elapsed=96.178490
reload

サーバリロード

キャッシュがクリアされ、設定ファイルが再読み込みされる。

% sudo /usr/local/sbin/unbound-control reload
ok
lookup

名前解決に使われたネームサーバを表示

% drill www.apple.com
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 61272
;; flags: qr rd ra ; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; www.apple.com.	IN	A

;; ANSWER SECTION:
www.apple.com.	1800	IN	CNAME	www.apple.com.akadns.net.
www.apple.com.akadns.net.	60	IN	A	17.149.160.10

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 903 msec
;; SERVER: 127.0.0.1
;; WHEN: Sat Jan 17 01:46:38 2009
;; MSG SIZE  rcvd: 85

% sudo /usr/local/sbin/unbound-control lookup www.apple.com
The following name servers are used for lookup of www.apple.com.
;rrset 86383 6 0 2 0
apple.com.	172783	IN	NS	nserver.apple.com.
apple.com.	172783	IN	NS	nserver.asia.apple.com.
apple.com.	172783	IN	NS	nserver.euro.apple.com.
apple.com.	172783	IN	NS	nserver2.apple.com.
apple.com.	172783	IN	NS	nserver3.apple.com.
apple.com.	172783	IN	NS	nserver4.apple.com.
;rrset 86383 1 0 1 0
nserver4.apple.com.	172783	IN	A	17.112.144.59
;rrset 86383 1 0 1 0
nserver3.apple.com.	172783	IN	A	17.112.144.50
;rrset 86383 1 0 1 0
nserver2.apple.com.	172783	IN	A	17.254.0.59
;rrset 86383 1 0 1 0
nserver.euro.apple.com.	172783	IN	A	17.72.133.64
;rrset 86383 1 0 1 0
nserver.asia.apple.com.	172783	IN	A	17.82.254.3
;rrset 86383 1 0 1 0
nserver.apple.com.	172783	IN	A	17.254.0.50
Delegation with 6 names, of which 6 have no addresses in cache.
It provides 6 IP addresses. 
dump_cache

キャッシュ内容出力

<キャッシュがない状態> ... まだ何も名前解決していない状態

% sudo /usr/local/sbin/unbound-control dump_cache
START_RRSET_CACHE
END_RRSET_CACHE
START_MSG_CACHE
END_MSG_CACHE
EOF

<キャッシュがある状態> ... www.apple.comの名前解決をした状態

% sudo /usr/local/sbin/unbound-control dump_cache
START_RRSET_CACHE
;rrset 47 1 0 8 2
www.apple.com.akadns.net.	47	IN	A	17.149.160.10
;rrset 1787 1 0 8 2
www.apple.com.	1787	IN	CNAME	www.apple.com.akadns.net.
;rrset 86387 1 0 1 0
use4.akadns.net.	172787	IN	A	208.44.108.137
;rrset 86387 1 0 1 0
L.GTLD-SERVERS.NET.	172787	IN	A	192.41.162.30
;rrset 86387 1 0 1 0
F.GTLD-SERVERS.NET.	172787	IN	A	192.35.51.30
;rrset 86387 1 0 1 0
G.GTLD-SERVERS.NET.	172787	IN	A	192.42.93.30
;rrset 86387 1 0 1 0
H.GTLD-SERVERS.NET.	172787	IN	A	192.54.112.30
;rrset 86387 1 0 1 0
B.GTLD-SERVERS.NET.	172787	IN	AAAA	2001:503:231d::2:30
;rrset 86387 13 0 2 0
net.	172787	IN	NS	L.GTLD-SERVERS.net.
net.	172787	IN	NS	M.GTLD-SERVERS.net.
net.	172787	IN	NS	A.GTLD-SERVERS.net.
net.	172787	IN	NS	B.GTLD-SERVERS.net.
net.	172787	IN	NS	C.GTLD-SERVERS.net.
net.	172787	IN	NS	D.GTLD-SERVERS.net.
net.	172787	IN	NS	E.GTLD-SERVERS.net.
net.	172787	IN	NS	F.GTLD-SERVERS.net.
net.	172787	IN	NS	G.GTLD-SERVERS.net.
net.	172787	IN	NS	H.GTLD-SERVERS.net.
net.	172787	IN	NS	I.GTLD-SERVERS.net.
net.	172787	IN	NS	J.GTLD-SERVERS.net.
net.	172787	IN	NS	K.GTLD-SERVERS.net.
;rrset 86387 1 0 3 0
L.ROOT-SERVERS.NET.	3599987	IN	A	199.7.83.42
;rrset 86387 1 0 3 0
F.ROOT-SERVERS.NET.	3599987	IN	A	192.5.5.241
;rrset 86387 1 0 3 0
H.ROOT-SERVERS.NET.	3599987	IN	A	128.63.2.53
;rrset 86387 1 0 3 0
G.ROOT-SERVERS.NET.	3599987	IN	A	192.112.36.4
;rrset 86387 1 0 3 0
E.ROOT-SERVERS.NET.	3599987	IN	A	192.203.230.10
;rrset 86387 1 0 1 0
nserver.apple.com.	172787	IN	A	17.254.0.50
;rrset 86387 1 0 1 0
nserver.euro.apple.com.	172787	IN	A	17.72.133.64
;rrset 86387 6 0 2 0
apple.com.	172787	IN	NS	nserver.apple.com.
apple.com.	172787	IN	NS	nserver.asia.apple.com.
apple.com.	172787	IN	NS	nserver.euro.apple.com.
apple.com.	172787	IN	NS	nserver2.apple.com.
apple.com.	172787	IN	NS	nserver3.apple.com.
apple.com.	172787	IN	NS	nserver4.apple.com.
;rrset 86387 13 0 2 0
com.	172787	IN	NS	L.GTLD-SERVERS.NET.
com.	172787	IN	NS	C.GTLD-SERVERS.NET.
com.	172787	IN	NS	M.GTLD-SERVERS.NET.
com.	172787	IN	NS	G.GTLD-SERVERS.NET.
com.	172787	IN	NS	K.GTLD-SERVERS.NET.
com.	172787	IN	NS	J.GTLD-SERVERS.NET.
com.	172787	IN	NS	A.GTLD-SERVERS.NET.
com.	172787	IN	NS	B.GTLD-SERVERS.NET.
com.	172787	IN	NS	F.GTLD-SERVERS.NET.
com.	172787	IN	NS	I.GTLD-SERVERS.NET.
com.	172787	IN	NS	E.GTLD-SERVERS.NET.
com.	172787	IN	NS	D.GTLD-SERVERS.NET.
com.	172787	IN	NS	H.GTLD-SERVERS.NET.
;rrset 86387 1 0 1 0
eur1.akadns.net.	172787	IN	A	195.59.44.134
;rrset 86387 1 0 1 0
usw2.akadns.net.	172787	IN	A	12.183.125.5
;rrset 86387 1 0 1 0
C.GTLD-SERVERS.NET.	172787	IN	A	192.26.92.30
;rrset 86387 1 0 1 0
D.GTLD-SERVERS.NET.	172787	IN	A	192.31.80.30
;rrset 86387 1 0 1 0
E.GTLD-SERVERS.NET.	172787	IN	A	192.12.94.30
;rrset 86387 1 0 1 0
A.GTLD-SERVERS.NET.	172787	IN	AAAA	2001:503:a83e::2:30
;rrset 86387 1 0 1 0
B.GTLD-SERVERS.NET.	172787	IN	A	192.33.14.30
;rrset 86387 1 0 3 0
L.ROOT-SERVERS.NET.	3599987	IN	AAAA	2001:500:3::42
;rrset 86387 1 0 3 0
I.ROOT-SERVERS.NET.	3599987	IN	A	192.36.148.17
;rrset 86387 1 0 3 0
K.ROOT-SERVERS.NET.	3599987	IN	AAAA	2001:7fd::1
;rrset 86387 1 0 1 0
nserver4.apple.com.	172787	IN	A	17.112.144.59
;rrset 86387 9 0 2 0
akadns.net.	172787	IN	NS	asia9.akadns.net.
akadns.net.	172787	IN	NS	eur1.akadns.net.
akadns.net.	172787	IN	NS	use3.akadns.net.
akadns.net.	172787	IN	NS	use4.akadns.net.
akadns.net.	172787	IN	NS	usw2.akadns.net.
akadns.net.	172787	IN	NS	za.akadns.org.
akadns.net.	172787	IN	NS	zb.akadns.org.
akadns.net.	172787	IN	NS	zc.akadns.org.
akadns.net.	172787	IN	NS	zd.akadns.org.
;rrset 86387 1 0 1 0
I.GTLD-SERVERS.NET.	172787	IN	A	192.43.172.30
;rrset 86387 1 0 1 0
K.GTLD-SERVERS.NET.	172787	IN	A	192.52.178.30
;rrset 86387 1 0 1 0
A.GTLD-SERVERS.NET.	172787	IN	A	192.5.6.30
;rrset 86387 1 0 3 0
F.ROOT-SERVERS.NET.	3599987	IN	AAAA	2001:500:2f::f
;rrset 86387 1 0 3 0
A.ROOT-SERVERS.NET.	3599987	IN	AAAA	2001:503:ba3e::2:30
;rrset 86387 1 0 3 0
A.ROOT-SERVERS.NET.	3599987	IN	A	198.41.0.4
;rrset 86387 1 0 3 0
J.ROOT-SERVERS.NET.	3599987	IN	AAAA	2001:503:c27::2:30
;rrset 86387 1 0 3 0
J.ROOT-SERVERS.NET.	3599987	IN	A	192.58.128.30
;rrset 86387 1 0 3 0
C.ROOT-SERVERS.NET.	3599987	IN	A	192.33.4.12
;rrset 86387 13 0 8 0
.	518387	IN	NS	L.ROOT-SERVERS.NET.
.	518387	IN	NS	F.ROOT-SERVERS.NET.
.	518387	IN	NS	H.ROOT-SERVERS.NET.
.	518387	IN	NS	I.ROOT-SERVERS.NET.
.	518387	IN	NS	D.ROOT-SERVERS.NET.
.	518387	IN	NS	A.ROOT-SERVERS.NET.
.	518387	IN	NS	G.ROOT-SERVERS.NET.
.	518387	IN	NS	K.ROOT-SERVERS.NET.
.	518387	IN	NS	B.ROOT-SERVERS.NET.
.	518387	IN	NS	J.ROOT-SERVERS.NET.
.	518387	IN	NS	E.ROOT-SERVERS.NET.
.	518387	IN	NS	M.ROOT-SERVERS.NET.
.	518387	IN	NS	C.ROOT-SERVERS.NET.
;rrset 86387 1 0 1 0
nserver3.apple.com.	172787	IN	A	17.112.144.50
;rrset 86387 1 0 1 0
asia9.akadns.net.	172787	IN	A	220.73.220.4
;rrset 86387 1 0 1 0
use3.akadns.net.	172787	IN	A	204.2.178.133
;rrset 86387 1 0 1 0
M.GTLD-SERVERS.NET.	172787	IN	A	192.55.83.30
;rrset 86387 1 0 1 0
J.GTLD-SERVERS.NET.	172787	IN	A	192.48.79.30
;rrset 86387 1 0 3 0
H.ROOT-SERVERS.NET.	3599987	IN	AAAA	2001:500:1::803f:235
;rrset 86387 1 0 3 0
D.ROOT-SERVERS.NET.	3599987	IN	A	128.8.10.90
;rrset 86387 1 0 3 0
K.ROOT-SERVERS.NET.	3599987	IN	A	193.0.14.129
;rrset 86387 1 0 3 0
B.ROOT-SERVERS.NET.	3599987	IN	A	192.228.79.201
;rrset 86387 1 0 3 0
M.ROOT-SERVERS.NET.	3599987	IN	AAAA	2001:dc3::35
;rrset 86387 1 0 3 0
M.ROOT-SERVERS.NET.	3599987	IN	A	202.12.27.33
;rrset 86387 1 0 1 0
nserver.asia.apple.com.	172787	IN	A	17.82.254.3
;rrset 86387 1 0 1 0
nserver2.apple.com.	172787	IN	A	17.254.0.59
END_RRSET_CACHE
START_MSG_CACHE
msg www.apple.com.akadns.net. IN A 32896 1 47 0 1 0 0
www.apple.com.akadns.net. IN A 0
msg www.apple.com. IN A 32896 1 47 2 2 0 0
www.apple.com. IN CNAME 0
www.apple.com.akadns.net. IN A 0
msg . IN NS 32896 1 86387 0 1 0 20
. IN NS 0
A.ROOT-SERVERS.NET. IN A 0
A.ROOT-SERVERS.NET. IN AAAA 0
B.ROOT-SERVERS.NET. IN A 0
C.ROOT-SERVERS.NET. IN A 0
D.ROOT-SERVERS.NET. IN A 0
E.ROOT-SERVERS.NET. IN A 0
F.ROOT-SERVERS.NET. IN A 0
F.ROOT-SERVERS.NET. IN AAAA 0
G.ROOT-SERVERS.NET. IN A 0
H.ROOT-SERVERS.NET. IN A 0
H.ROOT-SERVERS.NET. IN AAAA 0
I.ROOT-SERVERS.NET. IN A 0
J.ROOT-SERVERS.NET. IN A 0
J.ROOT-SERVERS.NET. IN AAAA 0
K.ROOT-SERVERS.NET. IN A 0
K.ROOT-SERVERS.NET. IN AAAA 0
L.ROOT-SERVERS.NET. IN A 0
L.ROOT-SERVERS.NET. IN AAAA 0
M.ROOT-SERVERS.NET. IN A 0
M.ROOT-SERVERS.NET. IN AAAA 0
END_MSG_CACHE
EOF

その他のコマンドについては日本Unboundユーザ会のunbound-control(8)を参照のこと。

2009/2/23更新

対応バージョン: 1.2.1

公式サイト

ldns ... DNSライブラリ、DNS問合せツールdrill

Unbound本体

準備

導入に必要なもの

ldns-1.5.1.tar.gz
unbound-1.2.1.tar.gz

導入OS

Fedora 10

管理用アカウント作成

% sudo groupadd -r unbound
% sudo useradd -r -g unbound -d /var/unbound -s /sbin/nologin unbound

インストール

まずldnsをインストールする。

配布ファイル展開

% tar zxvf ldns-1.5.1.tar.gz
% cd ldns-1.5.1

make,インストール

ldns
% ./configure
% make
% sudo make install
drill
% cd drill
% ./configure
% make
% sudo make install

インストール物 (man,infoは除く)

ldns
/usr/local/lib/libldns.*

/usr/local/include/ldns/*
drill
/usr/local/bin/drill

共有ライブラリキャッシュ更新

% sudo ldconfig
% ldconfig -p | grep ldns
    libldns.so.1 (libc6) => /usr/local/lib/libldns.so.1
    libldns.so (libc6) => /usr/local/lib/libldns.so

共有ライブラリの検索パスは/etc/ld.so.conf.d配下の*.confで定義するので/usr/local/libが定義されていない場合はあらかじめ定義しておく。

例)

% sudo vi /etc/ld.so.conf.d/local.conf
/usr/local/lib

ldnsのインストールが終わったら、次にUnboundをインストールする。

配布ファイル展開

% tar zxvf unbound-1.2.1.tar.gz
% cd unbound-1.2.1

make,インストール

% ./configure --with-conf-file=/var/unbound/unbound.conf
% make
% sudo make install
% sudo chown unbound:unbound /var/unbound

インストール物 (man,infoは除く)

/usr/local/sbin/unbound
/usr/local/sbin/unbound-checkconf
/usr/local/sbin/unbound-control
/usr/local/sbin/unbound-control-setup
/usr/local/sbin/unbound-host

/usr/local/lib/libunbound.*

/usr/local/include/unbound.h

/var/unbound/unbound.conf

共有ライブラリキャッシュ更新

% sudo ldconfig
% ldconfig -p | grep unbound
    libunbound.so.0 (libc6) => /usr/local/lib/libunbound.so.0
    libunbound.so (libc6) => /usr/local/lib/libunbound.so

initスクリプト配置

デフォルトのinitスクリプトはunboundのパスが/usr/sbinなので/usr/local/sbinに変更する。

% sudo cp contrib/unbound.init /etc/init.d/unbound
% sudo sed -i 's_^exec="/usr/sbin_exec="/usr/local/sbin_' /etc/init.d/unbound
% sudo chmod 755 /etc/init.d/unbound
% sudo chkconfig --add unbound
% sudo chkconfig unbound on
% sudo chkconfig --list unbound
unbound    0:off  1:off  2:on  3:on  4:on  5:on  6:off

各種設定

/var/unbound/unbound.confにて設定を行う。

インストール直後は以下のような設定になっており、ログ出力レベルが1に指定されている。レベルは0(エラーのみ)〜4が指定できる。

server:
	verbosity: 1

remote-control:

まずIPv6を使用しない場合は以下のように設定する(デフォルトはyes)。

server:
	do-ip6: no

次にUDPとTCPのどちらを使用するか設定する(デフォルトは両方yes)。

server:
	do-udp: yes
	do-tcp: yes

この状態で最低限必要な動作が可能である。

動作確認

デーモンを起動する。

% sudo service unbound start

Unboundは/var/unboundにchrootして動作するが、最初の起動時に以下のファイルが/var/unbound配下にコピーされるのでリゾルバの設定などは既存の設定がそのまま引き継がれる。

/dev/log (ソケット)
/dev/random
/etc/localtime
/etc/resolv.conf

待ち受けポートを確認する。

% netstat -na|egrep '(Proto|:53)'
Proto Recv-Q Send-Q Local Address  Foreign Address  State
tcp        0      0 127.0.0.1:53   0.0.0.0:*        LISTEN
udp        0      0 127.0.0.1:53   0.0.0.0:*

まずlocalhostの名前解決を行ってみる。

% drill localhost @127.0.0.1
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 31729
;; flags: qr aa rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; localhost.	IN	A

;; ANSWER SECTION:
localhost.	10800	IN	A	127.0.0.1

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Mon Feb 23 17:07:36 2009
;; MSG SIZE  rcvd: 43

Unboundはデフォルトでlocalhostの正引き/逆引きのゾーンを持っているのでBINDのように明示的にゾーン定義をする必要はない。

次にインターネット上のホストの名前解決を行ってみる。

% drill www.livedoor.com @127.0.0.1
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 36160
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0 
;; QUESTION SECTION:
;; www.livedoor.com.	IN	A

;; ANSWER SECTION:
www.livedoor.com.	3563	IN	A	125.6.172.15

;; AUTHORITY SECTION:
livedoor.com.	3495	IN	NS	ldns01.data-hotel.net.
livedoor.com.	3495	IN	NS	ldns02.data-hotel.net.
livedoor.com.	3495	IN	NS	ldns03.data-hotel.net.
livedoor.com.	3495	IN	NS	ldns04.data-hotel.net.

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Mon Feb 23 17:07:36 2009
;; MSG SIZE  rcvd: 148

名前解決ができたら/etc/resolv.confを以下の設定にしてローカルからの問い合わせをUnbound経由にしてよい。

nameserver 127.0.0.1

ログの出力先変更

ログはデフォルトでsyslog経由で出力される(ファシリティはdaemon)。

もしsyslog経由でなく独自のログファイルに出力したい場合は以下のように設定する。

server:
	logfile: "/var/log/unbound.log"
	use-syslog: no

なお、ここで指定したファイルは/var/unboundにchrootした後のパスなので実際には/var/unbound/var/log/unbound.logが作成される。

格納ディレクトリはあらかじめ作っておく。

% sudo mkdir -p /var/unbound/var/log
% sudo chown unbound:unbound /var/unbound/var/log

他ホストからのリゾルバとしての設定

Unboundはデフォルトでローカルからの問い合わせしか受け付けないが、以下の設定を追加することにより他ホストからの問い合わせを受け付けることができる。

サービスのバインドインタフェース
server:
	interface: 0.0.0.0
アクセスを許可するホスト
server:
	access-control: 192.168.0.0/24 allow

尚、ファイアウォールで53番ポートをブロックしている場合はアクセスを許可しておく。

DNSコンテンツサーバの設定

UnboundはDNSキャッシュサーバとして動作するが、同時に簡易DNSコンテンツサーバとしての役割も持たせることができる。

例えばLAN内のマシンの名前解決を行いたい場合は以下のように設定すればよい。

server:
	local-data: "leopard.local.             A   192.168.0.10"
	local-data: "10.0.168.192.in-addr.arpa. PTR leopard.local."

(正引き)

% drill leopard.local. @127.0.0.1
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 35361
;; flags: qr aa rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; leopard.local.	IN	A

;; ANSWER SECTION:
leopard.local.	3600	IN	A	192.168.0.10

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Mon Feb 23 17:07:36 2009
;; MSG SIZE  rcvd: 47

(逆引き)

% drill -x 192.168.0.10 @127.0.0.1 
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 26809
;; flags: qr aa rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION:
;; 10.0.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
10.0.168.192.in-addr.arpa.	3600	IN	PTR	leopard.local.

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 0 msec
;; SERVER: 127.0.0.1
;; WHEN: Mon Feb 23 17:07:36 2009
;; MSG SIZE  rcvd: 70