BIND9の設定


今回、DNSサーバー用のソフトは、BIND−9.1.0 を使用しました。
それでは、このBIND−9.1.0 のインストール方法から説明していきましょう。

・BIND−9.1.0のインストール

まず、インターネット等より入手したソースファイル「bind-9.1.0.tar.gz」を適当なディレクトリに移します。
ここでは、「/source」 というディレクトリにソースファイルがあるとします。
次に、このソースファイルを解凍し、できたディレクトリ (/source)/bind-9.1.0に移動します。

# cd /source
# tar xvzf bind-9.1.0.tar.gz
# cd bind-9.1.0

そして、

# ./configure
# make
# make install

でBIND9の本体であるnamedデーモンがインストールされます。
しかし、このインストールによってnamedデーモンは、「/usr/local/sbin/」 のディレクトリにインストールされてしまいます。
そもそも、Red Hat Linux では、namedデーモンは「/usr/sbin/」のディレクトリにインストールされているので、このままではBIND9のnamedデーモンを稼動させることができません。
これを回避するには、「./configure」の時点で、「--prefix」オプションによりインストールするディレクトリを指定することができますが、私の場合は次のような方法をとりました。

# mv /usr/sbin/named /usr/sbin/named-8
# ln -s /usr/local/sbin/named /usr/sbin/named

また、自動的には man pages がインストールされません。
そこで、(/source/bind-9.1.0/)doc/man 以下のディレクトリに作成された man pages を /usr/local/man/man1 〜 man8 のディレクトリにコピーします。

# cp doc/man/bin/*.1 /usr/local/man/man1
# cp doc/man/bin/*.5 /usr/local/man/man5
# cp doc/man/bin/*.8 /usr/local/man/man8
# cp doc/man/dnssec/* /usr/local/man/man8
# cp doc/man/lwress/* /usr/local/man/man3

ところで、このままではnamedデーモンを再起動させても、/var/log/messeages に次のメッセージを出してすぐに止まってしまいます。

named[573]: couldn't open pid file '/var/run/named.pid': Permission denied
named[573]: exiting (due to early fatal error)

というのは、「/etc/init.d/named」ファイルにnamedデーモンをユーザーnamedで起動させるようにオプションが指定されているのですが、namedデーモンのpidファイルであるnamed.pid を書き込む/var/run/ ディレクトリのオーナーおよびグループが「root」になっているためです。
本来ならば、setuid() によりこの問題はクリアーできるのですが、kernel-2.2.xバージョンのLinuxではBIND9はsetuid()を呼び出すことができません。
そこで、この解決策として次の3つの方法が考えられます。

 (1)./configure 時に、「--disable-threads」オプションを指定し、non-threadバージョンのnamedを作成する。 
 (2)/var/run ディレクトリのオーナー及びユーザーを「named」に変更する。
 (3)/etc/init.d/namedファイルを修正し、namedデーモンを「root」で起動させる。

(1)は、bind-9.1.0のFAQに書かれている解決策です。
なお、当サイトのサーバーは、3つのうちで一番危険な(3)の方法で起動させています。(~_~;)


・BIND9の各種設定ファイル

今回構築したネットワークのドメイン名、IPアドレス、ホスト名等は次のとおりです。

ドメイン名 区分 IPアドレス ホスト名 備    考
e-ryoichi.net  インターネット   210.129.112.9    
gw.e-ryoichi.net  ローカルネット  192.168.0.1 mn128 TAルーター (MN128 SOHO SL11)
同上 同上 192.168.0.2 ms1 サーバーマシン ( eth0 )
 e-ryoichi-home.net  同上 192.168.1.1 gate サーバーマシン ( eth1 )
同上 同上 192.168.1.2 duron600 バックアップマシン
同上 同上 192.168.1.3 pc-pj1 無線LANクライアントマシン
同上 同上 192.168.0.4 wla-l11 無線LANネットワークステーション
同上 同上 192.168.1.14 fmv-433 監視用マシン

本来サーバーマシンは、ファイアーウォール用、wwwサーバー用、メールサーバー用等、目的に応じて分けるべきでしょう。
特に、セキュリティの面から、ファイアーウォール用のマシンにはその他のサーバー機能を持たせるべきではないでしょう。
しかし、ホームサーバーですので、コスト面を優先して、すべての機能を1台のマシンでまかなっています。
それが、上記の表の青色で示しているところです。

このネットワークで、DNSサーバーを稼動させるために設定したファイルは次の9種類です。
各ファイルの記述内容は、以前にアップしている「DNSサーバーの設定」を参考にしてください。

ファイル名 設  定  内  容  等
/etc/named.conf namedデーモンの初期設定ファイル 起動時に読み込まれる
/var/named/named.root ヒント情報としてのゾーンデータベースを格納したマスターファイル
/var/named/127.0.0.db ループバック逆引きゾーン(0.0.127.in-addr.arpa)マスターファイル
/var/named/e-ryoichi.net.db e-ryoichi.net正引きゾーン(210.192.112.9)マスターファイル
/var/named/210.129.112.9.db e-ryoichi.net逆引きゾーン(112.129.210.in-addr.arpa)マスターファイル
/var/named/gw.e-ryoichi.net gw.e-ryoichi.netの正引きゾーン(192.168.0.0/24)マスターファイル
/var/named/192.168.0.db gw.e-ryoichi.netの逆引きゾーン(0.168.192.in-addr.arpa)マスターファイル
/var/named/e-ryoichi-home.net.db e-ryoichi-home.netの正引きゾーン(192.168.1.0/24)マスターファイル
/var/named/192.168.1.db e-ryoichi-home.netの逆引きゾーン(1.168.192.in-addr.arpa)マスターファイル