検索結果にオリジンではなくCDNが表示される理由
訪問者
ドメインを検索
CDNエッジ
104.21.x.x
DNSが返すのはこれ
オリジンサーバー
実際のIPは非公開
CDNがDNSでトラフィックを振り分ける仕組み
CDNの基本的な約束は、世界中のアクセスを1台のオリジンサーバーで受けるのではなく、各訪問者の物理的に近いサーバーからコンテンツを配信することです。多くの実装で、これを可能にしている仕組みがDNSです。具体的には、まったく同じ問い合わせに対して、訪問者ごとに異なる答えを返します。
同じドメインでも、意図的に答えを変える
ドメインの前段にCDNを置くと、そのDNSレコードは通常、単一のオリジンIPではなく、CDNプロバイダー自身のインフラを指します(多くはCNAME経由)。CDNのネームサーバーは、届いたクエリがどこから来たように見えるかに応じて答えを変え、その訪問者にとって最も近い、あるいは負荷が最も低いエッジ拠点のIPアドレスを返します。地球の反対側にいる2人が同じドメインを問い合わせて、まったく異なるIPアドレスが返ってくることは、正常な動作です。
- このため、同じドメインのIP検索を2つの異なる場所から実行して結果が違っても、バグではありません。システムが意図どおりに動いているのです。
- CDNを前段に置いたドメインが、繰り返し検索すると複数のアドレスに解決されやすいのも同じ理由です。唯一の「正解」は存在せず、その時点で適切な答えがあるだけです。
- これらのレコードでTTLが短いのは一般的です。長いキャッシュ期間の経過を待たずに、CDNが調子の悪いエッジ拠点からトラフィックをすばやく逃がせるようにするためです。
デバッグするときに意味すること
CDNを前段に置いたサイトが、一部の訪問者にだけ異常な動きをするとき、複数の観測地点がそのドメインを実際にどのアドレスに解決しているかを調べるのが、多くの場合、最も手早い方法です。特定のエッジ拠点が原因なのか、オリジンやアプリケーション自体が原因なのかを切り分けられます。ブラウザー自身のDNSキャッシュを介さず、直接名前解決して生の答えを表示するツールを使えば、いま特定の地域に実際に何が返されているかを、よりクリーンに把握できます。
オリジンサーバーの実際のアドレスは意図的に隠されている
知っておく価値のある副次的な効果があります。CDNを前段に置いたドメインを名前解決して分かるのは、エッジネットワークのアドレスであり、その背後にあるオリジンサーバーのアドレスではありません。これは通常、偶然ではなく設計どおりです。オリジンの実際のIPを公開DNSに出さないことは、サイトにとって最も簡単で効果的な防御の1つです。手前にあるCDNのはるかに大きな処理能力ではなく、実際のインフラを直接狙うサービス拒否攻撃への備えになるからです。同時に、ドメインを検索するだけでは、そのサイトが「本当に」どこでホストされているかは分からないことも意味します。分かるのは、トラフィックが現時点でCDNのネットワークに入る場所だけで、これはまったく別の問いです。
| シグナル | CDNの背後 | オリジンへ直接 |
|---|---|---|
| 同じ場所からの繰り返し検索 | 通常は安定している | 通常は安定している |
| 異なる地域からの検索 | 異なるアドレスになることが多い | 通常はどこでも同じアドレス |
| TTL | 通常は短い(60〜300秒) | 長いことが多い(数時間以上) |
| 解決されたアドレスの所有者 | CDNプロバイダー | サイト自身のホスティングプロバイダー |
解決されたアドレスのWHOISやASNを調べる
ドメインがCDNの背後にあるかどうかを手軽に確かめるには、ドメインの検索とは別に、解決されたIPアドレスの所有者を調べる方法があります。解決されたアドレスが、有名なCDNやクラウドプロバイダーの自律システム番号(ASN)に登録されていれば、見ているのはオリジンサーバーではなくエッジネットワークである可能性が高いと判断できます。同じドメインが地域によって異なるアドレスを示す理由も、何も問題がなくてもそうなる理由も、すぐに説明がつきます。これは検索の代わりではなく、検索のあとに行う有用な2つ目のステップです。DNSの答えは現在のアドレスを教え、所有者の検索は、そのアドレスが実際にどのような種類のインフラに属しているかを教えてくれます。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
関連記事
1つのホスト名に複数のAレコード
1つ目の回答
93.184.216.34
2つ目の回答
93.184.216.35
3つ目の回答
93.184.216.36
リゾルバーはすべてのレコードを返し、通常は順序をローテーションする
DNSラウンドロビンとは:複数IPへの分散
DNSラウンドロビンが複数のアドレスを返す仕組み、負荷分散でできることとできないこと、キャッシュが観測結果に与える影響を解説します。
1つのホスト名に複数のAレコード
1つ目の回答
93.184.216.34
2つ目の回答
93.184.216.35
3つ目の回答
93.184.216.36
リゾルバーはすべてのレコードを返し、通常は順序をローテーションする
DNSロードバランシングの方式と利点、限界
DNSによるトラフィック分散とアプリケーションロードバランサーを比較し、TTL、ヘルスチェック、地域別の応答が可用性に与える影響を解説します。
検索結果にオリジンではなくCDNが表示される理由
訪問者
ドメインを検索
CDNエッジ
104.21.x.x
DNSが返すのはこれ
オリジンサーバー
実際のIPは非公開
オリジンサーバーとは?CDNとの違い
CDNやリバースプロキシの背後でオリジンサーバーが果たす役割、公開DNSにエッジのアドレスが表示される理由、安全なトラブルシューティングの方法を解説します。