0
2

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の仕組み——「電話帳と案内係」で名前解決を完全理解

0
Posted at

〜「DNS?何ですか」が「あ、電話帳か」に変わる10分間〜

こんにちは!ハンズオンラボ運営のえむです。

ネットワークの勉強を進めると、必ず出てくる言葉があります。

「DNSって何? 名前解決?」

参考書では「ドメイン名をIPアドレスに変換する」と書かれていますが、それだけ聞いても実感がありません。

実は、DNSの仕組みは 「電話帳と案内係」 に例えると、一瞬で理解できます。

今日は 「電話帳システム」 という身近な例えで、DNSの全体像をつかみましょう。


この記事を読むと、以下のことができるようになります

  • DNSが「何をしているのか」を説明できる
  • 「名前解決」という概念が理解できる
  • DNS キャッシュやDNSサーバーの役割がわかる

まず「電話帳」の話をしましょう

昔のことになりますが、スマートフォンがなかった時代、電話をかけるときはどうしていたでしょう?

【昔のやり方】

友人の電話番号を覚えていない
    ↓
電話帳(分厚い本)を引く
    ↓
「田中太郎 090-1234-5678」を見つける
    ↓
電話をかける

つまり、「名前を知ってるのに番号を知らない」ときは、電話帳を引いて「名前→番号」を調べるわけです。

インターネットのDNSも、全く同じ仕組みです。


インターネットも「電話帳」が必要

インターネットで https://example.com にアクセスするとき、ブラウザが裏でしていることを考えてみます。

あなた:「example.com にアクセスしたい」
ブラウザ:「example.com のIPアドレス知らないな...」
        「...誰かに聞かないと」

ドメイン名(example.com)は人間にとって覚えやすいですが、コンピューター同士の通信にはIPアドレスが必要なんです。

【人間の世界】
「example.com」← 覚えやすい名前

【コンピューターの世界】
「93.184.216.34」← IPアドレス(番号)

だから、「名前→番号」を調べるシステムが必要になるんです。


DNS = 「電話帳係」

DNS(Domain Name System)は、その名の通り 「ドメイン名をIPアドレスに変換するシステム」 です。

【電話帳 vs DNS】

電話帳:
  田中太郎 → 090-1234-5678
  鈴木花子 → 090-2345-6789

DNS:
  example.com → 93.184.216.34
  google.com  → 142.251.41.14

インターネット上には DNSサーバー という「巨大な電話帳」がいくつもあって、世界中のドメイン名とIPアドレスをペアで管理しています。


「名前解決」って何?

「名前解決」というカッコいい言葉は、実は 「電話帳を引く」という意味です。

【電話帳を引く】
名前「田中太郎」が与えられる
    ↓
電話帳を開いて調べる
    ↓
番号「090-1234-5678」が返ってくる

【DNS で名前解決する】
ドメイン名「example.com」が与えられる
    ↓
DNSサーバーに問い合わせ
    ↓
IPアドレス「93.184.216.34」が返ってくる

つまり、**「名前解決 = ドメイン名からIPアドレスを調べること」**です。


実際の「名前解決」の流れ

では、https://example.com にアクセスするとき、裏で何が起きているか見てみましょう。

ポイントは2行目。ブラウザは「example.com」を知っていても、その「IPアドレス」を知らないから、DNSサーバーに聞いているわけです。


「複数の電話帳」が動いている

実は、DNSは単一の「電話帳」ではなく、複数の電話帳が連携しているんです。

【DNSの階層構造】

あなたのPC
    ↓
ローカル DNS サーバー(電話帳係1号)
 「あ、この名前知ってます」 → すぐに返す
 「あ、この名前知りません」 → 別の電話帳係に問い合わせ
    ↓
ルート DNS サーバー(全国案内)
 「.com はあっちの係に聞いてください」 → 指示だけ返す
    ↓
TLD DNS サーバー(.com 専門係)
 「example.com はあっちの係に聞いてください」 → 指示だけ返す
    ↓
権威 DNS サーバー(example.com の本家)
 「example.com は 93.184.216.34 です」 → 実際の番号を返す

全部の情報を1冊の電話帳に載せるのは無理だから、「案内係が案内係を呼ぶ」という仕組みになっているんです。


DNS キャッシュ = 「手帳に書き留めておく」

ここで重要な最適化があります。

毎回 DNS サーバーに問い合わせていたら、時間がかかりますよね。

【キャッシュなし】
名前解決に毎回 0.1 秒かかる
    ↓
100回アクセス = 10秒ロス

そこで、一度調べた結果を 「手帳に書き留めておく」 という工夫をします。

【DNS キャッシュの仕組み】

1回目:example.com の DNS 問い合わせ
       ↓
      結果 93.184.216.34 をメモリに保存(キャッシュ)
       ↓
2回目:「あ、これメモに書いてある」と思い出す
      即座に 93.184.216.34 を使用

キャッシュがあるおかげで、何度も同じサイトに訪問するときは高速になるんです。


キャッシュは「時間限定」

ただし、キャッシュには有効期限があります。

【DNS キャッシュの有効期限:TTL(Time To Live)】

TTL = 3600秒(1時間)の場合:

1回目:example.com を調べる → 93.184.216.34 をキャッシュ
1時間の間:メモを見て高速応答
1時間後:メモの期限切れ、また DNS サーバーに問い合わせ

もしサイトの管理者が IPアドレスを変更したとしても、全員に反映されるまで 最大で TTL 分の時間がかかるということですね。


ネットワーク図で理解する


トラブルシューティングの実例

DNS がうまく機能していない場合、以下のような現象が起きます。

【DNS 問題の症状】

❌ サイトが開かない
  └ DNS 名前解決失敗 → IP 不明 → 接続不可

❌ サイトは開くが遅い
  └ DNS キャッシュ切れ → 毎回案内係に問い合わせ → 遅い

❌ 数時間前の DNS が残っている
  └ キャッシュが有効期限切れになっていない → 古い IP を使用

Linux / macOS で手動確認:

# DNS 名前解決を実行
nslookup example.com

# DNS キャッシュをクリア(macOS)
sudo dscacheutil -flushcache

# DNS キャッシュをクリア(Linux)
sudo systemctl restart systemd-resolved

ビフォーアフターで確認

【ビフォー】
DNS → よくわからない用語
ドメイン名 → サイトの名前?
IPアドレス → 何番目ですか?
名前解決 → ???

【アフター】
DNS → 電話帳みたいにドメイン名を IPアドレスに変換する
ドメイン名 → 人間向けの名前(example.com)
IPアドレス → コンピューター向けの番号(93.184.216.34)
名前解決 → 電話帳を引いて名前から番号を調べること

DNS に関する豆知識

【実務で出てくる DNS の種類】

A レコード
  → ドメイン名と IPv4 アドレスの対応
  → 最も基本的な DNS レコード

AAAA レコード
  → ドメイン名と IPv6 アドレスの対応
  → IPv6 対応サイト用

MX レコード
  → メール受信サーバーの指定
  → example.com へのメールはここで受け取ってね

CNAME レコード
  → ドメインの別名設定
  → example.com と www.example.com を同じサーバーに向ける

まとめ

この記事では以下のことを解説しました。

  • DNSは「ドメイン名をIPアドレスに変換する電話帳」
  • 名前解決は「電話帳を引く」という意味、DNS サーバーに問い合わせること
  • 複数の DNS サーバーが階層構造で連携している(ローカル→ルート→TLD→権威)
  • DNS キャッシュは「調べた結果を手帳に書き留める」で高速化している
  • **TTL(有効期限)**があるから、長時間の古い情報が残ることはない

「DNS?何それ」が「あ、電話帳システムか」に変わりましたか?

次は HTTPS や TLS (SSL) の仕組みを学ぶと、通信セキュリティの全体像がもっとつながりますよ!


ハンズオンラボでは、未経験からでも「作って覚える」をモットーにしたITハンズオンイベントを定期開催しています。

👉 イベント一覧はこちら


面白かったら
「👇いいね」で応援

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?