「TWSNMP FC を Windows 10 で試す」では、TWSNMP FC を Windows 10 のPCで動作させたが、長期的に運用することを考えるとWindows 10はあまりよくない。Windows Update で自動的に再起動されたのちに、思ったように動作しないことも危惧される。
常時通電されている機器としてQNAPのNASがあるので、それで TWSNMP FC を動作させることにした。
TWSNMPには Docker のコンテナが用意されているので、QNAPの Container Station を使ってDocker コンテナを動作させることにした。
TWSNMP FC 本体と、情報を収集するセンサーとして softflowd と twpcap を Dockerで動作させてみた。
基本的に、「はじめてのTWSNMP FC」「TWSNMP FCを助けるセンサーたち」に書かれている通りであるが、コマンドパラメータは QNAP NAS用に調整する必要があったので、記録を残しておく。
目次
利用した機材とツール
- QNAP TS-453A
- QTS (ファームウェアバージョン) 5.0.0.1858 Build 20211119
- Container Station 2.4.3.208 (2021/11/08)
TWSNMP FC
コンテナ設定
NASのWebインタフェースのシステムポート(のデフォルト)が 8080 になっているので、TWSNMP FC のインタフェースのポートを 8880 にすることにした。
「はじめてのTWSNMP FC」の「Linux/Mac OS/Windowsでの起動方法」に記載されているポート番号指定 -port を使って、 -port 8880 をコンテナ設定の「コマンド」に指定した。
エントリーポイントには /twsnmpfc を指定した。
CPUリミットやメモリ制限は行っていない。条件に応じて調整することが必要である。
詳細設定
コンテナ作成時には、環境設定とデバイスには何も設定しなかった。
環境設定
コンテナ作成時には何も環境変数を追加していない。
最初にコンテナを作成する際には PATH もない状態であったと思うが、2回目からはPATHが表示されるようになった。
ネットワーク
TWSNMP FC を host モードで動作させた。
Syslogサーバー
TWSNMP FC は Syslogサーバの利用するポート 514 を利用するので、QTSのSyslogサーバーはオフにした。
デバイス
コンテナ作成時には何も設定を変更しなかった。
共有ファイル
NASにNetworkという共有フォルダを作成し、その直下に twsnmp/twsnmpfc というフォルダを作成した。
docker run の引数として -v (−−volume)で、
-v=[ホスト側ソース:]コンテナ側送信先[:<オプション>] という形式で指定するので次に相当するパラメータを設定した。
1 |
-v /share/Network/twsnmp/twsnmpfc:/datastore |
ホストからのボリューム
「ホストからのボリューム」の追加ボタンを押し、ホストからのボリュームには /Network/twsnmp/twsnmpfc を選択した。
QNAPのNASの共有フォルダは、内部では /share の下に作成される。後に示す作成後の共有フォルダーのパネルでは、/share/Network/twsnmp/twsnmpfc と表示される。
マウントポイント
マウントポイントには、/datastore を指定した。
コンテナ作成前の確認の要約
コンテナの起動
twsnmpfc コンテナを起動すると以下のようになった。
データベース twsnmpfc.db
コンテナを作成して、実行した後だが、外部から見るとNASには、(QTSの FileStation 5で見るとデータボリュームの下に) /Network/twsnmp/twsnmpfc/twsnmpfc.db というデータベースが作成された。
twsnmpfc 設定内容の確認
作成時と基本的には同じ内容であるが、コンテナ作成後のコンテナ設定の表示を示す。
softflowd
IPFIX (NetFlow V10)のセンサーである。
ここでは、NASのLANのインタフェースの0番 (eth0) を監視し(-i eth0)、ローカルマシン(NAS)自身を表すローカル・ループバック・アドレス(127.0.0.1)のポート 2055 を送り先に指定することで(-n 127.0.0.1:2055)、ローカルマシンで動作する twsnmpfc に NetFlow v10 形式のデータを送る(-v 10)。
実行するコマンドとしては次に相当する。
1 |
/usr/sbin/softflowd -d -i eth0 -v 10 -n 127.0.0.1:2055 |
NASの eth0 を監視する設定では、このインタフェースを流れるパケットしか対象にならない。
以下では、「/usr/sbin/softflowd -d」 をエントリポイント欄に設定し、「-i eth0 -v 10 -n 127.0.0.1:2055」をコマンド欄に設定している。LANのインタフェースや送り先などは環境に応じて変更する必要がある。
TWSNMP FC では、ログのIPFIX で、データを確認することができる。
詳細設定
ネットワークモードをHostに設定する。
環境、デバイス、共有フォルダは何も設定しなかった。
twpcap
パケットキャプチャをし、そこから必要な情報を抽出して、syslog に送る。IPアドレスとMACアドレスの対応を追跡するためには、twpcap を動作させる必要がある。
ここでは、NASのLANのインタフェースの0番 (eth0) をキャプチャ(-iface eth0)、ローカルマシン(NAS)自身を表すローカル・ループバック・アドレス(127.0.0.1)を送り先に指定することで(-syslog 127.0.0.1)、ローカルマシンで動作する twsnmpfc に syslog形式でデータを送る(-v 10)。
実行するコマンドとしては次に相当する。
1 |
/twpcap -iface eth0 -syslog 127.0.0.1 |
以下では、「/twpcap」 をエントリポイント欄に設定し、「-iface eth0 -syslog 127.0.0.1」 をコマンド欄に設定している。LANのインタフェースや送り先などは環境に応じて変更する必要がある。
TWSNMP FC では、ログのSyslog で、データを確認することができる。
NASの eth0 を監視する設定では、このインタフェースを流れるパケットしか対象にならない。必要に応じて、ポートミラーリングするスイッチを利用して指定したスイッチのポートを流れる全パケットをミラーリングポートにコピーし、ミラーリングポートに接続したPCなどで twpcap を動作させることになる。
詳細設定
ネットワークモードをHost に設定する。
環境、デバイス、共有フォルダは何も設定しなかった。
動作確認
twsnmpfc には、Webブラウザで、NASのアドレスとポート番号8880 を指定してアクセスすることで、「ようこそ TWSNMP FC」画面が表示された。
ログのIPFIX をみるとデータが更新されていることから、softflowdは動作しているようであった。
また、ログのSyslogも、データが更新されていることから twpcap も動作していることを確認した。
(2022年3月4日追記)
ただ、twsnmpfc のマップでノード間にラインを引くことができなかった。「はじめてのTWSNMP FC」や「TWSNMP FC: マップ上でライン編集」に記載されている操作を試したが、ライン編集のダイアログが表示されることはなく、ラインを引くことができなかった。今後、操作方法などを調べていきたい。
twsnmpfcのバージョンを v1.8.0(f099a78)に更新したところ、ラインを引けることを確認した。
コメント
去年のバージョンだとブラウザーによってはラインが描けない問題が
あったと思います。
私の環境のChromeではライン描けてます。
ありがとうございます。twsnmpfc を使わせていただいております。
バージョンを v1.8.0 に更新することで、ラインが描けることを確認しました。