DNS名前解決の仕組み:サーバー、キャッシュ、障害の見分け方

Minimalist illustration of a cat next to a globe of DNS network nodes representing how DNS resolution works

ブラウザーがpudgycat.ioのような名前に対応するアドレスを必要とするとき、DNSが探すのを助けます。答えがすでにキャッシュされていることも、リゾルバーが別のサーバーへ尋ねることもあります。このガイドでは、その過程、答えが変わる理由、名前検索の問題とサイト自体の不調を見分ける考え方を説明します。誰も開いた覚えのないものにしては、インターネットの住所録はずいぶん忙しいのです。

目次

DNSとは何か、なぜ必要か

Domain Name Systemは、名前と、IPアドレスを含む各種レコードを関連付けます。ブラウザーはアドレスを使ってサービスへ接続できますが、DNSはメールの配送先なども支えます。ウェブページそのものを取得するわけではありません。「行き先を探す」と「接続する」は関連した別の仕事で、それぞれ独立に失敗できます。

初期のインターネットでは、ホスト名の対応表を中央のHOSTS.TXTファイルで配っていました。ポール・モカペトリスのDNS仕様は、その方法を大規模にする難しさを説明しています。代わりにDNSは、階層に沿って責任を分散します。その歴史は徐々に導入され進化したもので、世界中が一日に設定を変えたわけではありません。

名前とIPアドレス

サービスの名前を変えずに、アドレスを変えられます。一つの名前が複数のアドレスレコードを持つこともあります。この柔軟さが、訪問者の覚える名前と、サービスを提供する機械やネットワーク上の場所を切り離します。DNSは、一つのサイトに永久に一つの番号があると保証しません。

DNS名前解決の手順

CloudflareのDNS解説に沿った、簡略化した検索の道筋です。ブラウザー、OS、ネットワークの設定で変わることがあり、ページを開くたびに繰り返す八駅の旅ではありません。

  1. ローカルで探す。ブラウザーやOSに、まだ使える答えがキャッシュされているかもしれません。
  2. ローカルの設定。hostsファイルやアプリの設定が名前解決に影響します。正確な優先順位はシステム次第です。
  3. リゾルバーを選ぶ。端末はネットワークのリゾルバー、設定した公開サービス、ブラウザーの暗号化DNSプロバイダーなどを使えます。
  4. 答えを求める。再帰リゾルバーはキャッシュから答えるか、検索を進めます。
  5. 適切な委任先を探す。必要なら、ルートサーバーへトップレベルドメインのサーバーの場所を尋ねます。
  6. 次の紹介をたどる。TLDサーバーが、ドメインの権威サーバーを案内します。
  7. レコードを得る。権威ある回答には、アドレス、追加検索が必要な別名、否定的な結果などがあります。
  8. 結果を返す。リゾルバーが応答し、条件を満たすレコードはキャッシュできます。その後、ブラウザーが接続を試みます。

検索時間に共通の値はありません。キャッシュの状態、ネットワーク上の距離、再試行、サーバー負荷、設定のどれも関係します。DNSはページ読込の一部にすぎず、すぐ答えが出ても、遅いアプリケーションサーバーを急がせることはできません。

広告

四つのDNSサーバーの役割

覚えておくと役立つ役割です。ルートとTLDのサーバーも、それぞれのゾーンに対する権威サーバーです。分類は位置と提供する機能を表し、互いに無関係な四種の機械を意味しません。

1. 再帰リゾルバー

再帰リゾルバーはクライアントの代わりに答えを探し、キャッシュされた情報や、ときには上流の別のリゾルバーも使います。家庭のルーターは、自分で全検索をせず転送するだけかもしれません。公開リゾルバーの運営者も、フィルタリングや保存の方針が異なります。「公開DNS」は、速さやプライバシーを一律に約束する言葉ではありません。

2. ルートネームサーバー

ルートサーバーにはAからMまで13の名前付き識別子があり、12の組織が、多数の分散した実体で運営しています。ルートサーバー運営者のサイトがその仕組みを説明しています。TLDへの委任を含むルートゾーンを提供します。「13のルート」とは、インターネット全体が列を作る13台の物理コンピューターではありません。

3. TLDネームサーバー

TLDの権威サーバーは、その下の名前への委任などを含むゾーンを提供します。過去に登録されたすべてのドメインの現役一覧を持つわけではなく、各サイトの最終アドレスを必ず含むわけでもありません。紹介の応答は、次にどこへ聞くかを教えます。

4. 権威ネームサーバー

権威サーバーはゾーンのデータを提供します。ドメイン管理者はDNS事業者や自分のシステムを通じて変更を公開し、冗長化した複数サーバーが同じゾーンを提供できます。「権威」はデータへの責任を示し、サイトの所有権や、運営者が正しく設定した保証を意味しません。

知っておきたいレコードの種類

DNSは目的ごとに異なる種類のレコードを使います。IANAの登録簿に、種類と仕様が載っています。一般的なものには次があります。

  • Aレコード:名前をIPv4アドレスへ対応させます。
  • AAAAレコード:名前をIPv6アドレスへ対応させます。「クアッドA」と読みます。
  • CNAMEレコード:別名です。たとえばwww.example.comをexample.comの別名にするように、名前から別の名前を指します。
  • MXレコード:メール交換先です。そのドメイン宛てのメールをどこへ届けるか、メールサーバーへ伝えます。
  • TXTレコード:任意の文字列です。SPF、DKIM、ドメイン所有確認に使われ、ネット配管の西部開拓地では、ときにはサービス設定にも使われます。
  • NSレコード:ネームサーバーです。ドメインの権威DNSサーバーを列挙します。
  • PTRレコード:別のドメイン名を指します。逆引きDNSのゾーンでは、アドレスと名前を関連付けます。サイトのAレコードを正確に逆転させる必要はありません。
  • SRVレコード:サービスの場所です。特定のサービスのホスト名とポートを定め、SIP、XMPP、Minecraftなどで使われます。
  • CAAレコード:認証局への許可です。そのドメインのHTTPS証明書を発行できる認証局を示します。

これらは端末から確認できます。LinuxとmacOSでは、dig pudgycat.ioがAレコードを返します。dig -t MX pudgycat.ioはメールのレコードを返します。Windowsではnslookupが同様の仕事をします。

キャッシュとTTL

DNSリソースレコードには、秒で表すTTLがあり、通常はキャッシュから再利用できる期間を制限します。RFC 1035がこのフィールドを定義しています。次の時間はトレードオフを示す例で、必須設定ではありません。

  • 300秒:5分。
  • 3600秒:1時間。
  • 86400秒:1日。

権威レコードを変えても、キャッシュのコピーは即座に消えません。予定した変更の前にTTLを下げると役立ちますが、古いTTLで保存されたコピーは、その期限まで時間が必要です。否定的な回答も、RFC 2308が説明するようにキャッシュできます。定められた障害条件下で期限切れデータを返すリゾルバーもあるため、TTLは見えるすべての結果に共通するストップウォッチではありません。

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

この二語はよく混同されます。同じ連鎖の中での異なる役割を示します。

再帰問い合わせは、紹介をクライアント自身にたどらせず、リゾルバーに答えを得てもらう要求です。小さなクライアント側のリゾルバーは、しばしばスタブリゾルバーと呼ばれます。したがって「リゾルバー」が常に公開の再帰サービスを意味するわけではありません。

反復問い合わせでは、問い合わせるリゾルバー自身が紹介をたどれます。委任先の情報が十分キャッシュされていれば、ルートやTLDへの段階を飛ばせます。階層が説明するのは責任の所在であって、固定の旅程ではありません。

委任は責任を分散し、キャッシュは仕事の繰り返しを避けます。誰かがすでに持つ情報で実際の道が短縮されても、構造の工夫はそこにあります。

DNSSEC、DoH、DoTの安全性

古典的なDNSには困った性質が二つあります。暗号化されず、答えを認証しないことです。三つの現代的なプロトコルは、問題の別々の部分に対処します。

DNSSEC

DNSSECでは、検証するリゾルバーが、信頼の連鎖を通じて署名付きDNSデータの真正性と完全性を確認できます。問い合わせを暗号化したり、サイトが無害だと証明したり、未署名のデータを魔法で認証したりはしません。検証の連鎖が壊れること自体が、名前解決の失敗原因にもなります。

DNS over HTTPS(DoH)

DNS over HTTPS(DoH)は、暗号化したHTTPS接続でDNSメッセージを運びます。その通信を直接の盗聴や改変から守ります。選んだリゾルバーは依然として問い合わせを処理し、暗号化DNSが訪問先に関するすべての手がかりを隠すわけではありません。HTTPSの包装は完全な透明マントではないのです。

DNS over TLS(DoT)

DNS over TLS(DoT)は、通常ポート853で、TLSに保護されたDNS接続を使います。専用ポートなので、普通のHTTPSと区別しやすい通信になります。DoHと同じく、保護するのは設定された暗号化接続であり、サイト訪問の全段階ではありません。

広告

暗号化通信と署名されたDNSデータは、別のリスクに向き合います。どちらも、信頼できるリゾルバーを選ぶ必要をなくしません。特に、悪意あるリゾルバーとの接続を暗号化しても、返答が正直になるわけではありません。

DNSが壊れるとき:よくある問題

サイトへ行けない原因は、ネットワーク、TLS、ホスティング、アプリケーション、データベースなどにもあり、DNSはその一候補です。設定を変える前に症状を確認しましょう。DNS関連のよくある結果には次があります。

  • NXDOMAIN:問い合わせた名前が存在しません。名前は存在しても要求した種類のレコードがない場合は、一般にNODATAと呼ぶ別の否定的回答です。
  • SERVFAIL:名前解決に失敗しました。DNSSECの検証エラーは、上流やサーバーのほかの問題と並ぶ原因の一つです。
  • 古い答えのキャッシュ:以前のレコードがまだTTL内かもしれません。ローカルのキャッシュを消しても、上流のリゾルバーすべては消せません。
  • 間違った答え:設定ミスや改ざんが誤った検索先へ導くことがあります。DNSSEC検証と暗号化通信の保護の役割は、異なり、限られています。
  • リゾルバーの障害:許可された別のリゾルバーを使うと、地域の事業者の問題を診断できる場合があります。壊れた権威ゾーンや停止したウェブサーバーを直せるわけではありません。

2016年10月のDynへの攻撃は、DNS事業者の障害が多くのサービスへのアクセスへ同時に影響し得ることを示します。保存されているDynの障害分析は、マネージドDNS基盤への攻撃を説明し、1.2 Tbps規模という報道は確認できなかったと明記しています。教訓を得るのに、未確認の数字を事実に変える必要はありません。

名前から画面上の再生物へ進む次の段階は、動画ストリーミングの解説(英語)をご覧ください。アドレスの解決は旅を始めますが、それだけで動画を届けるわけではありません。

よくある質問

DNS名前解決にはどれくらいかかりますか?

キャッシュ、ネットワークの状態、再試行の必要性によります。手元にキャッシュされた結果は非常に速く返せますが、キャッシュのない検索に信頼できる共通の最大時間はありません。

DNSリゾルバーとDNSサーバーの違いは?

DNSサーバーはDNSの問い合わせへ答えます。リゾルバーは答えを取得する部分で、クライアント側の小さなスタブの場合も再帰サービスの場合もあります。ルートとTLDのサーバーは通常、ブラウザーの代わりに再帰処理をするのでなく、権威あるゾーンデータを提供します。

DNSキャッシュを消すには?

Windowsでは、ipconfig /flushdnsでDNSクライアントのリゾルバーキャッシュを消します。ほかのOSやアプリには、それぞれバージョンによって異なる手順があります。一つのキャッシュを消しても、権威レコードやプロバイダーのキャッシュは変わりません。

リゾルバーを変更すべきですか?

問題の切り分けには役立つ場合がありますが、性能とプライバシーは事業者やネットワークによって異なります。職場や学校の端末は、内部サービスのために特定のリゾルバーが必要かもしれません。適用される設定や方針を確認し、元の構成を記録してから変更してください。別のリゾルバーは、遅い接続の万能薬ではありません。

DNSでサイトをブロックできますか?

はい。リゾルバーは返答を拒否したり変更したりできますが、DNSフィルタリングは遮断方法の一つです。共有ホスティングやHTTPSでは、IPを直接入力してもうまくいかないことがあります。暗号化DNSとDNSSECは、制限を必ず回避する方法ではありません。ほかのネットワーク制御はなお働きます。

覚えておきたいこと

名前が解決しなくなるまで、DNSは忘れられがちです。役立つモデルは、訪問のたびに必ず動く硬直した鎖ではなく、キャッシュに支えられた責任の階層です。サイトが失敗したら、DNSを調べる価値はありますが、自動的に有罪にはできません。インターネットの住所録でも、お昼に出かけたデータベースは直せないのです。

2026-05-26公開の英語版の記事を日本語に翻訳しました。翻訳日:2026年10月30日。翻訳にはAIを使用し、記事内の時点は原文に合わせています。

広告
この記事を共有