本文へ移動
目次へ
Webサイトの名前は、どうやって行き先に変わるの?:内容をイメージした挿絵
コンピューター

Webサイトの名前は、どうやって行き先に変わるの?

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

まず、ひとことで

DNSは、ドメイン名に対応するIPアドレスなどの情報を調べる仕組みだよ。調べ役が担当のサーバーへ問い合わせ、答えを期限つきで覚えることで、毎回最初から探さずにすむんだ。

名前だけで、どうしてたどり着けるの?

Webサイトを見るとき、ブラウザーへdododot.appのような名前を入力するよね。でも、インターネットの通信には、人が覚えやすい名前とは別に、IPアドレスという行き先の情報が使われるんだ。名前を見たコンピューターは、どうやって通信先を調べるのかな。そのとき活躍する仕組みがDNS。英語のDomain Name Systemを短くした呼び方だよ。

友だちの名前から連絡先を探す場面を想像してみよう。名前を覚えていても、連絡先を知らなければ知らせを届けにくいよね。DNSも、名前に関係する情報を探す助けになる。ただし、人の名前と連絡先の組が一つずつ決まる名簿とは違い、一つの名前に複数のIPアドレスが登録されることもあるよ。まずは、名前と通信の行き先を分けて考えてみよう。

ドットは、名前の区切りなんだ

説明用の名前として、www.example.comを使うよ。example.comは、資料で例を示すために用意されたドメイン名なんだ。この名前には、点で区切られた部分がある。右側のcomは、大きな分類にあたるトップレベルドメイン。その左のexampleと合わせたexample.comという範囲の中に、さらにwwwという名前を置いているんだね。

仕組みを調べるときは、大きな範囲から細かな担当へ進むと考えると分かりやすいよ。図書館で、まず本棚の分類を知り、その中で目的の本を探すようなものだね。ただし、インターネット全体の名前が、一つの巨大な本棚にそろっているわけではない。それぞれの範囲を管理する担当が分かれている。この分担が、たくさんの名前を扱うための大切な工夫なんだ。

端末に頼まれたリゾルバーがルート、com、example.comの権威サーバーへ順に問い合わせ、案内やIPアドレスを受け取る模式図。
調べ役が、それぞれの窓口へ尋ねる

途中の情報をキャッシュしていない場合の簡略図。example.comは説明用の名前だよ。矢印は質問と返事で、Webページの本文が通る道そのものではないよ。

出典資料に基づきEggplanetが作成した模式図

問い合わせを引き受ける、調べ役がいる

端末は、必要なDNSの情報を調べ役へ問い合わせることがある。この調べ役を、再帰リゾルバーというよ。『再帰』という言葉は難しいけれど、ここでは、端末の代わりに必要な問い合わせを進める係だと考えよう。学校や会社、通信サービスなどのネットワークで使われるものや、公開されたサービスとして提供されるものがあるんだ。

調べ役は、まず使える答えをすでに持っていないか確かめる。なければ、必要な情報を持つサーバーを探して問い合わせるよ。サーバーは、ほかのコンピューターからのお願いに応じて、情報やサービスを提供する役目のコンピューターなんだ。端末が世界中の担当を自力で全部調べるのではなく、調べ役に頼めるようになっているんだね。

答えではなく、次の窓口を教わることも

途中の情報も何も覚えていない例を考えよう。調べ役は、ルートと呼ばれる出発点のサーバーへ問い合わせ、comの担当への案内を得る。次にcomの担当へ尋ね、example.comの担当を知る。そして、必要な名前の情報を管理している権威サーバーへ問い合わせるんだ。権威とは、偉そうという意味ではなく、その範囲の情報を責任をもって提供する立場のことだよ。

大切なのは、ルートのサーバーが、すべてのWebサイトのIPアドレスを覚えているわけではないこと。『その名前なら、次はこの担当へ』という案内を受け取り、調べ役が問い合わせを進めるんだ。図の矢印も、端末やリゾルバーが送る質問と、担当が返す案内を表している。実際には使える途中の情報があれば、そこから始められるので、必ず毎回この順番を全部通るわけではないよ。

覚えた答えを使えば、調べ直しが減る

調べた情報を一時的に保存して、あとで使うことをキャッシュというよ。調べ役が、同じ名前の使える答えを持っていれば、ほかの担当へまた聞かずに返せることがあるんだ。同じ質問が何度も届くとき、一度調べた結果を利用できると、通信や調べる手間を減らせる。キャッシュは、端末側などにも置かれることがあるよ。

ただし、保存した答えを永遠に使うのは困るよね。サイトの通信先が変わることもあるからだ。DNSの情報には、キャッシュへ保存できる時間の目安となるTTLという値がある。単位は秒だよ。たとえばTTLを60秒とした仮の例なら、その時間の範囲で保存した情報を使う。これはこの記事の説明用の値で、どのサイトも60秒に決まっているという意味ではないんだ。

変更したのに、すぐ同じ答えにならない?

管理者が登録内容を変えても、別々の調べ役には、変更前の答えがまだ期限内で残っていることがあるよ。一方では新しい答え、もう一方では以前の答えを使っている、という違いが起こりうるんだ。世界中へ一斉に合図が届き、全部の保存情報が同時に書き換わるわけではない。このことを知ると、変更が行き渡るまで時間がかかる場合がある理由を考えられるね。

TTLは、DNSの情報をキャッシュするための値だよ。Webページそのものの画像や文章を、何秒保存するかと同じ設定ではない。また、通信の遅さや画面が開かない理由はDNSだけではないんだ。電波や回線、通信先のサーバー、ブラウザーなど、別の場所にも原因がありうる。『開かないから必ず名前の設定が悪い』と決めつけず、仕組みを分けて考えることが大事だよ。

DNS情報のTTLを60秒とした仮の例。最初に保存した答えを30秒後に使い、期限が来た60秒後には調べ直す。
期限内なら保存した答えを使える

TTLを60秒とした説明用の模型で、実際のサイトの設定や測定結果ではないよ。通信にかかる時間や細かな例外は省いているよ。

出典資料に基づきEggplanetが作成した模式図

名前を調べることと、ページを読むこと

DNSから答えを受け取っても、それでWebページの本文が届いたわけではない。ブラウザーは、調べた行き先を使って、サイトへ必要な情報をお願いするよ。お店の場所を調べることと、実際にお店へ行って品物を受け取ることが違うのに似ているね。行き先を調べる仕組みと、ページの文章や画像を受け取る仕組みは、役割が違うんだ。

名前が同じでも通信先が変わることや、複数の通信先を使うことがある。逆に、同じIPアドレスで複数のサイトを扱うこともあるよ。だから、IPアドレスは、一軒の家に一つだけ付いた固定の住所そのものではない。DNSは名前を数の並びへ暗号化する仕組みでもないんだ。名前に対応する情報を問い合わせて、通信へつなぐ仕組みだと理解しよう。

どっとと考えよう:案内カードを作ろう

紙に『利用者』『調べ役』『大きな分類の窓口』『名前の担当』という四枚のカードを作ってみよう。通信の設定を変えたり、知らないサイトを開いたりする必要はないよ。利用者が名前を尋ねたら、調べ役が窓口をたどって答えを受け取る。その答えを調べ役のカードに一時的に書き、同じ質問が来たらどうなるかを比べるんだ。最初の問い合わせと、覚えた答えを使うときでは、動かすカードが違うね。

次に、担当のカードだけ答えを書き換えてみよう。調べ役が以前の答えをまだ使えるなら、利用者へ何を返すかな。期限が来て調べ直したら、どこが変わるだろう。これはキャッシュを考えるための簡単な模型で、実際のDNSの例外や細かな手順は省いているよ。名前を分担して管理することと、答えを期限つきで覚えること。この二つを説明できたら、インターネットの見えない案内役に一歩近づけたね。

ことばのメモ

ドメイン名
インターネット上の名前。ドットで区切られた階層があり、DNSで関連する情報を調べられるよ。
IPアドレス
ネットワークで通信先を扱うために使われるアドレス。サイト名と必ず一対一になるわけではないよ。
リゾルバー
DNSの問い合わせを扱い、必要な情報を調べる役目。この記事では端末に代わって探す再帰リゾルバーを調べ役と呼んでいるよ。
権威サーバー
担当する範囲のDNS情報を、責任をもって提供するサーバー。
キャッシュとTTL
キャッシュは調べた情報の一時保存。TTLは、そのDNS情報をキャッシュへ保存できる時間を秒で示す値だよ。

もとになった資料・もっと知りたい人へ

下記の資料をもとに、説明と考える問題を独自に構成しています。外部資料には英語のページもあります。どっとの画像は案内用のイラストで、観測写真や科学的な図ではありません。

分かりやすくするために、説明を短くしたり、たとえ話を使ったりしています。まちがいを見つけたらお問い合わせへお寄せください。制作方法は編集方針、いっしょに読むときのヒントは保護者・先生へで紹介しています。