bind9 の設定
Sarge のインストール時にネームサーバも一緒にインストールする設定にしたので、すでに bind9 が入っている。まずはローカルネットワークの DNS として設定をしておこう。ドメイン名は paraches.com だ!
bind9 で設定に必要なファイルは /etc/bind に置かれている。最初に触るのは named.conf.local。ここで zone の設定がどこにあるかを記述する。
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "paraches.com" { type master; file "/etc/bind/paraches.com"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/paraches.com.rev"; };
正引きと逆引きのファイルはそれぞれ paraches.com と paraches.com.rev とする。
まずは paraches.com
$TTL 86400 @ IN SOA debian.paraches.com. root.paraches.com. ( 20060222 ; serial 3600 ; refresh 1hr 900 ; retry 15min 604800 ; expire 1w 86500 ; negative cache TTL 24hr ) IN NS debian.paraches.com. IN MX 10 debian.paraches.com. @ IN A 192.168.1.66 debian IN A 192.168.1.66 ; Server PPCG5 IN A 192.168.1.15 ; G5 Win2K IN A 192.168.1.12 ; Win www IN CNAME debian
数字はよくある数字をそのまま使った。今後のことも考えてメール転送用の MX も入れておいた。あと web 用の wwww も CNAME で debian サーバに設定。
次は逆引きのファイル paraches.com.rev
$TTL 86400 @ IN SOA debian.paraches.com. root.paraches.com. ( 20060221 ; serial 3600 ; refresh 1hr 900 ; retry 16min 604800 ; expire 1w 3600 ; negative cache TTL minimum ) IN NS debian.paraches.com. 66 IN PTR debian.paraches.com. ; server 15 IN PTR PPCG5.paraches.com. ; G5 12 IN PTR Win2K.paraches.com. ; Win
良くあるお手本をそのままコピー。
これで必要なファイルは揃ったから、設定を読み込ませて動作確認。
debian:/etc/bind# /etc/init.d/bind9 restart Stopping domain name service: named. Starting domain name service: named. debian:/etc/bind# cat /var/log/daemon.log ... Feb 22 23:30:32 localhost named[8523]: shutting down: flushing changes Feb 22 23:30:32 localhost named[8523]: stopping command channel on 127.0.0.1#953 Feb 22 23:30:32 localhost named[8523]: stopping command channel on ::1#953 Feb 22 23:30:32 localhost named[8523]: no longer listening on 127.0.0.1#53 Feb 22 23:30:32 localhost named[8523]: no longer listening on 192.168.1.66#53 Feb 22 23:30:32 localhost named[8521]: exiting Feb 22 23:30:35 localhost named[9812]: starting BIND 9.2.4 -u bind Feb 22 23:30:35 localhost named[9812]: using 1 CPU Feb 22 23:30:35 localhost named[9814]: loading configuration from '/etc/bind/named.conf' Feb 22 23:30:35 localhost named[9814]: listening on IPv4 interface lo, 127.0.0.1#53 Feb 22 23:30:35 localhost named[9814]: listening on IPv4 interface eth0, 192.168.1.66#53 Feb 22 23:30:35 localhost named[9814]: command channel listening on 127.0.0.1#953 Feb 22 23:30:35 localhost named[9814]: command channel listening on ::1#953 Feb 22 23:30:35 localhost named[9814]: zone 0.in-addr.arpa/IN: loaded serial 1 Feb 22 23:30:35 localhost named[9814]: zone 127.in-addr.arpa/IN: loaded serial 1 Feb 22 23:30:35 localhost named[9814]: zone 1.168.192.in-addr.arpa/IN: loaded serial 20060221 Feb 22 23:30:35 localhost named[9814]: zone 255.in-addr.arpa/IN: loaded serial 1 Feb 22 23:30:35 localhost named[9814]: zone paraches.com/IN: loaded serial 20060222 Feb 22 23:30:35 localhost named[9814]: zone localhost/IN: loaded serial 1 Feb 22 23:30:35 localhost named[9814]: running
daemon.log を確認しているのは設定ファイルを問題なく読めているかどうか見るため。最初、paraches.com の最初に &TTL を書かないでいたらログにワーニングが入っていた。bind9 では必ず書かなければいけないらしい。
で、ちゃんと読み込めているのを確認したら実際に問い合わせ(?)をしてみる。まずは SOA から。
debian:/etc/bind# /usr/bin/dig @localhost paraches.com soa ; <<>> DiG 9.2.4 <<>> @ localhost paraches.com soa ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20295 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;paraches.com. IN SOA ;; ANSWER SECTION: paraches.com. 86400 IN SOA debian.paraches.com. root.paraches.com. 20060222 3600 900 604800 86500 ;; AUTHORITY SECTION: paraches.com. 86400 IN NS debian.paraches.com. ;; ADDITIONAL SECTION: debian.paraches.com. 86400 IN A 192.168.1.66 ;; Query time: 3 msec ;; SERVER: 127.0.0.1#53(localhost) ;; WHEN: Thu Feb 23 00:01:20 2006 ;; MSG SIZE rcvd: 106
次は NS のチェック。
debian:/etc/bind# /usr/bin/dig @ localhost paraches.com ns ; <<>> DiG 9.2.4 <<>> @ localhost paraches.com ns ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26232 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; QUESTION SECTION: ;paraches.com. IN NS ;; ANSWER SECTION: paraches.com. 86400 IN NS debian.paraches.com. ;; ADDITIONAL SECTION: debian.paraches.com. 86400 IN A 192.168.1.66 ;; Query time: 3 msec ;; SERVER: 127.0.0.1#53(localhost) ;; WHEN: Thu Feb 23 00:03:55 2006 ;; MSG SIZE rcvd: 65
で、次が正引き A のチェック。とりあえず debian で確認。
debian:/etc/bind# /usr/bin/dig @localhost debian.paraches.com a ; <<>> DiG 9.2.4 <<>> @ localhost debian.paraches.com a ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19852 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;debian.paraches.com. IN A ;; ANSWER SECTION: debian.paraches.com. 86400 IN A 192.168.1.66 ;; AUTHORITY SECTION: paraches.com. 86400 IN NS debian.paraches.com. ;; Query time: 3 msec ;; SERVER: 127.0.0.1#53(localhost) ;; WHEN: Thu Feb 23 00:05:18 2006 ;; MSG SIZE rcvd: 65
逆引きのチェック
debian:/etc/bind# /usr/bin/dig @localhost -x 192.168.1.66 ; <<>> DiG 9.2.4 <<>> @ localhost -x 192.168.1.66 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62576 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;66.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 66.1.168.192.in-addr.arpa. 86400 IN PTR debian.paraches.com. ;; AUTHORITY SECTION: 1.168.192.in-addr.arpa. 86400 IN NS debian.paraches.com. ;; ADDITIONAL SECTION: debian.paraches.com. 86400 IN A 192.168.1.66 ;; Query time: 3 msec ;; SERVER: 127.0.0.1#53(localhost) ;; WHEN: Thu Feb 23 00:07:17 2006 ;; MSG SIZE rcvd: 104
最後にキャッシュのチェック? なんとなくアップルで聞いてみた。
debian:/etc/bind# /usr/bin/dig @localhost www.apple.co.jp ; <<>> DiG 9.2.4 <<>> @ localhost www.apple.co.jp ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18596 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.apple.co.jp. IN A ;; ANSWER SECTION: www.apple.co.jp. 3600 IN A 17.254.2.185 ;; AUTHORITY SECTION: apple.co.jp. 86400 IN NS nserver.apple.com. apple.co.jp. 86400 IN NS nserver2.apple.com. apple.co.jp. 86400 IN NS nserver.asia.apple.com. ;; Query time: 4169 msec ;; SERVER: 127.0.0.1#53(localhost) ;; WHEN: Thu Feb 23 00:08:55 2006 ;; MSG SIZE rcvd: 130
これは結果が帰ってくるまでちょっと時間がかかった。
けど、とりあえず設定はちゃんとできているよう。Safari から http://wwww.paraches.com/ とやってみたりしてもちゃんと接続できる。
で、この設定ができるまで失敗した部分が2つ。1つ目は逆引きがちゃんとできなかった。これの原因は named.conf.local での逆引きの設定部分の間違い。ローカルネットワークは 192.168.1.xx なのだけど、良くあるお手本を見ながらそのままデフォルトで入ってる named.conf.local を編集したので 192.168.0.xx になっていたのだ。これで逆引きができなかった。
zone "0.168.192.in-addr.arpa" { <- 0 のままだった type master; file "/etc/bind/paraches.com.rev"; };
2つ目は CNAME での失敗(?)。とにかく良くあるお手本を参考に設定したのに…なぜか wwww.paraches.com がうまくいかない。で、dig @localhost www.paraches.com してみた。そしたら
;; ANSWER SECTION: www.paraches.com. 86500 IN CNAME debian.paraches.com.paraches.com.
だそうだ。paraches.com が多くない? というわけで、paraches.com の CNAME している場所の余計な(?)paraches.com を消したらうまくいった。
www IN CNAME debian.paraches.com <- 最初の駄目な行 www IN CNAME debian <- うまく動作した行
これはなんでかな〜? web 上で見つかる資料ってドメイン名まで書いてあるんだけどな〜。自分の設定ファイルのどこかに typo があるのかな?
というわけで、なんとかネームサーバの設定はとりあえず形になった。