Edgioの新しいShakeAlertにより、ネットワークイベントの可視性が向上
大規模でグローバルに分散されたネットワークを運用している場合、ハードウェア障害、プロバイダーの停止、およびその他の動作の変化が定期的に発生する。 したがって、トラブルの兆候が最初に発生したときに警報を発することができるシステムは、人間のオペレーターや自動化システムに警告し、より迅速な是正措置を可能にする。 そのために、我々はShakeAlertを開発した。ShakeAlertは、インターネットの急激な変化を警告するために、一般に公開されている外部データに基づいて構築されたアラートシステムである。
ShakeAlertは、CDNから発信されたパスについてパブリックコレクタから観測されたBGP (Border Gateway Protocol)更新のストリームを監視する。 更新の量が急激に増加すると、ShakeAlertはShakeと呼ばれるアラームを発し、インターネットのルーティング動作、特に外部ネットワークがトラフィックをCDNにルーティングする方法の変化を通知する。 これらのアップデートの内容を使用して、ShakeAlertはさらに影響を受ける可能性のあるPOP(Points-of-Presence)、プロバイダー、プレフィックスの見積もりを提供する。
このシステムは、アメリカ地質調査所の地震早期警報システムにちなんで名付けられた。 このシステムは、より速い動きをするが破壊的ではないP波を検出し、より破壊的なS波が来る前に住民に警告することで機能する。 ここでは、BGPのコントロールプレーン信号を、データプレーンやエンドユーザトラフィックの変化に関する早期警告信号と考える。
背景
インターネット上の自律システム(ASes)間のルーティングを容易にするために、ネットワークはどのプレフィックスにルーティングするかをBGPを介して通信する。 この通信の一部として、プレフィックスの到達可能性が変更されると、ネットワークは、影響を受けるプレフィックスとそれらに到達するためにネットワークが使用するパスを示すannouncementと呼ばれる一連のアナウンスを送信する。
インターネットの通常の運用では、ルーティングテーブルを更新する際に、ネットワーク間で何千ものメッセージが交換される。 例えば、ネットワーク障害、ネットワーク間の新しい接続、計画されたメンテナンスの結果として、これらのルートが変更されるたびに、新しいメッセージのセットが交換される。 これには、オリジンネットワークによって生成された変更(たとえば、新しいIPブロックをアナウンスする)や、オリジンから下流に発生する変更(たとえば、中継プロバイダーでの接続の変更)が含まれる。
これらのメッセージは、インターネットの現状に関する多くの洞察を提供し、ネットワーク間の接続の利得と損失を明らかにする。 この情報を利用するために、多くの組織1はルートコレクタと呼ばれるサービスを運営している。このサービスは多くのネットワークと相互接続し、収集されたアップデートメッセージを一般に公開する。
接続が変更されると、アップストリームネットワークはBGPアップデートを送信し、最終的にはBGPコレクタに到達する。
これらの行動の感覚を発達させるために、いくつかの初期観察を検討する。 我々は、一握りの異なるネットワークのための結果の更新フィードを考慮する。 ここでは、2つの大規模CDNネットワーク(CDNA,CDN B)、1つのコンテンツネットワーク(Content)、2つの大規模ISP (ISP A,ISP B)、および1つのDNSルートレターを検討する。 各タイプのネットワークは異なる目的のために設計されており、異なるピアリングポリシーを備えている可能性がある。 各ネットワークについて、更新を1分バケットにグループ化し、2021年1月の1時間の各バケットのメッセージ数を考慮する。
上の図は、その期間中の各アップデートビンのサイズをプロットしたものである。 CDNは大規模な展開を特徴としており、多くのピアやプロバイダーがほぼ全スパンで最も多くの更新を生成しており、コンテンツネットワークは比較的遅れをとっている。 ISPとルートレターが生成するアップデートは大幅に少ない。 これらの大きさの劇的な違いは、ネットワークの構造、ピア、アーキテクチャが対応するメッセージ量に大きな影響を与える可能性が高いことを示している。 したがって、次の節で議論するように、我々のシステムがパラメータの変更に柔軟であることを保証しなければならない。
シェイクアラートシステム
ShakeAlertは、RIPE NCCのRouting Information System(RIS)プロジェクト2の一部である21のルートコレクタからのライブフィードをリッスンする。 データはこれらのフィードから到着し、1分単位のタイムビンにグループ化される。 次に、各ビンの更新数をカウントし、異常値検出アルゴリズムを使用して、ビンが最近の他の分と比較して異常に多くの更新数を持っているかどうかを判断する。 そのようなビンが観測された場合、Shakeを生成する。
この目的のために、ShakeAlertは最後のw binに見られた更新のカウントのスライディングウィンドウを維持し、w binより古い更新に関する情報を保存しないようにする。 ShakeAlertがw binの履歴を構築し、 w+1番目のbinが完了すると、前のウィンドウと比較して、この新しいbin b w+1の数を考慮する。 いくつかの潜在的な異常検出メカニズム(例えば、修正されたzスコアと標準偏差の推定値、静的しきい値、およびさまざまな変化検出技術)を使用することができるが、我々は密度ベースの検出メカニズムを採用している34。
密度に基づくアノマリー検出を行うために、半径Rと隣接数kを考える。 新しいタイムビンb w+1は、新しいビンの数を中心とした半径R内の数を含む過去w分間に他のビンがk個より少ない場合に外れ値であると言う。 形式的には、任意の外れ値は直前のw分間でk個よりも小さいビンbiを持ち、|b w + 1|–|bi| <Rとなる。 このような異常値は、揺れ警報または単に揺れと呼ばれ、これらの揺れの更新カウントはサイズと呼ばれる。
ShakeAlertの全体的な検出プロセス
我々の仮説の根底にある基礎は、大規模で破壊的なインターネットルーティングの変更がこれらのイベントの中で最大のものを生成するということである:大量のトラフィックを伝送するルートは、多くのダウンストリームネットワークやコレクタによって受信される可能性が高い。 しかし基本的には、多くの変更にはこのカテゴリに属さない大きな更新数が含まれている。 たとえば、Anycastのアナウンスを撤回する定期的なメンテナンス。
BIN内の更新の内容は、ネットワークイベントの性質に関する詳細を明らかにするためにさらに観察することができる。 アップデートのプレフィックスは、対応するネットワーク変更によって影響を受ける可能性のあるPOPおよびエニーキャストリージョンを決定するために使用できる。 我々は、更新全体で観察されたパスをさらに調べ、影響を受ける可能性が最も高いアップストリームネットワークを推定することができる。 最後に、インバウンドCDNトラフィックに対するアラートの重要性に基づいてアラートの重要性を判断できる。
CDNの展開では、ウィンドウwを360分、kを5にして、時間ごとによく観察される行動に関するアラートを避けることができる。 また、Rを窓の中で観測されたビンサイズの5パーセンタイルと95パーセンタイルの間の距離とする。 運用コンテキストを増やすために、更新で観察されたプレフィックスとパスに基づいてビンをPoP固有の時系列にさらに細分化し、それぞれに個別に警告する。 最後に、いくつかの具体的なチューニングを考える。例えば、ネットワークの観測結果に基づいて最小アラートサイズを設定する。
ShakeAlertの動作中
次に、揺れが野生でどのように現れるかを示す簡単な例を考えてみよう。 2022年9月からの上記の例では、特定のCDN Popに焦点を当てており、Y軸と線形スケールに沿った更新カウントが以前の図よりはるかに小さいことに注意している。 この間、アップデートカウントはほぼ完全に0になり、突然増加し、12:14にさらに大きなアップデートカウントが生成され、12:20に2回目のスパイクが生成され、両方ともシェイクが生成された。 これらのアップデートは、プロバイダーへの接続が予期せず中断したことが原因で発生した。
評価
揺れが興味深い事象を表すかどうかを測定するために、以下の分析を検討する。 2022年夏に30日間にわたって生成された各シェイクについて、対応するサイトの内部メトリックを調べて、シェイクから10分以内に異常な挙動が観察されたかどうかを判断する。 我々の異常として、我々は以下を考慮する:ルータのリセット(例えば、ルータが再起動したりオフラインになったりした)、プロバイダーリンク上のBGP状態の変化(すなわち、プロバイダーBGPセッションが確立された状態を終了した)、サイトから発表されたアナウンスの変化、対応するサイトと少なくとも他の5つのサイト間で検出されたパケット損失。
上の図は、30日間にわたるこれらの出来事の内訳を示している。 ここでは、すべてのバケットに少なくとも60%のシェイクイベントがあり、平均して80%のシェイクイベントが一致することがわかる。 これらの知見は、最大の揺れが重要であり、しばしば交通に影響を与えるイベントと一致することを確認した。 しかし、彼らはさらに、定期的なメンテナンスから急性故障まで、そのような揺れを引き起こす可能性のある事象の幅を強調している。
結論
ShakeAlertは、すでに豊富なCDNモニタリングに新しい可視性を提供する。 外部ソースからデータを取得することで、インターネットの行動について根本的に異なる洞察を提供することがわかっている。 システムの継続的な作業では、アラートの精度を向上させ、自動化された是正措置を可能にするために、データをさらに内部監視と組み合わせる方法を模索している。
この作業を可能にした研究チーム、ネットワーク信頼性エンジニアリングチーム、およびすべての社内エンジニアリングチームに感謝する。 さらに、Emile Aben、Stephen Strowes、Mingwei Zhangを含むルーティングデータに関する多くの外部専門家に感謝し、有益なフィードバックと議論を提供した。
1例:Routeviews、RIS
2システムは基本的に任意のコレクタを使用できる。 ここでは、WebSocketインターフェイスの柔軟性により、RISにのみ焦点を当てる
3 M. Gupta、J. Gao、C. C. Aggarwal、J. Han。 時間データの外れ値検出:調査。 IEEE Transactions on Knowledge and Data Engineering, 2014.
4北畠泰、R. Fontugne、江崎博之。 BLT:BGPアップデートメッセージをマイニングするための分類および分類ツール。 処理中。 2018年のInfoCom’18の