前回にてBIND10のインストールが上手く行ったので、権威DNSの設定(Chapter 9. Authoritative Server)を試してみました。
b10-authを自動起動させる
デフォルトではb10-auth(権威DNS用プロセス)が自動起動しないので、自動起動するように設定変更します。
[root@centos6 ~]# bindctl
> config add Boss/components b10-auth
> config set Boss/components/b10-auth/special auth
> config set Boss/components/b10-auth/kind needed
> config set Boss/components/b10-auth/priority 10
> config commit
2012-10-14 16:18:12.502 INFO [b10-boss.boss] BIND10_CONFIGURATOR_RECONFIGURE reconfiguring running components
2012-10-14 16:18:12.503 INFO [b10-boss.boss] BIND10_COMPONENT_START component b10-auth is starting
2012-10-14 16:18:12.503 INFO [b10-boss.boss] BIND10_STARTING_PROCESS starting process b10-auth
> 2012-10-14 16:18:12.515 INFO [b10-auth.auth] AUTH_SERVER_CREATED server created
2012-10-14 16:18:12.528 INFO [b10-auth.auth] AUTH_SERVER_STARTED server started
ゾーンファイルを読み込ませる
BIND10開発版だとsqlite方式と従来のゾーンファイル形式がサポートされているようで、デフォルトで両パターンの設定例が乗っています。
[root@centos6 ~]# bindctl
> config show all
(中略)
data_sources/classes/IN[0]/type "sqlite3" string (default)
data_sources/classes/IN[0]/params {"database_file": "/usr/local/var/bind10-devel/zone.sqlite3"} any (default)
data_sources/classes/IN[0]/cache-enable false boolean (default)
data_sources/classes/IN[0]/cache-zones [] list
data_sources/classes/CH[0]/type "static" string (default)
data_sources/classes/CH[0]/params "/usr/local/share/bind10-devel/static.zone" any (default)
data_sources/classes/CH[0]/cache-enable false boolean (default)
data_sources/classes/CH[0]/cache-zones [] list
とりあえずゾーンファイル方式を試します。sqliteはデータベースファイルの作り方が分らなくて。。。まずはデフォルトで読み込まれているstatic.zoneを削除します。
[root@centos6 ~]# bindctl
> config remove data_sources/classes CH
> config commit
> config show all
(中略)
data_sources/classes/IN[0]/type "sqlite3" string
data_sources/classes/IN[0]/params {"database_file": "/usr/local/var/bind10-devel/zone.sqlite3"} any
data_sources/classes/IN[0]/cache-enable false boolean (default)
data_sources/classes/IN[0]/cache-zones [] list
そして、ソースファイルに含まれているexample.net用のゾーンファイルを読み込ませます。
[root@centos6 ~]# bindctl
["login success "] login as root
> config add data_sources/classes/IN
> config set data_sources/classes/IN[1]/type MasterFiles
> config set data_sources/classes/IN[1]/cache-enable true
> config set data_sources/classes/IN[1]/params { "example.net": "/usr/local/var/bind10-devel/example.net" }
> config commit
> config show all
(中略)
data_sources/classes/IN[0]/type "sqlite3" string
data_sources/classes/IN[0]/params {"database_file": "/usr/local/var/bind10-devel/zone.sqlite3"} any
data_sources/classes/IN[0]/cache-enable false boolean (default)
data_sources/classes/IN[0]/cache-zones [] list
data_sources/classes/IN[1]/type "MasterFiles" string
data_sources/classes/IN[1]/params {"example.net": "/usr/local/var/bind10-devel/example.net"}any
data_sources/classes/IN[1]/cache-enable true boolean
data_sources/classes/IN[1]/cache-zones [] list
ゾーンファイルに記載されているa.dns.example.netを問い合わせるとちゃんと答えました。同一セグメントのwindowsPCからBIND10を指定してa.dns.example.netをnslookupしてみましたが、こちらもちゃんと答えました。
[root@centos6 ~]# dig @localhost a.dns.example.net
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5 <<>> @localhost a.dns.example.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38474
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 7
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;a.dns.example.net. IN A
;; ANSWER SECTION:
a.dns.example.net. 1000 IN A 1.1.1.1
;; AUTHORITY SECTION:
example.net. 1000 IN NS a.dns.example.net.
example.net. 1000 IN NS b.dns.example.net.
example.net. 1000 IN NS c.dns.example.net.
;; ADDITIONAL SECTION:
a.dns.example.net. 1000 IN AAAA 2:2::2:2
b.dns.example.net. 1000 IN AAAA 4:4::4:4
b.dns.example.net. 1000 IN AAAA 5:5::5:5
b.dns.example.net. 1000 IN A 3.3.3.3
c.dns.example.net. 1000 IN AAAA 8:8::8:8
c.dns.example.net. 1000 IN A 6.6.6.6
c.dns.example.net. 1000 IN A 7.7.7.7
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sun Oct 14 17:01:33 2012
;; MSG SIZE rcvd: 257
逆に、設定を削除したstatic.zoneに記載されていたauthors.bindには答えません。
[root@centos6 bind10-devel]# dig @127.0.0.1 -c CH -t TXT authors.bind
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.5 <<>> @127.0.0.1 -c CH -t TXT authors.bind
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 30891
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;authors.bind. CH TXT
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 14 19:21:50 2012
;; MSG SIZE rcvd: 30
細かい部分はさておき、権威DNSとしての基本的な設定が出来ました。従来のnamed.confを編集する方法ではなく、bindctlで作業していく方式の様です。後はゾーン転送とDNSSECですね。dnssec-signzoneなどのコマンドが見当たらないので、どうしたものかと悩んでいます。