bind9(+chroot)でDNSサーバーを構築してみる

※サーバーのIPは192.168.1.10と定義

/etc/named.confを作成

options {
    directory "/var/named";
    dump-file "/var/named/data/cache.db";
    statistics-file "/var/named/data/stats.txt";
    allow-query { any; };

    # プロバイダ側のDNSサーバーIPを指定
    forwarders {
        xxx.xxx.xxx.xxx;
    };
};

controls {
    inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

zone "." IN {
    type hint;
    file "named.ca";
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
    allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "localhost-rev.zone";
};

zone "3brains.net" IN {
    type master;
    file "3brains.zone";
    allow-query { any; };
};

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "3brains-rev.zone";
    allow-query { any; };
};

include "rndc.key";

以上のファイルを作成していく

rndc.keyを作成

rndc-confgen > /etc/rndc.key

named.caを作成

dig @a.root-servers.net . ns > /var/named/named.ca

localhost.zoneを作成

ローカルネットワーク?の正引きゾーン

$TTL 86400
@    IN    SOA    localhost.    postmaster.3brains.net. (
    20080720 ;
    28800 ;
    14400 ;
    3600000 ;
    86400)

    IN    NS    @
    IN    A      127.0.0.1

localhost-rev.zoneを作成

ローカルネットワークの逆引きゾーン

$TTL 86400
@    IN    SOA    localhost.    postmaster.3brains.net. (
    20080720 ;
    28800 ;
    14400 ;
    3600000 ;
    86400)

    IN    NS    localhost.
1   IN    PTR   localhost.

3brains.zone

3brains.netドメインの正引きゾーン

$TTL 86400
@    IN    SOA    3brains.net.    postmaster.3brains.net. (
    20080720 ;
    28800 ;
    14400 ;
    3600000 ;
    86400)

         IN    NS    3brains.net.
@        IN    A      192.168.1.10
ns1      IN    A      192.168.1.10
         IN    MX    10    mail.3brains.net.

サブドメインを利用する場合はAレコードとして定義しておくこと

3brains-rev.zoneを作成

3brains.netの逆引きゾーン

$TTL 86400
@    IN    SOA    3brains.net.    postmaster.3brains.net. (
    20080720 ;
    28800 ;
    14400 ;
    3600000 ;
    86400 )

      IN    NS    3brains.net.
10    IN    PTR    3brains.net.

/etc/resolv.confを設定

nameserver 192.168.1.10

終わり。サーバーを起動しエラーが出ていない事をチェック。その後外部からドメインがちゃんと引けるかチェック