クイックダウンロード:
DNSエニーキャストは、地理的に異なる場所にある複数のDNSサーバーに同じIPアドレスを割り当て、BGPルーティングを使用して各クライアントのクエリをトポロジー的に最も近いサーバーに自動的に転送することで、クライアント側の変更なしにパフォーマンスと耐障害性を向上させます。
-
DNSエニーキャストは、地理的に離れた複数のサーバーに同じIPアドレスを割り当て、BGPルーティングの決定によって、各クライアントのクエリをトポロジー的に最も近いインスタンスに自動的に転送します。
-
エニーキャストは自動フェイルオーバー機能を提供します。サーバーにアクセスできなくなった場合、BGPルーティングによってクエリが最も近いインスタンスに自動的に切り替えられ、DNSの変更やクライアントの再設定は不要です。
-
ユニキャスト、マルチキャスト、ブロードキャストとは異なり、エニーキャストはDNSクライアントからサーバー選択を隠蔽します。DNSクライアントは単一のIPアドレスしか認識できず、エンドポイントの選択はネットワーク側で行われます。
-
エニーキャストは、DNSルートサーバー、TLDオペレーター、CDNプロバイダーなどで広く利用されています。主な運用上の課題は、ノード間でのデータ同期の一貫性と、トラブルシューティングの複雑さです。
広大なインターネットの世界では、無数のデバイスが遠距離を越えて容易に通信を行っています。この通信を円滑に行うのがドメインネームシステム(DNS)です。DNSは、ユーザーにとって分かりやすいドメイン名を機械が読み取れるIPアドレスに変換します。DNSは、ウェブサイトへのアクセス、メールの送信、オンラインサービスの利用を容易にする、まさに縁の下の力持ちと言えるでしょう。デジタル世界が進化するにつれ、DNSの効率性と信頼性はますます重要になり、シームレスなユーザーエクスペリエンスと迅速なデータ転送を実現するためのイノベーションを推進しています。
この記事では、この重要なサービスを強化する画期的な技術、DNS Anycastについて解説します。DNS Anycastは、DNSのパフォーマンスと堅牢性を向上させる独創的な手法です。DNS Anycastは、DNSサーバーを地理的に分散配置することで、応答性の向上と継続的な可用性を実現する画期的な技術として注目を集めています。Anycastにより、ユーザーは最寄りのDNSサーバーに自動的に接続できるため、ウェブサイトの読み込み速度が向上し、サービスの安定性が維持されます。
DNSエニーキャストの主要概念の概要
この記事で取り上げたDNSエニーキャストに関連するトピックの概要を以下に示します。
| 概念 | 詳細説明 |
|---|---|
| エニーキャストとは何ですか? | エニーキャストは、複数のサーバーが同じIPアドレスを共有できるようにするネットワークアドレス指定およびルーティング技術であり、ユーザーのトラフィックを最も近いインスタンスにルーティングすることで、パフォーマンスと信頼性を向上させます。 |
| エニーキャストとユニキャスト、ブロードキャスト、マルチキャストの違い | これらはすべてネットワーク通信方式です。ユニキャストは単一の受信者を対象とし、ブロードキャストはすべてのデバイスにデータを配信し、マルチキャストは特定の受信者グループに情報を送信します。エニーキャストは、データを最寄りのサーバーにルーティングする比較的新しい方式です。 |
| DNSエニーキャストの定義 | DNSエニーキャストとは、同じIPアドレスを持つ複数のDNSサーバーを異なる地理的な場所に配置することで、ユーザーからのクエリを最も近いサーバーインスタンスに振り分ける技術です。 |
| DNSエニーキャストの仕組み | DNSエニーキャストは、BGPルーティングプロトコルの機能を活用し、複数のDNSサーバーに同じIPアドレスを割り当て、BGPのルーティング決定を利用して、ユーザーのクエリをトポロジー的に最も近いサーバーにルーティングします。 |
| ルーティング決定における補足的要因 | エニーキャストルーティングプロセスは、主にBGPのレイヤ3計算に依存しています。しかし、エンドポイントの背後でのロードバランシングやExaBGPなどのツールの使用といった追加的な戦略を用いることで、ルーティングの判断をよりインテリジェントに強化できます。 |
| DNSエニーキャストの利点 | DNSエニーキャストは、ユーザーからのクエリを最も近いサーバーインスタンスに振り分けることで、パフォーマンスの向上、耐障害性の向上、レイテンシの低減を実現し、DNSサービスの応答性と信頼性を向上させます。 |
| DNS Anycastの課題 | DNSエニーキャストには、サーバーインスタンス間でデータの一貫性を維持すること、フェイルオーバーのための健全性監視、キャッシングやロードバランシングなどの要因によって隠蔽されるトラブルシューティング、ハードウェアとルーティングを必要とする導入の複雑さ、ルーティングの問題がサービスの信頼性に与える影響など、さまざまな課題があります。 |
| エニーキャストのユースケース | エニーキャストは、低遅延で効率的な権威DNSサービスの提供、CloudflareなどのCDNネットワークを通じたコンテンツ配信の強化、クエリパフォーマンスと冗長性を向上させるためのインターネットルートネームサーバーの分散最適化など、さまざまな分野で利用されています。 |
エニーキャストとは何ですか?
DNS領域におけるエニーキャストの利用方法の詳細に入る前に、エニーキャストがドメイン名解決の枠を超えて影響力を持つ、汎用性の高いルーティング技術であることを理解しておくことが重要です。エニーキャストは、複数のエンドポイントが同じIPアドレスを共有するという独自のパラダイムを導入し、受信リクエストを処理する準備が整った同期デバイスのネットワークを構築します。
この通信方式では、エニーキャストグループ内の各デバイスが共有IPアドレスをアドバタイズし、ルーティングプロトコルが各受信リクエストの最適な宛先を決定します。この動的なアプローチにより、エニーキャストを使用する環境では、ネットワークの複雑さに関わらず、トラフィックを最も近く効率的なエンドポイントにルーティングするリアルタイムの意思決定が可能になります。
下の図では、紫色の円で表されるクライアントが、IPアドレスを介してエニーキャストサービス(濃い青色の円)へのアクセスを試みています。この接続は、ルーティングプロトコルによって指定された、濃い青色の円で示されたノード群の中で「最も近い」ノードとの間で開始されます(薄い青色の円は他のデバイスを表します)。元のサービス提供ノードが故障するなど、何らかの障害が発生した場合、ルーティングの仕組みによって、クライアントはネットワーク内の次に近いノードへと動的に接続されます。

エニーキャストとユニキャスト、ブロードキャスト、マルチキャストの違い
複雑なネットワーク通信の世界では、プロトコルやアプリケーションの要件に基づいて、さまざまなトラフィックタイプによってデバイス間のデータフローが決定されます。ユニキャスト、マルチキャスト、ブロードキャスト、エニーキャストといったトラフィックフローのそれぞれの特徴を詳しく見ていきましょう。
ユニキャスト
ユニキャストは、2点間のプライベートな会話のようなものです。データが送信者から単一の受信者へ直接送信される、1対1の通信方式です。常に最も拡張性の高い選択肢とは限りませんが、通信する点が2点のみの状況ではユニキャストは優れた性能を発揮します。特定のデバイス間で単純な対話が行われる場合、ユニキャストは最適な選択肢となります。

放送
ブロードキャストは、ネットワークセグメント上のすべてのデバイスにデータが送信される一対一の通信方式です。受信側が関心を持っているかどうかに関わらず、データが送信されます。アドレス解決プロトコル(ARP)は、ブロードキャストトラフィックの典型的な例です。ARPメッセージはローカルブロードキャストアドレスに送信され、すべての受信側がそれを処理する必要があります。ブロードキャストは、関心を持たない受信側が多数存在する場合には非効率的であり、その膨大な範囲のためインターネットでの使用には適していません。

マルチキャスト
マルチキャストは、複数の受信者に情報を一斉送信するために設計されています。これは、ポイントツーマルチポイント(1対多)またはマルチポイントツーマルチポイント(多対多)の通信方式です。
マルチキャストでは、単一の宛先アドレスを持つパケットが存在します。この宛先アドレスは、受信者の集合を表す特別なグループアドレスです。このパケットは、マルチキャストルーティングプロトコルと機能をサポートするルーターまたはスイッチであるエッジノードで複製されます。エッジノードは、マルチキャストグループのメンバーシップ情報に基づいてパケットを複製し、適切なインターフェイスまたはトンネルに転送します。
マルチキャストは、ブロードキャストのような「一斉送信方式」よりも、一対多のコミュニケーションにおいてより高度な選択肢となることを目指しています。この効率的な配信方式は帯域幅の使用を最適化するため、ビデオストリーミング、オンラインゲーム、ソフトウェアアップデートなど、複数の加入者に同時に情報を届けることが重要なアプリケーションに最適です。

エニキャスト
先に説明したように、エニーキャストは独自の方式を導入することでIPアドレスの展開方法に革命をもたらします。この方式では、複数のデバイスが同じIPアドレスとサブネットマスクを共有し、データはBGP(Border Gateway Protocol)などのルーティングプロトコルによって制御され、エニーキャストグループ内でトポロジー的に最も近いポイントにルーティングされます。この戦略的な動作により、データは最短経路で宛先に到達し、速度と効率の両方が最適化されます。

製品概要
以下の表は、後述するさまざまなメッセージアドレス指定方法をまとめたものです。
| 方法 | 通信タイプ | 潜在的な目的地の数 | 受取人はいくつの宛先に渡っていますか? |
|---|---|---|---|
| ユニキャスト | マンツーマン | 1 | 1 |
| 放送 | 1対全員 | 事例一覧 | 事例一覧 |
| マルチキャスト | XNUMX対多 | 複数 | 複数 |
| エニキャスト | 1対1 | 複数 | 1(最も近い) |
DNSエニーキャストの定義
DNSエニーキャストの基本は、ネットワーク上の各DNSサーバーが、DNS操作のために選択されたIPアドレスを表す同一の/32(または/128)サブネットをアドバタイズすることです。ただし、これらのDNSサーバーインスタンスは、ネットワーク内での管理および識別を目的とした固有のIPアドレスも持っています。
クライアントがエニーキャストアドレスに対してDNSクエリを開始すると、コアネットワークが主導権を握り、シームレスな処理経路を構築します。最適なエニーキャストルーティングメトリックを使用することで、ネットワークはクエリを最も近い利用可能なDNSサーバーにルーティングし、レイテンシを最小限に抑え、応答時間を最適化します。

ほとんどの人は、DNSルートサーバーとのやり取りを通じて、日常業務の一部としてDNS Anycastをシームレスに使用しています。DNSルートサーバーは、DNS解決プロセスにおいて重要な役割を果たしています。現在、 13個のDNSルートサーバーすべてがエニーキャストアドレスルーティングを使用しています。 信頼性とアクセシビリティの両方を向上させるための技術(中には世界中に数百のインスタンスを持つものもある)について。 root-servers.org2023年8月下旬現在、ルートサーバーシステムは、12の独立したルートサーバー運用者によって運用される1,730のインスタンスで構成されています。
DNSエニーキャストの仕組み
クライアントがドメイン名をIPアドレスに解決するためのDNSリクエストを開始するシナリオ(下記参照)を想像してみてください。地理的に異なる場所に、DNSリゾルバのインスタンスが2つ(サーバーAとサーバーB)あるとします。これらのパスは、基盤となるルーティング構成によって異なります。

この場合、DNS解決プロセスは次のように機能します。
- クライアントがDNSクエリを開始します。 クライアントはドメイン名を解決するためにDNSクエリを開始します。クライアントのリクエストはネットワークに送信されます。
- DNSエニーキャストルーティング決定: 各DNSリゾルバインスタンスごとに異なるルーティングパスが用意されており、ルーターはクライアントからのクエリをトポロジー的に最も近いインスタンスに転送します。この場合、ルーターにはBGP設定が組み込まれており、エニーキャストIPアドレス34.51.16.200へのルートをインストールし、ルートメトリック(ホップ数やコストなど)に基づいて最適なルートを選択します。
- クライアントからのクエリがサーバーAに送信されます。 この場合、エニーキャストルーティングの決定はホップ数に基づいて行われ、クライアントのDNSクエリはR2を経由してサーバーAに送信されます。このルートは、R3を経由するパスと比較して、このクライアントからのBGPホップ数が少ないため、R2を経由するようにルーティングされます。R2がプライマリパスになりますが、R1からR3を経由して34.51.16.200へのルートはバックアップルートとして引き続き利用可能です。
- DNS解決と応答: サーバーAはクエリを処理し、クライアントのクエリに対する応答としてIPアドレスを返信します。
- データ転送: クライアントは必要なIPアドレスを取得し、目的のWebサーバーとの接続を確立できるようになりました。
ルーティング決定における補足的要因
エニーキャストは主にレイヤ3で動作するため、BGPによって算出された最適ルートが処理を導く主要な要素となります。しかしながら、特定の実装では、決定プロセスにさらなる洞察を加えることができます。これらの技術はルーティングプロセスにインテリジェンス層を追加し、エニーキャスト展開の応答性、可用性、および耐障害性を向上させます。
一部のプロバイダは、エンドポイントの背後にロードバランサーを組み込み、ノードの状態を積極的に評価しています。これらのロードバランサーは、受信リクエストを検査し、ノードの状態やその上で実行されているアプリケーション/サービスの状態に基づいてトラフィックを動的に再分配します。ノードが非アクティブになったり、アプリケーション/サービスがダウンタイムになったりすると、ロードバランサーは関連付けられたBGPルートを削除し、バックアップルートをインストールして、トラフィックを稼働中のサーバーインスタンスに再ルーティングします。
もう一つの興味深いアプローチは、 ExaBGPこのツールは、DNSサービスへの到達可能性情報を通知すると同時に、スクリプトを通じてサービスの健全性を監視することができます。ExaBGPはサービスの状態を継続的に評価し、それに応じてルーティング通知を動的に調整します。つまり、ExaBGPはリモートサーバーやサービスの健全性チェックを容易にし、負荷分散やフェイルオーバーメカニズムなど、変化する状況への適応性を確保します。
DNSエニーキャストの利点
DNSエニーキャストには、DNSインフラストラクチャの効率性、信頼性、および全体的な有効性を向上させるという点で、以下のような利点があります。
- 遅延の低減と応答時間の短縮: DNS Anycastの近接性に基づくルーティングは、DNS解決の往復時間を大幅に短縮し、応答時間の短縮とエンドユーザーエクスペリエンスの向上を実現します。
- 信頼性と耐障害性の向上: DNSエニーキャストは、サーバーインスタンスを地理的に分散配置することで冗長性を高めます。サーバー障害が発生した場合、トラフィックは自動的に最も近い稼働中のインスタンスに再ルーティングされ、DNSサービスの継続的な運用が保証されます。
- 負荷分散: DNSエニーキャストは、複数のサーバーインスタンス間で負荷を自動的に分散します。ユーザーの需要が変動しても、トラフィックは効率的に分散され、単一のサーバーが過負荷状態になるのを防ぎます。
- DDoS攻撃対策: エニーキャストは、分散型サービス拒否(DDoS)攻撃に対する一定の軽減策を本質的に提供します。攻撃トラフィックは複数のサーバーインスタンスに分散されるため、単一サーバーへの影響が最小限に抑えられ、DNSサービスの中断を防ぐことができます。
- 拡張性と保守性: ルーティング機構が自動的にエニーキャスト方式に統合するため、新しいサーバーインスタンスをネットワークに比較的容易に追加できます。同様に、メンテナンス中も、サービスの可用性に影響を与えることなくトラフィックを再ルーティングできます。
DNS Anycastの課題
DNS Anycastの実装には、その正常な動作を確保するために慎重な検討が必要な、いくつかの課題と制約が伴います。主な課題には、以下のようなものがあります。
- 一貫性と同期性: 複数のエニーキャストサーバーインスタンス間でデータの一貫性と同期を維持することは非常に重要です。インスタンス間でDNSレコードや設定に不一致があると、応答の不整合やユーザーの混乱を招く可能性があります。
- フェイルオーバーのためのヘルスモニタリング: サーバーインスタンスの継続的な健全性監視は、障害を迅速に検出するために不可欠です。稼働中のインスタンスへの迅速かつ正確なフェイルオーバーを実現するには、サーバーの利用不能を正確に検出し、トラフィックを再ルーティングできる高度なメカニズムが必要です。
- トラブルシューティング: データ収集と分析によるDNS Anycastサービスのパフォーマンスとアクセス性の評価は困難を伴います。特定のクエリを処理したノードを特定する必要があるため、DNS Anycastの監視とトラブルシューティングが効果的に行えません。キャッシュ、負荷分散、ルーティングの変更などの要因によって、この特定が困難になる場合があります。応答を提供している正確なDNSサーバーを特定するために使用できる技術はいくつかありますが、これらの技術を実装するには、DNSベンダーによる追加の設定とサポート、および専用ツールが必要です。
- 導入の複雑さ: 完全なエニーキャストインフラストラクチャの導入は、追加のハードウェア、信頼できるアップストリームプロバイダ、そして慎重なトラフィックルーティングを必要とする複雑なプロセスとなる可能性があります。さらに、アップストリームISPにDNSサーバーのサブネットを通知し、インターネット上でアクセス可能にするために、/24 IPv4または/64 IPv6のアドレスブロックを所有またはリースする必要があるかもしれません。
- ルーティングの問題がDNSに及ぼす潜在的な影響: エニーキャストは動的ルーティングプロトコルに大きく依存しているため、ルーティングに何らかの問題が発生すると、DNSサービスの信頼性と運用効率が損なわれる可能性があります。ルーティングの安定性が常に最適とは言えない環境では、DNSエニーキャストを選択することは最適な選択肢ではないかもしれません。
- スプリットパスルーティング: エニーキャストTCPは、クライアントが複数のエニーキャストノードから等距離にあるシナリオである、スプリットパスルーティングを扱います。負荷分散により、エニーキャストアドレス宛のパケットはノード間で交互に送信されるため、一貫したパケット配信が課題となります。この課題に対する解決策としては、TCPプロトコルのオーバーヘッドを増やすことなく、適切なエニーキャストノードでパケットを効率的に処理すること、および過剰な状態情報に頼ることなく、誤ったエニーキャストノードに到達したパケットを検出して再ルーティングすることが挙げられます。
- ネットワークトポロジーの変更これは、クライアントがエニーキャストノードと通信している際に、ネットワークトポロジーが変化すると発生します。これにより、別のエニーキャストノードが最も近いノードとなり、クライアントのパケットがリダイレクトされる可能性があります。効果的なエニーキャストTCPソリューションは、このような変化に適応し、パケットに適したエニーキャストノードを効率的に判断する必要があります。ソリューションにはステートレスなメカニズムが採用されており、ローカルのエニーキャストノードは、エニーキャストクラスタ全体のTCP状態を詳細に把握することなく、パケットを正しく送信できます。
DNSエニーキャストのユースケース
以下は、DNSエニーキャストが使用される、または検討するのに適している可能性のあるユースケースの例です。
権威DNSのためのエニーキャスト
レジストラ、ビジネスサービスプロバイダー、ホスティング会社は、多くの場合、権威DNSサービスを提供し、複数のドメイン階層とサブドメインにわたるDNSレコードを管理しています。権威DNSプロバイダーは、インフラストラクチャにエニーキャストを統合することで、顧客に高速かつ信頼性の高いDNS解決を提供できます。エニーキャストでは、最も近い権威DNSサーバーが処理を担当するため、ルックアップ要求の解決プロセスが効率化され、驚くほど低いレイテンシと最適な運用効率を実現します。
コンテンツ配信ネットワーク(CDN)
Anycastは、ユーザーエクスペリエンスの向上とダウンタイムの最小化を目指すほとんどのCDNプロバイダーにとって最適な技術です。CDNはAnycastを使用して、トラフィックを分散配置された最寄りのエッジサーバー(PoP:Point of Presence)にインテリジェントにルーティングすることで、高速なコンテンツ配信と途切れることのないアクセスを実現します。Cloudflare、Akamai、Amazon CloudFront、StackPath、Fastlyなど、多くのCDNプロバイダーがAnycastを使用してトラフィックをエッジサーバーにルーティングしています。
DNSルートサーバー
インターネットのルートネームサーバーシステム全体は、エニーキャストアドレス指定を利用するホストのグループとして構成されています。13台のルートサーバー(A~M)はすべて複数のインスタンスとして実装されており、そのうち11台は異なる大陸にまたがっています。これらのサーバーは、エニーキャストアドレス通知を通じて分散型サービスを提供しています。これにより、米国以外の地域に(論理的なものではなく)物理的なルートサーバーを迅速に展開することが可能になり、クエリパフォーマンスの向上、冗長性の強化、効果的な負荷分散戦略の実装が実現しました。
DNSリゾルバ向けのエニーキャスト
エニーキャストはDNSリゾルバのあり方を一変させ、効率とパフォーマンスを大幅に向上させます。単一のDNSリゾルバに依存するのではなく、エニーキャストは分散型リゾルバインスタンスのネットワークを可能にします。DNSクエリが開始されると、ネットワーク内で最も近い利用可能なリゾルバにルーティングされるため、レイテンシを最小限に抑え、高速な応答を実現します。
オースティン、香港、ロンドンなど、異なる都市に同じDNSリゾルバのインスタンスが複数存在するシナリオを考えてみましょう。ここで、アトランタのユーザーが特定のドメインまたは完全修飾ドメイン名(FQDN)のIPアドレスを検索したいとします。この場合、応答を返すDNSリゾルバはオースティンのものです。これは、オースティンのリゾルバが、ユーザーにトポロジー的に最も近いサーバーインスタンスであるためです。同様に、東京のユーザーがリクエストを行った場合、最も近いDNSリゾルバ(この場合は香港のリゾルバ)が応答します。この地理的な近接性に基づくアプローチにより、DNS解決プロセスが最適化され、世界各地のユーザーに対してより高速な応答と優れたパフォーマンスが提供されます。
結論
スピードと信頼性が不可欠な現代において、DNSはより迅速な応答を実現し、重要なオンラインサービスへのアクセスを確保する上で極めて重要な役割を果たしています。本稿では、DNSサーバーを様々な場所に分散配置し、リクエストを最も近いサーバーにルーティングする巧妙な技術であるDNS Anycastについて解説します。BGPなどのルーティングプロトコルの堅牢性を活用して高速応答と継続的なサービス可用性を確保することで、DNS Anycastはレイテンシの低減、冗長性の向上、DDoS攻撃への耐性強化など、数多くのメリットをもたらします。
DNSのパフォーマンスについて推測するのはやめましょう。きちんと把握しましょう。
LogicMonitorは、グローバルな複数の監視ポイントからDNSインフラストラクチャを継続的に監視し、最適化に必要な解決時間データと可用性に関する洞察を提供します。
よくあるご質問
DNS エニーキャストとは何ですか?
DNSエニーキャストは、地理的に異なる場所に設置された複数のDNSサーバーが同じIPアドレスを共有するネットワークルーティング技術です。BGPルーティングは、各クライアントのクエリをトポロジー的に最も近いサーバーインスタンスにルーティングすることで、DNSクライアント、DNSプロトコル、またはDNSレコードの設定方法を変更することなく、レイテンシを削減し、耐障害性を向上させます。
エニーキャストは、ユニキャスト、マルチキャスト、ブロードキャストとどのように違うのですか?
ユニキャストは、1つの送信元から1つの特定の宛先へトラフィックをルーティングします。ブロードキャストは、ネットワークセグメント上のすべてのデバイスに送信します。マルチキャストは、定義された受信者グループに配信します。エニーキャストは、グループ内で最も近いメンバーにルーティングするため、同じIPアドレスに複数の物理的なエンドポイントが存在する可能性があり、ルーティングインフラストラクチャが各リクエストを透過的に受信するエンドポイントを決定するという点で独自性があります。
DNSエニーキャストの主な利点は何ですか?
エニーキャストはDNSに3つの主要な利点をもたらします。レイテンシの低減(クエリは最寄りのサーバーにルーティングされる)、耐障害性の向上(1つのサーバーが故障した場合、設定変更なしでルーティングが自動的に次に近いインスタンスに切り替わる)、およびDDoS攻撃の軽減(攻撃トラフィックは単一のターゲットに集中するのではなく、世界中のすべてのエニーキャストノードに分散される)です。
DNSエニーキャストを実装する際の課題は何ですか?
主な課題は、すべてのエニーキャストノード間で一貫したデータを維持すること(各ノードは同じ権威あるデータを提供する必要がある)、ヘルスモニタリングの複雑さ(任意の視点からどのノードに到達できるかを判断すること)、トラブルシューティングの難しさ(キャッシングとルーティングにより、特定の応答を提供したノードを特定することが困難になる)、およびエニーキャストインフラストラクチャのBGPピアリングとハードウェア要件です。




