# 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機能の動作仕様について、以下に示します。

1. sFlow機能を有効にする場合は、 sflow enable コマンドで設定を行います。

   - 初期設定は、 sflow disable (無効) となっています。

2. sflow agent コマンドで、sFlowエージェントの以下の設定を行います。

   - IPアドレス

     - IPv4アドレス

     - IPv6アドレス

   - 本コマンドで設定したIPアドレスはsFlowデータグラムのsFlowヘッダーに使用されます。

   - 初期設定は、設定なしとなっています。

3. sflow collector コマンドで、sFlowコレクターの以下の設定を行います。

   - IPアドレス

     - IPv4アドレス

     - IPv6アドレス

   - UDPポート番号

     - 初期値は、6343 です。

   - 本コマンドで設定した、IPアドレス、UDPポート番号宛てに、sFlowデータグラムが送信されます。

   - 初期設定は、設定なしとなっています。

   - 本製品では、sFlowコレクターを1台だけ設定できます。

   - 本コマンドが設定されていない場合、サンプリングは開始されません。

4. パケットフローサンプリングの動作は以下の通りです。

   - 物理ポートに対して、 sflow sampling-rate コマンドで、サンプリングレートを設定することで、対象のポートにて、パケットフローサンプリングが行われます。

     - 初期設定は、設定なしとなっています。

   - sflow sampling-rate コマンドは、最大で5つの物理ポートに設定可能です。

   - sflow sampling-rate コマンドは、スタック構成時、メンバースイッチ毎に最大で5つの物理ポートに設定可能です。

   - sflow sampling-rate コマンドと、 mirror コマンドで設定するポートは重複できません。

   - サンプリングレートは、指定したパケットのうちの、1パケットをサンプリングする比率を指定します。

     - 例えば、サンプリングレートを 1000 とした場合、対象のポートで 1000 パケットを送信または、受信したときの1パケットがサンプリングされます。

   - 送信と、受信のサンプリングは別々に行われます。

   - ポートごとに独立してサンプリングが行われます。

   - sflow max-header-size コマンドで、パケットフローサンプリングを行う際の、サンプリングするイーサネットフレームのヘッダーサイズの最大値を設定を行います。

     - 初期値は、128です。

   - sflow sampling-rate コマンドで、サンプリングレートを設定した場合、以下の動作となります。

     - sflow sampling-rate コマンドで、サンプリングレートを設定した場合、以下の動作となります。

       - 受信側は、設定直後の場合は、最初の1パケットを受信したときにサンプリングが行われます。その後は、サンプリングレートの設定数でサンプリングされます。

       - 受信側は、設定する前のサンプリングレートを用いたサンプリングが終了した後に、新しいサンプリングレートが適用されます。

       - 送信側は、設定したときに、即座に新しいサンプリングレートが適用されます。

     - sflow sampling-rate コマンドを削除後、再度サンプリングレートを設定した場合、以下の動作となります。

       - 受信側は、削除する前のサンプリングレートを用いたサンプリングが終了した後に、新しいサンプリングレートが適用されます。

         - sflow sampling-rate コマンドを設定するポートを変更した場合でも、こちらの動作が適用されます。

       - 送信側は、設定したときに、即座に新しいサンプリングレートが適用されます。

5. カウンターサンプリングの動作は以下の通りです。

   - 物理ポートに対して、 sflow polling-interval コマンドで、ポーリング間隔を設定することで、対象のポートにて、カウンターサンプリングが行われます。

     - 初期設定は、設定なしとなっています。

   - ポーリング間隔は、カウンターを取得する秒数を指定します。

     - 例えば、ポーリング間隔が30の場合、対象ポートのカウンター情報が30秒に1回サンプリングされます。

   - ポートごとに独立してサンプリングが行われます。

6. 本製品から送信される、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のパケットフローサンプリングと、カウンターサンプリングを実施します。

1. sflowエージェントのIPアドレスを設定します。

       Yamaha(config)#sflow agent 192.168.100.240

2. sFlowコレクターのIPアドレスを設定します。

       Yamaha(config)#sflow collector 192.168.100.2

3. 対象ポートのパケットフローサンプリングのサンプリングレートを設定します。

       Yamaha(config)#interface port1.1
       Yamaha(config-if)#sflow sampling-rate 1000

4. 対象ポートのカウンターサンプリングのポーリング間隔を設定します。

       Yamaha(config)#interface port1.1
       Yamaha(config-if)#sflow polling-interval 30

5. 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」がカウントされます。

    - この値がカウントされている場合、パケットフローサンプリングでサンプリングされたパケットが、高負荷のため処理できずにドロップされています。 (※サンプリングはドロップされますが、パケット自体がドロップされるわけではありません)

  - サンプリング対象のポート数、他の機能の動作有無によって変わるため、一概に推奨値を示すことはできませんが、目安として、全ポート使用した場合でも、sFlowでのドロップが発生する可能性が低い sflow sampling-rate コマンドの値を以下に示します。

    - 1Gのインタフェースを使用する場合 …​ 2000 (1/2000)

    - 10Gのインタフェースを使用する場合 …​ 5000 (1/5000)

    - 25Gのインターフェースを使用する場合 …​ 8000(1/8000)

    - 100Gのインターフェースを使用する場合 …​ 10000(1/10000)

## 7. 関連文書

特になし

Search result
No more search results.
There are no topics that match your search query.