第14章 DNS サーバー

DNS (ドメインネームシステム) は、ホスト名とその IP アドレスの関連付けに使用される分散型データベースシステムです。ユーザーにとっては、ネットワーク上のマシンを名前で参照できるという利点があります。これは、通常、数字で表されるネットワークアドレスより簡単になります。システム管理者にとっては、DNSサーバー (ネームサーバー とも呼ぶ) を使用すると、名前ベースのクエリーに影響を与えることなくホスト用の IP アドレスを変更できるようになります。DNS データベースは、ドメイン名への IP アドレスの解決にのみ使用されるわけではなく、DNSSEC が導入されるにつれてますます幅広く使用されるようになります。

14.1. DNS の概要

DNS は通常、特定のドメインに対して権限を持つ 1 つ以上の集中型サーバーを使用して実装されています。クライアントホストがネームサーバーから情報を要求すると、ネームサーバーは通常ポート 53 に接続します。その後、ネームサーバーは要求された名前を解決しようとします。ネームサーバーが再帰ネームサーバーとして設定されていて、権限のある回答がない場合、または以前のクエリーからキャッシュされた回答がない場合は、ルートネームサーバー と呼ばれる他のネームサーバーにクエリーを行い、問題の名前に対して権限のあるネームサーバーがどれか判断します。その後、権限のあるネームサーバーにクエリーを行い、要求した名前を取得します。再帰が無効となっている、権限のあるネームサーバーとして設定されているものは、クライアント向けの検索を行いません。

14.1.1. ネームサーバーゾーン

DNS サーバーでは、すべての情報が リソースレコード (RR) と呼ばれる基本的なデータ要素に保存されます。リソースレコードは、RFC 1034 で定義されています。ドメイン名は、ツリー構造に構造化されています。この階層の各レベルは、ピリオド (.) で分けられます。たとえば、. で示される root ドメインは、DNS ツリーの根にあたり、レベル 0 になります。トップレベルドメイン (TLD) と呼ばれるドメイン名 com は、root ドメイン (.) の子になるので、階層のレベル 1 になります。ドメイン名 example.com は、階層のレベル 2 になります。

例14.1 シンプルなリソースレコード

以下は、シンプルな リソースレコード (RR) の例になります。
example.com.      86400    IN         A           192.0.2.1
ドメイン名 example.com は、PR の 所有者 です。86400 の値は、time to live (TTL) です。Internet systemを意味する IN の文字は、PR の class を示しています。A の文字は PR の type を示しています (この例では、ホストアドレス)。ホストアドレスの 192.0.2.1 は、この PR の最後のセクションに含まれているデータです。この一行の例が 1 つの PR になります。タイプ、所有者、クラスが同一の RR のセットは、リソースレコードセット (RRSet) と呼ばれます。
ゾーンは、ゾーンファイル を使用して、権威ネームサーバー上で定義されます。ゾーンファイルには、各ゾーンのリソースレコードの定義が含まれています。ゾーンファイルは、ファイルへの変更が行われる プライマリーネームサーバー (別名 マスターネームサーバー)、プライマリーネームサーバーからゾーン定義を受け取る セカンダリーネームサーバー (別名 スレーブネームサーバー) に保存されています。プライマリーネームサーバー、セカンダリーネームサーバーともゾーンに対し権威があり、クライアントには同一に見えます。設定により、どのネームサーバーも複数ゾーンに対してプライマリーサーバーまたはセカンダリーサーバーとして同時に機能できます。
DNS サーバーおよび DHCP サーバー、またプロビジョニングアプリケーションの管理者は、組織内で使用するホスト名の形式について合意する必要があります。ホスト名の形式は「推奨される命名プラクティス」を参照してください。

14.1.2. ネームサーバーの種類

ネームサーバの設定タイプは 2 つ あります。
authoritative
権威ネームサーバーはゾーンの一部であるリソースレコードに対してのみ回答します。このカテゴリにはプライマリー (マスター) ネームサーバーとセカンダリー (スレーブ) ネームサーバーの両方が含まれます。
recursive
再帰ネームサーバーは解決サービスを行いますが、どのゾーンに対しても権威ではありません。すべての解決への回答は一定期間はメモリにキャッシュされ、取得したリソースレコードで指定されます。
ネームサーバーは権威的であると同時に再帰的になることが可能ですが、これらの設定タイプを組み合わせることは推奨されません。権威サーバーが機能するには、そのサーバーすべてのクライアントに対して常に利用可能である必要があります。一方で、再帰的ルックアップは権威ある応答よりはるかに時間がかかるため、再帰的なサーバーは、限られた数のクライアントにのみ利用可能とすべきです。それ以外の場合は、DDoS 攻撃 (分散型サービス拒否攻撃) の可能性が高まります。

14.1.3. ネームサーバとしての BIND

BIND は、一連の DNS 関連プログラムで構成されています。これには、ネームサーバー named、管理ユーティリティー rndc、およびデバッグツール dig が含まれています。Red Hat Enterprise Linux におけるサービスの実行方法はRed Hat Enterprise Linux システム管理者のガイドを参照してください。