example.com を打つと、なぜ正しいサーバに繋がるのか。DNSの名前解決の流れを、少し深く追いかけます。
DNSは「分散した電話帳」
DNSは、ドメイン名(www.example.com)をIPアドレスに変換する仕組みです。一箇所に全部あるのではなく、世界中のサーバに階層で分散しています。
登場するサーバ
- スタブリゾルバ … あなたのPC。問い合わせを投げる側。
- キャッシュDNS(フルサービスリゾルバ) … 代わりに探し回ってくれるサーバ。ISPや社内に。
- 権威DNSサーバ … そのドメインの正式な答えを持つサーバ。
名前解決の流れ(再帰問い合わせ)
www.example.com を引くとき、キャッシュDNSは根から順にたどります。
- ルートサーバへ「.com はどこ?」→ .comの権威サーバを教えてもらう
- .com権威へ「example.com はどこ?」→ example.comの権威を教えてもらう
- example.com権威へ「www は?」→ IPアドレスを教えてもらう
このように、上位から順にたどって答えにたどり着くのが「再帰問い合わせ」です。一度引いた結果はTTLの間キャッシュされ、次回は高速に返ります。
主なレコード
- A / AAAA … ドメイン → IPv4 / IPv6
- CNAME … 別名(
wwwはexample.comの別名、など) - MX … メールの宛先サーバ
- NS … そのドメインの権威サーバ
- TXT … SPF/DKIMなどの検証情報
調査コマンド
nslookup www.example.com
dig www.example.com A … 詳細に見るならdig
dig example.com NS … 権威サーバを確認
dig +trace www.example.com … ルートから辿る様子を可視化
トラブルの定番
- TTLとキャッシュ: レコードを変えても、TTLの間は古い値が返る。切替時は事前にTTLを短くしておく。
- 権威とキャッシュの取り違え: 「引けない」時、どのサーバに聞いているかを意識する。
- ネガティブキャッシュ: 「存在しない」という結果もキャッシュされる。
まとめ
DNSは、ルート→TLD→権威と階層をたどる分散システムです。dig +trace で流れを目で追うと、一気に腑に落ちます。名前解決は障害の切り分けでも頻出なので、レコード種別とTTLの挙動まで押さえておくと強いです。