用語辞典・DNS・ドメイン

DNS

DNSとは

DNSは、ドメイン名などの名前を、IPアドレスをはじめとする通信に必要な情報へ対応付ける分散型の名前解決システムです。正式名称はDomain Name System(ドメイン・ネーム・システム)です。

DNSは、ドメイン名などの名前を、IPアドレスをはじめとする通信に必要な情報へ対応付ける分散型の名前解決システムです。

一つの巨大な名簿を一社が持つのではなく、名前空間を階層に分け、それぞれの管理者が担当範囲の情報を提供します。名前を尋ねる段階と、得られたIPアドレスへ実際に接続する段階は別です。DNSの応答が得られても、Webサーバーとの通信が成功するとは限りません。

再帰リゾルバーが階層をたどり、答えを端末へ返す名前解決が終わってから、目的のサーバーへ接続する
端末が再帰リゾルバーへ名前を問い合わせ、リゾルバーがルート、上位ドメイン、権威サーバーを順にたどってアドレス情報を得て返し、その後端末がWebサーバーへ接続する図解
図1実際には再帰リゾルバーがキャッシュ済みの答えを持っていれば、毎回すべての階層へ問い合わせる必要はありません。図は答えがキャッシュにない場合の代表的な流れです。

端末から見える問い合わせ先と、情報の管理者を分ける

スタブリゾルバー
端末のOSにある名前解決機能です。設定された再帰リゾルバーへ問い合わせを渡し、アプリへ結果を返します。
再帰リゾルバー
端末に代わって必要なDNSサーバーをたどり、最終的な答えを集めます。家庭用ルーターが中継窓口に見える場合もあります。
権威DNSサーバー
担当するゾーンの正式な情報を保持し、その範囲について権威のある応答を返します。

再帰リゾルバーは通信事業者、組織、公開DNSサービスなどが提供します。一方、権威DNSサーバーは調べる名前の管理者側にあります。同じ「DNSサーバー」でも、利用者の代わりに調べる役と、正式な情報を提供する役は異なります。

ルートは答えを全部持たず、次の担当を案内する

キャッシュがない場合の委任の流れ階層ごとに、より具体的な担当サーバーを教えてもらう
  1. 1
    端末 → 再帰リゾルバー

    調べたい名前とレコードの種類を問い合わせます。

  2. 2
    ルートDNS

    対象のトップレベルドメインを担当するサーバーを案内します。

  3. 3
    TLDのDNS

    対象ドメインを担当する権威DNSサーバーを案内します。

  4. 4
    権威DNS

    管理中のレコードから答え、または別名への対応を返します。

  5. 5
    再帰リゾルバー → 端末

    得た結果を返し、再利用できるよう一定期間保存します。

図2TLD(Top-Level Domain/トップ・レベル・ドメイン).jp.comのようなルート直下の階層です。委任ではNSレコードと、必要に応じてそのサーバーへ到達するためのグルー情報が使われます。

DNSは、IPアドレス以外の情報も扱う

AIPv4アドレス

名前に対応するIPv4アドレスを示します。

AAAAIPv6アドレス

名前に対応するIPv6アドレスを示します。

CNAME別名

ある名前が指す正規名を示します。

MXメール配送先

そのドメインのメールを受け取るサーバーを示します。

NS権威サーバー

ゾーンを担当するDNSサーバーを示します。

TXT文字列情報

ドメインの検証やメール方針など、用途ごとの文字列を保持します。

DNSのデータ単位をResource Record(リソース・レコード)と呼びます。一つの名前に複数のAやAAAAレコードがあることも、問い合わせた種類のレコードが存在しないこともあります。「DNSは名前を一つのIPへ変換するだけ」とすると、この広がりを説明できません。

キャッシュは速くするが、変更をすぐには反映しない

各レコードにはTTL(Time To Live/タイム・トゥー・リブ)があり、再帰リゾルバーなどが結果を再利用できる時間を秒単位で示します。TTLが残っている間は権威サーバーへ毎回尋ねずに答えられるため、応答が速くなり負荷も減ります。

権威側のレコードを変更しても、以前の値を保存しているキャッシュはTTLが切れるまで古い答えを返すことがあります。これは必ずしも故障ではありません。また、存在しないという結果も一定期間キャッシュされる場合があります。

URL、検索欄、DNS問い合わせは別の処理

URLにはスキーム、ホスト、パスなどが含まれます。DNSが主に扱うのは、その中のホスト名に関係する情報です。/articles/guideのようなパスをDNSへ問い合わせるわけではありません。

ブラウザのアドレス欄へ一般的な語句を入力した場合、ブラウザが検索サービスへのURLを組み立てることがあります。それはDNSが語句の意味を検索しているのではありません。DNSは、接続に使う名前について指定された種類のレコードを調べます。

仕様の確認資料:RFC 1034「Domain Names — Concepts and Facilities」RFC 1035「Domain Names — Implementation and Specification」RFC 3596「DNS Extensions to Support IP Version 6」

関連用語