汎用BPF カウンター
我社のオープンソース・モニター・ツール- pcap_bpfcounter がリリースされました!
市場には数百のネットワーク・モニター・ツールがあり、無料のツール、安価なツール、法外価格のツールが出回っています。FMADIOは、自社の全ての捕捉システムと作動する関連 FMADIO プラグインを伴うオープンソース「pcap_bpfcounter」をリリースしました。
我社は、一事に長けるコンパクトなユーティリティであるべきとのUNIX ツール原則に従っています。一事とは、パケットをカウントしてバンド幅/マイクロバーストを計算することです。易しい事と思われますか?その通り簡単です!唯、ユニークな点はユーザーが定義する無限に近い数のBPF フローをカウントすることです。同じパケットをconfig ファイルに定められている各及び全てのBPF フィルターを通して送ることによって行われます。フィルターはBPF のため、一般的なフロー(例えば、全てのtcp/udp )から特定(BPF: vlan 5 及び host 192.168.1.90)の間のあらゆるフローのモニターが可能です。もしtcpdumpを使って出来るのであれば、それは文字どおり同じフィルター・エンジンです。
重要な点は、必要なだけ多くのBPF expressionを記述し、次に記するように、各及び全てのパケットをBPF expressionを通して送ることです。
結果としての出力は、解析するスクリプトのための簡単なタブで区切られた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プラグインについて我社にお問合せください。