BIND 8.2.2 の設定方法
SERVER
DNS サーバである BIND 8.8.2 の各種設定ファイルの書き方を載せてみました。
resolv.conf の書き方
resolv.conf は、BIND のクライアントソフトであるリゾルバの設定ファイルです。ここに登録されている情報を元に、DNS サーバへの問い合わせを行います。
resolv.conf には、完全などメイン名を省略した際のドメイン名と、どの DNS へ問い合わせるかが記されます。
省略時のドメイン名は search の後に続けて書きます。また参照する DNS は nameserver の後に続けて IP アドレスで指定します。DNS サーバは複数登録することが出来ます。
たとえば、test.ez-net.jp ドメインで、ネームサーバが 192.168.0.1 と 192.168.0.2 であった場合には、
search test.ez-net.jp
nameserver 192.168.0.1
nameserver 192.168.0.2というようになります。
named.conf の書き方
named.conf は BIND のサーバ本体の設定が保存されているファイルです。BIND の基本的な設定はここで行います。
ひととおりの設定が記述されたサンプルファイルが、BIND のホームページ にありますので、ダウンロードすると作業の手間を軽減することが出来ます。
named.conf は大雑把に以下のような書き方になります。この設定の書き方だと、BIND 9 では正常に動作しないそうなので気をつけてください。
options
{
directory "/var/named";
};
zone "." in
{
type hint;
file "named.boot";
};
zone "0.0.127.in-addr.arpa" in
{
type master;
file "name.local";
};
zone "test.ez-net.jp" in
{
type master;
file "test.ez-net.jp.zone";
};
zone "0.0.168.192.in-addr.arpa" in
{
type master;
file "test.ez-net.jp.rev";
};
zone "exp.ez-net.jp" in
{
type slave;
file "exp.ez-net.jp.zone;
masters
{
192.168.0.1;
};
};
はじめの option は、各種ゾーンファイルをどこのディレクトリに保存するかを示すものです。
zone で始まるものは、どの範囲の名前解決をどのファイルでカバーするのかを示しています。
たとえば zone "test.ez-net.jp" の場合は、****.test.ez-net.jp という名前解決が試みられた場合に適用される情報ということになります。
その中で type というものは、その情報がプライマリ DNS なのか、それともセカンダリ DNS なのかを示しています。
プライマリならば master 、セカンダリならば slave と指定します。そして slave と指定した場合には、masters という項目におおもとのプライマリ DNS の IP アドレスを指定します。
また、zone のところの末尾に.in-addr.arpa が含まれている場合、逆引き、つまり IP アドレスからドメイン名を検索する情報であることを示しています。
file には、さらに詳細な情報が保存されています。ファイルの設定方法に関しては、次の節をご覧くださいませ。
ゾーンファイルの書き方
ゾーンファイルは実際にどのような名前解決を行うかが記されたファイルです。あらかじめ大まかなゾーンを named.conf によって設定し、細かい設定をここで行うことになります。
なお、ここで紹介する設定の書き方だと、BIND 9 では正常に動作しないそうなので気をつけてください。
まず重要になるのがキャッシュファイルの設定です。
これはあらかじめ BIND のページ で提供されていますので、それをダウンロードします。そしてダウンロードしたファイルは zone "." で設定した通りのファイル名で保存します。
その他のゾーンファイルは自分で作る必要がありますが、大まかな形が出来上がったものがサンプルとして公開されていますので、それを使うといいでしょう。
以下では zone "test.ez-net.jp" を例にあげてみます。
@ IN SOA ns1.test.ez-net.jp. hostmaster.test.ez-net.jp. ( 2000042200 ; SERIAL 3600 ; REFRESH 900 ; RETRY 3600000 ; EXPIRE 3600 ; MINIMUM ) IN NS ns1.test.ez-net.jp. IN NS ns2.test.ez-net.jp. IN MX 10 mail.test.ez-net.jp. www IN A 192.168.0.2 IN A 192.168.0.3 ftp IN CNAME www.ez-net.jp. このような感じで設定をします。
@ はゾーンの先頭であることをあらわします。つまりここでは test.ez-net.jp であることを示します。なお、ドメイン名の最後までをちゃんと書くときには、かならず一番最後にピリオド ( . ) をつけます。
ゾーンファイルでは SOA レコードが一番最初に記述される必要があります。SOA の直後にくるドメイン名は、プライマリ DNS の名前を設定します。ここでは ns1.test.ez-net.jp. と設定します。完全なドメイン名の終わりにはピリオドがいるので注意が必要です。
続いて管理者のメールアドレスです。通常のメールアドレスと違い、( @ ) を ( . ) に置き換えて記述します。上記の例では hostmaster@test.ez-net.jp を hostmaster.test.ez-net.jp. と記しています。ここでも一番後ろにピリオドを忘れないようにします。
SERIAL は、情報が変更されたかを示すためのもので、このファイルを変更するたびに SERIAL の値を増加させる必要があります。
REFRESH はセカンダリ DNS がプライマリ DNS の情報を確認するまでの時間を秒単位で指定します。
RETRY はセカンダリ DNS が プライマリ DNS への問い合わせに失敗したときに、何秒後に再接続を試みるかを設定します。
EXPIRE には、セカンダリ DNS がプライマリ DNS と連絡が取れない場合に、どれくらいのあいだ情報を保持しておくかを秒単位で設定します。
MINIMUM では、DNS 情報に特に期限がない場合に、どの程度情報を保持するかを秒単位で指定します。
あとはそれぞれレコードの設定です。レコードに関してはまたの機会に紹介します。
あと必要なのが逆引きの設定です。これも正引き(上記)の場合とほとんど同じです。
@ IN SOA ns1.test.ez-net.jp. hostmaster.test.ez-net.jp. ( 2000042200 ; SERIAL 3600 ; REFRESH 900 ; RETRY 3600000 ; EXPIRE 3600 ; MINIMUM ) IN NS ns1.test.ez-net.jp. IN NS ns2.test.ez-net.jp. 2 IN PTR www.test.ez-net.jp. 3 IN PTR mail.test.ez-net.jp.