InterNIC はドメイン登録時に2台のDNSサーバーを要求します。それは言うまでもなく、フォールトトレランス(耐障害性)を維持するためです。筆者の環境では、1台目のDNSサーバーは自宅内にあり、2台目はプロバイダが担当しています。これによって、どちらかのDNSサーバーがダウンしてもクライアントからの名前解決要求に対応することができるようになっています。
けれども、外向けのDNSサーバーはこれで問題ありませんが、LAN内 にプライマリDNSサーバーしか設置していない場合は、プライマリがダウンした瞬間にLAN内にあるクライアントマシンからの名前解決要求に応じることができなくなくなり、設定によってはインターネットに接続することすらできなくなります。そこで、プライマリDNSサーバーがダウンした時に備えて、セカンダリDNSサーバーも構築しておきましょう。そうすることで、Linux
を再起動したりした場合にも、正常に名前解決を行うことができるようになります。
|
|
■BIND9.2.3 for Windows のダウンロード
■Windows版BINDを使用する
筆者の環境では、PCの台数の都合上、2台以上のPCをLinux 専用のマシンと化すことが不可能なので、常に稼動しているWindowsサーバーにBINDをインストールし、セカンダリDNSサーバーとして運用していきます。設定方法は、Linux
版とほとんど同じなので、あとはセカンダリ用にnamed.conf を編集すれば容易に導入することができるでしょう。
■BIND9.2.3 for Windows のインストール
インストールは極めて簡単です。BIND9.2.3.zip を解凍したディレクトリ内に、
BINDInstall.exeというファイルがあるのでダブルクリックします。下記画面が現れたら、「Install
」をクリックします。インストールする場所は変更する必要はないでしょう。右画面はインストール完了画面です。
■サービスに追加されたかどうか確認する
「コントロールパネル」→「管理ツール」→「コンピュータの管理」から「サービスとアプリケーション」→「サービス」でISC
BINDがサービスに追加されているかどうか確認します。ここでは、まだBINDを起動しない状態にしておきます(もっとも起動できないと思いますが…)。
■環境変数の追加
インストールしたBINDは、C:\WINNT\system32\dns\bin に格納されています。デフォルトでは、etcとbin
ディレクトリが作成され、etc ディレクトリは空っぽの状態になっています。bin には、dig.exe、host.exe、rndc-confgen.exe、nslookup.exeなど、御馴染みの実行ファイルがインストールされています。コマンドプロンプトからcd
コマンドで移動するのは面倒くさいので環境変数にPATHを追加しておきます。「コントロールパネル」→「システム」→「詳細」→「環境変数」でPathを反転させて「編集」をクリックします。「変数値」に「;C:\WINNT\system32\dns\bin」と追記しておくと、コマンドプロンプト上でわざわざディレクトリを移動する必要がなくなります。
■各ファイルの格納先
|
■ブートファイル |
C:\winnt\system32\dns\etc\named.conf |
|
■ヒントファイル |
C:\winnt\system32\dns\etc\named.ca |
|
■ループバック正引き参照ゾーン |
C:\winnt\system32\dns\etc\localhost.zone |
|
■ループバック逆引き参照ゾーン |
C:\winnt\system32\dns\etc\0.0.127.in-addr.arpa.zone |
|
■named.conf の作成
named.conf の記述方法は基本的にはプライマリDNSサーバーのものと大差はありませんが、type
をmaster ではなく、slave にする必要があります。
masters には、プライマリDNSサーバーのIPアドレスを入力します。用意しなければならないゾーンデータファイルは、named.ca
とローカルホスト正引き/逆引きの、localhost.zoneと0.0.127.in-addr.arpa.zone
のみです。これらは、共通ファイルとなるのでLinuxからファイルをコピーしてetcディレクトリに格納しておきます。その後で、0.0.127.in-addr.arpa.zoneのネームサーバーの値だけセカンダリDNSサーバーのものに変更しておいてください。
その他、kororo.jp用の正引き/逆引き設定ファイルに関しては、
プライマリDNSサーバーからゾーン転送されるため、初期状態で用意する必要はありません。但し、ゾーン転送された後のファイル名はセカンダリDNSサーバー側で指定しておく必要があり、それを、
file
"kororo.jp.zone.bak"; のように指定しておくことで、そのファイル名でetcディレクトリにコピーされるようになります。
acl localnet {
172.16.50.0/27;
172.16.51.0/28;
127.0.0.1;
};
logging {
channel "default-log" {
file "C:\WINNT\system32\dns\log\default.log" versions 3 size 5M;
severity debug;
print-time yes;
print-severity yes;
print-category yes;
};
};
options {
directory "C:\WINNT\system32\dns\etc";
allow-query { localnet; };
allow-transfer { localnet; };
version "no version";
recursion yes;
};
zone "." {
type hint;
file "named.ca";
};
zone "localhost" {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa"{
type master;
file "0.0.127.in-addr.arpa.zone";
};
zone "kororo.jp" {
type slave;
masters {
172.16.50.2;
};
file "kororo.jp.zone.bak";
};
zone "50.16.172.in-addr.arpa" {
type slave;
masters {
172.16.50.2;
};
file "50.16.172.in-addr.arpa.zone.bak";
};
zone "51.16.172.in-addr.arpa" {
type slave;
masters {
172.16.50.2;
};
file "51.16.172.in-addr.arpa.zone.bak";
};
|
|
最初は以下図に示す4つのファイルを格納しておきます。
■BINDの起動
「コントロールパネル」→「管理ツール」→「コンピュータの管理」から「サービスとアプリケーション」→「サービス」でISC
BINDを右クリックし、「開始」をクリックしてBINDを起動させます。きちんとゾーン転送が行われていれば、起動した時点でetcディレクトリにプライマリDNSサーバーからゾーンデータファイルがコピーされます。また、その他にもnamed.pidも作成されます。
BIND起動時に以下図のようなエラー画面が現れた場合は、named.conf の記述が間違っているか、ファイルが存在しないなどの原因が考えられます。もう一度、named.conf
をよく確認してから再度起動してください。また、イベントビューアを閲覧すれば起動できなかった原因などがかかれているため、原因の特定に利用してください。
◎イベントビューア [ アプリケーション ]
また、BINDをインストールしたPCのIPアドレスをTCP/IPのDNS欄に追加しておいてください。