named起動時に読み込まれる設定ファイルは、BIND4の時は /etc/named.boot でしたが、
BIND8では /etc/named.conf に変更され、書式も異なっています。
既に BIND4 の運用経験があって、BIND4用の /etc/named.boot が手元にある場合は、
src/bin/named ディレクトリにある named-bootconf.pl という Perl スクリプト
により、BIND8用の /etc/named.conf ファイルに変換できます。
# perl named-bootconf.pl < /etc/named.boot > /tmp/named.conf
# mv /tmp/named.conf /etc/
念のため、/tmp に変換したものを作成し、内容を確認してから /etc に移動する
BIND8で初めて DNSサーバを立ち上げる場合には、このファイルを新規作成します。
DNSのマスターサーバ、スレーブサーバでファイルの内容が少し異なります。
以下に、マスターサーバ用のサンプルを示します。
// sample named.conf for sub-domain Funada-Lab
// マスターサーバ用
// アクセス制御リスト
acl funalab {
192.168.1.0/24;
127.0.0.1;
};
// 動作設定
options {
directory "/var/named"; # 管理するドメインの情報を格納したディレクトリを指定
allow-transfer {
funalab;
};
};
// ルートサーバ設定
zone "." {
type hint;
file "named.root"; # ルートネームサーバの一覧を保持したファイル名を指定
};
// 正引き設定
zone "funalab.ac.jp" {
type master; # ドメインのマスターサーバである指定
file "funalab.zone"; # funalab.ac.jpドメインの正引きを定義するファイル名を指定
};
// 逆引き設定
// アドレスの数字が逆順になっている事に注意
zone "1.168.192.in-addr.arpa" {
type master; # ドメインのマスターサーバである指定
file "192.168.1.rev"; # 192.168.1.* の逆引きを定義するファイル名を指定
};
// ローカルホスト設定
zone "localhost" {
type master; # ドメインのマスターサーバである指定
file "localhost.zone"; # localhostの正引きを定義するファイル名を指定
};
zone "0.0.127.in-addr.arpa" {
type master; # ドメインのマスターサーバである指定
file "127.rev"; # localhostの逆引きを定義するファイル名を指定
};
- アクセス制御リスト
「acl」は、他の設定文の中で使うためのアクセス制御リストを定義します。
指定したIPアドレスに対してだけ接続を許可する、といった設定をするのに
使用します。ここでは、192.168.1で始まるIPアドレス、ローカルホスト(自分自身)を
表すIPアドレス127.0.0.1をまとめて「funalab」と名前を付けています。
- 動作設定
「options」は、namedプログラムの各種動作について設定します。
「options」は /etc/named.conf に一度しか書けません。
- directory
「directory」は、namedが仕事をするディレクトリを指定します。設定ファイル中で
出てくるファイル位置の指定が相対パス指定の場合、このディレクトリを起点として
参照されます。
- allow-transfer
「allow-transfer」は、、ゾーン転送を許可する相手を指定します。ゾーン転送とは、
あるネームサーバが管理しているデータをゾーン単位でまとめて転送する事です。
ここでは、「acl」で設定したアクセス制御リストを使って「funalab」内部からの
ゾーン転送だけを許可しています。スレーブサーバはマスターサーバから情報を
コピーするのにゾーン転送を必要としますので、スレーブサーバからゾーン転送を
許可するように設定しておきます。
外部からのゾーン転送を許可していると、いろいろな情報をまとめて持って
行けるため、不正侵入の材料にされる事があります。
- ルートサーバ
ネームサーバは、自分が知らないドメインの情報を探すための起点として、
ルートサーバの場所を知っておく必要があります。ここでは、ルートサーバの
一覧を取得するためのヒントとして使われるリストが書かれたファイルの場所を
設定しています。実際には、サーバが起動した時に、このファイルに書かれた
サーバに接続し、最新のルートサーバリストを取得します。
- 正引き
ここでは、ドメイン名からIPアドレスやネームサーバ、メールサーバの名前を
検索する、正引きのための設定をしています。
- 逆引き
ここでは、IPアドレスからドメイン名を検索する、逆引きのための設定をしています。
書式自体は正引きと同じです。ゾーンの名前が、IPアドレスとは逆順に書かれている
ため、注意が必要です。
- ローカルホスト
ここでは、ローカルホストに関する設定をしています。localhost と 127.0.0.1 の
相互の正引き・逆引きを設定しています。この設定をしないと、一部のソフトウェアが
正常に動作しないことがあります。
- その他
/etc/named.confでは、これら以外に、ログに関する設定、認証に関する設定等が
設定できます。ここでは設定していません。
// sample slave named.conf for sub-domains in eg.t.kanazawa-u
// スレーブサーバ用
// アクセス制御リスト
acl funalab {
192.168.1.0/24;
127.0.0.1;
};
// 動作設定
options {
directory "/var/named"; # 管理するドメインの情報を格納したディレクトリを指定
allow-transfer {
funalab;
};
};
// ルートサーバ設定
zone "." {
type hint;
file "named.root"; # ルートネームサーバの一覧を保持したファイル名を指定
};
// 正引き設定
zone "funalab.ac.jp" {
type slave; # ドメインのスレーブサーバである指定
file "bak/funalab.zone"; # funalab.ac.jpドメインの正引きを定義するファイル名を指定
masters {
192.168.1.1;
};
};
// 逆引き設定
zone "1.168.192.in-addr.arpa" {
type slave; # ドメインのスレーブサーバである指定
file "bak/192.168.1.rev"; # 192.168.1.* の逆引きを定義するファイル名を指定
masters {
192.168.1.1; # マスターサーバのIPアドレスを指定
};
};
// ローカルホスト設定
zone "localhost" {
type master; # ドメインのマスターサーバとして設定
file "localhost.zone"; # localhostの正引きを定義するファイル名を指定
};
zone "0.0.127.in-addr.arpa" {
type master; # ドメインのマスターサーバとして設定
file "127.rev"; # localhostの逆引きを定義するファイル名を指定
};
- アクセス制御リスト・動作設定・ルートサーバ
この部分は、基本的にマスターサーバの設定と同じになります。
- 正引き設定
ここでは、正引きに対するスレーブ設定をしています。マスターサーバ設定との
違いは、「type」が「slave」になっている事と、「masters」でマスターサーバの
IPアドレスを指定する事です。「file」には、マスターサーバからコピーしてきた
ゾーンファイルの置き場所を指定します。
- 逆引き設定
ここでは、逆引きに対するスレーブ設定をしています。書式は正引きと同じです。
- ローカルホスト設定
ここでは、ローカルホストに関する設定をしています。他のネームサーバに接続
できなくなっても、localhost という名前は使えるべきなので、これに関しては
マスターサーバと同じに設定しています。
ネームサーバの保持するデータの管理単位をゾーンと呼びます。一般に、1つの
ゾーンの中には複数のドメインを含むことができます。また、1つのサーバで複数の
ゾーンを受け持つことができます。しかし、逆に1つのドメインを複数のゾーンに
分けて管理することはできません。例えば、funalab.ac.jp の
半分をサーバAに、もう半分をサーバBに分けて管理することはできません。
/etc/named.conf ファイルで記述した以下のゾーンファイルを
/var/named/funalab.zone に用意します。簡単なサンプルを以下に示します。
正引き(funalab.zone)
; SOA
@ IN SOA ns1.funalab.ac.jp. hostmaster.funalab.ac.jp. (
1999010101 ; Serial
28800 ; Refresh 8 hours
7200 ; Retry 2 hours
604800 ; Expire 7 days
86400 ) ; Minimum TTL 1 day
; ネームサーバの設定
IN NS ns1.funalab.ac.jp.
IN NS ns2.funalab.ac.jp.
; メイルサーバの設定
IN MX 10 mail.funalab.ac.jp.
IN MX 20 ns.funalab.ac.jp.
; IPアドレスの設定
ns1 IN A 192.168.1.1
ns2 IN A 192.168.1.2
mail IN A 192.168.1.3
host1 IN A 192.168.1.4
host2 IN A 192.168.1.5
host3 IN A 192.168.1.6
host4 IN A 192.168.1.7
host5 IN A 192.168.1.8
host6 IN A 192.168.1.9
host7 IN A 192.168.1.10
.....
; 別名の設定
www IN CNAME mail
ftp IN CNAME host1
proxy IN CNAME host2
- SOA
ここから数行は、SOAレコードと呼ばれる情報の定義が記述されています。
行頭の「@」は、/etc/named.confで指定した、このファイルの受け持つ
ドメイン名を意味します。ここでは「funalab.ac.jp」と書いたのと同じ意味に
なります。次の「IN」はクラスと呼ばれ、プロトコルを表します。
通常は「IN」にします。次の「SOA」はレコードの種類を表します。
他に「NS」「A」「MX」があります。それ以降はレコードの種類によって書き方が
異なります。
SOAレコードでは、「マスターサーバ名」「管理者メールアドレス」「パラメータ」を
列挙します。「管理者メールアドレス」は「@」を「.」に直すことに注意します。
なお、DNS管理者のメールアドレスとして、「hostmaster」というメールエイリアスを
用いることが推奨されています。
- Serial
通し番号の意味ですが、ここでは、このファイルに変更があったかどうかの判断を
するために使われます。このファイルに変更を加えたら、必ずこの数値を前より
大きな数値にします。スレーブサーバ等は、自分が持っているデータより
シリアル番号が大きいデータをマスターサーバが持っていれば、内容が更新されたと
判断して再度、データを取得します。変更の度に数値を順に1ずつ増やす必要は無く、
前の数値より大きくすればOKです。推奨する記法は、「変更年月日+2桁の通し番号」
です。例えば、2000年8月11日に変更したら、2000081100とし、同じ日にもう一度
変更したら、最後の数字を1にします。
- Refresh
この値は、スレーブサーバがマスターサーバにシリアル番号の変更があったか
どうかをチェックしに行く時間間隔を指定します。単位は秒です。
マスターサーバの内容を一早くスレーブサーバに反映したいならば、小さめの値に
設定しますが、その場合はネットワークの帯域を多く使用するようになります。
- Retry
この値は、スレーブサーバがマスターサーバにシリアル番号を確認しに行って
接続に失敗した時、再度アクセスに行くまでの時間間隔を指定します。単位は秒です。
- Expire
この値は、スレーブサーバがマスターサーバにアクセスできない時、どの程度の期間、
今持っているデータのコピーを正当なものとして扱うかを指定します。単位は秒です。
この値は、「Retry」や「Minimum TTL」の値より大きくする必要があります。
この期間を越えてマスターサーバにアクセスできなかった場合、スレーブサーバは
マスターサーバへのアクセスは続行するものの、そのゾーンの情報は捨てて、提供
しないようにします。
- Minimum TTL
この値は、このゾーンで提供される各データがどのくらい他のネームサーバの
キャッシュに保存されるかを指定します。単位は秒です。この値は、このゾーンが
変更される頻度から考えて、できるだけ大きな値に設定します。
- ネームサーバの設定
ここでは、このゾーンを担当するネームサーバを指定します。ネームサーバを
検索するためのレコードの種類は、「NS」です。「IN」の前に何も書いていない
場合は、前のレコードの値をそのまま使います。従って、これらの行では
「funalab.ac.jp」のネームサーバを定義していることになります。
設定時にマスターとスレーブの区別はなく、両方とも同じ情報を保持していると
考え、対等に扱われます。
- メールサーバの設定
ここでは、宛先が例えば「sakai@funalab.ac.jp」の形のメールを
受け取れるホストを指定しています。メールサーバを検索するためのレコードの種類は
「MX」です。「IN」の前には何も書かれていないため、
「@funalab.ac.jp」宛のメールを受け取れるホストを指定している
ことになります。「MX」の後に記述されている数値は、「preference」と呼ばれ、
この数値が小さい方から優先的にアクセスされます。
「preference」の数値が一番小さいメールサーバは、「@funalab.ac.jp」宛ての
メールを自分宛として処理できるように設定しておく必要があります。
- IPアドレスの設定
ここでは、各ホストの名前からIPアドレスを引くための設定をします。
IPアドレスを検索するためのレコードの種類は「A」です。ホスト名で「.」で
終わらない名前には、このファイルが受け持つドメイン名が補完されます。
複数の名前を同じIPアドレスに割り当てる事も可能です。またその逆も可能です。
同じ名前で複数のAレコードがある場合、検索する度に順に違う値が返ってくる
ことになります。
- 別名の設定
あるドメイン名に別名をつけて、その別名を検索すると、もとの名前が引けるように
したい時に、この「CNAME」レコードを使います。この例では、
「www.funalab.ac.jp」という別名を定義し、
「mail.funalab.ac.jp」を指すように指定しています。
右辺でも、「.」で終わらないホスト名には、現在のドメイン名が補完されます。
特定の機能を持つサーバに名前をつけたい時などに利用します。
逆引き(192.168.0.rev)
; SOA
@ IN SOA ns.funalab.ac.jp. hostmaster.funalab.ac.jp. (
1999010101 ; Serial
28800 ; Refresh 8 hours
7200 ; Retry 2 hours
604800 ; Expire 7 days
86400) ; Minimum TTL 1 day
; nameservers
IN NS ns1.funalab.ac.jp.
IN NS ns2.funalab.ac.jp.
; addresses
1 IN PTR ns1.funalab.ac.jp.
2 IN PTR ns2.funalab.ac.jp.
3 IN PTR mail.funalab.ac.jp.
4 IN PTR host1.funalab.ac.jp.
5 IN PTR host2.funalab.ac.jp.
6 IN PTR host3.funalab.ac.jp.
7 IN PTR host4.funalab.ac.jp.
8 IN PTR host5.funalab.ac.jp.
9 IN PTR host6.funalab.ac.jp.
10 IN PTR host7.funalab.ac.jp.
.....
SOAレコード、NSレコード
この部分は正引きと同じです。
逆引きアドレス
ここでは、各IPアドレスに対応するホスト名を指定します。
IPアドレスからホスト名を検索するためのレコード情報は「PTR」です。
このゾーンファイルは 1.168.198.in-addr.arpa. ゾーンを担当しているため、例えば
行頭の「1」は「1.1.168.198.in-addr.arpa.」を意味します。つまり、最初の行は
「192.168.1.1」に対応するホスト名は「ns1.funalab.ac.jp.」
に対応します。また、このファイルでは、右辺に書くドメイン名を省略することは
できません。また、最後に「.」をつけるのを忘れないように注意します。
ローカルホスト正引き(localhost.zone)
@ IN SOA ns1.funalab.ac.jp. hostmaster.funalab.ac.jp. (
1999010101 ; Serial
172800 ; Refresh 2 days
7200 ; Retry 2 hours
1728000 ; Expire 20 days
172800 ) ; Minimum TTL 2 days
IN NS localhost.
IN A 127.0.0.1
ループバック用のローカルホスト localhost の正引きをするための
設定ファイルです。
ローカルホスト逆引き(127.rev)
@ IN SOA ns1.funalab.ac.jp. hostmaster.funalab.ac.jp. (
1999010101 ; Serial
172800 ; Refresh 2 days
7200 ; Retry 2 hours
1728000 ; Expire 20 days
172800 ) ; Minimum TTL 2 days
IN NS localhost.
0 IN PTR loopback.
1 IN PTR localhost.
ループバック用のローカルホスト localhost の逆引きをするための
設定ファイルです。