web-dev-qa-db-ja.com

BGPを使用するWebサーバーのIPレベルフェイルオーバー(私は非常識ですか?)

ラウンドロビンDNSフェイルオーバーの使用を検討しましたが、DNSキャッシュのレベルがさまざまであるため、古いレコードがダウンサイトを指すリスクがあります。

自分のアドレス空間とAS番号を所有している場合、データセンター1で、ルーターから1.1.1.x/xネットワークを世界にアナウンスでき、誰もが1.1.1.1でロードバランサーにアクセスできます。人生はとても楽しいです。次に、同じセットアップの別のデータセンターに配置すると、そこのルーターがIPスペースとAS番号を別のアップストリームプロバイダーにアナウンスします。ユーザーは明らかに、ローカルISPネットワークのBGPからのAS-PATHおよびその他のメトリックに基づいて、ユーザーに最も近いセットアップを実行します。

ここで、データセンター1で何かひどいことが起こったとしましょう。ルーター1がオフラインになり、IPスペースとASがそこでアナウンスされなくなり、すべてのトラフィックがデータセンター2のみにフォールバックし、1.1.1.1(ロードバランサー)にトラフィックします。 )。人々はこれをしますか、これはばかげた考えですか?なぜこれをすべきでないのかについて、盲目的に明白な何かを見逃したことがありますか?これは実用的ではないのでしょうか、それとも天才的な計画でしょうか。

1
jwbensley

それはうまくいきます。それを実現するには、さらに多くのエンジニアリング作業が必要です。ルーター、BGP接続、独自のIPスペースなどが必要です。上記の例では、データセンター1と2が常に稼働していると想定しています。

多くの人がこれをうまくやっています。あなたがやろうとしていることを「エニーキャスト」で調べてください。これに関する大きな問題は、UDPベースのサービス(ステートフルではない)ではるかにうまく機能することです。 HTTP経由で大きなファイルをダウンロードしていて、ルーター側で停止が発生した場合、トラフィックは何が起こっているのかわからない新しい1.1.1.1に送られ、接続が切断されます。

4
Aaron

BGP以外のもう1つのオプションは、グローバルロードバランシングです。 DNSの伝播を回避するために、私はクラウドレバレッジと呼ばれるSAASソリューションを検討していました。彼らはそれを機能させるためにIPv6マルチケースと適切なロードバランサーを使用します。私たちはまだ彼らと一緒に行っていませんが、それは単に優先順位によるものです。

BGPの質問に答えられないことは知っていますが、念のために捨てたかったのです。

1
Eric C. Singer