(57)【要約】【課題】あるアプライアンスの処理を動的に他のアプライアンスに委譲することができる技術を提供すること。【解決手段】スイッチは、フローテーブルを備え、フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。コントローラは、アプライアンスに関連する処理負荷を示す負荷情報を取得し、また、処理負荷を閾値と比較する。第１アプライアンスに関連する処理負荷が閾値以上になった場合、コントローラは委譲処理を行う。その委譲処理において、コントローラは、第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択し、第１アプライアンスと異なる第２アプライアンスを選択し、選択フローに属するパケットを第２アプライアンスに転送することを指定するエントリをフローテーブルに設定するように、スイッチに対して指示する。【選択図】図１
2011159247.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中に配置されたアプライアンス及びスイッチと、
前記アプライアンス及び前記スイッチに接続されたコントローラと
を備え、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記コントローラは、前記アプライアンスに関連する処理負荷を示す負荷情報を取得し、また、前記処理負荷を閾値と比較し、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、前記コントローラは委譲処理を行い、
前記委譲処理において、前記コントローラは、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択し、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択し、
前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定するように、前記スイッチに対して指示する
ネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムであって、
前記アプライアンスに関連する処理負荷は、前記アプライアンスの処理負荷、及び、前記アプライアンスが稼働する物理サーバの処理負荷のうち少なくとも一方を含む
ネットワークシステム。
【請求項３】
請求項１又は２に記載のネットワークシステムであって、
前記第２アプライアンスに関連する前記処理負荷は、閾値未満である
ネットワークシステム。
【請求項４】
請求項１乃至３のいずれか一項に記載のネットワークシステムであって、
前記第１アプライアンスは、自身が処理するフローに関する情報を示すセッションテーブルを有し、
前記コントローラは、前記第１アプライアンスの前記セッションテーブルの内容を示すセッション情報を取得し、前記セッション情報に基いて前記選択フローを選択する
ネットワークシステム。
【請求項５】
請求項１乃至３のいずれか一項に記載のネットワークシステムであって、
前記コントローラは、前記スイッチに既に設定されているエントリに基いて、前記選択フローを選択する
ネットワークシステム。
【請求項６】
ネットワーク中に配置されたアプライアンス及びスイッチに接続されるコントローラであって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記コントローラは、
前記アプライアンスに関連する処理負荷を示す負荷情報が格納される記憶装置と、
処理装置と
を備え、
前記処理装置は、前記処理負荷を閾値と比較し、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、前記処理装置は委譲処理を行い、
前記委譲処理において、前記処理装置は、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択し、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択し、
前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定するように、前記スイッチに対して指示する
コントローラ。
【請求項７】
アプライアンス及びスイッチが配置されたネットワークの制御方法であって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記制御方法は、
前記アプライアンスに関連する処理負荷を示す負荷情報を取得することと、
前記処理負荷を閾値と比較することと、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、委譲処理を行うことと
を含み、
前記委譲処理は、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択することと、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択することと、
前記スイッチにおいて、前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定することと
を含む
制御方法。
【請求項８】
アプライアンス及びスイッチが配置されたネットワークの制御処理をコンピュータに実行させる制御プログラムであって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記制御処理は、
前記アプライアンスに関連する処理負荷を示す負荷情報を取得することと、
前記処理負荷を閾値と比較することと、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、委譲処理を行うことと
を含み、
前記委譲処理は、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択することと、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択することと、
前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定するように、前記スイッチに対して指示することと
を含む
制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプライアンスを備えるネットワークシステムを制御する技術に関する。特に、本発明は、あるアプライアンスの処理を他のアプライアンスに委譲する技術に関する。
【背景技術】
【０００２】
アプライアンス（ネットワークアプライアンス）は、ネットワークトラヒックに対して特定の処理を実行するネットワーク装置である。アプライアンスとしては、負荷分散の機能を提供するロードバランサや、セキュリティを向上させるファイヤーウォール等が挙げられる。近年の仮想化技術の発展に伴い、ゲストＯＳを対象とした仮想的なセキュリティアプライアンスにも注目が集まっている。例えば、ＷＡＦ（Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｉｒｅｗａｌｌ）機能を有する仮想アプライアンスは、１台の物理サーバ上で複数のゲストＯＳのトラヒックのアプリケーションレイヤまで監視する。
【０００３】
ここで、トラヒック量やゲストＯＳの稼働状況によっては、アプライアンスが稼働する物理サーバのリソースが不足する場合がある。その場合、アプライアンスの性能が低下し、処理がおいつかなくなる。そのような事態を回避するために、あるアプライアンスの処理を、一時的に、他のアプライアンスに委譲することが考えられる。
【０００４】
非特許文献１は、トンネリング・プロトコルに関する技術を開示している。当該技術によれば、ＧＲＥ対応ルータがＩＰパケットにヘッダを付加する。その付加ヘッダに基いて、ＩＰネットワークを透過して遠隔地の外部装置と接続することができる。
【０００５】
非特許文献２に開示された技術によれば、ネットワーク上のトラヒックをサンプリングして監視する。それにより、ルータの負荷を抑えつつ監視することができる。更に、アプライアンスなどの外部装置へ監視したフローを流すことで、高度な分析を行うことが可能である。
【０００６】
非特許文献３に開示された技術によれば、自由にパスを設定し、トラヒックをアプライアンスなどの外部装置へ流すことができる。
【０００７】
また、負荷分散やロードバランサに関連する技術として、以下のものが知られている。
【０００８】
特許文献１は、動的構成制御装置を開示している。その動的構成制御装置は、ウェブサーバとアプリケーションサーバが接続されるウェブシステムにおいて、各サーバの負荷状況に基いてサービス構成を動的に変更する。
【０００９】
特許文献２は、複数のロードバランサを介するデータ通信を行うクラスタシステムを開示している。ノードサーバが正常に動作しなくなった場合にも、複数のロードバランサは、同一のセッションまたは関連する複数のセッションに属するメッセージを、同一のクラスタノードに分配する。これにより、効率よく複数のロードバランサからのメッセージを処理することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００３−２８１００７号公報
【特許文献２】特開２００７−１５６５６９号公報
【非特許文献】
【００１１】
【非特許文献１】Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ  （ＧＲＥ）  ｈｔｔｐ：／／ｗｗｗ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ２７８４．ｔｘｔ
【非特許文献２】ｓＦｌｏｗ  ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｒｆｃ／ｒｆｃ３１７６．ｔｘｔ
【非特許文献３】Ｄ．  Ａ．  Ｊｏｓｅｐｈ，  Ａ．  Ｔａｖａｋｏｌｉ，  ａｎｄ  Ｉ．  Ｓｔｏｉｃａ．  Ａ  Ｐｏｌｉｃｙ−ａｗａｒｅ  Ｓｗｉｔｃｈｉｎｇ  Ｌａｙｅｒ  ｆｏｒ  Ｄａｔａ  Ｃｅｎｔｅｒｓ．  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｒｅｖｉｅｗ  （ＣＣＲ），  ３８（４）：５１−６２，  ２００８．  ｈｔｔｐ：／／ｃｃｒ．ｓｉｇｃｏｍｍ．ｏｒｇ／ｏｎｌｉｎｅ／ｆｉｌｅｓ／ｐ５１−ｊｏｓｅｐｈＡ．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【００１２】
あるアプライアンスの処理を、一時的に、他のアプライアンスに委譲することを考える。非特許文献１、２の場合、アプライアンスは、当該文献に記載されている特別なフォーマットに対応している必要があり、さもなければ処理を行うことができない。非特許文献３では、あるタイミングで特定の処理を委譲するといった動的な制御は考慮されていない。
【００１３】
本発明の１つの目的は、あるアプライアンスの処理を動的に他のアプライアンスに委譲することができる技術を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の１つの観点において、ネットワークシステムが提供される。そのネットワークシステムは、ネットワーク中に配置されたアプライアンス及びスイッチと、それらアプライアンス及びスイッチに接続されたコントローラと、を備える。スイッチは、フローテーブルを備え、フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを受け取ったパケットに対して行う。コントローラは、アプライアンスに関連する処理負荷を示す負荷情報を取得し、また、処理負荷を閾値と比較する。アプライアンスの１つである第１アプライアンスに関連する処理負荷が閾値以上になった場合、コントローラは委譲処理を行う。その委譲処理において、コントローラは、第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択し、アプライアンスの１つであって第１アプライアンスと異なる第２アプライアンスを選択し、選択フローに属するパケットを第２アプライアンスに転送することを指定するエントリをフローテーブルに設定するように、スイッチに対して指示する。
【００１５】
本発明の他の観点において、ネットワーク中に配置されたアプライアンス及びスイッチに接続されるコントローラが提供される。スイッチは、フローテーブルを備え、フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを受け取ったパケットに対して行う。コントローラは、アプライアンスに関連する処理負荷を示す負荷情報が格納される記憶装置と、処理装置と、を備える。処理装置は、処理負荷を閾値と比較する。アプライアンスの１つである第１アプライアンスに関連する処理負荷が閾値以上になった場合、処理装置は委譲処理を行う。その委譲処理において、処理装置は、第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択し、アプライアンスの１つであって第１アプライアンスと異なる第２アプライアンスを選択し、選択フローに属するパケットを第２アプライアンスに転送することを指定するエントリをフローテーブルに設定するように、スイッチに対して指示する。
【００１６】
本発明の更に他の観点において、アプライアンス及びスイッチが配置されたネットワークの制御方法が提供される。スイッチは、フローテーブルを備え、フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを受け取ったパケットに対して行う。本発明に係る制御方法は、（Ａ）アプライアンスに関連する処理負荷を示す負荷情報を取得することと、（Ｂ）処理負荷を閾値と比較することと、（Ｃ）アプライアンスの１つである第１アプライアンスに関連する処理負荷が閾値以上になった場合、委譲処理を行うことと、を含む。その委譲処理は、（Ｃ１）第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択することと、（Ｃ２）アプライアンスの１つであって第１アプライアンスと異なる第２アプライアンスを選択することと、（Ｃ３）スイッチにおいて、選択フローに属するパケットを第２アプライアンスに転送することを指定するエントリをフローテーブルに設定することと、を含む。
【００１７】
本発明の更に他の観点において、アプライアンス及びスイッチが配置されたネットワークの制御処理をコンピュータに実行させる制御プログラムが提供される。スイッチは、フローテーブルを備え、フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定する。スイッチは、パケットを受け取るとフローテーブルを参照し、受け取ったパケットにマッチするエントリで指定されるアクションを受け取ったパケットに対して行う。本発明に係る制御処理は、（Ａ）アプライアンスに関連する処理負荷を示す負荷情報を取得することと、（Ｂ）処理負荷を閾値と比較することと、（Ｃ）アプライアンスの１つである第１アプライアンスに関連する処理負荷が閾値以上になった場合、委譲処理を行うことと、を含む。その委譲処理は、（Ｃ１）第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択することと、（Ｃ２）アプライアンスの１つであって第１アプライアンスと異なる第２アプライアンスを選択することと、（Ｃ３）選択フローに属するパケットを第２アプライアンスに転送することを指定するエントリをフローテーブルに設定するように、スイッチに対して指示することと、を含む。
【発明の効果】
【００１８】
本発明によれば、あるアプライアンスの処理を動的に他のアプライアンスに委譲することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】図１は、本発明の実施の形態に係るネットワークシステムの構成を概略的に示すブロック図である。
【図２】図２は、本実施の形態に係るスイッチの構成を概略的に示すブロック図である。
【図３】図３は、本実施の形態に係るスイッチが有するフローテーブルを示す概念図である。
【図４】図４は、本実施の形態に係るアプライアンスの構成を概略的に示すブロック図である。
【図５】図５は、本実施の形態に係る物理サーバの構成を概略的に示すブロック図である。
【図６】図６は、本実施の形態に係るコントローラの構成を示すブロック図である。
【図７】図７は、本実施の形態に係るコントローラが有する負荷テーブルを示す概念図である。
【図８】図８は、本実施の形態に係るネットワーク制御処理を説明するためのブロック図である。
【図９】図９は、本実施の形態に係るネットワーク制御処理を示すフローチャートである。
【図１０】図１０は、本実施の形態に係るネットワーク制御処理を説明するためのブロック図である。
【図１１】図１１は、本実施の形態に係るネットワーク制御処理を説明するためのブロック図である。
【図１２】図１２は、本実施の形態に係る様々な構成例を要約的に示す。
【図１３】図１３は、本実施の形態における１つの構成例を示すブロック図である。
【図１４】図１４は、本実施の形態における他の構成例を示すブロック図である。
【図１５】図１５は、本実施の形態における更に他の構成例を示すブロック図である。
【発明を実施するための形態】
【００２０】
添付図面を参照して、本発明の実施の形態を説明する。
【００２１】
１．構成
図１は、本実施の形態に係るネットワークシステム１の構成を概略的に示すブロック図である。本実施の形態に係るネットワークシステム１は、例えば、データセンター（Ｄａｔａ  Ｃｅｎｔｅｒ）に適用される。
【００２２】
図１に示されるように、ネットワークシステム１は、スイッチ１０、アプライアンス２０、コントローラ１００、及び物理サーバ２００を備えている。アプライアンス２０は、物理アプライアンスであってもよいし、仮想化技術によって物理サーバ２００上に構築される仮想アプライアンスであってもよい。スイッチ１０、アプライアンス２０及び物理サーバ２００は、ネットワーク中に配置されている。アプライアンス２０及び物理サーバ２００は、複数のスイッチ１０からなるスイッチネットワークを介して、外部ネットワークに接続されている。コントローラ１００は、制御回線（図中、破線で表されている）を介して、各スイッチ１０、各アプライアンス２０、及び各物理サーバ２００に接続されている。以下、各構成を更に詳しく説明する。
【００２３】
１−１．スイッチ１０
スイッチ１０は、パケット転送等のスイッチ処理を行う。より詳細には、図２に示されるように、スイッチ１０は、スイッチ処理部１１、コントローラ通信部１２、記憶部１３、及び複数のポート１５を備えている。外部からパケットが入力されるポート１５は入力ポートであり、パケットが外部に出力されるポート１５は出力ポートである。スイッチ処理部１１は、入力ポートから出力ポートへのパケット転送等、主要なパケット処理を行う。コントローラ通信部１２は、制御回線を介してコントローラ１００に接続されており、コントローラ１００との間で通信を行う際のインタフェースとなる。
【００２４】
記憶部１３には、図３に示されるようなフローテーブルＦＴＢＬが格納されている。フローテーブルＦＴＢＬの各エントリは、「マッチ条件（フロー識別情報）」と「アクション」を示している。「マッチ条件」は、パケットの入力ポート、送信元ＭＡＣアドレス、宛先ＭＡＣアドレス、ＶＬＡＮ  ＩＤ、送信元ＩＰアドレス、宛先ＩＰアドレス、送信元ポート番号、宛先ポート番号などのパラメータの組み合わせで構成される。尚、フローもそれらパラメータの組み合わせで定義される。つまり、「マッチ条件」は、フローを規定するフロー識別情報でもある。「アクション」は、マッチ条件にマッチするパケットに対して行われる処理を指定する。「アクション」としては、指定ポートへのパケット出力、パケット廃棄等が挙げられる。
【００２５】
スイッチ処理部１１は、入力ポートを通してパケットを受信すると、記憶部１３に格納されているフローテーブルＦＴＢＬを参照する。そして、スイッチ処理部１１は、フローテーブルＦＴＢＬの中から、当該受信パケットにマッチするエントリを検索する。具体的には、スイッチ処理部１１は、受信パケットのヘッダ情報を抽出し、受信パケットの入力ポート及びヘッダ情報を検索キーとして用いることにより、フローテーブルＦＴＢＬの検索を行う。その検索キーと一致するマッチ条件を示すエントリが、受信パケットにマッチするマッチエントリである。受信パケットがいずれかのエントリのマッチ条件にマッチした場合、すなわち、マッチエントリが見つかった場合、スイッチ処理部１１は、そのマッチエントリで指定される「アクション」を受信パケットに対して行う。
【００２６】
１−２．アプライアンス２０
アプライアンス（ネットワークアプライアンス）２０は、ネットワークトラヒックに対して特定の処理を実行するネットワーク装置である。アプライアンス２０としては、ロードバランサ、ファイヤーウォール、ＷＡＦ（Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｉｒｅｗａｌｌ）、ＩＤＳ（Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ）、ＩＰＳ（Ｉｎｔｒｕｓｉｏｎ  Ｐｒｅｖｅｎｔｉｏｎ  Ｓｙｓｔｅｍ）、メールセキュリティ装置、暗号化アクセラレーション装置、コーデック変換処理装置、などが挙げられる。尚、本実施の形態において、アプライアンス２０は、物理アプライアンスであってもよいし、仮想化技術によって物理サーバ２００上に構築される仮想アプライアンスであってもよい。
【００２７】
図４は、本実施の形態に係るアプライアンス２０の構成を概略的に示している。アプライアンス２０は、アプライアンス処理部２１、コントローラ通信部２２、記憶部２３、及び負荷監視部２５を備えている。アプライアンス処理部２１は、アプライアンス２０としての特定の処理を実行する。コントローラ通信部２２は、制御回線を介してコントローラ１００に接続されており、コントローラ１００との間で通信を行う際のインタフェースとなる。
【００２８】
記憶部２３には、セッションテーブルＳＴＢＬが格納されている。セッションテーブルＳＴＢＬは、自アプライアンス２０が扱っているフロー（セッション）に関するフロー識別情報や処理ポリシを示す。フロー識別情報は、送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号等である。アプライアンス処理部２１は、このセッションテーブルＳＴＢＬを参照することによって、各フローに応じたアプライアンス処理を実行する。また、後述されるように、アプライアンス処理部２１は、コントローラ１００からの要求に応じて、セッションテーブルＳＴＢＬの内容を示すセッション情報ＳＥＳをコントローラ１００に送信する機能を有する。
【００２９】
負荷監視部２５は、自アプライアンス２０の処理負荷を監視し、その処理負荷を示す負荷情報ＬＤを作成・更新する。処理負荷としては、ＣＰＵ使用率やトラヒック量が挙げられる。負荷監視部２５は、その負荷情報ＬＤを記憶部２３に格納する。また、負荷監視部２５は、最新の負荷情報ＬＤを、コントローラ通信部２２を介してコントローラ１００に送信する。負荷情報ＬＤの送信タイミングや送信間隔は任意に設定され得る。
【００３０】
１−３．物理サーバ２００
図５は、本実施の形態に係る物理サーバ２００の構成を概略的に示している。物理サーバ２００は、コントローラ通信部２２０、記憶部２３０、及び負荷監視部２５０を備えている。コントローラ通信部２２０は、制御回線を介してコントローラ１００に接続されており、コントローラ１００との間で通信を行う際のインタフェースとなる。
【００３１】
負荷監視部２５０は、自物理サーバ２００の処理負荷を監視し、その処理負荷を示す負荷情報ＬＤを作成・更新する。処理負荷としては、ＣＰＵ使用率やトラヒック量が挙げられる。負荷監視部２５０は、その負荷情報ＬＤを記憶部２３０に格納する。また、負荷監視部２５０は、最新の負荷情報ＬＤを、コントローラ通信部２２０を介してコントローラ１００に送信する。負荷情報ＬＤの送信タイミングや送信間隔は任意に設定され得る。
【００３２】
１−４．コントローラ１００
コントローラ１００は、制御回線を介して、各スイッチ１０のフローテーブルＦＴＢＬの内容を設定する機能を有する。具体的には、コントローラ１００は、エントリの設定（追加、変更、削除等）を指示する「エントリ設定データＥＮＴ」を作成し、そのエントリ設定データＥＮＴを対象スイッチ１０に送る。エントリ設定データＥＮＴを受け取った対象スイッチ１０のスイッチ処理部１１は、そのエントリ設定データＥＮＴに従って、自身のフローテーブルＦＴＢＬ内のエントリの設定（追加、変更、削除等）を行う。このように、コントローラ１００は、フローテーブルＦＴＢＬの内容の設定を通してスイッチ１０の動作を制御し、それにより、ネットワークトラフィックを適宜制御することができる。
【００３３】
このような処理を実現するためのコントローラ１００とスイッチ１０との間のインタフェース方式としては、例えば、Ｏｐｅｎｆｌｏｗ（ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／を参照）が挙げられる。この場合、「Ｏｐｅｎｆｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ」がコントローラ１００となり、「Ｏｐｅｎｆｌｏｗ  Ｓｗｉｔｃｈ」が各スイッチ１０となる。
【００３４】
図６は、本実施の形態に係るコントローラ１００の構成を示すブロック図である。コントローラ１００は、処理装置１０１、記憶装置１０２、及び通信装置１０３を備えている。処理装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を含む。記憶装置１０２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を含む。通信装置１０３は、例えば、外部との通信を行うネットワークカードを含む。
【００３５】
記憶装置１０２には、接続情報ＣＯＮ、負荷テーブルＬＴＢＬ、セッション情報ＳＥＳ、エントリ設定データＥＮＴ等が格納される。
【００３６】
接続情報ＣＯＮは、ネットワークの接続関係を示す。つまり、接続情報ＣＯＮは、スイッチ１０、アプライアンス２０、物理サーバ２００といった構成要素間の接続関係（トポロジ）を示す。より詳細には、接続情報ＣＯＮは、各構成要素の各ポートがどの構成要素のどのポートに接続されているかを示す。各構成要素の識別情報としては、ＭＡＣアドレスやＩＰアドレスなどが挙げられる。
【００３７】
負荷テーブルＬＴＢＬは、各アプライアンス２０に関連する処理負荷を示しており、各アプライアンス２０及び各物理サーバ２００から集められた上記負荷情報ＬＤに基いて作成される。アプライアンス２０が物理アプライアンスの場合、当該アプライアンス２０に関連する処理負荷は、当該物理アプライアンスの処理負荷である。アプライアンス２０が仮想アプライアンスの場合、当該アプライアンス２０に関連する処理負荷は、当該仮想アプライアンスの処理負荷、及び／あるいは、当該仮想アプライアンスが稼働する物理サーバ２００の処理負荷である。すなわち、アプライアンス２０に関連する処理負荷は、当該アプライアンス２０の処理負荷、及び、当該アプライアンス２０が稼働する物理サーバの処理負荷のうち少なくとも一方を含む。
【００３８】
図７は、負荷テーブルＬＴＢＬの一例を示している。図７に示されるように、負荷テーブルＬＴＢＬは、アプライアンス毎に、最新の処理負荷（例：ＣＰＵ使用率［％］）を示している。更に、負荷テーブルＬＴＢＬは、アプライアンス毎に、処理負荷に関する閾値を示している。この閾値は、後述される処理で使用される。尚、処理負荷に関する閾値は別途与えられてもよい。
【００３９】
セッション情報ＳＥＳは、アプライアンス２０が有するセッションテーブルＳＴＢＬの内容を示す。このセッション情報ＳＥＳは、アプライアンス２０から取得することができる。詳細は後述される。
【００４０】
エントリ設定データＥＮＴは、上述の通り、対象スイッチ１０に対してエントリの設定（追加、変更、削除等）を指示する情報である。
【００４１】
処理装置１０１は、本実施の形態に係る「ネットワーク制御処理」を行う。より詳細には、図６に示されるように、処理装置１０１は、情報収集部１１０、委譲処理部１２０、及びスイッチ制御部１３０を備えている。情報収集部１１０は、制御回線を介して、アプライアンス２０及び物理サーバ２００と接続され、通信を行う。スイッチ制御部１３０は、制御回線を介して、スイッチ１０と接続され、通信を行う。これら機能ブロック１１０、１２０、１３０による処理は、後に詳述される。
【００４２】
尚、これら機能ブロック１１０、１２０、１３０は、処理装置１０１が制御プログラムＰＲＯＧを実行することにより実現される。制御プログラムＰＲＯＧは、コンピュータ（処理装置１０１）によって実行されるコンピュータプログラムであり、記憶装置１０２に格納される。制御プログラムＰＲＯＧは、コンピュータ読み取り可能な記録媒体に格納されていてもよい。
【００４３】
２．処理フロー
以下、本実施の形態に係るネットワーク制御処理をより詳細に説明する。例として、図８で示される状態を考える。図８において、第１アプライアンス２０−１及び第２アプライアンス２０−２がスイッチ１０に接続されている。フローＦＬＯＷ１は、現在第１アプライアンス２０−１によって処理されている既存フローである。スイッチ１０のフローテーブルＦＴＢＬは、「フローＦＬＯＷ１に属するパケットを第１アプライアンス２０−１に転送すること」を指定するエントリを含んでいる。スイッチ１０は、フローＦＬＯＷ１に属するパケットを受け取ると、フローテーブルＦＴＢＬ中のマッチエントリに従って、受信パケットを第１アプライアンス２０−１に転送する。第１アプライアンス２０−１は、フローＦＬＯＷ１に属するパケットを受け取り、セッションテーブルＳＴＢＬに従って、当該受信パケットに対して所定のパケット処理（ロードバランサとしての処理、ファイヤーウォールとしての処理、等）を実施する。
【００４４】
図９は、本実施の形態に係るネットワーク制御処理を示すフローチャートである。
【００４５】
ステップＳ１１０：
各アプライアンス２０の負荷監視部２５は、自アプライアンス２０の処理負荷を監視し、その処理負荷を示す負荷情報ＬＤを作成・更新する。負荷監視部２５は、最新の負荷情報ＬＤをコントローラ１００に送信する。また、各物理サーバ２００の負荷監視部２５０は、自物理サーバ２００の処理負荷を監視し、その処理負荷を示す負荷情報ＬＤを作成・更新する。負荷監視部２５０は、最新の負荷情報ＬＤをコントローラ１００に送信する。
【００４６】
コントローラ１００の情報収集部１１０は、各アプライアンス２０及び各物理サーバ２００から上述の負荷情報ＬＤを取得する（図１０参照）。そして、情報収集部１１０は、取得した負荷情報ＬＤに基いて、上述の負荷テーブルＬＴＢＬを作成・更新する。
【００４７】
ステップＳ１２０：
続いて、コントローラ１００の委譲処理部１２０は、記憶装置１０２に格納されている負荷テーブルＬＴＢＬを参照し、「委譲処理」の要否を判定する。具体的には、委譲処理部１２０は、各アプライアンス２０に関連する処理負荷を所定の閾値と比較する。処理負荷が閾値以上となったアプライアンス２０が存在する場合（ステップＳ１３０；Ｙｅｓ）、委譲処理部１２０は、当該アプライアンス２０に関して「委譲処理」が必要と判定する。この場合、処理は次のステップＳ１４０に進む。一方、いずれのアプライアンス２０の処理負荷も閾値未満であれば（ステップＳ１３０；Ｎｏ）、委譲処理部１２０は、「委譲処理」は不要と判定する。この場合、処理はステップＳ１１０に戻る。
【００４８】
例えば、図７の例に示されるように、第１アプライアンス２０−１（Ａｐｐｌｉａｎｃｅ１）に関連する処理負荷が閾値に達したとする。この場合、委譲処理部１２０は、第１アプライアンス２０−１に関して委譲処理（ステップＳ１４０）を実行する。
【００４９】
ステップＳ１４０：
ステップＳ１４０において、コントローラ１００は、第１アプライアンス２０−１に関する「委譲処理」を行う。図１１は、その委譲処理を示している。
【００５０】
ステップＳ１４１：
コントローラ１００は、委譲元の第１アプライアンス２０−１からセッション情報ＳＥＳを取得する。より詳細には、コントローラ１００の情報収集部１１０は、第１アプライアンス２０−１に対して、セッション情報ＳＥＳの送付を要求する。その要求に応答して、第１アプライアンス２０−１のアプライアンス処理部２１は、自身のセッションテーブルＳＴＢＬの内容を示すセッション情報ＳＥＳをコントローラ１００に送信する。情報収集部１１０は、第１アプライアンス２０−１からセッション情報ＳＥＳを受け取り、それを記憶装置１０２に格納する。そのセッション情報ＳＥＳは、第１アプライアンス２０−１が扱っている各フローに関するフロー識別情報を含んでいる。
【００５１】
ステップＳ１４２：
次に、コントローラ１００の委譲処理部１２０は、第１アプライアンス２０−１が処理しているフローのうち少なくとも１つを「選択フロー」として選択する。このとき、委譲処理部１２０は、第１アプライアンス２０−１から取得した上記セッション情報ＳＥＳに基いて、選択フローを選択することができる。この選択フローは、第１アプライアンス２０−１から他のアプライアンスに委譲されるフローである。ここでは、フローＦＬＯＷ１が選択フローとして選択されたとする。
【００５２】
ステップＳ１４３：
また、コントローラ１００の委譲処理部１２０は、委譲先となるアプライアンス２０を選択する。この委譲先は、委譲元の第１アプライアンス２０−１とは異なるものである。このとき、委譲処理部１２０は、負荷テーブルＬＴＢＬを参照して、処理負荷が閾値未満のアプライアンス２０を委譲先として選択してもよい。ここでは、図１１に示される第２アプライアンス２０−２が委譲先として選択されたとする。
【００５３】
ステップＳ１４４：
コントローラ１００は、選択フローＦＬＯＷ１を第１アプライアンス２０−１ではなく第２アプライアンス２０−２へ流すための処理を行う。そのために、コントローラ１００の委譲処理部１２０は、“転送エントリ”の設定を指示するエントリ設定データＥＮＴを作成する。その転送エントリは、「選択フローＦＬＯＷ１に属するパケットを第２アプライアンス２０−２に転送すること」を指定する。選択フローＦＬＯＷ１に関するフロー識別情報は、セッション情報ＳＥＳから得られる。第２アプライアンス２０−２につながるポート等は、接続情報ＣＯＮから得られる。従って、委譲処理部１２０は、セッション情報ＳＥＳ及び接続情報ＣＯＮを参照することによって、転送エントリの設定を指示するエントリ設定データＥＮＴを作成することができる。委譲処理部１２０は、作成したエントリ設定データＥＮＴを記憶装置１０２に格納する。
【００５４】
ステップＳ１４５：
コントローラ１００のスイッチ制御部１３０は、記憶装置１０２からエントリ設定データＥＮＴを読み出し、そのエントリ設定データＥＮＴをスイッチ１０に送信する。すなわち、スイッチ制御部１３０は、スイッチ１０に対して、上述の“転送エントリ”をフローテーブルＦＴＢＬに設定するよう指示する。
【００５５】
スイッチ１０のスイッチ処理部１１は、コントローラ１００からエントリ設定データＥＮＴを受け取る。スイッチ処理部１１は、そのエントリ設定データＥＮＴに従って、上記“転送エントリ”をフローテーブルＦＴＢＬに設定する。その後、スイッチ処理部１１は、フローＦＬＯＷ１に属するパケットを受け取ると、当該転送エントリに従って、当該受信パケットを第２アプライアンス２０−２に転送する。つまり、図１１に示されるように、元々第１アプライアンス２０−１によって処理されていたフローＦＬＯＷ１は、委譲先の第２アプライアンス２０−２に転送されることになる。その結果、第１アプライアンス２０−１に関連する処理負荷が軽減される。
【００５６】
変形例として、セッション情報ＳＥＳの代わりに、スイッチ１０に既に設定されているエントリに基いて、選択フローが選択され、フロー識別情報が取得されてもよい。例えば、コントローラ１００の記憶装置１０２には、過去のエントリ設定データＥＮＴが記憶される。コントローラ１００は、過去のエントリ設定データＥＮＴを参照することによって、選択フローを選択し、選択フローのフロー識別情報を把握することができる。あるいは、コントローラ１００からの問い合わせに応答して、スイッチ１０が自身のフローテーブルＦＴＢＬをコントローラ１００に通知してもよい。コントローラ１００は、そのフローテーブルＦＴＢＬを参照することによって、選択フローを選択し、選択フローのフロー識別情報を把握することができる。
【００５７】
以上に説明されたように、本実施の形態によれば、第１アプライアンス２０−１の処理を、“動的”に、他の第２アプライアンス２０−２に委譲することが可能である。この時、各アプライアンス２０は、非特許文献１、２に記載されているような特別なフォーマットに対応している必要はない。このような委譲処理の結果、第１アプライアンス２０−１に関連する処理負荷が軽減される。
【００５８】
３．様々な構成例
図１２は、本実施の形態に係る様々な構成例を要約的に示している。委譲元の第１アプライアンス２０−１として、仮想アプライアンス及び物理アプライアンスが考えられる。更に、仮想アプライアンスは、ゲストＯＳと同一の物理サーバ上に構築されたものと、ゲストＯＳとは異なる物理サーバ上に構築されたものとに分類される。また、委譲先の第２アプライアンス２０−２として、仮想アプライアンス（ゲストＯＳとは異なる物理サーバ上に構築されたもの）及び物理アプライアンスが考えられる。第１アプライアンス２０−１と第２アプライアンス２０−２との組み合わせにより、様々な形態（形態１〜６）が考えられる。
【００５９】
３−１．第１の構成例
図１３は、形態１及び形態２に対応する構成例を示している。つまり、委譲元の第１アプライアンス２０−１は、ゲストＯＳと同一の物理サーバ上に構築された仮想アプライアンスである。
【００６０】
具体的には、仮想化技術によって、物理サーバ２００Ａ上に仮想アプライアンス２０Ａが構築されている。物理サーバ２００Ａは更に、仮想スイッチ２１０及び複数のゲストＯＳ２４０を備えている。仮想アプライアンス２０Ａは、複数のゲストＯＳ２４０間のトラヒックや、ゲストＯＳ２４０以外のホストとの間のトラヒックを処理する。
【００６１】
仮想アプライアンス２０Ａは、自身の処理負荷を示す負荷情報ＬＤをコントローラ１００に送信する。また、物理サーバ２００Ａの負荷監視部２５０は、物理サーバ２００Ａの処理負荷を示す負荷情報ＬＤをコントローラ１００に送信する。コントローラ１００は、それら負荷情報ＬＤに基いて、仮想アプライアンス２０Ａに関して「委譲処理」が必要であると判定する。つまり、仮想アプライアンス２０Ａが、委譲元の第１アプライアンス２０−１となる。
【００６２】
例えば、コントローラ１００は、物理サーバ２００Ｂ上の仮想アプライアンス２０Ｂを、委譲先の第２アプライアンス２０−２として選択する。この場合は、形態１に相当する。あるいは、コントローラ１００は、物理アプライアンス２０Ｃを、委譲先の第２アプライアンス２０−２として選択してもよい。この場合は、形態２に相当する。コントローラ１００は、スイッチ１０及び仮想スイッチ２１０に対して、エントリ設定を指示する。
【００６３】
近年の仮想化技術の発展に伴い、ゲストＯＳを対象とした仮想的なセキュリティアプライアンスにも注目が集まっている。例えば、ＷＡＦ（Ｗｅｂ  Ａｐｐｌｉｃａｔｉｏｎ  Ｆｉｒｅｗａｌｌ）機能を有する仮想アプライアンスは、１台の物理サーバ上で複数のゲストＯＳのトラヒックのアプリケーションレイヤまで監視する。そのような仮想アプライアンスの処理負荷が高くなった場合、より高性能な物理サーバや余裕のある物理サーバに構築された他の仮想アプライアンスへ処理を委譲することができる。
【００６４】
３−２．第２の構成例
図１４は、形態３及び形態４に対応する構成例を示している。つまり、委譲元の第１アプライアンス２０−１は、ゲストＯＳとは異なる物理サーバ上に構築された仮想アプライアンスである。
【００６５】
具体的には、仮想化技術によって、物理サーバ２００Ａ上に仮想アプライアンス２０Ａが構築されている。仮想アプライアンス２０Ａは、自身の処理負荷を示す負荷情報ＬＤをコントローラ１００に送信する。また、物理サーバ２００Ａの負荷監視部２５０は、物理サーバ２００Ａの処理負荷を示す負荷情報ＬＤをコントローラ１００に送信する。コントローラ１００は、それら負荷情報ＬＤに基いて、仮想アプライアンス２０Ａに関して「委譲処理」が必要であると判定する。つまり、仮想アプライアンス２０Ａが、委譲元の第１アプライアンス２０−１となる。
【００６６】
例えば、コントローラ１００は、物理サーバ２００Ｂ上の仮想アプライアンス２０Ｂを、委譲先の第２アプライアンス２０−２として選択する。この場合は、形態３に相当する。あるいは、コントローラ１００は、物理アプライアンス２０Ｃを、委譲先の第２アプライアンス２０−２として選択してもよい。この場合は、形態４に相当する。コントローラ１００は、スイッチ１０に対して、エントリ設定を指示する。
【００６７】
３−３．第３の構成例
図１５は、形態５及び形態６に対応する構成例を示している。つまり、委譲元の第１アプライアンス２０−１は、物理アプライアンスである。
【００６８】
具体的には、物理アプライアンス２０Ａの負荷監視部２５は、物理アプライアンス２０Ａの処理負荷を示す負荷情報ＬＤをコントローラ１００に送信する。コントローラ１００は、その負荷情報ＬＤに基いて、物理アプライアンス２０Ａに関して「委譲処理」が必要であると判定する。つまり、物理アプライアンス２０Ａが、委譲元の第１アプライアンス２０−１となる。
【００６９】
例えば、コントローラ１００は、物理サーバ２００Ｂ上の仮想アプライアンス２０Ｂを、委譲先の第２アプライアンス２０−２として選択する。この場合は、形態５に相当する。例えば、上述の形態４が実施された後、元の仮想アプライアンスの処理負荷が下がった場合、物理アプライアンスに委譲された処理を、元の仮想アプライアンスに戻すことができる。
【００７０】
あるいは、コントローラ１００は、物理アプライアンス２０Ｃを、委譲先の第２アプライアンス２０−２として選択してもよい。この場合は、形態６に相当する。例えば、より高性能な物理アプライアンスが追加された場合、処理負荷が高くなった物理アプライアンスの処理を、追加された高性能な物理アプライアンスに委譲することができる。
【００７１】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【００７２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００７３】
（付記１）
ネットワーク中に配置されたアプライアンス及びスイッチと、
前記アプライアンス及び前記スイッチに接続されたコントローラと
を備え、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記コントローラは、前記アプライアンスに関連する処理負荷を示す負荷情報を取得し、また、前記処理負荷を閾値と比較し、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、前記コントローラは委譲処理を行い、
前記委譲処理において、前記コントローラは、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択し、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択し、
前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定するように、前記スイッチに対して指示する
ネットワークシステム。
【００７４】
（付記２）
付記１に記載のネットワークシステムであって、
前記アプライアンスに関連する処理負荷は、前記アプライアンスの処理負荷、及び、前記アプライアンスが稼働する物理サーバの処理負荷のうち少なくとも一方を含む
ネットワークシステム。
【００７５】
（付記３）
付記１又は２に記載のネットワークシステムであって、
前記第２アプライアンスに関連する前記処理負荷は、閾値未満である
ネットワークシステム。
【００７６】
（付記４）
付記１乃至３のいずれか一項に記載のネットワークシステムであって、
前記第１アプライアンスは、自身が処理するフローに関する情報を示すセッションテーブルを有し、
前記コントローラは、前記第１アプライアンスの前記セッションテーブルの内容を示すセッション情報を取得し、前記セッション情報に基いて前記選択フローを選択する
ネットワークシステム。
【００７７】
（付記５）
付記１乃至３のいずれか一項に記載のネットワークシステムであって、
前記コントローラは、前記スイッチに既に設定されているエントリに基いて、前記選択フローを選択する
ネットワークシステム。
【００７８】
（付記６）
ネットワーク中に配置されたアプライアンス及びスイッチに接続されるコントローラであって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記コントローラは、
前記アプライアンスに関連する処理負荷を示す負荷情報が格納される記憶装置と、
処理装置と
を備え、
前記処理装置は、前記処理負荷を閾値と比較し、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、前記処理装置は委譲処理を行い、
前記委譲処理において、前記処理装置は、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択し、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択し、
前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定するように、前記スイッチに対して指示する
コントローラ。
【００７９】
（付記７）
アプライアンス及びスイッチが配置されたネットワークの制御方法であって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記制御方法は、
前記アプライアンスに関連する処理負荷を示す負荷情報を取得することと、
前記処理負荷を閾値と比較することと、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、委譲処理を行うことと
を含み、
前記委譲処理は、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択することと、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択することと、
前記スイッチにおいて、前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定することと
を含む
制御方法。
【００８０】
（付記８）
アプライアンス及びスイッチが配置されたネットワークの制御処理をコンピュータに実行させる制御プログラムであって、
前記スイッチは、フローテーブルを備え、
前記フローテーブルの各エントリは、マッチ条件にマッチするパケットに対して行われるアクションを指定し、
前記スイッチは、パケットを受け取ると前記フローテーブルを参照し、前記受け取ったパケットにマッチするエントリで指定される前記アクションを前記受け取ったパケットに対して行い、
前記制御処理は、
前記アプライアンスに関連する処理負荷を示す負荷情報を取得することと、
前記処理負荷を閾値と比較することと、
前記アプライアンスの１つである第１アプライアンスに関連する前記処理負荷が前記閾値以上になった場合、委譲処理を行うことと
を含み、
前記委譲処理は、
前記第１アプライアンスが処理しているフローのうち少なくとも１つを選択フローとして選択することと、
前記アプライアンスの１つであって前記第１アプライアンスと異なる第２アプライアンスを選択することと、
前記選択フローに属するパケットを前記第２アプライアンスに転送することを指定するエントリを前記フローテーブルに設定するように、前記スイッチに対して指示することと
を含む
制御プログラム。
【符号の説明】
【００８１】
１    ネットワークシステム
１０    スイッチ
１１    スイッチ処理部
１２    コントローラ通信部
１３    記憶部
１５    ポート
２０    アプライアンス
２１    アプライアンス処理部
２２    コントローラ通信部
２３    記憶部
２５    負荷監視部
１００    コントローラ
１０１    処理装置
１０２    記憶装置
１０３    通信装置
１１０    情報収集部
１２０    委譲処理部
１３０    スイッチ制御部
２００    物理サーバ
２２０    コントローラ通信部
２３０    記憶部
２５０    負荷監視部
ＬＤ    負荷情報
ＣＯＮ    接続情報
ＳＥＳ    セッション情報
ＥＮＴ    エントリ設定データ
ＦＴＢＬ    フローテーブル
ＳＴＢＬ    セッションテーブル
ＬＴＢＬ    負荷テーブル
ＰＲＯＧ    制御プログラム
【図１】
2011159247.tif 000003
【図２】
2011159247.tif 000004
【図３】
2011159247.tif 000005
【図４】
2011159247.tif 000006
【図５】
2011159247.tif 000007
【図６】
2011159247.tif 000008
【図７】
2011159247.tif 000009
【図８】
2011159247.tif 000010
【図９】
2011159247.tif 000011
【図１０】
2011159247.tif 000012
【図１１】
2011159247.tif 000013
【図１２】
2011159247.tif 000014
【図１３】
2011159247.tif 000015
【図１４】
2011159247.tif 000016
【図１５】
2011159247.tif 000017