0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

TrafficSentinelによるBGPピアリング分析

Posted at

TrafficSentinelによるBGPピアリング分析

ルーティングテーブル、ASパス、およびコミュニティを把握するために、ルートリフレクタを使用してTrafficSentinelからBGPピアを獲得する方法

機能概要

ルーターがsFlow「ExtendedGateway」拡張機能を完全に実装している場合(sFlow仕様を参照)、このピアリング接続は必要ありません。sFlowデータグラム内にピアリング情報を含めてルーターがエクスポートするからです(一部、NetFlowでも同様)。
それ以外の場合は、この機能を使用してルーティングテーブルを獲得し、それらを使用してCIDR、ASPath、およびCommunitiesフィールドで集約して、パケットヘッダーまたはフローレコードから表示される情報のようにトラフィックデータベースから利用分析できるようになります。

データベースフィールド

この機能で入力できるトラフィック・データベース・フィールドは次のとおりです。:

bgpdestinationaspath
bgpsourceas
bgpdestinationas
bgpsourcepeeras
bgpdestinationpeeras
bgpas
bgpcommunities
bgplocalpref
bgpnexthop
bgpnexthop6
ipsourcesubnet
ip6sourcesubnet
ipdestinationsubnet
ip6destinationsubnet
ipclientsubnet
ip6clientsubnet
ipserversubnet
ip6serversubnet
ipnexthoprouter
ip6nexthoprouter

設定手順

global.prefs([ファイル]> [設定]> [編集]> [ファイルの編集]> [global.prefs])で、ピアリング接続を識別する行を追加します。:

BGPDefault=10.0.0.30
BGPLocalAS=65550
BGPPeerAS=12345

このサーバーからのBGPクライアント接続が出来るように、route-reflector(この例では10.0.0.30)を設定します。一般的な bird routing daemon への設定例を次に示します。:

protocol bgp peer_SENTINEL {
  table peers;
  local as 12345;
  neighbor 10.0.0.114 as 65500;
  passive;
  import none;
  export all; 
  error wait time 1,10;
  error forget time 10;
}

次に、Traffic Sentinelにログインし、/usr/local/inmsf/scripts/runBgpmonを実行して、ピアリング接続をテストします。 ASCIIラインとして発行されたルーティングアップデートが表示されます。

例:

+,74.114.160.0/24,,,IGP,35908 1299 3356 3549,,
+,64.214.58.0/24,,,IGP,35908 1299 3356 3549,,
+,204.57.11.0/24,,,IGP,35908 1299 3356 3549,,
+,75.98.224.0/20,,,IGP,35908 1299 3356 3549,,
+,189.125.106.0/24,,,IGP,35908 1299 3356 3549,,
+,198.153.129.0/24,,,IGP,35908 1299 3356 3549,,
+,200.41.72.0/22,,,IGP,35908 1299 3356 3549,,
+,204.48.40.0/24,,,IGP,35908 1299 3356 3549,,
+,200.55.48.0/24,,,IGP,35908 1299 3356 3549,,

ルーティングテーブル全体がスクロールするのに1〜2分かかる場合があります(600,000ルートになる可能性があります)が、その後は、アナウンスと取り消し、着実に徐々に表示されます。 control-cを押してテストを終了します。

最後に、[ファイル]>[コントロール]でデータ・コレクションのストップ&スタートを行います。これで、プロセス「inxsazd」にbgpmon.plスクリプトを実行する子プロセスがあることがわかります。

./inmsfd
  \_ inxtomcat -t 1580432484
  |   \_ java -Djava.awt.headless=true -Xmx2G -javaagent:sflowagent.jar -Dsflow.hostname=jvm-inmsf -Ds
  \_ inxtskd -t 1580432484
      \_ inxsazd -t 1580432484 -u inmsf -R
      |   \_ /usr/bin/perl /usr/local/inmsf/inx/bin/../../scripts/bgpmon.pl -l 10.0.0.114 10.0.0.30 65
      \_ inxpoll -t 1580432484 -H 1
      \_ inxADSweep -t 1580432484

Exabgpの使用

exabgpパッケージをインストールする場合、global.prefs設定を調整することにより、それを使用出来るようにTrafficSentinelを設定できます。
例:

BGPDefault=10.0.0.30
BGPLocalAS=65550
BGPPeerAS=12345
exabgp=/sbin/exabgp

ここで、[ファイル]>[コントロール]でデータ・コレクションをストップ&スタートすると、runBgpmonスクリプトが代わりにexabgpを実行します。設定ファイルはexabgp_conf.m4から生成されたexabgp.confであり、JSONからの変換はbgp_announce.py(すべて /usr/local/inmsf/scripts/ ディレクトリ)で実行されます。

トラブルシューティング

前提条件としてパッケージ m4 をインストールする必要がある場合があります。
次のコマンドを使用して、bgp_announce.pyスクリプトを実行可能にする必要がある場合があります。:

sudo chmod 755 bgp_announce.py

runBgpmonスクリプトを手動で実行することは、ピアリング接続を使用する前にテストするための最良の方法です。エラーメッセージは/usr/local/inmsf/log/bgpmon.logに記録されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?