(57)【要約】【課題】  大規模なネットワークを、他のネットワーク内のアドレスの使用数によらずに容易に構築することができるネットワーク構築プログラム、ネットワーク構築方法、及びネットワーク構築装置を提供する。【解決手段】  ネットワーク構築プログラムは、複数のノードから階層状のネットワークを構成し、最上位の階層の各ノードに、各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当て、他の階層の各ノードの一部に、そのノード間の通信に用いられる送信元アドレスを、他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当て、ノード数と、第１機能により用いられる他のネットワーク内の送信元アドレス数と、第２機能により送信元アドレスが変換されるノード最大数とに基づいて、第２機能を割り当てる他の階層のノードを決定するプログラムである。【選択図】図２
2019068352.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードから階層状のネットワークを構成し、
前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当て、
他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当て、
前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定する、処理を、コンピュータに実行させることを特徴とするネットワーク構築プログラム。
【請求項２】
前記ネットワークを構成する処理において、前記最上位の階層のノード数が、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数以下となるように前記ネットワークを構成することを特徴とする請求項１に記載のネットワーク構築プログラム。
【請求項３】
前記第２機能を割り当てる処理において、前記他の階層で前記第２機能を割り当てるノード数を、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と同一とすることを特徴とする請求項１または２に記載のネットワーク構築プログラム。
【請求項４】
前記第２機能を割り当てる処理において、前記他の階層で前記第２機能を割り当てるノード数を、該階層の上位側に隣接する階層で前記第２機能を割り当てるノード数より多い数とすることを特徴とする請求項１または２に記載のネットワーク構築プログラム。
【請求項５】
前記第１機能及び前記第２機能の割り当てに関する情報を記録し、
前記情報に基づき前記ネットワークの構成を復元する、処理を、前記コンピュータに実行させることを特徴とする請求項１乃至４の何れかに記載のネットワーク構築プログラム。
【請求項６】
前記第２機能を割り当てる処理において、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの動作状態を監視し、
前記複数のノードのうち、前記第２ノードの動作の停止を検出した場合、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、動作が停止していない他のノードに変更する、処理を、前記コンピュータに実行させることを特徴とする請求項１乃至５の何れかに記載のネットワーク構築プログラム。
【請求項７】
前記第２機能を割り当てる処理において、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの負荷を監視し、
前記複数のノードのうち、前記第２ノードの負荷に応じて、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、前記第２ノードより負荷が低い他のノードに変更する、処理を、前記コンピュータに実行させることを特徴とする請求項１乃至５の何れかに記載のネットワーク構築プログラム。
【請求項８】
複数のノードから階層状のネットワークを構成する工程と、
前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当てる工程と、
他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当てる工程と、
前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定する工程とを、コンピュータが実行することを特徴とするネットワーク構築方法。
【請求項９】
複数のノードから階層状のネットワークを構成する構成部と、
前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当て、他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当てる割り当て部とを有し、
前記割り当て部は、前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定することを特徴とするネットワーク構築装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、ネットワーク構築プログラム、ネットワーク構築方法、及びネットワーク構築装置に関する。
【背景技術】
【０００２】
異なるネットワークの間でパケットのアドレスを変換する機能として、ネットワークアドレス変換（NAT: Network Address Translation）が用いられる（例えば特許文献１参照）。また、送信元アドレスを変換する機能はＳＮＡＴ（Source NAT）と呼ばれる。
【０００３】
例えば、ネットワーク内の単一のノードのみにＳＮＡＴが設けられた場合、そのノードに負荷が集中して障害が発生することにより、他のネットワークとの通信が不可能となるおそれがある。このため、ＳＮＡＴは、例えばネットワーク内の複数のノードに分散して配置されることがある。
【０００４】
しかし、この場合、通信先の他のネットワーク内の送信元アドレスがネットワーク内の全てのノードと同数だけ必要となるため、例えば、インターネットと通信しようとすると、インターネット上のグローバルＩＰ（Internet Protocol）アドレスが不足するおそれがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００７／０４３３８１号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
これに対し、例えば各ノードを階層状に配置したネットワークを構成し、各階層の特定のノードにＳＮＡＴを設け、隣接する階層間のＳＮＡＴ同士を接続すれば、ＳＮＡＴが分散化されるだけでなく、通信先の他のネットワーク内のアドレスの使用数が削減される。これにより、使用するアドレスを節約することができるため、大規模なネットワークの構築が可能となる。
【０００７】
しかし、ネットワークの規模が大きくなるほど、通信先の他のネットワーク内のアドレスの使用数に応じてネットワーク構成が複雑化するため、ネットワークの構築が現実的に困難となるという問題がある。
【０００８】
そこで本件は、大規模なネットワークを、他のネットワーク内のアドレスの使用数によらずに容易に構築することができるネットワーク構築プログラム、ネットワーク構築方法、及びネットワーク構築装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、ネットワーク構築プログラムは、複数のノードから階層状のネットワークを構成し、前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当て、他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当て、前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定する、処理を、コンピュータに実行させるプログラムである。
【００１０】
１つの態様では、ネットワーク構築方法は、複数のノードから階層状のネットワークを構成する工程と、前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当てる工程と、他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当てる工程と、前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定する工程とを、コンピュータが実行する方法である。
【００１１】
１つの態様では、ネットワーク構築装置は、複数のノードから階層状のネットワークを構成する構成部と、前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当て、他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当てる割り当て部とを有し、前記割り当て部は、前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定する。
【発明の効果】
【００１２】
１つの側面として、大規模なネットワークを、他のネットワーク内のアドレスの使用数によらずに容易に構築することができる。
【図面の簡単な説明】
【００１３】
【図１】ネットワーク構築システムの一例を示す構成図である。
【図２】物理サーバに構築されるネットワークの一例を示す構成図である。
【図３】ネットワーク構築装置の一例を示す構成図である。
【図４】ネットワーク構築処理の一例を示すシーケンス図である。
【図５】タワー型の仮想ネットワークの一例を示す図である。
【図６】ピラミッド型の仮想ネットワークの一例を示す図である。
【図７】ネットワーク構成ファイルの更新処理の一例を示すシーケンス図である。
【図８】仮想ネットワークの復元処理の一例を示すシーケンス図である。
【図９】ＳＮＡＴの接続変更処理の一例を示すシーケンス図である。
【図１０】ＳＮＡＴの接続変更の一例を示す図である。
【図１１】ＳＮＡＴの接続変更の他の例を示す図である。
【発明を実施するための形態】
【００１４】
図１は、ネットワーク構築システムの一例を示す構成図である。ネットワーク構築システムには、ネットワーク（ＮＷ）構築装置１と、物理サーバ２と、端末装置３とが含まれる。ネットワーク構築装置１、物理サーバ２、及び端末装置３は、例えばＬＡＮ（Local Area Network）９０に接続され、例えばＬＡＮ９０を介し互いに通信する。また、物理サーバ２は、ＬＡＮ９０に加えて、例えばインターネット９１に接続されている。
【００１５】
端末装置３は、ネットワーク構築装置１の操作に用いられる。端末装置３としては、例えばパーソナルコンピュータなどが挙げられる。ユーザは、例えば端末装置３からネットワーク構築装置１にログインして、各種のコマンドを入力する。
【００１６】
ネットワーク構築装置１は、端末装置３から入力されるコマンドに従い、物理サーバ２に仮想的なネットワーク（以下、「仮想ネットワーク」と表記）を構築する。ネットワーク構築装置１は、物理サーバ２に複数のコンピュートノード（以下、「ノード」と表記）を生成し、そのノードから階層状のネットワークを構成する。ネットワーク構築装置１は、後述するように、特定のノードにＳＮＡＴを割り当てる。なお、ネットワーク構築装置１としては、例えば汎用サーバが挙げられるが、これに限定されず、例えばネットワークの構築専用のハードウェアにより構成されてもよい。
【００１７】
物理サーバ２には、ネットワーク構築装置１から受信したコマンドに従い、仮想ネットワークが構築される。仮想ネットワークは、階層状に配置された複数のノードから構成され、各ノードには、例えば各種の機能を備えた１以上の仮想マシン（VM: Virtual Machine）が設けられている。また、特定のノードにはＳＮＡＴが設けられているため、仮想ネットワーク内の送信元アドレスからインターネット９１内の送信元アドレスへの変換が可能である。
【００１８】
本例では、ネットワーク構築装置１の構築対象のネットワークの一例として、仮想ネットワークを挙げるが、これに限定されず、構築対象のネットワークは、例えば物理的な複数のノードから構成されるネットワークであってもよい。また、本例では、仮想ネットワークの通信先の他のネットワークとして、インターネット９１を挙げるが、これに限定されず、例えばＬＡＮ９０とは別のＬＡＮであってもよい。
【００１９】
また、物理サーバ２は、例えばＣＰＵ（Central Processing Unit）などのプロセッサを含む回路などから構成される。なお、本例では、1台の物理サーバ２に仮想ネットワークを構築する場合を挙げるが、これに限定されず、複数台の物理サーバ２に１つの仮想ネットワークが構築されてもよい。
【００２０】
次に、仮想ネットワークの構成について述べる。
【００２１】
図２は、物理サーバ２に構築されるネットワーク（つまり仮想ネットワーク）の一例を示す構成図である。仮想ネットワークは、一例として、階層状に配置されたノードＮ＃１〜Ｎ＃２１０から構成される。各ノードＮ＃１〜Ｎ＃２１０には、各種の機能を備えた１以上のＶＭが設けられている。各ノードＮ＃１〜Ｎ＃２１０は、パケット（例えばＩＰパケット）を送受信することにより通信する。なお、仮想ネットワークのノード数に限定はない。
【００２２】
また、仮想ネットワークには、一例として第１階層〜第３階層が含まれる。第１階層は最上位の階層であり、第３階層は最下位の階層である。第１階層にはノードＮ＃１〜Ｎ＃１０が含まれ、第２階層にはノードＮ＃１１〜Ｎ＃１１０が含まれ、第３階層にはノードＮ＃１１１〜Ｎ＃２１０が含まれている。
【００２３】
第１階層〜第３階層内のノード間の通信に用いられるアドレスは相違する。つまり、第１階層〜第３階層は、それぞれ、別々のネットワークアドレスを有している。このため、第１階層〜第３階層のうち、隣接する階層間ではＳＮＡＴによるアドレス変換が行われる。
【００２４】
第１階層のノードＮ＃１〜Ｎ＃１０は、共通の通信回線２０に接続され、通信回線２０を介し互いに通信する。また、通信回線２０は、ＬＡＮ９０を介してネットワーク構築装置１にも接続されており、ネットワーク構築装置１は、通信回線２０を介しノードＮ＃１〜Ｎ＃１０と通信することができる。
【００２５】
ノードＮ＃１〜Ｎ＃１０には、１以上のＶＭと、ＳＮＡＴとがそれぞれ設けられている。ノードＮ＃１〜Ｎ＃１０の各ＳＮＡＴは、第１機能の一例であり、各ノードＮ＃１〜Ｎ＃１０間の通信に用いられる送信元アドレスを、インターネット９１内の送信元アドレスに変換する。より具体的には、ノードＮ＃１〜Ｎ＃１０は、ＳＮＡＴによりノードＮ＃１〜Ｎ＃１０のローカルなＩＰアドレスをインターネット９１のグローバルＩＰアドレスに変換する。このため、ノードＮ＃１〜Ｎ＃１０は、インターネット９１と通信することができる。
【００２６】
第２階層のノードＮ＃１１〜Ｎ＃１１０は、共通の通信回線２１に接続され、通信回線２１を介し互いに通信する。また、通信回線２１は、ＬＡＮ９０を介してネットワーク構築装置１にも接続されており、ネットワーク構築装置１は、通信回線２１を介しノードＮ＃１１〜Ｎ＃１１０と通信することができる。
【００２７】
ノードＮ＃１１〜Ｎ＃１１０は、一例として、グループＧ＃１〜Ｇ＃１０に分けられている。例えば、グループ＃１にはノードＮ＃１１〜Ｎ＃２０が含まれ、グループ＃２にはノードＮ＃２１〜Ｎ＃３０が含まれ、グループＧ＃１０にはノードＮ＃１０１〜Ｎ＃１１０が含まれている。
【００２８】
各グループＧ＃１〜Ｇ＃１０の１つのノードＮ＃１１，Ｎ＃２１，Ｎ＃１０１には、ＶＭに加えて、ＳＮＡＴが設けられている。すなわち、第２階層のノードＮ＃１１〜Ｎ＃１１０の一部にはＳＮＡＴが設けられている。
【００２９】
ノードＮ＃１１，Ｎ＃２１，・・・，Ｎ＃１０１のＳＮＡＴは、第２機能の一例であり、各ノードＮ＃１１〜Ｎ＃１１０間の通信に用いられる送信元アドレスを、上位側に隣接する第１階層の各ノード間の通信に用いられる送信元アドレスに変換する。より具体的には、ノードＮ＃１１，Ｎ＃２１，・・・，Ｎ＃１０１は、ＳＮＡＴによりノードＮ＃１１〜Ｎ＃１１０のローカルなＩＰアドレスを第１階層内のＩＰアドレスに変換する。このため、ノードＮ＃１１〜Ｎ＃１１０は、第１階層のノードＮ＃１〜Ｎ＃１０と通信することができる。
【００３０】
第３階層のノードＮ＃１１１〜Ｎ＃２１０は、共通の通信回線２２に接続され、通信回線２２を介し互いに通信する。また、通信回線２２は、ＬＡＮ９０を介してネットワーク構築装置１にも接続されており、ネットワーク構築装置１は、通信回線２２を介しノードＮ＃２０１〜Ｎ＃２１０と通信することができる。
【００３１】
ノードＮ＃１１１〜Ｎ＃２１０は、一例として、グループＧ＃１１〜Ｇ＃２０に分けられている。例えば、グループＧ＃１１にはノードＮ＃１１１〜Ｎ＃１２０が含まれ、グループＧ＃１２にはノードＮ＃１２１〜Ｎ＃１３０が含まれ、グループＧ＃２０にはノードＮ＃２０１〜Ｎ＃２１０が含まれている。
【００３２】
各グループＧ＃１１〜Ｇ＃２０の１つのノードＮ＃１１１，Ｎ＃１２１，・・・，＃２０１には、ＶＭに加えて、ＳＮＡＴが設けられている。すなわち、第３階層のノードＮ＃１１〜Ｎ＃２１０の一部にはＳＮＡＴが設けられている。
【００３３】
ノードＮ＃１１１，Ｎ＃１２１，・・・，＃２０１のＳＮＡＴは、第２機能の一例であり、各ノードＮ＃１１１〜Ｎ＃２１０間の通信に用いられる送信元アドレスを、上位側に隣接する第２階層の各ノード間の通信に用いられる送信元アドレスに変換する。より具体的には、ノードＮ＃１１１，Ｎ＃１２１，・・・，＃２０１は、ＳＮＡＴによりノードＮ＃１１１〜Ｎ＃２０１のローカルなＩＰアドレスを第２階層内のＩＰアドレスに変換する。このため、ノードＮ＃１１１〜Ｎ＃２１０は、第２階層のノードＮ＃１１〜Ｎ＃１１０と通信することができる。
【００３４】
このように、仮想ネットワークにおいて、第３階層のノードＮ＃１１１〜Ｎ＃２１０の送信元アドレスは、ノードＮ＃１１１，Ｎ＃１２１，・・・，Ｎ＃２０１のＳＮＡＴにより第２階層内の送信元アドレスに変換される。第２階層のノードＮ＃１１〜Ｎ＃１１０の送信元アドレスは、ノードＮ＃１１，Ｎ＃２１，・・・，Ｎ＃１０１のＳＮＡＴにより第１階層内の送信元アドレスに変換される。また、第１階層のノードＮ＃１〜Ｎ＃１０の送信元アドレスは、ノードＮ＃１〜Ｎ＃１０のＳＮＡＴによりインターネット９１内の送信元アドレスに変換される。
【００３５】
上記の構成によると、仮想ネットワーク内のノードＮ＃１〜Ｎ＃２１０は、ＳＮＡＴにより段階的に送信元アドレスが変換されるため、インターネット９１と通信することができる。なお、本例では、送信元アドレスの一例として、ＩＰパケットの送信元ＩＰアドレスを挙げるが、これに限定されない。
【００３６】
また、第１階層〜第３階層の各々におけるアドレス変換は、複数のＳＮＡＴにより分担される。例えば、第３階層において、ノードＮ＃１１１のＳＮＡＴは、グループＧ＃１１のアドレス変換を行い、ノードＮ＃１２１のＳＮＡＴは、グループＧ＃１２のアドレス変換を行い、ノードＮ＃２０１のＳＮＡＴは、グループＧ＃２０のアドレス変換を行う。また、第２階層において、ノードＮ＃１１のＳＮＡＴは、グループＧ＃１のアドレス変換を行い、ノードＮ＃２１のＳＮＡＴは、グループＧ＃２のアドレス変換を行い、ノードＮ＃１０１のＳＮＡＴは、グループＧ＃１０のアドレス変換を行う。
【００３７】
また、第２階層のノードＮ＃１１のＳＮＡＴは第３階層のノードＮ＃１１１のＳＮＡＴと接続されている。つまり、ノードＮ＃１１のＳＮＡＴはノードＮ＃１１１のＳＮＡＴの通信先として設定されている。このため、ノードＮ＃１１のＳＮＡＴは、第３階層のグループＧ＃１１のアドレス変換も行う。これと同様に、ノードＮ＃２１のＳＮＡＴは、第３階層のグループＧ＃１２のアドレス変換を行い、ノードＮ＃１０１のＳＮＡＴは、第３階層のグループＧ＃２０のアドレス変換を行う。
【００３８】
さらに、第１階層のノードＮ＃１のＳＮＡＴは第２階層のノードＮ＃１１のＳＮＡＴと接続されている。つまり、ノードＮ＃１のＳＮＡＴはノードＮ＃１１のＳＮＡＴの通信先として設定されている。このため、ノードＮ＃１のＳＮＡＴは、第２階層のグループＧ＃１のアドレス変換も行う。これと同様に、ノードＮ＃２のＳＮＡＴは、第２階層のグループＧ＃２のアドレス変換を行い、ノードＮ＃１０のＳＮＡＴは、第２階層のグループＧ＃１０のアドレス変換を行う。
【００３９】
上記の構成によると、第１階層内のパケットの送信元ＩＰアドレスをグループＧ＃１〜Ｇ＃２０ごとにインターネット９１内の送信元ＩＰアドレスに変換することができる。例えば、第２階層のノードＮ＃１１のＳＮＡＴは、グループＧ＃１１の何れかのノードＮ＃１１１〜Ｎ＃１２０の送信元ＩＰアドレス「100.10.5.5」を第２階層内のパケットの送信元ＩＰアドレス「192.168.10.11」に変換する。
【００４０】
次に、第２階層のノードＮ＃１１のＳＮＡＴは、送信元ＩＰアドレス「192.168.10.11」を第１階層内のパケットの送信元ＩＰアドレス「150.70.20.5」に変換する。次に、第１階層のノードＮ＃１のＳＮＡＴは、送信元ＩＰアドレス「150.70.20.5」をインターネット９１内の送信元ＩＰアドレス「10.20.30.51」に変換する。
【００４１】
このように、仮想ネットワークは、ＳＮＡＴを１つのノードではなく、複数のノードに分散して配置されているため、アドレス変換処理の負荷をグループ＃１〜＃２０ごとのＳＮＡＴに分担させることができる。
【００４２】
また、第１階層のノードＮ＃１〜Ｎ＃１０のＳＮＡＴは、第２階層内のパケットの送信元ＩＰアドレスを別々のインターネット９１内の送信元ＩＰアドレス（グローバルＩＰアドレス）に変換する。
【００４３】
例えば、ノードＮ＃１のＳＮＡＴは、第２階層内のパケットの送信元ＩＰアドレスをインターネット９１内の送信元ＩＰアドレス「10.20.30.51」に変換し、ノードＮ＃２のＳＮＡＴは、第２階層内のパケットの送信元ＩＰアドレスをインターネット９１内の送信元ＩＰアドレス「10.20.30.52」に変換する。また、ノードＮ＃１０のＳＮＡＴは、第２階層内のパケットの送信元ＩＰアドレスをインターネット９１内の送信元ＩＰアドレス「10.20.30.60」に変換する。
【００４４】
このため、仮想ネットワークは、第１階層のノード数と同数のインターネット９１内の送信元ＩＰアドレスだけが必要となる。このため、仮想ネットワークにおけるインターネット９１内の送信元ＩＰアドレスの使用数が低減される。
【００４５】
仮想ネットワークの構築は、その規模が大きくなるほど、通信先のインターネット９１内の送信元ＩＰアドレス（グローバルＩＰアドレス）の使用数に応じてネットワーク構成が複雑化する。
【００４６】
そこで、ネットワーク構築装置１は、仮想ネットワーク内のノード数と、インターネット９１内の送信元ＩＰアドレスの使用数と、第２階層以下のＳＮＡＴにより送信元ＩＰアドレスが変換されるノードの最大数とに基づいて、ＳＮＡＴを割り当てる第２階層以下のノードを決定する。このため、大規模な仮想ネットワークを、インターネット９１内の送信元ＩＰアドレスの使用数によらずに容易に構築することができる。以下にネットワーク構築装置１の構成について述べる。
【００４７】
図３は、ネットワーク構築装置１の一例を示す構成図である。ネットワーク構築装置１は、ＣＰＵ１０、ＲＯＭ（Read Only Memory）１１、ＲＡＭ（Random Access Memory）１２、ＨＤＤ（Hard Disk Drive）１３、及び通信ポート１４を有する。ＣＰＵ１０は、互いに信号の入出力ができるように、ＲＯＭ１１、ＲＡＭ１２、ＨＤＤ１３、及び通信ポート１４と、バス１９を介して接続されている。なお、ＣＰＵ１０はコンピュータの一例である。
【００４８】
ＲＯＭ１１は、ＣＰＵ１０を駆動するプログラムが格納されている。プログラムには、オペレーティングシステム（OS: Operating System）と、ネットワーク構築方法を実行するネットワーク構築プログラムとが含まれる。ＲＡＭ１２は、ＣＰＵ１０のワーキングメモリとして機能する。通信ポート１４は、例えばＬＡＮスイッチ回路などのハードウェアなどから構成され、ＬＡＮ９０を介した通信を処理する。このため、ＣＰＵ１０は、通信ポート１４を介し端末装置３及び物理サーバ２と通信する。
【００４９】
ＣＰＵ１０は、ＲＯＭ１１からプログラムを読み込むと、機能として、動作制御部１００、ユーザインターフェース（ユーザＩＦ）部１０１、ネットワーク（ＮＷ）構築部１０２、仮想環境制御部１０３、ノード制御部１０４、ノード監視部１０５、構成ファイル解析部１０６、及び仮想環境管理部１０７が形成される。また、ＨＤＤ１３には、ネットワーク（ＮＷ）設定ファイル１３０とネットワーク（ＮＷ）構成ファイル１３１が格納される。
【００５０】
動作制御部１００はネットワーク構築装置１の全体の動作を制御する。動作制御部１００は、後述するシーケンスに従いユーザＩＦ部１０１、ＮＷ構築部１０２、仮想環境制御部１０３、ノード制御部１０４、ノード監視部１０５、構成ファイル解析部１０６、及び仮想環境管理部１０７に対して動作を指示する。
【００５１】
ユーザＩＦ部１０１は、通信ポート１４を介し端末装置３からコマンドを受け付ける。ユーザＩＦ部１０１は、コマンドの内容を解釈し、動作制御部１００にその処理を依頼する。
【００５２】
ＮＷ構築部１０２は、端末装置３からのネットワーク（ＮＷ）構築コマンドまたはＮＷ構成ファイル１３１に従って物理サーバ２に仮想ネットワークを構築する。ＮＷ構築部１０２は、ＮＷ構築コマンドに含まれる設定パラメータに基づいて、仮想ネットワーク内の特定のノードにＳＮＡＴを割り当てる。なお、設定パラメータは、ネットワーク（ＮＷ）設定ファイルに予め書き込まれていてもよい。
【００５３】
設定パラメータには、仮想ネットワーク内のノード数と、インターネット９１内の送信元ＩＰアドレスの使用数（以下、「アドレス使用数」と表記）と、第２階層以下のＳＮＡＴにより送信元ＩＰアドレスが変換されるノードの最大数（以下、「変換対象ノード数」と表記）とが含まれる。図２の例において、ノード数は２１０であり、アドレス使用数は１０であり、変換対象ノード数は１０である。なお、変換対象ノード数には、下位側に隣接する階層のＳＮＡＴのノードは含まれない。
【００５４】
ＮＷ構築部１０２は、ノードの数と、アドレス使用数と、ノードの最大数とに基づいてＳＮＡＴを割り当てる第２階層以下のノードを決定する。ＮＷ構築部１０２は、最上位の階層（第１階層）の各ノードにＳＮＡＴを割り当て、決定した第２階層以下のノードにＳＮＡＴを割り当てる。なお、ＮＷ構築部１０２は割り当て部の一例である。
【００５５】
ＮＷ構築部１０２は、さらに、隣接する階層間のＳＮＡＴを接続する。つまり、ＮＷ構築部１０２は、第２階層以下の階層でＳＮＡＴを割り当てたノードを、そのノードの階層の上位側に隣接する階層でＳＮＡＴを割り当てたノードに接続する。これにより、ＳＮＡＴは、そのＳＮＡＴのノードの階層の下位側に隣接する階層のＳＮＡＴから入力されるパケットの送信元ＩＰアドレスを変換することができる。
【００５６】
また、ＮＷ構築部１０２は、仮想ネットワークの構築に関するネットワーク（ＮＷ）構成パラメータをＮＷ構成ファイル１３１に記録し、物理サーバ２または他の環境の物理サーバに仮想ネットワークを復元する。ＮＷ構成ファイル１３１には、例えば、各ノードのＩＰアドレス（パケットの送信元ＩＰアドレス）、ホスト名、及びノードＩＤ（図２のＮ＃１〜Ｎ＃２１０）が書き込まれている。さらに、ＮＷ構成ファイル１３１には、仮想ネットワーク内のノード数、アドレス使用数、ＳＮＡＴを割り当てられたノードのノードＩＤ、ＳＮＡＴの接続先のノードのノードＩＤ、変換対象ノード数、及び仮想ネットワークの階層数が書き込まれている。
【００５７】
このように、ＮＷ構築部１０２は、ＳＮＡＴの割り当てに関する情報を記録し、その情報に基づき仮想ネットワークの構成を復元する。このため、仮想ネットワークを物理サーバ２から他の物理サーバに容易に移し替えることが可能となる。
【００５８】
仮想環境制御部１０３は、構成部の一例であり、複数のノードから階層状の仮想ネットワークを構成する。より具体的には、仮想環境制御部１０３は、仮想環境管理部１０７にノードの生成とネットワークの構成を指示する。
【００５９】
仮想環境管理部１０７は、例えばオペレーティングシステムの機能として構成され、物理サーバ２に構成されるＶＭとノード構成などの仮想環境を管理する。仮想環境管理部１０７は、仮想環境制御部１０３からの指示に従い、物理サーバ２にノードを生成し、仮想ネットワークを構築する。なお、仮想環境管理部１０７は、ＣＰＵ１０の他の機能とは別のサーバに実装され、ＨＴＴＰ（HyperText Transfer Protocol）通信にて他の機能と連携してもよい。
【００６０】
ノード制御部１０４は、仮想ネットワーク内の各ノードを制御する。ノード制御部１０４は、ＮＷ構築部１０２の指示に従い、指定されたノードにＳＮＡＴを設定する。ＳＮＡＴの設定には、変換前後の送信元ＩＰアドレスの対応関係が含まれる。より具体的には、ノード制御部１０４は、該当ノードにＳＮＡＴを形成してアドレス変換の設定を行い、隣接する階層間のＳＮＡＴ同士を指示に従って接続する。
【００６１】
また、ノード制御部１０４は、端末装置３からのコマンドに従って、ＳＮＡＴが割り当てられたノードを確認し、確認結果に応じてＮＷ構成ファイル１３１を更新する。また、ノード制御部１０４は、ノード監視部１０５の指示に従い、ＳＮＡＴのノードの動作状態と各ノードの負荷を収集する。ノード制御部１０４は、ノード監視部１０５の指示に従い、ＳＮＡＴの動作状態とノードの負荷に応じて、隣接する階層間のＳＮＡＴのノードの接続を変更する。
【００６２】
ノード監視部１０５は、仮想ネットワーク内のノードのうち、ＳＮＡＴを割り当てられたノードの動作状態をノード制御部１０４により監視し、監視結果に応じ、隣接する階層間のＳＮＡＴのノードの接続を変更する。より具体的には、ノード監視部１０５は、ＳＮＡＴ同士が接続された一対のノードのうち、上位側の階層のＳＮＡＴのノード（以下、「上位側ノード」と表記）の動作状態に応じて、下位側の階層のＳＮＡＴのノード（以下、「下位側ノード」と表記）の接続先を変更する。なお、下位側ノードは第１ノードの一例であり、上位側ノードは第２ノードの一例である。
【００６３】
ノード監視部１０５は、上位側ノードの動作の停止を検出した場合、その下位側ノードの接続先を、上位側ノードと同じ階層の各ノードのうち、ＳＮＡＴを割り当てられ、動作が停止していない他のノードに変更する。このとき、ノード監視部１０５は、ノード制御部１０４にＳＮＡＴのノードの接続の変更を指示する。このため、仮想ネットワーク内のノードは、あるＳＮＡＴのノードが動作を停止しても、インターネット９１との通信を継続することができる。
【００６４】
また、ノード監視部１０５は、仮想ネットワーク内のノードのうち、ＳＮＡＴを割り当てられたノードの負荷を、ノード制御部１０４により監視する。ノード監視部１０５は、上位側ノードの負荷に応じて、その下位側ノードの接続先を、上位側ノードと同じ階層の各ノードのうち、ＳＮＡＴを割り当てられ、上位側ノードより負荷が低い他のノードに変更する。このため、仮想ネットワーク内のノードは、あるＳＮＡＴのノードが過負荷となっても、インターネット９１との通信を継続することができる。
【００６５】
構成ファイル解析部１０６は、ＮＷ構成ファイル１３１の作成、更新、及び読み出しを行う。
【００６６】
次に各処理のシーケンスを説明する。
【００６７】
図４は、ネットワーク構築処理の一例を示すシーケンス図である。なお、以下に述べる各シーケンスにおいて、ユーザＩＦ部１０１、ＮＷ構築部１０２、仮想環境制御部１０３、ノード制御部１０４、ノード監視部１０５、構成ファイル解析部１０６、及び仮想環境管理部１０７は、動作制御部１００を介して各種の情報などを互いに入出力する。また、以下に述べる各シーケンスにおいて、各種の指示やコマンドは、例えばＡＰＩ（Application Programming Interface）やＣＬＩ（Command Line Interface）により出力される。
【００６８】
端末装置３は、ユーザの操作に応じてＮＷ構築コマンドをネットワーク構築装置１に送信する。ネットワーク構築装置１において、ユーザＩＦ部１０１はＮＷ構築コマンドを解釈することにより設定パラメータを取得する。
【００６９】
設定パラメータには、上述したように、仮想ネットワーク内のノード数と、アドレス使用数と、変換対象ノード数とが含まれる。なお、ユーザＩＦ部１０１は、ＮＷ設定ファイル１３０から設定パラメータを取得してもよい。ユーザＩＦ部１０１はＮＷ構築部１０２に設定パラメータを出力する。
【００７０】
ＮＷ構築部１０２は、設定パラメータから仮想ネットワークの階層数を算出し、また、ノードにＳＮＡＴを割り当てる（ステップＳｔ１）。ＮＷ構築部１０２は、ＳＮＡＴを割り当てるとき、ＳＮＡＴを割り当てるノードを決定し、隣接する階層間においてＳＮＡＴが割り当てられたノード同士を接続する。なお、ＮＷ構築部１０２の処理の例については後述する。
【００７１】
ＮＷ構築部１０２は仮想環境制御部１０３にノード生成指示を出力する。ネットワーク（ＮＷ）構築指示には、ノード数及びアドレス数が含まれている。
【００７２】
仮想環境制御部１０３は、ＮＷ構築指示に従い、まず、ノード生成コマンドを仮想環境管理部１０７に出力する。仮想環境管理部１０７は、ノード生成コマンドに従い、物理サーバ２にノードを生成する。このとき、仮想環境管理部１０７は、ノード数分のノードを物理サーバ２に生成し、各ノードにノードＩＤ（Ｎ＃１〜Ｎ＃２１０）を割り当てる。仮想環境管理部１０７は、ノードの生成内容を、応答として仮想環境制御部１０３に出力する。
【００７３】
次に、仮想環境制御部１０３はＮＷ構築コマンドを仮想環境管理部１０７に出力する。仮想環境管理部１０７は、ＮＷ構築コマンドに従い、物理サーバ２に生成したノードにインターネット９１内の送信元ＩＰアドレス（グローバルＩＰアドレス）を割り当てる。このとき、仮想環境管理部１０７は、ノードＩＤの若い順に従い、送信元ＩＰアドレスの割り当てを行う。例えば図２の仮想ネットワークの場合、仮想環境管理部１０７は、ノードＮ＃１〜Ｎ＃１０に対し、１個ずつ送信元ＩＰアドレスを割り当てる。仮想環境管理部１０７は、仮想ネットワークの構築内容を、応答として仮想環境制御部１０３に出力する。
【００７４】
また、仮想環境制御部１０３は、最上位の第１階層のノード数がアドレス使用数以下となるように仮想ネットワークを構成してもよい。この場合、仮想環境管理部１０７は、ＮＷ構築コマンドに従い、１つのノードに対し複数の送信元ＩＰアドレスを割り当ててもよい。例えば図２の仮想ネットワークにおいて、仮想環境管理部１０７がノードＮ＃１に異なる複数の送信元ＩＰアドレスを割り当てた場合、ノードＮ＃１のＳＮＡＴは、変換元の送信元ＩＰアドレスに応じた送信元ＩＰアドレスに変換する。これにより、最上位の階層のノード数がアドレス使用数より少なくなるため、仮想ネットワークの構成が簡単化される。
【００７５】
仮想環境制御部１０３は、ノードの生成と仮想ネットワークの構築が完了すると、その旨を、応答としてＮＷ構築部１０２に出力する。
【００７６】
次に、仮想環境制御部１０３は、ステップＳｔ１の処理においてＳＮＡＴの割り当て情報に基づいてノード制御部１０４にＳＮＡＴ割当指示を出力する。ＳＮＡＴ割当指示には、ＳＮＡＴを割り当てるノードのノードＩＤと、隣接する階層間のＳＮＡＴを割り当てるノード同士の接続関係とが含まれている。
【００７７】
ノード制御部１０４は、ＳＮＡＴ割当指示に従って、物理サーバ２にＳＮＡＴ設定コマンドを送信する。物理サーバ２は、ＳＮＡＴ設定コマンドに従ってＳＮＡＴを設定し、その設定内容を、応答としてノード制御部１０４に送信する。ノード制御部１０４は、ＳＮＡＴの設定内容を、応答としてＮＷ構築部１０２に出力する。
【００７８】
例えば図２の仮想ネットワークの場合、ノード制御部１０４は、ノードＮ＃１〜Ｎ＃２，Ｎ＃１１，Ｎ＃２１，・・・，Ｎ＃１０１，Ｎ＃１１１，・・・，Ｎ＃２０１にＳＮＡＴを設定する。また、ノード制御部１０４は、例えば、第１階層のノードＮ＃１のＳＮＡＴを第２階層のノードＮ＃１１のＳＮＡＴに接続し、第２階層のノードＮ＃２１のＳＮＡＴを第３階層のノードＮ＃１２１のＳＮＡＴに接続する。
【００７９】
次に、ＮＷ構築部１０２は、上記の処理により取得したＮＷ構成パラメータを構成ファイル解析部１０６に出力する。構成ファイル解析部１０６は、ＮＷ構成パラメータを含むＮＷ構成ファイル１３１をＨＤＤ１３に作成する（ステップＳｔ２）。ＮＷ構成ファイル１３１は、上述したように、仮想ネットワークの復元に用いられる。構成ファイル解析部１０６は、ＨＤＤ１３のファイルシステムにおけるＮＷ構成ファイル１３１のパスを、応答としてＮＷ構築部１０２に出力する。
【００８０】
次に、ＮＷ構築部１０２は、ネットワークの構築処理の成否とＮＷ構成ファイル１３１のパスを、応答としてユーザＩＦ部１０１に出力する。ユーザＩＦ部１０１は、その応答を端末装置３に送信する。このようにして、ネットワークの構築処理は行われる。
【００８１】
上記のステップＳｔ１の処理において、ＮＷ構築部１０２は、ノードの数と、アドレス数と、変換対象ノード数とに基づいて、第２階層以下の階層においてＳＮＡＴを割り当てるノードを決定する。以下にその詳細を述べる。
【００８２】
ＮＷ構築部１０２は、仮想ネットワークの構成方式を、例えば「タワー型」と「ピラミッド型」から選択する。「タワー型」は、例えば、図２に示された仮想ネットワークのように、各階層のＳＮＡＴ数が同一（図２の例では１０個）である構成方式である。また、「ピラミッド型」は、第３階層以下の階層のＳＮＡＴ数を、その上位側に隣接する階層のＳＮＡＴ数より多い数とする構成方式である。なお、構成方式は、例えばＮＷ設定ファイル１３０の設定により選択されてもよいし、端末装置３からのＮＷ構築コマンドのパラメータにより選択されてもよい。
【００８３】
（タワー型）
図５は、タワー型の仮想ネットワークの一例を示す図である。本例の仮想ネットワークにおいて、ノード数は２１０であり、アドレス使用数は１０であり、変換対象ノード数は１０である。
【００８４】
ＮＷ構築部１０２は、設定パラメータから仮想ネットワークの階層数を算出し、階層ごとにＳＮＡＴを割り当てるノード（以下、「ＳＮＡＴノード」と表記）のノードＩＤを算出する。
【００８５】
Ｌ＝１＋（Ｍ−Ｄ）／Ｄ／Ｈ     ・・・（１）
第１階層のＳＮＡＴノードのノードＩＤ＝｛１，２，・・・，Ｄ｝ ・・・（２）
第ｉ階層のＳＮＡＴノードのノードＩＤ＝Ｄ＋１＋｛Ｈ×（α―１）｝
（ｉ：２以上の整数） ・・・（３）
【００８６】
ＮＷ構築部１０２は、上記の式（１）により階層数Ｌを算出する。式（１）において、変数Ｍは仮想ネットワーク内のノード数であり、変数Ｄはアドレス使用数であり、変数Ｈは変換対象ノード数である。なお、式（１）の算出値の小数点以下は切り上げられる。
【００８７】
本例において、ノード数Ｍ＝２１０、アドレス使用数Ｄ＝１０、及び変換対象ノード数Ｈ＝１０とすると、階層数Ｌは３（＝１＋（２１０−１０）／１０／１０）となる。
【００８８】
また、ＮＷ構築部１０２は、上記の式（２）により第１階層のＳＮＡＴノードのノードＩＤを算出する。本例において、第１階層のＳＮＡＴノードには、インターネット９１内の送信元ＩＰアドレスが１つずつ割り当てられると仮定すると、第１階層のＳＮＡＴノードのノードＩＤはＮ＃１，Ｎ＃２，・・・，Ｎ＃１０となる。
【００８９】
Ｈ×α＜Ｍ       ・・・（４）
【００９０】
また、ＮＷ構築部１０２は、上記の式（３）により第ｉ階層のＳＮＡＴノードのノードＩＤを算出する。式（３）において、変数αは、上記の式（４）を満たす全ての自然数である。本例では、変数αは｛１，２，・・・，２０｝となる。このため、第ｉ階層のＳＮＡＴノードのノードＩＤ（Ｎ＃）は、｛１１，２１，３１，５１，６１，７１，８１，９１，１０１，１１１，１２１，１３１，１４１，１５１，１６１，１７１，１８１，１９１，２０１｝（＝１０＋１＋（１０×（α−１）））となる。
【００９１】
次に、ＮＷ構築部１０２は、第１階層のＳＮＡＴノードに接続される第２階層のＳＮＡＴノードのノードＩＤ（以下、「第１階層の接続対象ノード番号」と表記）と、第ｊ階層以下（ｊ：２以上の整数）のＳＮＡＴノードに接続される第（ｊ＋１）階層のＳＮＡＴノードのノードＩＤ（以下、「第ｊ階層の接続対象ノード番号」と表記）とを算出する。
【００９２】
第１階層の接続対象ノード番号＝Ｎｉｄ×Ｈ＋１   ・・・（５）
第ｊ階層の接続対象ノード番号＝Ｎｉｄ’＋Ｈ×Ｄ  ・・・（６）
【００９３】
ＮＷ構築部１０２は、上記の式（５）により第１階層の接続対象ノード番号を算出する。式（５）において、変数Ｎｉｄは第１階層のＳＮＡＴノードのノードＩＤである。
【００９４】
本例において、Ｎｉｄ（Ｎ＃）は｛１，２，・・・，１０｝である。ノードＮ＃１（Ｎｉｄ＝１）を例に挙げると、第１階層の接続対象ノード番号はＮ＃１１（＝１×１０＋１）となる。このため、第１階層のＳＮＡＴノードＮ＃１には、第２階層のＳＮＡＴノードＮ＃１１が接続される。
【００９５】
また、ＮＷ構築部１０２は、上記の式（６）により第ｊ階層の接続対象ノード番号を算出する。式（５）において、変数Ｎｉｄ’は第（ｊ−１）階層のＳＮＡＴノードのノードＩＤである。
【００９６】
第２階層のＳＮＡＴノードＮ＃１１（Ｎｉｄ’＝１１）を例に挙げると、第３階層の接続対象ノード番号はＮ＃１１１（＝１１＋１０×１０）となる。このため、第２階層のＳＮＡＴノードＮ＃１１には、第３階層のＳＮＡＴノードＮ＃１１１が接続される。
【００９７】
このような算出処理によって、ＮＷ構築部１０２は、第２階層以下の階層においてＳＮＡＴを割り当てるノード数をアドレス使用数と同一とする。このため、第１階層のノードＮ＃１〜Ｎ＃１０のＳＮＡＴは、第２階層以下の各階層のＳＮＡＴノードＮ＃１１，Ｎ＃２１，・・・，＃２０１のアドレス変換を１つずつ分担することができる。
【００９８】
例えば、ノードＮ＃１のＳＮＡＴは、第２階層のＳＮＡＴノードＮ＃１１と第３階層のＳＮＡＴノードＮ＃１１１のアドレス変換を行い、ノードＮ＃２のＳＮＡＴは、第２階層のＳＮＡＴノードＮ＃２１と第３階層のＳＮＡＴノードＮ＃１２１のアドレス変換を行う。また、ノードＮ＃１０のＳＮＡＴは、第２階層のＳＮＡＴノードＮ＃１０１と第３階層のＳＮＡＴノードＮ＃２０１のアドレス変換を行う。これにより、ＳＮＡＴのアドレス変換の処理の負荷が適切に分散される。
【００９９】
（ピラミッド型）
図６は、ピラミッド型の仮想ネットワークの一例を示す図である。本例の仮想ネットワークにおいて、ノード数は１１１０であり、アドレス使用数は１０であり、変換対象ノード数は１０である。なお、図６において、第３階層のノードＮ＃１１１〜Ｎ＃１１１０のＶＭの図示は省略する。
【０１００】
ピラミッド型の仮想ネットワークにおいて、第１階層及び第２階層の構成はタワー型の仮想ネットワークと同様であるが、第３階層の構成はタワー型の仮想ネットワークとは異なる。第３階層のＳＮＡＴノード数は第１階層及び第２階層のＳＮＡＴノード数より多い。
【０１０１】
より具体的には、第２階層には１０個のグループＧ＃１〜Ｇ＃１０が存在し、各グループＧ＃１〜Ｇ＃１０には１つのＳＮＡＴノードＮ＃１１，Ｎ＃２１，・・・Ｎ＃１０１が設けられている。また、第３階層には１００個のグループＧ＃１１〜Ｇ＃１１０が存在し、各グループＧ＃１１〜Ｇ＃１１０には１つのＳＮＡＴノードＮ＃１１１，Ｎ＃１２１，・・・，Ｎ＃１１０１が設けられている。
【０１０２】
第２階層の各ＳＮＡＴノードＮ＃１１，Ｎ＃２１，・・・Ｎ＃１０１には、第３階層のＳＮＡＴノードが１０個ずつ接続される。例えば、ＳＮＡＴノードＮ＃１１には、第３階層のＳＮＡＴノードＮ＃１１１，Ｎ＃１２１，・・・，Ｎ＃２０１が接続され、ＳＮＡＴノードＮ＃２１には、第３階層のＳＮＡＴノードＮ＃２１１，Ｎ＃２２１，・・・，Ｎ＃３０１が接続される。
【０１０３】
このため、第２階層の各ＳＮＡＴは、第３階層の１０個のグループＧ＃１１〜Ｇ＃１１０のアドレス変換を行う。例えば、ノードＮ＃１１のＳＮＡＴは、グループＧ＃１１〜Ｇ＃２０のアドレス変換を行い、ノードＮ＃２１のＳＮＡＴは、グループＧ＃２１〜Ｇ＃３０のアドレス変換を行う。
【０１０４】
このような仮想ネットワークの構成によると、第１階層及び第２階層のＳＮＡＴのアドレス変換の処理の負荷は、タワー型の仮想ネットワークより大きくなるが、アドレス変換の処理の負荷は分散される。また、階層数は、タワー型の仮想ネットワークより少なくなるため、最下位の第３階層のノードＮ＃１１１〜Ｎ＃１１１０からインターネット９１に通信する場合のアドレス変換の回数が、タワー型の仮想ネットワークより少なくなり、通信の所要時間が短縮される。
【０１０５】
ＮＷ構築部１０２は、例えば、ノード数、アドレス使用数、変換対象ノード数、及び１つのＳＮＡＴに接続可能な下位側に隣接する階層のＳＮＡＴ数から階層数（本例では１０個）を算出する。また、ＮＷ構築部１０２は、上記の式（２）及び式（３）からＳＮＡＴノードのノードＩＤを算出し、上記の式（５）により第１階層の接続対象ノード番号を算出する。
【０１０６】
第ｊ階層の接続対象ノード番号＝Ｎｉｄ’＋Ｈ×Ｄ＋
Ｈ×（Ｄ−１）×（Ｎｉｄ’−１）／（Ｄ−１）＋Ｈ×β  ・・・（７）
β＝｛０，１，・・・，Ｄ−１｝     ・・・（８）
【０１０７】
また、ＮＷ構築部１０２は、上記の式（７）により第ｊ階層の接続対象ノード番号を算出する。式（７）において、変数βは上記の式（８）を満たす値である。本例では、Ｄ＝１０であるため、変数βは、｛０，１，・・・，９｝となる。
【０１０８】
第２階層のＳＮＡＴノードＮ＃１１（Ｎｉｄ’＝１１）を例に挙げると、第３階層の接続対象ノード番号はＮ＃１１１，Ｎ＃１２１，Ｎ＃１３１，Ｎ＃１４１，Ｎ＃１５１，Ｎ＃１６１，Ｎ＃１７１，Ｎ＃１８１，Ｎ＃１９１，Ｎ＃２０１となる。これは、１１＋１０×１０＋１０×（１０−１）×（（１１−１）／１０−１）＋１０×｛０，１，２，・・・１０｝により算出される。
【０１０９】
このため、第２階層のＳＮＡＴノードＮ＃１１には、第３階層のＳＮＡＴノードＮ＃１１１，Ｎ＃１２１，Ｎ＃１３１，Ｎ＃１４１，Ｎ＃１５１，Ｎ＃１６１，Ｎ＃１７１，Ｎ＃１８１，Ｎ＃１９１，Ｎ＃２０１が接続される。なお、本例では、階層数が３つである場合を挙げたが、階層数が４以上である場合も上記と同様に、第４階層以下の階層のＳＮＡＴノード数は、上位側に隣接する階層のＳＮＡＴノード数より多くなる。
【０１１０】
このような算出処理によって、ＮＷ構築部１０２は、第３階層以下の階層でＳＮＡＴノード数を、その階層の上位側に隣接する階層のＳＮＡＴノード数より多い数とする。これにより、仮想ネットワークの階層数が減少するため、ＳＮＡＴによるアドレス変換の回数が低減され、インターネット９１との通信の所要時間が短縮される。また、ＳＮＡＴのアドレス変換の処理の負荷も分散される。
【０１１１】
上述したように、ＮＷ構築部１０２は、ノード数Ｍと、アドレス使用数Ｄと、変換対象ノード数Ｈとに基づいて、ＳＮＡＴを割り当てる第２階層以下のノードを決定する。このため、ＮＷ構築部１０２は、ＳＮＡＴのアドレス変換の処理の負荷が分散されるようにＳＮＡＴを適切なノードに割り当てることができる。
【０１１２】
したがって、ネットワーク構築装置１は、大規模な仮想ネットワークを、インターネット９１内の送信元ＩＰアドレスの使用数によらずに容易に構築することができる
【０１１３】
なお、上記の算出処理において、最上位の第１階層のノードのＳＮＡＴには、インターネット９１内の送信元ＩＰアドレス（グローバルＩＰアドレス）が１つずつ割り当てられると仮定したが、複数の送信元ＩＰアドレスが割り当てられた場合も同様の算出処理が可能である。この場合、アドレス使用数（Ｄ）として、アドレス使用数から、同一ノードのＳＮＡＴに割り当てられる２個目以降の送信元ＩＰアドレスの数を減じた値が用いられる。例えば、図２の仮想ネットワークにおいて、アドレス使用数が９であり、第１階層のノードＮ＃１〜Ｎ＃３のＳＮＡＴに３個ずつ送信元ＩＰアドレスが割り当てられた場合、アドレス使用数（Ｄ）としては３が算出に用いられる。
【０１１４】
図７は、ＮＷ構成ファイル１３１の更新処理の一例を示すシーケンス図である。ユーザＩＦ部１０１は、端末装置３からファイル更新コマンドを受信する。なお、ファイル更新コマンドはユーザの任意のタイミングで発行される。
【０１１５】
ユーザＩＦ部１０１は、ファイル更新コマンドに従って、ノード制御部１０４にファイル更新指示を出力する。ノード制御部１０４は、ファイル更新指示に従い、物理サーバ２にＳＮＡＴ確認コマンドを送信する。物理サーバ２は、仮想ネットワークのＳＮＡＴの設定状態を確認して、その結果を応答としてノード制御部１０４に送信する。ＳＮＡＴの設定状態には、例えば、ＳＮＡＴノードのＩＰアドレス及びホスト名と、ＳＮＡＴが接続されているノードのＩＰアドレス及びホスト名と、仮想ネットワーク内の各ノードのＩＰアドレス及びホスト名とが含まれる。
【０１１６】
ノード制御部１０４は、ＳＮＡＴの設定状態の確認結果からＮＷ構成パラメータを生成して、構成ファイル解析部１０６に出力する。構成ファイル解析部１０６は、ＨＤＤ１３からＮＷ構成ファイル１３１を読み出し、ＮＷ構成ファイル１３１のＮＷ構成パラメータと、ノード制御部１０４から入力されたＮＷ構成パラメータとを比較する。そして、構成ファイル解析部１０６は、ＮＷ構成パラメータの比較結果に基づいてＮＷ構成ファイル１３１を更新する（ステップＳｔ３）。なお、構成ファイル解析部１０６は、比較の結果、差異がない場合、ＮＷ構成ファイル１３１の更新を行わない。
【０１１７】
構成ファイル解析部１０６は、ノード制御部１０４に、更新内容を応答として出力する。ノード制御部１０４は、これと同様の応答をユーザＩＦ部１０１に出力する。ユーザＩＦ部１０１は、端末装置３に応答を送信する。このようにして、ＮＷ構成ファイル１３１の更新処理は行われる。
【０１１８】
図８は、仮想ネットワークの復元処理の一例を示すシーケンス図である。ユーザＩＦ部１０１は、端末装置３からネットワーク（ＮＷ）復元コマンドを受信する。ユーザＩＦ部１０１は、ＮＷ復元コマンドを解釈することにより、仮想ネットワークの復元に用いられるＮＷ構成ファイル１３１のファイルパスを取得し、ＮＷ構築部１０２に出力する。
【０１１９】
ＮＷ構築部１０２は、ファイルパスを含むパラメータ読出指示を構成ファイル解析部１０６に出力する。構成ファイル解析部１０６は、パラメータ読出し指示に従ってＨＤＤ１３内のＮＷ構築部１０２からＮＷ構成パラメータを読み出す（ステップＳｔ４）。構成ファイル解析部１０６は、ＮＷ構成パラメータを、応答としてＮＷ構築部１０２に出力する。
【０１２０】
以降は、ＮＷ構成パラメータに基づいて、図４に示されたシーケンスのうち、ＮＷ構成ファイル１３１の作成を除いた処理と同様の処理が行われる。
【０１２１】
このように、ＮＷ構築部１０２は、ＳＮＡＴの割り当てに関する情報をＮＷ構成ファイル１３１に記録し、その情報に基づき仮想ネットワークの構成を復元する。このため、仮想ネットワークを物理サーバ２から他の物理サーバに容易に移し替えることが可能となる。
【０１２２】
図９は、ＳＮＡＴの接続変更処理の一例を示すシーケンス図である。仮想環境管理部１０７は、例えば周期的に、一定の期間Ｔ、物理サーバ２から仮想ネットワーク内の各ノードの負荷情報を収集する。負荷情報には、各ノードのＣＰＵの使用率及びネットワーク負荷が含まれる。仮想環境管理部１０７は、負荷情報をノード監視部１０５に出力する。
【０１２３】
ノード監視部１０５は、ＳＮＡＴ情報収集指示をノード制御部１０４に出力する。ノード制御部１０４は、ＳＮＡＴ情報収集指示に従ってＳＮＡＴ情報収集コマンドを物理サーバ２に送信する。物理サーバ２は、ＳＮＡＴ情報収集コマンドに従って、ＳＮＡＴノードの動作状態及びネットワーク負荷を含むＳＮＡＴ情報を、応答としてノード制御部１０４に送信する。ノード制御部１０４は、ＳＮＡＴ情報を、応答としてノード監視部１０５に出力する。なお、ネットワーク負荷は負荷の一例である。
【０１２４】
ノード監視部１０５は、ＳＮＡＴ情報に基づいて、動作が停止したＳＮＡＴノードと過負荷のＳＮＡＴノードを検出する（ステップＳｔ５）。例えば、ノード監視部１０５は、ＳＮＡＴノードの動作状態が異常（例えばノードの警報などで判定可能）である場合、動作が停止したＳＮＡＴノードを検出し、ネットワーク負荷が所定の閾値を超えた場合、過負荷のＳＮＡＴノードを検出する。
【０１２５】
次に、ノード監視部１０５は、仮想環境管理部１０７が収集した負荷情報に基づいて、動作が停止したＳＮＡＴノード、または過負荷のＳＮＡＴノードと同じ階層のＳＮＡＴノードのうち、負荷が最も低いＳＮＡＴノードを判定する（ステップＳｔ６）。例えば、ノード監視部１０５は、ＣＰＵの使用率とネットワーク負荷の平均値が最も低いＳＮＡＴノードを判定する。
【０１２６】
次に、ノード監視部１０５は、動作が停止したＳＮＡＴノード、または過負荷のＳＮＡＴノードに接続された下位側ノードの接続先を、同一階層の他のＳＮＡＴノードに変更するため、ＳＮＡＴ接続変更指示をノード制御部１０４に出力する。ＳＮＡＴ接続変更指示には、変更前のＳＮＡＴノードの接続関係と変更後のＳＮＡＴノードの接続関係を示す情報が含まれる。
【０１２７】
ノード制御部１０４は、ＳＮＡＴ接続変更指示に従って、ＳＮＡＴ設定変更コマンドを物理サーバ２に送信する。物理サーバ２は、ＳＮＡＴ設定変更コマンドに従って、ＳＮＡＴノードの接続関係を変更する。物理サーバ２は、その変更内容を、応答としてノード制御部１０４に送信する。ノード制御部１０４は、これと同様の応答をノード監視部１０５に出力する。
【０１２８】
ノード監視部１０５は、変更後のＳＮＡＴノードの接続関係に従ってＮＷ構成パラメータを更新し、構成ファイル解析部１０６に出力する。構成ファイル解析部１０６は、更新されたＮＷ構成パラメータに従ってＮＷ構成ファイル１３１を更新する（ステップＳｔ７）。構成ファイル解析部１０６は、更新内容を、応答としてノード監視部１０５に出力する。
【０１２９】
ノード監視部１０５は、これと同様の応答を仮想環境管理部１０７に出力する。このようにして、ＳＮＡＴの接続変更処理は行われる。以下にＳＮＡＴの接続変更処理の例を述べる。
【０１３０】
図１０は、ＳＮＡＴの接続変更の一例を示す図である。図１０において、図２と共通する構成には同一の符号を付し、その説明は省略する。
【０１３１】
上述したように、ＮＷ構築部１０２は、最下位の階層以外の各階層のＳＮＡＴノードを、その下位側に隣接する階層のＳＮＡＴノードと接続することにより、下位側の階層のＳＮＡＴで変換された送信元ＩＰアドレスが、さらに上位側の階層の送信元ＩＰアドレスに変換されるようにネットワークを構築する。例えば、第１階層のノードＮ＃１は、第２階層のノードＮ＃１１と接続されているため（符号Ｃ１１参照）、第２階層のノードＮ＃１１のＳＮＡＴで変換された送信元ＩＰアドレスをインターネット９１内の送信元ＩＰアドレス（グローバルＩＰアドレス）に変換する。
【０１３２】
ノード監視部１０５は、ＳＮＡＴ情報の収集によりＳＮＡＴノードＮ＃１〜Ｎ＃３，Ｎ＃１１，Ｎ＃２１，・・・，Ｎ＃１０１，Ｎ＃１１１，Ｎ＃１２１，Ｎ＃２０１の動作状態を監視する。ノード監視部１０５は、監視結果からノードＮ＃１の動作の停止を検出した場合、ノードＮ＃１と接続されている第２階層のノードＮ＃１１の接続先を、ノードＮ＃１と同じ第１階層のノードＮ＃２に変更する（符号Ｃ１２参照）。第１階層のノードＮ＃２は、第１階層のＳＮＡＴノードＮ＃２，Ｎ＃３のうち、負荷情報が示すＣＰＵの使用率とネットワーク負荷の平均値が最も低く、動作状態の監視の結果、動作が停止していないノードである。
【０１３３】
このため、仮想ネットワークは、ＳＮＡＴノードＮ＃１が動作を停止しても、インターネット９１との通信を継続することができる。
【０１３４】
また、ノード監視部１０５は、ＳＮＡＴ情報の収集によりＳＮＡＴノードＮ＃１〜Ｎ＃３，Ｎ＃１１，Ｎ＃２１，・・・，Ｎ＃１０１，Ｎ＃１１１，Ｎ＃１２１，Ｎ＃２０１のネットワーク負荷を監視する。ノード監視部１０５は、例えばノードＮ＃１のネットワーク負荷が所定の閾値を超えた場合、ノードＮ＃１の過負荷状態を検出し、ノードＮ＃１と接続されている第２階層のノードＮ＃１１の接続先を、ノードＮ＃１と同じ第１階層のノードＮ＃２に変更する（符号Ｃ１２参照）。
【０１３５】
このため、仮想ネットワークは、ＳＮＡＴノードＮ＃１が過負荷となっても、インターネット９１との通信を継続することができる。
【０１３６】
図１１は、ＳＮＡＴの接続変更の他の例を示す図である。図１１において、図２と共通する構成には同一の符号を付し、その説明は省略する。
【０１３７】
第２階層のノードＮ＃１１は、第３階層のノードＮ＃１１１と接続されているため（符号Ｃ２１参照）、第３階層のノードＮ＃１１１のＳＮＡＴで変換された送信元ＩＰアドレスを第１階層内の送信元ＩＰアドレスに変換する。
【０１３８】
ノード監視部１０５は、ＳＮＡＴノードの監視結果からノードＮ＃１１の動作の停止を検出した場合、ノードＮ＃１１と接続されている第３階層のノードＮ＃１１１の接続先を、ノードＮ＃１１と同じ第２階層のノードＮ＃２１に変更する（符号Ｃ２２参照）。第２階層のノードＮ＃２１は、第２階層のＳＮＡＴノードＮ＃２１，・・・，Ｎ＃１０１のうち、負荷情報が示すＣＰＵの使用率とネットワーク負荷の平均値が最も低く、動作状態の監視の結果、動作が停止していないノードである。
【０１３９】
このため、仮想ネットワークは、ＳＮＡＴノードＮ＃１１が動作を停止しても、インターネット９１との通信を継続することができる。
【０１４０】
また、ノード監視部１０５は、例えばノードＮ＃１１のネットワーク負荷が所定の閾値を超えた場合、ノードＮ＃１１の過負荷状態を検出し、ノードＮ＃１１と接続されている第３階層のノードＮ＃１１１の接続先を、ノードＮ＃１１と同じ第２階層のノードＮ＃２１に変更する（符号Ｃ２２参照）。
【０１４１】
このため、仮想ネットワークは、ＳＮＡＴノードＮ＃１１が過負荷となっても、インターネット９１との通信を継続することができる。
【０１４２】
このように、ノード監視部１０５は、上位側ノードの動作の停止を検出した場合、下位側ノードの接続先を、上位側ノードと同じ階層の各ノードのうち、ＳＮＡＴを割り当てられ、動作が停止していない他のノードに変更する。このため、仮想ネットワークは、ＳＮＡＴノードＮ＃１が過負荷となっても、インターネット９１との通信を継続することができる。
【０１４３】
また、ノード監視部１０５は、上位側ノードの負荷に応じて、下位側ノードの接続先を、上位側ノードと同じ階層の各ノードのうち、ＳＮＡＴを割り当てられ、その上位側ノードノードより負荷が低い他のノードに変更する。このため、仮想ネットワークは、上位側ノードが過負荷となっても、インターネット９１との通信を継続することができる。
【０１４４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【０１４５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４７】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１４８】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  複数のノードから階層状のネットワークを構成し、
前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当て、
他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当て、
前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定する、処理を、コンピュータに実行させることを特徴とするネットワーク構築プログラム。
（付記２）  前記ネットワークを構成する処理において、前記最上位の階層のノード数が、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数以下となるように前記ネットワークを構成することを特徴とする付記１に記載のネットワーク構築プログラム。
（付記３）  前記第２機能を割り当てる処理において、前記他の階層で前記第２機能を割り当てるノード数を、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と同一とすることを特徴とする付記１または２に記載のネットワーク構築プログラム。
（付記４）  前記第２機能を割り当てる処理において、前記他の階層で前記第２機能を割り当てるノード数を、該階層の上位側に隣接する階層で前記第２機能を割り当てるノード数より多い数とすることを特徴とする付記１または２に記載のネットワーク構築プログラム。
（付記５）  前記第１機能及び前記第２機能の割り当てに関する情報を記録し、
前記情報に基づき前記ネットワークの構成を復元する、処理を、前記コンピュータに実行させることを特徴とする付記１乃至４の何れかに記載のネットワーク構築プログラム。
（付記６）  前記第２機能を割り当てる処理において、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの動作状態を監視し、
前記複数のノードのうち、前記第２ノードの動作の停止を検出した場合、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、動作が停止していない他のノードに変更する、処理を、前記コンピュータに実行させることを特徴とする付記１乃至５の何れかに記載のネットワーク構築プログラム。
（付記７）  前記第２機能を割り当てる処理において、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの負荷を監視し、
前記複数のノードのうち、前記第２ノードの負荷に応じて、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、前記第２ノードより負荷が低い他のノードに変更する、処理を、前記コンピュータに実行させることを特徴とする付記１乃至５の何れかに記載のネットワーク構築プログラム。
（付記８）  複数のノードから階層状のネットワークを構成する工程と、
前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当てる工程と、
他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当てる工程と、
前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定する工程とを、コンピュータが実行することを特徴とするネットワーク構築方法。
（付記９）  前記ネットワークを構成する工程において、前記最上位の階層のノード数が、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数以下となるように前記ネットワークを構成することを特徴とする付記８に記載のネットワーク構築方法。
（付記１０）  前記第２機能を割り当てる工程において、前記他の階層で前記第２機能を割り当てるノード数を、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と同一とすることを特徴とする付記８または９に記載のネットワーク構築方法。
（付記１１）  前記第２機能を割り当てる工程において、前記他の階層で前記第２機能を割り当てるノード数を、該階層の上位側に隣接する階層で前記第２機能を割り当てるノード数より多い数とすることを特徴とする付記８または９に記載のネットワーク構築方法。
（付記１２）  前記第１機能及び前記第２機能の割り当てに関する情報を記録する工程と、
前記情報に基づき前記ネットワークの構成を復元する工程とを、前記コンピュータが実行することを特徴とする付記８乃至１１の何れかに記載のネットワーク構築方法。
（付記１３）  前記第２機能を割り当てる工程において、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの動作状態を監視する工程と、
前記複数のノードのうち、前記第２ノードの動作の停止を検出した場合、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、動作が停止していない他のノードに変更する工程とを、前記コンピュータが実行することを特徴とする付記８乃至１２の何れかに記載のネットワーク構築方法。
（付記１４）  前記第２機能を割り当てる工程において、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの負荷を監視する工程と、
前記複数のノードのうち、前記第２ノードの負荷に応じて、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、前記第２ノードより負荷が低い他のノードに変更する工程とを、前記コンピュータが実行することを特徴とする付記８乃至１２の何れかに記載のネットワーク構築方法。
（付記１５）  複数のノードから階層状のネットワークを構成する構成部と、
前記複数のノードのうち、最上位の階層の各ノードに、前記最上位の階層の各ノード間の通信に用いられる送信元アドレスを、他のネットワーク内の送信元アドレスに変換する第１機能を割り当て、他の階層の各ノードの一部に、前記他の階層のノード間の通信に用いられる送信元アドレスを、前記他の階層の上位側に隣接する階層の各ノード間の通信に用いられる送信元アドレスに変換する第２機能を割り当てる割り当て部とを有し、
前記割り当て部は、前記複数のノードの数と、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数と、前記第２機能により送信元アドレスが変換されるノードの最大数とに基づいて、前記複数のノードのうち、前記第２機能を割り当てる前記他の階層のノードを決定することを特徴とするネットワーク構築装置。
（付記１６）  前記構成部は、前記最上位の階層のノード数が、前記第１機能により用いられる前記他のネットワーク内の送信元アドレスの数以下となるように前記ネットワークを構成することを特徴とする付記１５に記載のネットワーク構築装置。
（付記１７）  前記割り当て部は、前記第１機能及び前記第２機能の割り当てに関する情報を記録し、前記情報に基づき前記ネットワークの構成を復元することを特徴とする付記１５または１６に記載のネットワーク構築装置。
（付記１８）  前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの動作状態を監視する監視部を有し、
前記割り当て部は、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記割り当て部は、前記複数のノードのうち、前記第２ノードの動作の停止を検出した場合、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、動作が停止していない他のノードに変更することを特徴とする付記１５乃至１７の何れかに記載のネットワーク構築装置。
（付記１９）  前記複数のノードのうち、前記第１機能及び前記第２機能を割り当てたノードの負荷を監視する監視部を有し、
前記割り当て部は、前記複数のノードのうち、前記第２機能を割り当てた第１ノードを、前記第１ノードの階層の上位側に隣接する階層で前記第１機能または前記第２機能を割り当てた第２ノードに接続し、
前記監視部は、前記複数のノードのうち、前記第２ノードの負荷に応じて、前記第１ノードの接続先を、前記第２ノードと同じ階層の各ノードのうち、前記第１機能または前記第２機能を割り当てられ、前記第２ノードより負荷が低い他のノードに変更することを特徴とする付記１５乃至１７の何れかに記載のネットワーク構築装置。
【符号の説明】
【０１４９】
１       ネットワーク構築装置
２       物理サーバ
１０       ＣＰＵ
１０２      ＮＷ構築部
１０３      仮想環境制御部
１３１      ＮＷ構成ファイル
Ｎ       ノード
【図１】
2019068352.tif 000003
【図２】
2019068352.tif 000004
【図３】
2019068352.tif 000005
【図４】
2019068352.tif 000006
【図５】
2019068352.tif 000007
【図６】
2019068352.tif 000008
【図７】
2019068352.tif 000009
【図８】
2019068352.tif 000010
【図９】
2019068352.tif 000011
【図１０】
2019068352.tif 000012
【図１１】
2019068352.tif 000013