# DNS — インターネットの電話帳

> レベル: 初級 ／ 対象: 大人
> 出典: Kotowary — https://kotowary.com/learn/units/dns?level=beginner&audience=adult
「example.com」と打つだけでサイトが開くのは、名前を裏でIPアドレスに変換してくれる仕組みがあるからです。それが**DNS**です。

## これは何をする係？

DNSは、人が読める**名前**※1（example.com）を、機械が使う**IPアドレス**※2（番号）に変換する「**インターネットの電話帳**」です。

電話帳で「田中さん」を引くと電話番号が分かるように、DNSで「example.com」を引くとIPアドレスが分かります。あなたが名前を打つと、裏で自動的に番号へ変換され、その番号宛に通信が始まります。

**登場人物メモ**:

- **※1 名前（ドメイン名）** — example.com のような、人が覚えやすい住所の呼び名
- **※2 IPアドレス** — 機械が通信に使う番号の住所

## なぜ必要？

理由は、**人と機械で「住所」の形が違う**からです。

1. 人は「example.com」のような**名前**で覚える（番号は覚えにくい）
2. でも機械は**IPアドレス（番号）**でしか通信できない
3. そこでDNSが、名前を打つたびに**番号へ変換**する
4. おかげで人は番号を意識せず、名前だけでアクセスできる

さらに、サイトが引っ越して番号が変わっても、**名前はそのまま**使い続けられます。電話帳の番号だけ書き換えればよいのと同じです。

::diagram{name="dns-metaphors"}

## 身近な例で

- **電話帳** — 名前で引くと番号が分かる。DNSはこれのインターネット版
- **登録された連絡先** — 「お母さん」をタップすれば番号を覚えていなくてもかけられる
- **引っ越し** — 番号（IP）が変わっても、名前を知っていればつながる

名前を覚えるのは人、番号で動くのは機械。その間をDNSがつないでいます。

## ⚠️ うまくいかないとき

- **名前が存在しない** — 電話帳に載っていない。「サーバが見つかりません」になる
- **電話帳が古い** — 引っ越し直後は、しばらく古い番号を案内されることがある
- **電話帳が応答しない** — DNSサーバに届かないと、名前を打っても番号が引けない

名前から引いた番号（IP）で外へ出る出口は [ルーター](/learn/units/router) が担い、家の住所を公開住所に変える [NATとポート](/learn/units/nat-and-ports) とセットで働きます。
