bgp_monitoring

BGP監視

BGP監視は、ネットワーク運用担当者・インフラエンジニアを対象としたサービスです。
全世界に配置された監視ノードから、お客様のIPアドレスブロック(プリフィックス)へのeBGP経路を継続的に監視し、ルートハイジャックやルートリーク、経路消失などの異常をリアルタイムで検知・通知します。

本サービスが監視対象とするのはeBGP(外部BGP)のみです。iBGP(内部BGP)は対象外となりますので、あらかじめご確認ください。

なぜBGP監視が必要か

BGPは設計上、隣接ASからのルート広告を原則として信頼する仕組みになっており、誤設定や悪意ある操作による偽ルートが世界規模で伝搬するリスクがあります。
実際に2018年には、Amazon Route 53のIPアドレスブロックがBGPハイジャックによって不正広告され、仮想通貨取引所へのトラフィックが約2時間にわたって攻撃者のサーバに誘導されたとされています。
参考: Cloudflare Blog
また2010年にはChina Telecomが数万件のBGPプリフィックスを誤って広告し、世界規模でトラフィックが中国経由に迂回したと報告されています。
参考: RIPE NCC

クラウド利用が一般化し、サービス間の依存関係が複雑になった現在、BGPの異常を早期に検知できるかどうかがインシデント対応速度に直結します。
BGP監視を導入することで、以下の問題を早期に把握できます。

BGPとは

BGP(Border Gateway Protocol)とは、インターネット上のルーティングプロトコルで、AS(Autonomous System: 自律システム)単位で経路情報を広告します。
この到達可能性情報を交換することで、トラフィックを効率的に誘導します。
ルートは世界中で絶えず広告されたり、削除されたりしています。

新しい自律システム(AS)が設立されると、その最初のアクションの1つとして、自分が所有するネットワークに向かう新しいルートがあることを近隣ASにアナウンスします。
逆に、あるプリフィックスが削除されると、そのルートはインターネット上から取り除かれます。

BGPには主に2つの用途があります。

外部ボーダーゲートウェイプロトコル(eBGP)
一般に公開されている(インターネット上の)自律システム間のルーティングに使用される
内部ボーダーゲートウェイプロトコル(iBGP)
組織内部のネットワーク間のルーティングに使用される

BGP監視とは

BGP監視は、BGPで各ASが広告した経路情報を監視し、自社のサーバが所属しているASまでの到達可能性情報を可視化します。
ルートの伝搬、IPおよび自律システム番号(ASN)の不一致、BGPアナウンスメントなどによる接続問題のトラブルシューティングに役立ちます。

BGP監視は、世界中に配置されたCatchpointの監視ノードと、完全なBGPテーブルを共有している数百の自律システム(AS)ピアからのアナウンス済みプリフィックス(eBGP)を監視します。
BGPのIPv4は現在サポートされています。IPv6対応については、最新情報をお問い合わせください。

用語

自律システム(AS)
単一の組織または団体の管理下にある、接続されたIPルーティングプリフィックスのグループ。
Peer(ピア)
特定の地理的場所でBGPテーブルを共有するAS。同一のASであっても、地理的に異なる地域に複数のピアが存在することがあります。
(例: 英国のCogentと米国のCogent)
Prefix(プリフィックス)
BGPを介してASからアナウンスされるIPv4またはIPv6アドレスのブロックを表すサブネット。
ルート
プリフィックスと、そのアドレスブロックに到達するためにトラフィックが通過しなければならないASを示すAS番号のパスを組み合わせたもの。
IPv4のBGPプリフィックスの例: 206.24.14.0/24 701 1239 42
レジストリ(RIR)
世界の各地域におけるインターネット番号資源の分配と登録を管理する組織です。5つの地域インターネットレジストリ(RIR)があります。
名称管轄地域
AFRINICアフリカ
ARIN南極、カナダ、カリブ地域、米国
APNIC東アジア、オセアニア、南アジア、東南アジア
LACNICその他のカリブ地域、ラテンアメリカ全体
RIPE NCCヨーロッパ、中央アジア、ロシア、西アジア

仕組み

Catchpointは、以下の組織とデータを共有しているピアからBGPデータを収集しています。

RIPE NCCのRouting Information Service(RIS)
欧州のインターネットレジストラであるRIPE NCCの公開データソース
Route Views Project
オレゴン大学を拠点とする公共のデータソース(大学のプロジェクトとしては最も古いもの)で、15分ごとにデータを公開しています。
Catchpoint
Catchpoint独自のデータソースで、Catchpointが独自のBGP接続を確立し、リアルタイムで完全なBGPテーブルを導き出しています。

監視対象のプリフィックスに基づいて、Catchpointは以下の情報を導き出します。

AS
BGPテーブルを共有しているエンティティの実際の組織と自律システム番号(ASN)
レジストリ
相手のASが登録しているインターネットレジストリ
地理的な情報
大陸
BGPテーブルを共有するルーターが地理的に配置されている大陸
BGPテーブルを共有するルーターが地理的に位置する国
オリジン
プリフィックスの到達性情報を発表しているAS
隣接
オリジンASの隣接、または次のパスの隣接

実装

BGP監視の設定は、テスト作成画面でテストタイプとして「BGP」を選択し、監視対象の有効なIPv4プリフィックスとアラート設定を指定するだけです。

BGP監視のテスト設定画面
BGP監視の設定

ポイント消費について

BGPテストは、他の合成監視テストと同様にポイントを消費しますが、消費の仕方が異なります。
他のテストでは実行頻度と実行回数に基づいてポイントが消費されますが、BGPテストは頻度の概念がなく、常に全データソースを監視し続けるため、1時間あたり固定ポイントを消費します。
導入前の予算計画の際にご注意ください。

収集メトリクス

BGP監視では以下の4つのメトリクスを収集します。Catchpointの分析ツールから参照できます。

アナウンス数(# Announcements)
対象プリフィックスに対してカウントされたアナウンスイベントの数。
撤退数(# Withdrawals)
対象プリフィックスに対してカウントされた撤退イベントの数。
ルーティングイベント数(Routing Events)
アナウンスと撤退を合算したイベントの総数。グラフ上のスパイクとして現れ、ルーティング不安定の指標となります。
可用性(Availability)
ピアから対象プリフィックスへのパスが検出されていた時間の割合(%)。

BGP概要ダッシュボード

BGP概要ダッシュボードは、監視中の全プリフィックスの健全性を俯瞰するためのビューです。以下の4つのセクションで構成されています。

サマリー
全監視プリフィックスのRKIステータス、到達可能性、ハイジャック、隣接ピア数、撤退済みプリフィックス数を集計したカードを表示します。
BGPオリジン
全オリジン・隣接・プリフィックスを一覧形式で表示します。
タイルビュー
監視中の各プリフィックスを色分けされたタイルで表示します。
マップビュー
世界地図上で国ごとの可用性状況を色分け表示します。問題が発生している地域を一目で特定できます。

色分けのルールは以下の通りです。

意味
可用性100%(正常)
オレンジ可用性90%以上100%未満
可用性90%未満

正常な状態での表示例:

BGP概要ダッシュボード(正常時)
正常な場合

可用性に問題が発生した場合の表示例:

BGP概要ダッシュボード(問題発生時・色分け表示)
問題が発生している場合

スマートボード

Smartboardは、特定のテストにおける重要な問題や傾向を一度に表示します。
ページ上のフィルターやウィジェットを利用することで、パフォーマンスが最も変化している場所、ダウンタイムの原因、影響を受けている人、問題を抱えているサービスなどを簡単に把握できます。

BGP監視では、スマートボードを使って特定のプリフィックスのデータを時系列で分析できます。

概要

可用性とルーティングイベント(アナウンスメントと撤退)が、ルーティングイベントの時系列タイムラインとともに表示されます。

BGPスマートボード 概要モジュール
BGPスマートボード ― 概要

グラフ上のスパイク(グラフが尖っている箇所)は、アナウンスや撤退の数が増加していることを表しており、ルーティングに問題があることを示しています。
タイムラインの下にある赤いバーは、この期間中に少なくとも1つのピアからルートが利用できなかったことを示しています。
濃淡をつけることで、過去の期間に発生したルーティングイベントの数を比較できます。

BGPデータのソース

以下のパラメータを使用してBGPデータをフィルタリングできます。

BGPスマートボード データソースフィルター
BGPスマートボード ― データソース

宛先データ

BGPデータを以下の条件でフィルタリングできます。

Answer

返されたプリフィックスの回答でフィルタリングできます。
これは、質問されたプリフィックスと完全に一致する場合もあれば、複数のサブネットが存在する場合に一致する場合もあります。
現在のところ、返されるサブネットの最大数は10に制限されています。

BGPグラフ

全てのBGPピアから観測された特定のプリフィックスへのパスを表示します。
デフォルトでは、オリジンが右に、ピアデータが左に表示されます。
デフォルトでは、パスが折りたたまれて、プリフィックス、オリジン、View Byの順に表示されます。

BGPスマートボード BGPグラフ(ASパスの可視化)
BGPスマートボード - BGPグラフ

アラート機能

【高度なアラート共通の既知制限事項】
以下の「高度なアラート」各項目は、現在、プリフィックスに変更があったイベントのみをアラートの対象としています。
そのため、変更の有無にかかわらず1分ごとに監視するスマートボードの表示と、アラートの発生タイミングが一致しない場合があります。
なお、この制限は「シンプルなアラート(テストの失敗)」には該当しません。

シンプルなアラート

テストの失敗

与えられたプリフィックスに対するパスをシステムが見つけられない場合にアラートが発生します。

アラートのトリガーピアの閾値
なし
Runs
パスを含む状態からパスがない状態に初めて変化したとき、または少なくとも1時間に1回(1時間以内にパスがない状態になった場合)、システムはその状態を確認します。
ピア
指定されたプリフィックスに対してパスがないユニークなピアの数を調べます。

高度なアラート

可用性: テスト

プリフィックスの稼働率(特定のプリフィックスへのパスが存在した時間の割合)に基づいてアラートが表示されます。

アラートのトリガーピアの閾値
  • 特定の値
  • トレーリング値
ピア間の平均
時間閾値の全てのピアのデータを調べます。
ピア
ピアごとに可用性のメトリクスを調べ、トリガーに違反するピアの数を指定できます。

可用性:ダウンタイム率

プリフィックスのダウンタイム率(パスが存在しなかった時間の割合)に基づくアラートです。

アラートのトリガーピアの閾値
  • 特定の値
  • トレーリング値
ピア間の平均
時間閾値の全てのピアのデータを調べます。
ピア
ピアごとにダウンタイム指標を見て、トリガーに違反するピアの数を指定できます。

AS番号: オリジンAS

プリフィックスのオリジンが一致しない場合、または指定されたASNのリストに一致する場合に警告を出します。

アラートのトリガーピアの閾値
  • 等しい
  • 等しくない
Runs
プリフィックスの状態が変更された個々のイベントを調べます。
ピア
各ピアとプリフィックスの状態が変化したイベントを調べます。

AS番号: オリジンの隣接

プリフィックスがアナウンスされたオリジンの隣接が一致しない場合、または指定されたASNリストに一致する場合に警告を出します。

アラートのトリガーピアの閾値
  • 等しい
  • 等しくない
Runs
プリフィックスの状態が変更された個々のイベントを調べます。
ピア
各ピアとプリフィックスの状態が変化したイベントを調べます。

例: プリフィックス 8.8.8.0/24 を監視しているとします。
隣接が AS "3356" または "6939" ではない場合にアラートを出すように設定したとします。
ピアが以下を含む回答を示すルートを提供したとします。

この場合、"6461" はアラートで設定した隣接ASと一致しないため、アラートがトリガーされます。

AS番号: プリフィックスの不一致

システムは、指定されたプリフィックスが「具体的に」発表されることを期待しています。
より具体的なプリフィックス(サブネット)が広告された場合は不一致とみなします。
例えば、監視対象プリフィックスが「/23」の場合、「/24」のアナウンスは不一致とみなされアラートが発行されます。

アラートのトリガーピアの閾値
  • 等しい
  • 等しくない
Runs
パスの状態が変化した個々のイベントを調べます。
ピア
各ピアとパスの状態が変化したイベントを調べます。

例: プリフィックス 8.8.8.0/23 を監視しているとします。
ピアが以下を含む回答を示すルートを提供したとします。

この場合、プリフィックスが一致しないので、アラートが発行されます。