18
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DNSってなんなんだよ【名前解決の仕組みを厳しく解説】

Last updated at Posted at 2025-12-21

結論:DNSは「名前をIPアドレスに変換する仕組み」

DNSは「名前をIPアドレスに変換する仕組み」です。それ以上でも以下でもありません。

よく「電話帳みたいなもの」と例えられますが、その例えすら不要です。DNSは問い合わせに答える。ただそれだけです。

難しく考える必要はありません。あなたがブラウザにgoogle.comと打ち込んだとき、裏側では「google.comって何番(IPアドレス)だっけ?」という問い合わせが行われています。それに答えているのがDNSです。

なぜDNSが必要なのか

理由は単純です。

  • コンピュータはIPアドレスしか理解しない
  • 人間は名前で覚える
  • そのギャップを埋めるのがDNS

IPアドレスって何?

IPアドレスというのは、インターネット上の住所のようなものです。例えば192.168.1.1172.217.175.46のような数字の羅列です。

コンピュータ同士が通信するには、このIPアドレスが必要です。人間が友達の家に行くのに住所が必要なように、コンピュータがサーバーにアクセスするにはIPアドレスが必要なんです。

でも、172.217.175.46なんて覚えられませんよね? だからgoogle.comという名前を使うんです。

DNSは通信に関与しない

重要なのは、DNSは通信を中継しないということです。DNSは通信の前準備にすぎません。

DNSが死んでも、IP直打ちなら通信はできます

試しに、ブラウザのアドレスバーに1.1.1.1と打ち込んでみてください(これはCloudflareのIPアドレスです)。DNSを使わなくても、Cloudflareのページにアクセスできるはずです。

つまりDNSは、あなたが「名前でアクセスしたい」ときにだけ必要になる仕組みなんです。

DNSがやっている仕事は1つだけ

DNSは「問い合わせに答える」だけです。データを運びません。ページも返しません。

具体的にはこういうことです。

Q: one.one.one.one の IP は?
A: 1.1.1.1

これだけです。余計なことは一切していません。

DNSサーバーに聞くと、IPアドレスが返ってきます。その後の通信には一切関与しません。

例: Googleにアクセスするとき

  1. あなたがブラウザにgoogle.comと入力
  2. DNSに「google.comのIPアドレスは?」と問い合わせ
  3. DNSが「142.251.42.206だよ」と返答(※実際のGoogleのIPの一例)
  4. ブラウザが142.251.42.206に接続してページを表示

DNSが関わるのは2〜3のステップだけです。その後の通信(ページの読み込みや表示)にはDNSは関係ありません。

覚えておいてほしいのは、DNSは、名前とIPの変換だけを担当する専用の仕組みです。

名前解決の流れ

DNSがどうやって名前をIPに変換しているのか。ここが本題です。

実は、いきなり全部知ってるDNSは存在しません。

ここまで読めば分かると思いますが、
DNSは「一発で答えが返ってくる仕組み」ではありません。

分からないDNSは、次に分かりそうなDNSを教える。
それを繰り返しています。

これがよく言われる「たらい回し」です。

この「たらい回し」の流れを理解すると、DNSの仕組みが見えてきます。

1. ブラウザ

one.one.one.oneにアクセスしようとします。まずブラウザ自身がキャッシュ(記憶)を持っています。「さっきこのサイト見たな」という場合、ブラウザはその情報をまだ覚えています。

ここにあれば即座に使います。わざわざ外に聞く必要はありません。

2. OSのキャッシュ

ブラウザになければ、次はOS(WindowsやMacなど)が持っているキャッシュを見ます。

OSも「最近誰かがこのサイト見たな」という情報を持っているんです。Windowsならipconfig /displaydnsというコマンドで、今OSが覚えているDNS情報を確認できます。

3. DNSリゾルバ

OSにもなければ、ここで初めて外部に問い合わせます。問い合わせ先はDNSリゾルバと呼ばれるDNSサーバーです。

これは以下のいずれかです:

  • プロバイダのDNSサーバー(契約しているインターネット会社が用意しているもの)
  • 公開DNSサーバー(8.8.8.8がGoogle Public DNS、1.1.1.1がCloudflare)

あなたのパソコンやスマホは、この「リゾルバ」に「このサイトのIPアドレス教えて」と頼みます。

4. ルートDNS

ここからが面白いところです。

実は、DNSリゾルバも最初はone.one.one.oneのIPアドレスを知りません。だから、リゾルバはルートDNSというところに聞きます。

ルートDNSは「世界中のドメインの最上位を管理している親玉」です。ただし、ルートDNSも個別のサイトのIPアドレスは知りません。

ルートDNSはこう答えます:「.comのことは知らないけど、.comを管理してるTLD DNSサーバーを教えるよ。そっちに聞いて」

5. TLD DNS

次に、リゾルバはTLD DNS(.comを管理しているDNSサーバー)に聞きます。

TLD(Top Level Domain)は、.com.jp.orgなどの部分を管理しているサーバーです。

TLD DNSはこう答えます:「one.one.one.oneの詳細は知らないけど、one.one.one.oneを管理している権威DNSサーバーを教えるよ。そっちに聞いて」

6. 権威DNS

最後に、リゾルバは権威DNS(one.one.one.oneを管理しているDNSサーバー)に聞きます。

ここで初めて正解が返ってきます。

権威DNSはこう答えます:「one.one.one.oneのIPアドレスは1.1.1.1だよ」

7. IPが返る

リゾルバはこのIPアドレスをOSに返し、OSはブラウザに返します。ブラウザはこのIPアドレスに対して通信を開始します。

まとめると

あなた → ブラウザ → OS(スタブリゾルバ)
                          ↓
                再帰DNS(例: 1.1.1.1)
                          ↓
                  ルートDNS → 「.oneはTLDに聞いて」
                          ↓
                  TLD DNS → 「one.one.one.oneは権威DNSに」
                          ↓
                  権威DNS → 「1.1.1.1だよ!」
                          ↓
          再帰DNS ← IPアドレス取得
                          ↓
          OS ← ブラウザ ← IPアドレス
                          ↓
              ブラウザ → 1.1.1.1に接続!

この階層的な問い合わせがDNSの仕組みです。一発で答えが返ってくるわけではありません。何度も「次はあそこに聞いて」を繰り返しているんです。

OS自身は世界中のDNSを巡回しません。実際の問い合わせは「再帰DNS」が代行します。

キャッシュとTTL

さっき「ブラウザやOSがキャッシュを持っている」と言いました。実はDNSリゾルバもキャッシュを持っています。

DNSは毎回フルで聞きません

一度聞いた結果はキャッシュ(記憶)されます。だから2回目のアクセスは速いんです。

例えば、あなたがgoogle.comに1回アクセスすると、DNSリゾルバは「google.comは142.251.42.206だ」という情報を覚えます。次に誰かがgoogle.comにアクセスしたとき、リゾルバはルートDNSやTLD DNSに聞き直すことなく、「さっき聞いたから知ってるよ。142.251.42.206だよ」と即座に答えます。

TTL(有効期限)の仕組み

ただし、キャッシュには TTL(Time To Live) という有効期限があります。

例えばTTLが3600秒(1時間)だとします。DNSリゾルバは、この情報を1時間だけ覚えています。1時間経ったら「古い情報かもしれない」と考えて、もう一度権威DNSに聞き直します。

DNSの結果は「永遠に正しい」わけではありません

だから以下のようなことが起きます。

  • 昨日は見れた
  • 今日見れない

これは、サーバーのIPアドレスが変わったのに、古いキャッシュを見ているケースです。

キャッシュのクリア方法

キャッシュが原因でサイトが見れないとき、手動でキャッシュをクリアできます。

Windows:

ipconfig /flushdns

Mac:

sudo dscacheutil -flushcache

これでOSが持っているDNSキャッシュが消えて、次のアクセス時に新しい情報を取得します。

DNSレコードの種類

DNSは「名前をIPに変換する」だけではありません。用途に応じていくつかのレコードタイプがあります。

初心者の方は、まず以下の4つを覚えておけば十分です。

Aレコード

名前をIPv4アドレスに変換します。最も基本的なレコードです。

one.one.one.one → 1.1.1.1

あなたが普段見ているWebサイトのほとんどは、このAレコードで名前解決されています。

AAAAレコード(クアッドエー)

名前をIPv6アドレスに変換します。

one.one.one.one → 2606:4700:4700::1111

IPv6は次世代のIPアドレスです。IPv4(従来の形式)はアドレスが足りなくなってきたので、IPv6が普及し始めています。見た目はやたら長いですが、やっていることはAレコードと同じです。

CNAMEレコード

名前を別の名前に変換します。エイリアス(別名)を作るときに使います。

www.example.com → example.com

例えばwww.example.comにアクセスしてもexample.comにアクセスしても同じサイトが見れますよね? これはCNAMEレコードで「www.example.comexample.comの別名だよ」と設定されているからです。

MXレコード

メールサーバーを指定します。メール配送に使われます。

example.com → mail.example.com

あなたがuser@example.comにメールを送るとき、メールサーバーはMXレコードを見て「example.comのメールはmail.example.comに送ればいいんだな」と判断します。


詳しくは別記事で扱います。ここでは「用途別にレコードがある」と理解しておけば十分です。

DNSが壊れると何が起きるか

DNSが壊れると、サイトが「存在しない」ように見えます。

ブラウザには「このサイトにアクセスできません」「DNSエラー」「DNS_PROBE_FINISHED_NXDOMAIN」などと表示されます。

でもサーバーは生きている可能性があります

これが重要なポイントです。「サイトが見れない = サーバーが死んでる」とは限りません。

DNS障害の具体例

DNS障害の場合、以下のような状況が起きます。

  • ping one.one.one.oneは失敗します(名前が解決できないから)
  • ping 1.1.1.1は成功します(IPは生きているから)
  • ブラウザでhttp://1.1.1.1は開けます(IPで直接アクセスできるから)

つまり、DNSだけが壊れていて、サーバー本体は元気なんです。

実際に起きた大規模障害

2025年11月18日夜、Cloudflareで大規模障害が発生し、世界中の主要サービスに影響が出ました。SNS「X(旧Twitter)」やAIサービス「ChatGPT」などが一時的にアクセス不能になったのです。

CloudflareはDNSだけでなくCDNやセキュリティなども提供しており、内部のバグや設定変更でトラフィック処理が止まったことが原因です。その結果、Cloudflare経由の名前解決や通信が不安定になりました。

ここで注意点です。先ほど「DNSリゾルバはキャッシュを持つので毎回フルで問い合わせる必要はない」と説明しましたが、キャッシュにない名前やTTL切れの名前を解決しようとしても、DNSインフラ全体が止まると名前解決はできません。
つまり、キャッシュがある場合は速くアクセスできますが、インフラが止まると名前解決は全滅します。

よくある誤解

DNSについて、よく勘違いされることがあります。初心者の方がよく引っかかるポイントをまとめました。

❌ DNSが遅い = サイトが遅い

これは違います。

DNSは最初の1回だけです。名前解決が終われば、その後の通信にDNSは関与しません。

例えば、Googleのトップページを開くのに10秒かかったとします。このうちDNSが使われるのは最初の0.1秒程度です。残りの9.9秒は、サーバーからデータをダウンロードしたり、ブラウザが表示を描画したりする時間です。

サイトの表示が遅いのは、DNSではなくサーバーやネットワークの問題です。

❌ DNSがセキュリティを守ってくれる

これも違います。

DNSは名前をIPに変換するだけです。通信内容を暗号化したり、不正アクセスをブロックしたりはしません。

セキュリティはHTTPSやファイアウォールの役割です。

ただし、最近は「DNS over HTTPS(DoH)」という技術で、DNS自体の通信を暗号化する動きもあります。これは「DNSの問い合わせ内容を第三者に見られないようにする」ための技術です。

❌ DNSが通信内容を見ている

これも違います。

DNSは「どこに通信するか」を教えるだけです。通信の中身は見ていません。

例えば、あなたがAmazonで何を買ったか、Googleで何を検索したか、そういう情報はDNSには分かりません。DNSが知っているのは「この人がamazon.comにアクセスした」「この人がgoogle.comにアクセスした」という事実だけです。

DNSは「聞かれたことに答えているだけ」 なんです。それ以上のことはしていません。

補足: DNSの応答速度を確認する方法

実際にDNSがどれくらいの速度で応答しているか、確認する方法があります。

Windowsの場合

コマンドプロンプトで以下を実行:

nslookup google.com

これで「google.comのIPアドレスは何か」をDNSに問い合わせた結果が見れます。

Macの場合

ターミナルで以下を実行:

dig google.com

Query timeという項目に、DNS問い合わせにかかった時間(ミリ秒)が表示されます。通常は10〜50ミリ秒程度です。

まとめ

ここまでの内容を整理します。

  • DNSは名前解決の仕組み
  • 通信はしない
  • データは運ばない
  • 問い合わせに答えるだけ
  • キャッシュが命
  • 階層的に「たらい回し」される
  • DNS障害でもサーバーは生きている可能性がある

DNSは便利な魔法ではありません。
名前をIPに変換するだけの、単純で地味な仕組みです。

DNSは地味ですが、インターネットの基盤を支えています。名前でアクセスできるのは、裏でDNSが働いているからです。

あなたが「google.com」と打つだけで世界中のどこからでも同じサイトにアクセスできるのは、このDNSの仕組みがあるからなんです。

次のステップ

ただし、DNSは「名前をどう解決するか」の話であって、「その名前が何でできているか」は別の話です。

www.example.comという名前、よく見ると.で区切られていますよね? この構造にも実は深い意味があります。

次は 「その名前、何でできてるんだよ問題」 を扱います。

→ FQDN編に続く

18
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?