(58)【調査した分野】(Int.Cl.,DB名)
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置であって、
フィルタリング、ファイアウォールまたはロードバランシングに係る処理規則を、前記ネットワークに新たに設定する処理規則として決定する処理規則決定部と、
前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部と、
前記ノード抽出部が抽出したノードの中から1つのノードを選択するノード選択部と、
前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部と、
前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部と
を備えることを特徴とするノード管理装置。
前記ノード抽出部が抽出したノードの中から、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加した場合に、何れかのノードにおいて負荷が所定の閾値を超えるものがあるか否かを判定するルーティング負荷判定部を備え、
前記ノード選択部は、前記ルーティング負荷判定部が、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合にも何れのノードにおいても負荷が所定の閾値を超えないと判定したものを選択する
ことを特徴とする請求項1または請求項2に記載のノード管理装置。
前記ノード抽出部が抽出したそれぞれのノードについて、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合における帯域総数を算出する帯域総数算出部を備え、
前記ノード選択部は、前記帯域総数算出部が算出した帯域総数が最も小さいものを選択する
ことを特徴とする請求項1から請求項3の何れか1項に記載のノード管理装置。
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を用いたノード管理方法であって、
処理規則決定部は、フィルタリング、ファイアウォールまたはロードバランシングに係る処理規則を、前記ネットワークに新たに設定する処理規則として決定し、
ノード抽出部は、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出し、
ノード選択部は、前記ノード抽出部が抽出したノードの中から1つのノードを選択し、
処理規則追加部は、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加し、
ルーティング規則追加部は、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加する
ことを特徴とするノード管理方法。
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を、
フィルタリング、ファイアウォールまたはロードバランシングに係る処理規則を、前記ネットワークに新たに設定する処理規則として決定する処理規則決定部、
前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部、
前記ノード抽出部が抽出したノードの中から1つのノードを選択するノード選択部、
前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部、
前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部
として機能させるためのプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特定の機能を有するノードが特定の層に配置される場合、ノード間で負荷の高低にばらつきが生じる。そのため、データセンタ全体のノードのリソースを柔軟に利用することができず、利用効率の低下や、不要な投資の懸念がある。例えば、コア層に配置されたルータ機能を有するノードの負荷が高く、ディストリビューション層に配置されたノードの負荷が低い場合、コア層にルータ機能を有する新たなノードを配置する必要がある。この場合、ディストリビューション層のノードの利用効率が低下し、かつコア層に新たなノードを設置するための投資が必要となる。
【0006】
本発明の目的は、ネットワークを構成するノードの利用効率の向上を図ることで不要なノードの追加を防ぐことにある。
【課題を解決するための手段】
【0007】
本発明は上記の課題を解決するためになされたものであり、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置であって、
フィルタリング、ファイアウォールまたはロードバランシングに係る処理規則を、前記ネットワークに新たに設定する処理規則
として決定する処理規則決定部と、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部と、前記ノード抽出部が抽出したノードの中から1つのノードを選択するノード選択部と、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部と、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部とを備えることを特徴とする。
【0008】
また、本発明においては、
パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置であって、前記ネットワークに新たに設定する処理規則を決定する処理規則決定部と、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部と、前記ノード抽出部が抽出したノードの中から1つのノードを選択するノード選択部と、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部と、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部とを備え、前記ノード選択部は、前記処理規則決定部が決定した処理規則を追加するノードの探索の基点として決定されたノードである初期ノードからのホップ数が最も小さいものを選択することを特徴とする。
【0009】
また、本発明においては、前記ノード抽出部が抽出したノードの中から、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加した場合に、何れかのノードにおいて負荷が所定の閾値を超えないものを抽出するか否かを判定するルーティング負荷判定部を備え、前記ノード選択部は、前記ルーティング負荷判定部が、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合にも何れのノードにおいても負荷が所定の閾値を超えないと判定したものを選択することを特徴とする。
【0010】
また、本発明においては、前記ノード抽出部が抽出したそれぞれのノードについて、当該ノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を追加した場合における帯域総数を算出する帯域総数算出部を備え、前記ノード選択部は、前記帯域総数算出部が算出した帯域総数が最も小さいものを選択することを特徴とする。
【0011】
また、本発明においては、前記複数のノードの中から、負荷が前記閾値を超えるものを特定するノード監視部と、前記ノード監視部が特定したノードの処理規則のうち、実行による負荷が最も大きいものを当該ノードから除外する処理規則除外部とを備え、前記処理規則決定部は、前記処理規則除外部が除外した処理規則を、前記ネットワークに新たに設定する処理規則とすることを特徴とする。
【0012】
また、本発明は、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を用いたノード管理方法であって、処理規則決定部は、
フィルタリング、ファイアウォールまたはロードバランシングに係る処理規則を、前記ネットワークに新たに設定する処理規則
として決定し、ノード抽出部は、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出し、ノード選択部は、前記ノード抽出部が抽出したノードの中から1つのノードを選択し、処理規則追加部は、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加し、ルーティング規則追加部は、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加することを特徴とする。
また、本発明は、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を用いたノード管理方法であって、処理規則決定部は、前記ネットワークに新たに設定する処理規則を決定し、ノード抽出部は、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出し、ノード選択部は、前記ノード抽出部が抽出したノードの中から、前記処理規則決定部が決定した処理規則を追加するノードの探索の基点として決定されたノードである初期ノードからのホップ数が最も小さい1つのノードを選択し、処理規則追加部は、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加し、ルーティング規則追加部は、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加することを特徴とする。
【0013】
また、本発明は、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を、
フィルタリング、ファイアウォールまたはロードバランシングに係る処理規則を、前記ネットワークに新たに設定する処理規則
として決定する処理規則決定部、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部、前記ノード抽出部が抽出したノードの中から1つのノードを選択するノード選択部、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部として機能させるためのプログラムである。
また、本発明は、パケットに適用する処理と前記処理を適用するパケットを特定するための照合規則とを対応付けた処理規則に従って受信したパケットを処理する複数のノードからなるネットワークにおいて、前記ノードそれぞれの前記処理規則を管理するノード管理装置を、前記ネットワークに新たに設定する処理規則を決定する処理規則決定部、前記複数のノードの中から、前記処理規則決定部が決定した処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを抽出するノード抽出部、前記ノード抽出部が抽出したノードの中から、前記処理規則決定部が決定した処理規則を追加するノードの探索の基点として決定されたノードである初期ノードからのホップ数が最も小さい1つのノードを選択するノード選択部、前記ノード選択部が選択したノードに前記処理規則決定部が決定した処理規則を追加する処理規則追加部、前記ノード選択部が選択したノードと前記ネットワークに接続される各サーバ装置とをルーティングする処理規則を各ノードに追加するルーティング規則追加部として機能させるためのプログラムである。
【発明の効果】
【0014】
本発明によれば、処理規則を追加するノードとして、処理規則を実行することができ、かつ当該処理規則を追加した場合の負荷が所定の閾値を超えないものを選択し、他のノードに、当該処理規則を実行するノードへルーティングするための処理規則を追加する。これにより、ネットワークに新たなノードを追加することなく、当該ネットワークを動的に構成することで、ノードを効率的に利用することができる。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1は、本発明の一実施形態によるノード管理装置20を備えるネットワークを示す概略図である。
ネットワークは、複数のノード10と、ノード管理装置20と、複数のサーバ装置30とを備える。
【0017】
ノード10は、受信したパケットを解析し、自装置が記憶する処理規則においてその解析結果に対応する処理を適用する。処理規則とは、パケットに適用する処理とその処理を適用するパケットを特定するための照合規則とを対応付けたものである。パケットに適用する処理の例としては、他の装置へ転送する処理や、パケットを破棄する処理などが挙げられる。また、照合規則の例としては、パケットのIPアドレス、MACアドレス、ポート番号、ペイロードの情報などのパケット情報の組み合わせが挙げられる。
なお、ノード10としては、オープンフロースイッチを用いることができるが、これに限られず、例えばパケットのヘッダの内容に加えてペイロードの内容まで解析して処理を行うネットワーク機器を用いても良い。
【0018】
ノード管理装置20は、ノード10を管理する。具体的には、ノード管理装置20は、ノード10に処理規則制御パケットを送信することで、ノード10の処理規則の追加・削除を行う。また、ノード管理装置20は、ノード10の状態(例えばトラフィックなどの情報)をノード10それぞれから取得することで、ノード10を監視し、負荷が高いノード10の処理規則を他のノード10に再配置する。なお、ノード管理装置20としては、オープンフロープロトコルでノード10と通信するオープンフローコントローラを用いることができるが、これに限られず、オープンフローコントローラの機能をインクルードした上位機器を用いても良い。
サーバ装置30は、ノード10を介して他の装置とパケットの授受を行う。
【0019】
なお、ノード10は、1つまたは複数のリンクにより、他のノード10、ノード管理装置20、サーバ装置30と接続されることで、ネットワークを構成している。ノード管理装置20は、リンクにより1つのノード10と接続されるが、ノード10に接続されたリンクを辿ることで、全てのノード10にアクセスすることができる。なお、ノード管理装置20の配置場所は
図1の例に限られず、少なくとも何れかのノード10とリンクを介して接続していれば、どこに配置されていても良い。また、ノード管理装置20は、リンクにより複数のノード10と直接接続されていても良い。
【0020】
図2は、本発明の一実施形態によるノード10の構成を示す概略ブロック図である。
ノード10は、処理規則記憶部101、パケット受信部102、パケット解析部103、パケット処理部104を備える。
処理規則記憶部101は、処理規則を記憶する。
パケット受信部102は、リンクで接続された他のノード10、ノード管理装置20、またはサーバ装置30からパケットを受信する。
パケット解析部103は、パケット受信部102が受信したパケットを解析し、IPアドレス、MACアドレス、ポート番号などのパケット情報を取得する。
パケット処理部104は、処理規則記憶部101が記憶する処理規則の照合規則とパケット解析部103が解析したパケット情報とを比較し、合致する照合規則を有する処理規則がある場合、当該処理規則が示す処理を実行する。パケットの処理としては、上述したように、転送や破棄などが挙げられる。
【0021】
なお、パケット処理部104は、ノード管理装置20から自装置宛の処理規則制御パケットを受信した場合、当該処理規則制御パケットに従って処理規則記憶部101が記憶する処理規則の追加・削除を行う。
【0022】
図3は、本発明の一実施形態によるノード管理装置20の構成を示す概略ブロック図である。
ノード管理装置20は、入力部201、処理規則決定部202、記憶部203、ノード抽出部204、ルート特定部205、ルーティング負荷判定部206、帯域総数算出部207、ノード選択部208、処理規則追加部209、ルーティング規則追加部210、ノード監視部211、処理規則除外部212を備える。
【0023】
入力部201は、ネットワークの管理者から、ネットワークに追加すべき処理規則の入力を受け付ける。
処理規則決定部202は、入力部201が入力を受け付けた処理規則、または処理規則除外部212がノード10から除外した処理規則を、ネットワークに新たに設定する処理規則に決定する。
【0024】
記憶部203は、処理規則を配置するノード10を決定する際に用いる情報を記憶する。具体的には、記憶部203は、負荷閾値テーブル、リンクテーブル、処理規則種別テーブル、処理規則負荷テーブル、ノード実装テーブルを記憶する。
図4は、記憶部203が記憶するテーブルの例を示す図である。
負荷閾値テーブルは、
図4(A)に示すように、ノード10ごとに、当該ノード10に許容される負荷の上限値(閾値)を関連付けて格納する。
リンクテーブルは、
図4(B)に示すように、ノード10ごとに、当該ノード10がリンクにより接続されているノード10を格納する。
処理規則種別テーブルは、
図4(C)に示すように、ノード10ごとに、当該ノード10が実行することができる処理規則の種別を関連付けて格納する。処理規則の種別としては、例えば、ルーティング、フィルタリング、ファイアウォール、ロードバランシングなどが挙げられる。
処理規則負荷テーブルは、
図4(D)に示すように、ノード10と処理規則の種別とトラフィック量の組み合わせごとに、当該条件におけるノード10の負荷の増分を関連付けて格納する。なお、当該増分は、ノード10の負荷を予め計測することや、ノード10の機種情報から推定することにより特定しておく。
ノード実装テーブルは、
図4(E)に示すように、ノード10ごとに、当該ノード10に実装されている処理規則と、当該処理規則の種別とを関連付けて格納する。
【0025】
ノード抽出部204は、記憶部203が記憶するリンクテーブルに基づいて、処理規則を追加するノード10の候補を抽出する。また、ノード抽出部204は、抽出した候補から、処理規則を追加した場合に負荷が上限値を超えないノード10のみを、処理規則を追加するノード10の候補として絞り込む。
ルート特定部205は、ノード抽出部204が抽出したノード10ごとに、当該ノード10と各サーバ装置30とをルーティングするルートを特定し、当該ルート上のノード10を、ルーティングの処理規則を追加する必要があるノード10として特定する。
【0026】
ルーティング負荷判定部206は、ルート特定部205が特定したノード10にルーティングの処理規則を追加した場合に、何れかのノード10において負荷が上限値を超えるものがあるか否かを、ノード抽出部204が抽出したノード10ごとに判定する。
帯域総数算出部207は、ルート特定部205が特定したノード10と記憶部203が記憶するリンクテーブルとに基づいて、ルーティングの処理規則を追加した場合の帯域総数を、ノード抽出部204が抽出したノード10ごとに算出する。
【0027】
ノード選択部208は、ノード抽出部204が抽出したノード10のうち、ルーティング負荷判定部206が、ルーティングの処理規則を各ノード10に追加した場合に何れのノード10においても負荷が上限値を超えないと判定したノード10であって、帯域総数算出部207が算出した帯域総数が最小のものを、処理規則を追加すべきノード10として選択する。
処理規則追加部209は、ノード選択部208が選択したノード10に、処理規則決定部202が決定した処理規則を追加する。
ルーティング規則追加部210は、ノード選択部208が選択したノード10と各サーバ装置30とをルーティングするルートを、ルート特定部205から取得し、当該ルート上のノード10に、ルーティングの処理規則を追加する。
【0028】
ノード監視部211は、各ノード10の現在の負荷及びトラフィック量を監視する。
処理規則除外部212は、ノード監視部211が監視するノード10のうち、負荷が上限値を超えるノード10から、処理規則を除外する。
【0029】
まず、ネットワークに処理規則を新たに追加する際の動作について説明する。
図5は、本発明の一実施形態によるノード管理装置20における処理規則追加時の動作を示すフローチャートである。
利用者は、ネットワークに追加する処理規則を、外部ネットワークからのパケットに対して処理を実行する順に、ノード管理装置20に入力する。例えば、外部ネットワークからのパケットに対して、まずプロトコル変換処理を行い、次にファイアウォール処理を行い、次にフィルタリング処理を行うことを想定している場合、プロトコル変換処理、ファイアウォール処理、フィルタリング処理の順に、処理規則を入力する。
【0030】
利用者による処理規則の入力により、ノード管理装置20の入力部201は、当該処理規則の入力を受け付ける(ステップS1)。次に、処理規則決定部202は、入力部201が入力を受け付けた処理規則を、ネットワークに新たに設定する処理規則に決定し、当該処理規則の種別を特定する(ステップS2)。ここで、ノード抽出部204は、予め定められたスタートポイントのノード10を、処理規則を追加するノード10の探索の基点となる初期ノードに決定する(ステップS3)。スタートポイントのノード10としては、外部ネットワークに接続されているノード10が設定されていることが好ましい。これにより、外部ネットワークとの通信の際のノード10のホップ数を少なくすることができる。
【0031】
次に、ノード管理装置20は、処理規則決定部202がネットワークに追加すると決定した処理規則ごとに、以下に示すステップS5、S6の処理を行う(ステップS4)。まず、ノード管理装置20は、初期ホップ数を0として処理規則配置処理を実行することで、処理規則の追加を行う(ステップS5)。処理規則配置処理とは、処理規則を追加すべきノード10を特定し、当該ノード10に処理規則を追加する処理である。また、初期ホップ数とは、処理規則を追加するノード10の候補の初回抽出時に抽出対象となるノード10の初期ノードからのホップ数をいう。次に、ノード管理装置20は、ステップS5において処理規則の追加を行ったノード10を次の初期ノードに決定する(ステップS6)。
そして、ノード管理装置20は、処理規則決定部202がネットワークに追加すると決定した全ての処理規則についてステップS5、S6の処理を行うと、処理を終了する。
【0032】
図6は、処理規則配置処理の具体的な動作を示すフローチャートである。
まず、ノード抽出部204は、処理規則決定部202がネットワークに追加すると決定した1つの処理規則を追加すべきノード10の候補として、記憶部203が記憶するリンクテーブルを参照して初期ノードから設定されたホップ数だけ離れたノード10を抽出し、内部メモリの確認リストに記録する(ステップS501)。確認リストとは、処理規則を追加することができるか否かを確認する対象となるノード10を格納するリストである。
【0033】
次に、ノード抽出部204は、確認リストに記憶されたノード10を1つずつ選択し、それぞれについて以下のステップS502〜S508の処理を実行する(ステップS502)。
まず、ノード抽出部204は、記憶部203が記憶する処理規則種別テーブルを参照し、ステップS502で選択されたノード10に関連付けて、処理規則決定部202がネットワークに追加すると決定した処理規則が格納されているか否かを判定する。つまり、ノード抽出部204は、ステップS502で選択されたノード10が処理規則を実行することができるノード10であるか否かを判定する(ステップS503)。ノード抽出部204は、ステップS502で選択されたノード10が処理規則を実行することができないノード10であると判定した場合(ステップS503:NO)、ステップS502に戻り、次のノード10の選択を行う。
【0034】
他方、ノード抽出部204は、ステップS502で選択されたノード10が処理規則を実行することができるノード10であると判定した場合(ステップS503:YES)、以下の処理を行う。すなわち、ノード抽出部204は、記憶部203が記憶する処理規則負荷テーブルから、ステップS502で選択されたノード10、処理規則決定部202が決定した処理規則の種別及び当該ノード10の現在のトラフィック量に関連付けられた負荷を読み出す。なお、ネットワークに処理規則を初めて設定する場合においては、ノード10にトラフィックがないため、トラフィック量としては予め設定される予想トラフィック量を用いるものとする。次に、ノード抽出部204は、当該ノード10の現在の負荷に読み出した負荷を加算する。そして、ノード抽出部204は、記憶部203が記憶する負荷閾値テーブルを参照し、算出した負荷が当該ノード10に関連付けられた負荷上限値を超えるか否かを判定する。
【0035】
つまり、ノード抽出部204は、ステップS502で選択されたノード10に処理規則決定部202が決定した処理規則を追加した場合に、そのノード10の負荷が上限値を超えるか否かを判定する(ステップS504)。ノード抽出部204は、ステップS502で選択されたノード10に処理規則決定部202が決定した処理規則を追加した場合に、そのノード10の負荷が上限値を超えると判定した場合(ステップS504:YES)、ステップS502に戻り、次のノード10の選択を行う。
【0036】
他方、ノード抽出部204は、ステップS502で選択されたノード10に処理規則決定部202が決定した処理規則を追加しても、そのノード10の負荷が上限値を超えないと判定した場合(ステップS504:NO)、ルート特定部205は、当該ノード10と各サーバ装置30とをルーティングするルートを特定し、当該ルート上のノード10を、ルーティングの処理規則を追加する必要があるノード10として特定する(ステップS505)。次に、ルーティング負荷判定部206は、ステップS505で特定されたルーティングの処理規則を追加する必要があるノード10にルーティングの処理規則を追加した場合に、いずれかのノード10の負荷が上限値を超えるか否かを判定する(ステップS506)。
【0037】
ルーティング負荷判定部206は、いずれかのノード10の負荷が上限値を超えると判定した場合(ステップS506:YES)、ステップS502に戻り、次のノード10の選択を行う。他方、ルーティング負荷判定部206が、いずれのノード10においても負荷が上限値を超えないと判定した場合(ステップS506:NO)、次に、帯域総数算出部207は、ルート特定部205が特定したルートの帯域総数を算出する(ステップS507)。具体的には、帯域総数は、ルート特定部205が特定したルーティングの処理規則を追加する必要があるノード10の使用ポート数の使用帯域の総和を、帯域総数として算出する。
【0038】
そして、ノード選択部208は、ステップS502で選択されたノード10を、帯域総数算出部207が算出した帯域総数に関連付けて、内部メモリの候補リストに記録して(ステップS508)、ステップS502に戻り、次のノード10の選択を行う。候補リストとは、処理規則を追加するノード10の候補となるノード10を格納するリストである。
【0039】
確認リストに記憶された全てのノード10についてステップS502〜S508の処理が完了すると、ノード選択部208は、内部メモリの候補リストに1つ以上ノード10が記録されているか否かを判定する(ステップS509)。ノード選択部208が、内部メモリの候補リストにノード10が1つも記録されていないと判定した場合(ステップS509:NO)、ノード抽出部204は、ホップ数に1を加算して(ステップS510)ステップS501に戻り、ノード10の抽出を行う。
【0040】
他方、ノード選択部208は、内部メモリの候補リストにノード10が1つ以上記録されていると判定した場合(ステップS509:YES)、候補リストに記録されたノード10のうち、関連付けられた帯域総数が最小のものを、処理規則の追加対象のノード10として選択する(ステップS511)。次に、処理規則追加部209は、ノード選択部208が選択したノード10に、処理規則決定部202が決定した処理規則を追加する処理規則制御パケットを送信することで、当該ノード10に処理規則を追加し(ステップS512)、記憶部203が記憶するノード実装テーブルを更新する。また、処理規則追加部209は、ノード選択部208が選択したノード10について、ルート特定部205が特定したルーティングの処理規則を追加する必要があるノード10それぞれに、ルーティングの処理規則を追加し(ステップS513)、記憶部203が記憶するノード実装テーブルを更新する。
【0041】
以上に示す処理規則配置処理により、ネットワークに新たなノード10を追加することなく、当該ネットワークを構成するノード10に過負荷が生じないよう、処理規則を追加することができる。
【0042】
次に、ネットワークの監視時の動作について説明する。
図7は、本発明の一実施形態によるノード管理装置20におけるネットワーク監視時の動作を示すフローチャートである。
ノード管理装置20は、一定時間ごとに、以下に示すステップS11〜S19の動作を繰り返し実行する(ステップS10)。
【0043】
まず、ノード管理装置20のノード監視部211は、ネットワークの全てのノード10から、当該ノード10の負荷を取得する(ステップS11)。次に、ノード監視部211は、ノード10ごとに、記憶部203が記憶する負荷閾値テーブルに当該ノード10に関連付けられた負荷上限値と、ステップS11で取得した負荷とを比較し、負荷上限値を超えるノード10が存在するか否かを判定する(ステップS12)。ノード監視部211は、負荷上限値を超えるノード10が存在しないと判定した場合(ステップS12:NO)、ステップS10に戻り、一定時間後の間、処理を行わずに待機する。
【0044】
他方、ノード監視部211が、負荷上限値を超えるノード10が存在すると判定した場合(ステップS12:YES)、ノード管理装置20は、負荷上限値を超えるノード10を1つずつ選択し、それぞれについて以下に示すステップS14〜S19の動作を繰り返し実行する(ステップS13)。
【0045】
まず、ノード監視部211は、ステップS13で選択したノード10から、当該ノード10が実行する処理規則ごとに、当該処理規則によって処理されるトラフィック量を取得する(ステップS14)。次に、処理規則除外部212は、ステップS13で選択したノード10から、当該ノード10が実行する処理規則ごとに、記憶部203が記憶するノード実装テーブルから、当該処理規則の処理規則種別を読み出す(ステップS15)。
【0046】
次に、処理規則除外部212は、記憶部203が記憶する処理規則負荷テーブルから、ステップS13で選択したノード10が実行する処理規則ごとの負荷を読み出す(ステップS16)。具体的には、処理規則除外部212は、処理規則負荷テーブルから、ステップS15で取得した処理規則種別ごとに、ステップS13で選択したノード10、当該処理規則、及びステップS14でノード監視部211が取得した当該処理規則についてのトラフィック量の組み合わせに関連付けられた負荷を読み出す。
【0047】
次に、処理規則除外部212は、ステップS16で読み出した負荷が最も大きい処理規則を、除外すべき処理規則として特定し、ステップS13で選択したノード10に、当該処理規則を削除する処理規則制御パケットを送信することで、当該ノード10から処理規則を除外し(ステップS17)、記憶部203が記憶するノード実装テーブルを更新する。
【0048】
次に、処理規則決定部202は、処理規則除外部212が決定した処理規則を、ネットワークに設定する処理規則に決定する。ここで、ノード抽出部204は、ステップS13で選択されたノード10を、処理規則を追加するノード10の探索の基点となる初期ノードに決定する(ステップS18)。これにより、処理規則の再配置によるネットワーク構成の変化を最小限にすることができる。そして、ノード管理装置20は、初期ホップ数を1として処理規則配置処理を実行することで、処理規則の追加を行う(ステップS19)。初期ホップ数を1とすることで、処理規則を除外したノード10を処理規則配置処理の探索の対象から外すことができる。
【0049】
ノード管理装置20は、上記ステップS14〜S19の処理を、負荷上限値を超える全てのノード10について実行すると、ステップS10に戻り、一定時間後の間、処理を行わずに待機する。
このように、本実施形態によれば、ネットワークに新たなノード10を追加することなく、当該ネットワークを構成するノード10に過負荷が生じないよう、処理規則の配置を変更することができる。
【0050】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、処理規則負荷テーブルが、ノード10と処理規則種別とトラフィック量の組み合わせに関連付けて負荷を格納する場合について説明したが、これに限られず、負荷をノード10と処理規則種別とその他のノード10の状態情報に関連付けて格納するようにしても良い。例えば、処理規則負荷テーブルは、ノード10と処理規則種別とノード10の現在の負荷に関連付けて、処理規則の実行による負荷を格納しても良い。また、処理規則負荷テーブルは、ノード10と処理規則種別とトラフィック量とノード10の現在の負荷に関連付けて、処理規則の実行による負荷を格納しても良い。また、処理規則負荷テーブルは、ノード10と処理規則種別のみに関連付けて、処理規則の実行による負荷を格納しても良い。
【0051】
また、本実施形態では、処理規則配置処理の際、ルート特定部205がルートを特定した後、当該ルート上に負荷が上限値を超えるノード10が存在する場合(ステップS506)に、ステップS502に戻り、次のノード10を選択するものについて説明したが、これに限られない。例えば、ルート特定部205がルートを特定した後、当該ルート上に負荷が上限値を超えるノード10が存在する場合に、ルート特定部205が同一のノード10とサーバ装置30とを接続する他のルートを特定して、再度ステップS507の判定を行うようにしても良い。但し、同一のノード10とサーバ装置30とを接続するルートの数は多量となるため、ルートの再探索を実行する上限回数を予め定めておくことが好ましい。
【0052】
なお、本実施形態では、ネットワークの構成として、ノード10が7台、ノード管理装置20が1台、サーバ装置30が2台である場合について説明したが、ノード10、ノード管理装置20、サーバ装置30の個数はこれに限られない。なお、ノード管理装置20を複数備える場合、予めノード管理装置20毎に管理区間を定義しておき、それぞれのノード管理装置20が管理区間内のノード10の制御を行い、ノード管理装置20同士で情報同期をとることで、本実施形態と同様の処理を行うことができる。
【0053】
上述のノード管理装置20は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0054】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。