LESSON 30分

名前解決の仕組み

ストーリー

「先輩、DNSがドメイン名をIPアドレスに変換するのは分かりました。でも、具体的にどういう順番で調べるんですか?」

「いい質問だね。実はDNSの名前解決って、何段階ものステップを経ているんだ」

「何段階も!?」

「でも心配しないで。一度流れを理解すれば簡単だよ」


名前解決(DNS Resolution)とは

ドメイン名からIPアドレスを調べることを 名前解決 と呼びます。

www.example.com → 名前解決 → 93.184.216.34

名前解決の全体フロー

www.example.com にアクセスしたときの流れ:

Step 1: ブラウザのキャッシュを確認
    ↓ (見つからない)
Step 2: OSのキャッシュ・/etc/hostsを確認
    ↓ (見つからない)
Step 3: DNSリゾルバに問い合わせ
    ↓ (キャッシュにない)
Step 4: ルートDNSサーバーに問い合わせ
    ↓ 「.comのTLDサーバーはこれだよ」
Step 5: .com TLDサーバーに問い合わせ
    ↓ 「example.comの権威サーバーはこれだよ」
Step 6: example.comの権威DNSサーバーに問い合わせ
    ↓ 「www.example.comのIPは93.184.216.34だよ」
Step 7: DNSリゾルバがキャッシュして、結果を返す
    ↓
Step 8: ブラウザがIPアドレス宛てに接続

各ステップの詳細

Step 1〜2: ローカルキャッシュの確認

まず、一番近い場所(自分のPC)に答えがないか確認します。

[ブラウザ]
  「www.example.com のIPアドレスを知ってる?」
  → キャッシュにある → すぐにIPアドレスを使う
  → キャッシュにない → OS に聞く

[OS]
  /etc/hosts を確認 → あればそれを使う
  OSのDNSキャッシュを確認 → あればそれを使う
  → どちらにもない → DNSリゾルバに聞く

Step 3: DNSリゾルバへの問い合わせ

PCが設定されているDNSサーバー(通常はISPのDNSサーバー)に問い合わせます。

[あなたのPC] → 「www.example.com のIPは?」 → [DNSリゾルバ]

DNSリゾルバのキャッシュにあればここで解決。なければ次のステップへ。

Step 4: ルートDNSサーバーへの問い合わせ

[DNSリゾルバ] → 「www.example.com のIPは?」 → [ルートDNSサーバー]
[ルートDNSサーバー] → 「.com はこのTLDサーバーに聞いて」

ルートサーバーは「.com」「.jp」「.org」 などの管理先を知っています。

Step 5: TLDサーバーへの問い合わせ

[DNSリゾルバ] → 「www.example.com のIPは?」 → [.com TLDサーバー]
[.com TLDサーバー] → 「example.com はこの権威サーバーに聞いて」

TLDサーバーは「example.com」の権威サーバーの場所を知っています。

Step 6: 権威DNSサーバーへの問い合わせ

[DNSリゾルバ] → 「www.example.com のIPは?」 → [example.com 権威サーバー]
[権威サーバー] → 「93.184.216.34 だよ」

権威サーバーが最終的な「正解」を返します。

Step 7〜8: 結果の返却と接続

[DNSリゾルバ] → キャッシュに保存
[DNSリゾルバ] → 「93.184.216.34 だよ」 → [あなたのPC]
[ブラウザ] → 93.184.216.34 に接続 → Webページが表示される

再帰問い合わせと反復問い合わせ

再帰問い合わせ

PCがDNSリゾルバに「答えを見つけてきて」と丸投げする方式。

[PC] → 「www.example.com のIPを教えて」 → [リゾルバ]
       ← 「93.184.216.34 だよ」        ←

反復問い合わせ

DNSリゾルバがルート→TLD→権威サーバーに順番に聞いていく方式。

[リゾルバ] → ルート    → 「.com TLDに聞いて」
[リゾルバ] → .com TLD  → 「権威サーバーに聞いて」
[リゾルバ] → 権威      → 「93.184.216.34 だよ」

通常、PCからリゾルバへは再帰問い合わせ、リゾルバから各DNSサーバーへは反復問い合わせが使われます。


名前解決にかかる時間

キャッシュがある場合

所要時間: 1ms 以下

キャッシュにヒットすれば、ほぼ瞬時に解決します。

キャッシュがない場合(フル解決)

所要時間: 20〜100ms程度

ルートサーバーから順番に問い合わせるため、少し時間がかかります。

実感

通常はキャッシュのおかげで遅延を感じることはありません。ただし、初めてアクセスするサイトや、キャッシュが切れた直後は少し遅く感じることがあります。


逆引き(Reverse DNS)

通常の名前解決は「名前→IPアドレス」ですが、逆に「IPアドレス→名前」を調べることもできます。

正引き: www.example.com → 93.184.216.34
逆引き: 93.184.216.34  → www.example.com

逆引きはメールサーバーの認証やログの分析で使われます。


まとめ

ポイント内容
名前解決ドメイン名からIPアドレスを調べること
解決の順序キャッシュ → リゾルバ → ルート → TLD → 権威
キャッシュ結果を一時保存して高速化
逆引きIPアドレスからドメイン名を調べること

チェックリスト

  • 名前解決の流れを順番に説明できる
  • DNSリゾルバの役割を理解した
  • ルート→TLD→権威サーバーの階層を理解した
  • キャッシュが名前解決を高速化することを理解した

次のステップへ

名前解決の仕組みが理解できましたね。

次のセクションでは、DNSレコードの種類 を学びます。Aレコード、CNAMEレコードなど、DNSにはさまざまな情報が登録されています。


推定読了時間: 30分