Domain IP Lookup

1つのホスト名に複数のAレコード

1つ目の回答

93.184.216.34

2つ目の回答

93.184.216.35

3つ目の回答

93.184.216.36

リゾルバーはすべてのレコードを返し、通常は順序をローテーションする

インフラと運用

1つのドメインに複数のIPアドレスがある理由

読了時間:4分

大規模なサイトを検索すると、3つ、4つ、あるいは8つものアドレスが返ってくることがよくあります。別の国から調べ直すと、リストがまったく変わることもあります。これを生む仕組みは4種類あり、それぞれ意味するところは大きく異なります。

1つのホスト名に複数のAレコード

1つ目の回答

93.184.216.34

2つ目の回答

93.184.216.35

3つ目の回答

93.184.216.36

リゾルバーはすべてのレコードを返し、通常は順序をローテーションする

1つのホスト名に、複数のAレコード。リゾルバーはそのすべてを、たいていは順序を入れ替えながら返します。

1. ラウンドロビンDNS

最も単純な方法は、同じ名前に対して複数の A レコードを公開することです。リゾルバーはそれらを順序を入れ替えながら返すため、クライアントごとに、最初に試すサーバーが変わります。

1つの名前に3つのAレコード
example.com.    300    IN    A    93.184.216.34
example.com.    300    IN    A    93.184.216.35
example.com.    300    IN    A    93.184.216.36

インフラを追加せずに負荷を分散できます。ただし、制限は深刻です。DNSにはヘルスチェックがありません。 1台のサーバーが停止しても、人間がレコードを削除するまでそのアドレスは配られ続け、訪問者のおよそ3分の1が失敗します。

2. ジオルーティング(GeoDNS)

この方法では、権威ネームサーバーが、クエリがどこから来たのかを調べ、その場所に適した答えを返します。ヨーロッパにいる訪問者にはフランクフルトのアドレスが、アジアにいる訪問者にはシンガポールのアドレスが返ります。

同じドメインでも、同じ瞬間に、2人の人が正当に異なる答えを得るのは、このためです。どちらも古くなっているわけでも、間違っているわけでもありません。ネームサーバーが意図的に、異なる応答を返したのです。

重要なポイント

ジオルーティングでは、ドメインに唯一の正しい答えというものはありません。答えは、誰が、どこから問い合わせているかによって決まります。

3. エニーキャスト

エニーキャストは、4つの中で最も洗練された方法で、DNSよりも下の層で完全に機能します。同じアドレスが、多数の場所から同時に広告され、インターネットのルーティングが、各パケットを、ネットワーク上で最も近い場所に届けます。

ジオルーティングエニーキャスト
機能する層DNS層ルーティング層(BGP)
返されるアドレスリージョンごとに異なる常に同一
フェイルオーバーの速さDNSのTTLを待つ数秒。ルーティングが再収束する
検索で見えるか見える。応答が異なる見えない。1つの普通のアドレスに見える

有名な例が 1.1.1.1 です。地球上のどこでも同じ4つの数字で、数百か所の別々のデータセンターが応答します。エニーキャストはDNS検索からは見えず、まさにそれが、非常に効果的な理由です。

4. デュアルスタック:AとAAAAの併用

最もよくあり、最も面白みのない理由です。IPv4とIPv6の両方を公開しているドメインは両方を返し、クライアントは、対応しているほうを選びます。

ロードバランシングではなく、2つのアドレスファミリー
example.com.    3600    IN    A       93.184.216.34
example.com.    3600    IN    AAAA    2606:2800:220:1::248

デュアルスタックのクライアントは、一般にIPv6を優先し、IPv4にフォールバックします。詳しくは AレコードとAAAAレコード をご覧ください。

クライアントがリストをどう扱うか

複数のアドレスが返ってくるのは、話の半分にすぎません。そのあとの動作はクライアントが決めており、最近の動作は以前よりも賢くなっています。

関連する仕組みが、RFC 8305で定義されたHappy Eyeballsです。IPv6とIPv4の両方のアドレスを与えられたブラウザーは、片方を試してタイムアウトを待ち、それからもう片方を試す、ということはしません。まずIPv6の接続を開始し、短い間隔(通常は250ミリ秒前後)待って、それでも接続できなければ、IPv4の試行を並行して開始します。先に完了したほうが採用され、負けたほうは破棄されます。

実用上の結果として、リストの中に壊れたアドレスがあっても、完全な失敗ではなく、速度の低下で済みます。これはセーフティネットであって、免罪符ではありません。応答のないアドレスは、フォールバックまでの遅延という形で、すべての訪問者にコストを課します。

DNSが適切なツールではない場面

ラウンドロビンDNSは、ロードバランサーの代わりとして持ち出されることがよくあります。できないことを、はっきり理解しておく価値があります。

機能ラウンドロビンDNS本物のロードバランサー
ヘルスチェックなし。停止したサーバーも掲載されたまま障害のあるバックエンドを数秒で除外する
トラフィックの重み付けなし。おおむね均等バックエンドごとの重み
セッションアフィニティなし対応
フェイルオーバーの速さTTLの期限切れを待つ即時
コスト無料運用または支払いが必要なサービス

正直にまとめると、ラウンドロビンDNSは、負荷の分散は十分にこなせますが、障害への対応は苦手です。サーバーが停止したときに、訪問者の一部が一緒に巻き込まれては困るなら、ヘルスチェックが必要です。つまり、ロードバランサー、エニーキャストのプロバイダー、あるいはヘルスチェックを実行し、障害のあるレコードを自動的に取り下げるマネージドDNSサービスが必要になります。

それぞれの見分け方

観察される状況最も可能性の高い原因
複数のIPv4アドレスが、毎回同じラウンドロビンDNS
国によって、異なるアドレスが返るジオルーティング
アドレスは1つで、どこからでも高速エニーキャスト
ドット区切りとコロン区切りのアドレスが混在デュアルスタック。分散ではありません
アドレスの逆引きがCDNのホスト名になるCDNのエッジノード
異なるリゾルバーから確認して、ジオルーティングを見つける
dig +short example.com @1.1.1.1
dig +short example.com @8.8.8.8

ドメインを検索するときに、これが意味すること

1回の答えに、どれだけの重みを置くかが変わります。

  • 複数のアドレスは、健全な状態です。 通常は設定ミスではなく、冗長性を示しています。
  • あなたの答えが、普遍的とは限りません。 ジオルーティングやCDNでは、別の場所にいる人には別のものが見えており、どちらも正しいのです。
  • ハードコードしないでください。 アドレスはローテーションし、置き換えられ、再割り当てされます。名前は、必ず接続時に解決してください。
  • 順序に意味はありません。 ローテーションは意図的であることが多く、最初のアドレスがプライマリとは限りません。

検索ツール は、最初の1つだけではなく、受け取ったすべての A と AAAA レコードを一覧表示します。そのため、公開されているセット全体を一度に確認でき、一括モードを使えば、複数のドメインを並べて比較するのも簡単です。

ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。

よくある質問

関連記事

検索結果にオリジンではなくCDNが表示される理由

訪問者

ドメインを検索

CDNエッジ

104.21.x.x

DNSが返すのはこれ

オリジンサーバー

実際のIPは非公開

インフラと運用

CDNがオリジンIPを隠す理由と、その意図

ドメインを検索したらCloudflareのアドレスが返ってきましたか。それは、システムが正しく動いている証拠です。その背後に何があり、なぜ見通せないのかを解説します。

読了時間:3分

ほぼすべてのゾーンで出会うレコード

Aホスト名をIPv4アドレスに対応付け
AAAAホスト名をIPv6アドレスに対応付け
CNAMEホスト名を別のホスト名に対応付け
MXドメインをメールサーバーに優先度順で対応付け
TXTドメインを任意のテキストに対応付け。SPF、DKIM、所有確認など
NSドメインを応答するネームサーバーに対応付け
DNSの基礎

DNS Aレコードとは?AAAAが必要になる場面

ドメインを実際にサーバーへ向けるレコードです。その構造、対となるAAAAレコード、サイトが最も壊れやすい4つの間違いを解説します。

読了時間:3分

再帰的なDNS検索を1ホップずつ見る

ブラウザー

example.comを要求

リゾルバー

ISP / 1.1.1.1

ルート + TLD

.comの管理元は?

権威サーバー

正式な回答

この連鎖の各ホップはそれ自体がDNS検索で、結果はその後キャッシュされます

DNSの基礎

DNSの仕組み:ドメイン名からIPアドレスまで

インターネットの電話帳を、端から端まで追跡します。ドメインを入力してから最初のパケットがサーバーに届くまでの数ミリ秒に、何が起きているのかを解説します。

読了時間:3分