(57)【要約】  オープンフローネットワークでトラフィックストームが発生した場合、フロー単位で原因のフレームを破棄し、無差別なフレームの破棄やポート自体のダウンを行わない。具体的には、コントローラーは、定期的に取得している配下の個々スイッチの統計情報から、トラフィックの短期間における増大を検知する。検知した場合、コントローラーはストーム検知モードを起動する。ストーム検知モードでは、サンプルパケットとして、一定期間該当スイッチから無作為にパケットを抽出する。コントローラーは、このサンプルパケットに基づき、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかが発生しているかを判断する。いずれかが発生している場合、トラフィックストームが発生していると判断する。トラフィックストームが発生している場合、解析したサンプルパケットの情報から、ストームの原因であるパケットを示すルール（マッチ条件）と、それを破棄する旨が記されたアクションが定義されたエントリを「ＦｌｏｗＭｏｄ」メッセージによって該当スイッチの該当ポートに対して設定する。
2012056816.tif 000002
【特許請求の範囲】
【請求項１】
内部のフローテーブルに登録されたエントリに従って、パケットを転送するスイッチと、
前記スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、前記スイッチに対して設定するコントローラーと
を含み、
前記スイッチは、トラフィックストームが発生した場合、前記破棄用エントリに従って、フロー単位で原因のパケットを破棄する
ネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムであって、
前記コントローラーは、
定期的に、前記スイッチから転送パケットの統計情報を取得する手段と、
前記統計情報から、転送パケットの増加量が設定閾値を超過した旨を検知した場合、前回のパケットサンプリングの終了時より所定時間が経過していれば、前記スイッチに対するパケットサンプリングを開始する手段と、
前記統計情報から、転送パケットの増加量が設定閾値を下回った旨を検知した前記スイッチに対するパケットサンプリングを終了する手段と
を具備する
ネットワークシステム。
【請求項３】
請求項１又は２に記載のネットワークシステムであって、
前記コントローラーは、
前記パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する手段と、
ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかである場合、サンプリングしたパケットがトラフィックストームの原因であると判断する手段と
を更に具備する
ネットワークシステム。
【請求項４】
請求項１乃至３のいずれか一項に記載のネットワークシステムで使用されるコントローラー。
【請求項５】
スイッチにおいて、内部のフローテーブルに登録されたエントリに従って、パケットを転送することと、
コントローラーにおいて、前記スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、前記スイッチに対して設定することと、
前記スイッチにおいて、トラフィックストームが発生した場合、前記破棄用エントリに従って、フロー単位で原因のパケットを破棄することと
を含む
通信トラフィック制御方法。
【請求項６】
請求項５に記載の通信トラフィック制御方法であって、
前記コントローラーにおいて、定期的に、前記スイッチから転送パケットの統計情報を取得する手段と、
前記統計情報から、転送パケットの増加量が設定閾値を超過した旨を検知した場合、前回のパケットサンプリングの終了時より所定時間が経過していれば、前記スイッチに対するパケットサンプリングを開始することと、
前記統計情報から、転送パケットの増加量が設定閾値を下回った旨を検知した前記スイッチに対するパケットサンプリングを終了することと
を更に含む
通信トラフィック制御方法。
【請求項７】
請求項５又は６に記載の通信トラフィック制御方法であって、
前記コントローラーにおいて、前記パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断することと、
ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかである場合、サンプリングしたパケットがトラフィックストームの原因であると判断することと
を更に含む
通信トラフィック制御方法。
【請求項８】
請求項５乃至７のいずれか一項に記載の通信トラフィック制御方法におけるコントローラーとしての処理を、計算機に実行させるためのプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムに関し、特にオープンフロー（ＯｐｅｎＦｌｏｗ）対応機器に付随するトラフィックストームの制御を行うネットワークシステムに関する。
【背景技術】
【０００２】
ネットワーク通信の経路制御方式の１つとして、通信機器の制御プロトコルであるオープンフロー（ＯｐｅｎＦｌｏｗ）技術を使用した経路制御方式が研究されている。オープンフロー技術の詳細については、非特許文献１、２に記載されている。オープンフロー技術による経路制御が行われるネットワークを、オープンフローネットワークと呼ぶ。【０００３】
オープンフローネットワークでは、ＯＦＣ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）等のコントローラーが、ＯＦＳ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）等のスイッチのフローテーブル（Ｆｌｏｗ  Ｔａｂｌｅ）を操作することによりスイッチの挙動を制御する。コントローラーとスイッチの間は、コントローラーがオープンフロープロトコルに準拠した制御メッセージを用いてスイッチを制御するためのセキュアチャネル（Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ）により接続されている。【０００４】
オープンフローネットワークにおけるスイッチとは、オープンフローネットワークを形成し、コントローラーの制御下にあるエッジスイッチ及びコアスイッチのことである。オープンフローネットワークにおける入力側エッジスイッチでのパケット（通信データ）の受信から出力側エッジスイッチでの送信までのパケットの一連の流れをフロー（Ｆｌｏｗ）と呼ぶ。【０００５】
フローテーブルとは、所定のルール（マッチ条件）に適合するパケット群（パケット系列）に対して行うべき所定のアクション（処理内容）を定義したフローエントリ（Ｆｌｏｗ  ｅｎｔｒｙ）が登録されたテーブルである。【０００６】
フローエントリのルールは、パケットの各プロトコル階層のヘッダ（ｈｅａｄｅｒ）領域に含まれる宛先アドレス（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）、送信元アドレス（Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）、宛先ポート（Ｄｅｓｔｉｎａｔｉｏｎ  Ｐｏｒｔ）、送信元ポート（Ｓｏｕｒｃｅ  Ｐｏｒｔ）のいずれか又は全てを用いた様々な組合せにより定義され、区別可能である。なお、上記のアドレスには、ＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）やＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を含むものとする。また、上記に加えて、入口ポート（Ｉｎｇｒｅｓｓ  Ｐｏｒｔ）の情報も、フローエントリのルールとして使用可能である。【０００７】
フローエントリのアクションは、「特定のポートに出力する」、「廃棄する」、「ヘッダを書き換える」といった動作を示す。例えば、スイッチは、フローエントリのアクションに出力ポートの識別情報（出力ポート番号等）が示されていれば、これに該当するポートにパケットを出力し、出力ポートの識別情報が示されていなければ、パケットを破棄する。或いは、スイッチは、フローエントリのアクションにヘッダ情報が示されていれば、当該ヘッダ情報に基づいてパケットのヘッダを書き換える。【０００８】
オープンフローネットワークにおけるスイッチは、フローテーブルに登録されたフローエントリのルールに適合するパケット群に対して、当該フローエントリのアクションを実行する。【０００９】
一般に、メッシュ（ｍｅｓｈ：格子、網目）型トポロジー（ｔｏｐｏｌｏｇｙ：接続形態）等のネットワークでは、ループとなる経路が発生する場合がある。【００１０】
例えば、図１に示すように、メッシュ型トポロジー等のネットワークで経路制御を誤ると、ブロードキャストが送信された場合にそのパケット（又はフレーム）がループし、更に増殖して、帯域を圧迫し通信に影響が出る。なお、フレームとは、ＯＳＩ参照モデルのデータリンク層における通信データの伝送単位である。パケットとは、ＯＳＩ参照モデルのネットワーク層における通信データの伝送単位である。【００１１】
上記の問題を解決するための従来の手法として、ブロードキャストフレームがある一定の閾値に達したとき、閾値を越えたフレームを破棄（Ｄｒｏｐ）する、若しくはそのポートを遮断（Ｄｏｗｎ）するというものがある。【００１２】
しかし、上記の手法をオープンフローネットワークに適用した場合、本来は正常に転送（送受信）されるはずのフレームが破棄（又は遮断）され転送されない可能性がある。【００１３】
関連する技術として、特許文献１（特開２００６−３５２２６３号公報）に通信制御方法及び、これを適用する通信装置が開示されている。この関連技術では、サブネット内の中継スイッチに接続された複数のエンドホスト間でデータの送受を行う通信システムにおいて、中継スイッチにおけるＬ２レベルの誤接続により発生するパケットループによる通信障害を回復する通信制御方法であって、サブネットを構成する、通信させたいエンドホストの送信元ＭＡＣアドレス以外のＭＡＣアドレスを送信元として、パケットを連続して送信し、これにより、パケットループを停止させ、ついで、送信先のエンドホストのＭＡＣアドレスを送信先ＭＡＣアドレスとしてパケットデータを送信する。【００１４】
また、特許文献２（特開平１１−１１２５４４号公報）にＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）スイッチが開示されている。この関連技術では、装置単位ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ：仮想ＬＡＮ）機能を有するＬＡＮスイッチが、ＶＬＡＮマルチキャストフレームカウント部と、受信フレーム破棄部を備えている。ＶＬＡＮマルチキャストフレームカウント部は、単位時間当たりの値が一定の閾値以上になるＶＬＡＮブロードキャストマルチキャストカウンタがある場合に該当ＶＬＡＮのＶＬＡＮリミッタフラグを立てる。受信フレーム破棄部は、受信フレームの宛先アドレスがブロードキャストアドレス若しくはマルチキャストアドレスであり、かつＶＬＡＮリミッタフラグが立っているＶＬＡＮに該当している場合に受信フレームを破棄する。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００６−３５２２６３号公報
【特許文献２】特開平１１−１１２５４４号公報
【非特許文献】
【００１６】
【非特許文献１】“Ｔｈｅ  ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｃｏｎｓｏｒｔｉｕｍ”，［ｏｎｌｉｎｅ］，インターネット（ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／）
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ，  Ｖｅｒｓｉｏｎ  １．０．０”，［ｏｎｌｉｎｅ］，Ｄｅｃｅｍｂｅｒ  ３１，２００９，インターネット（ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ１．０．０．ｐｄｆ）
【発明の概要】
【００１７】
オープンフロー（ＯｐｅｎＦｌｏｗ）ネットワークのような自由度が高いルーティング環境においては、ネットワーク構築をする者がルーティングの誤設定を行ってしまう可能性があることが懸念される。
【００１８】
オープンフローネットワークでは、多岐に渡るキーの組合せでフロー毎の経路を選択するため、設定によってループを形成することは容易である。そのため、ルーティングの誤設定により、意図せず、ループを形成してしまう可能性もある。
【００１９】
仮に、ループを持つオープンフローネットワークにおいて、トラフィックストーム（ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれか）が発生した場合、従来の手法で解決を図ると、本来破棄されるべきでないパケット（又はフレーム）が破棄されるという不具合や、ポート自体が遮断（Ｄｏｗｎ）することで他の通信にまで影響が及ぶという不具合が生じる可能性がある。
【００２０】
本発明の目的は、オープンフローネットワークでトラフィックストームが発生した場合、フロー単位で原因のパケットを破棄し、無差別なパケットの破棄やポート自体のダウンを行わないネットワークシステムを提供することである。
【００２１】
本発明に係るネットワークシステムは、内部のフローテーブルに登録されたエントリに従って、パケットを転送するスイッチと、スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、スイッチに対して設定するコントローラーとを含む。スイッチは、トラフィックストームが発生した場合、破棄用エントリに従って、フロー単位で原因のパケットを破棄する。
【００２２】
本発明に係る通信トラフィック制御方法では、スイッチにおいて、内部のフローテーブルに登録されたエントリに従って、パケットを転送する。また、コントローラーにおいて、スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、スイッチに対して設定する。また、スイッチにおいて、トラフィックストームが発生した場合、破棄用エントリに従って、フロー単位で原因のパケットを破棄する。
【００２３】
本発明に係るプログラムは、上記の通信トラフィック制御方法におけるコントローラーとして処理を、計算機に実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
【００２４】
ポートのＵＰ（接続状態）が維持されることにより、ループ環境にあっても、オープンフロー制御によってループせず、正常に転送されるパケットが存在する場合、それらのパケットに影響を出さない。
【図面の簡単な説明】
【００２５】
【図１】従来のネットワークシステムにおける課題を説明するための図である。
【図２】本発明に係るネットワークシステムの構成例を示す図である。
【図３】本発明に係るネットワークシステムの実施例を説明するための図である。
【図４Ａ】本発明に係るネットワークシステムにおける動作を示すフローチャートである。
【図４Ｂ】本発明に係るネットワークシステムにおける動作を示すフローチャートである。
【図５】本発明に係るコントローラーの構成例を示す図である。
【発明を実施するための形態】
【００２６】
＜実施形態＞
以下に、本発明の実施形態について添付図面を参照して説明する。
【００２７】
［システム構成］
図２に示すように、本発明に係るネットワークシステムは、スイッチ（ＳＷ）１０（１０−ｉ、ｉ＝１〜ｎ：ｎはスイッチ数）と、コントローラー（Ｃｏｎｔｒｏｌｌｅｒ）２０と、端末３０を含む。
【００２８】
スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）、及びコントローラー２０は、オープンフローネットワークを形成する。スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）は、オープンフローネットワークにおけるノード（ｎｏｄｅ）である。
【００２９】
スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）は、内部にフローテーブルを持ち、フローテーブルに登録されたエントリに従って、パケットを転送する。
【００３０】
また、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）は、定期的に、転送パケットの統計情報をコントローラー２０に通知する。
【００３１】
スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）は、ポート毎に、プロトコル（ＴＣＰ、ＵＤＰ、ＩＣＭＰ等）単位の統計、或いはアクション単位の統計を取り、統計情報として保持している。コントローラー２０とスイッチ１０（１０−ｉ、ｉ＝１〜ｎ）間でのメッセージの送受信の統計も統計情報となる。コントローラー２０とスイッチ１０（１０−ｉ、ｉ＝１〜ｎ）間では、オープンフロープロトコルで規定されたメッセージで通信が行われている。以下、オープンフロープロトコルで規定されたメッセージを、オープンフロープロトコルメッセージ（ＯｐｅｎＦｌｏｗ  Ｐｒｏｔｏｃｏｌ  Ｍｅｓｓａｇｅ）と呼ぶ。
【００３２】
また、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）は、オープンフロー（ＯｐｅｎＦｌｏｗ）ネットワークでトラフィックストーム（ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれか）が発生した場合、フロー単位で原因のパケット（又はフレーム）を破棄し、無差別なパケットの破棄やポート自体のダウンを行わない。なお、ユニキャストストームとは、フローテーブルに該当エントリが未登録のパケットが原因のストームである。
【００３３】
ここでは、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）として、スイッチ１０−１（ＳＷ１）、スイッチ１０−２（ＳＷ２）、スイッチ１０−３（ＳＷ３）及びスイッチ１０−４（ＳＷ４）を示す。
【００３４】
コントローラー２０は、定期的に、配下のスイッチ１０（１０−ｉ、ｉ＝１〜ｎ）の各々から、転送パケットの統計情報を取得し、これらの統計情報から、トラフィックの短期間における増大を検知する。
【００３５】
また、コントローラー２０は、トラフィックの増大を検知した場合、ストーム検知モードを起動する。コントローラー２０は、ストーム検知モードでは、一定期間、無作為に該当スイッチ１０から転送されてきたパケットを抽出する。ここでは、無作為に抽出されたパケットを、サンプルパケットと呼ぶ。すなわち、コントローラー２０は、ストーム検知モードにおいて、パケットサンプリングを行う。
【００３６】
また、コントローラー２０は、このサンプルパケットから、該当スイッチ１０で転送されている膨大なパケットがトラフィックストームであるか判断する。
【００３７】
また、コントローラー２０は、パケットがトラフィックストームである場合、解析したサンプルパケットの情報から、ストームの原因となるパケットを指定するマッチ条件と、そのパケットを破棄するアクションが定義されたエントリを「ＦｌｏｗＭｏｄ」メッセージによって該当スイッチ１０の該当ポートに対して設定する。
【００３８】
なお、「ＦｌｏｗＭｏｄ」メッセージとは、オープンフロープロトコルメッセージ（ＯｐｅｎＦｌｏｗ  Ｐｒｏｔｏｃｏｌ  Ｍｅｓｓａｇｅ）の１つであり、コントローラーからスイッチのフローテーブルにエントリを登録・変更するためのメッセージである。すなわち、コントローラー２０は、スイッチ２０に向けて「ＦｌｏｗＭｏｄ」メッセージを送信することによって、スイッチ２０のフローテーブルにエントリを登録・変更する。
【００３９】
端末３０は、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）のいずれかと接続されており、オープンフローネットワーク内に、トラフィックストームの原因となるＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットを送信する。すなわち、端末３０は、オープンフローネットワークに対して、パケットのフラッディング（Ｆｌｏｏｄｉｎｇ）等を行う。
【００４０】
［ハードウェアの例示］
スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）の例として、オープンフロースイッチを想定している。オープンフロースイッチの例として、ネットワークスイッチ（ｎｅｔｗｏｒｋ  ｓｗｉｔｃｈ）、マルチレイヤスイッチ（ｍｕｌｔｉ−ｌａｙｅｒ  ｓｗｉｔｃｈ）等が考えられる。マルチレイヤスイッチは、サポートするＯＳＩ参照モデルの層毎に、更に細かく分類されている。主な種別としては、ネットワーク層（第３層）のデータを読むレイヤ３スイッチ、トランスポート層（第４層）のデータを読むレイヤ４スイッチ、アプリケーション層（第７層）のデータを読むレイヤ７スイッチ（アプリケーションスイッチ）がある。なお、オープンフローネットワークでは、一般的なルータやスイッチングハブ等の中継装置をオープンフロースイッチとして使用することもできる。また、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）は、物理マシン上に構築された仮想スイッチでも良い。また、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）の代替例として、ルータ（ｒｏｕｔｅｒ）、プロキシ（ｐｒｏｘｙ）、ゲートウェイ（ｇａｔｅｗａｙ）、ファイアウォール（ｆｉｒｅｗａｌｌ）、ロードバランサ（ｌｏａｄ  ｂａｌａｎｃｅｒ：負荷分散装置）、帯域制御装置（ｐａｃｋｅｔ  ｓｈａｐｅｒ）、セキュリティ監視制御装置（ＳＣＡＤＡ：Ｓｕｐｅｒｖｉｓｏｒｙ  Ｃｏｎｔｒｏｌ  Ａｎｄ  Ｄａｔａ  Ａｃｑｕｉｓｉｔｉｏｎ）、ゲートキーパー（ｇａｔｅｋｅｅｐｅｒ）、基地局（ｂａｓｅ  ｓｔａｔｉｏｎ）、アクセスポイント（ＡＰ：Ａｃｃｅｓｓ  Ｐｏｉｎｔ）、通信衛星（ＣＳ：Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓａｔｅｌｌｉｔｅ）、或いは、複数の通信ポートを有する計算機等も考えられる。
【００４１】
コントローラー２０の例として、ＰＣ（パソコン）、アプライアンス（ａｐｐｌｉａｎｃｅ）、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、コントローラー２０は、物理マシン上に構築された仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）でも良い。
【００４２】
端末３０の例として、上記の計算機や、携帯電話機、カーナビ（カーナビゲーションシステム）、携帯型ゲーム機、家庭用ゲーム機、ガジェット（電子機器）、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電（ｉｎｆｏｒｍａｔｉｏｎ  ｈｏｍｅ  ａｐｐｌｉａｎｃｅ）、ＯＡ（Ｏｆｆｉｃｅ  Ａｕｔｏｍａｔｉｏｎ）機器等が考えられる。端末３０は、車両や船舶、航空機等の移動体に搭載されていても良い。
【００４３】
スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）の各々、コントローラー２０、及び端末３０を接続するネットワークの例として、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を想定している。他の例として、インターネット、無線ＬＡＮ（Ｗｉｒｅｌｅｓｓ  ＬＡＮ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、バックボーン（Ｂａｃｋｂｏｎｅ）、ケーブルテレビ（ＣＡＴＶ）回線、固定電話網、携帯電話網、ＷｉＭＡＸ（ＩＥＥＥ  ８０２．１６ａ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、専用線（ｌｅａｓｅ  ｌｉｎｅ）、ＩｒＤＡ（Ｉｎｆｒａｒｅｄ  Ｄａｔａ  Ａｓｓｏｃｉａｔｉｏｎ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、シリアル通信回線、データバス等も考えられる。
【００４４】
図示しないが、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）の各々、コントローラー２０、及び端末３０は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、通信用インターフェース（Ｉ／Ｆ：ｉｎｔｅｒｆａｃｅ）とによって実現される。
【００４５】
上記のプロセッサの例として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラー、或いは、専用の機能を有する半導体集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＩＣ））等が考えられる。
【００４６】
上記のメモリの例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクや、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。或いは、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＩＰ−ＳＡＮ（ＩＰ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等を用いたストレージ装置でも良い。
【００４７】
上記の通信用インターフェースの例として、ネットワーク通信に対応した基板（マザーボード、Ｉ／Ｏボード）やチップ等の半導体集積回路、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口（コネクタ）等の通信ポート等が考えられる。
【００４８】
但し、実際には、これらの例に限定されない。
【００４９】
［実施例］
図３に示すように、スイッチ１０−１（ＳＷ１）、スイッチ１０−２（ＳＷ２）及びスイッチ１０−３（ＳＷ３）によってループが構成されるネットワーク構成を例に説明する。
【００５０】
このネットワーク構成において、端末３０がスイッチ１０−４（ＳＷ４）と接続されており、スイッチ１０−４（ＳＷ４）は、スイッチ１０−２（ＳＷ２）と接続されている。
【００５１】
また、このネットワーク構成において、コントローラー２０は、スイッチ１０（１０−ｉ、ｉ＝１〜ｎ）の各々と、セキュアチャネル（Ｓｅｃｕｒｅ  Ｃｈａｎｎｅｌ）によって接続され、各スイッチ１０の制御をしている。
【００５２】
この状態において、端末３０は、トラフィックストームの原因となるＡＲＰパケットを送信する。
【００５３】
［基本動作］
図４Ａ、図４Ｂを参照して、本発明に係るネットワークシステムにおける各装置の動作について説明する。
【００５４】
（１）ステップＳ１０１
コントローラー２０は、一定間隔で（定期的に）、各制御対象のスイッチ１０のポート毎の統計情報を取得している。例えば、コントローラー２０は、所定のオープンフロープロトコルメッセージ（ＯｐｅｎＦｌｏｗ  Ｐｒｏｔｏｃｏｌ  Ｍｅｓｓａｇｅ）を各制御対象のスイッチ１０に送信することで、スイッチ１０の統計情報を取得することができる。コントローラー２０は、スイッチ１０の装置全体の統計情報だけでなく、ある程度選定した統計情報を取得するために統計情報要求メッセージで選択することも可能である。スイッチ１０は、コントローラー２０からの統計情報要求メッセージに従って、統計情報をコントローラー２０に通知する。統計情報の要素として、統計情報自体の識別情報（統計情報を取得した時間帯等）、スイッチ識別情報（ＩＰアドレス等）、ポート識別情報（ポート番号等）、マッチ条件（パケット識別情報）、パケット数（パケット流出量／流入量）、バイト数（データサイズ）、送受信されたパケットのプロトコル、或いは、実行されたアクション等が考えられる。スイッチ識別情報及びポート識別情報は、マッチ条件に含まれていても良い。但し、実際には、これらの例に限定されない。
【００５５】
（２）ステップＳ１０２
コントローラー２０は、制御対象のスイッチ１０でトラフィックストームが発生した場合、発生しているポートの統計情報から、時間毎（一定期間／単位時間当たり）の転送パケット数の差分が設定閾値を越え、更にパケット数の量が線形的に単純増加をしているか判断する。ここでは、コントローラー２０は、パケット数をカウントしており、現在のパケット数と前回のパケット数との差分が設定閾値を越えて増大しているか判断する。
【００５６】
（３）ステップＳ１０３
コントローラー２０は、現在のパケット数と前回のパケット数との差分が設定閾値を越えて増大している場合、前回のストーム検知モード終了時より所定時間（例えば１時間）が経過しているか判断する。
【００５７】
（４）ステップＳ１０４
コントローラー２０は、前回のストーム検知モード終了時より所定時間が経過している場合、ストーム検知モードを起動する。
【００５８】
（５）ステップＳ１０５
コントローラー２０は、該当スイッチ１０にサンプルとして無作為に選択されたパケットのコピー（サンプルパケット）をコントローラー２０に転送するよう要求し、パケットサンプリングを行う。コントローラー２０は、このパケットサンプリングにより、高確率でＡＲＰパケットを検出する。
【００５９】
（６）ステップＳ１０６
コントローラー２０は、パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する。ここでは、コントローラー２０は、パケットサンプリングの結果から、ＡＲＰパケットのブロードキャストストームが原因で、トラフィックがストームを発生していることを特定する。
【００６０】
（７）ステップＳ１０７
コントローラー２０は、このＡＲＰパケットの情報を基に、このＡＲＰパケットに対する所定の処理（アクション）として「破棄処理（Ｄｒｏｐ  Ａｃｔｉｏｎ）」が定義されたエントリを「ＦｌｏｗＭｏｄ」メッセージによって該当スイッチ１０の該当ポートに設定する。
【００６１】
（８）ステップＳ１０８
該当スイッチ１０は、この「ＦｌｏｗＭｏｄ」メッセージの内容に従って、フローテーブルに、このＡＲＰパケットに対する所定の処理（アクション）として「破棄処理（Ｄｒｏｐ  Ａｃｔｉｏｎ）」が定義されたエントリを登録し、当該エントリのマッチ条件（ルール）に適合するＡＲＰパケットを破棄し、転送しない。よって、該当ＡＲＰパケットのみ消滅し、ネットワークはブロードキャストストームから復帰する。
【００６２】
（９）ステップＳ１０９
コントローラー２０は、先の「ＦｌｏｗＭｏｄ」メッセージを該当スイッチ１０に送信した直後から、一定期間、該当スイッチ１０のポートを監視する。
【００６３】
（１０）ステップＳ１１０
コントローラー２０は、該当スイッチ１０のキュー或いは時間毎の転送パケット数の量が設定した閾値を下回っているか判断する。
【００６４】
（１１）ステップＳ１１１
コントローラー２０は、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれでもない場合、又は、該当スイッチ１０のキュー或いは時間毎の転送パケット数の量が設定した閾値以上である場合、アラーム（Ａｌａｒｍ）等で所定の通知先（管理者等）に警告を通知する。また、コントローラー２０は、経路制御を行い、該当スイッチ１０によるパケット転送を制限する。例えば、コントローラー２０は、該当スイッチ１０を避けて他のスイッチ１０を経由する経路を、その経路上のスイッチ１０に設定し、該当スイッチ１０によるパケット転送を制限する。
【００６５】
（１２）ステップＳ１１２
コントローラー２０は、該当スイッチ１０のキュー或いは時間毎の転送パケット数の量が設定した閾値を下回ったことを確認した場合、トラフィックストームが解消したと判断し、ストーム検知モードを終了する。
【００６６】
なお、コントローラー２０は、トラフィックストームが解消したと判断し、ストーム検知モードを終了した場合、先の「ＦｌｏｗＭｏｄ」メッセージ（「破棄処理」が指定された「ＦｌｏｗＭｏｄ」メッセージ）により登録されたエントリを、該当スイッチ１０のフローテーブルから削除するようにしても良い。
【００６７】
本発明は、上記のネットワーク構成以外でのループ構成、またはブロードキャストに限定しないトラフィックの増大によるネットワーク負荷（マルチキャスト／ユニキャストストーム）においても有効である。
【００６８】
更に、「ＦｌｏｗＭｏｄ」メッセージによりストーム対象パケットを操作するため、そのアクションは破棄に限らず、ネットワークの管理者が選択できる。例えば、「ＦｌｏｗＭｏｄ」メッセージに、ストーム対象パケットを特定のスイッチに転送するように定義しても良い。
【００６９】
［コントローラーの構成］
図５を参照して、コントローラー２０の構成の詳細について説明する。
【００７０】
コントローラー２０は、統計情報取得部２１と、パケットサンプリング開始部２２と、パケットサンプリング終了部２３と、ストーム判定部２４と、ストーム検知部２５を備える。
【００７１】
統計情報取得部２１は、定期的に、スイッチ１０から転送パケットの統計情報を取得する。
【００７２】
パケットサンプリング開始部２２は、統計情報から、転送パケットの増加量が設定閾値を超過した旨を検知した場合、前回のパケットサンプリングの終了時より所定時間が経過していれば、スイッチ１０に対するパケットサンプリングを開始する。
【００７３】
パケットサンプリング終了部２３は、統計情報から、転送パケットの増加量が設定閾値を下回った旨を検知したスイッチ１０に対するパケットサンプリングを終了する。
【００７４】
ストーム判定部２４は、パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する。
【００７５】
ストーム検知部２５は、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかである場合、サンプリングしたパケットがトラフィックストームの原因であると判断する。
【００７６】
［まとめ］
以上のように、本発明は、オープンフローネットワークでトラフィックストームが発生した場合、フロー単位で原因のパケットを破棄し、無差別なパケットの破棄やポート自体のダウンを行わない手法である。
【００７７】
コントローラーが定期的に取得している制御配下の個々スイッチの統計情報から、トラフィックの短期間における増大を検知する。コントローラーは、トラフィックの増大を検知した場合、ストーム検知モードを起動する。ストーム検知モードでは、一定期間、該当スイッチから無作為にパケット（サンプルパケット）を抽出する。コントローラーは、このサンプルパケットから、該当スイッチで転送されている膨大なパケットが、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する。コントローラーは、当該パケットがトラフィックストームである場合、解析したサンプルパケットの情報から、ストームの原因となるパケット情報と、そのパケットを破棄するアクションが定義されたエントリを「ＦｌｏｗＭｏｄ」メッセージによって該当スイッチの該当ポートに対して設定する。
【００７８】
本発明では、ポートのＵＰ（接続状態）が維持されることにより、ループ環境にあっても、オープンフロー制御によってループせず、正常に転送されるパケットが存在する場合、それらのパケットに影響を出さない。
【００７９】
よって、オープンフローの特性を損なうことがなく、更にオープンフローの特性を生かし、原因となるパケットに絞ったパケット破棄が可能である。更に、この発明を実施するにあたり、追加となる機器はなく、既存のオープンフロー環境で行うことができる。
【００８０】
＜付記＞
上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。
【００８１】
（付記１）
内部のフローテーブルに登録されたエントリに従ってパケットを転送するスイッチを監視し、前記スイッチに対するパケットサンプリングを行う手段と、
前記スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、前記スイッチに対して設定し、前記スイッチ上でトラフィックストームが発生した場合、前記破棄用エントリに従って前記スイッチがフロー単位で原因のパケットを破棄するように制御する手段と
を具備する
コントローラー。
【００８２】
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【００８３】
なお、本出願は、日本出願番号２０１０−２４２２４８に基づく優先権を主張するものであり、日本出願番号２０１０−２４２２４８における開示内容は引用により本出願に組み込まれる。
【図１】
2012056816.tif 000003
【図２】
2012056816.tif 000004
【図３】
2012056816.tif 000005
【図４Ａ】
2012056816.tif 000006
【図４Ｂ】
2012056816.tif 000007
【図５】
2012056816.tif 000008
【国際調査報告】
2012056816.tif 000009
2012056816.tif 000010