(57)【要約】【課題】ネットワークを構成するノードの利用効率を向上することで不要なノードの追加を防ぐ。【解決手段】ノード抽出部２０４は、複数のノードの中から、ネットワークに設定すべき処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出する。ノード選択部２０８は、ノード抽出部２０４が抽出したノードの中から１つのノードを選択する。処理規則追加部２０９は、ノード選択部２０８が選択したノードに処理規則決定部２０２が決定した処理規則を追加する。ルーティング規則追加部２１０は、ノード選択部２０８が選択したノードとネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加する。【選択図】図３
2014007438.tif 000002
【特許請求の範囲】
【請求項１】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置であって、
前記ネットワークに新たに設定する処理規則を決定する処理規則決定部と、
前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部と、
前記ノード抽出部が抽出したノードの中から１つのノードを選択するノード選択部と、
前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部と、
前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部と
を備えることを特徴とするノード管理装置。
【請求項２】
前記ノード選択部は、前記処理規則決定部が決定した処理規則を追加するノードの探索の基点として決定されたノードである初期ノードからのホップ数が最も小さいものを選択する
ことを特徴とする請求項１に記載のノード管理装置。
【請求項３】
前記ノード抽出部が抽出したノードの中から、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加した場合に、何れかのノードにおいて負荷が所定の閾値を超えるものがあるか否かを判定するルーティング負荷判定部を備え、
前記ノード選択部は、前記ルーティング負荷判定部が、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合にも何れのノードにおいても負荷が所定の閾値を超えないと判定したものを選択する
ことを特徴とする請求項１または請求項２に記載のノード管理装置。
【請求項４】
前記ノード抽出部が抽出したそれぞれのノードについて、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合における帯域総数を算出する帯域総数算出部を備え、
前記ノード選択部は、前記帯域総数算出部が算出した帯域総数が最も小さいものを選択する
ことを特徴とする請求項１から請求項３の何れか１項に記載のノード管理装置。
【請求項５】
前記複数のノードの中から、負荷が前記閾値を超えるものを特定するノード監視部と、
前記ノード監視部が特定したノードの処理規則のうち、実行による負荷が最も大きいものを当該ノードから除外する処理規則除外部と
を備え、
前記処理規則決定部は、前記処理規則除外部が除外した処理規則を、前記ネットワークに新たに設定する処理規則とする
ことを特徴とする請求項１から請求項４の何れか１項に記載のノード管理装置。
【請求項６】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を用いたノード管理方法であって、
処理規則決定部は、前記ネットワークに新たに設定する処理規則を決定し、
ノード抽出部は、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出し、
ノード選択部は、前記ノード抽出部が抽出したノードの中から１つのノードを選択し、
処理規則追加部は、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加し、
ルーティング規則追加部は、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加する
ことを特徴とするノード管理方法。
【請求項７】
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を、
前記ネットワークに新たに設定する処理規則を決定する処理規則決定部、
前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部、
前記ノード抽出部が抽出したノードの中から１つのノードを選択するノード選択部、
前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部、
前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理規則に従って受信したパケットを処理する複数のノードを管理するノード管理装置、ノード管理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年のデータセンタにおけるＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおける、スイッチやファイアウォール、ロードバランサなどのネットワーク機器は、当該データセンタの顧客毎に設置され、利用が限定される。また、データセンタにおけるＩＰネットワークにおいては、３層ネットワーク構成をとることが多い（非特許文献１を参照）。
【０００３】
３層ネットワーク構成とは、アクセス層、ディストリビューション層、コア層の３階層からなるツリー状のネットワーク構成である。アクセス層は、サーバ装置や利用者端末などの端末装置同士を接続する層である。また、ディストリビューション層は、アクセス層間のルーティング及びフィルタリングを行う層である。そして、コア層は、ディストリビューション層間を接続する層であり、バックボーンとして機能する。このように層ごとに有するべき機能が決まっているため、ノードたるネットワーク機器が配置される場所もほぼ固定化される。例えば、ルータ機能を有するノードはコア層に設けられ、ファイアウォール機能を有するノードはディストリビューション層に設けられることとなる。これは、パケットフィルタリングなどの機能がルータ機能を有するノードに少なからず余分な負荷を与えることとなるためである（非特許文献２を参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Ｃｉｓｃｏ  Ｄａｔａ  Ｃｅｎｔｅｒ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ  ２．５  Ｄｅｓｉｇｎ  Ｇｕｉｄｅ”、［ｏｎｌｉｎｅ］、Ｃｉｓｃｏ、［２０１２年５月３１日検索］、インターネット＜ＵＲＬ：  ｈｔｔｐ：／／ｗｗｗ．ｃｉｓｃｏ．ｃｏｍ／ａｐｐｌｉｃａｔｉｏｎ／ｐｄｆ／ｅｎ／ｕｓ／ｇｕｅｓｔ／ｎｅｔｓｏｌ／ｎｓ１０７／ｃ６４９／ｃｃｍｉｇｒａｔｉｏｎ＿０９１８６ａ００８０７３３７７ｄ．ｐｄｆ＞
【非特許文献２】Ｅｌｉｚａｂｅｔｈ  Ｄ．  Ｚｗｉｃｋｙ，  Ｓｉｍｏｎ  Ｃｏｏｐｅｒ，  Ｄ．  Ｂｒｅｎｔ  Ｃｈａｐｍａｎ、「ファイアウォール構築第２版」、Ｏ’Ｒｅｉｌｌｙ、２００３年１月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特定の機能を有するノードが特定の層に配置される場合、ノード間で負荷の高低にばらつきが生じる。そのため、データセンタ全体のノードのリソースを柔軟に利用することができず、利用効率の低下や、不要な投資の懸念がある。例えば、コア層に配置されたルータ機能を有するノードの負荷が高く、ディストリビューション層に配置されたノードの負荷が低い場合、コア層にルータ機能を有する新たなノードを配置する必要がある。この場合、ディストリビューション層のノードの利用効率が低下し、かつコア層に新たなノードを設置するための投資が必要となる。
【０００６】
本発明の目的は、ネットワークを構成するノードの利用効率の向上を図ることで不要なノードの追加を防ぐことにある。
【課題を解決するための手段】
【０００７】
本発明は上記の課題を解決するためになされたものであり、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置であって、前記ネットワークに新たに設定する処理規則を決定する処理規則決定部と、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部と、前記ノード抽出部が抽出したノードの中から１つのノードを選択するノード選択部と、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部と、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部とを備えることを特徴とする。
【０００８】
また、本発明においては、前記ノード選択部は、前記処理規則決定部が決定した処理規則を追加するノードの探索の基点として決定されたノードである初期ノードからのホップ数が最も小さいものを選択することを特徴とする。
【０００９】
また、本発明においては、前記ノード抽出部が抽出したノードの中から、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加した場合に、何れかのノードにおいて負荷が所定の閾値を超えないものを抽出するか否かを判定するルーティング負荷判定部を備え、前記ノード選択部は、前記ルーティング負荷判定部が、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合にも何れのノードにおいても負荷が所定の閾値を超えないと判定したものを選択することを特徴とする。
【００１０】
また、本発明においては、前記ノード抽出部が抽出したそれぞれのノードについて、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合における帯域総数を算出する帯域総数算出部を備え、前記ノード選択部は、前記帯域総数算出部が算出した帯域総数が最も小さいものを選択することを特徴とする。
【００１１】
また、本発明においては、前記複数のノードの中から、負荷が前記閾値を超えるものを特定するノード監視部と、前記ノード監視部が特定したノードの処理規則のうち、実行による負荷が最も大きいものを当該ノードから除外する処理規則除外部とを備え、前記処理規則決定部は、前記処理規則除外部が除外した処理規則を、前記ネットワークに新たに設定する処理規則とすることを特徴とする。
【００１２】
また、本発明は、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を用いたノード管理方法であって、処理規則決定部は、前記ネットワークに新たに設定する処理規則を決定し、ノード抽出部は、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出し、ノード選択部は、前記ノード抽出部が抽出したノードの中から１つのノードを選択し、処理規則追加部は、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加し、ルーティング規則追加部は、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加することを特徴とする。
【００１３】
また、本発明は、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を、前記ネットワークに新たに設定する処理規則を決定する処理規則決定部、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部、前記ノード抽出部が抽出したノードの中から１つのノードを選択するノード選択部、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部として機能させるためのプログラムである。
【発明の効果】
【００１４】
本発明によれば、処理規則を追加するノードとして、処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを選択し、他のノードに、当該処理規則を実行するノードへルーティングするための処理規則を追加する。これにより、ネットワークに新たなノードを追加することなく、当該ネットワークを動的に構成することで、ノードを効率的に利用することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態によるノード管理装置を備えるネットワークを示す概略図である。
【図２】本発明の一実施形態によるノードの構成を示す概略ブロック図である。
【図３】本発明の一実施形態によるノード管理装置の構成を示す概略ブロック図である。
【図４】記憶部が記憶するテーブルの例を示す図である。
【図５】本発明の一実施形態によるノード管理装置における処理規則追加時の動作を示すフローチャートである。
【図６】処理規則配置処理の具体的な動作を示すフローチャートである。
【図７】本発明の一実施形態によるノード管理装置におけるネットワーク監視時の動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態によるノード管理装置２０を備えるネットワークを示す概略図である。
ネットワークは、複数のノード１０と、ノード管理装置２０と、複数のサーバ装置３０とを備える。
【００１７】
ノード１０は、受信したパケットを解析し、自装置が記憶する処理規則においてその解析結果に対応する処理を適用する。処理規則とは、パケットに適用する処理とその処理を適用するパケットを特定するための照合規則とを対応付けたものである。パケットに適用する処理の例としては、他の装置へ転送する処理や、パケットを破棄する処理などが挙げられる。また、照合規則の例としては、パケットのＩＰアドレス、ＭＡＣアドレス、ポート番号、ペイロードの情報などのパケット情報の組み合わせが挙げられる。
なお、ノード１０としては、オープンフロースイッチを用いることができるが、これに限られず、例えばパケットのヘッダの内容に加えてペイロードの内容まで解析して処理を行うネットワーク機器を用いても良い。
【００１８】
ノード管理装置２０は、ノード１０を管理する。具体的には、ノード管理装置２０は、ノード１０に処理規則制御パケットを送信することで、ノード１０の処理規則の追加・削除を行う。また、ノード管理装置２０は、ノード１０の状態（例えばトラフィックなどの情報）をノード１０それぞれから取得することで、ノード１０を監視し、負荷が高いノード１０の処理規則を他のノード１０に再配置する。なお、ノード管理装置２０としては、オープンフロープロトコルでノード１０と通信するオープンフローコントローラを用いることができるが、これに限られず、オープンフローコントローラの機能をインクルードした上位機器を用いても良い。
サーバ装置３０は、ノード１０を介して他の装置とパケットの授受を行う。
【００１９】
なお、ノード１０は、１つまたは複数のリンクにより、他のノード１０、ノード管理装置２０、サーバ装置３０と接続されることで、ネットワークを構成している。ノード管理装置２０は、リンクにより１つのノード１０と接続されるが、ノード１０に接続されたリンクを辿ることで、全てのノード１０にアクセスすることができる。なお、ノード管理装置２０の配置場所は図１の例に限られず、少なくとも何れかのノード１０とリンクを介して接続していれば、どこに配置されていても良い。また、ノード管理装置２０は、リンクにより複数のノード１０と直接接続されていても良い。
【００２０】
図２は、本発明の一実施形態によるノード１０の構成を示す概略ブロック図である。
ノード１０は、処理規則記憶部１０１、パケット受信部１０２、パケット解析部１０３、パケット処理部１０４を備える。
処理規則記憶部１０１は、処理規則を記憶する。
パケット受信部１０２は、リンクで接続された他のノード１０、ノード管理装置２０、またはサーバ装置３０からパケットを受信する。
パケット解析部１０３は、パケット受信部１０２が受信したパケットを解析し、ＩＰアドレス、ＭＡＣアドレス、ポート番号などのパケット情報を取得する。
パケット処理部１０４は、処理規則記憶部１０１が記憶する処理規則の照合規則とパケット解析部１０３が解析したパケット情報とを比較し、合致する照合規則を有する処理規則がある場合、当該処理規則が示す処理を実行する。パケットの処理としては、上述したように、転送や破棄などが挙げられる。
【００２１】
なお、パケット処理部１０４は、ノード管理装置２０から自装置宛の処理規則制御パケットを受信した場合、当該処理規則制御パケットに従って処理規則記憶部１０１が記憶する処理規則の追加・削除を行う。
【００２２】
図３は、本発明の一実施形態によるノード管理装置２０の構成を示す概略ブロック図である。
ノード管理装置２０は、入力部２０１、処理規則決定部２０２、記憶部２０３、ノード抽出部２０４、ルート特定部２０５、ルーティング負荷判定部２０６、帯域総数算出部２０７、ノード選択部２０８、処理規則追加部２０９、ルーティング規則追加部２１０、ノード監視部２１１、処理規則除外部２１２を備える。
【００２３】
入力部２０１は、ネットワークの管理者から、ネットワークに追加すべき処理規則の入力を受け付ける。
処理規則決定部２０２は、入力部２０１が入力を受け付けた処理規則、または処理規則除外部２１２がノード１０から除外した処理規則を、ネットワークに新たに設定する処理規則に決定する。
【００２４】
記憶部２０３は、処理規則を配置するノード１０を決定する際に用いる情報を記憶する。具体的には、記憶部２０３は、負荷閾値テーブル、リンクテーブル、処理規則種別テーブル、処理規則負荷テーブル、ノード実装テーブルを記憶する。
図４は、記憶部２０３が記憶するテーブルの例を示す図である。
負荷閾値テーブルは、図４（Ａ）に示すように、ノード１０ごとに、当該ノード１０に許容される負荷の上限値（閾値）を関連付けて格納する。
リンクテーブルは、図４（Ｂ）に示すように、ノード１０ごとに、当該ノード１０がリンクにより接続されているノード１０を格納する。
処理規則種別テーブルは、図４（Ｃ）に示すように、ノード１０ごとに、当該ノード１０が実行することができる処理規則の種別を関連付けて格納する。処理規則の種別としては、例えば、ルーティング、フィルタリング、ファイアウォール、ロードバランシングなどが挙げられる。
処理規則負荷テーブルは、図４（Ｄ）に示すように、ノード１０と処理規則の種別とトラフィック量の組み合わせごとに、当該条件におけるノード１０の負荷の増分を関連付けて格納する。なお、当該増分は、ノード１０の負荷を予め計測することや、ノード１０の機種情報から推定することにより特定しておく。
ノード実装テーブルは、図４（Ｅ）に示すように、ノード１０ごとに、当該ノード１０に実装されている処理規則と、当該処理規則の種別とを関連付けて格納する。
【００２５】
ノード抽出部２０４は、記憶部２０３が記憶するリンクテーブルに基づいて、処理規則を追加するノード１０の候補を抽出する。また、ノード抽出部２０４は、抽出した候補から、処理規則を追加した場合に負荷が上限値を超えないノード１０のみを、処理規則を追加するノード１０の候補として絞り込む。
ルート特定部２０５は、ノード抽出部２０４が抽出したノード１０ごとに、当該ノード１０と各サーバ装置３０とをルーティングするルートを特定し、当該ルート上のノード１０を、ルーティングの処理規則を追加する必要があるノード１０として特定する。
【００２６】
ルーティング負荷判定部２０６は、ルート特定部２０５が特定したノード１０にルーティングの処理規則を追加した場合に、何れかのノード１０において負荷が上限値を超えるものがあるか否かを、ノード抽出部２０４が抽出したノード１０ごとに判定する。
帯域総数算出部２０７は、ルート特定部２０５が特定したノード１０と記憶部２０３が記憶するリンクテーブルとに基づいて、ルーティングの処理規則を追加した場合の帯域総数を、ノード抽出部２０４が抽出したノード１０ごとに算出する。
【００２７】
ノード選択部２０８は、ノード抽出部２０４が抽出したノード１０のうち、ルーティング負荷判定部２０６が、ルーティングの処理規則を各ノード１０に追加した場合に何れのノード１０においても負荷が上限値を超えないと判定したノード１０であって、帯域総数算出部２０７が算出した帯域総数が最小のものを、処理規則を追加すべきノード１０として選択する。
処理規則追加部２０９は、ノード選択部２０８が選択したノード１０に、処理規則決定部２０２が決定した処理規則を追加する。
ルーティング規則追加部２１０は、ノード選択部２０８が選択したノード１０と各サーバ装置３０とをルーティングするルートを、ルート特定部２０５から取得し、当該ルート上のノード１０に、ルーティングの処理規則を追加する。
【００２８】
ノード監視部２１１は、各ノード１０の現在の負荷及びトラフィック量を監視する。
処理規則除外部２１２は、ノード監視部２１１が監視するノード１０のうち、負荷が上限値を超えるノード１０から、処理規則を除外する。
【００２９】
まず、ネットワークに処理規則を新たに追加する際の動作について説明する。
図５は、本発明の一実施形態によるノード管理装置２０における処理規則追加時の動作を示すフローチャートである。
利用者は、ネットワークに追加する処理規則を、外部ネットワークからのパケットに対して処理を実行する順に、ノード管理装置２０に入力する。例えば、外部ネットワークからのパケットに対して、まずプロトコル変換処理を行い、次にファイアウォール処理を行い、次にフィルタリング処理を行うことを想定している場合、プロトコル変換処理、ファイアウォール処理、フィルタリング処理の順に、処理規則を入力する。
【００３０】
利用者による処理規則の入力により、ノード管理装置２０の入力部２０１は、当該処理規則の入力を受け付ける（ステップＳ１）。次に、処理規則決定部２０２は、入力部２０１が入力を受け付けた処理規則を、ネットワークに新たに設定する処理規則に決定し、当該処理規則の種別を特定する（ステップＳ２）。ここで、ノード抽出部２０４は、予め定められたスタートポイントのノード１０を、処理規則を追加するノード１０の探索の基点となる初期ノードに決定する（ステップＳ３）。スタートポイントのノード１０としては、外部ネットワークに接続されているノード１０が設定されていることが好ましい。これにより、外部ネットワークとの通信の際のノード１０のホップ数を少なくすることができる。
【００３１】
次に、ノード管理装置２０は、処理規則決定部２０２がネットワークに追加すると決定した処理規則ごとに、以下に示すステップＳ５、Ｓ６の処理を行う（ステップＳ４）。まず、ノード管理装置２０は、初期ホップ数を０として処理規則配置処理を実行することで、処理規則の追加を行う（ステップＳ５）。処理規則配置処理とは、処理規則を追加すべきノード１０を特定し、当該ノード１０に処理規則を追加する処理である。また、初期ホップ数とは、処理規則を追加するノード１０の候補の初回抽出時に抽出対象となるノード１０の初期ノードからのホップ数をいう。次に、ノード管理装置２０は、ステップＳ５において処理規則の追加を行ったノード１０を次の初期ノードに決定する（ステップＳ６）。
そして、ノード管理装置２０は、処理規則決定部２０２がネットワークに追加すると決定した全ての処理規則についてステップＳ５、Ｓ６の処理を行うと、処理を終了する。
【００３２】
図６は、処理規則配置処理の具体的な動作を示すフローチャートである。
まず、ノード抽出部２０４は、処理規則決定部２０２がネットワークに追加すると決定した１つの処理規則を追加すべきノード１０の候補として、記憶部２０３が記憶するリンクテーブルを参照して初期ノードから設定されたホップ数だけ離れたノード１０を抽出し、内部メモリの確認リストに記録する（ステップＳ５０１）。確認リストとは、処理規則を追加することができるか否かを確認する対象となるノード１０を格納するリストである。
【００３３】
次に、ノード抽出部２０４は、確認リストに記憶されたノード１０を１つずつ選択し、それぞれについて以下のステップＳ５０２〜Ｓ５０８の処理を実行する（ステップＳ５０２）。
まず、ノード抽出部２０４は、記憶部２０３が記憶する処理規則種別テーブルを参照し、ステップＳ５０２で選択されたノード１０に関連付けて、処理規則決定部２０２がネットワークに追加すると決定した処理規則が格納されているか否かを判定する。つまり、ノード抽出部２０４は、ステップＳ５０２で選択されたノード１０が処理規則を実行することができるノード１０であるか否かを判定する（ステップＳ５０３）。ノード抽出部２０４は、ステップＳ５０２で選択されたノード１０が処理規則を実行することができないノード１０であると判定した場合（ステップＳ５０３：ＮＯ）、ステップＳ５０２に戻り、次のノード１０の選択を行う。
【００３４】
他方、ノード抽出部２０４は、ステップＳ５０２で選択されたノード１０が処理規則を実行することができるノード１０であると判定した場合（ステップＳ５０３：ＹＥＳ）、以下の処理を行う。すなわち、ノード抽出部２０４は、記憶部２０３が記憶する処理規則負荷テーブルから、ステップＳ５０２で選択されたノード１０、処理規則決定部２０２が決定した処理規則の種別及び当該ノード１０の現在のトラフィック量に関連付けられた負荷を読み出す。なお、ネットワークに処理規則を初めて設定する場合においては、ノード１０にトラフィックがないため、トラフィック量としては予め設定される予想トラフィック量を用いるものとする。次に、ノード抽出部２０４は、当該ノード１０の現在の負荷に読み出した負荷を加算する。そして、ノード抽出部２０４は、記憶部２０３が記憶する負荷閾値テーブルを参照し、算出した負荷が当該ノード１０に関連付けられた負荷上限値を超えるか否かを判定する。
【００３５】
つまり、ノード抽出部２０４は、ステップＳ５０２で選択されたノード１０に処理規則決定部２０２が決定した処理規則を追加した場合に、そのノード１０の負荷が上限値を超えるか否かを判定する（ステップＳ５０４）。ノード抽出部２０４は、ステップＳ５０２で選択されたノード１０に処理規則決定部２０２が決定した処理規則を追加した場合に、そのノード１０の負荷が上限値を超えると判定した場合（ステップＳ５０４：ＹＥＳ）、ステップＳ５０２に戻り、次のノード１０の選択を行う。
【００３６】
他方、ノード抽出部２０４は、ステップＳ５０２で選択されたノード１０に処理規則決定部２０２が決定した処理規則を追加しても、そのノード１０の負荷が上限値を超えないと判定した場合（ステップＳ５０４：ＮＯ）、ルート特定部２０５は、当該ノード１０と各サーバ装置３０とをルーティングするルートを特定し、当該ルート上のノード１０を、ルーティングの処理規則を追加する必要があるノード１０として特定する（ステップＳ５０５）。次に、ルーティング負荷判定部２０６は、ステップＳ５０５で特定されたルーティングの処理規則を追加する必要があるノード１０にルーティングの処理規則を追加した場合に、いずれかのノード１０の負荷が上限値を超えるか否かを判定する（ステップＳ５０６）。
【００３７】
ルーティング負荷判定部２０６は、いずれかのノード１０の負荷が上限値を超えると判定した場合（ステップＳ５０６：ＹＥＳ）、ステップＳ５０２に戻り、次のノード１０の選択を行う。他方、ルーティング負荷判定部２０６が、いずれのノード１０においても負荷が上限値を超えないと判定した場合（ステップＳ５０６：ＮＯ）、次に、帯域総数算出部２０７は、ルート特定部２０５が特定したルートの帯域総数を算出する（ステップＳ５０７）。具体的には、帯域総数は、ルート特定部２０５が特定したルーティングの処理規則を追加する必要があるノード１０の使用ポート数の使用帯域の総和を、帯域総数として算出する。
【００３８】
そして、ノード選択部２０８は、ステップＳ５０２で選択されたノード１０を、帯域総数算出部２０７が算出した帯域総数に関連付けて、内部メモリの候補リストに記録して（ステップＳ５０８）、ステップＳ５０２に戻り、次のノード１０の選択を行う。候補リストとは、処理規則を追加するノード１０の候補となるノード１０を格納するリストである。
【００３９】
確認リストに記憶された全てのノード１０についてステップＳ５０２〜Ｓ５０８の処理が完了すると、ノード選択部２０８は、内部メモリの候補リストに１つ以上ノード１０が記録されているか否かを判定する（ステップＳ５０９）。ノード選択部２０８が、内部メモリの候補リストにノード１０が１つも記録されていないと判定した場合（ステップＳ５０９：ＮＯ）、ノード抽出部２０４は、ホップ数に１を加算して（ステップＳ５１０）ステップＳ５０１に戻り、ノード１０の抽出を行う。
【００４０】
他方、ノード選択部２０８は、内部メモリの候補リストにノード１０が１つ以上記録されていると判定した場合（ステップＳ５０９：ＹＥＳ）、候補リストに記録されたノード１０のうち、関連付けられた帯域総数が最小のものを、処理規則の追加対象のノード１０として選択する（ステップＳ５１１）。次に、処理規則追加部２０９は、ノード選択部２０８が選択したノード１０に、処理規則決定部２０２が決定した処理規則を追加する処理規則制御パケットを送信することで、当該ノード１０に処理規則を追加し（ステップＳ５１２）、記憶部２０３が記憶するノード実装テーブルを更新する。また、処理規則追加部２０９は、ノード選択部２０８が選択したノード１０について、ルート特定部２０５が特定したルーティングの処理規則を追加する必要があるノード１０それぞれに、ルーティングの処理規則を追加し（ステップＳ５１３）、記憶部２０３が記憶するノード実装テーブルを更新する。
【００４１】
以上に示す処理規則配置処理により、ネットワークに新たなノード１０を追加することなく、当該ネットワークを構成するノード１０に過負荷が生じないよう、処理規則を追加することができる。
【００４２】
次に、ネットワークの監視時の動作について説明する。
図７は、本発明の一実施形態によるノード管理装置２０におけるネットワーク監視時の動作を示すフローチャートである。
ノード管理装置２０は、一定時間ごとに、以下に示すステップＳ１１〜Ｓ１９の動作を繰り返し実行する（ステップＳ１０）。
【００４３】
まず、ノード管理装置２０のノード監視部２１１は、ネットワークの全てのノード１０から、当該ノード１０の負荷を取得する（ステップＳ１１）。次に、ノード監視部２１１は、ノード１０ごとに、記憶部２０３が記憶する負荷閾値テーブルに当該ノード１０に関連付けられた負荷上限値と、ステップＳ１１で取得した負荷とを比較し、負荷上限値を超えるノード１０が存在するか否かを判定する（ステップＳ１２）。ノード監視部２１１は、負荷上限値を超えるノード１０が存在しないと判定した場合（ステップＳ１２：ＮＯ）、ステップＳ１０に戻り、一定時間後の間、処理を行わずに待機する。
【００４４】
他方、ノード監視部２１１が、負荷上限値を超えるノード１０が存在すると判定した場合（ステップＳ１２：ＹＥＳ）、ノード管理装置２０は、負荷上限値を超えるノード１０を１つずつ選択し、それぞれについて以下に示すステップＳ１４〜Ｓ１９の動作を繰り返し実行する（ステップＳ１３）。
【００４５】
まず、ノード監視部２１１は、ステップＳ１３で選択したノード１０から、当該ノード１０が実行する処理規則ごとに、当該処理規則によって処理されるトラフィック量を取得する（ステップＳ１４）。次に、処理規則除外部２１２は、ステップＳ１３で選択したノード１０から、当該ノード１０が実行する処理規則ごとに、記憶部２０３が記憶するノード実装テーブルから、当該処理規則の処理規則種別を読み出す（ステップＳ１５）。
【００４６】
次に、処理規則除外部２１２は、記憶部２０３が記憶する処理規則負荷テーブルから、ステップＳ１３で選択したノード１０が実行する処理規則ごとの負荷を読み出す（ステップＳ１６）。具体的には、処理規則除外部２１２は、処理規則負荷テーブルから、ステップＳ１５で取得した処理規則種別ごとに、ステップＳ１３で選択したノード１０、当該処理規則、及びステップＳ１４でノード監視部２１１が取得した当該処理規則についてのトラフィック量の組み合わせに関連付けられた負荷を読み出す。
【００４７】
次に、処理規則除外部２１２は、ステップＳ１６で読み出した負荷が最も大きい処理規則を、除外すべき処理規則として特定し、ステップＳ１３で選択したノード１０に、当該処理規則を削除する処理規則制御パケットを送信することで、当該ノード１０から処理規則を除外し（ステップＳ１７）、記憶部２０３が記憶するノード実装テーブルを更新する。
【００４８】
次に、処理規則決定部２０２は、処理規則除外部２１２が決定した処理規則を、ネットワークに設定する処理規則に決定する。ここで、ノード抽出部２０４は、ステップＳ１３で選択されたノード１０を、処理規則を追加するノード１０の探索の基点となる初期ノードに決定する（ステップＳ１８）。これにより、処理規則の再配置によるネットワーク構成の変化を最小限にすることができる。そして、ノード管理装置２０は、初期ホップ数を１として処理規則配置処理を実行することで、処理規則の追加を行う（ステップＳ１９）。初期ホップ数を１とすることで、処理規則を除外したノード１０を処理規則配置処理の探索の対象から外すことができる。
【００４９】
ノード管理装置２０は、上記ステップＳ１４〜Ｓ１９の処理を、負荷上限値を超える全てのノード１０について実行すると、ステップＳ１０に戻り、一定時間後の間、処理を行わずに待機する。
このように、本実施形態によれば、ネットワークに新たなノード１０を追加することなく、当該ネットワークを構成するノード１０に過負荷が生じないよう、処理規則の配置を変更することができる。
【００５０】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、処理規則負荷テーブルが、ノード１０と処理規則種別とトラフィック量の組み合わせに関連付けて負荷を格納する場合について説明したが、これに限られず、負荷をノード１０と処理規則種別とその他のノード１０の状態情報に関連付けて格納するようにしても良い。例えば、処理規則負荷テーブルは、ノード１０と処理規則種別とノード１０の現在の負荷に関連付けて、処理規則の実行による負荷を格納しても良い。また、処理規則負荷テーブルは、ノード１０と処理規則種別とトラフィック量とノード１０の現在の負荷に関連付けて、処理規則の実行による負荷を格納しても良い。また、処理規則負荷テーブルは、ノード１０と処理規則種別のみに関連付けて、処理規則の実行による負荷を格納しても良い。
【００５１】
また、本実施形態では、処理規則配置処理の際、ルート特定部２０５がルートを特定した後、当該ルート上に負荷が上限値を超えるノード１０が存在する場合（ステップＳ５０６）に、ステップＳ５０２に戻り、次のノード１０を選択するものについて説明したが、これに限られない。例えば、ルート特定部２０５がルートを特定した後、当該ルート上に負荷が上限値を超えるノード１０が存在する場合に、ルート特定部２０５が同一のノード１０とサーバ装置３０とを接続する他のルートを特定して、再度ステップＳ５０７の判定を行うようにしても良い。但し、同一のノード１０とサーバ装置３０とを接続するルートの数は多量となるため、ルートの再探索を実行する上限回数を予め定めておくことが好ましい。
【００５２】
なお、本実施形態では、ネットワークの構成として、ノード１０が７台、ノード管理装置２０が１台、サーバ装置３０が２台である場合について説明したが、ノード１０、ノード管理装置２０、サーバ装置３０の個数はこれに限られない。なお、ノード管理装置２０を複数備える場合、予めノード管理装置２０毎に管理区間を定義しておき、それぞれのノード管理装置２０が管理区間内のノード１０の制御を行い、ノード管理装置２０同士で情報同期をとることで、本実施形態と同様の処理を行うことができる。
【００５３】
上述のノード管理装置２０は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００５４】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００５５】
１０…ノード  １０１…処理規則記憶部  １０２…パケット受信部  １０３…パケット解析部  １０４…パケット処理部  ２０…ノード管理装置  ２０１…入力部  ２０２…処理規則決定部  ２０３…記憶部  ２０４…ノード抽出部  ２０５…ルート特定部  ２０６…ルーティング負荷判定部  ２０７…帯域総数算出部  ２０８…ノード選択部  ２０９…処理規則追加部  ２１０…ルーティング規則追加部  ２１１…ノード監視部  ２１２…処理規則除外部  ３０…サーバ装置
【図１】
2014007438.tif 000003
【図２】
2014007438.tif 000004
【図３】
2014007438.tif 000005
【図４】
2014007438.tif 000006
【図５】
2014007438.tif 000007
【図６】
2014007438.tif 000008
【図７】
2014007438.tif 000009