
Webサイトの名前は、どうやって行き先に変わるの?
ブラウザーに名前を入れると、どうして目的のサイトへ行けるのかな? DNSの案内役と、答えをしばらく覚えるキャッシュの働きを見てみよう。

まず、ひとことで
DNSは、ドメイン名に対応するIPアドレスなどの情報を調べる仕組みだよ。調べ役が担当のサーバーへ問い合わせ、答えを期限つきで覚えることで、毎回最初から探さずにすむんだ。
名前だけで、どうしてたどり着けるの?
Webサイトを見るとき、ブラウザーへdododot.appのような名前を入力するよね。でも、インターネットの通信には、人が覚えやすい名前とは別に、IPアドレスという行き先の情報が使われるんだ。名前を見たコンピューターは、どうやって通信先を調べるのかな。そのとき活躍する仕組みがDNS。英語のDomain Name Systemを短くした呼び方だよ。
友だちの名前から連絡先を探す場面を想像してみよう。名前を覚えていても、連絡先を知らなければ知らせを届けにくいよね。DNSも、名前に関係する情報を探す助けになる。ただし、人の名前と連絡先の組が一つずつ決まる名簿とは違い、一つの名前に複数のIPアドレスが登録されることもあるよ。まずは、名前と通信の行き先を分けて考えてみよう。
ドットは、名前の区切りなんだ
説明用の名前として、www.example.comを使うよ。example.comは、資料で例を示すために用意されたドメイン名なんだ。この名前には、点で区切られた部分がある。右側のcomは、大きな分類にあたるトップレベルドメイン。その左のexampleと合わせたexample.comという範囲の中に、さらにwwwという名前を置いているんだね。
仕組みを調べるときは、大きな範囲から細かな担当へ進むと考えると分かりやすいよ。図書館で、まず本棚の分類を知り、その中で目的の本を探すようなものだね。ただし、インターネット全体の名前が、一つの巨大な本棚にそろっているわけではない。それぞれの範囲を管理する担当が分かれている。この分担が、たくさんの名前を扱うための大切な工夫なんだ。
途中の情報をキャッシュしていない場合の簡略図。example.comは説明用の名前だよ。矢印は質問と返事で、Webページの本文が通る道そのものではないよ。
出典資料に基づきEggplanetが作成した模式図問い合わせを引き受ける、調べ役がいる
端末は、必要なDNSの情報を調べ役へ問い合わせることがある。この調べ役を、再帰リゾルバーというよ。『再帰』という言葉は難しいけれど、ここでは、端末の代わりに必要な問い合わせを進める係だと考えよう。学校や会社、通信サービスなどのネットワークで使われるものや、公開されたサービスとして提供されるものがあるんだ。
調べ役は、まず使える答えをすでに持っていないか確かめる。なければ、必要な情報を持つサーバーを探して問い合わせるよ。サーバーは、ほかのコンピューターからのお願いに応じて、情報やサービスを提供する役目のコンピューターなんだ。端末が世界中の担当を自力で全部調べるのではなく、調べ役に頼めるようになっているんだね。
答えではなく、次の窓口を教わることも
途中の情報も何も覚えていない例を考えよう。調べ役は、ルートと呼ばれる出発点のサーバーへ問い合わせ、comの担当への案内を得る。次にcomの担当へ尋ね、example.comの担当を知る。そして、必要な名前の情報を管理している権威サーバーへ問い合わせるんだ。権威とは、偉そうという意味ではなく、その範囲の情報を責任をもって提供する立場のことだよ。
大切なのは、ルートのサーバーが、すべてのWebサイトのIPアドレスを覚えているわけではないこと。『その名前なら、次はこの担当へ』という案内を受け取り、調べ役が問い合わせを進めるんだ。図の矢印も、端末やリゾルバーが送る質問と、担当が返す案内を表している。実際には使える途中の情報があれば、そこから始められるので、必ず毎回この順番を全部通るわけではないよ。
覚えた答えを使えば、調べ直しが減る
調べた情報を一時的に保存して、あとで使うことをキャッシュというよ。調べ役が、同じ名前の使える答えを持っていれば、ほかの担当へまた聞かずに返せることがあるんだ。同じ質問が何度も届くとき、一度調べた結果を利用できると、通信や調べる手間を減らせる。キャッシュは、端末側などにも置かれることがあるよ。
ただし、保存した答えを永遠に使うのは困るよね。サイトの通信先が変わることもあるからだ。DNSの情報には、キャッシュへ保存できる時間の目安となるTTLという値がある。単位は秒だよ。たとえばTTLを60秒とした仮の例なら、その時間の範囲で保存した情報を使う。これはこの記事の説明用の値で、どのサイトも60秒に決まっているという意味ではないんだ。
変更したのに、すぐ同じ答えにならない?
管理者が登録内容を変えても、別々の調べ役には、変更前の答えがまだ期限内で残っていることがあるよ。一方では新しい答え、もう一方では以前の答えを使っている、という違いが起こりうるんだ。世界中へ一斉に合図が届き、全部の保存情報が同時に書き換わるわけではない。このことを知ると、変更が行き渡るまで時間がかかる場合がある理由を考えられるね。
TTLは、DNSの情報をキャッシュするための値だよ。Webページそのものの画像や文章を、何秒保存するかと同じ設定ではない。また、通信の遅さや画面が開かない理由はDNSだけではないんだ。電波や回線、通信先のサーバー、ブラウザーなど、別の場所にも原因がありうる。『開かないから必ず名前の設定が悪い』と決めつけず、仕組みを分けて考えることが大事だよ。
TTLを60秒とした説明用の模型で、実際のサイトの設定や測定結果ではないよ。通信にかかる時間や細かな例外は省いているよ。
出典資料に基づきEggplanetが作成した模式図名前を調べることと、ページを読むこと
DNSから答えを受け取っても、それでWebページの本文が届いたわけではない。ブラウザーは、調べた行き先を使って、サイトへ必要な情報をお願いするよ。お店の場所を調べることと、実際にお店へ行って品物を受け取ることが違うのに似ているね。行き先を調べる仕組みと、ページの文章や画像を受け取る仕組みは、役割が違うんだ。
名前が同じでも通信先が変わることや、複数の通信先を使うことがある。逆に、同じIPアドレスで複数のサイトを扱うこともあるよ。だから、IPアドレスは、一軒の家に一つだけ付いた固定の住所そのものではない。DNSは名前を数の並びへ暗号化する仕組みでもないんだ。名前に対応する情報を問い合わせて、通信へつなぐ仕組みだと理解しよう。
どっとと考えよう:案内カードを作ろう
紙に『利用者』『調べ役』『大きな分類の窓口』『名前の担当』という四枚のカードを作ってみよう。通信の設定を変えたり、知らないサイトを開いたりする必要はないよ。利用者が名前を尋ねたら、調べ役が窓口をたどって答えを受け取る。その答えを調べ役のカードに一時的に書き、同じ質問が来たらどうなるかを比べるんだ。最初の問い合わせと、覚えた答えを使うときでは、動かすカードが違うね。
次に、担当のカードだけ答えを書き換えてみよう。調べ役が以前の答えをまだ使えるなら、利用者へ何を返すかな。期限が来て調べ直したら、どこが変わるだろう。これはキャッシュを考えるための簡単な模型で、実際のDNSの例外や細かな手順は省いているよ。名前を分担して管理することと、答えを期限つきで覚えること。この二つを説明できたら、インターネットの見えない案内役に一歩近づけたね。

ことばのメモ
- ドメイン名
- インターネット上の名前。ドットで区切られた階層があり、DNSで関連する情報を調べられるよ。
- IPアドレス
- ネットワークで通信先を扱うために使われるアドレス。サイト名と必ず一対一になるわけではないよ。
- リゾルバー
- DNSの問い合わせを扱い、必要な情報を調べる役目。この記事では端末に代わって探す再帰リゾルバーを調べ役と呼んでいるよ。
- 権威サーバー
- 担当する範囲のDNS情報を、責任をもって提供するサーバー。
- キャッシュとTTL
- キャッシュは調べた情報の一時保存。TTLは、そのDNS情報をキャッシュへ保存できる時間を秒で示す値だよ。
もとになった資料・もっと知りたい人へ
下記の資料をもとに、説明と考える問題を独自に構成しています。外部資料には英語のページもあります。どっとの画像は案内用のイラストで、観測写真や科学的な図ではありません。
- ICANN:About Domain Names(ドメイン名の階層と管理)
- ICANN:DNSSEC — A Brief Description of How the DNS Works(DNSの基本的な働き)
- IETF/RFC Editor:RFC 1034、3.6・5.3節(DNS情報・TTL・リゾルバー)
- IANA:Example Domains(説明用のドメイン名)
分かりやすくするために、説明を短くしたり、たとえ話を使ったりしています。まちがいを見つけたらお問い合わせへお寄せください。制作方法は編集方針、いっしょに読むときのヒントは保護者・先生へで紹介しています。