TrafficSentinel BGP ピアリング

TrafficSentinel BGP ピアリング

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

機能概要

ルーターがsFlow「ExtendedGateway」拡張機能を完全に実装している場合(sFlow仕様を参照)、このピアリング接続は必要ありません。それ以外の場合は、この機能を使用してルーティングテーブルを獲得し、それらを使用して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に記録されます。