(57)【要約】【課題】公衆網内に形成された仮想的な専用通信路を介して暗号化パケットを通信する際に適切なＣＰＵリソースを確保することができるゲートウェイ装置を提供する。【解決手段】暗号化処理を含む演算処理を監視して処理負荷値を算出し、当該処理負荷値と所定の設定判定値とを比較して得られた結果に応じて暗号化アルゴリズムを選択してこれを設定すると共に通信レートを設定する。【選択図】図２
2010220038.tif 000002
【特許請求の範囲】
【請求項１】
通信端末からのトンネル形成指令に応じて通信網内にトンネルを形成するトンネル形成部と、前記通信端末から発せられたパケットに対して現在設定暗号化アルゴリズムに従って暗号化処理を施して暗号化パケットを得る暗号化部と、前記暗号化パケットを前記トンネルを介して中継する中継部と、を含むゲートウェイ装置であって、
少なくとも１つの利用可能暗号化アルゴリズムを記憶するアルゴリズム記憶手段と、
前記暗号化処理を含む演算処理を監視して現在処理負荷値を算出する負荷監視部と、
前記現在処理負荷値と設定判定値とを比較して得られた結果に応じて前記利用可能暗号化アルゴリズムのうちの１を選択してこれを前記現在設定暗号化アルゴリズムとして設定すると共に前記暗号化パケットの通信レートを設定する制御部と、を含むことを特徴とするゲートウェイ装置。
【請求項２】
前記制御部は、前記設定判定値である上限判定値を前記現在処理負荷値が上回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの暗号化処理負荷が比較的小さい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定することを特徴とする請求項１に記載のゲートウェイ装置。
【請求項３】
前記制御部は、前記設定判定値である上限判定値を前記現在処理負荷値が上回っていると判別した場合に、前記通信レートを低下させることを特徴とする請求項１に記載のゲートウェイ装置。
【請求項４】
前記制御部は、前記設定判定値である上限判定値を前記現在処理負荷値が上回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの暗号化処理負荷が比較的小さい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定し且つ前記通信レートを低下させることを特徴とする請求項１に記載のゲートウェイ装置。
【請求項５】
前記制御部は、前記設定判定値である下限判定値を前記現在処理負荷値が下回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの暗号化処理負荷が比較的大きい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定することを特徴とする請求項１に記載のゲートウェイ装置。
【請求項６】
前記制御部は、前記設定判定値である下限判定値を前記現在処理負荷値が下回っていると判別した場合に、前記通信レートを上昇させることを特徴とする請求項１に記載のゲートウェイ装置。
【請求項７】
前記制御部は、前記設定判定値である下限判定値を前記現在処理負荷値が下回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの暗号化処理負荷が比較的大きい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定し且つ前記通信レートを上昇させることを特徴とする請求項１に記載のゲートウェイ装置。
【請求項８】
前記トンネル形成部は、前記現在設定暗号化アルゴリズム及び前記通信レートを設定変更しても前記現在処理負荷値が上限判定値を下回らない旨の前記制御部による判別結果に応じて前記トンネルを削除するトンネル削除手段を更に含むことを特徴とする請求項１に記載のゲートウェイ装置。
【請求項９】
前記トンネル形成部は、前記現在処理負荷値が再形成判定値を下回っている旨の前記制御部による判別結果に応じて当該削除されたトンネルを再形成するトンネル再形成手段を更に含むことを特徴とする請求項８に記載のゲートウェイ装置。
【請求項１０】
少なくとも１の通信端末からのトンネル形成指令毎に通信網内にトンネルを形成するトンネル形成部と、前記通信端末から発せられたパケットに対して前記トンネル毎の現在設定暗号化アルゴリズムに従って暗号化処理を施して暗号化パケットを得る暗号化部と、前記暗号化パケットを前記トンネルのうちの前記トンネル形成指令に対応する１を介して中継する中継部と、を含むゲートウェイ装置であって、
前記トンネル毎に少なくとも１の利用可能暗号化アルゴリズムを記憶するアルゴリズム記憶手段と、
前記暗号化処理を含む演算処理を監視して現在処理負荷値を算出する負荷監視部と、
前記現在処理負荷値と設定判定値とを比較して得られた結果に応じて前記トンネル毎に前記利用可能暗号化アルゴリズムのうちの１を選択してこれを前記現在設定暗号化アルゴリズムとして設定すると共に前記暗号化パケットの通信レートを設定する制御部と、を含むことを特徴とするゲートウェイ装置。
【請求項１１】
前記トンネル毎に優先度を設定する優先度設定手段を更に含み、
前記制御部は、前記トンネルのうちの前記優先度が比較的低い１についての前記現在設定暗号化アルゴリズム及び前記通信レートを設定することを特徴とする請求項１０に記載のゲートウェイ装置。
【請求項１２】
前記制御部は、前記設定判定値である上限判定値を前記現在処理負荷値が上回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの暗号化処理負荷が比較的小さい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定することを特徴とする請求項１０又は１１に記載のゲートウェイ装置。
【請求項１３】
前記制御部は、前記設定判定値である上限判定値を前記現在処理負荷値が上回っていると判別した場合に、前記通信レートを低下させることを特徴とする請求項１０又は１１に記載のゲートウェイ装置。
【請求項１４】
前記制御部は、前記設定判定値である上限判定値を前記現在処理負荷値が上回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの暗号化処理負荷が比較的小さい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定し且つ前記通信レートを低下させることを特徴とする請求項１０又は１１に記載のゲートウェイ装置。
【請求項１５】
前記制御部は、前記設定判定値である下限判定値を前記現在処理負荷値が下回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの暗号化処理負荷が比較的大きい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定することを特徴とする請求項１０又は１１に記載のゲートウェイ装置。
【請求項１６】
前記制御部は、前記設定判定値である下限判定値を前記現在処理負荷値が下回っていると判別した場合に、前記通信レートを上昇させることを特徴とする請求項１０又は１１に記載のゲートウェイ装置。
【請求項１７】
前記制御部は、前記設定判定値である下限判定値を前記現在処理負荷値が下回っていると判別した場合に、前記利用可能暗号化アルゴリズムのうちの処理負荷が比較的大きい１を選択してこれを前記現在設定暗号化アルゴリズムとして設定し且つ前記通信レートを上昇させることを特徴とする請求項１０又は１１に記載のゲートウェイ装置。
【請求項１８】
前記トンネル形成部は、前記現在設定暗号化アルゴリズム及び前記通信レートを設定変更しても前記現在処理負荷値が上限判定値を下回らない旨の前記制御部による判別結果に応じて前記トンネルのうちの前記優先度が比較的低い１を削除するトンネル削除手段を更に含むことを特徴とする請求項１１に記載のゲートウェイ装置。
【請求項１９】
前記トンネル形成部は、前記現在処理負荷値が再形成判定値を下回っている旨の前記制御部による判別結果に応じて当該削除されたトンネルを再形成するトンネル再形成手段を更に含むことを特徴とする請求項１８に記載のゲートウェイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信網内に仮想的な通信路であるトンネルを形成し、暗号化を施したパケットを当該トンネルを介して中継するゲートウェイ装置に関する。
【背景技術】
【０００２】
近年、セキュリティの観点からＶＰＮ（Virtual Private Network）技術を用いた通信が導入されつつある。ＶＰＮは、パケットにいわゆるカプセル化（Encapsulation）処理を施して公衆網内に仮想的な専用通信路（いわゆるトンネル）を形成し、更に暗号化処理を施して送信する技術である。拠点間に専用回線を導入するのに比較して低コストで専用通信路を確立できるという利点がある。
【０００３】
このように公衆網を経由して送受信されるパケットに対しては、暗号化処理を施すことが必須である。通常、ＶＰＮ機能を有するゲートウェイ装置のＣＰＵ（Central Processing Unit）がパケットに暗号化処理を施すが、その際にはある程度の処理負荷が生じる。ＣＰＵは、暗号化処理と他のアプリケーションとを並行して実行する場合がほとんどであり、その処理負荷が大きい場合には、ＣＰＵの処理能力を超えてしまうことがある。それ故、ＣＰＵによる暗号化処理の負荷調整が必要となる。
【０００４】
例えば、特許文献１には、パケットに暗号化処理を施すための暗号化アルゴリズムを変更することによって、ＣＰＵの処理負荷を調整する通信装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２５４２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１を始めとする一般的な通信装置には、通常２又は３種類の暗号化アルゴリズム（例えば３ＤＥＳやＡＥＳ−ＣＢＣ）しか実装されていないので、２又は３段階の負荷調整しかできないという問題があった。また、ユーザによって単一の暗号化アルゴリズムの使用のみを許可するようにセキュリティポリシーの設定がなされている場合、特許文献１による通信装置では負荷調整ができないという問題があった。更に、暗号化アルゴリズムの変更によってもなお、ＣＰＵ全体の処理負荷がその処理能力を超えている場合には、他の回避策がないという問題があった。
【０００７】
本発明は上記した如き問題点に鑑みてなされたものであって、公衆網内に形成された仮想的な専用通信路を介して暗号化パケットを通信する際に適切なＣＰＵリソースを確保することができるゲートウェイ装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明によるゲートウェイ装置は、通信端末からのトンネル形成指令に応じて通信網内にトンネルを形成するトンネル形成部と、前記通信端末から発せられたパケットに対して現在設定暗号化アルゴリズムに従って暗号化処理を施して暗号化パケットを得る暗号化部と、前記暗号化パケットを前記トンネルを介して中継する中継部と、を含むゲートウェイ装置であって、少なくとも１つの利用可能暗号化アルゴリズムを記憶するアルゴリズム記憶手段と、前記暗号化処理を含む演算処理を監視して現在処理負荷値を算出する負荷監視部と、前記現在処理負荷値と設定判定値とを比較して得られた結果に応じて前記利用可能暗号化アルゴリズムのうちの１を選択してこれを前記現在設定暗号化アルゴリズムとして設定すると共に前記暗号化パケットの通信レートを設定する制御部と、を含むことを特徴とする。
【０００９】
また、本発明によるゲートウェイ装置は、少なくとも１の通信端末からのトンネル形成指令毎に通信網内にトンネルを形成するトンネル形成部と、前記通信端末から発せられたパケットに対して前記トンネル毎の現在設定暗号化アルゴリズムに従って暗号化処理を施して暗号化パケットを得る暗号化部と、前記暗号化パケットを前記トンネルのうちの前記トンネル形成指令に対応する１を介して中継する中継部と、を含むゲートウェイ装置であって、前記トンネル毎に少なくとも１の利用可能暗号化アルゴリズムを記憶するアルゴリズム記憶手段と、前記暗号化処理を含む演算処理を監視して現在処理負荷値を算出する負荷監視部と、前記現在処理負荷値と設定判定値とを比較して得られた結果に応じて前記トンネル毎に前記利用可能暗号化アルゴリズムのうちの１を選択してこれを前記現在設定暗号化アルゴリズムとして設定すると共に前記暗号化パケットの通信レートを設定する制御部と、を含むことを特徴とする。
【発明の効果】
【００１０】
本発明によるゲートウェイ装置によれば、公衆網内に形成された仮想的な専用通信路を介して暗号化パケットを通信する際に適切なＣＰＵリソースを確保することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施例によるゲートウェイ装置を、通信端末、通信網及びトンネルと共に表したブロック図である。
【図２】本実施例によるゲートウェイ装置を表すブロック図である。
【図３】負荷予測テーブルを表す図である。
【図４】暗号化処理及びアプリケーションを実行しているＣＰＵの処理負荷を模式的に表した図である。
【図５】暗号化処理及びアプリケーションを実行しているＣＰＵの処理負荷を模式的に表した図である。
【図６】暗号化処理及びアプリケーションを実行しているＣＰＵの処理負荷を模式的に表した図である。
【図７】暗号化処理及びアプリケーションを実行しているＣＰＵの処理負荷を模式的に表した図である。
【図８】データテーブルの一例を表す図である。
【図９】ゲートウェイ装置によるトンネルの生成処理シーケンスを表すシーケンス図である。
【図１０】ゲートウェイ装置によるトンネルについての暗号化アルゴリズム及び帯域の再設定処理シーケンスを表すシーケンス図である。
【図１１】暗号化通信管理部によるＣＰＵ負荷調整処理ルーチンを表すフローチャートである。
【図１２】暗号化処理及びアプリケーションを実行しているＣＰＵの処理負荷を模式的に表した図である。
【図１３】暗号化処理及びアプリケーションを実行しているＣＰＵの処理負荷を模式的に表した図である。
【図１４】暗号化処理及びアプリケーションを実行しているＣＰＵの処理負荷を模式的に表した図である。
【図１５】ゲートウェイ装置によるトンネルについての暗号化アルゴリズム及び帯域の再設定処理シーケンスを表すシーケンス図である。
【図１６】暗号化通信管理部によるＣＰＵ負荷調整処理ルーチンを表すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明に係る実施例について添付の図面を参照しつつ詳細に説明する。
【００１３】
＜第１の実施例＞
図１は、本実施例によるゲートウェイ装置１００を、ゲートウェイ装置２００、通信端末３００及び４００、通信網５００、６００及び７００、トンネル７１０と共に表したネットワーク構成図である。
【００１４】
ゲートウェイ装置１００は、例えばＬＡＮ（Local Area Network）などの通信網５００と例えばインターネットなどの通信網７００との間にあってパケットを中継するゲートウェイ(Gateway)装置である。ゲートウェイ装置１００は、通信機能を備えた例えばパーソナルコンピュータなどの通信端末３００からのＶＰＮ（Virtual Private Network）トンネル確立指令に応じて、通信相手であるゲートウェイ装置２００との間に仮想的な専用通信路であるいわゆるトンネル７１０を形成する。ゲートウェイ装置２００は、通信端末３００からのパケットをトンネル７１０を介してゲートウェイ装置２００へ中継し、また、トンネル７１０を介して到来した、ゲートウェイ装置２００からのパケットを通信端末３００へ中継する。なお、ゲートウェイ装置２００もゲートウェイ装置１００と同様の機能を有する。
【００１５】
図２は、本実施例によるゲートウェイ装置１００を表すブロック図である。
【００１６】
ゲートウェイ装置１００は、リソース監視部１１０と、暗号化通信管理部１２０と、データテーブル１３０と、通信部１４０と、演算処理部１５０と、記憶部１６０と、告知部１７０と、を含む。
【００１７】
リソース監視部１１０は、いわゆるＣＰＵリソースを定期的に監視し、処理負荷の平均値（以下、ロードアベレージと称する）を算出するものである。このブロック図においては、リソース監視部１１０は、演算処理部１５０の処理負荷と、通信部１４０に含まれる後述の暗号化／復号化部１４４の処理負荷とを監視してロードアベレージを算出する。説明の便宜上、演算処理部１５０と暗号化／復号化部１４４とを分けているが、この２つは１つのＣＰＵに含まれる機能である。
【００１８】
ロードアベレージは、例えばＣＰＵの利用率として算出されるものであり、例えば所定期間ＴＭ中の実行待ちプロセスの平均値である。この場合、ユーザは所定期間ＴＭを例えば１秒などの所望の値に設定可能であり、リソース監視部１１０は、この設定された所定期間ＴＭ毎にロードアベレージを算出する。ロードアベレージが高いほど、実効待ちプロセスが多く、ＣＰＵによる処理負荷が大きいことを表す。例えば高スループットの暗号化通信を行う場合にはロードアベレージが高くなる。
【００１９】
リソース監視部１１０は、当該算出により得られたロードアベレージを、暗号化通信管理部１２０に含まれる後述のリソースコントローラ１２１へ所定期間ＴＭ毎に与える。なお、リソース監視部１１０は、演算処理部１５０及び暗号化／復号化部１４４の機能を実現するＣＰＵに含まれる機能であっても良いし、これとは別のマイクロプロセッサに実装された機能であっても良い。
【００２０】
暗号化通信管理部１２０は、リソースコントローラ１２１と、鍵交換部１２２と、暗号化/復号化アルゴリズム設定部（以下、アルゴリズム設定部と称する）１２３と、帯域設定部１２４と、を含む。
【００２１】
リソースコントローラ１２１は、リソース監視部１１０からのロードアベレージに基づいて、アルゴリズム設定部１２３、帯域設定部１２４、鍵交換部１２２へそれぞれ指令を発し、ＣＰＵのロードアベレージを調整するものである。
【００２２】
リソースコントローラ１２１は、例えば図３に示される如き負荷予測テーブルに基づいて、暗号化アルゴリズム、通信レート（以下、帯域と称する）、トンネルの削除及び再形成の決定を行う。
【００２３】
図３は負荷予測テーブルを表す図である。「暗号化アルゴリズム」欄には、暗号化アルゴリズムの種別が設定されている。例えばＡＥＳ（Advanced Encryption Standard）、３ＤＥＳ（3(Triple) Data Encryption Standard）、ＤＥＳなどである。「通信帯域」欄には、例えば１００Ｍｂｐｓ、８０Ｍｂｐｓ、６０Ｍｂｐｓ、・・・、などの帯域が、暗号化アルゴリズム毎に設定されている。「負荷規格値」欄には、ある帯域で通信するに際し、ある暗号化アルゴリズムでパケットに暗号化処理を施した場合に、その暗号化処理によって生じるであろうＣＰＵ処理負荷の予測値を規格化した値が設定されている。
【００２４】
例えばＣＰＵの処理限界値を１００とした場合に、帯域１００Ｍｂｐｓで通信するに際し、暗号化アルゴリズムＡＥＳで暗号化処理を実行した場合には、ＣＰＵの処理限界値の半分に相当する処理負荷が生じると見込まれる場合には、負荷規格値５０として予め設定する。ＣＰＵの処理限界値は、ＣＰＵの仕様（スペック）や、他のアプリケーションを実行するためのソフトウェアの構成、暗号化処理のためのアクセラレータの有無などによって左右される。それ故、これらスペックなどの条件に応じて、どの暗号化アルゴリズムを用いるとどれだけの処理負荷が生じ、帯域をいくらにするとどれだけの処理負荷が生じるかを知るためのチューニングを予め行ってから、負荷規格値を設定する。
【００２５】
以下に、リソースコントローラ１２１による暗号化アルゴリズム及び帯域の変更例について説明する。
【００２６】
図４（ａ）及び（ｂ）は、暗号化処理及びアプリケーションＡ及びＢを実行しているＣＰＵの処理負荷を模式的に表した図である。縦軸は、例えばＣＰＵの処理限界値を１００として規格化された処理負荷値である。現在、ＣＰＵによって暗号化アルゴリズムＡＥＳによる帯域１００Ｍｂｐｓの暗号化処理がなされており、図４（ａ）に示される如く現在処理負荷値ＲＡが上限判定値ＪＴを上回っている状況である。ここで、現在処理負荷値ＲＡは、リソース監視部１１０から通知された現在時点でのロードアベレージであり、ＲＡ＝１０５とする。また、上限判定値は、ユーザによって予め設定された判定値であり、ＪＴ＝１００とする。
【００２７】
リソースコントローラ１２１は、現在処理負荷値ＲＡ＝１０５が上限判定値ＪＴ＝１００を上回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を下回るように、例えば暗号化アルゴリズムを現在設定のＡＥＳから３ＤＥＳに設定変更する。つまり、リソースコントローラ１２１は、暗号化アルゴリズムを、ＡＥＳよりも処理負荷が比較的小さい３ＤＥＳに変更する。なお、図３に示される負荷予測テーブルでは、暗号化アルゴリズムＡＥＳ且つ帯域１００Ｍｂｐｓの負荷規格値は５０であり、３ＤＥＳ且つ１００Ｍｂｐｓの負荷規格値は４０である。これにより、図４（ｂ）に示される如く、現在処理負荷値ＲＡ＝９５は上限判定値ＪＴ＝１００を下回ることになる。この現在処理負荷値ＲＡ＝９５は、次の周期（所定期間ＴＭ経過後）にリソース監視部１１０から通知されたロードアベレージである。
【００２８】
なお、リソースコントローラ１２１は、後述のデータテーブル１３０の「利用可能暗号化アルゴリズム」欄に１つの暗号化アルゴリズムのみが設定されている場合には、上記したような暗号化アルゴリズムの設定変更は行わない。
【００２９】
図５（ａ）及び（ｂ）は、図４と同様に暗号化処理及びアプリケーションＡ及びＢを実行しているＣＰＵの処理負荷を模式的に表した図である。図５（ａ）に示される如く現在処理負荷値ＲＡが上限判定値ＪＴを上回っている状況である。ここで、現在処理負荷値ＲＡ＝１０５、上限判定値ＪＴ＝１００とする。
【００３０】
リソースコントローラ１２１は、現在処理負荷値ＲＡ＝１０５が上限判定値ＪＴ＝１００を上回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を下回るように、例えば帯域を現在設定の１００Ｍｂｐｓから８０Ｍｂｐｓに設定変更する。つまり、リソースコントローラ１２１は帯域を低下させる。なお、図３に示される負荷予測テーブルでは、暗号化アルゴリズムＡＥＳ且つ帯域１００Ｍｂｐｓの負荷規格値は５０であり、ＡＥＳ且つ１００Ｍｂｐｓの負荷規格値は４０である。これにより、図５（ｂ）に示される如く、現在処理負荷値ＲＡ＝９５は上限判定値ＪＴ＝１００を下回ることになる。
【００３１】
図６（ａ）、（ｂ）及び（ｃ）は、図４と同様に暗号化処理及びアプリケーションＡ及びＢを実行しているＣＰＵの処理負荷を模式的に表した図である。図６（ａ）に示される如く現在処理負荷値ＲＡが上限判定値ＪＴを上回っている状況である。ここで、現在処理負荷値ＲＡ＝１０５、上限判定値ＪＴ＝１００とする。
【００３２】
リソースコントローラ１２１は、現在処理負荷値ＲＡ＝１０５が上限判定値ＪＴ＝１００を上回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を下回るように、例えば暗号化アルゴリズムを現在設定のＡＥＳから３ＤＥＳに設定変更する。つまり、リソースコントローラ１２１は、暗号化アルゴリズムを、ＡＥＳよりも処理負荷が比較的小さい３ＤＥＳに変更する。これにより、図５（ｂ）に示される如く、暗号化処理の負荷が低下するものの、例えばアプリケーションＢの実行処理負荷が上昇した場合には、例えば現在処理負荷値ＲＡ＝１０２となり、依然として上限判定値ＪＴ＝１００を上回ることになる。
【００３３】
この場合、リソースコントローラ１２１は、現在処理負荷値ＲＡ＝１０２が上限判定値ＪＴ＝１００を上回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を下回るように、例えば帯域を現在設定の１００Ｍｂｐｓから８０Ｍｂｐｓに設定変更する。これにより、図６（ｃ）に示される如く、現在処理負荷値ＲＡ＝９２は上限判定値ＪＴ＝１００を下回ることになる。上記した例は暗号化アルゴリズムを設定変更した後で帯域を設定変更した例であるが、帯域を設定変更した後で暗号化アルゴリズムを設定変更するようにしても良い。
【００３４】
図５及び６を参照して説明した上記例においては、リソースコントローラ１２１は、ユーザによって予め設定された最低保障帯域を下回らない範囲で帯域を設定変更する。例えば最低保障帯域として１０Ｍｂｐｓが設定されている場合、リソースコントローラ１２１は、仮に帯域を１０Ｍｂｐｓ以下に設定しなければ現在処理負荷値ＲＡが上限判定値ＪＴを下回らないと判別したときであっても、帯域を１０Ｍｂｐｓ以下には設定せず、後述の告知部１７０への告知指示及び／又は鍵交換部１２２へのトンネル７１０の削除の指示を行う。
【００３５】
図４〜６を参照して説明した上記例のように、リソースコントローラ１２１は、負荷予測テーブルを参照して暗号化アルゴリズム及び／又は帯域を設定変更し、ロードアベレージ（現在処理負荷値ＲＡ）を上限判定値ＪＴよりも低下させる。これにより、ＣＰＵの処理能力を超えないようにＣＰＵリソースを確保できる。
【００３６】
図７（ａ）及び（ｂ）は、図４と同様に暗号化処理及びアプリケーションＡ及びＢを実行しているＣＰＵの処理負荷を模式的に表した図である。最低保障帯域として例えば１０Ｍｂｐｓが予め設定されており、現在、ＣＰＵによって暗号化アルゴリズムＤＥＳによる帯域１０Ｍｂｐｓの暗号化処理がなされている。図７（ａ）に示される如く現在処理負荷値ＲＡ＝１１０が上限判定値ＪＴ＝１００を上回っている状況である。
【００３７】
この場合、リソースコントローラ１２１は、現在処理負荷値ＲＡ＝１１０が上限判定値ＪＴ＝１００を上回っているものの、帯域が既に最低保障帯域１０Ｍｂｐｓに設定されていることから、帯域をこれ以下には下げられないと判別し、鍵交換部１２２へトンネル７１０の削除を指示する。この際、リソースコントローラ１２１は、後述のデータテーブル１３０の「現在帯域」欄に０Ｍｂｐｓを設定する。これにより、ＣＰＵの処理負荷が低下してＣＰＵリソースが確保できる。
【００３８】
トンネル７１０の削除後、例えばアプリケーションＡ及びＢの実行処理負荷が低下し、図７（ｂ）に示される如く現在処理負荷値ＲＡが再形成判定値ＪＲを下回っている状況になったとする。再形成判定値ＪＲはユーザによって予め設定された値である。
【００３９】
この場合、リソースコントローラ１２１は、現在処理負荷値ＲＡが再形成判定値ＪＲを下回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を上回らない範囲で、暗号化アルゴリズム及び帯域を設定し、先に削除したトンネル７１０（データテーブル１３０の「現在帯域」欄を０Ｍｂｐｓに設定したトンネル）の再形成を鍵交換部１２２へ、指示する。
【００４０】
図４〜７を参照して説明した上記例においては、リソースコントローラ１２１は、暗号化アルゴリズム及び帯域のいずれかを任意に設定変更しても良いが、可能な限り高いセキュリティレベルの暗号化処理を施し且つ高スループットの通信を行う観点からは、ロードアベレージが上限判定値ＪＴを下回る設定変更のうち、比較的レベルの高い暗号化アルゴリズム及び比較的高い帯域から順に選択するのが望ましい。例えば暗号化アルゴリズムについてはＡＥＳ、３ＤＥＳ、ＤＥＳの順、帯域については例えば１００Ｍｂｐｓ、８０Ｍｂｐｓ、６０Ｍｂｐｓの順である。
【００４１】
また、図３に示す負荷予測テーブルは、各処理の負荷予測値を設定したものであるが、これに代えて例えば暗号化アルゴリズム及び／又は帯域を設定変更した場合の負荷減少値又は負荷増加値を設定しても良い。この場合、リソースコントローラ１２１は、負荷減少値又は負荷増加値と現在処理負荷値ＲＡとの差分に基づいて暗号化アルゴリズム及び／又は帯域を設定変更する。なお、負荷予測テーブルは、例えばハードディスクやＲＡＭなどの記憶部１６０又は他の記憶媒体（図示せず）に記憶するようにしても良いし、リソースコントローラ１２１内にデータとして保持するようにしても良い。
【００４２】
トンネル７１が複数形成されている場合には、リソースコントローラ１２１は、後述のデータテーブル１３０に設定されている優先度に従って１つのトンネルを選択し、当該１のトンネルについての暗号化アルゴリズム及び／又は帯域を設定変更する。
【００４３】
このように、リソースコントローラ１２１は、この負荷予測テーブル及び後述のデータテーブル１３０を参照して、暗号化アルゴリズム及び帯域の設定、トンネルの削除及び再形成の判定を行う。
【００４４】
鍵交換部１２２は、通信端末３００からのトンネル形成指令に応じて、通信網７００内にトンネル７１０を形成するものである。鍵交換部１２２は、例えばＩＫＥ(Internet Key Exchange)やＩＫＥｖ２などの鍵交換プロトコルに従ってトンネル７１０を形成する。ＩＫＥには、ＩＳＡＫＭＰ/Ｏａｋｌｅｙ及びＩＳＡＫＭＰ/ＳＫＥＭＥがあるが、鍵交換部１２２は、このうちのいずれかを用いて、いわゆる鍵交換ネゴシエーションパケットを、対向のゲートウェイ装置２００との間で交換してトンネル７１０を形成する。また、鍵交換部１２２は、ユーザによってトラフィックセレクタ等のデータが予め設定されたデータテーブル１３０を適宜参照してトンネル７１０を形成する。
【００４５】
また、鍵交換部１２２は、リソースコントローラ１２１からのトンネル削除指示に応じて鍵交換ネゴシエーションパケットをゲートウェイ装置２００との間で交換してトンネル７１０を削除し、また、トンネル再形成指示に応じて同様に鍵交換ネゴシエーションパケットをゲートウェイ装置２００との間で交換してトンネル７１０を再形成する。
【００４６】
アルゴリズム設定部１２３は、リソースコントローラ１２１によって指示された暗号化アルゴリズムに従ってパケットに暗号化処理を施すように、後述の暗号化／復号化部１４４に対して指示を与える。暗号化アルゴリズムは、例えばＡＥＳ、３ＤＥＳ、ＤＥＳである。
【００４７】
帯域設定部１２４は、リソースコントローラ１２１によって指示された帯域（通信レート）に従ってパケットの送受信を制御するように、後述の帯域制御部１４３に対して指示を与える。帯域には、ユーザによって設定された最低補償帯域以外に特に制限は無い。
【００４８】
暗号化通信管理部１２０の各機能は、例えばＣＰＵなどの演算処理機能を有するマイクロプロセッサによって実現できるものである。また、暗号化通信管理部１２０の各機能を表すコンピュータプログラムを例えばハードディスクなどの記憶媒体に記憶し、例えばＣＰＵなどの演算処理装置がこれを読み出して実行するようにしても良い。
【００４９】
図８は、データテーブル１３０の一例を表す図である。データテーブル１３０は、例えばハードディスクやＲＡＭなどの記憶媒体に記憶される。
【００５０】
「ＶＰＮトンネル名」は、ＶＰＮトンネルを識別するためにユーザによって設定された固有のトンネル識別子である。ここでは例えばＶｏＩＰ-ｔｕｎｎｅｌやＨＴＴＰ-ｔｕｎｎｅｌなどである。「優先度」は、ユーザが通信端末３００からトンネル形成指令を発する際に設定する優先度である。この優先度は、複数のＶＰＮトンネルが形成されている場合に、暗号化アルゴリズム及び帯域の設定変更対象とすべき１つのＶＰＮトンネルをリソースコントローラ１２１が選択するのに用いられる。値が小さいほど優先度が高い。
【００５１】
「トラフィックセレクタ」は、暗号化の対象となるパケットの送信元アドレス、宛先アドレス、上位層プロトコル、ポート番号などの情報である。実際には、このトラフィックセレクタは、例えばＬｉｎｕｘカーネルのネットワークスタックなどのミドルウェアによって保持されることが多いので、それらと一意に対応付けるためにデータテーブル１３０に保持している。ここでは、例えば１９２．１６９.１．０/２４→１９２．１６８.２．０：ＵＤＰなどである。
【００５２】
「現在設定暗号化アルゴリズム」は、ＶＰＮトンネル毎に現在、設定している暗号化アルゴリズムである。「利用可能暗号化アルゴリズム」は、ＶＰＮトンネル毎に適用可能な暗号化アルゴリズムである。これらは、例えばＡＥＳ、３ＤＥＳ、ＤＥＳなどの暗号化アルゴリズムである。
【００５３】
「最低保障帯域」は、そのＶＰＮトンネルで確保したい最低の通信レートであり、ＶＰＮトンネル毎にユーザによって設定される。ここでは、例えば１０Ｍｂｐｓや３Ｍｂｐｓである。リソースコントローラ１２１は、上述した帯域の設定変更の際に、この最低保障帯域を下回るような設定は行わない。「現在帯域」は、現在、そのＶＰＮトンネルに設定されている帯域であり、帯域設定部１２４によって後述の帯域制御部１４３に設定された帯域である。
【００５４】
通信部１４０は、インターフェースＡ１４１と、インターフェースＢ１４２と、帯域制御部１４３と、暗号化／復号化部１４４と、中継部１４５と、を含む。
【００５５】
インターフェースＡ１４１は、図１に示される公衆網７００に形成されたトンネル７１０を介してゲートウェイ装置２００との間でパケットを送受信するインターフェースである。インターフェースＢ１４２は、図１に示される公衆網５００を介して通信端末３００との間でパケットを送受信するインターフェースである。
【００５６】
帯域制御部１４３は、帯域設定部１２４によって指示された帯域（通信レート）に従ってパケットの送受信を制御するものである。
【００５７】
暗号化／復号化部１４４は、アルゴリズム設定部１２３よって指示された暗号化アルゴリズムに従って、インターフェースＡ１４１からのパケットに対して暗号化処理を施す。また、暗号化／復号化部１４４は、アルゴリズム設定部１２３よって指示された暗号化アルゴリズムに従って、インターフェースＢ１４２からのパケットに対して復号化処理を施す。暗号化アルゴリズムは、例えばＡＥＳ、３ＤＥＳ、ＤＥＳである。暗号化／復号化部１４４は、例えば記憶部１６０に記憶されているこれらのアルゴリズムを表すデータを読み出して暗号化処理を施す。なお、ブロック図では説明の便宜上、暗号化／復号化部１４４と後述の演算処理部１５０とを分けて図示しているが、これらのブロックは同一のＣＰＵ内の機能である。
【００５８】
中継部１４５は、暗号化／復号化部１４４による暗号化処理により生成された暗号化パケットをインターフェースＡ１４１又はインターフェースＢ１４２を介して中継するものである。
【００５９】
帯域制御部１４３及び暗号化／復号化部１４４の各機能は、例えばＣＰＵなどの演算処理機能を有するマイクロプロセッサによって実現できるものである。また、インターフェースＡ１４１、インターフェースＢ１４２、中継部１４５の各機能は、一般的なネットワークインターフェース仕様に従った構成であれば良い。なお、図２に示される白抜きの矢印はパケットの流れを表している。
【００６０】
演算処理部１５０は、記憶部１６０に記憶されているアプリケーションのデータを読み出し、当該アプリケーションを実行する例えばＣＰＵなどの演算処理装置である。ブロック図では説明の便宜上、演算処理部１５０と暗号化／復号化部１４４とを分けて図示しているが、これらのブロックは同一のＣＰＵ内の機能である。
【００６１】
記憶部１６０は、アプリケーションデータ、暗号化アルゴリズムデータ、その他の各種データを記憶する例えばハードディスクやＲＡＭなどの記憶媒体である。
【００６２】
告知部１７０は、リソースコントローラ１２１からの告知指示に応じて、あるＶＰＮトンネルについて最低保障帯域以下に設定しなければＣＰＵリソースを確保できない旨をユーザへの告知するものである。告知部１７０は、例えばディスプレイであり当該告知を画面上に文字表示にて告知しても良いし、例えばスピーカであり当該告知を音声にて告知しても良い。
【００６３】
図９は、ゲートウェイ装置１００によるトンネル７１０の生成処理シーケンスを表すシーケンス図である。
【００６４】
先ず、リソース監視部１１０が、ＣＰＵリソースを定期的に監視してロードアベレージを算出し（ステップＳ１０１）、これをリソースコントローラ１２１へ通知する（ステップＳ１０２）。詳細には、リソース監視部１１０は、演算処理部１５０及び暗号化／復号化部１４４における処理負荷を監視する。リソースコントローラ１２１は、リソース監視部１１０からのロードアベレージを現在処理負荷値として保持する（ステップＳ１０３）。
【００６５】
次に、リソースコントローラ１２１は、データテーブル１３０から設定データを取得する（ステップＳ１０４）。この設定データは、ユーザが予め設定したものでも良いし、ＶＰＮトンネル形成の度にユーザが設定しても良い。次に、リソースコントローラ１２１は、通信端末３００からのトンネル形成指令に応じて、鍵交換部１２２へトンネル形成の指示を発する（ステップＳ１０５）。なお、リソースコントローラ１２１は、インターフェースＢを介して当該トンネル形成指令を受信する。
【００６６】
次に、リソースコントローラ１２１は、当該指示応じた鍵交換部１２２によって形成されるＶＰＮトンネルを介して送受信すべきパケットに暗号化処理を施すための暗号化アルゴリズム及び帯域（通信レート）を、負荷予測テーブル（図３）及びデータテーブル１３０を参照しつつ決定する（ステップＳ１０６）。
【００６７】
その際、リソースコントローラ１２１は、暗号化アルゴリズム及び帯域のいずれかを任意に設定変更しても良いが、可能な限り高いセキュリティレベルの暗号化処理を施し且つ高スループットの通信を行う観点からは、ロードアベレージが上限判定値ＪＴを下回る設定変更のうち、比較的レベルの高い暗号化アルゴリズム及び比較的高い帯域から順に選択するのが望ましい。
【００６８】
リソースコントローラ１２１からのトンネル形成指令に応じた鍵交換部１２２は、例えばＩＫＥやＩＫＥｖ２などの鍵交換プロトコルに従っていわゆる鍵交換ネゴシエーションを対向のゲートウェイ装置２００との間で開始する（ステップＳ１０７）。なお、図９では、鍵交換部１２２の処理はリソースコントローラ１２１の処理ライン上に示してある。鍵交換部１２２は、ゲートウェイ装置２００との間でネゴシエーションパケットを交換して（ステップＳ１０８）、認証処理及び鍵交換処理の完了後、トンネル７１０を形成する（ステップＳ１０９）。
【００６９】
リソースコントローラ１２１は、ステップＳ１０６で決定した帯域を帯域設定部１２４へ通知し（ステップＳ１１０）、帯域設定部１２４は、当該帯域にてパケットを送受信するように帯域制御部１４３に対して指示する（ステップＳ１１１）。リソースコントローラ１２１は、ステップＳ１０６で決定した暗号化アルゴリズム及び帯域をデータテーブル１３０に記憶する（ステップＳ１１２、Ｓ１１３）。
【００７０】
上記した処理により、ゲートウェイ装置１００はゲートウェイ装置２００との間にトンネル７１０を形成する。
【００７１】
図１０は、ゲートウェイ装置１００によるトンネル７１０についての暗号化アルゴリズム及び帯域の再設定処理シーケンスを表すシーケンス図である。
【００７２】
先ず、リソース監視部１１０が、ＣＰＵリソース（演算処理部１５０及び暗号化／復号化部１４４における処理負荷）を定期的に監視してロードアベレージを算出し（ステップＳ２０１）、これをリソースコントローラ１２１へ通知する（ステップＳ２０２）。リソースコントローラ１２１は、リソース監視部１１０からのロードアベレージを現在処理負荷値として保持する（ステップＳ２０３）。
【００７３】
リソースコントローラ１２１は、ロードアベレージと上限判定値ＪＴとを比較して、ＣＰＵの処理負荷を低下させる必要があるか判別する（ステップＳ２０４）。リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴを上回っていると判別した場合には、データテーブル１３０に設定された優先度の比較的低い１のＶＰＮトンネルを設定変更対象トンネルとして選択する（ステップＳ２０５）。なお、ＶＰＮトンネルが１つだけ形成されている場合（データテーブル１３０に１つのＶＰＮトンネルのみが設定されている場合）には当該選択を行わない。
【００７４】
次に、リソースコントローラ１２１は、負荷予測テーブル（図３）及びデータテーブル１３０を参照しつつ、設定変更対象トンネルに対して現在設定されている暗号化アルゴリズムよりも比較的処理負荷が小さい１つの暗号化アルゴリズムを選択する。続いて、リソースコントローラ１２１は、当該選択した暗号化アルゴリズムに設定変更するようにアルゴリズム設定部１２３へ指示すると共に鍵交換部１２２へ新たなＶＰＮトンネルの形成を指示する（ステップＳ２０６）。
【００７５】
リソースコントローラ１２１からのトンネル形成指令に応じた鍵交換部１２２は、例えばＩＫＥやＩＫＥｖ２などの鍵交換プロトコルに従っていわゆる鍵交換ネゴシエーションを対向のゲートウェイ装置２００との間で開始する（ステップＳ２０７）。なお、図１０では、鍵交換部１２２の処理はリソースコントローラ１２１の処理ライン上に示してある。鍵交換部１２２は、ゲートウェイ装置２００との間でネゴシエーションパケットを交換して（ステップＳ２０８）、認証処理及び鍵交換処理の完了後、新たなトンネルを形成する（ステップＳ２０９）。
【００７６】
鍵交換部１２２は、従来のトンネル７１０から新たなトンネルへの切り替え処理を行った後、従来のトンネル７１０を削除する。以後、通信部１３０は、この新たなトンネルを介してゲートウェイ装置２００との間でパケット交換をする。これにより、ＶＰＮトンネルを介した通信を継続しつつ、暗号化アルゴリズムを設定変更できる。
【００７７】
続いて、リソースコントローラ１２１は、リソース監視部１１０から現時点におけるロードアベレージを取得し（ステップＳ２１０）、そのロードアベレージと上限判定値ＪＴとを比較して、ＣＰＵの処理負荷を更に低下させる必要があるか判別する（ステップＳ２１１）。リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴを上回っていると判別した場合には、負荷予測テーブル（図３）及びデータテーブル１３０を参照しつつ、データテーブル１３０に設定された現在帯域よりも低い帯域を決定する。なお、リソースコントローラ１２１は、データテーブル１３０に設定された最低保障帯域よりも高い帯域を設定する。
【００７８】
リソースコントローラ１２１は、リソースコントローラ１２１により決定された帯域を帯域設定部１２４へ通知し（ステップＳ２１２）、帯域設定部１２４は、当該帯域にてパケットを送受信するように帯域制御部１４３に対して指示する（ステップＳ２１３）。リソースコントローラ１２１は、ステップＳ１０６で決定した暗号化アルゴリズム及び帯域をデータテーブル１３０に記憶する（ステップＳ２１４、Ｓ２１５）。
【００７９】
上記した処理により、ゲートウェイ装置１００はゲートウェイ装置２００との間に形成されているトンネル７１０についての暗号化アルゴリズム及び帯域を再設定し、ＣＰＵの処理負荷を低下させ、ＣＰＵリソースを確保することができる。
【００８０】
図１１は、暗号化通信管理部１２０によるＣＰＵ負荷調整処理ルーチンを表すフローチャートである。以下、図１１を参照しつつ、ＣＰＵ負荷調整処理について説明する。なお、当該処理ルーチンはコンピュータプログラムによって構成可能であり、例えばハードディスクなどの記憶媒体に記憶されているこのプログラムを、演算処理機能を備えたマイクロプロセッサが読み出して実行するようにしても良い。
【００８１】
暗号化通信管理部１２０は、リソースコントローラ１２１からロードアベレージを取得する毎に当該ルーチンを実行する。
【００８２】
先ず、リソースコントローラ１２１は、リソース監視部１１０からのロードアベレージを現在処理負荷値として保持する（ステップＳ３０１）。リソースコントローラ１２１は、このロードアベレージが上限判定値ＪＴよりも小さいか否かを判別する（ステップＳ３０２）。リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴよりも小さいと判別した場合すなわちＣＰＵの処理負荷を下げる必要がないと判別した場合には、当該ルーチンを終了する。
【００８３】
一方、リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴよりも大きいと判別した場合すなわちＣＰＵの処理負荷を下げる必要があると判別した場合には、既に形成されているＶＰＮトンネルが複数個あるか否かを、データテーブル１３０を参照しつつ判別する（ステップＳ３０３）。複数個のＶＰＮトンネル名がデータテーブル１３０に設定されている場合には、リソースコントローラ１２１は、データテーブル１３０に設定されている優先度の比較的低い（通常、最も低い）ＶＰＮトンネルを設定変更対象トンネルとして選択する（ステップＳ３０４）。一方、１つのＶＰＮトンネル名のみがデータテーブル１３０に設定されている場合には、リソースコントローラ１２１は、そのＶＰＮトンネルを設定変更対象トンネルとして、次のステップＳ３０５へ移行する。
【００８４】
リソースコントローラ１２１は、設定変更対象トンネルについて暗号化アルゴリズムの設定変更が可能か否かを、データテーブル１３０を参照して判別する（ステップＳ３０５）。設定変更対象トンネルに対して１つの利用可能暗号化アルゴリズムのみが設定されている場合には、リソースコントローラ１２１は、暗号化アルゴリズムを設定変更できないと判別してステップＳ３０６へ移行する。
【００８５】
一方、リソースコントローラ１２１は、データテーブル１３０において設定変更対象トンネルに対して複数の利用可能暗号化アルゴリズムが設定されている場合に、設定変更可能と判別して暗号化アルゴリズムを設定変更する（ステップＳ３０７）。その際、リソースコントローラ１２１は、暗号化アルゴリズムのいずれか１つを任意に設定変更しても良いが、可能な限り高いセキュリティレベルの暗号化処理を施すという観点からは、ロードアベレージが上限判定値ＪＴを下回る設定変更のうち、比較的レベルの高い暗号化アルゴリズムを選択するのが望ましい。
【００８６】
続いて、リソースコントローラ１２１は、リソース監視部１１０から現時点におけるロードアベレージを取得し、このロードアベレージが上限判定値ＪＴよりも大きいか否かを判別する（ステップＳ３０８）。リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴよりも大きいと判別した場合すなわちＣＰＵの処理負荷を更に下げる必要があると判別した場合、帯域を設定変更する（ステップＳ３０６）。その際、リソースコントローラ１２１は、帯域を任意の値に設定変更しても良いが、高スループットの通信を行う観点からは、ロードアベレージが上限判定値ＪＴを下回る設定変更のうち、比較的高い帯域から順に選択するのが望ましい。
【００８７】
ここで、リソースコントローラ１２１は、設定帯域が最低保証帯域を下回ってしまったと判別した場合には（ステップＳ３０９）、再度、暗号化アルゴリズム及び／又は帯域を設定し直す（ステップＳ３０６、Ｓ３０７）。再度の設定の際には、データテーブル１３０に設定されている優先度の低いＶＰＮトンネルから順に設定変更対象トンネルとする。つまり、例えば１度目の再設定時には２番目に優先度が低いＶＰＮトンネルを設定変更対象トンネルとし、２度目の再設定時には３番目に優先度が低いＶＰＮトンネルを設定変更対象トンネルとする。以降の再設定時も同様である。
【００８８】
一方、設定帯域が最低保証帯域以上の場合、リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴよりも大きいか否かを判別する（ステップＳ３１０）。リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴよりも大きいと判別した場合すなわちすなわちＣＰＵの処理負荷を更に下げる必要があると判別した場合、既に形成されている他のＶＰＮトンネルが存在するか否かを、データテーブル１３０を参照しつつ判別する（ステップＳ３１１）。ステップＳ３１０までの処理において設定変更対象としたトンネルの名称とは別のＶＰＮトンネル名がデータテーブル１３０に設定されている場合には、リソースコントローラ１２１は、当該他のトンネルが存在すると判別し、再び、ステップＳ３０１の処理から実行する。
【００８９】
一方、リソースコントローラ１２１は、他のトンネルが存在しないと判別した場合には、データテーブル１３０に設定されている優先度の最も低いＶＰＮトンネルを削除するように鍵交換部１２２へ指示して（ステップＳ３１２）、ＣＰＵ負荷調整処理ルーチンを終了する。なお、上記した例は、暗号化アルゴリズムの設定変更後に帯域を設定変更する場合の例であるが、帯域の設定変更後に暗号化アルゴリズムを設定変更するようなフローにしても良い。
【００９０】
上記したように本実施例によるゲートウェイ装置によれば、暗号化アルゴリズムの種別を設定変更するだけでなく、帯域（通信レート）も設定変更できるので、他段階に亘ってＣＰＵ処理負荷の低減調整が可能である。また、暗号化アルゴリズムに加えて帯域も設定変更できるので、より細かい負荷低減調整が可能である。更に、単一の暗号化アルゴリズムの使用のみが許可されている場合であっても、帯域の調整によってＣＰＵの処理負荷を低減できる。このように、本実施例によるゲートウェイ装置によれば、公衆網内に形成された仮想的な専用通信路を介して暗号化パケットを通信する際に適切なＣＰＵリソースを確保することができる。
【００９１】
＜第２の実施例＞
本実施例によるゲートウェイ装置１００の構成は、第１の実施例と同じである（図２に示される）。以下、第１の実施例と異なる点について主に説明する。
【００９２】
図１２（ａ）及び（ｂ）は、第１の実施例における図４と同様に暗号化処理及びアプリケーションＡ及びＢを実行しているＣＰＵの処理負荷を模式的に表した図である。現在、ＣＰＵによって暗号化アルゴリズムＤＥＳによる帯域８０Ｍｂｐｓの暗号化処理がなされており、図１２（ａ）に示される如く現在処理負荷値ＲＡが下限判定値ＪＢを下回っている状況である。ここで、現在処理負荷値ＲＡ＝７０とする。また、下限判定値ＪＢ＝７５とする。
【００９３】
リソースコントローラ１２１は、現在処理負荷値ＲＡ＝７０が下限判定値ＪＢ＝７５を下回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を上回らない範囲で、例えば暗号化アルゴリズムを現在設定のＤＥＳからＡＥＳに設定変更する。つまり、リソースコントローラ１２１は、暗号化アルゴリズムを、ＤＥＳよりも処理負荷が比較的大きいＡＥＳに変更する。なお、図３に示される負荷予測テーブルでは、暗号化アルゴリズムＤＥＳ且つ帯域８０Ｍｂｐｓの負荷規格値は２０であり、ＡＥＳ且つ８０Ｍｂｐｓの負荷規格値は４０である。これにより、図１２（ｂ）に示される如く、現在処理負荷値ＲＡ＝９０が上限判定値ＪＴ＝１００を上回らない範囲で、暗号化のセキュリティレベルを上げることができる。
【００９４】
なお、リソースコントローラ１２１は、後述のデータテーブル１３０の「利用可能暗号化アルゴリズム」欄に１つの暗号化アルゴリズムのみが設定されている場合には、上記したような暗号化アルゴリズムの設定変更は行わない。
【００９５】
図１３（ａ）及び（ｂ）は、図１２と同様に暗号化処理及びアプリケーションＡ及びＢを実行しているＣＰＵの処理負荷を模式的に表した図である。図１３（ａ）に示される如く現在処理負荷値ＲＡが下限判定値ＪＢを下回っている状況である。ここで、現在処理負荷値ＲＡ＝７０、下限判定値ＪＢ＝７５とする。
【００９６】
リソースコントローラ１２１は、現在処理負荷値ＲＡ＝７０が下限判定値ＪＢ＝７５を下回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を上回らない範囲で、例えば帯域を現在の６０Ｍｂｐｓから１００Ｍｂｐｓに設定変更する。つまり、リソースコントローラ１２１は帯域を上昇させる。なお、図３に示される負荷予測テーブルでは、暗号化アルゴリズムＤＥＳ且つ帯域６０Ｍｂｐｓの負荷規格値は１０であり、ＤＥＳ且つ１００Ｍｂｐｓの負荷規格値は３０である。これにより、図１３（ｂ）に示される如く、現在処理負荷値ＲＡ＝９０が上限判定値ＪＴ＝１００を上回らない範囲で、スループットを上げることができる。
【００９７】
図１４（ａ）、（ｂ）及び（ｃ）は、図１２と同様に暗号化処理及びアプリケーションＡ及びＢを実行しているＣＰＵの処理負荷を模式的に表した図である。図１４（ａ）に示される如く現在処理負荷値ＲＡが下限判定値ＪＢを下回っている状況である。ここで、現在処理負荷値ＲＡ＝７０、下限判定値ＪＢ＝７５とする。
【００９８】
リソースコントローラ１２１は、現在処理負荷値ＲＡ＝７０が下限判定値ＪＢ＝７５を下回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を上回らない範囲で、例えば暗号化アルゴリズムを現在設定のＤＥＳからＡＥＳに設定変更する。つまり、リソースコントローラ１２１は、暗号化アルゴリズムを、ＤＥＳよりも処理負荷が比較的小さいＡＥＳに変更する。これにより、図１４（ｂ）に示される如く、暗号化処理の負荷が低下するものの、例えばアプリケーションＢの実行が終了した場合には、例えば現在処理負荷値ＲＡ＝７０となり、依然として下限判定値ＪＢ＝７５を下回ることになる。
【００９９】
この場合、リソースコントローラ１２１は、現在処理負荷値ＲＡ＝７０が下限判定値ＪＢ＝７５を下回っていると判別し、負荷予測テーブルを参照して、ロードアベレージが上限判定値ＪＴ＝１００を上回らない範囲で、例えば帯域を現在の８０Ｍｂｐｓから１００Ｍｂｐｓに設定変更する。これにより、図１４（ｃ）に示される如く、現在処理負荷値ＲＡ＝９０が上限判定値ＪＴ＝１００を上回らない範囲で、暗号化のセキュリティレベル及びスループットを上げることができる。上記した例は暗号化アルゴリズムを設定変更した後で帯域を設定変更した例であるが、帯域を設定変更した後で暗号化アルゴリズムを設定変更するようにしても良い。
【０１００】
図１２〜１４を参照して説明した上記例においては、リソースコントローラ１２１は、暗号化アルゴリズム及び帯域のいずれかを任意に設定変更しても良いが、可能な限り高いセキュリティレベルの暗号化処理を施し且つ高スループットの通信を行う観点からは、ロードアベレージが上限判定値ＪＴを下回る設定変更のうち、比較的レベルの高い暗号化アルゴリズム及び比較的高い帯域から順に選択するのが望ましい。例えば暗号化アルゴリズムについてはＡＥＳ、３ＤＥＳ、ＤＥＳの順、帯域については例えば１００Ｍｂｐｓ、８０Ｍｂｐｓ、６０Ｍｂｐｓの順である。
【０１０１】
図１２〜１４を参照して説明した上記例のように、リソースコントローラ１２１は、負荷予測テーブルを参照して暗号化アルゴリズム及び／又は帯域を設定変更し、上限判定値ＪＴを超えない範囲でロードアベレージ（現在処理負荷値ＲＡ）を上昇させる。これにより、ＣＰＵの処理能力を超えない範囲で暗号化のセキュリティレベル及びスループットを上げることができる。
【０１０２】
図１５は、ゲートウェイ装置１００によるトンネル７１０についての暗号化アルゴリズム及び帯域の再設定処理シーケンスを表すシーケンス図である。以下、第１の実施例における再設定処理シーケンス（図１０に示される）と異なる処理ステップについて説明する。
【０１０３】
ステップＳ４０４において、リソースコントローラ１２１は、ロードアベレージと上限判定値ＪＴとを比較して、ＣＰＵの処理負荷に余裕があるか判別する。リソースコントローラ１２１は、ロードアベレージが下限判定値ＪＢを下回っていると判別した場合には、データテーブル１３０に設定された優先度の比較的高い１のＶＰＮトンネルを設定変更対象トンネルとして選択する（ステップＳ４０５）。このとき、リソースコントローラ１２１は、データテーブル１３０において現在帯域が０Ｍｂｐｓに設定されているＶＰＮトンネルがある場合には、そのＶＰＮトンネルを設定変更対象トンネルとして選択する。なお、ＶＰＮトンネルが１つだけ形成されている場合（データテーブル１３０に１つのＶＰＮトンネルのみが設定されている場合）には当該選択を行わない。
【０１０４】
次に、リソースコントローラ１２１は、負荷予測テーブル（図３）及びデータテーブル１３０を参照しつつ、設定変更対象トンネルに対して現在設定されている暗号化アルゴリズムよりも比較的処理負荷が大きい１つの暗号化アルゴリズムを選択する。続いて、リソースコントローラ１２１は、当該選択した暗号化アルゴリズムに設定変更するようにアルゴリズム設定部１２３へ指示すると共に鍵交換部１２２へ新たなＶＰＮトンネルの形成を指示する（ステップＳ４０６）。ステップＳ４０７〜Ｓ４１０の処理は、第１の実施例と同じである。
【０１０５】
ステップＳ４１１において、リソースコントローラ１２１は、ステップＳ４１０でリソース監視部１１０から取得したロードアベレージと下限判定値ＪＢとを比較して、ＣＰＵの処理負荷に更に余裕があるか判別する。リソースコントローラ１２１は、ロードアベレージが下限判定値ＪＢを下回っていると判別した場合には、負荷予測テーブル（図３）及びデータテーブル１３０を参照しつつ、データテーブル１３０に設定された現在帯域よりも高い帯域を決定する。ステップＳ４１２〜Ｓ４１５の処理は、第１の実施例と同じである。
【０１０６】
上記した処理により、ゲートウェイ装置１００はゲートウェイ装置２００との間に形成されているトンネル７１０についての暗号化アルゴリズム及び帯域を再設定し、暗号化処理におけるセキュリティレベル及び通信スループットを向上させることができる。
【０１０７】
図１６は、暗号化通信管理部１２０によるＣＰＵ負荷調整処理ルーチンを表すフローチャートである。以下、図１６を参照しつつ、ＣＰＵ負荷調整処理について説明する。暗号化通信管理部１２０は、リソースコントローラ１２１からロードアベレージを取得する毎に当該ルーチンを実行する。
【０１０８】
先ず、リソースコントローラ１２１は、リソース監視部１１０からのロードアベレージを現在処理負荷値として保持する（ステップＳ５０１）。リソースコントローラ１２１は、このロードアベレージが下限判定値ＪＢよりも大きいか否かを判別する（ステップＳ５０２）。リソースコントローラ１２１は、ロードアベレージが下限判定値ＪＢよりも大きいと判別した場合すなわちＣＰＵの処理負荷に余裕がないと判別した場合には、当該ルーチンを終了する。
【０１０９】
一方、リソースコントローラ１２１は、ロードアベレージが下限判定値ＪＢよりも小さいと判別した場合すなわちＣＰＵの処理負荷に余裕があると判別した場合には、既に形成されているＶＰＮトンネルが複数個あるか否かを、データテーブル１３０を参照しつつ判別する（ステップＳ５０３）。複数個のＶＰＮトンネル名がデータテーブル１３０に設定されている場合には、リソースコントローラ１２１は、データテーブル１３０に設定されている現在帯域が０ＭｂｐｓのＶＰＮトンネルを優先的に設定変更対象トンネルとして選択する（ステップＳ５０４）。現在帯域が０ＭｂｐｓのＶＰＮトンネルがない場合には、データテーブル１３０に設定されている優先度の比較的低い（通常、最も低い）ＶＰＮトンネルを設定変更対象トンネルとして選択する（ステップＳ５０４）。一方、１つのＶＰＮトンネル名のみがデータテーブル１３０に設定されている場合には、リソースコントローラ１２１は、そのＶＰＮトンネルを設定変更対象トンネルとして、次のステップＳ５０５へ移行する。
【０１１０】
リソースコントローラ１２１は、設定変更対象トンネルについて暗号化アルゴリズムの設定変更が可能か否かを、データテーブル１３０を参照して判別する（ステップＳ５０５）。設定変更対象トンネルに対して１つの利用可能暗号化アルゴリズムのみが設定されている場合には、リソースコントローラ１２１は、暗号化アルゴリズムを設定変更できないと判別してステップＳ５０６へ移行する。
【０１１１】
一方、リソースコントローラ１２１は、データテーブル１３０において設定変更対象トンネルに対して複数の利用可能暗号化アルゴリズムが設定されている場合に、設定変更可能と判別して暗号化アルゴリズムを設定変更する（ステップＳ５０７）。その際、リソースコントローラ１２１は、暗号化アルゴリズムのいずれか１つを任意に設定変更しても良いが、可能な限り高いセキュリティレベルの暗号化処理を施すという観点からは、ロードアベレージが上限判定値ＪＴを下回る設定変更のうち、比較的レベルの高い暗号化アルゴリズムを選択するのが望ましい。
【０１１２】
続いて、リソースコントローラ１２１は、リソース監視部１１０から現時点におけるロードアベレージを取得し、このロードアベレージが下限判定値ＪＢよりも小さいか否かを判別する（ステップＳ５０８）。リソースコントローラ１２１は、ロードアベレージが下限判定値ＪＢよりも小さいと判別した場合すなわちＣＰＵの処理負荷に更に余裕があると判別した場合、帯域を設定変更する（ステップＳ５０６）。その際、リソースコントローラ１２１は、帯域を任意の値に設定変更しても良いが、高スループットの通信を行う観点からは、ロードアベレージが上限判定値ＪＴを下回る設定変更のうち、比較的高い帯域から順に選択するのが望ましい。
【０１１３】
ここで、リソースコントローラ１２１は、ロードアベレージが上限判定値ＪＴを上回ってしまったと判別した場合には（ステップＳ５０９）、再度、暗号化アルゴリズム及び／又は帯域を設定し直す（ステップＳ５０６、Ｓ５０７）。再度の設定の際には、データテーブル１３０に設定されている優先度の高いＶＰＮトンネルから順に設定変更対象トンネルとする。つまり、例えば１度目の再設定時には２番目に優先度が高いＶＰＮトンネルを設定変更対象トンネルとし、２度目の再設定時には３番目に優先度が高いＶＰＮトンネルを設定変更対象トンネルとする。以降の再設定時も同様である。
【０１１４】
一方、ロードアベレージが上限判定値ＪＴ以下の場合、リソースコントローラ１２１は、ロードアベレージが下限判定値ＪＢよりも小さいか否かを判別する（ステップＳ５１０）。リソースコントローラ１２１は、ロードアベレージが下限判定値ＪＢよりも小さいと判別した場合すなわちすなわちＣＰＵの処理負荷に更に余裕があると判別した場合、既に形成されている他のＶＰＮトンネルが存在するか否かを、データテーブル１３０を参照しつつ判別する（ステップＳ５１１）。ステップＳ５１０までの処理において設定変更対象としたトンネルの名称とは別のＶＰＮトンネル名がデータテーブル１３０に設定されている場合には、リソースコントローラ１２１は、当該他のトンネルが存在すると判別し、再び、ステップＳ５０１の処理から実行する。
【０１１５】
一方、リソースコントローラ１２１は、他のトンネルが存在しないと判別した場合には、ＣＰＵ負荷調整処理ルーチンを終了する。なお、上記した例は、暗号化アルゴリズムの設定変更後に帯域を設定変更する場合の例であるが、帯域の設定変更後に暗号化アルゴリズムを設定変更するようなフローにしても良い。
【０１１６】
上記したように本実施例によるゲートウェイ装置によれば、暗号化アルゴリズムの種別を設定変更するだけでなく、帯域（通信レート）も設定変更できるので、ＣＰＵリソースに余裕がある場合には、他段階に亘って暗号化セキュリティレベルの向上及び高スループットが可能である。また、暗号化アルゴリズムに加えて帯域も設定変更できるので、より細かい処理負荷調整が可能であり、ＣＰＵリソースを最大限に活用できる。更に、単一の暗号化アルゴリズムの使用のみが許可されている場合であっても、帯域の調整によってＣＰＵの処理負荷を調整し、ＣＰＵリソースをより活用できる。このように、公衆網内に形成された仮想的な専用通信路を介して暗号化パケットを通信する際に適切なＣＰＵリソースを確保しつつ、ＣＰＵリソースを十分に活用することができる。
【符号の説明】
【０１１７】
１００  ゲートウェイ装置
１１０  リソース監視部
１２０  暗号化通信管理部
１２１  リソースコントローラ
１２２  鍵交換部
１２３  暗号化／復号化アルゴリズム設定部
１２４  帯域設定部
１３０  データテーブル
１４０  通信部
１４１  インターフェースＡ
１４２  インターフェースＢ
１４３  帯域制御部
１４４  暗号化／復号化部
１４５  中継部
１５０  演算処理部
１６０  記憶部
１７０  告知部
２００  ゲートウェイ装置
３００、４００  通信端末
５００、６００、７００  通信網
７１０  トンネル
【図１】
2010220038.tif 000003
【図２】
2010220038.tif 000004
【図３】
2010220038.tif 000005
【図４】
2010220038.tif 000006
【図５】
2010220038.tif 000007
【図６】
2010220038.tif 000008
【図７】
2010220038.tif 000009
【図８】
2010220038.tif 000010
【図９】
2010220038.tif 000011
【図１０】
2010220038.tif 000012
【図１１】
2010220038.tif 000013
【図１２】
2010220038.tif 000014
【図１３】
2010220038.tif 000015
【図１４】
2010220038.tif 000016
【図１５】
2010220038.tif 000017
【図１６】
2010220038.tif 000018