新サーバー構築 其の一 BIND

本記事は最終更新日より 1 年以上経過しております。
スポンサーリンク

とりあえずサーバーとなる PC の組み立てが完了して、動作チェック OK!
でもって Linux のディストリである CentOS のインスコ完了。

さて、これからどんどん Build していくわけなんだけども先ずは基幹からという感じで
DNS サーバーから build してみましたわ。

ラストは kernel が warning エラーを吐いて完了。このエラーなんとかならないか
現在苦戦中である。
これ orz

kernel: process `named’ is using obsolete setsockopt SO_BSDCOMPAT

カーネルさんですか…。

ソースの入手から稼働までの一連をまとめておきますた。
みたい方は続きをよんでくださいな~~~。助言等ありましたらコメントよろしくです。

* BIND 9.3.2 installation.
source を適当なところへ DL する。

$ pwd
/var/tmp/source
$ tar xzvf bind-9.3.2.tar.gz
$ cd ./bind-9.3.2
$ configure --prefix=/usr/local --exec-prefix=/usr/local \
--enable-threads \
--disable-ipv6
(SMP kernel でなければ threads オプションは付けない。)
$ make depend
$ make
$ su
# make install
# exit

# su -

BIND 用 user 作成

# useradd -d /dev/null -s /sbin/nologin -c ‘BIND’ -u 500 named

ZONE, ROOT ファイル設置ディレクトリ作成

# mkdir /var/named/
# cd /var/named

ZONE と LOG ファイルを保存するディレクトリ作成。

# mkdir lan/ wan/ log/
# wget ftp://rs.internic.net/domain/named.root
# chown -R named:named /var/named/
# /usr/local/sbin/rndc-confgen -a -b 256 -k rndc.key
# chown named:named /usr/local/etc/rndc.key
# cat /usr/local/etc/rndc.key
(標準出力に出力された HMAC-MD5 キーを rndc.conf と同じにする事)
# vi /etc/rndc.conf
-- 設定例 --
key "rndc.key" {
        algorithm hmac-md5;
        secret "Here is HMAC-MD5";
};

options {
        default-key "rndc.key";
        default-server 127.0.0.1;
        default-port 953;
};
-- 設定例 ここまで--

# vi /usr/local/etc/named.conf
-- 設定例 ここから--
// DNS Configure
acl localnet {
        192.168.1.0/24;         // Private Network Zone
        127.0.0.1;              // Localhost Zone
};

options {
        directory "/var/named";         // Saved DB Files
        pid-file "/var/named/named.pid";// Set PID File Location
        allow-transfer { localnet; };   // Allow Transfer Networks
        allow-query { localnet; };      // Allow Query Networks
        version "secret";
};

// Logging
logging {
        channel xfer-out-log {
                file "/var/named/log/named-out.log" versions 5 size 1m;
                severity debug;
                print-time yes;
                print-category yes;
        };

        channel xfer-in-log {
                file "/var/named/log/named-in.log" versions 5 size 1m;
                severity debug;
                print-time yes;
                print-category yes;
        };

        channel default-log {
                file "/var/named/log/named.log" versions 5 size 1m;
                severity debug;
                print-time yes;
                print-category yes;
        };

        channel query {
                file "/var/named/log/query.log" versions 5 size 1m;
                severity info;
                print-time yes;
        };

        category xfer-in {
                xfer-in-log;
        };

        category xfer-out {
                xfer-out-log;
        };

        category queries {
                query;
        };

        category default {
                default-log;
        };
};

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

controls {
        inet 127.0.0.1 port 953 allow { localhost; } keys { "rndc-key"; };
};

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

// Loopback Rev Zone
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "lan/0.0.127.in-addr.arpa.db";
};

// Local Network Zone
zone "bp7.org" IN {
        type master;
        file "lan/bp7.org.db";
};

// Local Network Rev Zone
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "lan/1.168.192.in-addr.arpa.db";
};
-- 設定例 ここまで--

指定した各種 ZONE ファイルは各自で記述する事。

# named-checkconfig
# named-checkzone bp7.org lan/bp7.org.db

標準エラーにエラーが無ければ OK。

resolver へ追加設定

# printf “nameserver 0.0.0.0\n” >> /etc/resolv.conf

resolver からの問い合わせ順変更

# printf “order bind,hosts” > /etc/host.conf

# /usr/local/sbin/named -u named

(ほんとは init 作ってやってるけど。)

# dig @localhost example.com. in any
権威ある応答が得られるかテスト。対象ホスト適当な外部の物。

現在 SO_BSDCOMPAT と名の付く kernel からの warning エラーが出て
泣いているところ orz

以上で完了。たぶん。

** 2006/12/05 9:59 追記
参考記事
** 2006/12/06 19:18 修正
named の init 作成

スポンサーリンク