<Homeへもどる>   <前に戻る>

ドメイン・ネーム・システムとしてのBIND8

 DNSサーバー・・・人間にわかりやすいドメインネームをIPアドレスと相互に変換するシステム。
といっても、これを個人で運用するメリットはあるのか?
あまりないかも(^^;
 まぁ、知識・技術として知っておいて損はない。



1.なにわともあれソースの入手と展開

ftp://ftp.isc.org/isc/bind/src/ このなかにBIND8.x.xがあるのでダウンロード。

<追記>
現在BIND9が最新版として公開されている。ココ→ ftp://ftp.isc.org/isc/bind9/

アーカイブの展開にはいつもの通り下記のように

#tar zxfv bind-src.tar.gz

 もちろん、適当な場所にダウンロードしたBINDのバージョン名なんかを付けて、
作業用のディレクトリを作っておくといい。(通常は/usr/src/bind-8.x.x とかかな)



2.インストール

 その前に、BINDが起動しているなら停止し、RPMでインストールされているなら
事前に削除しておくなりで、下準備を怠らず。
ディストリビューションによっては依存関係でBIND本体を簡単には削除できない。
地道に依存関係のあるRPMを消していくしかない。
が、誤って必要な物まで消してしまわないように注意。

 さて、準備が整ったらコンパイルだ。

#make stdlinks
#make clean
#make depend
#make all
#make install

 ソースを展開したディレクトリに「INSTALL」というファイルがあるが、
これに書かれた通りにコンパイルするのみ。(楽勝でしょ?)
ただし、Linux以外のOSでは別のコンパイル方法が推奨される場合もあるので、
少なくとも「INSTALL」ファイルは呼んでおくほうがいい。



3.設定

 DNSサーバーって実はものすごく奥が深い。
まぁ、それなりの規模の本屋へ行って眺めてみると、DNSについて分厚い本が売ってたりする。
(sendmailなんかも相当だけど(^^;)

 さて、ここでは簡単に「ローカルでとりあえず動作させるレベル」で進めていく。

named.conf
options {
directory "/etc/named";
forward first;
forwarders
{
xxx.xxx.xxx.xxx;
xxx.xxx.xxx.xxx;
};
};
zone "." {
type hint;
file "named.ca";
};
zone "tbush.or.jp"{
type master;
file "tbush.hosts";
};
zone "0.168.192.in-addr.arpa"{
type master;
file "tbush.rev";
};
zone "100.168.192.in-addr.arpa"{
type master;
file "tbush2.rev";
};
zone "0.0.127.in-addr.arpa"{
type master;
file "named.local";
};

directory "/etc/named" 」 ではDNSサーバーの設定ファイルがある場所を指定している。
通常はデフォルトでかまわないが、別の意図がある場合は変更するのもよい。

forwarders 」 はこのサーバーで解決できない場合に問い合わせるサーバーを指定できる。
ローカルでさらに別のDNSサーバーを立ち上げているならそれを指定するのもいいし、
プロバイダのDNSを利用してもいいだろう。

zone "xxxx" { 」 はルートサーバー・正引き・逆引き・逆引きループバックの設定ファイルを指定している。
file "xxxx" でファイル名を指定でき、特に判り易い名前にしておけば問題ない。

 注)上記の設定は架空のホスト名を使っています。実際には自分の環境をよく考え当てはめよう。

<正引き>
tbush.hosts
@ IN SOA hoge.tbush.or.jp. master.tbush.or.jp. (
      2003053101 ; serial
      43200 ; refresh
      3600 ; retry
      3600000 ; expire
      36000 ; default_ttl
      )
  IN NS   hoge.tbush.or.jp.
  IN MX 10 hoge.tbush.or.jp.
hoge IN A   192.168.0.1
hoge IN MX 5 hoge.tbush.or.jp.
host1 IN A   192.168.0.2
host1 IN MX 5 host1.tbush.or.jp.
host2 IN A   192.168.0.10
host3 IN A   192.168.0.100
host4 IN A   192.168.100.50
host4 IN MX 5 hoge.tbush.or.jp.
host5 IN A   192.168.100.100
www IN CNAME   hoge.tbush.or.jp.
ftp IN CNAME   hoge.tbush.or.jp.
mail IN CNAME   hoge.tbush.or.jp.
loghost IN CNAME   localhost
localhost IN A   127.0.0.1

 はっきり言って難解。初めてDNSを設定したときは、この一行目からつまずいてた。

[zone] [ttl] IN SOA [master server] [mail address]

という書式で、( )内に
・シリアル ・リフレッシュタイム ・リトライタイム ・ゾーンデータ保持期間 ・キャッシュの最小保持期間
を設定していく。

 [mail address]では"@"ではなく".(ドット)"を使っていることに注意。
 また、シリアルは設定を変更したら必ず数値を増加する方向で書き換えること。
(とはいえ、セカンダリDNSが無い限りは問題ないかも)
その他の数値はとりあえずデフォルトでOK。

 さて、お次はNSレコードと呼ばれるもの。DNSサーバーの定義項目で書式は下記の通り。

[domain] [ttl] IN NS [server]

ま、簡単に言ってしまえば「DNSサーバーの指定」

 次にMXレコード、書式は以下。

[domain] [ttl] IN MX [priority] [server]

ここのdomainにはhostを入力することもできる。
(domainとhostの見分けはかなり難しいけど・・・)
対象domain(或いはhost)宛に届いたメールは、このレコードに従って処理される。
priorityは読んで字の如く、優先順位。小さい値から評価されていく。

 Aレコードは割と分かりやすいかも。書式も同様でもう見慣れたもの

[host] [ttl] IN A [IP]

ホスト名とIPの関連づけのような感覚。

 最後にCNAMEレコード。やはり書式は同様のもの。

[name] [ttl] IN CNAME [host]

これは、けっこう便利な機能で、エイリアスに似ている。
上記の例では「hoge.tbush.or.jp」というホストにwwwやftp、mailといったホスト名を割り当て、
一見、複数のサーバーがあるように見せかけることもできる。
一台のマシンで複数のサーバーを立ち上げる、特に個人の場合は便利でしょう。


<逆引き>
tbush.rev
@ IN SOA hoge.tbush.or.jp. master.tbush.or.jp. (
      2003053101 ; serial
      43200 ; refresh
      3600 ; retry
      3600000 ; expire
      36000 ; default_ttl
      )
@ IN NS hoge.tbush.or.jp
1 IN PTR hoge.tbush.or.jp
2 IN PTR host1.tbush.or.jp
10 IN PTR host2.tbush.or.jp
100 IN PTR host3.tbush.or.jp

 書かれていることは、IPアドレスとホスト名の関連づけ。
書式も正引きの時と何ら変わらない。

その他の「named.ca」や「named.local」は特に変更の必要はないでしょう。
念のため、簡単に役割の説明だけ。

「named.ca」
ルートサーバーの情報。
このファイルはできるだけ最新のものを入手しておくとよい。

「named.local」
localhostに対する設定。
特に変更の必要もないが、一行目のSOAレコードは書き換えよう。

 以上で一通り設定は完了。
あとはデーモンをリスタートさせればDNSサーバーの完成。
できるだけnslookupというコマンドを使って設定・動作のチェックをしておこう。

IPからドメインの変換、また、その逆。
CNAMEのチェックに外部DNSの参照ができるかどうか。

 更に、引数無しでnslookupとするとプロンプト表示でコマンド入力になる。
そこで、

>set type=mx
>tbush.or.jp

<省略>

>localhost

<省略>

>set type=ns
>tbush.or.jp

<省略>

>ls -a tbush.or.jp

 この辺のコマンドでMXレコードの確認、NSレコードの確認、
ゾーンファイルの設定内容出力ができるので、確認していこう。

このプロンプト画面から抜けるのは「exit」で。

<Homeへもどる>   <前に戻る>