ドメインとDNSのしくみ入門|名前からIPアドレスを調べる流れとレコードの種類
名前からIPアドレスを調べる流れ
ブラウザに www.example.com と入力したとき、パソコンはどうやってIPアドレスを知るのでしょうか。DNSの問い合わせは、役割の違う何種類かのサーバーを順にたどって行われます。
登場するサーバーの役割
- スタブリゾルバー: パソコンやスマホの中にある、問い合わせを出す役の仕組みです。自分では調べ回らず、次のフルサービスリゾルバーに「代わりに調べて」と頼みます。
- フルサービスリゾルバー(キャッシュDNSサーバー): 利用者の代わりに、あちこちのサーバーへ問い合わせて答えを見つけてくるサーバーです。多くの場合、契約しているプロバイダーや、職場のネットワークが用意しています。見つけた答えはしばらく保存しておきます。
- ルートサーバー: DNSのいちばん上にあたるサーバーです。「.comのことなら、このサーバーに聞いてください」と、トップレベルドメインの担当を教えてくれます。
- TLDサーバー: トップレベルドメインを担当するサーバーです。「example.comのことなら、このサーバーに聞いてください」と、その名前の担当を教えます。
- 権威DNSサーバー: そのドメインの情報を実際に持っているサーバーです。「www.example.comのIPアドレスはこれです」と、最終的な答えを返します。

このように、上の階層のサーバーは「下の担当がどこか」だけを知っていて、細かい情報は下の担当に任せています。この仕組みを委任と呼びます。世界中のドメインの情報を一か所で抱える必要がないため、たくさんの名前を分担して管理できるようになっています。
実際には毎回たどらない
毎回この手順をすべてたどっていたら、時間がかかってしまいます。実際には、フルサービスリゾルバーが一度調べた答えを保存しておき、同じ名前の問い合わせが来たら、保存した答えをすぐに返します。パソコンやブラウザも、調べた答えを少しの間覚えています。そのため、よく見るサイトの名前解決は、ほとんどの場合、一瞬で終わります。
DNSより先に見られる hosts ファイル
パソコンには、DNSに問い合わせる前に確かめられる hosts ファイルという設定ファイルもあります。ここに名前とIPアドレスの組み合わせを書いておくと、その名前についてはDNSに問い合わせず、書かれた番号が使われます。DNSが生まれる前、名前と番号の対応を一つのファイルで配っていた時代のなごりです。
hosts ファイルは、サイトを作る人が、公開前の新しいサーバーを自分のパソコンだけで確かめるときなどに使われます。一方で、書き換えられると、本物の名前で偽のサーバーにつながってしまうおそれもあります。心当たりのない書き換えがないかは気にかけておきたい点ですが、ふだん自分で編集する必要はありません。
キャッシュとTTL:設定変更がすぐ届かない理由
答えを保存しておく仕組みをキャッシュと呼びます。キャッシュは名前解決を速くし、DNSサーバーへの負担を減らしてくれる一方、情報が変わったときに古い答えが残る原因にもなります。

どのくらいの時間保存してよいかは、権威DNSサーバーが答えと一緒に伝えるTTL(Time To Live)という値で決まります。TTLは秒数で表され、たとえば3600なら1時間、86400なら1日のあいだ、その答えを保存してよいという意味です。
サイトのサーバーを引っ越してDNSの情報を書き換えても、すでに古い答えを保存しているリゾルバーは、TTLの時間が切れるまで古い答えを返し続けます。「DNSの変更が反映されるまで時間がかかる」と言われるのは、このためです。新しい情報が少しずつ広がっていくように見えることから「浸透」と表現されることもありますが、実際には、各地のキャッシュが順に期限切れになっていく現象です。

サーバーの引っ越しなどで変更を予定している場合は、作業の前に、あらかじめTTLを短くしておく方法がよく使われます。元のTTLの時間が過ぎてから本番の変更をすれば、切り替えにかかる時間を短くできます。作業が終わって落ち着いたら、TTLを元の長さに戻します。
ブラウザや端末のキャッシュが原因で、古いページが表示されることもあります。ブラウザに保存されるデータについては、キャッシュとCookieの違いとは?で詳しく紹介しています。










