ネームサーバ(DNSサーバ)としてbindを設定して稼働させる手順を整理しておきます。
bind 9.3 では、目的別に個別のファイルを作成・編集することになります。
設定するレコードは、次の各レコードです。
- Aレコード
- NSレコード
- MXレコード
- SOAレコード
- PTRレコード
1.bind のインストール
[root ~]# yum install bind bind-chroot caching-nameserver (略) Installed: bind.i386 30:9.3.6-16.P1.el5_7.1 bind-chroot.i386 30:9.3.6-16.P1.el5_7.1 caching-nameserver.i386 30:9.3.6-16.P1.el5_7.1 Dependency Installed: bind-libs.i386 30:9.3.6-16.P1.el5_7.1 Complete!
2.自動起動の設定
[root ~]# chkconfig --list named named 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root ~]# chkconfig named on [root ~]# chkconfig --list named named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3.bind の設定
[root ~]# cd /var/named/chroot/etc [root ~]# cp -p named.caching-nameserver.conf named.conf [root ~]# vim named.conf options { #listen-on port 53 { 127.0.0.1; }; ← コメントアウト #listen-on-v6 port 53 { ::1; }; ← コメントアウト version "unknown"; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; // Those options should be used carefully because they disable port // randomization query-source port 53; query-source-v6 port 53; allow-query { localhost; localnets; }; allow-query-cache { localhost; }; forwarders { 111.111.111.111; ← フォワードネームサーバ(プライマリ) 222.222.222.222; ← フォワードネームサーバ(セカンダリ) }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view localhost_resolver { match-clients { localhost; }; match-destinations { localhost; }; recursion yes; include "/etc/named.rfc1912.zones"; include "/etc/named.goofoo.jp.zone"; ← 追加 }; view "internal" { match-clients { localnets; }; match-destinations { localnets; }; recursion yes; include "/etc/named.rfc1912.zones"; include "/etc/named.goofoo.jp.zone"; ← 追加 }; view "external" { match-clients { any; }; match-destinations { any; }; recursion no; include "/etc/named.goofoo.jp.zone.wan"; ← 追加 };
4.内部向けゾーン情報の設定
上で追加した内部ネットワーク(プライベートネットワーク)からの参照用のゾーン情報を設定します。
[root ~]# vim /etc/named.goofoo.jp.zone zone "goofoo.jp" { type master; file "goofoo.jp.db"; }; zone "30.181.183.in-addr.arpa" { type master; file "30.181.183.in-addr.arpa.db"; };
5.外部向けゾーン情報の設定
上で追加した外部ネットワーク(プライベートネットワーク以外)からの参照用のゾーン情報を設定します。
[root ~]# vim /etc/named.goofoo.jp.zone.wan zone "goofoo.jp" { type master; file "goofoo.jp.db.wan"; allow-query { any; }; };
6.内部向け正引きゾーンファイルの作成
[root ~]# vim /var/named/chroot/var/named/goofoo.jp.db $TTL 86400 @ IN SOA goohoo.jp. root.goofoo.jp.( 2011122301 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS goofoo.jp. IN MX 10 mail.goofoo.jp. @ IN A 183.181.30.79 * IN A 183.181.30.79
7.逆引きゾーンファイルの作成
[root ~]# vim /var/named/chroot/var/named/30.181.183.in-addr.arpa.db $TTL 86400 @ IN SOA goofoo.jp. root.goofoo.jp.( 2011122401 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS goofoo.jp. 79 IN PTR goofoo.jp.
8.外部向け正引きゾーンファイルの作成
[root ~]# vim /var/named/chroot/var/named/goofoo.jp.db.wan $TTL 86400 @ IN SOA goofoo.jp. root.goofoo.jp.( 2011122301 ; Serial 7200 ; Refresh 7200 ; Retry 2419200 ; Expire 86400 ) ; Minimum IN NS ns1.goofoo.jp. IN MX 10 goofoo.jp. ns1 IN A 183.181.30.79 @ IN A 183.181.30.79 www IN A 183.181.30.79 mail IN A 183.181.30.79 goofoo.jp. IN TXT "v=spf1 a mx ~all"
9.参照先ネームサーバの設定
[root ~]# vim /etc/resolv.conf nameserver 183.181.30.79 ← 参照先ネームサーバを指定
10.ネームサーバの起動
[root ~]# service named start named を起動中: [ OK ]
11.ネームサーバの動作確認
ゾーン情報を確認します。
[root ~]# dig goofoo.jp ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5_7.1 <<>> goofoo.jp ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1524 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;goofoo.jp. IN A ;; ANSWER SECTION: goofoo.jp. 86400 IN A 183.181.30.79 ;; AUTHORITY SECTION: goofoo.jp. 86400 IN NS goofoo.jp. ;; Query time: 0 msec ;; SERVER: 183.181.30.79#53(183.181.30.79) ;; WHEN: Fri Dec 23 22:18:09 2011 ;; MSG SIZE rcvd: 57
Webサイトのドメインを確認します。
[root ~]# dig www.goofoo.jp ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5_7.1 <<>> www.goofoo.jp ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44957 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.goofoo.jp. IN A ;; ANSWER SECTION: www.goofoo.jp. 86400 IN A 183.181.30.79 ;; AUTHORITY SECTION: goofoo.jp. 86400 IN NS goofoo.jp. ;; ADDITIONAL SECTION: goofoo.jp. 86400 IN A 183.181.30.79 ;; Query time: 0 msec ;; SERVER: 183.181.30.79#53(183.181.30.79) ;; WHEN: Fri Dec 23 22:31:49 2011 ;; MSG SIZE rcvd: 77
Webサイトの逆引きを確認します。
[root ~]# dig -x 183.181.30.79 ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5_7.1 <<>> -x 183.181.30.79 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41758 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;79.30.181.183.in-addr.arpa. IN PTR ;; ANSWER SECTION: 79.30.181.183.in-addr.arpa. 86400 IN PTR goofoo.jp. ;; AUTHORITY SECTION: 30.181.183.in-addr.arpa. 86400 IN NS goofoo.jp. ;; ADDITIONAL SECTION: goofoo.jp. 86400 IN A 183.181.30.79 ;; Query time: 0 msec ;; SERVER: 183.181.30.79#53(183.181.30.79) ;; WHEN: Fri Dec 23 22:25:24 2011 ;; MSG SIZE rcvd: 97
これで一通りの設定と動作確認が終了しました。