内部のフローテーブルに登録されたエントリに従って、パケットを転送するスイッチと、前記スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、前記スイッチに対して設定するコントローラーとを含み、前記スイッチは、トラフィックストームが発生した場合、前記破棄用エントリに従って、フロー単位で原因のパケットを破棄するネットワークシステム。請求項1に記載のネットワークシステムであって、前記コントローラーは、定期的に、前記スイッチから転送パケットの統計情報を取得する手段と、前記統計情報から、転送パケットの増加量が設定閾値を超過した旨を検知した場合、前回のパケットサンプリングの終了時より所定時間が経過していれば、前記スイッチに対するパケットサンプリングを開始する手段と、前記統計情報から、転送パケットの増加量が設定閾値を下回った旨を検知した前記スイッチに対するパケットサンプリングを終了する手段とを具備するネットワークシステム。請求項1又は2に記載のネットワークシステムであって、前記コントローラーは、前記パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する手段と、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかである場合、サンプリングしたパケットがトラフィックストームの原因であると判断する手段とを更に具備するネットワークシステム。請求項1乃至3のいずれか一項に記載のネットワークシステムで使用されるコントローラー。スイッチにおいて、内部のフローテーブルに登録されたエントリに従って、パケットを転送することと、コントローラーにおいて、前記スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、前記スイッチに対して設定することと、前記スイッチにおいて、トラフィックストームが発生した場合、前記破棄用エントリに従って、フロー単位で原因のパケットを破棄することとを含む通信トラフィック制御方法。請求項5に記載の通信トラフィック制御方法であって、前記コントローラーにおいて、定期的に、前記スイッチから転送パケットの統計情報を取得する手段と、前記統計情報から、転送パケットの増加量が設定閾値を超過した旨を検知した場合、前回のパケットサンプリングの終了時より所定時間が経過していれば、前記スイッチに対するパケットサンプリングを開始することと、前記統計情報から、転送パケットの増加量が設定閾値を下回った旨を検知した前記スイッチに対するパケットサンプリングを終了することとを更に含む通信トラフィック制御方法。請求項5又は6に記載の通信トラフィック制御方法であって、前記コントローラーにおいて、前記パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断することと、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかである場合、サンプリングしたパケットがトラフィックストームの原因であると判断することとを更に含む通信トラフィック制御方法。請求項5乃至7のいずれか一項に記載の通信トラフィック制御方法におけるコントローラーとしての処理を、計算機に実行させるためのプログラムを格納した記憶媒体。<実施形態>以下に、本発明の実施形態について添付図面を参照して説明する。[システム構成]図2に示すように、本発明に係るネットワークシステムは、スイッチSW1010-i、i=1~n:nはスイッチ数と、コントローラーController20と、端末30を含む。スイッチ1010-i、i=1~n、及びコントローラー20は、オープンフローネットワークを形成する。スイッチ1010-i、i=1~nは、オープンフローネットワークにおけるノードnodeである。スイッチ1010-i、i=1~nは、内部にフローテーブルを持ち、フローテーブルに登録されたエントリに従って、パケットを転送する。また、スイッチ1010-i、i=1~nは、定期的に、転送パケットの統計情報をコントローラー20に通知する。スイッチ1010-i、i=1~nは、ポート毎に、プロトコルTCP、UDP、ICMP等単位の統計、或いはアクション単位の統計を取り、統計情報として保持している。コントローラー20とスイッチ1010-i、i=1~n間でのメッセージの送受信の統計も統計情報となる。コントローラー20とスイッチ1010-i、i=1~n間では、オープンフロープロトコルで規定されたメッセージで通信が行われている。以下、オープンフロープロトコルで規定されたメッセージを、オープンフロープロトコルメッセージOpenFlowProtocolMessageと呼ぶ。また、スイッチ1010-i、i=1~nは、オープンフローOpenFlowネットワークでトラフィックストームブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかが発生した場合、フロー単位で原因のパケット又はフレームを破棄し、無差別なパケットの破棄やポート自体のダウンを行わない。なお、ユニキャストストームとは、フローテーブルに該当エントリが未登録のパケットが原因のストームである。ここでは、スイッチ1010-i、i=1~nとして、スイッチ10-1SW1、スイッチ10-2SW2、スイッチ10-3SW3及びスイッチ10-4SW4を示す。コントローラー20は、定期的に、配下のスイッチ1010-i、i=1~nの各々から、転送パケットの統計情報を取得し、これらの統計情報から、トラフィックの短期間における増大を検知する。また、コントローラー20は、トラフィックの増大を検知した場合、ストーム検知モードを起動する。コントローラー20は、ストーム検知モードでは、一定期間、無作為に該当スイッチ10から転送されてきたパケットを抽出する。ここでは、無作為に抽出されたパケットを、サンプルパケットと呼ぶ。すなわち、コントローラー20は、ストーム検知モードにおいて、パケットサンプリングを行う。また、コントローラー20は、このサンプルパケットから、該当スイッチ10で転送されている膨大なパケットがトラフィックストームであるか判断する。また、コントローラー20は、パケットがトラフィックストームである場合、解析したサンプルパケットの情報から、ストームの原因となるパケットを指定するマッチ条件と、そのパケットを破棄するアクションが定義されたエントリをFlowModメッセージによって該当スイッチ10の該当ポートに対して設定する。なお、FlowModメッセージとは、オープンフロープロトコルメッセージOpenFlowProtocolMessageの1つであり、コントローラーからスイッチのフローテーブルにエントリを登録変更するためのメッセージである。すなわち、コントローラー20は、スイッチ20に向けてFlowModメッセージを送信することによって、スイッチ20のフローテーブルにエントリを登録変更する。端末30は、スイッチ1010-i、i=1~nのいずれかと接続されており、オープンフローネットワーク内に、トラフィックストームの原因となるARPAddressResolutionProtocolパケットを送信する。すなわち、端末30は、オープンフローネットワークに対して、パケットのフラッディングFlooding等を行う。[ハードウェアの例示]スイッチ1010-i、i=1~nの例として、オープンフロースイッチを想定している。オープンフロースイッチの例として、ネットワークスイッチnetworkswitch、マルチレイヤスイッチmulti-layerswitch等が考えられる。マルチレイヤスイッチは、サポートするOSI参照モデルの層毎に、更に細かく分類されている。主な種別としては、ネットワーク層第3層のデータを読むレイヤ3スイッチ、トランスポート層第4層のデータを読むレイヤ4スイッチ、アプリケーション層第7層のデータを読むレイヤ7スイッチアプリケーションスイッチがある。なお、オープンフローネットワークでは、一般的なルータやスイッチングハブ等の中継装置をオープンフロースイッチとして使用することもできる。また、スイッチ1010-i、i=1~nは、物理マシン上に構築された仮想スイッチでも良い。また、スイッチ1010-i、i=1~nの代替例として、ルータrouter、プロキシproxy、ゲートウェイgateway、ファイアウォールfirewall、ロードバランサloadbalancer:負荷分散装置、帯域制御装置packetshaper、セキュリティ監視制御装置SCADA:SupervisoryControlAndDataAcquisition、ゲートキーパーgatekeeper、基地局basestation、アクセスポイントAP:AccessPoint、通信衛星CS:CommunicationSatellite、或いは、複数の通信ポートを有する計算機等も考えられる。コントローラー20の例として、PCパソコン、アプライアンスappliance、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。また、コントローラー20は、物理マシン上に構築された仮想マシンVM:VirtualMachineでも良い。端末30の例として、上記の計算機や、携帯電話機、カーナビカーナビゲーションシステム、携帯型ゲーム機、家庭用ゲーム機、ガジェット電子機器、双方向テレビ、デジタルチューナー、デジタルレコーダー、情報家電informationhomeappliance、OAOfficeAutomation機器等が考えられる。端末30は、車両や船舶、航空機等の移動体に搭載されていても良い。スイッチ1010-i、i=1~nの各々、コントローラー20、及び端末30を接続するネットワークの例として、LANLocalAreaNetworkを想定している。他の例として、インターネット、無線LANWirelessLAN、WANWideAreaNetwork、バックボーンBackbone、ケーブルテレビCATV回線、固定電話網、携帯電話網、WiMAXIEEE802.16a、3G3rdGeneration、専用線leaseline、IrDAInfraredDataAssociation、Bluetooth登録商標、シリアル通信回線、データバス等も考えられる。図示しないが、スイッチ1010-i、i=1~nの各々、コントローラー20、及び端末30は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリと、通信用インターフェースI/F:interfaceとによって実現される。上記のプロセッサの例として、CPUCentralProcessingUnit、マイクロプロセッサmicroprocessor、マイクロコントローラー、或いは、専用の機能を有する半導体集積回路IntegratedCircuitIC等が考えられる。上記のメモリの例として、RAMRandomAccessMemory、ROMReadOnlyMemory、EEPROMElectricallyErasableandProgrammableReadOnlyMemoryやフラッシュメモリ等の半導体記憶装置、HDDHardDiskDriveやSSDSolidStateDrive等の補助記憶装置、又は、DVDDigitalVersatileDisk等のリムーバブルディスクや、SDメモリカードSecureDigitalmemorycard等の記憶媒体メディア等が考えられる。或いは、DASDirectAttachedStorage、FC-SANFibreChannel-StorageAreaNetwork、NASNetworkAttachedStorage、IP-SANIP-StorageAreaNetwork等を用いたストレージ装置でも良い。上記の通信用インターフェースの例として、ネットワーク通信に対応した基板マザーボード、I/Oボードやチップ等の半導体集積回路、NICNetworkInterfaceCard等のネットワークアダプタや同様の拡張カード、アンテナ等の通信装置、接続口コネクタ等の通信ポート等が考えられる。但し、実際には、これらの例に限定されない。[実施例]図3に示すように、スイッチ10-1SW1、スイッチ10-2SW2及びスイッチ10-3SW3によってループが構成されるネットワーク構成を例に説明する。このネットワーク構成において、端末30がスイッチ10-4SW4と接続されており、スイッチ10-4SW4は、スイッチ10-2SW2と接続されている。また、このネットワーク構成において、コントローラー20は、スイッチ1010-i、i=1~nの各々と、セキュアチャネルSecureChannelによって接続され、各スイッチ10の制御をしている。この状態において、端末30は、トラフィックストームの原因となるARPパケットを送信する。[基本動作]図4A、図4Bを参照して、本発明に係るネットワークシステムにおける各装置の動作について説明する。1ステップS101コントローラー20は、一定間隔で定期的に、各制御対象のスイッチ10のポート毎の統計情報を取得している。例えば、コントローラー20は、所定のオープンフロープロトコルメッセージOpenFlowProtocolMessageを各制御対象のスイッチ10に送信することで、スイッチ10の統計情報を取得することができる。コントローラー20は、スイッチ10の装置全体の統計情報だけでなく、ある程度選定した統計情報を取得するために統計情報要求メッセージで選択することも可能である。スイッチ10は、コントローラー20からの統計情報要求メッセージに従って、統計情報をコントローラー20に通知する。統計情報の要素として、統計情報自体の識別情報統計情報を取得した時間帯等、スイッチ識別情報IPアドレス等、ポート識別情報ポート番号等、マッチ条件パケット識別情報、パケット数パケット流出量/流入量、バイト数データサイズ、送受信されたパケットのプロトコル、或いは、実行されたアクション等が考えられる。スイッチ識別情報及びポート識別情報は、マッチ条件に含まれていても良い。但し、実際には、これらの例に限定されない。2ステップS102コントローラー20は、制御対象のスイッチ10でトラフィックストームが発生した場合、発生しているポートの統計情報から、時間毎一定期間/単位時間当たりの転送パケット数の差分が設定閾値を越え、更にパケット数の量が線形的に単純増加をしているか判断する。ここでは、コントローラー20は、パケット数をカウントしており、現在のパケット数と前回のパケット数との差分が設定閾値を越えて増大しているか判断する。3ステップS103コントローラー20は、現在のパケット数と前回のパケット数との差分が設定閾値を越えて増大している場合、前回のストーム検知モード終了時より所定時間例えば1時間が経過しているか判断する。4ステップS104コントローラー20は、前回のストーム検知モード終了時より所定時間が経過している場合、ストーム検知モードを起動する。5ステップS105コントローラー20は、該当スイッチ10にサンプルとして無作為に選択されたパケットのコピーサンプルパケットをコントローラー20に転送するよう要求し、パケットサンプリングを行う。コントローラー20は、このパケットサンプリングにより、高確率でARPパケットを検出する。6ステップS106コントローラー20は、パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する。ここでは、コントローラー20は、パケットサンプリングの結果から、ARPパケットのブロードキャストストームが原因で、トラフィックがストームを発生していることを特定する。7ステップS107コントローラー20は、このARPパケットの情報を基に、このARPパケットに対する所定の処理アクションとして破棄処理DropActionが定義されたエントリをFlowModメッセージによって該当スイッチ10の該当ポートに設定する。8ステップS108該当スイッチ10は、このFlowModメッセージの内容に従って、フローテーブルに、このARPパケットに対する所定の処理アクションとして破棄処理DropActionが定義されたエントリを登録し、当該エントリのマッチ条件ルールに適合するARPパケットを破棄し、転送しない。よって、該当ARPパケットのみ消滅し、ネットワークはブロードキャストストームから復帰する。9ステップS109コントローラー20は、先のFlowModメッセージを該当スイッチ10に送信した直後から、一定期間、該当スイッチ10のポートを監視する。10ステップS110コントローラー20は、該当スイッチ10のキュー或いは時間毎の転送パケット数の量が設定した閾値を下回っているか判断する。11ステップS111コントローラー20は、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれでもない場合、又は、該当スイッチ10のキュー或いは時間毎の転送パケット数の量が設定した閾値以上である場合、アラームAlarm等で所定の通知先管理者等に警告を通知する。また、コントローラー20は、経路制御を行い、該当スイッチ10によるパケット転送を制限する。例えば、コントローラー20は、該当スイッチ10を避けて他のスイッチ10を経由する経路を、その経路上のスイッチ10に設定し、該当スイッチ10によるパケット転送を制限する。12ステップS112コントローラー20は、該当スイッチ10のキュー或いは時間毎の転送パケット数の量が設定した閾値を下回ったことを確認した場合、トラフィックストームが解消したと判断し、ストーム検知モードを終了する。なお、コントローラー20は、トラフィックストームが解消したと判断し、ストーム検知モードを終了した場合、先のFlowModメッセージ破棄処理が指定されたFlowModメッセージにより登録されたエントリを、該当スイッチ10のフローテーブルから削除するようにしても良い。本発明は、上記のネットワーク構成以外でのループ構成、またはブロードキャストに限定しないトラフィックの増大によるネットワーク負荷マルチキャスト/ユニキャストストームにおいても有効である。更に、FlowModメッセージによりストーム対象パケットを操作するため、そのアクションは破棄に限らず、ネットワークの管理者が選択できる。例えば、FlowModメッセージに、ストーム対象パケットを特定のスイッチに転送するように定義しても良い。[コントローラーの構成]図5を参照して、コントローラー20の構成の詳細について説明する。コントローラー20は、統計情報取得部21と、パケットサンプリング開始部22と、パケットサンプリング終了部23と、ストーム判定部24と、ストーム検知部25を備える。統計情報取得部21は、定期的に、スイッチ10から転送パケットの統計情報を取得する。パケットサンプリング開始部22は、統計情報から、転送パケットの増加量が設定閾値を超過した旨を検知した場合、前回のパケットサンプリングの終了時より所定時間が経過していれば、スイッチ10に対するパケットサンプリングを開始する。パケットサンプリング終了部23は、統計情報から、転送パケットの増加量が設定閾値を下回った旨を検知したスイッチ10に対するパケットサンプリングを終了する。ストーム判定部24は、パケットサンプリングの結果から、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する。ストーム検知部25は、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかである場合、サンプリングしたパケットがトラフィックストームの原因であると判断する。[まとめ]以上のように、本発明は、オープンフローネットワークでトラフィックストームが発生した場合、フロー単位で原因のパケットを破棄し、無差別なパケットの破棄やポート自体のダウンを行わない手法である。コントローラーが定期的に取得している制御配下の個々スイッチの統計情報から、トラフィックの短期間における増大を検知する。コントローラーは、トラフィックの増大を検知した場合、ストーム検知モードを起動する。ストーム検知モードでは、一定期間、該当スイッチから無作為にパケットサンプルパケットを抽出する。コントローラーは、このサンプルパケットから、該当スイッチで転送されている膨大なパケットが、ブロードキャストストーム、マルチキャストストーム、若しくはユニキャストストームのいずれかであるか判断する。コントローラーは、当該パケットがトラフィックストームである場合、解析したサンプルパケットの情報から、ストームの原因となるパケット情報と、そのパケットを破棄するアクションが定義されたエントリをFlowModメッセージによって該当スイッチの該当ポートに対して設定する。本発明では、ポートのUP接続状態が維持されることにより、ループ環境にあっても、オープンフロー制御によってループせず、正常に転送されるパケットが存在する場合、それらのパケットに影響を出さない。よって、オープンフローの特性を損なうことがなく、更にオープンフローの特性を生かし、原因となるパケットに絞ったパケット破棄が可能である。更に、この発明を実施するにあたり、追加となる機器はなく、既存のオープンフロー環境で行うことができる。<付記>上記の実施形態の一部又は全部は、以下の付記のように記載することも可能である。但し、実際には、以下の記載例に限定されない。付記1内部のフローテーブルに登録されたエントリに従ってパケットを転送するスイッチを監視し、前記スイッチに対するパケットサンプリングを行う手段と、前記スイッチに対するパケットサンプリングの結果、サンプリングしたパケットがトラフィックストームの原因であると判明した場合、当該パケットを指定するマッチ条件と当該パケットを破棄するアクションとが定義された破棄用エントリを、前記スイッチに対して設定し、前記スイッチ上でトラフィックストームが発生した場合、前記破棄用エントリに従って前記スイッチがフロー単位で原因のパケットを破棄するように制御する手段とを具備するコントローラー。以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。なお、本出願は、日本出願番号2010-242248に基づく優先権を主張するものであり、日本出願番号2010-242248における開示内容は引用により本出願に組み込まれる。