トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

UNIX/Linux Knowledge

bind

http://www.isc.org/

 いわずと知れた DNS サーバプログラムの定番。

方針

 使用するバージョンは BIND 8 系です。

 今回の設定条件は以下のように想定します。

  • DNS サーバ名は "server" とし、IP アドレスは 192.168.1.1 とする。
  • ドメイン名は "yourdomain.net" とし、このネットワークに対する名前解決を行う。
  • 解決できない名前に関しては、すべて上位 DNS サーバに無条件で問合せを行う。
  • また解決できない名前を問い合わせる上位 DNS サーバは 10.1.1.1 と 10.1.1.2 とする。
  • DNS キャッシュは持たず、直接トップドメイン DNS に問合せも行わない。
  • クライアントからの要求によるテーブルの書き換えは行わない。

設定

/etc/named.conf

 DNS サーバの動作条件を規定する設定ファイルです。BIND 4 系列の同様のファイル /etc/named.boot ファイルがあれば、それからコンバートする( /usr/sbin/named-bootconf コマンド)こともできます。

 今回の設定条件ですと以下のようになります。

Options {
  directory  "/var/named";

  forwarders {
    10.1.1.1;
    10.1.1.2;
  };
  forward only;
};

zone "0.0.127.in-addr.arpa" in {
  type master;
  file "localhost.rev";
  allow-update{ none; };
}

zone "yourdomain.net" in {
  type master;
  file "yourdomain.net.db";
  allow-update{ none; };
}

zone "1.168.192.in-addr.arpa" in {
  type master;
  file "192.168.1.rev";
  allow-update{ none; };
}

/var/named 以下の情報ファイル

ループバックの逆引きファイル localhost.rev

 このファイルの中身に関しては、基本的にいかなる設定条件でもほぼ同じです *1

$TTL 604800
@  IN SOA localhost.  root.localhost. (
   1996010101 ; serial
   10800      ; refresh
   1800       ; retry
   3600000    ; expire
   259200 )   ; minimum
   IN NS localhost.
localhost.      IN A 127.0.0.1

正引きファイルの例 yourdomain.net.db

 最初の数行はおまじないだと思ってください。重要なのは最初の一行目と七行目です。また逆引きファイルでも同様ですが bind の情報ファイル中ではドメインの記述はすべて最後に . (ドット)が必要です。

 八行目の記述は、今回の設定の前提とは関係ないですが、このドメインのマスターメールサーバを指定しています。sendmail など MTA(Mail Transfer Agent) を設定する際、ホスト名を含まないドメイン名でメールを受け付ける場合に必要になります。

$TTL 86400
@  IN  SOA  server.yourdomain.net.  root.server.yourdomain.net. (
  1       ; Serial
  3600    ; Refresh
  300     ; Retry
  3600000 ; Expire
  3600 )  ; Minimum
  IN  NS    server.yourdomain.net.
  IN  MX 10 server.yourdomain.net.
;
server  IN A     192.168.1.1
www     IN CNAME server
;
DHCP01  IN A     192.168.1.10
DHCP02  IN A     192.168.1.11
DHCP03  IN A     192.168.1.12

 最初の数行以外は、基本的には、サーバ名(クライアント名)に対して、IP アドレスを列記するだけです。CNAME エントリはひとつのサーバ(クライアント)に対して別名を与える場合の例です*2

逆引きファイルの例 192.168.1.rev

 逆引きファイルでは、正引きファイルでサーバ名(クライアント名)に列記した IP アドレスに対して、サーバ名(クライアント名)を列記します。エントリの最初の数字は、IP アドレスの最後の 8 ビットです。

$TTL 86400
@  IN  SOA  server.yourdomain.net. root.server.yourdomain.net. (
  1       ; Serial
  3600    ; Refresh
  300     ; Retry
  3600000 ; Expire
  3600 )  ; Minimum
  IN  NS   server.yourdomain.net.
;
1	IN PTR	server.yourdomain.net.
;
10	IN PTR	DHCP01.yourdomain.net.
11	IN PTR	DHCP02.yourdomain.net.
12	IN PTR	DHCP03.yourdomain.net.

起動

 以上のファイルが用意できれば、 bind の設定は終了です。

/sbin/services named start

 とすれば、bind が起動します。

セカンダリサーバの設定

 セカンダリサーバを設定する場合、設定ファイル /etc/named.conf だけが違います。セカンダリとして設定するドメインの部分の設定だけが違います。マスターサーバを 192.168.1.1 として、セカンダリサーバは /etc/named.conf の以下のゾーン設定だけを変更すればよいだけです。

:(略)
zone "home.ellinikonblue.com" {
        type slave;
        file "yourdomain.net.db.bak";
        masters { 192.168.1.1; };
};

zone "1.168.192.in-addr.arpa" {
        type slave;
        file "yourdomain.net.rev.bak";
        masters { 192.168.1.1; };
};

備考

 最近のバージョンの bind では、設定ファイルの位置や構成が変わっていることがあります。

 例えば、Debian GNU/Linux 4.0 で bind を設定する場合などは、named.conf ファイルは三分割されており、それぞれ以下のような役割になっています。

/etc/bind/named.conf普遍的なローカルの設定(ループバックアドレスなど)
/etc/bind/named.conf.optionsオプションの設定(キャッシュや forward の設定など)
/etc/bind/named.conf.localローカル設定

 このような場合、本体の named.conf は変更せず、他のオプション設定、ローカル設定のファイルだけを変更するようにした方がよいでしょう。

リンク集



*1 記憶があいまいですが Vine Linux の場合、 bind のパッケージの中に含まれていたと思います
*2 最近は CNAME を使うこと(特に一つのサーバに対して複数使うこと)を推奨しないようです。一つのアドレスに複数のホスト名を与えるときはそのまま A レコードを列挙すればよいようです。

© 2004-2011 Ellinikonblue.com All Rights Reserved.