ICTSC2025 本戦 問題解説: [7067] フローを観測できない

問題文

概要

検証用にフローコレクターを構築し、フローをエクスポートしたのだが、なぜかコンソールでフローを観測できない。フローを観測できるようにしてほしい。

server1 にフローコレクターを構築し、router で server1 に向けてフローをエクスポートする設定をしたが、server1 から server2 への ping 10.128.2.2 等の通信をフローコレクターのコンソールでフローとして観測できない。

フローコレクターのコンソールは server1 の http://localhost:8080 でアクセスできるため ssh -L 8080:localhost:8080 等の SSH ポートフォワーディングなどをすることでブラウザでアクセスすることができる。

制約

  • server1, server2 の全ての設定を変更してはならない
    • 動作確認のための一時的な変更はしてもよい

初期状態

  • server1 から server2 への ping 10.128.2.2 等の通信をフローコレクターのコンソールにてフローとして観測できない
    • Exporters が 1 になっていない
    • Last flow に server1, server2 間のフローが表示されていない
  • server1 の curl -s http://127.0.0.1:8080/api/v0/outlet/flows\?limit\=1 でフローが表示されない

終了状態

  • server1 から server2 への ping 10.128.2.2 等の通信をフローコレクターのコンソールにてフローとして観測できる
    • Exporters が 1 になっている
    • Last flow に server1, server2 間のフローが表示されている
  • server1 の curl -s http://127.0.0.1:8080/api/v0/outlet/flows\?limit\=1 でフローが表示される

解説

このトラブルは次の 3 つの原因によって起こっていました。

  1. router に SNMP が設定されておらず、フローコレクターがインターフェース名などのメタデータを取得できなかったため、受信したフローがエラーとして破棄されていた

  2. router のフローエクスポートにおけるサンプリングレートが高く、少量のトラフィックを検出しづらかった

  3. (オプション) router のフローエクスポート設定が IPFIX となっており、フローコレクターとの相性が悪かった可能性がある

そのため router にて次の 3 つの設定をすることで、トラブルが解消され、終了状態の通りにフローを観測することができます。

  1. router に SNMP を設定する
set service snmp community public authorization ro
set service snmp community public client 10.128.0.1
set service snmp listen-address 10.128.0.3
  1. router のフローエクスポート設定にてサンプリングレートが小さくする
set system flow-accounting netflow sampling-rate 1
  1. (オプション) router に sFlow を設定する
set system sflow agent-address 10.128.0.3
set system sflow agent-interface eth1
set system sflow interface eth2
set system sflow interface eth3
set system sflow polling 10
set system sflow sampling-rate 1
set system sflow server 10.128.0.1 port 6343

採点基準

  • server1 から server2 への ping 10.128.2.2 等の通信をフローコレクターのコンソールにてフローとして観測できる + 100 点
    • Exporters が 1 になっている
    • Last flow に server1, server2 間のフローが表示されている
  • server1 の curl -s http://127.0.0.1:8080/api/v0/outlet/flows\?limit\=1 でフローが表示される + 100 点

講評

このトラブルは、作者の実体験をベースにしたものです。作者の手元の環境で Akvorado というフローコレクターを VyOS をフローエクスポーターとして動作確認する際に、 遭遇したトラブルをそのまま出題しました。

この問題は半数のチームが解けていました。問題文では、動作環境のソフトウェアやネットワークの説明が無く、フローコレクターを触ったことのない方には、その概要や周辺知識も調べる必要があるため難しかったかと思います。

私が作問したときは、sFlow でのみフローを観測できていたのですが、報告書通りに操作をすると IPFIX や NetFlow v9 でも終了条件を満たすチームが複数いました。そのため 3 つ目の原因と設定についてはオプションと記載しています。