「スレーブ」サーバーは、ゾーンに関するデータのコピーを保持しています。 マスターサーバーはそのデータをスレーブサーバーに送り、権限を任せます。クライアントは、DNS 情報をスレーブサーバーに照会できます。スレーブサーバーを使用することによって、負荷が複数のマシンに分散され応答時間を短縮してネットワークのオーバーヘッドを減らすことができます。また、スレーブサーバーは、マスターサーバーが使用できないときに代わりの機能を果たします。
スレーブサーバーは、in.named の起動時に所定のゾーンに関するすべてのデータをマスターサーバーに要求します。以降、スレーブサーバーはデータベースを更新する必要があるかどうかを調べるためにマスターサーバーを定期的にチェックします。最新のゾーンデータベースをマスターサーバーからスレーブサーバーに送信するプロセスを「ゾーン転送」と呼びます。このため、スレーブサーバー上のデータファイルを変更するのではなく、ゾーンのマスターサーバー上のデータファイルを変更します。その後、スレーブサーバーのファイルがマスターサーバーから更新されます。
サーバーを所定のゾーンのスレーブサーバーに指定する場合は、そのサーバーの named.boot ファイルに「スレーブ」レコードを作成します。別々のレコードで、サーバーをそのゾーン、逆アドレスドメイン、およびループバックホストのスレーブサーバーとして指定できます。
この「スレーブ」レコードは、次の3 つのフィールドで構成されます。
第 1 フィールド - サーバーを「スレーブ」サーバーとして指定する
第 2 フィールド - 対象のゾーンを指定する
第 3 フィールド - そのゾーンのマスターサーバーの IP アドレスを指定する。スレーブサーバーはマスターサーバーから正規データを取得する。
「スレーブ」レコードでは、必須フィールドに続けて 1 つまたは複数の任意指定のフィールドを設けることができます。任意指定のフィールドには次の種類があります。
「スレーブサーバー」
マスターサーバーの IP アドレスに続けて、他のスレーブサーバーの IP アドレスを指定できます。この指定により、スレーブサーバーが情報を入手できるソースが増えます。一方、状況によっては、スレーブサーバーの IP アドレスを指定することで、パフォーマンスが低下することも考えられます (IP アドレスがマルチホームマスターサーバーの別のネットワークアドレスである場合を除く)。
「バックアップファイル」
マスターサーバー (および任意指定のスレーブサーバー) の IP アドレスに続けて、バックアップ用 hosts ファイルの名前を指定できます。バックアップファイル名を指定すると、スレーブサーバーはそのバックアップファイルからデータをロードし、続いてマスターサーバー (および任意指定のスレーブサーバー) をチェックしてバックアップファイルのデータが最新のものであるかどうかを確認します。その結果、最新ではないことが分かった場合は、マスターサーバーから受け取った情報に基づいてバックアップファイルのデータが更新されます。
次に示す起動ファイルの行は、あるサーバーを doc.com ゾーンとその逆アドレスドメインのスレーブサーバーとして使うことを示します。さらに、そのスレーブサーバーが IP アドレス 172.16.0.1 のマスターサーバーから正規データを受け取り、サーバー 172.16.0.2 をゾーンデータのスレーブ情報源として使い、最初に doc.com.bakup ファイルからデータをロードすることを示します。
slave doc.com 129.146.168.119 192.146.168.38 doc.com.bakup slave 4.0.32.128.in-addr.arpa 129.146.168.119 |
この章で紹介するさまざまなサンプルファイルの中で、上記のサンプル起動ファイル行はサーバー dnsslave (IP アドレス 192.146.168.38 の sirius マシンのエイリアス) の起動ファイルに対応しています。
1 台のサーバーは、1 つまたは複数のゾーンのマスターサーバーとして機能でき、さらに 1 つまたは複数のゾーンのスレーブサーバーとしても機能できます。起動ファイル内のエントリの組み合わせによって、サーバーがマスターサーバーになるかスレーブサーバーになるかが決まります。