〜「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ハンズオンイベントを定期開催しています。
面白かったら
「👇いいね」で応援