再帰的なDNS検索を1ホップずつ見る
ブラウザー
example.comを要求
リゾルバー
ISP / 1.1.1.1
ルート + TLD
.comの管理元は?
権威サーバー
正式な回答
この連鎖の各ホップはそれ自体がDNS検索で、結果はその後キャッシュされます
DNSとは?仕組みをやさしく解説
インターネット上のすべてのデバイスは、数値のアドレス、つまりIPアドレスで到達できます。172.64.80.1 のような数字を覚えたい人はいないので、example.com のような名前を使います。DNS、つまりドメインネームシステムは、入力した名前を、コンピューターが実際に必要とするアドレスに変換するディレクトリサービスです。ほとんどすべてのネットワークリクエストの裏側で非常に安定して動いているため、その存在が当たり前に思われがちです。
検索の流れを、順を追って見る
あるドメインに初めてアクセスするとき、デバイスはそのIPアドレスをまだ知りません。そこで、通常はISPが運用するリゾルバーか、CloudflareやGoogleのような公開プロバイダーのリゾルバーに調べてもらいます。そのリゾルバーも、答えを知っているとは限らないので、権限の連鎖をたどっていきます。
- ルートサーバーが、そのドメインのトップレベルドメイン(.com、.org、.io など)を担当するサーバーを案内します。
- TLDサーバーが、その特定のドメインの権威ネームサーバー、つまりドメインの所有者が実際に設定したサーバーを案内します。
- 権威ネームサーバーが、実際のレコードを返します。ドメインが現在指しているIPアドレス(1つまたは複数)です。
この連鎖全体は、通常1秒もかからずに完了し、その結果はキャッシュされるため、リクエストのたびに繰り返す必要はありません。これについては、のちほどTTLの項目で触れます。
具体的な流れを、最初から最後まで追う
キャッシュが空のリゾルバーが、blog.example.com の解決を求められたとします。まずルートサーバーに尋ねます。ルートサーバーは答えを知りませんが、.com を担当するのが誰かを知っているので、リゾルバーをそちらに案内します。.com のTLDサーバーも最終的な答えは知りませんが、example.com 自体がどのネームサーバー(たとえば ns1.dnshost.com と ns2.dnshost.com)に委任しているかを知っているので、リゾルバーをそちらに案内します。ここで初めて、リゾルバーは example.com のレコードを実際に持つサーバーに尋ねます。権威サーバーであるそのサーバーが、本当の答えを返します。Aレコードか、もう1ホップたどるべきCNAMEです。この連鎖の各ステップは、それ自体がDNS検索です。あるドメインに対する最初の(キャッシュのない)検索が、途中の答えがキャッシュされたあとの検索よりも、はっきり遅くなるのは、このためです。
キャッシュはリゾルバー以外の層でも行われる
答えがキャッシュされるのは、再帰リゾルバーだけではありません。ほとんどのオペレーティングシステムは短期間のDNSキャッシュを独自に持っており、ブラウザーによってはその上に別のキャッシュを持っています。これが、「同じ」ドメインの2回の検索で結果が食い違って見える、よくあるもう1つの理由です。いつも別のリゾルバーが別の答えを返しているわけではありません。直接問い合わせれば最新の答えが見えるのに、自分のマシンが少し古いローカルのコピーを返していることもあります。
実際によく出会うレコードタイプ
「DNSレコード」は1種類ではありません。ドメインは、それぞれ異なる種類の問いに答える、複数のレコードタイプを並べて持っています。ドメインのIPアドレスの検索で使われるのは、このうち2つだけで、残りはまったく別の目的で存在しています。
| レコードタイプ | 答える問い | 例 |
|---|---|---|
| A | このドメインのIPv4アドレスは何か | 192.0.2.10 |
| AAAA | このドメインのIPv6アドレスは何か | 2606:4700::6810:84e5 |
| CNAME | 代わりに、どのホスト名を検索すべきか | cdn.provider.net |
| MX | このドメインのメールを扱うサーバーはどれか | mail.example.com(優先度10) |
| TXT | この名前に付けられた自由形式のテキストは何か | SPF、DKIM、ドメインの所有確認 |
| NS | このドメインの権威ネームサーバーはどれか | ns1.dnshost.com |
DNSレコードを直接触らない人にも役立つ理由
この流れを理解すると、混乱しやすい多くの挙動に説明がつきます。DNSの変更がすぐに反映されない理由、あるネットワークからは問題なく解決できるドメインが別のネットワークでは失敗する理由、「サイトが落ちている」原因が、サーバーではなくDNSの問題だったと判明することがある理由などです。このようなツールは、最後のステップに直接進みます。権威に近い公開リゾルバーに直接問い合わせ、その返答をそのまま表示するので、推測せずに、ドメインのDNSの現在の実際の状態を確認できます。
また、日常的なトラブルシューティングで、「DNS」と「インターネット」がこれほどよく混同される理由の説明にもなります。DNSは、トラフィックを運んだり、コンテンツをホストしたり、アプリケーションを動かしたりするものではありません。答えるのは、「この名前は、いまどのアドレスを指しているか」という、たった1つの問いだけです。その後に起きること(実際の接続、ページの読み込み、APIの応答)は、まったく別のシステムです。より大きな問題を疑う前に、DNSを独立して確認できる別個のステップとして切り分ける価値があるのは、まさにこのためです。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
関連記事
「DNSサーバー」と呼ばれる3つの層
スタブリゾルバー
お使いのデバイス自体
再帰リゾルバー
ISP、ルーター、1.1.1.1
権威サーバー
ドメイン自身のDNS
ドメインのIPアドレス検索:結果の読み方
ドメインのIPアドレス検索の結果について、複数のアドレス、IPv4とIPv6のレコード、CDNのエッジ、逆引きによる特定の限界を詳しく解説します。
「DNSサーバー」と呼ばれる3つの層
スタブリゾルバー
お使いのデバイス自体
再帰リゾルバー
ISP、ルーター、1.1.1.1
権威サーバー
ドメイン自身のDNS
DNSサーバーとは:リゾルバーとネームサーバーの役割
DNSサーバーの働き、再帰リゾルバーと権威ネームサーバーの違い、どのサーバーがクエリに応答したかを見分ける方法を解説します。
再帰的なDNS検索を1ホップずつ見る
ブラウザー
example.comを要求
リゾルバー
ISP / 1.1.1.1
ルート + TLD
.comの管理元は?
権威サーバー
正式な回答
この連鎖の各ホップはそれ自体がDNS検索で、結果はその後キャッシュされます
DNS名前解決の仕組み:クエリから応答まで
DNSクエリが、キャッシュ、再帰リゾルバー、リファーラル、権威サーバーをたどり、ホスト名がアドレスになるまでの流れを追います。