bind を設定する

ネームサーバ(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

これで一通りの設定と動作確認が終了しました。

Comments are closed.