DNS

DNSとは

DNS(Domain Name System)とはネットワークにおける名前解決のためのシステムである。
具体的にはインターネットドメイン名(階層化された名前空間)とIPアドレスをマッピングする。

BIND

DNSの実装として標準的なものとしてBIND(Berkeley Internet Name Domain)がある。
BINDには4.Xと8.Xの2つのバージョンがあるが、 セキュリティが強化されているなどの理由で8.Xが使用されることが多い。
実際にネームサーバとして実行されるのは、UNIXではnamedというデーモンである。

ネームサーバの動作モード

ネームサーバの動作モードにはマスターサーバー・スレーブサーバー・キャッシュサーバーの3種類がある。
以下に出てくるゾーンとはネームサーバーが責任を持って名前解決を行う範囲(サブドメイン)のことである。

マスターサーバー
あるゾーンを管理するサーバーでローカルディスクにデータベースを持っているもの。
プライマリサーバーとも言う。
スレーブサーバー
マスターサーバーからゾーン情報をネットワーク経由でコピーしてリクエストに答えるサーバー。
スレーブサーバーは何台でも良い。
セカンダリサーバーとも言う。
キャッシュサーバー
他のネームサーバーから得た答えをキャッシュしておくサーバー。
マスターサーバー・スレーブサーバーもキャッシュサーバーになれる。

マスターサーバ・スレーブサーバーの返す答えは権威のある(Authoritative)応答、キャッシュサーバーの返す答えは権威のない(Non-authoritative)応答である。
なお、通信時にはネームサーバーは53番ポート、クライアント(nslookupなど)は1024番以降のポートを使用し、ゾーン転送時はTCP、検索時はUDPまたはTCPを使用する。

ネームサーバの設定ファイル

ネームサーバ(named 8.X)の設定ファイルはnamed.confである。

設定ファイルの項目

options
namedの動作モード、各種ファイルの存在するディレクトリ
zone
ゾーンの定義
zone (ゾーンのドメイン名) { ゾーンに関する設定 }

設定ファイルの例

options {
	directory "/etc/namedb";
};
zone "." {
	type hint;
	file "named.root";
};
zone "bbb.aaa.co.jp" {
	type master;
	file "bbb.db";
};
zone "aaa.co.jp" {
	type slave;
	master 192.168.10.1;
};

データベースファイル

データベースファイルは以下の形式のテキストファイルである。
また、データベースファイル内のドメイン名はFQDN(Fully Qualified Domain Name - さいごに.がつく)である。

(名前) (クラス) (レコード種別) (パラメータ)

(名前)
ドメイン名
@が(名前)として使用されているとnamed.confで指定されたゾーンのドメイン名(FQDN)になる。
(名前)が省略されていると、その前のレコードに書かれたドメイン名になる。
(クラス)
データのクラス
インターネットの場合INになる。
(レコード種別)
レコードのタイプ
(パラメータ)
レコードに応じたパラメータ

レコードの種類

基本的なレコードは以下の通り。

SOA
Start Of Authority
ゾーン定義の開始。
ゾーン関連のパラメータを定義する。
シリアル番号
データベースファイルの履歴
この番号がスレーブサーバーの持っている番号より大きければゾーン転送が行われる。
どんな番号でも良いが、更新した日付にしておくとわかりやすい。
リフレッシュ時間
データの更新があったかどうかをスレーブサーバーがチェックする間隔。(秒)
再試行時間
トラブルによってリフレッシュが行えなかった場合、どれだけ後に再試行するか。(秒)
最大有効時間
チェックができない時にスレーブサーバー上のデータを無効にする時間。(秒)
生存時間
TTL(Time To Live)
他のネームサーバーで読み込まれたデータベースがどれだけの時間有効かを示す時間。(秒)
NS
Name Server
ゾーンを管轄する権威あるネームサーバの名前。
A
Address
(名前)に対するIPアドレスの指定。
(名前)がピリオドで終っていない場合はゾーンを表すドメイン名(@)が付加される。
CNAME
Canonical Name
別名定義。

データベースファイルの例

@	IN	SOA	ns.bbb.aaa.co.jp.	postmaster.aaa.co.jp. {
		2000081101		; シリアル番号
		10800			; リフレッシュ時間
		3600			; 再試行時間
		604800			; 最大有効時間
		86400			; 生存時間
		}
	IN	NS	ns.bbb.aaa.co.jp.
	IN	NS	ns.aaa.co.jp.
ns	IN	A	192.1.1.1
mail	IN	A	192.1.1.2
www	IN	A	192.1.1.3
ftp	IN	CNAME	www.bbb.aaa.co.jp.


Home | Index
abe@injapan.net