BIND(DNSサーバー)の設定

Red Hat Linuxのページトップへ

BIND公式サイトISC(Internet Software Consortium)
(DHCPサーバーと同じところ)
最新版はBIND 9.3.0rc4 (2004年9月4日)
レコードタイプ
SOA Start of Authorty ゾーンデータの保守情報
NS Name Server ネームサーバー
A Address ホスト名に対応するIPアドレス
CNAME Canonical Name ホストの別名
MX Mail Exchanger メールの配送先
PTR Pointer IPアドレスに対応するホスト名
HINFO Host Information ホストの情報(OSなど)
WKS Well-Known Service 提供するサービス
TXT Text コメント
HINFO、WKS、TXTが使われることはほとんどない ソースからのインストール bind-9.3.0rc2.tar.gz を公式サイトより入手する /usr/local/src で解凍、コンパイル、インストールする # cp bind-9.3.0rc4.tar.gz /usr/local/src # cd /usr/local/src # gtar xvfz /usr/local/src/bind-9.3.0rc4.tar.gz # cd bind-9.3.0rc4 # ./configure # make # make install 関連ファイル
/etc/named.conf 全体の設定ファイル
/var/named/named.ca 全世界のNAMEサーバを利用するための設定
/var/named/localhost.zone localhost用ゾーンファイル
/var/named/named.local localhost逆引き用ファイル
/var/named/[ドメイン名].zone 自ドメイン用ゾーンファイル
/var/named/[IPアドレス].zone アドレス逆引き用ファイル
named.conf以外は自分がわかれば、どんな名前でもよい 人によって以下のような設定にしている場合もある
named.ca named.root
[IPアドレス].zone [IPアドレス].rev
[IPアドレスを逆から記述].in-addr.arpa.zone
BINDの設定(プライマリネームサーバー)
設定例として以下を用います
自ドメイン example.com
自ドメインのホスト名 ns1.example.com
自ドメインの管理者メールアドレス root@example.com
自ドメインのアドレス 192.168.0.10
プライマリサーバーアドレス 192.168.0.2
セカンダリサーバーアドレス 192.168.0.3
プロバイダのDNSサーバーアドレス/TD> 172.16.1.1
172.16.1.2
named.confの設定
// generated by named-bootconf.pl

options {
	# ゾーンファイルなどの設置場所
	# 以降のファイルは、このディレクトリに置かれることになる
	directory "/var/named";
	/*
	 * If there is a firewall between you and nameservers you want
	 * to talk to, you might need to uncomment the query-source
	 * directive below.  Previous versions of BIND always asked
	 * questions using port 53, but BIND 8.1 uses an unprivileged
	 * port by default.
	 */
	// query-source address * port 53;

	# ゾーン転送を許可するホストのIPアドレス
	# セカンダリネームサーバーのIPアドレス
	# (ネームサーバーが1つの場合は省略)
	allow-transfer {192.168.0.3;};

	# キャッシュサーバーの設定
	# DNSへの問い合わせをキャッシュして、応答速度を向上させることができる
	# プロバイダのネームサーバーアドレスを記述する
	# (クライアントから問い合わせがあったときには)
	# (常に上位のDNSサーバ[172.16.2.1]に問い合わせを行い)
	# (自分自身では問い合わせを行わない)
 	forwarders{ 
		172.16.1.1;
		172.16.1.2;
	};
};

// 
// a caching only nameserver config
// 
controls {
	inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

	# ルートネームサーバーの場所を指定するファイル
	# (世界のDNSの場所)
zone "." IN {
	type hint;
	file "named.ca";
};

	# localhost の正引きゾーンファイルの指定
zone "localhost" IN {
	type master;
	file "localhost.zone";
	allow-update { none; };
};

	# localhost の逆引きゾーンファイルの指定
zone "0.0.127.in-addr.arpa" IN {
	type master;
	file "named.local";
	allow-update { none; };
};

	# 自ドメインの正引きゾーンファイルの指定
zone "example.com" {
	type master;
	file "example.com.zone";
};

	# 自ドメインの逆引きゾーンファイルの指定
zone "0.168.192.in-addr.arpa." {
	type master;
	file "192.168.0.zone";
};


include "/etc/rndc.key";

DNSの問い合わせを許可する
allow-query {
192.168.1.64/26; 
}; 
DNSの問い合わせを禁止する
allow-query {
!192.168.3.0/25; 
any; 
}; 
NICが複数あるとき
listen-on {
192.168.0.10; 
}; 
バージョン情報
version "???????";
ログ取得
  logging {
    channel "xfer_log" {
      file "/var/log/xfer_log" versions 3 size 1m;
      severity debug;
      print-time yes;
      print-category yes;
    };
    category xfer-out { "xfer_log"; };
  };
 

世界のネームサーバ(/var/named/named.ca)
このファイルは標準で設定済みなので、変更する必要はない
デフォルトのファイルはコチラ

ローカルのゾーンファイル(/var/named/localhost.zone) このファイルも標準で作成される
デフォルトのファイルはコチラ
named.local も標準で用意されているが設定が必要
デフォルトのnamed.local ファイルはコチラ
$TTL 86400
@	IN      SOA     example.com. root.example.com. (
                        2001101300  ; serial
                        3600    ; refresh every 1 hours
                        3600    ; retry after 1 hour
                        3600000 ; expire after 1000 hours
                        2419200 ; default ttl is 10 hours
                        )
        IN      NS      example.com.
;
1       IN      PTR     localhost.

	

自ドメインのゾーンファイル(/var/named/example.com.zone)の設定
リソースレコードは以下の形式で記述する
名前有効期限(TTL)アドレスクラスレコードタイプリソースデータ
; $Id:$
; file: example.com.zone
$TTL 86400
;
@	IN	SOA	ns1.example.com.	root.example.com. ( 
	2004081600	;Serial
	10800	;Refresh
	1800	;Retry
	4320000	;Expire
	86400	);Minimum
;;;;	NS and MX servers
	IN	NS	ns1.example.com.
	IN	MX	10 ns1.example.com.
;;;;	A RR of NS and MX
ns1.example.com.	IN	A	192.168.0.10
www			IN	CNAME	ns1.example.com.
mail			IN	CNAME	ns1.example.com.
dns			IN	CNAME	ns1.example.com.
dhcp			IN	CNAME	ns1.example.com.
	

@は、named.confで示したzone "この部分"{ に入っていたものが そのまま表される。


逆引きゾーンの設定をする。
; $Id:$
; file: 192.168.0.zone
$TTL 86400
@	IN	SOA	ns1.example.com.	root.example.com. ( 
	2004081600	;Serial
	10800	;Refresh
	1800	;Retry
	4320000	;Expire
	86400	);Minimum
;;;; DNS Server
	IN	NS	ns1.example.com.
;;;; PTR of hosts in
10			IN	PTR	ns1.example.com.
	

起動
# /etc/init.d/named restart
または
# rndc reload


実行時の実行のユーザーとディレクトリを設定する
/usr/sbin/named -u named -t /var/named/chroot

動作確認 nslookupで確認をする
$ nslookup ns1.example.com.
Server:         192.168.0.10
Address:        192.168.0.10#53

Name:   ns1.example.com
Address: 192.168.0.10

$ nslookup 192.168.0.10
Server:         192.168.0.10
Address:        192.168.0.10#53

10.0.168.192.in-addr.arpa        name = ns1.example.com.

$ nslookup -type=mx example.com.
$ nslookup -type=ns ns1.example.com.
または
$ nslookup
> set type=mx
> example.com.

サーバを明確にするには
$ nslookup - ns1.example.com
または
$ nslookup
> server ns1.example.com
	
nslookupの「Non-authoritative answer」はキャッシュからの回答を表します

以上のようにローカル内の名前参照ができれば完成
外部に公開するときは53番のポートを開放する

Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.

は『Bind では、nslookupと言うコマンドは将来無くなる予定なので dig か host コマンドを使ってください。もしこのメッセージを出したくないなら -sil[ent]をつけてnslookup を実行して下さい』というメッセージ

logの出力場所

logは、/var/log/messagesに出力されいる

# /usr/sbin/rndc status
rndc: connect failed: connection refused
rndcはリモート操作のためだけのデーモンでnamedの動作にはまったく関わらないらしい

# /usr/sbin/named-checkconf [named.conf ファイル]

# /usr/sbin/named-checkconf /etc/named.conf

# /usr/sbin/named-checkzone [ドメイン]. [ドメインのzone ファイル]

# /usr/sbin/named-checkzone example.com. /var/named/example.com.zone

FedoraCORE系で標準インストールしたbindはchrootされています
bind-chrootパッケージがインストールされているため
設定ファイルは、下記ディレクトリに置くようになります
/var/named/chroot/etc
/var/named/chroot/var/named

セカンダリネームサーバの設定
/var/named/slavesフォルダを作成する
# mkdir /var/named/slaves

BINDの実行ユーザー(Redhatの場合named)で書き込み可能にする
# chown bind:bind /var/named/slaves

named.conf を編集する
# gedit /etc/named.conf

zone "example.com" {
	type slave;
	file "slaves/example.com.zone";
	masters {192.168.0.2;};
};

zone "0.168.192.in-addr.arpa." {
	type slave;
	file "slaves/192.168.0.zone";
	masters {192.168.0.2;};
};

認証キーの作成
このままでも Bind は使用できるが、認証キーを定義しないと再起動ができない
キーの作成
# /usr/sbin/dnssec-keygen -a hmac-md5 -b 512 -n user named
(最後の『named』はBindを実行するユーザー名)

以下ファイルが生成される
公開鍵Knamed.+157+xxxxx.keynamed.conf用
非公開鍵Knamed.+157+xxxxx.privaterndc.conf用


Bind-Mysql Project
MySQL BIND SDB Driver

ぺんたん.info
あかいひ.com
IPくん.com
8枠.com - 競馬情報
galhime.com

PC Q&A||古い記事|雑学|ラーメン