sFlow

sFlow

1. 機能概要

sFlowはトラフィックを監視する技術です。
sFlowでは、トラフィックに流れる全パケットではなく、特定の割合のパケットをサンプリングすることで、トラフィック情報を統計的に監視することができます。

sFlowは、sFlowエージェントと、sFlowコレクターによって構成されます。

image

  • 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 コマンドで、サンプリングレートを設定することで、対象のポートにて、パケットフローサンプリングが行われます。

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

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

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

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

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

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

      • 初期値は、128です。

    • 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のインタフェースを使用する場合 …​ 10000 (1/10000)

7. 関連文書

特になし