sFlow
1 機能概要
sFlowはトラフィックを監視する技術です。
sFlowでは、トラフィックに流れる全パケットではなく、特定の割合のパケットをサンプリングすることで、トラフィック情報を統計的に監視することができます。
sFlowは、sFlowエージェントと、sFlowコレクターによって構成されます。

- sFlowエージェント
- サンプリングでトラフィックを監視し、sFlowの情報を作成する。
- sFlowの情報を格納したsFlowデータグラムをsFlowコレクターに送信する。
- sFlowコレクター
- sFlowエージェントから、sFlowの情報を格納したsFlowデータグラムを受け取る。
- 上記データグラムから、sFlowの情報を収集、解析する。
sFlowエージェントが行う、sFlowのサンプリングには、以下の2種類があります。
以下の両方、または、どちらかの情報がsFlowデータグラムに格納されます。
- パケットフローサンプリング
- インターフェースで送受信したすべてのパケットのうち、特定の割合をサンプルとして取得する。
- カウンターサンプリング
- インターフェースのカウンターを定期的にサンプリングする。
本製品は、sFlowエージェントとして動作します。
sFlowコレクターは、別途用意する必要があります。
本製品は、sFlow Version 5 (https://sflow.org/sflow_version_5.txt) に対応しています。
2 用語の定義
sFlowエージェント
サンプリングでトラフィックを監視し、sFlowの情報を作成後、sFlowの情報をsFlowコレクターに送信する機器。
本製品は、sFlowエージェントとして動作する。
sFlowコレクター
sFlowエージェントから、sFlowの情報を受け取り、情報の収集、解析を行う機器。
パケットフローサンプリング
インターフェースで送受信したすべてのパケットのうち、特定の割合をサンプルとして取得するサンプリング方法。
カウンターサンプリング
インターフェースのカウンターを定期的に取得するサンプリング方法。
sFlowデータグラム
sFlowエージェントがサンプリングによって取得した情報を格納した、UDPのパケット。
sFlowエージェントから、sFlowコレクターに送信される。
3 機能詳細
sFlow機能の動作仕様について、以下に示します。
- sFlow機能を有効にする場合は、 sflow enable コマンドで設定を行います。
- 初期設定は、 sflow disable (無効) となっています。
- sflow agent コマンドで、sFlowエージェントの以下の設定を行います。
- IPアドレス
- 本コマンドで設定したIPアドレスはsFlowデータグラムのsFlowヘッダーに使用されます。
- 初期設定は、設定なしとなっています。
- sflow collector コマンドで、sFlowコレクターの以下の設定を行います。
- IPアドレス
- UDPポート番号
- 本コマンドで設定した、IPアドレス、UDPポート番号宛てに、sFlowデータグラムが送信されます。
- 初期設定は、設定なしとなっています。
- 本製品では、sFlowコレクターを1台だけ設定できます。
- 本コマンドが設定されていない場合、サンプリングは開始されません。
- パケットフローサンプリングの動作は以下の通りです。
- 物理ポートに対して、 sflow sampling-rate コマンドで、サンプリングレートを設定することで、対象のポートにて、パケットフローサンプリングが行われます。
- サンプリングレートは、指定したパケットのうちの、1パケットをサンプリングする比率を指定します。
- 例えば、サンプリングレートを 1000 とした場合、対象のポートで 1000 パケットを送信または、受信したときの1パケットがサンプリングされます。
- 送信と、受信のサンプリングは別々に行われます。
- sflow max-header-size コマンドで、パケットフローサンプリングを行う際の、サンプリングするイーサネットフレームのヘッダーサイズの最大値を設定を行います。
- sflow sampling-rate コマンドで、サンプリングレートを設定した場合、以下の動作となります。
- 設定する前のサンプリングレートを用いたサンプリングが終了した後に、新しいサンプリングレートが適用されます。
- カウンターサンプリングの動作は以下の通りです。
- 物理ポートに対して、 sflow polling-interval コマンドで、ポーリング間隔を設定することで、対象のポートにて、カウンターサンプリングが行われます。
- ポーリング間隔は、カウンターを取得する秒数を指定します。
- 例えば、ポーリング間隔が30の場合、対象ポートのカウンター情報が30秒に1回サンプリングされます。
- 本製品から送信される、sFlowデータグラムは以下の通りです。
- sflow collector max-datagram-size コマンドで、sFlowデータグラムの最大サイズの設定を行います。
- パケットフローサンプリングのsFlowデータグラムには、sFlow Version 5 の以下が格納されます。
- Raw Packet Header(enterprise = 0, format = 1)
- カウンターサンプリングのsFlowデータグラムには、sFlow Version 5 の以下が格納されます。
- Generic Interface Counters(enterprise = 0, format = 1)
- Ethernet Interface Counters(enterprise = 0, format = 2)
- 使用できないカウンターには、カウンターの最大値が格納されます。(32ビットカウンターであれば、0xFFFFFFFF)
4 関連コマンド
関連コマンドについて、以下に示します。
コマンドの詳細は、コマンドリファレンスを参照願います。
- 関連コマンド一覧
| 操作項目 |
操作コマンド |
| sFlow機能の設定 |
sflow |
| sFlowエージェントの設定 |
sflow agent |
| sFlowコレクターの設定 |
sflow collector |
| sFlow データグラムの最大サイズの設定 |
sflow collector max-datagram-size |
| パケットフローサンプリングのサンプリングレートの設定 |
sflow sampling-rate |
| パケットフローサンプリングのイーサネットフレームの最大ヘッダーサイズの設定 |
sflow max-header-size |
| カウンターサンプリングのポーリング間隔の設定 |
sflow polling-interval |
| sFlowの状態の表示 |
show sflow |
| sFlowのサンプリング情報の表示 |
show sflow sampling |
5 コマンド実行例
port1.1でsFlowのパケットフローサンプリングと、カウンターサンプリングを実施します。
- sflowエージェントのIPアドレスを設定します。
Yamaha(config)#sflow agent 192.168.100.240
- sFlowコレクターのIPアドレスを設定します。
Yamaha(config)#sflow collector 192.168.100.2
- 対象ポートのパケットフローサンプリングのサンプリングレートを設定します。
Yamaha(config)#interface port1.1
Yamaha(config-if)#sflow sampling-rate 1000
- 対象ポートのカウンターサンプリングのポーリング間隔を設定します。
Yamaha(config)#interface port1.1
Yamaha(config-if)#sflow polling-interval 30
- sFlowを有効にします。
Yamaha(config)#sflow enable
6 注意事項
- sFlow MIBには対応していません。
- スタック構成にて、スタックメイン、スタックメンバー間で、show sflow sampling コマンドのサンプリング情報は同期されません。
- 通信量が多い環境で sflow sampling-rate コマンドが小さい値に設定されている場合、以下となる可能性があります。この場合 sflow sampling-rate コマンドの値の見直しを検討してください。
- show environment コマンドで表示されるCPU使用率が高くなる。
- show sflow コマンドで表示される「sFlow Drop Sampling Count」がカウントされる。
- この値がカウントされている場合、パケットフローサンプリングでサンプリングされたパケットが、高負荷のため処理できずにドロップされている。
7 関連文書
特になし