1つのIPに1台のサーバー、または1つのIPに多数
ユニキャスト
1つのIPが1台のサーバーに対応
エニーキャスト
1つのIPを多拠点からアナウンス
エニーキャストDNSとは?仕組みと利点
通常、1つのIPアドレスは特定の1台のマシンを指し、特定の1本のネットワーク経路で到達します。エニーキャストは、この前提を意図的に崩します。同じIPアドレスを、物理的に離れた世界中の多数の拠点から、同時にアナウンスするのです。インターネットのルーティングは、各リクエストを、送信元からトポロジー上で最も近いアナウンス元に届けます。物理的な距離が最も近いとは限らず、ネットワーク経路として最も近い拠点が選ばれます。
DNSインフラがエニーキャストを多用する理由
1.1.1.1 や 8.8.8.8 といった公開リゾルバーは、エニーキャストアドレスです。東京から 1.1.1.1 に問い合わせる人と、ベルリンから同じアドレスに問い合わせる人は、設定に入力しているIPアドレスがまったく同じでも、実際にはそれぞれ別の物理サーバー、つまりネットワーク上で最も近いサーバーに到達しています。これにより、覚えやすい1つのIPアドレスで、世界中どこからでも安定して低遅延を実現できます。場所に関係なく全員が1つの物理データセンターに向かう構成とは対照的です。
| ユニキャスト | エニーキャスト | |
|---|---|---|
| 1つのIPアドレスの対応先 | ちょうど1台の物理サーバー | 多数の物理サーバーが同時に対応 |
| ルーティングの決まり方 | 固定された単一の経路 | トポロジー上で最も近いアナウンス元 |
| ある拠点がオフラインになった場合 | サービスに到達できなくなる | 次に近い拠点にトラフィックが移る |
| DDoSの影響 | 攻撃トラフィックが1つの標的に集中する | 攻撃トラフィックが自然にすべての拠点へ分散する |
- 耐障害性:エニーキャストの拠点の1つがオフラインになっても、ルーティングが次に近い拠点へ切り替わるだけで、クライアントはまったく気づかないことも少なくありません。
- DNS専用の技術ではありません。CDNや、遅延に敏感な一部のサービスも、同じ仕組みを使っています。
実際の使い方への影響
エニーキャストの恩恵を受けるために、設定を変える必要はありません。すべてネットワークのルーティング層で完結し、問い合わせを行うアプリケーションからは見えないからです。知っておく価値があるのは、主に次の理由からです。クラウドデータベースやコンピュートインスタンスのようにリージョンごとのエンドポイントを選ばなくても、大手の公開リゾルバーが世界中で高速かつ可用性を保てるのはなぜか、その説明になります。
「トポロジー上で最も近い」を決める仕組みはBGP
「ネットワーク経路として最も近い」かどうかは、物理的な距離をリアルタイムで測って決めているわけではありません。エニーキャストアドレスをアナウンスするネットワークは、インターネット上の個々のネットワークをつなぐルーティングプロトコルであるBGPを使ってアナウンスします。経路上の各ルーターは、BGP自身の指標で現時点で最も短く見える経路を選びます。基準になるのは通常、キロメートル数ではなくネットワークホップ数の少なさです。実際には、物理的な近さとおおむね一致しますが、完全ではありません。特にネットワーク障害や変則的なピアリングの周辺では、BGPの観点でより短く見える経路があれば、リクエストがやや遠い拠点にルーティングされることもあります。
エニーキャストがすべてに向くわけではない理由
エニーキャストは、1回のDNSクエリと応答のような、短くてステートレスなやり取りに最適です。後続のパケットが最初のパケットとは別の物理サーバーにルーティングされても、失うものは何もありません。一方で、長時間続くステートフルな接続には向きません。接続の途中でネットワーク経路が変わると(ルートフラップやピアリングの変更など)、エニーキャストのTCPセッションは、開始時とは別の物理エンドポイントに届いてしまい、単純に切断されます。新しいサーバーは、その接続が存在したことすら知らないからです。エニーキャストがDNSなどUDPベースのリクエスト・レスポンス型プロトコルと強く結び付いており、長時間のデータベース接続や動画ストリームにはあまり使われないのは、これが理由の1つです。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
関連記事
検索結果にオリジンではなくCDNが表示される理由
訪問者
ドメインを検索
CDNエッジ
104.21.x.x
DNSが返すのはこれ
オリジンサーバー
実際のIPは非公開
CDNがDNSでトラフィックを振り分ける仕組み
CDNの本領は、コンテンツが1バイトも要求される前のDNS層で発揮されます。訪問者ごとに異なる答えを返し、最適なエッジへ誘導する仕組みを解説します。
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、ヘルスチェック、地域別の応答が可用性に与える影響を解説します。