FreeBSD-4.10

DNSサーバである、BIND-9を導入します

※ひょっとしたら、FreeBSD 5.2.1の手順と同じかもしれない

構築する環境

ネットワーク192.168.0.0/24
ドメイン名example.com
ホスト名host1.example.com(192.168.0.224)
Aliaswww,ftp,mail

Recommend Book

bind構築時のお供に。頼りになります

導入

まずはBind9を導入します

make install

rootで以下を実行します

# cd /usr/ports/dns/bind9
# make install clean

キーの生成

/usr/local/etc/rndc.confの作成

以下の様にして、/usr/local/etc/rndc.confファイルを作成します。

# mv /usr/local/etc/rndc.conf.sample /usr/local/etc/rndc.conf
# chmod 400 /usr/local/etc/rndc.conf
# chown root:wheel /usr/local/etc/rndc.conf

/usr/local/etc/rndc.keyの作成

以下の様にして、/usr/local/etc/rndc.keyファイルを作成します。

# /usr/local/sbin/rndc-confgen -a -b 512 -r /dev/urandom -u bind
# chmod 400 /usr/local/etc/rndc.key
# chown bind:bind /usr/local/etc/rndc.key

/usr/local/etc/rndc.confの修正

先ほど作成した/usr/local/etc/rndc.confの以下の部分

key "key" {
        algorithm       hmac-md5; 
        secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
};

をコメントにし、その下にinclude文を追加します

###key "key" {
###        algorithm       hmac-md5;
###        secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
###};
include "/usr/local/etc/rndc.key";

また、

options {
        default-server  localhost;
        default-key     "key";
};

の default-key 行を

default-key     "rndc-key";

と変更し、更に

server localhost {
        key     "key";
};

の key 行を

key     "rndc-key";

と変更します。

結果として、以下の様になります。

options {
        default-server  localhost;
##        default-key     "key";
        default-key     "rndc-key";
};

server localhost {
##        key     "key";
        key     "rndc-key";
};
###key "key" {
###        algorithm       hmac-md5;
###        secret "c3Ryb25nIGVub3VnaCBmb3IgYSBtYW4gYnV0IG1hZGUgZm9yIGEgd29tYW4K";
###};
include "/usr/local/etc/rndc.key";

pidファイル格納ディレクトリの作成

/var/run/named/下に pid というファイルを作成する様に設定ファイルを設定する為、

/var/run/下にnamedディレクトリを作成する。

# mkdir /var/run/named
# chown bind:bind /var/run/named

localhost-v6.rev,localhost.revファイルの作成

/etc/namedb下にある、make-localhost スクリプトを実行して作成します。

# cd /etc/namedb
# sh make-localhost

これで、/etc/namedb下に、

  • /etc/namedb/localhost-v6.rev
  • /etc/namedb/localhost.rev

が作成されます

"example.com"ゾーンの正引き・逆引きファイルの作成

正引きファイル

生成するファイルは、/etc/namedb/example.com.zone

ファイルの中身は以下です。

$TTL    86400
@               IN      SOA      tesst1.example.com. root.test1.example.com. (
                        2004092701              ; serial
                        3600                    ; refresh 1Hour
                        900                     ; retry 15min
                        604800                  ; expiry 1w
                        86400                   ; min 24Hour
)

                IN              NS              test1.example.com.
                IN              MX      10      test1.example.com.

localhost       IN              A               127.0.0.1
test1            IN             A               192.168.0.224
mail            IN              CNAME           test1
ftp             IN              CNAME           test1
www             IN              CNAME           test1

逆引きファイル

生成するファイルは、/etc/namedb/example.com.rev

ファイルの中身は以下です。

$ORIGIN 0.168.192.IN-ADDR.ARPA.
$TTL    86400
@               IN      SOA      test1.example.com. root.test1.example.com. (
                        2004092501              ; serial
                        3600                    ; refresh 1Hour
                        900                     ; retry 15min
                        604800                  ; expiry 1w
                        3600                    ; minimum 24Hour
)

                IN              NS              test1.example.com.

224             IN              PTR             test1.example.com.

/etc/namedb/named.confファイルの変更

rndc.keyのインクルード

named.confの先頭に、rndc.keyをインクルードする記述を行う。

include "/usr/local/etc/rndc.key";

pid-fileの指定

optionsに pid-fileの指定を行う。

pid-file "/var/run/named/pid";

"example.com"ゾーンを追加する。(逆引きも)

named.confの最下行に以下を追加する。

zone "example.com" IN {
        type master;
        file "example.com.zone";
};
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "example.com.rev";
};

最終的に、named.confは以下の様に内容となります。

include "/usr/local/etc/rndc.key";

options {
        directory "/etc/namedb";
        pid-file "/var/run/named/pid";

// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
//      forward only;

// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below.  This will make you
// benefit from its cache, thus reduce overall DNS traffic in the Internet.
/*
        forwarders {
                127.0.0.1;
        };
*/
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
        // query-source address * port 53;

        /*
         * If running in a sandbox, you may have to specify a different
         * location for the dumpfile.
         */
        // dump-file "s/named_dump.db";
};

// Note: the following will be supported in a future release.
/*
host { any; } {
        topology {
                127.0.0.0/8;
        };
};
*/

// Setting up secondaries is way easier and a rough example for this
// is provided below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// first in your /etc/resolv.conf so this server will be queried.
// Also, make sure to enable it in /etc/rc.conf.

zone "." {
        type hint;
        file "named.root";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "localhost.rev";
};

// RFC 3152
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
        type master;
        file "localhost-v6.rev";
};

// RFC 1886 -- deprecated
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
        type master;
        file "localhost-v6.rev";
};

// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries.  It can be convenient to become
// a secondary at least for the zone your own domain is in.  Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is named after the first bytes of the IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to set up a primary zone, make sure you fully
// understand how DNS and BIND works.  There are sometimes
// non-obvious pitfalls.  Setting up a secondary is simpler.
//
// NB: Don't blindly enable the examples below. :-)  Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD can run bind in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to bind.  The following sequence is suggested:
//
//      mkdir /etc/namedb/s
//      chown bind:bind /etc/namedb/s
//      chmod 750 /etc/namedb/s

/*
zone "domain.com" {
        type slave;
        file "s/domain.com.bak";
        masters {
                192.168.1.1;
        };
};

zone "0.168.192.in-addr.arpa" {
        type slave;
        file "s/0.168.192.in-addr.arpa.bak";
        masters {
                192.168.1.1;
        };
};
*/

zone "example.com" IN {
        type master;
        file "example.com.zone";
};
zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "example.com.rev";
};

bind9起動の為の設定

マシン起動時に自動起動する様に、/etc/rc.confに以下を追加します

named_program="/usr/local/sbin/named"
named_flags="-u bind -c /etc/namedb/named.conf"
named_enable="YES"

/etc/resolv.confの設定

nameserverとして、本マシンを使用する様に、/etc/resolv.confに以下を設定します。

nameserver 127.0.0.1

/etc/host.confの設定確認

nameserverでも名前解決する様な設定になっている事を確認する。

以下は設定例です。

# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $
# First try the /etc/hosts file
hosts
# Now try the nameserver next.
bind
# If you have YP/NIS configured, uncomment the next line
# nis

マシンの再起動

マシンを再起動し、namedプロセスが起動することを確認します

設定ファイル変更後の反映方法

設定ファイルを変更した場合は、

# rndc reload

として、変更を反映させる。

関連ページ