web-dev-qa-db-ja.com

ホストされたアプリケーションをBGP障害に対して回復力のあるものにする

私の会社は、専用ホスティングプロバイダーを使用して顧客向けにさまざまなWebサイトを構築しています。

このホスティングプロバイダーは、狭い範囲のIPのボーダーゲートウェイプロトコル(BGP)アナウンスを担当するデバイスを誤ってシャットダウンしました。私はそのように幸運だったので、これらのIPの1つは、お客様のすべてのWebトラフィックのロードバランサーに割り当てられたパブリックIPアドレスでした。その結果、この範囲のBGPルーティングアドバタイズメントは撤回され、世界中ですぐに到達不能になりました。

ホスティングプロバイダーは、警告を受けたら問題を解決しましたが、15分以上のダウンタイムが発生しました。これは、将来回避することを切望しています。

  1. これをどのように監視できますか?これは、Apache httpdステータスやJVMなどをチェックする通常のモニタリングよりもはるかに低いレベルです。AdventAppEngineを使用してサーバープロセス、Apacheサーバーステータス応答、アプリケーションホームページ応答をチェックする内部モニタリングがあります。

  2. これを自分で修正するための手順を実行できますか。例えばどういうわけか私たち自身のBGPアナウンスをすることによって?

スタックのこのレベルは私にとってまったく新しいものであり、私の知識のギャップを埋めたいので、私は単なる答えではなく、ポインタ/提案された読書に満足しています。

5
jabley

アドレス空間が独自のBGPを実行できるほど十分に大きくない限り、これを回避できる可能性はほとんどありません。それでも、ピアによるBGP障害に対して脆弱です。

別々のASで複数のDNSサーバーを使用している場合は、低いTTLを設定し、別のネットブロック/内の別のWebサーバーにフェイルオーバーすることで、何らかの回避策を講じることができる場合があります。問題が指摘されたらDNSを変更してデータセンターを作成します。ただし、これでも少なくとも数分かかります。

編集:Chrisが指摘したように、BGPを実行している場合は、到達不能になる前に、allのピアが失敗する必要があります。

4
Cian

少なくとも/ 23のプロバイダー非依存アドレス空間があり、ASN番号がない限り、BGPを実行できる可能性はほとんどありません。そのため、ホスティング会社を信頼する必要があります。ルーターの変更はかなりまれである傾向があるため、この問題が再び発生する可能性はわずかです。あなたは彼らと一緒に持っているSLAを調査することができますが、これはおそらくあなたのホスティング料金の払い戻しを受けることを含むでしょう。

監視に関する限り、ネットワークの外部に専用サーバーがあり、外部Nagiosサーバーとして使用しています。安価なVPSサーバーを購入し、それを使用して外部ユーザーのPoVから物事を監視することができます。たとえば、eximとApacheが実行されていることを確認するのではなく、SMTPとHTTPの動作を確認します。これは、内部監視で行います。

3
David Pashley

記録のために、それはいくつかの無料のBGPモニターと警報システムが存在します。必要に応じて15分の解像度を提供するものはありません。また、停止には他にも多くの原因が考えられるため、外部からIP接続を監視することが唯一の現実的な解決策です。

BGPモニタリングに関する一般的な記事 フランス語

2
bortzmeyer

あなたの選択肢はかなり限られています。プロバイダーに怒鳴ったり叫んだり、別のプロバイダーに移動したり、2つの異なるIP範囲を取得したり、両方でサービスをアドバタイズしたり、DNSエントリに短いTTLを設定したりできます。

だが

本当にこれを解決したい場合は、ミートミールームのあるコロ施設に移動し、いくつかのプロバイダーから帯域幅とIPアドレスを購入してください。次に、 register arin(またはどこに住んでいても正しいレジストラ)を使用したASNを使用し、プロバイダーと自分でピアリングします。

十分な帯域幅を購入している場合は、/ 24または/ 23で咳をするのは難しくありません。コロ施設のサイズと要求する帯域幅の量によっては、ピアリングも非常に簡単になります。

あなたが大きな小切手を書いていて、あなたがあなたが望むものを正確に知っているように振る舞うなら(そしてあなたが望むものは合理的です)、このようなことを成し遂げることは難しくありません。あなたがそれをあなたの「提供者」に耕作するならば、あなたはいつも棒のばかげた端にいるでしょう。

0
chris
  1. 使用しているプレフィックスについてpublicroute-servers( http://www.traceroute.org/#Route%20Servers )に問い合わせることで、プロバイダーのアナウンスを監視できます。これらのルートサーバーに電話をかけることで、この種の監視を自動化できます。
  2. 十分な帯域幅を使用し、そのような展開のための予算とスキルを持っている場合は、AS番号とIPアドレス範囲を要求できます。ただし、これにはコストがかかり、RIRはIPv4アドレスを使用しなくなるため、ニーズを実際に証明する必要があります。
0
Philippe

設定方法、アドバタイズされるネットブロックのサイズ、アップストリームでの集約方法によっては、見た目のガラススクリプトのいずれかを使用して、サーバーが存在するブロックのBGPアナウンスを監視できる場合があります。

ホストとルーターの両方に、サーバーから1ステップ離れた外部からpingを実行する方が簡単な場合があります。 tracerouteを使用して、使用するアドレスを決定できます。

あなたのホスティング会社がこれを再び行うのを防ぐためにあなたができることはほとんどありません。そのためには、少なくとも、BGPを実行しているルーターまたは他のホストをプロバイダーに接続する必要があります。別のプロバイダーも存在しない限り、それらが誤ってピアリングルーターをオフにしてしまった場合は役に立ちません。

別の回答で述べられているように、より良い解決策はフェイルオーバーサイトを持つことかもしれません。リスク許容度に応じて、フェイルオーバーを非常に短時間で実行するように設定できますが、DNSを完全に制御する必要があります。

0
Rik Schneider