汎用BPF カウンター

Posted by fmadio | 100G Ethernet

我社のオープンソース・モニター・ツール- pcap_bpfcounter がリリースされました!


  • bpf counter title graphic

市場には数百のネットワーク・モニター・ツールがあり、無料のツール、安価なツール、法外価格のツールが出回っています。FMADIOは、自社の全ての捕捉システムと作動する関連 FMADIO プラグインを伴うオープンソース「pcap_bpfcounter」をリリースしました。

我社は、一事に長けるコンパクトなユーティリティであるべきとのUNIX ツール原則に従っています。一事とは、パケットをカウントしてバンド幅/マイクロバーストを計算することです。易しい事と思われますか?その通り簡単です!唯、ユニークな点はユーザーが定義する無限に近い数のBPF フローをカウントすることです。同じパケットをconfig ファイルに定められている各及び全てのBPF フィルターを通して送ることによって行われます。フィルターはBPF のため、一般的なフロー(例えば、全てのtcp/udp )から特定(BPF: vlan 5 及び host 192.168.1.90)の間のあらゆるフローのモニターが可能です。もしtcpdumpを使って出来るのであれば、それは文字どおり同じフィルター・エンジンです。

重要な点は、必要なだけ多くのBPF expressionを記述し、次に記するように、各及び全てのパケットをBPF expressionを通して送ることです。
BPF counter setup
結果としての出力は、解析するスクリプトのための簡単なタブで区切られたCSV ファイルです。各BPFフィルターにつき1つのファイルは、多数の異なったネットワークのフロー・モニターを容易にします。
BPF Expression: (host 192.168.1.1) Burst Bucket : 100000 nsec Output Time : 60000000000 nsec ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Time, EpochNS, Packets, Bytes, BurstMax(Mbps), RateMean(Mbps), PctTotal, RMON1_runt, RMON1_64, RMON1_64-127, RMON1_128-255, RMON1_256-511, RMON1_512-1023, RMON1_1024-1518, RMON1_1024-2047, RMON1_2048-4095, RMON1_4096-8191, RMON1_8192 2018-09-06_23:59:23.154.301.928, 1536245963154301928, 1, 250, 20.000, 0.000, 1.000000, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 2018-09-07_00:00:23.206.032.023, 1536246023206032023, 761, 128760, 101.440, 0.017, 0.456052, 309, 189, 262, 0, 0, 0, 0, 0, 0, 0, 0 2018-09-07_00:01:23.216.361.437, 1536246083216361437, 1524, 261516, 191.040, 0.018, 0.451980, 312, 189, 262, 0, 0, 0, 0, 0, 0, 0, 0 2018-09-07_00:02:23.230.927.657, 1536246143230927657, 2279, 388396, 101.440, 0.017, 0.457989, 306, 191, 258, 0, 0, 0, 0, 0, 0, 0, 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
構造はもっと簡単であり、以下に示すようにLUA 構造を用います。もっと複雑なネットワークのために、このconfigファイルを生成できます。 -- how often to generate output log entries in nano seconds SetUpdateRate(60e9) -- create pipelines CreatePipeline( { ["Name"] = "everything", ["BPF"] = "", -- no BPF filter ["RE"] = "", ["Output"] = "/mnt/remote0/fmadio000.stats", ["BurstTime"] = 100e3, -- time bucket to calculate microburtst statistics }) CreatePipeline( { ["Name"] = "everything-tcp", ["Output"] = "/mnt/remote0/fmadio000.stats", ["BPF"] = "tcp", ["RE"] = "", }) CreatePipeline( { ["Name"] = "everything-udp", ["Output"] = "/mnt/remote0/fmadio000.stats", ["BPF"] = "udp", ["RE"] = "", }) . . . .
最後になりますが、最良の点は、結果がNFSサーバーに書かれることです。 FMADIOパケット捕捉システム上において、NFS 共有を自動的にマウントでき、結果の情報を集中ロケーションに書くことができます。

GitHubにてさらに調べて下さい、又はFMADIOプラグインについて我社にお問合せください。