第15章 DNS サーバー
DNS
(ドメイン名システム)は、ホスト名をそれぞれの IP
アドレスに関連付けるために使用される分散データベースシステムです。ユーザーにとっては、ネットワーク上のマシンを名前で参照できるという利点があります。システム管理者は、ネームサーバー とも呼ばれる DNS
サーバーを使用すると、名前 ベースのクエリーに影響を与えずにホストの IP
アドレスを変更できます。DNS
データベースの使用は、IP
アドレスをドメイン名に解決するためのだけでなく、DNSSEC がデプロイされるため、その使用は広範囲に及ぶようになりました。
15.1. DNS の概要
DNS
は通常、特定のドメインに対して権限を持つ 1 つ以上の集中サーバーを使用して実装されます。クライアントホストがネームサーバーから情報を要求すると、ネームサーバーは通常ポート 53 に接続します。その後、ネームサーバーは要求された名前の解決を試行します。ネームサーバーが再帰ネームサーバーとして設定されていて権限のある回答がない場合、または以前のクエリーからキャッシュされた回答がない場合は、ルートネームサーバー と呼ばれる他のネームサーバーにクエリーを行い、問題の名前に対して権限のあるネームサーバーがどれか判断します。その後、要求した名前を取得するために権限のあるネームサーバーにクエリーを行います。再帰が無効となっており権限のあるネームサーバーとして設定されているものは、クライアント向けの検索を行いません。
15.1.1. ネームサーバーゾーン
DNS
サーバーでは、すべての情報は リソースレコード (RR)と呼ばれる基本的なデータ要素に保存されます。リソースレコードは、RFC 1034 で定義されています。ドメイン名は、ツリー構造に構造化されています。階層の各レベルはピリオド()で区切られ ます。
例:で示されるルートドメイン 。
は DNS
ツリーのルートで、レベル 0 になります。トップレベルドメイン(TLD)と呼ばれるドメイン名 com
は、ルートドメイン (.
)の子であるため、階層の最初のレベルになります。ドメイン名 example.com
は、階層の第 2 レベルにあります。
例15.1 シンプルなリソースレコード
以下は、シンプルな リソースレコード (RR) の例になります。
example.com. 86400 IN A 192.0.2.1
ドメイン名
example.com
は、RR の 所有者 です。値 86400
は存続 時間 (TTL)です。IN
文字( 「インターネットシステムの を」 意味する)は、RR の クラス を示します。A
の文字は、RR の タイプ を示します(この例ではホストアドレス)。ホストアドレス 192.0.2.1
は、この RR の最終セクションに含まれるデータです。この一行の例が 1 つの PR になります。タイプ、所有者、クラスが同一の RR のセットは、リソースレコードセット (RRSet) と呼ばれます。
ゾーンは ゾーンファイル を使用して権威ネームサーバー上で定義されます。これには、各ゾーンのリソース記録の定義が含まれます。ゾーンファイルは、ファイルへの変更が行われる プライマリーネームサーバー (別名 マスターネームサーバー)、プライマリーネームサーバーからゾーン定義を受け取る セカンダリーネームサーバー (別名 スレーブネームサーバー) に保存されています。プライマリーネームサーバー、セカンダリーネームサーバーともゾーンに対し権威があり、クライアントには同一に見えます。設定により、どのネームサーバーも複数ゾーンに対してプライマリーサーバーまたはセカンダリーサーバーとして同時に機能することができます。
DNS
および DHCP
サーバーの管理者、およびプロビジョニングアプリケーションは、組織で使用されるホスト名の形式に同意する必要があることに注意してください。ホスト名の形式に関する詳細は、「推奨される命名プラクティス」を参照してください。
15.1.2. ネームサーバーの種類
ネームサーバーの設定タイプは 2 つ あります。
ネームサーバーは権威的と同時に再帰的になることが可能ですが、これらの設定タイプを組み合わせることは推奨されません。権威サーバーが機能するには、これらが常にすべてのクライアントに利用可能となる必要があります。一方で、再帰的ルックアップは権威ある応答よりはるかに時間がかかるため、再帰的なサーバーは限られた数のクライアントにのみ利用可能とすべきです。それ以外の場合は、DDoS 攻撃 (分散型サービス拒否攻撃) の可能性が高まります。
15.1.3. ネームサーバーとしての BIND
BIND は一連の DNS 関連プログラムで設定されています。これには、と
いう名前
のネームサーバー、rndc と呼ばれる管理ユーティリティー、dig と呼ばれるデバッグツールが含まれます。Red Hat Enterprise Linux でサービスを実行する方法の詳細は、『Red Hat Enterprise Linux システム管理者のガイド』 を参照してください。