TWSNMPとRaspberry PiでNetFlow監視
TWSNMPにはNetFlow監視の機能があります。でもNetflow対応のネットワーク機器(ファイヤーウォール、SWーHUB)は、それなりの値段です。対応しているネットワーク機器でもNetflowを有効にすると通常の通信に影響がでることがあります。そこで、Raspberry Piとミラーポート付きの安価なSWーHUBでNetFlow監視を実現する話です。費用は1万円前後です。
の記事の番外編 その1の実験も関係しています。
必要な機材
まずは、必要な機材は
・ Raspberry Pi 4 (Memory 2GB)
・ミラーポート付きのSW-HUB
・LANケーブルなど
です。
Raspberry Pi 4は、
Netflowだけで使うなら2GBのメモリで十分ですがメモリの多いモデルでもよいです。
ミラーポート付きのSW-HUBは、
を使いました。ミラーポートに対応していれば他の製品でもよいです。
ミラーポートについては、
をみてください。
SW-HUBの設定
モニタしたい通信が通る位置にSW-HUBを設置します。私は、インターネットに接続されているルータの手前に接続しています。
ミラーポートを設定します。
私の使っているSW-HUBでは、
①ミラーリングを有効にする。
②ミラーリング先ポートをRaspberry Piの接続されているポートに設定する。
③ミラーリング元ポートにチェックをいれる。
という設定にしました。これでネットワークを流れる主要な通信をモニタすることができます。
RaspBerry Piでsoftflowdを起動する
Raspberry PiにSSHでログインします。まずは、softflowdをインストールします。
pi@raspberrypi:~ $ sudo apt install softflowd
softflowdを起動します。
pi@raspberrypi:~ $ sudo softflowd -i eth0 -n 192.168.1.250:2055 -v 10
192.168.1.250がTWSNMPのIPアドレスです。-v 10はNetflowのバージョン指定で、10の場合は、IPFIX仕様になります。TWSNMPは、version5にも対応しているので、その場合は、ここで5を指定すればよいです。
動作の確認は、
pi@raspberrypi:~ $ sudo softflowctl statistics
コマンドで、
softflowd[25211]: Accumulated statistics since 2020-08-23T01:24:29 UTC:
Number of active flows: 1116
Packets processed: 152983842
Fragments: 0
Ignored packets: 215619 (208171 non-IP, 7448 too short)
Flows expired: 116563 (0 forced)
Flows exported: 116120 (214353 records) in 8411 packets (886 failures)
Packets received by libpcap: 153192204
Packets dropped by libpcap: 108
Packets dropped by interface: 4294967295
Expired flow statistics: minimum average maximum
Flow bytes: 46 1755115 4181447698
Flow packets: 1 1294 4307858
Duration: 0.00s 46.06s 60255.99s
Expired flow reasons:
tcp = 6162 tcp.rst = 22343 tcp.fin = 29163
udp = 56001 icmp = 2797 general = 28
maxlife = 0
over 2 GiB = 69
maxflows = 0
flushed = 0
Per-protocol statistics: Octets Packets Avg Life Max Life
icmp (1): 160692 2481 63.10s 899.88s
igmp (2): 26636 579 1750.24s 36500.35s
tcp (6): 204456359696 150447933 49.50s 33597.28s
udp (17): 120954978 366248 15.08s 51571.25s
ipv6-icmp (58): 4001984 41242 632.56s 60255.99s
のような感じで表示されればOKです。
TWSNMPで確認
softflowdが起動できたら、いよいよTWSNMPで確認です。
まずは、マップ設定のNetflowをEnableにしてください。
ログ表示のWindowでIPFIXタブを選択すると
のようにNetFlowの受信ログが表示されれば成功です。おめでとうございます。
レポートWindowのサーバータブや通信フロータブに、
や
のようなレポートが表示できるようになると思います。
もし、TWSNMPでの受信がうまく行かない時は、
をみてください。
バグ発見
この実験でTWSNMPのIPFIXの処理にバグを発見しました。現在修正中です。今公開中のお試し版でIPFIXでモニタしているとTWSNMPが停止するかもしれません。