数秒前に「クール/便利なサーバー/ネットワークのトリックは何ですか?」を読んだときまで、私はエニーキャストを聞いたことはありませんでした。
ウィキペディアの「エニーキャスト」に関する記事は非常に形式的であり、実際にどのように使用されるかについての精神的なイメージを呼び起こすものではありません。
誰かがいくつかの非公式な文章で「エニーキャスト」とは何か、それをどのように設定するか(一般的な意味で)、そしてその利点は何であるか(簡単にするもの)を説明できますか?
数秒前に「クール/便利なサーバー/ネットワークのトリックは何ですか?」を読んだときまで、私はエニーキャストを聞いたことはありませんでした。
ウィキペディアの「エニーキャスト」に関する記事は非常に形式的であり、実際にどのように使用されるかについての精神的なイメージを呼び起こすものではありません。
誰かがいくつかの非公式な文章で「エニーキャスト」とは何か、それをどのように設定するか(一般的な意味で)、そしてその利点は何であるか(簡単にするもの)を説明できますか?
回答:
エニーキャストは、同じIPプレフィックスが複数の場所からアドバタイズされるネットワーク技術です。次に、ネットワークは、ルーティングプロトコルのコストと、場合によっては広告サーバーの「健全性」に基づいて、ユーザーリクエストをルーティングする場所を決定します。
エニーキャストにはいくつかの利点があります。まず、定常状態では、エニーキャストサービス(DNSが優れた例です)のユーザーは、常に(最も近い)(ルーティングプロトコルの観点から)DNSサーバーに接続します。これにより、待ち時間が短縮され、負荷分散のレベルが提供されます(消費者がネットワーク全体に均等に分散されていることを前提としています)。
別の利点は、構成管理の容易さです。サーバー/ワークステーションの展開場所(アジア、アメリカ、ヨーロッパ)に応じて異なるDNSサーバーを構成するのではなく、すべての場所に1つのIPアドレスを構成します。
エニーキャストの実装方法によっては、一定レベルの高可用性も実現できます。エニーキャストルートのアドバタイズメントが何らかのヘルスチェック(この例では既知のドメインのDNSクエリなど)を条件としている場合、サーバーが失敗するとすぐにそのルートを削除できます。ネットワークが再収束すると、ユーザーの要求は、手動での介入や再構成を必要とせずに、DNSの次に近いインスタンスにシームレスに転送されます。
最後の利点は、水平スケーリングです。1つのサーバーが過負荷になっていることがわかった場合は、過負荷のサーバーのリクエストの一部を処理できる場所に別のサーバーを展開するだけです。繰り返しますが、クライアントの構成は不要なので、これは非常に迅速に行うことができます。
「エニーキャスト」を理解する上で私をしばしば混乱させることの1つは、それが高レベルの用語である一方で、実際の実装では通常2つの例に要約されるということです。
ユーザーを「より近い」サイトに誘導する大まかな方法として、BGPを使用して複数のASパスを介して同じIPブロックをアドバタイズするルーター。同時に、問題のあるサイトからルートを撤回するだけで、他のサイトへのほぼ透過的なフェイルオーバーを提供します。これは、ほぼすべてのプロトコルで役立ちますが、明らかにバックエンドデータの同期に関する多くの懸念が生じます。
ネットワーク内の複数のポイントから同じサービスIPをアドバタイズします(静的ルーティング、OSPF、EIGRPなど)。ルートの重み付けが異なる場合、ルートはフェールオーバーメカニズムとして機能します。ルートが均等に重み付けされている場合、ほとんどのブランドベンダールーターのパケット単位またはフロー単位のロードバランシング機能を利用できます。アプリケーション層プロトコルがこれに慣れていることに注意する必要があります。だからこそ、ほとんどの場合、DNSで使用されていることを耳にします。要求は常に1つのパケットであり、すべてがステートレスです。個人的には、DNSと適切なロードバランサーの組み合わせがほぼ常に優れたソリューションになる場合、これをネットワークレイヤーへのアプリケーションレイヤーの懸念のハッキング侵入と見なします。
主にDNSのようなUDPベースのサービスに使用されます。基本的に、世界中の複数のデータセンターから同じルートをアナウンスします。これにより、クライアントはBGPルートに基づいて「最良」および「最も近い」データセンターに送信されます。ネットワークプロバイダーはゲームをプレイしたり、特定のネットワークからのトラフィックを別の方法でルーティングしたりできるため、「最高」と「最も近い」を引用符で囲みます。一般に、エニーキャストでは物事がうまく機能しますが、それは保証ではありません。
この例は、DNSサーバーを1.2.3.4および1.2.3.5としてリストすることです。ルーターは、複数のデータセンターから1.2.3 / 24のルートをアナウンスします。もしあなたが日本にいて、そこにデータセンターがあれば、チャンスがあるでしょう。米国にいる場合は、米国のデータセンターに送られます。繰り返しますが、これは実際の地理的ルーティングではなく、BGPルーティングに基づいていますが、通常はこれが物事の内訳です。
元の回答に従って、ブログにさらに2つの記事を掲載しました:エニーキャストDNS-パート3、RIPの使用とエニーキャストDNS-パート3、RIPの使用(続き)。後者の詳細については、www.netlinxinc.com / netlinx-blog.htmlで、RIPを使用したエニーキャストDNS用のCiscoルーターおよびオープンソースQuaggaホストベースルーティングソフトウェアの設定方法に関する実際のレシピを紹介しています。
現在、シリーズの4番目の記事を執筆中です。これにより、OSPFを使用してエニーキャストDNSを展開する方法に関するレシピが提供されます。シリーズの最後に、BGPを使用してエニーキャストDNSを展開するためのレシピを示します。
私の同僚の一人によると、人々は「最も近い」エニーキャストIPアドレスしか攻撃できないため、DoS攻撃の緩和手法としても有用です。たとえば、アメリカに多くのゾンビがいる場合、ユーロサイトは実際にはパケットを送信できないため、ほとんど影響を受けません。
また、BGPで正しいルートとしてアドバタイズされる可能性が低い場所から明らかにスプーフィングされたパケット(ASNが北米を示すときにヨーロッパに到着するパケットなど)ブロック)。
また、リセットや長い会話を生き残ることができない一部のTCP接続では、エニーキャストが適切でなく、信頼性がないことにも注意してください。
エニーキャストIPは、BGPを使用して、特定のHOSTへのパスが2つ、3つ、またはそれ以上あることをインターネットに伝えますが、実際にはこれらは同じホストではなく、複数のデータセンターにわたってアドバタイズされたホストの正確なレプリカであり、低遅延接続を実現します。
たとえば、198.251.86.133に対して301のwww以外のリダイレクトを実行する3つのサーバーがあります。このホストにpingを実行すると、DUPLICATE応答が返される場合があります。 -西、そしてユーロ。短時間の接続(ブラウザのキャッシュされた301など)の場合、これは最も近いデータセンターのローカルサーバーによる高速応答を提供します。
冗長性の観点からは、エニーキャストには何も組み込まれていません。そのIPは(通常のシナリオでは)それらのデータセンターを常に指すため、各サイトに独立した冗長性が必要です。