同じドメインでも応答が変わる3つの理由
ジオルーティング
地域ごとに別のエッジサーバー
キャッシュ
TTLもキャッシュも個別
スプリットホライズン
意図的に異なる回答
ネットワークごとにドメインの解決結果が違う理由
よくある混乱の元です。オフィスのネットワークからドメインを検索すると1つのIPアドレスが返り、スマートフォンのモバイル回線で同じドメインを調べると、まったく違うものが返ってくる。そして、どちらも同時に完全に正しいことがあります。
地理ベースと負荷ベースのルーティング
大規模なサイトやCDNは、各訪問者を最も近い、または最も負荷の低いサーバーへ誘導するために、クエリがどこから来たように見えるかに応じて、DNSクエリへの応答を変えることがよくあります。ある地域のリゾルバーは近くのエッジサーバーに誘導され、別の地域のリゾルバー、あるいはネットワークのピアリングが異なる別のISPというだけでも、別のサーバーに誘導されます。どちらも「間違い」ではなく、それぞれ異なる観測地点に最適化された、有効な答えです。
キャッシュが、ばらつきの第2の層を加える
地理ベースのルーティングに加えて、すべてのリゾルバーは、レコードのTTLの間、それぞれ独立して応答をキャッシュします。自宅のISPのリゾルバーは3分前の応答をキャッシュしているかもしれませんし、スマートフォンのキャリアのリゾルバーは、ちょうど今、新しく問い合わせているところかもしれません。両方のキャッシュが自然に期限切れになって更新されるまでは、同じドメインが、2つの異なる(どちらも現時点で有効な)答えを正当に示すことがあります。
- これは、CDNやグローバルに負荷分散されたサービスの背後にあるドメインでは、正常で想定どおりの状態です。
- 本当に問題になるのは、答えのどれかが、単に違うだけでなく、実際に到達できないか壊れている場合だけです。
- 監査のために、比較できる単一の答えが必要な場合は、異なる場所で取得した検索結果を比べるのではなく、毎回、一貫した観測地点(同じツール、同じネットワーク)から問い合わせてください。
セキュリティチェック、移行の確認、一般的な監視などのために、ドメインが全般的に何に解決されるのかを確認したい場合は、たまたま手元にあるデバイスの設定に頼るのではなく、固定された、よく知られた公開リゾルバーに対して直接解決すると、ネットワークごとのばらつきを追いかけずに、一貫した、比較可能な基準が得られます。
第3の意図的な原因:スプリットホライズンDNS
地理ベースのルーティングとキャッシュは、どちらも副次的なものです。答えを違うものにしようとした人はおらず、規模に伴う副作用にすぎません。スプリットホライズン(または「スプリットビュー」)DNSは違います。組織が、自社の企業ネットワークの内側から届くクエリには1つの答えを、それ以外のすべての人には別の答えを、意図的に返すように、ネームサーバーを設定するものです。社内専用のイントラネットのホスト名は、オフィスのWi-Fiではプライベートアドレスに解決され、外部からは何にも解決されない(あるいは公開のランディングページに解決される)ことがあります。オフィスのVPNに接続した会社のノートパソコンではドメインが問題なく解決されるのに、自宅からは解決されない場合、スプリットホライズンDNS(不具合ではありません)は、特に大きな組織では、実際によくある説明です。
| 原因 | 意図的か | 実際の問題を示すのは、次の場合 |
|---|---|---|
| 地理ベース / 負荷ベースのルーティング | はい。CDNやプラットフォームによる | 特定のリージョンの答えが、単に違うだけでなく、到達できない場合 |
| 独立したキャッシュ | いいえ。副次的なもの | 答えが、レコードの示すTTLをはるかに過ぎても古いままの場合 |
| スプリットホライズンDNS | はい。組織による | 設計上、ありえません。意図された動作です |
3つを素早く見分ける方法
実際には、これらを区別する最も速い方法は、その違いが、ネットワークの違いと相関しているのか、時間と相関しているのかを調べることです。異なる2つのネットワークからの検索が、今この瞬間に食い違っていて、それぞれを同じネットワークから1分後にもう一度確認しても、同じ結果になるなら、それは地理ベースのルーティングかスプリットホライズンで、クエリがどこから来たかに結び付いたものです。ほかに何も違いがないのに、数分あけた2回の検索の間に、1つのネットワークの答えが勝手に変わるなら、それは、実際に最近行われた変更にキャッシュが追いついたということです。この区別が重要なのは、3つのうち、予期しない到達できない答えという1つだけが、インシデントとして扱う価値のあるものだからです。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
関連記事
4つの結果と、それぞれ異なる次の対応
DNSタイムアウトとSERVFAILの違い
どちらも名前解決の失敗に見えますが、タイムアウトとSERVFAILは原因が異なり、次に取るべき対応も変わります。両者の違いと見分け方を解説します。
4つの結果と、それぞれ異なる次の対応
NXDOMAINとは?ドメインが解決されない理由
NXDOMAINは、DNSの観点ではそのドメインが存在しないことを意味します。タイムアウトでもサーバーの問題でもありません。実際の原因を解説します。
同じドメインでも応答が変わる3つの理由
ジオルーティング
地域ごとに別のエッジサーバー
キャッシュ
TTLもキャッシュも個別
スプリットホライズン
意図的に異なる回答
DNSの応答が場所によって変わる理由
地理的なDNS、CDNのルーティング、リゾルバーのキャッシュ、スプリットホライズン構成から、同じドメインでも応答が異なる理由を理解します。