つぎにスレーブサーバを構築します。

スレーブサーバはゾーンファイルを作成する必要がありません。なぜならばスレーブサーバのゾーンファイルはマスターサーバに作成したものを転送するからです。

なので、named.confを編集するだけです。

zone "dns-test.com" IN {
type slave; ★①
masters { 1.1.1.1; }; ★②
file "slaves/dns-test.com.slave.zone"; ★③
};

★①・・・Type を Slave と明記。
★②・・・マスターサーバを指定。
★③・・・ゾーンファイル名を指定。

named.confの修正が終わったらBINDを再起動させます。
起動と同時にゾーン転送が行なわれ、ゾーンファイルが自動的に作成されます。ゾーンが転送が正しく行なわれたかどうかは、ゾーンファイルを確認することで行なうことができます。



ゾーン転送が行なわれるタイミングは、SOAレコードの設定によって決定します。

しかし、それではゾーンファイルが書き換わってからゾーン転送が行なわれるまでタイムラグが発生してしまいます。そこでDNS8から「DNS NOTIFY」という手法が実装されました。

DNS NOTIFY を使用することで、ゾーンファイルに変更が加わった場合、直ちにゾーン転送が行なわれます。

①マスタサーバでゾーンファイルが変更され、読み込まれます。
②マスターサーバからスレーブサーバにNOTIFYメッセージを送信します。
③NOTIFYメッセージを受け取ったスレーブサーバはマスタサーバにゾーン転送の要求を出します。
④マスタサーバは要求がスレーブサーバからのものであることを確認し、ゾーン転送を行ないます。

マスターサーバは、NOTIYメッセージをNSレコードに登録されたサーバに対して発信します。
つまり、NOTIFYメッセージを受け取るにはそのサーバがゾーンファイル内のNSレコードに記述されている必要があります。

もし、NSレコードに記述されていないホストにNOTIFYメッセージを送りたい場合は、マスターサーバ側のnamed.confに以下を追記します。

also-notify { 1.1.1.100; };


本日はココまで!

覚えておくべきキーワードは、、、、
・スレーブサーバはゾーンファイルの作成が不要。named.confだけ。
・NOTIFYメッセージを使えば、ゾーンファイルに変更があった際に直ちにゾーン転送が行なわれる。
・NOTIFYメッセージはNSレコードに記述されているサーバに対して送信される。