DNSはドメイン名に割り当てられているIPアドレスを通知するものですが、その具体的な仕組みは少々複雑です。この記事では仕組みを出来るだけわかりやすく説明したいと思います。

DNSの仕組みは携帯電話のアドレス帳と結構似ている(けどちょっと違う)

DNSは携帯電話のアドレス帳のようなものとこちらの記事で書きましたが、細かく見ていくとちょっと違います。

携帯電話のアドレス帳は、自分の携帯電話のなかに自分が登録したアドレス帳が保存されます。Aさんの携帯電話番号はXさん、Yさんそれぞれの携帯電話でそれぞれが登録し保存することが必要です。

DNSは違います。Aさん(=ドメイン名)が自分の携帯電話番号(=IPアドレス)を自分でDNSに登録します。XさんやYさんはドメイン名を使ってアクセスすることでIPアドレスが何番かを意識することなしに、コンピューターがその代わりにドメイン名をもとにDNSでIPアドレスを調べ出してきて、アクセスすることができます。携帯電話のアドレス帳の例えで言うと、世界規模の公開アドレス帳共有システムといったところでしょうか。自分の名前と番号を公開して世界中の人やモノがそれを参照します。

Aさんが自分で公開して、Xさん、Yさんのコンピュータがそれを参照する、というのがDNSの仕組みです。詳しく見ていきます。

ドメインとレコードを権威DNSサーバに登録する

DNSにおいては、Aさんが自身の情報を公開アドレス帳(ドメイン名とIPアドレスの紐付け表)として公開する仕組みとして、権威DNSサーバ(Authoritative DNS Server)というものがあります(ちなみにDozensは権威DNSサーバを提供するサービスです)。この権威DNSサーバにドメイン名とそれに紐づくIPアドレスなどを設定することにより、DNS情報が世界中に公開されることになります。この紐付けられた設定情報を「DNSレコード」と呼びます。

DNSレコードにはいくつかの種類があります。SOAレコード、NSレコード、Aレコード、AAAAレコード、CNAMEレコード、MXレコード、TXTレコードといったものがよく使われます。

実際には紐付けをする前に、ドメイン名を指定します。ゾーン(Zone)と呼ばれます。 一般的に、dozens.jp や、 dzndns.com など、いわゆるドメイン取得の時に指定したドメイン名がゾーンに該当します(サブドメインを「委譲」することでsub.dozens.jp のようなドメイン名をゾーンにすることもできます)。DNSではこのゾーンがひとつの管理のまとまりとして扱われます。

このゾーンのなかで、先ほど挙げたホスト名とアドレスの紐付けの指定をしていきます。この指定されたそれぞれのデータがDNSレコードと呼ばれています。

(各レコードの種類については別ページで説明する予定です)

DNSが利用される流れ

それでは、権威DNSに登録されたレコードがどのように参照され利用されていくのか、実際に見ていきましょう。

  1. Xさんがブラウザなどで、「 http://dozens.jp/ 」とURLを入力します(もしくは、http://dozens.jp/ へのリンクをクリックします)
  2. Xさんが使っているPCに設定されているキャッシュDNSサーバに対して、XさんのPCは dozens.jp の問い合わせをします。
  3. キャッシュDNSサーバは、 jp の権威DNSサーバに対して dozens.jp の権威DNSサーバのホスト名を問い合わせます。
  4. jp のDNSサーバは、 dozens.jp の権威DNSサーバをキャッシュDNSサーバに返答します。
  5. キャッシュDNSサーバは、dozens.jpの権威DNSサーバに対して dozens.jp のIPアドレスを問い合わせます。
  6. dozens.jpの権威DNSサーバは、 dozens.jp の IPアドレスをキャッシュDNSサーバに返答します。
  7. キャッシュDNSサーバは、XさんのPCにdozens.jpのIPアドレスを返答します。
  8. Xさんのブラウザは、dozens.jpのIPアドレスのサーバにWEBページのコンテンツを要求します。
  9. dozens.jpのサーバは、WEBページのコンテンツを返答します。
  10. Xさんのブラウザにdozens.jpのWEBページが表示されます。

文字だけで書くとなんのこっちゃというかんじではありますが、 簡単にいうと、 PC↔キャッシュDNSサーバ↔権威DNSサーバ というやり取りが行われ、キャッシュDNSサーバがPCに代わってIPアドレスを調べてくれるのです。