「example.com」と打つだけでサイトが開くのは、名前を裏でIPアドレスに変換してくれる仕組みがあるからです。それがDNSです。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
これは何をする係?
DNSは、人が読める名前※1(example.com)を、機械が使うIPアドレス※2(番号)に変換する「インターネットの電話帳」です。
電話帳で「田中さん」を引くと電話番号が分かるように、DNSで「example.com」を引くとIPアドレスが分かります。あなたが名前を打つと、裏で自動的に番号へ変換され、その番号宛に通信が始まります。
登場人物メモ:
- ※1 名前(ドメイン名) — example.com のような、人が覚えやすい住所の呼び名
- ※2 IPアドレス — 機械が通信に使う番号の住所
この部分をもっと深く(中級)
DNSの答えを実際に探しに行くのがリゾルバ※1です。リゾルバは、自分が知らなければ住所帳の階層を上から順にたどって答えを持ち帰ります。
- リゾルバ(フルサービスリゾルバ)— あなたの代わりに世界中へ聞いて回る窓口
- 権威サーバ※2 — 「この名前の答えはこれ」と正式に持っているサーバ
この2つは役割が違います。リゾルバは「聞いて回る人」、権威サーバは「答えを持っている本人」です。
登場人物メモ:
- ※1 リゾルバ — 名前解決を代行する窓口。ふつうプロバイダかルーターにある
- ※2 権威サーバ — そのドメインの答えを正式に管理するサーバ
なぜ必要?
理由は、人と機械で「住所」の形が違うからです。
- 人は「example.com」のような名前で覚える(番号は覚えにくい)
- でも機械はIPアドレス(番号)でしか通信できない
- そこでDNSが、名前を打つたびに番号へ変換する
- おかげで人は番号を意識せず、名前だけでアクセスできる
さらに、サイトが引っ越して番号が変わっても、名前はそのまま使い続けられます。電話帳の番号だけ書き換えればよいのと同じです。
アニメーション『身近な例で解説』を開く
- あなた — =ブラウザの立場。送りたいけど連絡先を知らない
- 人脈最強の友達 — =DNSサーバの正体。その地域のあらゆる連絡先を知っている
- 相手のアカウント — =Webサーバ。届け先の連絡先が「IPアドレス」
この部分をもっと深く(中級)
リゾルバが答えを持っていないとき、階層を上からたどります。
- リゾルバがルートサーバに聞く(「.com はどこが管理?」)
- TLDサーバ(.com の担当)に聞く(「example.com はどこが管理?」)
- 権威サーバ(example.com 本人)に聞く(「IPアドレスは?」)
- 得られた答えを、リゾルバがあなたに返す
あなたの端末がリゾルバに「答えそのものを持ってきて」と頼む聞き方を再帰問い合わせ、リゾルバが各サーバに「次はどこへ聞けばいい?」と紹介をたどって聞くやり取りを反復問い合わせと呼びます。
アニメーション『DNSの名前解決(再帰)』を開く
- あなた(リゾルバ) — 名前からIPを調べる係。知らなければ上位へ聞きに行く
- ルートサーバ — 住所帳の最上位(世界の目次)。「.com」の担当を教えてくれる
- TLDサーバ(.com) — 「.com」を束ねる担当。「example.com」の担当を教えてくれる
- 権威サーバ(example.com) — この名前の最終回答(Aレコード)を持つサーバ
身近な例で
- 電話帳 — 名前で引くと番号が分かる。DNSはこれのインターネット版
- 登録された連絡先 — 「お母さん」をタップすれば番号を覚えていなくてもかけられる
- 引っ越し — 番号(IP)が変わっても、名前を知っていればつながる
名前を覚えるのは人、番号で動くのは機械。その間をDNSがつないでいます。
この部分をもっと深く(中級)
毎回この階層を全部たどると遅いので、一度引いた答えはキャッシュ※3にしばらく残します。
- TTL※4 — 答えの賞味期限。この期間はキャッシュを使い回せる(2回目が速い理由)
- TTLが短いと最新に追随しやすく、長いと負荷は減るが更新が遅れる
答えは用途別のレコードとして管理されます。
- A — 名前に対するIPv4アドレス
- AAAA — 名前に対するIPv6アドレス
- CNAME — 別名(「この名前は、あの名前の別名」)
- MX — そのメールの宛先サーバ
登場人物メモ:
- ※3 キャッシュ — 一度引いた答えの控え。2回目のアクセスが速い主因
- ※4 TTL — 控えの賞味期限。切れたら引き直す
⚠️ うまくいかないとき
- 名前が存在しない — 電話帳に載っていない。「サーバが見つかりません」になる
- 電話帳が古い — 引っ越し直後は、しばらく古い番号を案内されることがある
- 電話帳が応答しない — DNSサーバに届かないと、名前を打っても番号が引けない
名前から引いた番号(IP)で外へ出る出口は ルーター が担い、家の住所を公開住所に変える NATとポート とセットで働きます。
この部分をもっと深く(中級)
- 名前が存在しない — 権威サーバが「そんな名前はない」と返す(NXDOMAIN)
- キャッシュが古い — 引っ越し直後、TTLが切れるまで古いIPへ案内される
- リゾルバが応答しない — タイムアウトして予備のDNSへ。全滅なら接続不能
- 設定ミス — レコードの打ち間違いで、意図しないサーバへ誘導される
この名前解決は、ページ表示の第一歩です。続きは URLを開くと何が起きるか で、接続・注文・組み立てまで通してたどれます。引いたIPで外へ出る出口の変換は NATとポート が担います。
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. 名前(example.com)を、機械が使うIPアドレスに変換する「インターネットの電話帳」を、英字3文字で答えてください。
問2. DNSが必要な理由として最も適切なのは?
問3. DNSを一言でいうと?
問4. サイトが引っ越してIPアドレス(番号)が変わっても、利用者が名前でアクセスし続けられるのはなぜ?
問5. 名前を打ったのに番号が引けず「サーバが見つかりません」となる状況に最も近いのは?
問6. 引っ越した直後、しばらく古いサイトへ案内されてしまうことがあるのはなぜ?
問7. 機械が通信に使う「番号の住所」を、カタカナで何と呼ぶか答えてください。
問8. DNSはよく「インターネットの◯◯」と呼ばれます。◯◯に入る言葉を漢字3文字で答えてください。