DNS 用のネットワークを構成する場合は、クライアントとサーバーを設定する必要があります。
DNS サーバーを設定する前に、クライアントを設定します。
/etc/resolv.conf ファイルを作成します。
次に、doc.com ドメインのクライアント (非サーバー) マシン用の簡単な resolv.conf ファイルの例を示します。
; Sample resolv.conf file for the machine polaris domain doc.com ; try local name server nameserver 10.0.0.1 ; if local name server down, try these servers nameserver 192.168.16.6 nameserver 192.168.16.7 ; sort the addresses returned by gethostbyname(3c) sortlist 130.155.160.0/255.255.240.0 130.155.0.0 |
/etc/resolv.conf ファイルの最初の行では、ドメイン名を次の書式で指定します。
domain domainname |
ここで、domainname は インターネット管理組織(このドキュメントの執筆時点では InterNIC。日本では JPNIC) に登録されている名前です。
ドメイン名の末尾にスペースまたはタブを使うことはできません。ドメイン名の最後の文字を入力したら、必ずキャリッジリターンで強制改行してください。
2 行目では、ループバックネームサーバーを次の書式で指定します。
nameserver 10.0.0.1 |
それ以降の行では、DNS マスターネームサーバー、DNS スレーブネームサーバー、またはキャッシュ専用ネームサーバー の IP アドレスを最大 3 つまで指定します。4 つ以上指定することはできません。各行の書式は次のとおりです。
nameserver IP_address |
IP_address には、マスターDNS ネームサーバーまたはスレーブ DNS ネームサーバーの IP アドレスを指定します。リゾルバは、必要な情報が見付かるまで、ここに指定されている順番どおりにネームサーバーを探していきます。
/etc/resolv.conf ファイルの 5 行目では、アドレス sortlist を次の書式で指定します。
sortlist addresslist |
addresslist は、gethostbyname(3c) によって戻されるアドレスのソート順序を示します。上記の列では、gethostbyname は、IP アドレス 130.155.0.0 より先に 1 組のネットマスク 130.155.160.0/ 255.255.240.0 を戻します。
/etc/nsswitch.conf ファイルを変更します。
「NIS」。エンタープライズレベルで主として使っているネームサービスが NIS で、設定に問題がない場合、DNS はすでに使用可能になっています。
「ファイルベース」。エンタープライズレベルで主として使っているネームサービスが /etc ファイルベース、または NIS+ の場合は、次の手順に従います。
スーパーユーザーになります。
/etc/nsswitch.conf ファイルを開きます。
DNS は、ホスト情報のソースとして、「唯一の」ソースとしても「追加の」ソースとしても使用できます。/etc/nsswitch.conf の hosts 行を次のいずれかのように変更して、DNS をホスト情報のソースとすることを指定します。
hosts: files dns |
または
hosts: nis dns [NOTFOUND=return] files |
または
hosts: dns nis [NOTFOUND=return] files |
NIS クライアントの場合は、上記の指定をしないでください。この指定をすると、名前を見つけることができない場合に 2 度 DNS から検索することになります。
ホスト情報のソースとして DNS を指定します。
ファイルを保存してリブートします。
スーパーユーザーになります。
サーバーを DNS クライアントとして設定します (サーバーの resolv.conf ファイルの設定も含む)。詳細については、「DNS クライアントの設定」を参照してください。
起動ファイルを設定します。詳細については、「起動ファイルの例」を参照してください。
データファイルを設定します。次の 4 つのデータファイルを設定する必要があります。
named.ca
hosts
hosts.rev
named.local
サーバーの初期設定を行います。詳細については、「サーバーの初期設定」を参照してください。
サーバーをテストします。詳細については、「インストール結果の確認」を参照してください。
DNS の最も一般的な役割は、ローカルなネットワークをインターネットに接続することです。インターネットに接続するためには、親ドメインの管理者にネットワークの IP アドレスを登録してもらう必要があります。管理者は、ネットワークの地理的な位置と親ドメインの種類によって異なります。ドメイン管理者にネットワークを登録してもらう方法については、本書では説明をしていません。
マスターサーバーには、次の 2 つの種類があります。
「ゾーンマスターサーバー」。各ゾーンには、そのゾーンの「マスター」マスターサーバーが 1 つあります。ゾーンの「マスター」マスターサーバーは、そのゾーンの「正規」サーバーです。
「ゾーンスレーブサーバー」。 ゾーンには、1 つ以上の「スレーブ」マスターサーバーがあります。「スレーブ」マスターサーバーは、その DNS データをゾーンのマスターサーバーから入手します。
サーバーをある特定のゾーンのマスターサーバーに指定する場合は、そのサーバーの named.boot ファイルに 3 つのマスターレコードを作成します。
ゾーンの「マスター」レコードを作成します。
このレコードは、そのサーバーをマスターサーバーとして使用するゾーンを指定し、正規の hosts ファイルの場所を示すものです。この「マスター」レコードは、次の 3 つのフィールドで構成されます。
第 1 フィールド - サーバーを「マスター」サーバーとして指定する
第 2 フィールド - 「マスター」サーバーが機能するゾーンを指定する
次に示す起動ファイルの行は、あるサーバーを doc.com ゾーンで「マスター」サーバーとして使い、正規の hosts ファイルとして db.doc を使うことを示すものです。
master doc.com db.doc |
このレコードは、そのサーバーを逆アドレスマッピング (つまり、doc.com の逆アドレスドメイン) の「マスター」サーバーとして使うことを指定し、正規の hosts ファイルの場所を示すものです。この「マスター」レコードは、次の 3 つのフィールドで構成されます。第 1 フィールドではサーバーを「マスター」サーバーとして指定します。第 2 フィールドでは対象のゾーンを指定します。第 3 フィールドでは hosts.rev ファイルを指定します。
あるゾーンにおける逆アドレスドメインは、そのゾーンにおける IP アドレスを逆にならべ、最後に in-addr.arpa を配したものです。たとえば、doc.com ゾーンの IP アドレスが 10.0.0. だとすると、逆アドレスドメインは 0.0.10.in-addr.arpa になります。
次に示す起動ファイルの行は、そのサーバーを doc.com ゾーンの逆アドレスドメインで「マスター」サーバーとして使い、正規の hosts ファイルとして doc.rev を使うことを示すものです。
master 0.0.10.in-addr.arpa doc.rev |
ローカルループバックインタフェースまたはホストの逆アドレス関連の「マスター」レコードを作成します。
このレコードは、そのサーバーをループバックホストの「マスター」サーバーとして使うことを指定し、正規の hosts ファイルの場所を示すものです。この「マスター」レコードは、3 つのフィールドで構成されます。第 1 フィールドではサーバーを「マスター」サーバーとして指定します。第 2 フィールドではループバックホストの逆アドレスを指定します。第 3 フィールドでは hosts ファイルを指定します。
ループバックホストは常に、0.0.10.in-addr.arpa といった書式で識別されます。
次に示す起動ファイルの行は、そのサーバーをループバックホストの逆アドレスドメインで「マスター」サーバーとして使い、正規の hosts ファイルとして named.local を使うことを示すものです。
master 0.0.10.in-addr.arpa named.local |
「スレーブ」サーバーは、ゾーンに関するデータのコピーを保持しています。 マスターサーバーはそのデータをスレーブサーバーに送り、権限を任せます。クライアントは、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 つまたは複数のゾーンのスレーブサーバーとしても機能できます。起動ファイル内のエントリの組み合わせによって、サーバーがマスターサーバーになるかスレーブサーバーになるかが決まります。
DNS データのキャッシュを保持するという意味では、すべてのサーバーがキャッシュサーバーであるといえます。キャッシュ専用 (スタブ) サーバーは、in-addr.arpa. ドメイン以外のどのゾーンのマスターサーバーでもないサーバーです。
キャッシュ専用サーバーは正規データは一切保持しません。キャッシュ専用サーバーは照会を行い、in.named ファイルにリストされているホストを照会して必要な情報を探します。つまり、キャッシュ専用サーバーは、正規のネームサーバーと同様の照会を行いますが、正規データそのものは一切保持しません。
次に、キャッシュ専用サーバーの起動ファイルの例を示します。
; ; Sample named.boot file for caching-only name server ; ; type domain source file or host ; directory /var/named cache . named.ca master 0.0.127.in-addr.arpa named.local |
サーバーをキャッシュ専用サーバーとして指定するための行は特に必要ありません。起動ファイル内に slave または master など、権限に関する行がないということが、キャッシュ専用サーバーであると判断する根拠になります。
ただし、以下が必要です。
起動ファイルの directory 行
起動ファイルの master 0.0.127.in-addr.arpa 行
起動ファイルの cache.named.ca 行