bindのインストールと設定

戻る


 DNSサーバのソフトウエアである bind のインストールと設定に関する覚書である。
 bind には bind8 と bind9 がある。これまで一般的に用いられているの前者の bind8 である。bind9 はbind8 の上位にあるものらしく、IPの新規格IPv6に対応できるそうだ。しかし、今のところ、IPv6が普及しているという話は聞かないので、今回は bind8 にしている。今後 bind9 に移行する必要性が生じたら、参考文献2)を読んでインストールしていただきたい。(インストール法自体はさほどかわりがないようである。)


 目次
 DNSに関して
(1)インストール
(2)設定ファイル
(3)その他の設定
(4)たまに必要になるDNSの再起動


DNSに関して            戻る
 bindについて何か説明する場合、DNSについて語る必要がある。しかしながら、DNSについて全ての説明をここで行うには手間がかかりすぎる。従って、ここでは必要な部分のみ説明する。それ以上の情報については、参考文献1)2)を参照されたい。

 DNS(Domain Name Service)の役目はIPとドメインを結びつけることである。従って、DNSが落ちたときにもネットワークは生きている。ただし、使い勝手は極めて悪くなる。また、メールも届かなくなる、困ったことに。

 たとえば、何気なく
http://www.yahoo.co.jp
を閲覧するときにも、 www.yahoo.co.jp のIPを調べる必要がある。この場合、まず、DNSサーバにwww.yahoo.co.jp のIPをたずね、DNSがそれに対して回答を与える。この手順を名前解決(文献1)という。この名前解決は正引きと呼ばれる。また、問い合わせをクエリー(文献2)とよぶ。IPからアドレスを調べる名前解決もある。これを逆引きとよぶ。

 では、このwww.yahoo.co.jpのIPは何処に記されているのか? 作者は何処に記されているか調べていない。また、(当然だが)研究室のDNSに記されているわけではない。

 ただ、調べ方はわかる。研究室のDNSサーバがしらないアドレスの場合、知っているDNSサーバに名前解決を依頼する。このように名前解決を他のDNSサーバに依頼する設定がなされたDNSサーバをフォワーダ-サーバとも呼ぶらしい(文献2)。このフォワーダ-の設定は、 named.conf にて行う(後述)。現在、研究室のフォワーダ-は系のDNSサーバ(133.15.188.2)のみである。133.15.188.2も知らなければ、133.15.188.2のフォワーダ-で指定されているサーバに名前解決を依頼する。このようにして、名前解決は行われる。

 あるDNSサーバが名前解決を受け持つネットワークをゾーンと呼ぶ。たとえば、研究室のDNSが受け持つゾーンは st.tutrp.tut.ac.jp または 133.15.8.* であり、このDNSは、ゾーンst.tutrp.tut.ac.jp, ゾーン133.15.8. に対して権威ある回答を行う(文献1)。
 DNSにはゾーンデータベースと呼ばれるものがある。これは、(何のことはない)IPとアドレスの対応表である。ゾーンデータベースは正引き、逆引き、双方に対して1つずつ用意される必要があり、かつ、2つのゾーンデータベースが対応したものでなくてはならない。ゾーンデータベースの例については後述する。
 
 気づかれた読者もいると思うが、DNSは世界規模でツリー状になっている。研究室のDNSは末端にあたる。頂点のドメインは単に . であり、ルートネームサーバと呼ばれる。このルートネームサーバの情報を知るために、 named.ca または root.cache を準備する必要がある。これは、
ftp://ftp.rs.internic.net/domain/named.ca
よりダウンロードできる。また、研究室に伝わっている root.cacheを用いるのもいいだろう。ただし、リストに書かれているアドレスが現存するかは保証しかねる。


1.インストール    戻る
 まず、bind用のディレクトリを作成する。作者は/usr/localに作成した。

%cd /usr/local
%mkdir bind-8.2.4
%cd bind-8.2.4

bind-src.tar.gzを持ってきて展開する。バージョンは bind-8.2.4 (2001.10現在で最新のbind8)であり、

ftp://ftp.isc.org/isc/bind/src

より入手した。

%tar zxvf bind-src.tar.gz

コンパイルを以下の手順で行う。

%cd src
%make depend
%make all

インストールする。

%make install

これでインストールは終了である。デフォルトでは、/etc/namedbに設定ファイルの雛型が置かれている。通常はこれをつかえばよい。


2.設定ファイル    戻る
 正直なところ、設定ファイルのパラメータの意味が何で、どういう働きをするか、ということを述べるのはツライ。従って設定ファイルを掲載するので文献1)などを参考にして、各パラメータの意味を調べてほしい。ただ、研究室で使っている設定ファイルを掲載するのはセキュリティ上、好ましくない。従って、架空のネットワークにおける設定ファイルを掲載する。以下の表にあらわされるネットワークを考える。

IPアドレス

ドメイン

aaa.bbb.ccc.jp

ppp.qqq.rrr.*

サブネットマスク

255.255.255.aaa

ゲートウェイ

gw.aaa.bbb.ccc.jp

ppp.qqq.rrr.1

メールサーバ

mail.aaa.bbb.ccc.jp

ppp.qqq.rrr.3

DNSサーバ

ns.aaa.bbb.ccc.jp

ppp.qqq.rrr.2

ウェブサーバ

www.aaa.bbb.ccc.jp

ppp.qqq.rrr.3

管理者アドレス

admin@aaa.bbb.ccc.jp

一般ホスト0

host1.aaa.bbb.ccc.jp

ppp.qqq.rrr.3

一般ホスト1

host2.aaa.bbb.ccc.jp

ppp.qqq.rrr.11

一般ホスト2

host3.aaa.bbb.ccc.jp

ppp.qqq.rrr.12

 IPとサブネットマスクをアルファベットであらわしているが本来は全て数字で表されるものである。今回、このような表記を行ったのは、現実に使用され得ないIP,サブネットマスクを用いたかったためである。
 このネットワークは、gw.aaa.bbb.ccc.jpを通じて、上位のネットワークに接続される。この上位のネットワークの構成は以下のようになっている。

ドメイン

xxx.yyy.zzz.jp

sss.ttt.uuu.*

DNSサーバ

ns.xxx.yyy.zzz.jp

sss.ttt.uuu.2

gw.aaa.bbb.ccc.jpのドメイン名

abc.xxx.yyy.zzz.jp

sss.ttt.uuu.11

また、以下の条件の元に設定を行う。
(1) 一般ホスト0がメールサーバ、ウェブサーバを行う。
(2) フォワーダ-は ns.xxx.yyy.zzz.jp のみとする。
(3) named.ca はすでに入手しているものとする。
(4) 正引きゾーンデータベースファイルは named.local とする。
(5) 逆引きゾーンデータベースファイルは local.rev とする。
(6) (username)@aaa.bbb.ccc.jp宛に来たメールは全て mail.aaa.bbb.ccc.jp に送る。MXレコードの指定が必要。
(7) (username)@***.aaa.bbb.ccc.jp に来たメールも全てmail.aaa.bbb.ccc.jp に送る。
(8) セカンダリーDNSサーバは用意しない。
(9) ppp.qqq.rrr.21〜ppp.qqq.rrr.30まではDHCP接続のために確保される。


ファイルリスト
(1)全体の設定   named.conf
(2)ドメインよりIPを調べる(正引き)  named.local 
  新しく計算機を接続する場合にはこのデータベースファイルを更新する必要がある。なお、DHCP接続を行う際にも、ゾーンデータベースファイルを書き換える必要がある。
(3)IPよりドメインを調べる(逆引き)  local.rev
  新しく計算機を接続する場合にはこのデータベースファイルを更新する必要がある。
(4)ループバックゾーンへの逆引き   localhost.rev
(5)ルートネームサーバの情報     named.ca
  ごくまれにリストの追加が行われるので、更新する必要がある。


3.その他の設定    戻る
 計算機起動時に DNS が立ち上がるようにするには、/etc/rc.conf に以下の2行を書き入れる。この記述からわかるようにDNSをはたらかせるデーモンは named である。

named_enable="YES"
named_flags="-b /etc/namedb/named.conf


4.たまに必要になる DNS の再起動    戻る
 時折、namedを再起動させる必要が生じる。たとえば…新しく計算機を接続した、named.caの更新を行った…など。
 このときは、まず、named のPIDを調べる。

%ps agux

jobの一覧が出てくるので、namedのPIDを確認し

%kill -HUP (namedのPID)

とする。ただし、namedがcoreを吐いて止まった場合にはDNSを再起動しても効き目がないときが多い(経験より)。従って、このときはDNSサーバを再起動させるしかない。


お問い合わせは          admin@st.tutrp.tut.ac.jp