商品基礎情報
FMADIOシステムは、主に以下の用途に最適化されています。
- 金融ネットワーク監視: ナノ秒単位の遅延計測、マイクロバーストの検知、市場データフィードの品質保証、障害解析、およびセキュリティインシデントへの対応において、高い精度と信頼性を提供します。
- 国家安全保障・政府機関: 高速ロスレスパケットキャプチャにより、リアルタイムの脅威検知、フォレンジック分析、および規制遵守を支援し、機密情報の保護に貢献します。
- 通信事業者: ネットワークの信頼性向上、トラブルシューティング、トラフィック分析と最適化、およびセキュリティ強化に不可欠なツールを提供し、中断のないサービス提供を支援します。
- データセンター内のネットワーク分析: トップオブラックでのパケットキャプチャにより、データセンター全体の広範かつ粒度の高いネットワーク可視性を低コストで実現します。
- リモートサイトでのネットワーク分析: オンボードの分析ツールとLinuxコンテナ(LXC)サポートにより、大規模なデータセットを移動させることなく、リモートサイトで直接データ分析を行うことを可能にします。
FMADIOシステムは、キャプチャポートから取り込んだデータを、FMADIOが開発したFPGAカードで内部のPCAP(Packet Capture)ライクなフォーマットに変換します。このFPGAは複数のキャプチャインターフェースからのデータを単一のデータストリームに統合し、「Capture Storage FIFO」と呼ばれる専用のストレージに書き込みます。このストレージは、最大1PB以上の容量を持つ非常に大きなFIFOとして機能し、システムソフトウェアがデータドロップの心配なくキャプチャデータを処理できるように設計されています。データは到着順にストレージに書き込まれ、ストレージの終端に達すると最も古いデータが上書きされるリングバッファ形式で動作し、継続的なキャプチャを可能にします。また、データの処理には、PCAP Analyze、PCAP Push、PCAP Downloadなどの様々な方法が提供されています。
FMADIOシステムはLinuxコンテナ(LXC)をサポートしており、ユーザーは好みの分析ソフトウェアをこれらのコンテナ内にデプロイして実行できます。これにより、パケットキャプチャデバイス上で直接、高速なパケット分析を行うことが可能になります。LXCコンテナは/opt/fmadio/lxc/<コンテナ名>/のディレクトリ構造内に全てのファイルが格納されており、簡単なtarballによるバックアップとリストアが可能です。また、LXCコンテナは、ホストシステムと同じ物理ネットワークインターフェースを共有するブリッジネットワークを介して、独自のIPアドレスを持つことができます。これにより、複数のIPアドレスを単一の物理インターフェース上で実行し、リソースの効率的な活用とネットワークの柔軟性を高めることができます。
FMADIOシステムは、以下のセキュリティ機能を提供しています。
- ディスク暗号化(SED): FIPS 140-3認証を受けた自己暗号化ドライブ(SED)をサポートし、物理的なアクセスがない限りディスクの内容が読み取れないように保護します。新しいパスワードの設定や、ディスクのロック/アンロック機能が含まれます。
- 認証モデルの変更: BASIC、OAUTH、RADIUS、PAM-LDAPなどの認証モデルをサポートし、既存の認証インフラとの連携を可能にします。特にLDAP認証は、ユーザーグループに基づいたSSHアクセスやWeb管理アクセスなどの権限管理を可能にします。
- HTTPアクセス制御: セキュリティ向上のため、暗号化されていないHTTPアクセスを無効にすることを推奨しています。
- SSHカスタマイズ: 揮発性ファイルシステムでの変更が失われる「pseudo-ROM」ベースのOSであるため、永続的なSSH鍵(authorized_keys)、カスタムSSHD設定、およびカスタムsudoersファイルを指定のパスに配置することで、SSH環境をセキュアにカスタマイズできます。
- テレメトリーサービス: SSHトンネルを介してFMADIO監視インフラにSyslogトラフィックを送信するリモートテレメトリーサービスを提供し、FMADIOスタッフがシステムの問題を未然に監視できるよう支援します。
FMADIOシステムでは、CLIを通じてファームウェアアップデートを行うことができます。プロセスは以下の通りです。
- ファームウェアファイルのコピー: SCPまたはcURLコマンドを使用して、.bin形式のファームウェアファイルをシステムにコピーします。
- ファームウェアのアップロードと処理: firmware_install.lua –upload <ファームウェアファイル名>コマンドを使用して、ファイルをシステムにアップロードし、処理します。この際、ファイルの完全性が検証されます。
- ファームウェアのインストール: firmware_install.lua –install <ファームウェアファイル名>コマンドでファームウェアをインストールします。この操作は、実行中のキャプチャがあれば中断させます。
- システムのリブート: アップデートを完了させるには、システムを再起動する必要があります。システムは2回再起動し、一度は「セーフモード」に入ってFPGAファームウェアを更新し、その後通常動作モードに戻ります。
FPGAイメージが破損した場合には、専用のリカバリープロセスも用意されており、工場出荷時のイメージからFMADIOファームウェアを再フラッシュすることが可能です。
FMADIOのパケットキャプチャデータは、多岐にわたる方法で分析・可視化されます。
- PacketScope2: ネットワーク上のトラフィックの種類を把握するためのプロトコル発見・分析ツールです。最大8層のVLAN、8層のMPLS、6層のIPv4など、深いカプセル化されたプロトコルスタックをデコードし、JSON形式でSQLデータベースに送信します。
- Grafanaダッシュボード: PCAP2JSONモジュールによって生成された粒度の高いネットワークメタデータをElasticsearchなどのソフトウェアにエクスポートし、Grafanaダッシュボードで視覚化します。MACアドレス、IPアドレス、プロトコル、ポート、アプリケーション、GeoIPロケーション、VLAN、データ/パケットレート、TCPフラグなどのメトリクスを可視化できます。
- マイクロバースト分析: pcap_microburstユーティリティを使用して、キャプチャされたデータのマイクロバースト分析をリアルタイムに近い形で行います。これにより、瞬間的なトラフィックの集中によるパケットロスや遅延の急増を特定できます。
- パケットサイズヒストグラム生成: capinfos2 -v –histo-sizeコマンドを使用して、キャプチャデータのトラフィックプロファイルを理解するのに役立つパケットサイズヒストグラムを生成できます。ワイヤー上のパケットサイズとディスクに保存されたキャプチャデータの両方でヒストグラムを生成可能です。
- IPアドレスヒストグラム: protoscope –ip=only | json2histo IPv4などのコマンドで、PCAP内のユニークなIPv4/IPv6アドレスとその出現回数をヒストグラムで表示します。
- Wireshark連携: FMADIO Ringを介して、キャプチャされたパケットをリアルタイムまたはオフラインでWiresharkに転送し、詳細なパケット分析を行うことができます。
FMADIOシステムは、主にキャプチャデータ保存用の高速SSD(CacheDisk、ParDisk)と、一時的または永続的なデータ保存用の「Scratch Disk」をサポートしています。
- キャプチャストレージ: FMADIOの主要なキャプチャストレージは、SSDドライブを使用した専用のカスタムファイルシステムです。高速かつロスレスなパケットキャプチャを実現するために最適化されており、非常に高いデータスループットを維持します。
- スクラッチディスク: キャプチャデータとは別に、LXCコンテナのデータ、ローカルPCAPストレージ、中間処理ストレージなど、一時的または永続的なデータを保存するために利用されます。物理ディスクのシリアル番号をdisk.lua設定ファイルでCacheDiskセクションからScratchDiskセクションに移動させることで、ディスクをスクラッチディスクとして再割り当てできます。スクラッチディスクはRAID0またはRAIDxグループとして設定でき、柔軟なストレージ割り当てが可能です。スクラッチディスクの作成後には、システムのリブートとキャプチャアレイの再フォーマットが必要になります。
- リモートNFSマウント: リモートのNFSファイルシステムをFMADIOデバイスにマウントすることで、キャプチャデータをリモートストレージに直接書き出したり、処理結果を保存したりすることが可能です。設定は/opt/fmadio/etc/disk.luaファイルで行い、特定のNFSサーバーのIPアドレスとマウントポイントを指定します。
FMADパケットキャプチャ装置で取得したデータを外部ストレージに転送する場合、主に「Push PCAP」機能を使用することで実現できます。
以下にその構成と制限事項を解説します。
FMADパケットキャプチャ装置からのデータ転送構成
FMADIOシステムには、キャプチャされたPCAPデータを定期的にリモートシステムやローカルのスクラッチディスクに転送する**「Push PCAP」機能が組み込まれています**。この機能は、まずデータがSSDストレージに書き込まれた後、そこから読み出されて処理されるため、キャプチャ時のパケット損失を防ぎます。
- Push PCAPのサポート対象ハードウェア
以下のFMADIO製品がPush PCAP機能をサポートしています:
- FMADIO-3114
- FMADIO-3214
- FMADIO-3414
- FMADIO-3514
- FMADIO-5114 (Push PCAP Intraday および End of Day をサポート)
- FMADIO-5214 (Push PCAP Intraday および End of Day をサポート)
- FMADIO-5414 (Push PCAP Intraday および End of Day をサポート)
- FMADIO-5514 (Push PCAP Intraday および End of Day をサポート)
- 設定方法
Push PCAPの設定は、/opt/fmadio/etc/push_pcap.luaという設定ファイルを介して行います。より高度な機能については、この設定ファイルを直接編集することが推奨されますが、基本的な機能はFMADIO CLIで設定できます。
設定ファイルには、以下のような情報を記述します:
- Target (転送先): 転送先の種類とパス。
- Split (分割): PCAPファイルを分割する時間間隔(例: 1分PCAPをリモートNFS共有にプッシュする)。
- PipeCmd (パイプコマンド): 転送前にデータを圧縮するコマンド(例: zstd -c -T8で圧縮).
- FilterBPF (BPFフィルター): 転送するパケットに適用するBerkeley Packet Filter(例: tcp and port 80でTCPポート80のトラフィックのみをフィルター)。
- FilterFrame (フレームフィルター): パケットのペイロード以外の部分(例: 物理キャプチャポート)でフィルタリングを行うFMADIO独自のフレームフィルターを適用できます。
- サポートされる外部ストレージの種類
Push PCAPは、rcloneユーティリティを介して多様な転送先をサポートしています。
- ローカルファイル (linux file): FMADIOキャプチャシステム上のファイル。
- NFS (Network File System): リモートNFSマウントポイント。
- SFTP (SSH File Transfer Protocol): リモートSSHファイルシステム。
- FTP (File Transfer Protocol): FTPプッシュ。
- S3 (Amazon S3): S3プロトコル。
- Google Drive
- Digital Ocean Spaces
- Azure Blob (Microsoft Azure Blob)
- Dropbox
- Hadoop HDFS (Hadoop File System)
- Ceph (S3インターフェース)
- その他多数: rcloneのドキュメントに記載されているエンドポイントの全リストをサポートしています。
- 転送モード
- 自動Push PCAP (Automatic Push PCAP): 定期的なスケジュールでキャプチャデータを転送します。設定ファイル/opt/fmadio/etc/push_pcap.luaに設定を記述し、24時間365日稼働させることも可能です。
- 手動オフラインPush PCAP (Manual Offline Push PCAP): 以前にキャプチャされた特定のファイルに対して、手動で一度限りの転送を実行します。これはデバッグやテストに役立ちます。sudo /opt/fmadio/analytics/push_pcap.lua –offline <capture name>コマンドで実行できます。
- 転送後の処理(Post-processing)
転送されたPCAPファイルに対して、カスタムスクリプトを自動的に実行するポストプロセシング機能も設定できます。例えば、転送後にPCAPを圧縮したり、MD5チェックサムを生成したりすることができます。このスクリプトはBashスクリプトやPythonスクリプトなど、実行可能な形式であれば利用可能です。
制限事項および考慮事項
- 一次書き込みと処理: FMADIOシステムは、パケット損失を防ぐためにまずSSDストレージにデータを書き込みます。その後、ストレージからデータを読み出し、Push PCAPコードによって処理・転送されます。
- パフォーマンスのボトルネック: 通常、リモートプッシュ先のI/O帯域幅がボトルネックになる傾向があります。ローカルのRAMディスクでのテストでは、ネットワークとリモートI/Oのパフォーマンスを除外して、FMADIOのフェッチ、フィルター、および圧縮のパフォーマンスに焦点を当てることができます。
- ディスク容量管理: 転送先のディスクストレージは、PCAPファイルを消費し、ドライブ全体を埋めてしまう可能性があります。デフォルトでは、FMADIOはファイルのローテーションやディレクトリのサイズの管理を行いません。そのため、自動PCAP削除機能を設定して、転送先のディスクスペースを管理することを推奨します。/opt/fmadio/etc/pcap_rotate.luaに設定ファイルをすることで、ディレクトリの最大サイズを指定してファイルの自動削除を監視できます。
- NFSマウントのタイムアウト: NFSマウントが失敗した場合、システムの起動に最長5分かかることがあります。NFSクライアントがリモートパーティションのマウントを諦めるまでのタイムアウト時間によるものです。
- ネットワーク設定: 正しくデータを転送するためには、FMADIOデバイスの管理インターフェースのIPアドレス、ネットマスク、ゲートウェイ設定を確認し、必要に応じてファイアウォールルール(IPTablesなど)を設定する必要があります。