BINDの設定
提供: Astarisk Works Wiki
オープンソースのDNSサーバであるBINDの設定についてのメモ
このページではLinux上で動作するBIND9を対象に説明する。
目次 |
DNSとは
Domain Name Server(DNS)とはホスト名からIPアドレス、またはIPアドレスからホスト名を知るための情報を管理し、提供するサーバである。
ホスト名からIPアドレスを調べることを正引きといい、IPアドレスからホスト名を知ることを逆引きという。
DNSのおかげでIPアドレスを覚えなくてもホスト名で他のマシンにアクセス可能となるし、IPアドレスが変更されてもDNSへの登録を変更すれば、クライアント側からは同じホスト名でアクセスを続けることが可能となる。
このページの説明が前提とするサンプルネットワーク
BINDのインストール
各ディストリビューションともパッケージが用意されているので、特に問題がなければそれをインストールする。
ソースからインストールする場合は次のページからダウンロードできる。BIND | Internet Systems Consortium
設定ファイルの種類
BINDの設定に必要となるファイルの種類は次の表の通り。
この表のうち1以外はnamed.confの設定次第で任意のファイル名をつけることができる。このページでは説明しにくいのでこのファイル名で説明する。
| No. | ファイル名 | 説明 |
|---|---|---|
| 1 | named.conf | BINDの動作を左右する設定ファイル |
| 2 | named.ca | ルートサーバの情報を設定する。次のURLからダウンロードできる。 ftp://rs.internic.net/domain/named.root |
| 3 | local.zone |
ループバックアドレスの正引きゾーンファイル。localhost→127.0.0.1が引けるように設定する。 |
| 4 | local.rev | ループバックアドレスの逆引きゾーンファイル。127.0.0.1→localhostが引けるように設定する。 |
| 5 | sample.zone | 管理するドメインの正引きゾーンファイル |
| 6 | sample.rev | 管理するドメインの逆引きゾーンファイル。 |
BINDをDNSキャッシュサーバとしてのみ利用するなら、1から4のファイルを設定すればよい。
管理するドメインのゾーンサーバとして利用するなら、必要に応じて5,6の設定を用意する。
named.confの設定
named.confはBINDの動作を左右する設定ファイルである。
BINDの設定は複数のファイルに分けて行うが、namd.confにそれぞれどのファイルに設定するか定義する。
namd.confの構造はステートメントを基本構成要素とする。ステートメントとは {〜}; で括られたブロックのこと。
ちなみに、#、//から行末までと/*〜*/で囲われた部分はコメントとなる。
ステートメントはacl、options、zoneの3種類あり、optionsとzoneは必須。
以下は設定例。
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
// forwarders {
// 0.0.0.0;
// };
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
// ルートサーバの情報の設定
zone "." {
type hint;
file "named.ca";
};
// 次の2つのzoneステートメントはループバックアドレスの正引き、逆引き設定
zone "localhost" {
type master;
file "local.zone";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "local.rev";
};
//次の2つのzoneステートメントはexmaple.comドメインの正引き、逆引き設定
zone "example.com" {
type master;
file "example.zone";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "example.rev";
};
named.confは一つのファイルに書いてもよいし、次のように他のファイルをインクルードすることもできる。
include "/etc/bind/named.conf.local";
optionsの設定
optionsではBINDの動作についての設定を行う。
主な設定項目を次の表に示す。
| 設定項目 | 説明 |
|---|---|
| version | |
| directory |
namedデーモンのワークディレクトリを指定する。 ここで指定したディレクトリにゾーンファイルを置いておけば、相対パスで指定することができる。 |
| recursion |
再帰的な問い合わせを有効とするかどうか。 キャッシュサーバとして利用する場合はyes、そうでないときにはnoを指定する。 |
| pid-file |
namedデーモンのPIDファイルを指定する。 OSにもよるが通常は "/var/run/named.pid"もしくは "/etc/named.pid"となる。 |
他の設定はBIND8の解説になるがBIND options Statement日本語版に詳しく説明されている。
named.caの準備
ルートサーバの情報は時々変更されるが、BIND9は起動時にルートサーバに接続し、このファイルの内容を自動的に最新の情報に置き換えるため、内容の変更は気にしなくてよい。
また、キャッシュサーバとしての機能を利用しないならこのファイルは不要。
ループバックアドレスの正引き、逆引きのゾーンファイル
localhost=>127.0.0.1、127.0.0.1=>localhostを引くための設定。 前述のnamed.confの例ではそれぞれlocal.zone 、local.revとして設定している。 どちらも一度設定すれば、変更することは無いであろう設定となる。
設定内容の説明は後述。
ループバックアドレスの正引き設定(local.zone)の例
; BIND data file for local loopback interface $TTL 604800 @ IN SOA localhost. root.localhost. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL @ IN NS localhost. @ IN A 127.0.0.1 @ IN AAAA ::1
ループバックアドレスの逆引き設定(local.rev)の例
; BIND reverse data file for local loopback interface $TTL 604800 @ IN SOA localhost. root.localhost. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL @ IN NS localhost. 1.0.0 IN PTR localhost.
ゾーンの正引き、逆引き設定
ここからがDNSとしての設定の肝心な部分。名前解決したいドメインのホストを具体的に設定していく。
正引きファイルの例
$TTL 86400
@ IN SOA dns.sample.com. root.sample.com. (
2009090701 ; serial
3600 ; refresh 1hr
900 ; retry 15min
604800 ; expire 1w
86400 ; min 24hr
)
IN NS dns.sample.com.
IN MX 10 mail.sample.com.
dns IN A 192.168.1.100
www IN A 192.168.1.111
mail IN A 192.168.1.222
逆引きファイルの例
$TTL 86400 @ IN SOA dns.sample.com. root.sample.com. ( 2009090701 ; serial 3600 ; refresh 1hr 900 ; retry 15min 604800 ; expire 1w 86400 ; min 24hr ) IN NS dns.sample.com. 100 IN PTR dns.sample.com. 111 IN PTR www.sample.com. 222 IN PTR mail.sample.com.
レコードの種類
ゾーンファイルに定義するレコードの種類は次の通り
| 項目 | 説明 |
|---|---|
| SOA | ゾーンのオーソリティ情報を指定する。 |
| NS | ドメイン内のネームサーバを指定する |
| MX | ドメイン内のメールサーバを指定する |
| A | ホストに対するIPアドレスを指定する |
| CNAME | |
| AAAA | |
SOAレコード
SOAレコードには管理者の情報やスレーブサーバとのやりとりに必要な情報=オーソリティ情報を設定する。
下の例で緑字の部分はドメイン管理者のメールアドレスを設定する。この際、@は . (ピリオド)に置き換える。続く括弧()の中がSOAレコードの本体。
@ IN SOA dns.sample.com. root.sample.com. (
2009090701 ; serial
3600 ; refresh 1hr
900 ; retry 15min
604800 ; expire 1w
86400 ; min 24hr
)