「エニーキャスト」とは何ですか、またどのように役立ちますか?


85

数秒前に「クール/便利なサーバー/ネットワークのトリックは何ですか?」を読んだときまで、私はエニーキャストを聞いたことはありませんでした。

ウィキペディアの「エニーキャスト」に関する記事は非常に形式的であり、実際にどのように使用されるかについての精神的なイメージを呼び起こすものではありません。

誰かがいくつかの非公式な文章で「エニーキャスト」とは何か、それをどのように設定するか(一般的な意味で)、そしてその利点は何であるか(簡単にするもの)を説明できますか?

回答:


88

エニーキャストは、同じIPプレフィックスが複数の場所からアドバタイズされるネットワーク技術です。次に、ネットワークは、ルーティングプロトコルのコストと、場合によっては広告サーバーの「健全性」に基づいて、ユーザーリクエストをルーティングする場所を決定します。

エニーキャストにはいくつかの利点があります。まず、定常状態では、エニーキャストサービス(DNSが優れた例です)のユーザーは、常に(最も近い)(ルーティングプロトコルの観点から)DNSサーバーに接続します。これにより、待ち時間が短縮され、負荷分散のレベルが提供されます(消費者がネットワーク全体に均等に分散されていることを前提としています)。

別の利点は、構成管理の容易さです。サーバー/ワークステーションの展開場所(アジア、アメリカ、ヨーロッパ)に応じて異なるDNSサーバーを構成するのではなく、すべての場所に1つのIPアドレスを構成します。

エニーキャストの実装方法によっては、一定レベルの高可用性も実現できます。エニーキャストルートのアドバタイズメントが何らかのヘルスチェック(この例では既知のドメインのDNSクエリなど)を条件としている場合、サーバーが失敗するとすぐにそのルートを削除できます。ネットワークが再収束すると、ユーザーの要求は、手動での介入や再構成を必要とせずに、DNSの次に近いインスタンスにシームレスに転送されます。

最後の利点は、水平スケーリングです。1つのサーバーが過負荷になっていることがわかった場合は、過負荷のサーバーのリクエストの一部を処理できる場所に別のサーバーを展開するだけです。繰り返しますが、クライアントの構成は不要なので、これは非常に迅速に行うことができます。


エニーキャストはユニキャストと比較してより多くの帯域幅を使用しますか?同じIPアドレスを共有する1000台のサーバーがあり、そのアドレスにパケットを送信すると、ユニキャストと比較してより多くの帯域幅を占有しないと想像してください。
Pacerier

5
いいえ-エニーキャストアドレスに送信されたトラフィックは、アドレスをアドバタイズする1つの場所にのみ到着します。マルチキャストを考えているかもしれません。マルチキャストグループアドレスに送信されたパケットは、そのグループに関係するすべてのホストに送信されます。
ムラリスリアー

サーバー/ワークステーションが展開されている場所に応じて異なるDNSサーバーを構成するのではなく」という問題は、ドメイン名によって解決されませんか?それでは、ドメイン名がすでに行っていることを単純に複製する場合、エニーキャストのポイントは何ですか?
パセリエ

1
@Pacerier-ドメイン名を使用してDNSサーバーを見つけることはできません-これは循環的な依存関係です。例:dns.foo.comを構成します。DNSサーバーとして。dns.foo.comにリクエストを送信するIPアドレスは何ですか?DNSで調べます。など
Murali Suriar

32

「エニーキャスト」を理解する上で私をしばしば混乱させることの1つは、それが高レベルの用語である一方で、実際の実装では通常2つの例に要約されるということです。

  1. ユーザーを「より近い」サイトに誘導する大まかな方法​​として、BGPを使用して複数のASパスを介して同じIPブロックをアドバタイズするルーター。同時に、問題のあるサイトからルートを撤回するだけで、他のサイトへのほぼ透過的なフェイルオーバーを提供します。これは、ほぼすべてのプロトコルで役立ちますが、明らかにバックエンドデータの同期に関する多くの懸念が生じます。

  2. ネットワーク内の複数のポイントから同じサービスIPをアドバタイズします(静的ルーティングOSPFEIGRPなど)。ルートの重み付けが異なる場合、ルートはフェールオーバーメカニズムとして機能します。ルートが均等に重み付けされている場合、ほとんどのブランドベンダールーターのパケット単位またはフロー単位のロードバランシング機能を利用できます。アプリケーション層プロトコルがこれに慣れていることに注意する必要があります。だからこそ、ほとんどの場合、DNSで使用されていることを耳にします。要求は常に1つのパケットであり、すべてがステートレスです。個人的には、DNSと適切なロードバランサーの組み合わせがほぼ常に優れたソリューションになる場合、これをネットワークレイヤーへのアプリケーションレイヤーの懸念のハッキング侵入と見なします。


1つのパケットとステートレス性に言及するための+1
nponeccop 14

3
DNSの問題は、Googleまたは他のリモートリゾルバーを使用できることと、リゾルバーに最も近いサーバーがユーザーと異なる場合があることです。もちろん、これは、DNS以外の用途(tcp anycastまたはその他の用途)のエニーキャストのみに有効です。
アコスタディノフ14

@cagenut、パケットごとの負荷分散の場合、HTTPは壊れますか(均等な重みまたはその他の理由による)?
-Pacerier

16

主にDNSのようなUDPベースのサービスに使用されます。基本的に、世界中の複数のデータセンターから同じルートをアナウンスします。これにより、クライアントはBGPルートに基づいて「最良」および「最も近い」データセンターに送信されます。ネットワークプロバイダーはゲームをプレイしたり、特定のネットワークからのトラフィックを別の方法でルーティングしたりできるため、「最高」と「最も近い」を引用符で囲みます。一般に、エニーキャストでは物事がうまく機能しますが、それは保証ではありません。

この例は、DNSサーバーを1.2.3.4および1.2.3.5としてリストすることです。ルーターは、複数のデータセンターから1.2.3 / 24のルートをアナウンスします。もしあなたが日本にいて、そこにデータセンターがあれば、チャンスがあるでしょう。米国にいる場合は、米国のデータセンターに送られます。繰り返しますが、これは実際の地理的ルーティングではなく、BGPルーティングに基づいていますが、通常はこれが物事の内訳です。


1
競合はどのように回避されますか?
Pacerier

紛争の意味がわかりません。BGPは実際には競合を許可しません。ルートを選択するだけです。エニーキャストに関する1つの(多くの場合無視される)問題は合法です。技術的には、エニーキャストはさまざまな特許で保護されています。誰もこれを強制しませんが、さまざまな種類のトラフィック(CDN、DNS、TCP対UDP)がさまざまな特許で保護されています。この段落はIANALでカバーする必要があります。
-diq

あなたはそれらのip2locationサービスが不正確であることを意味しますか?IPの正式な場所はなく、どのBGPコンピューターと通信するかに応じてどこにでもある可能性があるためですか?
18

9

元の回答に従って、ブログにさらに2つの記事を掲載しました:エニーキャストDNS-パート3、RIPの使用とエニーキャストDNS-パート3、RIPの使用(続き)。後者の詳細については、www.netlinxinc.com / netlinx-blog.htmlで、RIPを使用したエニーキャストDNS用のCiscoルーターおよびオープンソースQuaggaホストベースルーティングソフトウェアの設定方法に関する実際のレシピを紹介しています。

現在、シリーズの4番目の記事を執筆中です。これにより、OSPFを使用してエニーキャストDNSを展開する方法に関するレシピが提供されます。シリーズの最後に、BGPを使用してエニーキャストDNSを展開するためのレシピを示します。

エニーキャストDNS-パート1、概要

エニーキャストDNS-パート2、静的ルートの使用

エニーキャストDNS-パート3、RIPの使用

エニーキャストDNS-パート3、RIPの使用(続き)


エニーキャストのために、世界中のインターネット上の他の誰かが、ISPから提供されたものと同じパブリックIPを持っている可能性があるというのは本当ですか?
パセリエ

ISPだけがエニーキャストサーバーを展開できるのは本当ですか?
18

実際、エニーキャストを行うには、複数の ISPを所有する必要があります。
パセリエ

4

これは現在のところ主にDNSであるため...

非公式には、同じアドレスを使用して世界中の複数の場所で同じサービスをセットアップできるようにすることで、サービスの回復力とネットワークアクセス/レイテンシー/速度が向上します。誰かがそのアドレスを照会すると、最も近い/最適なルートが与えられます。

サーバーの観点から:

ユニキャストが単一の人に、マルチキャストが複数の人に、ブロードキャストがすべての人に行く場合、エニーキャストは統合失調症であり、各人に最適な性格が接続する複数の性格を持っています。うーん。最良の例えではありません。


3

エニーキャストの本当に興味深い使用法はDNSです。5つの異なるDNSサーバーをさまざまな物理的およびネットワークの場所に配置できますが、単一(またはプライマリとセカンダリの両方の)アドレスを共有できます。ソースの場所に応じて、最も近いノードにルーティングされます。これにより、トラフィックバランシングが行われ、DNSサーバーが停止した場合に冗長性が提供されます。


しかし、DNSシステムによって冗長性はすでに提供されていませんか?
パセリエ

2

私の同僚の一人によると、人々は「最も近い」エニーキャストIPアドレスしか攻撃できないため、DoS攻撃の緩和手法としても有用です。たとえば、アメリカに多くのゾンビがいる場合、ユーロサイトは実際にはパケットを送信できないため、ほとんど影響を受けません。

また、BGPで正しいルートとしてアドバタイズされる可能性が低い場所から明らかにスプーフィングされたパケット(ASNが北米を示すときにヨーロッパに到着するパケットなど)ブロック)。


1
まあ、ASパスがそのサーバーに行く人だけを停止する単純な場合でも、たとえば、AT&TではなくComcastからあなたに連絡する人を停止することができます。フェイルオーバーのために「適切に」セットアップした場合(L7サービスを追跡し、ダウンしたときにアナウンスを停止します)、DoS攻撃を処理するのは実際には非常にトリッキーです。アナウンスが降ろされ...
ジェームズ・ケープ

@JamesCape、興味深い、しかし、彼らが次へ移動するとき、人々は正しく接続することができないので、dosは失敗しましたか?
パセリエ

@Pacerier最も単純なケースでは、インテリジェンスなしで同じIPをどこにでも広告するだけです。ただし、サービスが応答しないために米国で広告を巧妙に取り下げようとすると、残っている広告はヨーロッパの広告のみになります。そのため、米国のすべてのゾンビは次に利用可能なサーバーにヒットし、そのサーバーも殺します。
ジェームズケープ

2

また、リセットや長い会話を生き残ることができない一部のTCP接続では、エニーキャストが適切でなく、信頼性がないことにも注意してください。

エニーキャストIPは、BGPを使用して、特定のHOSTへのパス2つ、3つ、またはそれ以上あることをインターネットに伝えますが、実際にはこれらは同じホストではなく、複数のデータセンターにわたってアドバタイズされたホストの正確なレプリカであり、低遅延接続を実現します。

たとえば、198.251.86.133に対して301のwww以外のリダイレクトを実行する3つのサーバーがあります。このホストにpingを実行すると、DUPLICATE応答が返される場合があります。 -西、そしてユーロ。短時間の接続(ブラウザのキャッシュされた301など)の場合、これは最も近いデータセンターのローカルサーバーによる高速応答を提供します。

冗長性の観点からは、エニーキャストには何も組み込まれていません。そのIPは(通常のシナリオでは)それらのデータセンターを常に指すため、各サイトに独立した冗長性が必要です。


「ping」について UDP接続をpingしていませんか?
18

「そのIPは(典型的なシナリオでは)常にそれらのデータセンターを指すので」; 本気ですか?そのサーバーが停電すると、次の最も近いサーバーを指すようになりますよね?
18
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.