プライベートLAN上のホストに対して、インターネット接続のための名前解決とプライベートLAN上の名前解決を提供する。外部からの(外向けの)名前解決はダイナミックDNS環境なので不要、というか出来ない。
①必要なパッケージをインストール。なおOSの初期インスト時にServersを選んだ場合ははじめから入っているようだ。
[root@ml115 ~]#yum install bind [root@ml115 ~]#yum install bind-libs [root@ml115 ~]#yum install bind-chroot [root@ml115 ~]#yum install bind-utils
今回はchrootをインストールしているので、設定ファイル類は/etcではなく/var/named/chroot/etc/におかれる。同様にゾーンファイル類は/var/namedではなく/var/named/chroot/var/namedにおかれる。
また、初期状態では/var/named/chroot/etc/named.caching-nameserver.confという設定ファイルが使われ、自ホスト専用の名前解決サーバとして動作するが、named.confを作ることによってそちらを優先して読み込むようになる。/etc/rc.d/init.d/namedを参照。
②設定ファイルを作る。
[root@ml115 ~]# vi /var/named/chroot/etc/named.conf
acl "privatenet" {
127.0.0.1;
192.168/16;
};
options {
directory "/var/named";
allow-query{privatenet;};
};
controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
include "/etc/rndc.key";
view "internal" {
match-clients { localhost; privatenet; };
recursion yes;
include "/etc/named.rfc1912.zones";
zone "grandarbre.net" {
type master;
file "grandarbre.net.lan";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" {
type master;
file "0.168.192.in-addr.arpa.db";
allow-update { none; };
};
};
③正引きのための設定
[root@ml115 ~]# cat /var/named/chroot/var/named/grandarbre.net.lan
$TTL 86400
@ IN SOA grandarbre.net. root.grandarbre.net.(
2007102900 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; negative (1 day)
)
IN NS grandarbre.net.
IN MX 10 grandarbre.net.
IN A 192.168.0.2
r60e IN A 192.168.0.3
www1 IN A 192.168.0.18
ns1 IN A 192.168.0.20
storage1 IN A 192.168.0.24
www IN CNAME www1
[root@ml115 ~]#
④逆引きのための設定
[root@ml115 ~]# cat /var/named/chroot/var/named/0.168.192.in-addr.arpa.db
$TTL 86400
@ IN SOA grandarbre.net. root.grandarbre.net.(
2007102900 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; negative (1 day)
)
IN NS grandarbre.net.
2 IN PTR grandarbre.net.
18 IN PTR www1.grandarbre.net.
20 IN PTR ns1.grandarbre.net.
24 IN PTR storage1.grandarbre.net.
[root@ml115 ~]#
⑤namedの設定ファイル再読み込み
[root@ml115 ~]#service named reload Reloading named: [ OK ]
⑥DNSサーバ上で動作確認
[root@ml115 ~]# dig @localhost www.grandarbre.net ; <<>> DiG 9.3.3rc2 <<>> @localhost www.grandarbre.net ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64496 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.grandarbre.net. IN A ;; ANSWER SECTION: www.grandarbre.net. 86400 IN CNAME www1.grandarbre.net. www1.grandarbre.net. 86400 IN A 192.168.0.18 ;; AUTHORITY SECTION: grandarbre.net. 86400 IN NS grandarbre.net. ;; ADDITIONAL SECTION: grandarbre.net. 86400 IN A 192.168.0.2 ;; Query time: 2 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Oct 30 18:59:51 2007 ;; MSG SIZE rcvd: 101 [root@ml115 ~]#
⑦クライアントから動作確認
[root@www1 ~]# dig www.grandarbre.net ; <<>> DiG 9.3.3rc2 <<>> www.grandarbre.net ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55587 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;www.grandarbre.net. IN A ;; ANSWER SECTION: www.grandarbre.net. 86400 IN CNAME www1.grandarbre.net. www1.grandarbre.net. 86400 IN A 192.168.0.18 ;; AUTHORITY SECTION: grandarbre.net. 86400 IN NS grandarbre.net. ;; ADDITIONAL SECTION: grandarbre.net. 86400 IN A 192.168.0.2 ;; Query time: 3 msec ;; SERVER: 192.168.0.2#53(192.168.0.2) ;; WHEN: Tue Oct 30 19:00:37 2007 ;; MSG SIZE rcvd: 101 [root@www1 ~]#
各サーバの/etc/resolv.confには今回設定したDNSサーバを書く。
[root@www1 ~]# cat /etc/resolv.conf nameserver 192.168.0.2 search grandarbre.net
これで各サーバの/etc/hostsからlocalhost以外は消すことが出来る。
なお、設定を変更してnamedをreloadしても反映されるまでしばらくかかった。キャッシュか何かが残っているのかもしれない。
