BGP、RPKIのリアルタイム監視&通知ツールPacketVisを使ってみた

皆さんこんにちは。今回はPacketVisについての記事になります。

 

PacketVisとは

BGP、RPKIのリアルタイム監視&通知ツールです。ASを登録するだけで経路のハイジャックや消失、RPKI Invalidな経路の広報、ROAの期限切れなどを通知してくれます。核になっている通知機能自体はBGPalerterとして開発されているようで、PacketVisはWebインターフェイスのようです。

BGPalerterはOSSで、利用している組織のリストがあるのですが、有名どころはLINX、Fastlyあたりでしょうか。NTTのチームを中心に開発されているようです。

データセットはOregon大学のRoute Viewsです。

 

見た目もかっこいいですし、使い勝手がよいと思いました。ポイントとしては

  • 無料(2023/1/7時点)
  • GitHubでサインインできる
  • Organizationを作って、複数ユーザーで同じダッシュボードで監視ができる
  • メール、Slack、Teams、syslogなどと連携できる
  • APIでこれまでの通知と、PacketVis自体のアップタイムを取得できる

 

使い方の流れ

最初にやることは単純で、

  1. アカウント登録
  2. 監視するASの登録

を行えば後はイベントが発生して、通知が来るのを待つのみです。

左上に並んでいるタブが大切なので一つ一つコメントしていきます。

 

Notificationsタブ

登録したASに発生したイベントの通知が並びます。

フィルターと検索窓の使い分けに注意が必要です。例えば、複数のASを監視していてそのうちの一つのASについて確認したい場合は、検索窓を利用する方が早いです。フィルターはカラム毎に適応させるもので、カラムにはASという項目がないためです。特定のプレフィックスについて調べる場合も同様に検索窓を利用した方が早いと思います。フィルターで使いそうなのは、severityが高いものだけ見たい時や、typeがhijackのものを見たいときに限られるかと思いました。

また、CSVやプリントでのエクスポートが可能です。不要な通知は個別にアーカイブすることもできます。通知が多くと見づらくなってくるので行の幅を広げたりもできます。使いやすいように作り込まれていますね。

 

各通知のSummary部分にマウスをあわせるとホバーで全文が表示されます。クリックすると詳細を確認することができます。これは経路ハイジャックと疑わしきイベントの詳細です。

ハイジャックしたASやされたASはもちろんのこと、ハイジャック経路を受けとったPeerやAS-PATH、コミュニティまで一目で確認できます。

さらに下にスクロールダウンするとActionsという項目があり、この経路についての通知をこれ以上受け取らないようにしたりもできます。Prefixをクリックさらに詳細な通知の設定やディスクリプションの記述が可能です。

 

BGPタブ

左に表示されるサイドバーで画面を切り替えることができますが、最初に表示されるのはResouresバーで監視対象になっているプレフィックスが一覧表示されます。EDITボタンから各プレフィックスの通知設定を行うことができます。

Resource TypeをASに切り替えると監視しているASのリストが表示されます。ASを監視対象から削除するにはEDITボタン→右下のDELETEボタンという流れになります。新しくASを登録するには左に並んでいるWizardバーから追加できます。

 

Monitoring featuresバーは通知のデフォルト設定?をする画面です。通知できる項目を少し見てみましょう。

HijackはRPKIで検知されています。原因はRPKI invalidになるので1週間ほど試しに使っていた範囲ではほぼ同じタイミングで通知されてきました。

Misconfigurationが少しつかめていないところですが、ROA登録がない経路が対象になるようです。あるASがもつ経路のリストに含まれていない経路が広報された際に通知されるとのことです。

これは英語の問題ですが、経路が広報されている状態/経路が消失することをVisibilityというのですね。

最後の方にいくつか通知の例を残しておきます。

 

APIタブ

APIのドキュメントです。APIキーの生成はSettingsタブのAPIバーから行う必要があります。

 

Uptimeタブ

PacketVisに関わるシステムの稼働状況を一目で確認できます。

 

Settingsタブ

ユーザーやOrganizationの設定だけでなく、Slack等との連携のためのIntegrationsバーやAPIキーを生成するためのAPI Keysバーがあります。

 

通知の例

Misconfigurationの通知

 

Trust Anchor Malfunctionの通知

 

Peer Changeの通知