(57)【要約】【課題】仮想マシンの移動に追従した仮想ルータのルーティング制御を行う、経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システムを提供する。【解決手段】第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信する、処理をコンピュータに実行させる。【選択図】図６
2016100625.tif 000002
【特許請求の範囲】
【請求項１】
第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
前記生成した経路情報を前記第１の仮想ルータに送信する、
処理をコンピュータに実行させる経路情報提供プログラム。
【請求項２】
請求項１において、
前記生成は、さらに、前記通信のパケットの通信に関する第１の情報と、前記第１、第２の仮想マシン及び前記第１の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、ＩＰアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記ＩＰアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供プログラム。
【請求項３】
請求項２において、
前記生成は、さらに、前記第１の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供プログラム。
【請求項４】
請求項２または３のいずれかにおいて、
前記生成は、さらに、前記第１の仮想マシンから前記第２の仮想マシンに対応する第２の仮想ルータを介して当該第２の仮想マシンに到達する、前記パケットの通信に関する第２の情報を含む前記経路情報を生成する、
経路情報提供プログラム。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記送信は、前記パケットの前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を更新する、前記経路情報を、前記第１の仮想ルータに送信する、
経路情報提供プログラム。
【請求項６】
請求項２乃至５のいずれかにおいて、
前記送信は、さらに、前記第１の仮想ルータが、前記第２の仮想マシンへの通信のパケットを生成する第３の仮想ルータに送信するための、前記経路情報を、前記第１の仮想ルータに送信する、
経路情報提供プログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記生成は、前記構成情報が含む、前記仮想システムの各構成要素の前記ネットワーク識別情報を示す、ＭＡＣアドレス及びＩＰアドレスに基づいて、前記ルーティング処理を行う、
経路情報提供プログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記送信は、前記第１の仮想ルータが、所定の期間、記憶する前記経路情報を前記第１の仮想ルータに送信する、
経路情報提供プログラム。
【請求項９】
処理部が、第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
処理部が、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
処理部が、前記生成した経路情報を前記第１の仮想ルータに送信する、
経路情報提供方法。
【請求項１０】
第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報とを記憶する記憶部と、
第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信する処理部と、
を有する経路情報提供装置。
【請求項１１】
第１の仮想マシンからのパケットを中継する第１の仮想ルータが、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを、経路情報提供装置に送信し、
前記経路情報提供装置は、前記問い合わせに応答して、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信し、
前記第１の仮想ルータは、前記受信した経路情報に基づいて、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットを更新する、
情報処理システムの経路制御方法。
【請求項１２】
請求項１１において、
前記情報提供装置は、さらに、前記通信のパケットの通信に関する第１の情報と、前記第１、第２の仮想マシン及び前記第１の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、ＩＰアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記ＩＰアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
情報処理システムの経路制御方法。
【請求項１３】
請求項１２において、
前記情報提供装置は、さらに、前記パケットが往復通信の往路のパケットであるか否かを示す往復情報を含む前記経路情報を生成し、
前記第１の仮想ルータは、前記受信した経路情報が含む前記往復情報に基づいて、前記パケットが前記往路のパケットであるか否かを判定し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成する、
情報処理システムの経路制御方法。
【請求項１４】
請求項１２または１３において、
前記情報提供装置は、さらに、前記第１の仮想マシンから前記第２の仮想マシンに対応する第２の仮想ルータを介して前記第２の仮想マシンに到達する、前記パケットの通信に関する第２の情報を含む前記経路情報を生成する、
情報処理システムの経路制御方法。
【請求項１５】
請求項１１乃至１４のいずれかにおいて、
前記第１の仮想ルータは、さらに、前記受信した経路情報を、前記第２の仮想マシンへの通信のパケットを生成する第３の仮想ルータに送信する、
情報処理システムの経路制御方法。
【請求項１６】
請求項１１乃至１５のいずれかにおいて、
前記第１の仮想ルータは、前記受信した経路情報を、所定の期間、記憶する、
情報処理システムの経路制御方法。
【請求項１７】
第１のハードウェア資源で構成された第１の仮想マシンと、
第２のハードウェア資源で構成された第２の仮想マシンと、
前記第１、または、第３のハードウェア資源で構成された前記第１の仮想マシンからのパケットを中継する第１の仮想ルータと、
経路情報提供装置と、を有し、
前記第１の仮想ルータは、
前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを前記経路情報提供装置に送信し、前記経路情報提供装置から前記経路情報を受信する通信部と、
前記受信した経路情報に基づいて、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットを更新する処理部と、を有し、
前記経路情報提供装置は、
前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報を記憶する記憶部と、
前記構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信する処理部と、
を有する情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システムに関する。
【背景技術】
【０００２】
ＩａａＳ（Infrastructure as a Service：ＩａａＳ）は、コンピュータシステムの稼働に必要なハードウェア資源を利用者に提供するサービスである。ＩａａＳは、利用者が要求した仮想マシンと仮想ネットワークからなるシステムをハードウェア基盤上に構築し、利用者に提供する。
【０００３】
仮想マシンは、仮想ルータ及び仮想ネットワークを介して、他の仮想マシンと通信する。この仮想ルータを、仮想マシンを搭載する物理マシンに分散させる方式（分散ルータ方式）がある。仮想ルータは、仮想マシンから送信されたパケットに応じてルーティング処理を行い、通信先の仮想マシンを搭載する物理マシンに送信する。
【０００４】
一方、ＩａａＳの管理者は、データセンタ内のハードウェア資源の再分配や物理マシンのメンテナンス等のために、ある物理マシン上で動作している仮想マシンを他の物理マシンに移動（マイグレーションともいう）する。仮想マシンの移動については、例えば、特許文献１、２に記載される。
【０００５】
仮想マシンの移動に伴って、仮想マシンは、移動後の物理マシンで動作する仮想ルータを、デフォルトルートに変更する。また、ＩａａＳの管理装置は、仮想マシンの移動を検知すると、全ての仮想ルータに、ルーティングテーブルの変更を通知する。これにより、移動した仮想マシンと他の仮想マシンは、通信可能になる。
【０００６】
デフォルトルートの設定を変更するために、例えば、仮想マシンでエージェントを動作させる方法がある。エージェントは、仮想マシンの移動に伴って、デフォルトルートを変更する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２-２３１３８２号公報
【特許文献２】特開２０１１-２１００３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＩａａＳでは、ＩａａＳの管理者が利用者にハードウェア資源を提供し、利用者がハードウェア資源に仮想マシンを構築する。したがって、仮想マシンは、利用者が独自に構築するものであるから、管理側で変更することは好ましくない。また、管理者の都合による仮想マシンの移動のために、仮想マシンで、エージェント等のプログラムを動作させることは避けるほうが望ましい。
【０００９】
１つの側面は、本発明は、仮想マシンの移動に追従した仮想ルータのルーティング制御を行う、経路情報提供プログラム、経路情報提供方法、経路情報提供装置、情報処理システムの経路制御方法、及び、情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の側面は、第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信する、処理をコンピュータに実行させる。
【発明の効果】
【００１１】
第１の側面によれば、利用者側の仮想マシンを変更することなく、管理者側の責任範囲で仮想マシンの移動に追従したルーティング制御を行うことにより、仮想マシンの移動による通信の不通時間を抑制する。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態における情報処理システムのブロック図の一例を示す図である。
【図２】図１で説明した管理サーバ装置で動作するＩａａＳ管理プログラムの概要を説明する図である。
【図３】図１に示したＩａａＳシステムの部分詳細図である。
【図４】分散ルータ方式における、マイグレーション発生時の通信処理を説明する図である。
【図５】分散ルータ方式における、往復の経路の一致について説明する図である。
【図６】マイグレーションにより移動した仮想マシンが、別の仮想マシンにパケットを送信する場合の動作を説明する図である
【図７】別の仮想マシンが、マイグレーションした仮想マシンを宛先とするパケットを送信する場合の動作を説明する図である。
【図８】図６で説明した、利用者のデータを保持するトンネルパケットのフォーマットの一例を説明する図である。
【図９】図７で説明した、物理マシン更新パケットのフォーマットの一例を説明する図である。
【図１０】図７に示した、マイグレーションして移動した仮想マシンが、対向仮想マシンからパケットを受信する場合の処理の流れを説明する図（その１）である。
【図１１】図７に示した、マイグレーションして移動した仮想マシンが、対向仮想マシンからパケットを受信する場合の処理の流れを説明する図（その２）である。
【図１２】図６に示す、マイグレーションして移動した仮想マシンから、対向仮想マシンにパケットを送信する場合を説明する図である。
【図１３】マイグレーション後、所定の時間が経過してから、移動した仮想マシンが、対向仮想マシンからパケットを受信する場合を説明する図である。
【図１４】図１、図３で示した、管理サーバ装置のソフトウェアブロック図を示す図である。
【図１５】本実施の形態例における仮想システムの構成例を説明する図である。
【図１６】図１４に示した仮想ネットワークＤＢの一例を示す図である。
【図１７】図１４に示した仮想マシンＤＢの一例を示す第１の図である。
【図１８】図１４に示した仮想マシンＤＢの一例を示す第２の図である。
【図１９】図１４に示した仮想ルータＤＢの一例を示す図である。
【図２０】図１４に示した物理マシンＤＢの一例を示す図である。
【図２１】図１、図３に示した、サーバ装置のハードウェア構成を説明する図である。
【図２２】図２１に示したサーバ装置の仮想ルータプログラムのソフトウェアブロック図を示す図である。
【図２３】図１４に示すＩａａＳ管理プログラムのネットワーク管理モジュールによるシミュレーション処理の入力情報を示す図である。
【図２４】図１４に示す、ネットワーク管理モジュールによるシミュレーション処理の出力情報を示す図である。
【図２５】図１４に示すネットワーク管理モジュールによるシミュレーション処理の概要を説明する図である。
【図２６】図１４に示すネットワーク管理モジュールによるシミュレーション処理を説明するフローチャート図である。
【図２７】図２６に示した、ネットワーク管理モジュールの工程Ｓ１１の処理を説明するフローチャート図である。
【図２８】工程Ｓ１１−１による初期化後のパケットヘッダ書き換え表を示す図である。
【図２９】図２８に示した、ネットワーク管理モジュールの工程Ｓ１４の処理を説明するフローチャート図である。
【図３０】図２９に示した、ネットワーク管理モジュールの工程Ｓ１４−９のＮＡＴ変換処理を説明するフローチャート図である。
【図３１】図３０のフローチャートの工程Ｓ１４−１８の、パケットヘッダ書き換え表の更新例を説明する図である。
【図３２】図３０のフローチャートの工程Ｓ１４−１９で登録した往復セッションのＮＡＴアクティブリスト（「NAT active list」）の一例を示す。
【図３３】図２９のフローチャートの工程Ｓ１４−１０の、パケットヘッダ書き換え表の更新処理を説明する図である。
【図３４】図２６に示した、ネットワーク管理モジュールの工程Ｓ１７の処理を説明するフローチャート図である。
【図３５】図３４のフローチャートの工程Ｓ１７−１の、パケットヘッダ書き換え表の更新処理を説明する図である。
【図３６】ＴＸセッションテーブル、及び、ＲＸセッションテーブルが有するセッション情報のフォーマットを説明する図である。
【図３７】図２２に示した、ＴＸ処理モジュール、及び、ＲＸ処理モジュールによる、利用者パケットのヘッダ情報の書き換え処理の有無を説明する図である。
【図３８】図２２に示す、仮想ルータのＴＸ処理モジュールの処理を説明するフローチャート図である。
【図３９】図３８の工程Ｓ２７の処理を説明するフローチャート図である。工程Ｓ２７は、ＩＰユニキャストのパケットの送信処理を示す。
【図４０】図３９の工程Ｓ３３の処理を説明するフローチャート図である。
【図４１】図２２に示す、仮想ルータのＲＸ処理モジュールの処理を説明するフローチャート図である。
【図４２】図４１の工程Ｓ５２の処理を説明するフローチャート図である。工程Ｓ５２は、物理マシン更新パケットの処理を示す。
【図４３】過去搭載していた仮想マシン表の一例を説明する図である。
【図４４】図４２の工程Ｓ６５の処理を説明するフローチャート図である。
【図４５】図４１のフローチャート図の工程Ｓ５５の処理を説明するフローチャート図である。工程Ｓ５５は、パケットの受信処理を示す。
【図４６】図４５の工程Ｓ８３の処理を説明するフローチャート図である。
【発明を実施するための形態】
【００１３】
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１４】
[情報処理システム]
図１は、本実施の形態における情報処理システムのブロック図の一例を示す図である。図１に示す情報処理システムは、データセンタＤｃと、管理者のクライアント装置６０と、利用者のクライアント装置３０ａ、３０ｂとを含む。データセンタＤｃは、複数の物理マシン（以下、サーバ装置と称する）１０ａ〜１０ｃと、管理サーバ装置２０と、ゲートウェイ装置４０とを含む。複数のサーバ装置１０ａ〜１０ｃ、管理サーバ装置２０、及び、ゲートウェイ装置４０は、有線または無線のネットワーク５０によって接続する。ネットワーク５０は、例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などである。
【００１５】
図１に示す情報処理システムは、コンピュータシステムの稼働に必要な基盤そのものを利用者に提供するＩａａＳ（Infrastructure as a Service：ＩａａＳ）システムである。情報処理システム（以下、ＩａａＳシステムと称する）は、仮想マシンと仮想ネットワークからなる仮想システムを、利用者（以下、テナントともいう）に提供するサービスを指す。
【００１６】
ＩａａＳシステムは、利用者の仮想システムを構築するサーバ装置１０ａ〜１０ｃ（サーバ装置１０ともいう）と、ＩａａＳシステムを管理する管理サーバ装置２０から構成される。管理サーバ装置２０は、ＩａａＳシステム内のサーバ装置１０ａ〜１０ｃ、物理ネットワーク５０、物理ストレージ装置（図示せず）等の計算機資源を管理する機能を有する。複数のサーバ装置１０ａ〜１０ｃのそれぞれは、例えば、数十のデータ処理装置で構成され、ラックに設置される。なお、サーバ装置１０ａ〜１０ｃの数は、図１の例に限定されるものではない。
【００１７】
サーバ装置１０ａ〜１０ｃは、ＩａａＳシステム内の計算機資源であり、自装置のハードウェア資源を仮想化して、複数の異なるＯＳ（Operating System：ＯＳ）を実行可能なコンピュータである。サーバ装置１０ａ〜１０ｃのハードウェア構成は、図２１にしたがって後述する。
【００１８】
サーバ装置１０ａ〜１０ｃは、仮想マシンｖｍａ、ｖｍｂを配備する。仮想マシンｖｍａ、ｖｍｂは、物理的なコンピュータのハードウェア資源を分割して構築される実行環境で動作する仮想的なコンピュータである。サーバ装置１０ａ〜１０ｃでは、ハイパ−バイザ（hypervisor）Ｈｙが動作し、ハイパ−バイザＨｙ上で１つ以上の仮想マシンｖｍａ、ｖｍｂが動作する。仮想マシンｖｍａ、ｖｍｂ（仮想マシンｖｍともいう）の実体は、例えば、プログラムやＯＳなどのソフトウェア、及び、ソフトウェアを実行させるためのハードウェア資源を指定する情報等を含むものである。仮想マシンｖｍａ、ｖｍｂは、ＯＳｗ１、ｗ２を動作させる。また、各ＯＳｗ１、ｗ２では、例えば、利用者が提供するサービスを実行するアプリケーションプログラムａｐ１、ａｐ２が動作する。
【００１９】
また、ハイパ−バイザＨｙ上では、ソフトＳＷ（SWitch：ＳＷ）/分散ルータ（以下、仮想ルータと称する）ｖｒａが動作する。仮想ルータｖｒａは、仮想システムを形成する構成要素であり、仮想システム内の仮想マシン間で送受信されるパケットのＩＰ（Internet Protocol：ＩＰ）ルーティング機能を有する。仮想ルータｖｒａ（仮想ルータｖｒともいう）は、ハイパ−バイザＨｙ上の仮想ＮＩＣ（Network Interface Controller：ＮＩＣ）を介して仮想マシンｖｍａ、仮想マシンｖｍｂと接続する。
【００２０】
ＩａａＳシステムでは、利用者が、提供されたハードウェア資源に基づいて、仮想マシンを構築する。したがって、仮想マシンｖｍａ、ｖｍｂは、利用者の専用（責任）範囲に該当する。つまり、管理者が、仮想マシンｖｍａ、ｖｍｂの設定を変更する場合や、仮想マシンｖｍａ、ｖｍｂで任意のプログラムを動作させる場合、利用者の許可が必要になる。一方、仮想ルータｖｒａは、管理者側の責任範囲に該当する。
【００２１】
管理サーバ装置２０は、例えば、仮想システムの配備要求に応じて、サーバ装置１０や物理的なネットワーク等を仮想システムに割り当てる。また、管理サーバ装置２０は、例えば、仮想マシンｖｍの配置変更、起動、停止要求等に応じて、サーバ装置１０ａ〜１０ｃ上の仮想マシンｖｍａ、ｖｍｂの移動、起動、停止等の制御を行う。また、管理サーバ装置２０は、サーバ装置１０ａ〜１０ｃ上の仮想ルータｖｒａの起動、停止等の制御を行う。
【００２２】
クライアント装置６０は、ＩａａＳシステムの管理者が使用するコンピュータである。クライアント装置６０は、例えば、パーソナルコンピュータ等である。管理者は、クライアント装置６０を介して、管理サーバ装置２０にアクセスする。クライアント装置６０は、例えば、管理サーバ装置２０と有線または無線のネットワーク７０を介して接続する。
【００２３】
また、ゲートウェイ装置４０は、データセンタＤｃとクライアント装置３０ａ、３０ｂとの相互接続を実行する。クライアント装置３０ａ、３０ｂは、ＩａａＳシステムの利用者が使用するコンピュータである。クライアント装置３０ａ、３０ｂは、例えば、パーソナルコンピュータや、携帯端末装置である。クライアント装置３０ａ、３０ｂは、インターネット８０を介して、ゲートウェイ装置４０と接続し、仮想システムと接続する。
【００２４】
図２は、図１で説明した管理サーバ装置２０で動作するＩａａＳ管理プログラムの概要を説明する図である。ＩａａＳ管理プログラム３１０は、図１で説明したＩａａＳシステムの管理処理を行うプログラムである。図２において、図１で示したものと同一のものは、同一の記号で示す。なお、本実施の形態例におけるＩａａＳ管理プログラム３１０のソフトウェアブロック図については、図１４で後述する。
【００２５】
図２に示す仮想システムＶＳは、利用者による配備要求に基づいて形成された仮想システムＶＳの一例である。図２の仮想システムＶＳは、仮想マシンｖｍａ〜ｖｍｄと、仮想ルータｖｒａと、を含む。仮想マシンｖｍａ〜ｖｍｄと仮想ルータｖｒａは、テナント専用の仮想ネットワークｎｗ１によって相互に接続する。仮想システムＶＳは、例えば、図１に示す複数のサーバ装置１０にしたがって構成される。
【００２６】
利用者（テナント、ＩａａＳシステムの顧客ともいう）は、図１に示したクライアント装置３０ａ、３０ｂを介して、ＩａａＳ管理プログラム３１０に、仮想システムＶＳの配備、変更、撤収を要求する。また、管理者は、ＩａａＳ管理プログラム３１０にアクセスし、仮想マシンｖｍの配備状態の表示を指示する。
【００２７】
また、管理者は、クライアント装置６０を介して、ＩａａＳ管理プログラム３１０に、仮想マシンのライブマイグレーション（以下、マイグレーションと称する）を指示する。マイグレーションは、あるサーバ装置１０上で動作中の仮想マシンｖｍを停止することなく、別のサーバ装置１０に移動して処理を継続させる機能を示す。図１に示したＩａａＳシステムでは、ハードウェア資源の再分配やメンテナンス等のために、管理者はマイグレーションを指示する。
【００２８】
ＩａａＳ管理プログラム３１０は、利用者による配備要求に基づいて、仮想システム構成情報２１を生成する。仮想システム構成情報２１は、仮想システムＶＳを形成する仮想マシンｖｍの識別情報や、仮想マシンｖｍの数、仮想ネットワークｎｗ１の構成等を有する。また、ＩａａＳ管理プログラム３１０は、仮想システム構成情報２１に基づいて、物理配置構成情報２２を作成する。物理配置構成情報２２は、仮想マシンｖｍと、仮想マシンｖｍを搭載するサーバ装置１０との対応関係を有する。
【００２９】
ＩａａＳ管理プログラム３１０は、物理配置構成情報２２に基づいて、仮想マシンｖｍ及び仮想ネットワークｎｗ１の配備、移動、削除等を行う。また、ＩａａＳ管理プログラム３１０は、表示の指示に応答して、物理配置構成情報２２に基づいて、仮想システムＶＳの配備状態をクライアント装置６０（図１）に出力する。
【００３０】
図３は、図１に示したＩａａＳシステムの部分詳細図である。図３において、図１で示したものと同一のものは、同一の記号で示す。図３では、サーバ装置１０ａ、１０ｂの仮想化構成を例示する。
【００３１】
図３に示すサーバ装置１０ａでは、仮想ルータ（ソフトＳＷ/分散ルータ）ｖｒａと、２つの仮想マシンｖｍａ、ｖｍｂが動作する。仮想マシンｖｍａ、ｖｍｂと仮想ルータｖｒａは、ＴＣＰ(Transmission Control Protocol)/ＩＰ(Internet Protocol)等のネットワークを介して通信する。仮想マシンｖｍａ、ｖｍｂは、デフォルトルートを仮想ルータｖｒａに設定することによって、仮想ルータｖｒａを介して、他のサーバ装置１０ｂが搭載する仮想マシンｖｍｃ、ｖｍｄと通信する。サーバ装置１０ｂについても、サーバ装置１０ａと同様である。
【００３２】
また、仮想ルータｖｒａ、ｖｒｂは、実線で示す、テナントネットワーク（図２の仮想ネットワーク）ｎｗ１を介して、互いに接続する。また、仮想ルータｖｒａ、ｖｒｂは、点線で示す、仮想ネットワークである管理ネットワークｎｗ２を介して、管理サーバ装置２０と接続する。なお、仮想ルータｖｒａは、ソフトウェア的に増減設可能であり、専用のサーバ装置（図示せず）で動作させてもよく、仮想マシンの一種として、汎用のサーバ装置（図示せず）上で動作させてもよい。
【００３３】
また、図３は、管理サーバ装置２０のハードウェア構成図を示す。図３に示す管理サーバ装置２０は、例えば、ＣＰＵ（Central Processing Unit：ＣＰＵ）１０１、ＲＡＭ（Random Access Memory：ＲＡＭ）１２０や不揮発性メモリ１２１等を備えるメモリ１０２、通信インタフェース部１０３を有する。各部は、バス１０４を介して相互に接続する。通信インタフェース部１０３は、管理ネットワークｎｗ２を介してサーバ装置１０ａ〜１０ｂやクライアント装置６０（図１）等と接続する。
【００３４】
ＣＰＵ１０１は、バス１０４を介してメモリ１０２等と接続するとともに、管理サーバ装置２０全体の制御を行う。メモリ１０２のＲＡＭ１２０は、ＣＰＵ１０１が処理を行うデータ等を記憶する。
【００３５】
メモリ１０２の不揮発性メモリ１２１は、ＣＰＵ１０１が実行するＯＳのプログラムを格納する領域（図示せず）や、ＯＳ上で動作するＩａａＳ管理プログラムを格納する格納領域３１０を備える。また、不揮発性メモリ１２１は、テナント仮想システム管理情報格納領域４１０を備える。不揮発性メモリ１２１は、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等で構成される。
【００３６】
ＩａａＳ管理プログラム格納領域３１０のＩａａＳ管理プログラム（以下、ＩａａＳ管理プログラム３１０と称する）は、ＣＰＵ１０１の実行によって、本実施の形態例におけるＩａａＳシステムの管理処理を実現する。処理の詳細は、図１４にしたがって後述する。
【００３７】
テナント仮想システム管理情報格納領域４１０のテナント仮想システム管理情報（以下、テナント仮想システム管理情報４１０と称する）は、ＩａａＳ管理プログラム３１０が利用する情報である。テナント仮想システム管理情報４１０は、図２に示した物理配置構成情報２２を示す。テナント仮想システム管理情報４１０の詳細は、図１４にしたがって後述する。
【００３８】
［分散ルータ方式］
図３に示すように、本実施の形態例では、分散ルータ方式を採用する。分散ルータ方式によると、仮想ルータｖｒａ、ｖｒｂは、仮想マシンｖｍａ〜ｖｍｄを搭載するサーバ装置１０ａ、１０ｂのそれぞれに分散して位置する。即ち、本実施の形態例では、仮想ルータｖｒａ、ｖｒｂが、仮想システム内の一箇所の仮想マシン（図示せず）に位置するのではなく、仮想マシンｖｍａ〜ｖｍｄを搭載するサーバ装置１０ａ、１０ｂのそれぞれに分散して位置する。分散ルータ方式を採用する場合、通信のトラフィック量を抑制可能になる。
【００３９】
仮想ルータｖｒが、仮想システム内の一箇所の仮想マシンｖｍに位置する場合を例示する。仮想ルータｖｒが、一箇所の仮想マシンｖｍに位置する場合、仮想マシン間の全パケットは当該一箇所の仮想ルータｖｒを通過する。したがって、仮想システム内のそれぞれのパケットは、仮想ルータｖｒを搭載するサーバ装置１０に到達し、折り返して宛先の仮想マシンｖｍを搭載するサーバ装置１０に到達する。これにより、無駄なトラフィックが発生する。
【００４０】
一方、分散ルータ方式を採用する場合、仮想マシンｖｍａを搭載するサーバ装置１０ａで動作する仮想ルータｖｒａ（図３）が、仮想マシンｖｍａを送信元とするパケットのルーティング処理を実行する。そして、仮想ルータｖｒａは、ルーティング処理の結果に基づいて、トンネルパケットを生成し、宛先の仮想マシン（例えば、ｖｍ２）を搭載するサーバ装置１０ｂに直接、送信する。トンネルパケットについては、図６にしたがって後述する。
【００４１】
分散ルータ方式によると、パケットは、サーバ装置１０ａの仮想マシンｖｒａ、ｖｒｂから、仮想ルータｖｒａを介し、テナントネットワークｎｗ１を経由して、サーバ装置１０ｂの仮想ルータｖｒｂに到達する。つまり、分散ルータ方式によると、仮想ルータｖｒａからサーバ装置１０ｂにパケットを直接送信することが可能になり、通信のトラフィック量を抑制可能になる。
【００４２】
ただし、分散ルータ方式によると、通信トラフィックを抑制できるものの、マイグレーションの発生時に、通信の不通時間が生じる場合がある。マイグレーション発生時における通信処理を、図４にしたがって後述する。また、分散ルータ方式によると、往復のパケットの往路と復路の経路が異なる場合がある。分散ルータ方式における、往復パケットの往路と復路の経路を、図５にしたがって後述する。
【００４３】
［マイグレーション］
図４は、分散ルータ方式における、マイグレーション発生時の通信処理を説明する図である。図４において、図３で示したものと同一のものは、同一の記号で示す。なお、図４では、仮想ルータｖｒとサーバ装置１０とを別々に図示しているが、仮想ルータｖｒ１はサーバ装置１０ａで動作し、仮想ルータｖｒ２はサーバ装置１０ｂで動作する。また、仮想ルータｖｒ３はサーバ装置１０ｃで動作する。
【００４４】
図４の例では、マイグレーション前、仮想マシンｖｍ１はサーバ装置１０ａで動作し、仮想マシンｖｍ１のデフォルトルートは仮想ルータｖｒ１を指す。したがって、仮想マシンｖｍ１は、仮想ルータｖｒ１を介して、他の仮想マシンｖｍ２と通信する。また、仮想マシンｖｍ２はサーバ装置１０ｂで動作し、仮想マシンｖｍ２のデフォルトルートは仮想ルータｖｒ２を指す。
【００４５】
図４の例では、マイグレーションによって、仮想マシンｖｍ１が、サーバ装置１０ａから、サーバ装置１０ｃに移動する。仮想マシンｖｍ１が、サーバ装置１０ａからサーバ装置１０ｃに移動すると、移動後の仮想マシンｖｍ１はデフォルトルートを、仮想ルータｖｒ３に変更しない限り、他の仮想マシンｖｍ２と通信できない。このように、デフォルトルートを迅速に変更できない場合、通信の不通時間が生じ得る。
【００４６】
通信の不通時間を抑制するために、仮想マシンｖｍ１〜ｖｍ３でエージェント（図示せず）を動作させ、エージェントに、デフォルトルートの設定を変更させる方法が検討される。つまり、仮想マシンｖｍ１、ｖｍ２上で、管理サーバ装置２０と連動するエージェントを動作させる。そして、仮想マシンｖｍ１のエージェントは、マイグレーションを検出すると、デフォルトルートを仮想ルータｖｒ３に変更する。これにより、移動した仮想マシンｖｍ１は、他の仮想マシンｖｍ２と通信可能になる。
【００４７】
また、あわせて、マイグレーションの発生に応じて、図４に示す管理サーバ装置２０は、管理用ネットワークｎｗ２を介して、全ての仮想ルータｖｒ１〜ｖｒ３に、仮想マシンｖｍ１の移動後のサーバ装置１０ｃの情報を通知する。
【００４８】
ただし、前述したように、ＩａａＳシステムでは、ＩａａＳシステムの管理者と、利用者（顧客）との間に、責任分界点がある。図１で前述したとおり、ＩａａＳシステムでは、仮想マシンｖｍ１、ｖｍ２は利用者の管轄である。一方、仮想ルータｖｒａ、ｖｒｂは、管理者の管轄である。
【００４９】
したがって、管理者は、利用者の許可なく、仮想マシンｖｍの設定を変更することはできない。また、管理側の都合で発生させるマイグレーションのために、仮想マシンｖｍで、エージェント等のプログラムを動作させることは避けることが望ましい。したがって、仮想マシンｖｍａ、ｖｍｂの設定変更を要することなく、マイグレーションに追従した、仮想ルータｖｒのルーティング制御を実現することが求められる。
【００５０】
また、図４の例によると、マイグレーション発生後、管理サーバ装置２０が、全ての仮想ルータｖｒ１〜ｖｒ３に、仮想マシンｖｍ１の移動後のサーバ装置１０ｃの情報を通知する。ＩａａＳシステムは、例えば、数万の規模の仮想マシンｖｍを管理する。したがって、仮想マシンの数をｎとする場合、１つの仮想マシンｖｍ１マイグレーションに対してｎ回の通知処理が生じるため、負荷は値「Ｏ（ｎ２）（Order：Ｏ）」と高くなる。つまり、仮想マシンｖｍの数に応じて、管理サーバ装置２０の負荷が大幅に増大してしまう。
【００５１】
したがって、管理サーバ装置２０の負荷を増大させることなく、マイグレーションに追従した、仮想ルータｖｒのルーティング制御を実現することが求められる。
【００５２】
なお、管理サーバ装置２０に代わりに、ＤＨＣＰ（Dynamic Host Configuration Protocol：ＤＨＣＰ）サーバ（不図示）がデフォルトルートを設定する場合、仮想マシンｖｍ１、ｖｍ２は、定期的に、ＤＨＣＰサーバにデフォルトルートを問い合わせる。ただし、仮想マシンｖｍ１、ｖｍ２からＤＨＣＰサーバへの問い合わせ間隔と、マイグレーション後の通信の不通時間とは、トレードオフの関係にある。したがって、不通時間を短縮しようとすると、ＤＨＣＰサーバの負荷が増大してしまう。
【００５３】
したがって、本実施の形態例では、仮想マシンｖｍのマイグレーション時に、仮想ルータｖｒも合わせて、マイグレーション先のサーバ装置１０に移動する。これにより、仮想マシンｖｍは、マイグレーション後、デフォルトルートの設定を変更する必要がない。ただし、マイグレーション後の仮想ルータｖｒは、マイグレーション先のサーバ装置１０における経路情報を有していない。
【００５４】
したがって、本実施の形態例におけるＩａａＳ管理プログラム３１０は、仮想ルータｖｒからの経路情報の問い合わせに応じて、パケットの経路情報を生成し、問い合わせ元の仮想ルータｖｒに送信する。具体的に、ＩａａＳ管理プログラム３１０は、図４に示す仮想ルータｖｒから、仮想マシンｖｍ１から仮想マシンｖｍ２への通信の経路情報の問い合わせを受信する。
【００５５】
そして、ＩａａＳ管理プログラム３１０は、仮想マシンｖｍ２の識別情報と、テナント仮想システム管理情報４１０（図３、構成情報）に基づいて、仮想マシンｖｍ２を搭載するサーバ装置１０のネットワーク識別情報（ＩＰアドレス）を含む経路情報を生成する。仮想マシンｖｍを搭載するサーバ装置１０のＩＰアドレスを、搭載物理マシンＩＰアドレスと称する。テナント仮想システム管理情報４１０は、各仮想マシンｖｍの搭載物理マシンＩＰアドレスを含む。そして、ＩａａＳ管理プログラム３１０は、生成した経路情報を仮想ルータｖｒに送信する。
【００５６】
これにより、仮想ルータｖｒは、ＩａａＳ管理プログラム３１０に問い合わせることによって、宛先の仮想マシンｖｍ２の搭載物理マシンＩＰアドレス（経路情報）を取得することができる。仮想ルータｖｒは、経路情報が含む、仮想マシンｖｍ２の搭載物理マシンＩＰアドレスを、パケットに更新することによって、仮想マシンｖｍ２にパケットを送信することができる。したがって、仮想ルータｖｒは、仮想マシンｖｍ１がマイグレーションによって移動した場合であっても、仮想マシンｖｍ２にパケットを送信することができる。
【００５７】
または、仮想マシンｖｍ２がマイグレーションにより移動した場合、仮想ルータｖｒは、ＩａａＳ管理プログラム３１０に問い合わせることによって、宛先の仮想マシンｖｍ２の搭載物理マシンＩＰアドレス（経路情報）を取得することができる。仮想ルータｖｒは、経路情報が含む、仮想マシンｖｍ２の搭載物理マシンＩＰアドレスをパケットに更新することによって、仮想マシンｖｍ２にパケットを送信することができる。したがって、仮想ルータｖｒは、仮想マシンｖｍ２がマイグレーションによって移動した場合であっても、仮想マシンｖｍ２にパケットを送信することができる。
【００５８】
また、前述したとおり、本実施の形態例では、マイグレーション時に、仮想マシンｖｍと合わせて、仮想ルータｖｒも移動する。したがって、仮想マシンｖｍ１、ｖｍ２は、デフォルトルートの設定を変更する必要がない。これにより、仮想マシンｖｍ１、ｖｍ２の設定の変更を要することなく、マイグレーションに追従した通信を実現可能になる。即ち、利用者の仮想システムに影響を生じさせることなく、管理者側の責任範囲で、仮想マシンｖｍの移動に追従したルーティング制御が可能になる。詳細は、図６、図７で後述する。
【００５９】
［往復経路の一致］
図５は、分散ルータ方式における、往復の経路の一致について説明する図である。図５において、図３で示したものと同一のものは、同一の記号で示す。なお、図５では、仮想ルータｖｒとサーバ装置１０とを別々に図示しているが、仮想ルータｖｒ１はサーバ装置１０ａで動作し、仮想ルータｖｒ２はサーバ装置１０ｂで動作する。また、仮想ルータｖｒ３はサーバ装置１０ｃ（図示せず）で動作する。
【００６０】
分散ルータ方式によると、仮想ルータｖｒ１〜ｖｒ３は、仮想マシンｖｍを搭載するサーバ装置１０に分散して位置する。したがって、ルーティング処理を行う仮想ルータｖｒは、往路と復路との間で異なる場合が生じる。往路と復路とでルーティング処理を行う仮想ルータｖｒが異なることにより、往路と復路とで異なる経路が選択される場合がある。
【００６１】
図５の例では、仮想マシンｖｍ１のデフォルトルートは、仮想ルータｖｒ１を指し、仮想マシンｖｍ２のデフォルトルートは、仮想ルータｖｒ２を指す。図５の例によると、仮想マシンｖｍ２を宛先とするパケットを、仮想マシンｖｍ１から受信すると、仮想ルータｖｒ１は、当該パケットのルーティング処理を行う。また、当該パケットが往復パケットの場合、復路では、仮想ルータｖｒ２が、仮想マシンｖｍ１を宛先とするパケットのルーティング処理を行う。
【００６２】
このように、往復のパケットの場合、仮想ルータｖｒ１が、往路のパケットのルーティング処理を行い、仮想ルータｖｒ２が、復路のパケットのルーティング処理を行う。つまり、パケットの送信元の仮想ルータが、ルーティング処理を集約する。したがって、往路のパケットの経路と、復路のパケットの経路が一致しないことがある。
【００６３】
しかしながら、仮想ルータｖｒ１、ｖｒ２がロードバランサやＮＡＴ（Network Address Translation：ＮＡＴ）変換機能を備える場合、往路と復路の通信経路を一致させる必要がある。つまり、復路のパケットの経路は、往路で動的に選択された経路の逆の経路である必要がある。
【００６４】
したがって、本実施の形態例におけるＩａａＳ管理プログラム３１０は、パケットのヘッダ情報（通信に関する第１の情報）と、テナント仮想システム管理情報４１０（図３）に基づいて、ルーティング処理を行い、経路情報を生成する。テナント仮想システム管理情報４１０は、さらに、仮想システムＶＳを構成する各構成要素のネットワーク識別情報（ＩＰアドレス、ＭＡＣ（Media Access Control address：ＭＡＣ）アドレス）、ＩＰアドレスの変換情報を含む。また、ルーティング処理は、パケットの経路の選択処理、及び、ＩＰアドレスの変換処理を含む。ＩａａＳ管理プログラム３１０は、生成した経路情報を仮想ルータｖｒに送信する。
【００６５】
これにより、仮想ルータｖｒは、復路のパケットの送信時に、ＩａａＳ管理プログラム３１０に問い合わせることによって、往路の逆変換の経路を取得することができる。したがって、実質的に、同一の仮想ルータｖｒによる、往路及び復路のルーティング処理を実行することが可能になり、往復の経路を一致させることが可能になる。したがって、分散ルータ方式を採用しながら、簡易に、往路と復路の経路を一致させることが可能になる。
【００６６】
また、ＩａａＳ管理プログラム３１０は、往復通信の往路のパケットであるか否かを示す往復フラグ（往復情報）をさらに含む、経路情報を生成する。これにより、仮想ルータｖｒは、往復フラグに基づいて、パケットが往路のパケットであるかを判定することができる。そして、仮想ルータｖｒは、パケットが往路のパケットであると判定した場合に、往路の経路と逆方向の復路の経路情報を生成し、保持しておくことができる。
【００６７】
これにより、仮想ルータｖｒは、復路のパケットの送受信時に、生成済みの復路の経路に基づいて、復路のパケットを生成することができる。したがって、仮想ルータｖｒは、復路のパケットの送受信時に、復路の経路を問い合わせる必要なく、より効率的に、往路と一致する経路を取得することが可能になる。往復フラグについては、図８のパケットのフォーマット例にしたがって後述する。
【００６８】
次に、本実施の形態例における、図３に示したＩａａＳ管理プログラム３１０による経路情報の提供処理の概要を説明する。
【００６９】
［経路情報の提供処理の概要］
図６は、マイグレーションにより移動した仮想マシンが、別の仮想マシンにパケットを送信する場合の動作を説明する図である。図６において、図３で示したものと同一のものは、同一の記号で示す。
【００７０】
図６の例では、マイグレーションＭ１により、仮想マシンｖｍ１及び仮想ルータｖｒ１が、サーバ装置１０ａからサーバ装置１０ｃに移動する場合を例示する。なお、図６の例では、サーバ装置１０ｃに移動した仮想ルータｖｒ１を、仮想ルータｖｒ３と記述している。
【００７１】
マイグレーション後、仮想マシンｖｍ１は、仮想マシンｖｍ２を宛先とするパケットを送信する。サーバ装置１０ｃで動作する仮想ルータｖｒ３は、仮想マシンｖｍ１からの、新規のＩＰアドレスを宛先（仮想マシンｖｍ２）とするパケットの受信を契機に、管理サーバ装置２０のＩａａＳ管理プログラム３１０に問い合わせる（ｎ１）。
【００７２】
ＩａａＳ管理プログラム３１０は、テナント仮想システム管理情報４１０（図３）と、パケットのヘッダ情報（通信に関する第１の情報）に基づいて、パケットのルーティング処理をシミュレートし、経路情報を生成する。ヘッダ情報は、例えば、利用者パケットのＥｔｈｅｒｎｅｔ（登録商標）ヘッダ、ＩＰヘッダの情報を含む。
【００７３】
前述したとおり、経路情報は、宛先の仮想マシンｖｍ２の搭載物理マシンＩＰアドレスと、パケットが往復のパケットであるか否か、及び、往路の復路のパケットであるかを示す往復フラグを含む。また、経路情報は、さらに、送信元の仮想マシンｖｍから、宛先の仮想マシンｖｍに対応する仮想ルータｖｒを介して、当該宛先の仮想マシンｖｍに到達する、利用者パケットのヘッダ情報（通信に関する第２の情報）を含む。経路情報が含む、利用者パケットのヘッダ情報は、シミュレーションによって、経路途中の１つまたは複数の仮想ルータｖｒが更新する情報である。
【００７４】
図３に示したように、ＩａａＳ管理プログラム３１０は、仮想システムＶＳの構成情報を示す、テナント仮想システム管理情報４１０を有する。前述したとおり、テナント仮想システム管理情報４１０は、各仮想マシンｖｍの搭載物理マシンＩＰアドレスを含む。したがって、ＩａａＳ管理プログラム３１０は、パケットの宛先の仮想マシンｖｍの識別情報と、テナント仮想システム管理情報４１０とに基づいて、仮想マシンｖｍ２の搭載物理マシンＩＰアドレスを取得できる。
【００７５】
また、テナント仮想システム管理情報４１０は、さらに、仮想システムＶＳを構成する構成要素（仮想マシンｖｍ、仮想ルータｖｒ等）の論理的なネットワーク識別情報を含む。論理的なネットワーク識別情報は、ＩＰアドレスやＭＡＣアドレス、ＮＡＴ変換情報等である。論理的なネットワーク識別情報は、マイグレーションの発生に応じて変化しない。したがって、ＩａａＳ管理プログラム３１０は、テナント仮想システム管理情報４１０に基づくことにより、マイグレーションの発生にかかわらず、前述した経路情報を生成することができる。
【００７６】
図６のＩａａＳ管理プログラム３１０は、生成した経路情報を、問い合わせ元の仮想ルータｖｒ３に送信する。仮想ルータｖｒ３は、受信した経路情報をセッション情報ｓｔとして保持する。そして、仮想ルータｖｒ３は、セッション情報ｓｔに基づいて、トンネルパケットを生成する（ｎ２）。本実施の形態例では、Ｌ２ｏｖｅｒＬ３（Layer２：Ｌ２、Layer３：Ｌ３）トンネリング方式にしたがって、トンネルパケットを生成し、転送する。
【００７７】
Ｌ２ｏｖｅｒＬ３トンネリング方式は、利用者パケットのＬ２（Ｅｔｈｅｒｎｅｔ）フレームをさらにＩＰパケットで搬送する方式である。Ｌ２ｏｖｅｒＬ３トンネリング方式では、パケットに利用者の各仮想ネットワークに固有のＩＤ情報（仮想ネットワークＩＤ）を搭載することにより、テナント固有の仮想ネットワークを実現する。Ｌ２ｏｖｅｒＬ３トンネリング方式のパケットの詳細については、図８、図９にしたがって後述する。
【００７８】
Ｌ２ｏｖｅｒＬ３トンネリング方式の例として、ＧＲＥ（Generic Routing Encapsulation：ＧＲＥ）（RFC1701）や、ＶＸＬＡＮ（Virtual eXtensible Local Area Network：ＶＸＬＡＮ）（RFC7348）がある。また、Ｌ２ｏｖｅｒＬ３トンネリング方式の別の例として、ＮＶＧＲＥ（Network Virtualization using Generic Routing Encapsulation：ＮＶＧＲＥ）（draft-sridharan-virtualization-nvgre-05）等がある。
【００７９】
具体的に、仮想ルータｖｒ３は、経路情報が含む、宛先の仮想マシンｖｍ２の搭載物理マシンＩＰアドレス（図６では、サーバ装置１０ｂのＩＰアドレス）を、トンネルパケットの宛先に指定（更新）する。また、仮想ルータｖｒ３は、経路情報が含む往復フラグを、トンネルパケットに指定（更新）する。また、仮想ルータｖｒ３は、経路情報が含むヘッダ情報を、トンネルパケットの利用者パケットのＬ２フレームに更新する。
【００８０】
このように、仮想ルータｖｒは、ＩａａＳ管理プログラム３１０に問い合わせて取得した経路情報に基づいてトンネルパケットを更新し、宛先の仮想マシンｖｍ１を搭載するサーバ装置１０ｂに直接、転送する。
【００８１】
図６に示すように、マイグレーションにより移動した仮想ルータｖｒ１は、ＩａａＳ管理プログラム３１０に問い合わせることにより、宛先の仮想マシンｖｍ２への経路情報を取得できる。したがって、仮想ルータｖｒ１は、マイグレーション後、通信の不通時間を要することなく、他の仮想マシンｖｍ２を宛先とするパケットを送信することができる。
【００８２】
また、前述したとおり、仮想マシンｖｍ１は、仮想ルータｖｒ１もあわせて、サーバ装置１０ｃに移動する。したがって、仮想マシンｖｍ１は、デフォルトルートの設定を変更する必要がない。したがって、仮想マシンｖｍ１は、マイグレーションが発生した場合であっても、設定の変更を要することなく、他の仮想マシンｖｍを宛先とするパケットを送信することができる。即ち、ＩａａＳ管理プログラム３１０は、利用者側の責任範囲である仮想マシンｖｍ１、ｖｍ２を変更することなく、管理者側の責任範囲で、仮想マシンｖｍ１の移動に追従したルーティング制御を可能にする。
【００８３】
図７は、別の仮想マシンが、マイグレーションした仮想マシンを宛先とするパケットを送信する場合の動作を説明する図である。図７において、図３で示したものと同一のものは、同一の記号で示す。図７の例では、図６と同様にして、マイグレーションＭ１により、仮想マシンｖｍ１及び仮想ルータｖｒ１が、サーバ装置１０ａからサーバ装置１０ｃに移動する場合を例示する。
【００８４】
図７の例では、マイグレーション後、サーバ装置１０ｂが搭載する仮想マシンｖｍ２が、仮想マシンｖｍ１を宛先とするパケットを送信する。サーバ装置１０ｂで動作する仮想ルータｖｒ２は、当該パケットを受信すると、マイグレーション前に取得したセッション情報ｓｔに基づいて、仮想マシンｖｍ１を搭載していたサーバ装置１０ａにパケットを送信する（ｎ１１）。
【００８５】
サーバ装置１０ａで動作する仮想ルータｖｒ１は、マイグレーションした仮想マシンｖｍ１を宛先とするパケットを受信すると、管理サーバ装置２０のＩａａＳ管理プログラム３１０に問い合わせる（ｎ１２）。ＩａａＳ管理プログラム３１０は、図６と同様にして、仮想マシンｖｍ１への経路情報を生成し、仮想ルータｖｒ１に送信する。
【００８６】
このように、仮想ルータｖｒ１は、パケットの宛先の仮想マシンｖｍ１が移動している場合であっても、ＩａａＳ管理プログラム３１０に問い合わせることによって、仮想マシンｖｍ１の搭載物理マシンＩＰアドレスを取得することができる。
【００８７】
仮想ルータｖｒ１は、受信した経路情報をセッション情報ｓｔとして保持し、仮想マシンｖｍ１の搭載物理マシンＩＰアドレスを有する物理マシン更新パケットを生成して、仮想ルータｖｒ２に送信する（ｎ１３）。
【００８８】
物理マシン更新パケットは、マイグレーションにより移動した仮想マシンの搭載物理マシンＩＰアドレスを、他の仮想ルータｖｒに通知するパケットである。つまり、仮想ルータｖｒ１は、仮想マシンｖｍ１を宛先とするパケットを生成する別の仮想ルータｖｒ２に、仮想マシンｖｍ１への経路情報を通知する。物理マシン更新パケットの詳細は、図９で後述する。
【００８９】
仮想ルータｖｒ２は、受信した物理マシン更新パケットが有する、仮想マシンｖｍ１の搭載物理マシンＩＰアドレスをセッション情報ｓｔとして保持する。そして、仮想ルータｖｒ２は、仮想マシンｖｍ１の搭載物理マシンＩＰアドレスに基づいて、サーバ装置１０ｃの仮想マシンｖｍ１を宛先とするトンネルパケットを生成し、送信する（ｎ１４）。このように、仮想ルータｖｒ２は、仮想ルータｖｒ１が代表して問い合わせて取得した経路情報に基づいて、仮想マシンｖｍ１にパケットを送信することができる。
【００９０】
また、仮想ルータｖｒ１は、別の仮想マシンｖｍ４から、仮想マシンｖｍ１を宛先とするパケットを受信すると（ｎ１５）、保持するセッション情報ｓｔに基づく物理マシン更新パケットを、仮想ルータｖｒ４に送信する（ｎ１６）。仮想ルータｖｒ２と同様にして、仮想ルータｖｒ４は、物理マシン更新パケットが有する、仮想マシンｖｍ１の搭載物理マシンＩＰアドレスをセッション情報ｓｔとして保持し、トンネルパケットを生成し、サーバ装置１０ｃに送信する（ｎ１７）。
【００９１】
図７に示すように、１つの仮想ルータ（図７では仮想ルータｖｒ１）は、代表して、ＩａａＳ管理プログラム３１０に、仮想マシンｖｍ１への経路情報を問い合わせる。そして、問い合わせた仮想ルータｖｒ１は、取得した経路情報を、セッション情報ｓｔとして保持する。そして、仮想ルータｖｒ１は、仮想マシンｖｍ１を宛先とするパケットを受信した場合に、パケットの送信元の仮想ルータｖｒ２、ｖｒ４に、セッション情報ｓｔに基づいて生成した物理マシン更新パケットを送信する。
【００９２】
このように、仮想ルータｖｒ１は、仮想マシンｖｍ１を宛先とするパケットの送信元の仮想マシンｖｍ２、ｖｍ４の対応仮想ルータｖｒ２、ｖｒ４に、仮想マシンｖｍ１の搭載物理マシンＩＰアドレスを伝搬する。これにより、仮想マシンｖｍ２、ｖｍ４は、仮想マシンｖｍ１と迅速に通信可能になる。したがって、対向仮想マシンｖｍ２、ｖｍ４は、不通時間を要することなく、マイグレーションした仮想マシンｖｍ１にパケットを送信できる。
【００９３】
また、仮想ルータｖｒ１は、移動した仮想マシンｖｍ１を宛先とするパケットの受信を契機として、代表して、仮想マシンｖｍ１の新しい搭載物理マシンＩＰアドレスを問い合わせる。つまり、１つの仮想ルータｖｒ１が、代表して、仮想マシンｖｍ１への経路情報をＩａａＳ管理プログラム３１０に問い合わせる。これにより、ＩａａＳ管理プログラム３１０に対する、仮想マシンｖｍ１への経路情報の問い合わせ回数は、１回に抑えることが可能になる。
【００９４】
したがって、ＩａａＳ管理プログラム３１０への問い合わせ回数は、仮想マシンの数ｎに対して値「Ｏ（ｎ）（Order：Ｏ）」となる。したがって、数万の仮想マシンｖｍを管理し、分散ルータ方式を採用する、大規模なＩａａＳシステムであっても、マイグレーション発生時のＩａａＳ管理プログラム３１０の負荷を抑えることが可能になる。
【００９５】
なお、仮想マシンｖｍ１にパケットを送信する可能性がある全ての仮想ルータｖｒのセッション情報ｓｔを更新すると、トラフィックが増加してしまう。必ずしも、仮想マシンｖｍ１にパケットを送信する可能性がある全ての仮想ルータｖｒのセッション情報ｓｔを更新する必要はない。しかし、仮想マシンｖｍ１にパケットを実際に送信する仮想ルータｖｒを、事前に検出することは容易ではない。
【００９６】
したがって、仮想ルータｖｒ１は、仮想マシンｖｍ１を宛先とするパケットを受信した場合に、パケットの送信元に、新しい搭載物理マシンＩＰアドレスを通知する。したがって、仮想ルータｖｒ１は、仮想マシンｖｍ１に実際にパケットを送信する仮想ルータｖｒにのみ、新しい搭載物理マシンＩＰアドレスを通知することができる。これにより、本実施の形態例によると、負荷を抑えながら、簡易に、更新すべき、仮想ルータｖｒのセッション情報ｓｔを更新することが可能になる。
【００９７】
次に、図８、図９にしたがって、図６、図７で説明した仮想マシン間のトンネルパケットのフォーマット例を説明する。図８は、利用者のデータを保持するトンネルパケットのフォーマットの一例を示し、図９は、図７で説明した物理マシン更新パケットのフォーマットの一例を示す。
【００９８】
［トンネルパケットのフォーマット］
図８は、図６で説明した、利用者のデータを保持するトンネルパケットのフォーマットの一例を説明する図である。図６で前述したとおり、本実施の形態例におけるトンネルパケットＰＫａは、Ｌ２ｏｖｅｒＬ３トンネリング方式に基づくパケットである。
【００９９】
図８に示すパケットＰＫａのフォーマットは、前述したＶＸＬＡＮの規格（RFC7348）に基づくパケットＰＫａの、往復フラグｆｇ１の実装例である。図８に示すように、パケットＰＫａは、トンネルヘッダと、利用者のＥｔｅｒｈｎｅｔフレームとを有する。また、トンネルヘッダは、トンネルのＵＤＰ（User Datagram Protocol：ＵＤＰ）/ＩＰヘッダと、ＶＸＬＡＮヘッダを有する。
【０１００】
仮想ルータｖｒは、ＩａａＳ管理プログラム３１０に問い合わせて取得した経路情報が含む、宛先の仮想マシンｖｍの搭載物理マシンＩＰアドレスを、ＵＤＰ/ＩＰヘッダに設定する。また、仮想ルータｖｒは、経路情報が含む更新ヘッダ情報を、利用者のＥｔｅｒｈｎｅｔフレームに設定する。これにより、仮想ルータｖｒは、宛先の仮想マシンｖｍに到達するパケットを生成することができる。
【０１０１】
また、本実施の形態例では、経路情報が含む往復フラグｆｇ１を、ＶＸＬＡＮヘッダの８バイト目の予約済(Ｒｅｓｅｒｖｅｄ)領域の下位２ビットに付加する。下位２ビットが値「００」の場合、片道のパケットであることを示し、値「０１」の場合、規定なし（エラー）を示す。また、下位２ビットが値「１０」の場合、往復セッションの往路のパケットであることを示し、値「１１」の場合、往復セッションの復路のパケットであることを示す。
【０１０２】
トンネルパケットＰＫａが往復フラグｆｇ１を有することによって、仮想ルータｖｒは、パケットＰＫａが往復セッションに基づくパケットであるか否か、往路または復路のパケットのいずれであるかを判定可能になる。つまり、仮想ルータｖｒは、送受信するトンネルパケットＰＫａが、ＮＡＴ変換等を伴うパケットであるか否か、ＮＡＴ変換等のクライアント側のパケットであるか否かを判定可能になる。
【０１０３】
そして、仮想ルータｖｒは、往路のトンネルパケットＰＫａの送受信時に、復路の経路情報を生成して保持しておくことができる。また、仮想ルータｖｒは、復路のトンネルパケットＰＫａの送受信時に、往路で生成した復路の経路情報に基づいて、トンネルパケットＰＫａを更新することが可能になる。これにより、パケットの往路と復路の経路を一致させることが可能になる。
【０１０４】
図９は、図７で説明した物理マシン更新パケットＰＫｂのフォーマットの一例を説明する図である。図９に示す物理マシン更新パケットＰＫｂのフォーマットは、図８と同様にして、ＶＸＬＡＮ（RFC7348）の規格に基づく。
【０１０５】
本実施の形態例では、物理マシン更新パケットＰＫｂを示すフラグｆｇ２を、ＶＸＬＡＮヘッダの８バイト目の予約済(Ｒｅｓｅｒｖｅｄ)領域の下位３ビットに付加する。また、物理マシン更新パケットＰＫｂは、利用者パケットのＬ２フレームの代わりに、移動した仮想マシンのＩＰアドレス及び搭載物理マシンＩＰアドレスを有する。
【０１０６】
［ＩａａＳ管理プログラム、及び、仮想ルータの処理の流れ］
次に、図６、図７に示した、マイグレーション発生時のＩａａＳ管理プログラム３１０、及び、仮想ルータｖｒの処理の流れを説明する。
【０１０７】
図１０は、図７に示した、マイグレーションして移動した仮想マシンｖｍが、対向仮想マシンｖｍからパケットを受信する場合の処理の流れを説明する図（その１）である。したがって、マイグレーションして移動した仮想マシンｖｍは、図７の仮想マシンｖｍ１に対応し、対向仮想マシンｖｍは図７の仮想マシンｖｍ２に対応する。
【０１０８】
ｘ１：対向仮想マシンｖｍ２を搭載するサーバ装置１０ｂの仮想ルータ（以下、対向仮想マシンの仮想ルータ）ｖｒ２は、対向仮想マシンｖｍ２から、仮想マシン（以下、宛先の仮想マシン）ｖｍ１を宛先とするパケットを受信する（ａ１）。このとき、仮想ルータｖｒ２は、宛先の仮想マシンｖｍ１の、マイグレーション前のセッション情報（以下、旧情報）ｓｔを有する。
【０１０９】
対向仮想マシンの仮想ルータｖｒ２は、旧情報に基づいてトンネルパケットＰＫａを生成し送信する（ａ２、図７のｎ１１）。これにより、トンネルパケットＰＫａは、マイグレーション前に、宛先の仮想マシンｖｍ１を搭載していたサーバ装置（以下、旧物理マシン）１０ａで動作する仮想ルータｖｒ１に到達する。
【０１１０】
ｘ２：旧物理マシン１０ａの仮想ルータｖｒ１は、自マシンでトンネルパケットＰＫａの宛先の仮想マシンｖｍ１が動作しているか否かを判定する。この場合、仮想マシンｖｍ１はマイグレーションしたことにより、自マシンでは動作していない。したがって、旧物理マシンの仮想ルータｖｒ１は、パケットを破棄し、管理サーバ装置２０のネットワーク管理モジュール３１２に、管理ネットワークｎｗ２を介して、仮想マシンｖｍ１への経路情報を問い合わせる（ａ３、図７のｎ１２）。
【０１１１】
ｘ３：ネットワーク管理モジュール３１２は、シミュレーション処理によって、宛先の仮想マシンｖｍ１へ経路情報を生成し、問い合わせ元の仮想ルータｖｒ１に送信する（ａ４、図７のｎ１２）。
【０１１２】
ｘ４：仮想ルータｖｒ１は、受信した経路情報を、セッション情報ｓｔとして記憶する。また、仮想ルータｖｒ１は、セッション情報ｓｔに基づいて、図９に示した物理マシン更新パケットＰＫｂを生成し、対向仮想マシンの仮想ルータｖｒ２に送信する（ａ５、図７のｎ１３）。
【０１１３】
ｘ５：対向仮想マシンの仮想ルータｖｒ２は、受信した物理マシン更新パケットＰＫｂに基づいて、セッション情報ｓｔを更新する。具体的に、仮想ルータｖｒ２は、物理マシン更新パケットＰＫｂが含む仮想マシンｖｍ１の搭載物理マシンＩＰアドレスにしたがって、仮想マシンｖｍ１を宛先とするセッション情報ｓｔを、更新する。
【０１１４】
ｘ６：再び、仮想マシンｖｍ１を宛先とするパケットを受信すると（ａ６）、対向仮想マシンの仮想ルータｖｒ２は、工程ｘ５で更新したセッション情報ｓｔに基づいて、トンネルパケットＰＫａを生成し、送信する（ａ７、図７のｎ１４）。これにより、トンネルパケットＰＫａは、マイグレーション後の仮想マシンｖｍ１を搭載するサーバ装置（以下、新物理マシン）１０ｃに到達する。
【０１１５】
ｘ７：新物理マシン１０ｃで動作する仮想ルータｖｒ３は、受信したトンネルパケットＰＫａを解析し、宛先の仮想マシンｖｍ１に転送する。
【０１１６】
図１１は、図７に示した、マイグレーションして移動した仮想マシンｖｍが、対向仮想マシンｖｍからパケットを受信する場合の処理の流れを説明する図（その２）である。図１０の後、仮想ルータｖｒ１が、対向仮想マシンｖｍ２とは他の対向仮想マシンｖｍ４から、宛先の仮想マシンｖｍ１へのパケットを受信する場合を例示する。
【０１１７】
ｘ８：他の対向仮想マシンｖｍ４を搭載するサーバ装置１０ｄの仮想ルータ（以下、他の対向仮想マシンの仮想ルータ）ｖｒ４は、仮想マシンｖｍ１を宛先とするパケットを受信する（ａ９）。図１０の工程ｘ１と同様にして、他の対向仮想マシンの仮想ルータｖｒ４は、仮想マシンｖｍ１の、マイグレーション前のセッション情報ｓｔ（旧情報）に基づいてトンネルパケットＰＫａを生成し送信する（ａ１０、図７のｎ１５）。これにより、工程ｘ１と同様にして、トンネルパケットＰＫａは、旧物理マシン１０ａで動作する仮想ルータｖｒ１に到達する。
【０１１８】
ｘ９：図１０の工程ｘ２と同様に、旧物理マシン１０ａの仮想ルータｖｒ１は、パケットを破棄し、工程ｘ４で記憶したセッション情報ｓｔに基づく物理マシン更新パケットＰＫｂを、他の対向仮想マシンの仮想ルータｖｒ４に送信する（ａ１１、図７のｎ１７）。
【０１１９】
ｘ１０：他の対向仮想マシンの仮想ルータｖｒ４は、図１０の工程ｘ５〜ｘ７と同様にして、物理マシン更新パケットＰＫｂに基づいてセッション情報ｓｔを更新し、宛先の仮想マシンｖｍ１へのトンネルパケットＰＫａを生成し、送信する。これにより、仮想マシンｖｍ４は、不通時間を要することなく、仮想マシンｖｍ１にパケットを送信することができる。
【０１２０】
ｘ１１：旧物理マシン１０ａの仮想ルータｖｒ１は、仮想マシンｖｍ１のマイグレーション後、セッションキャッシュタイマー値の２倍の期間が経過すると、終了する。旧物理マシン１０ａは、マイグレーション後、セッション情報ｓｔのキャッシュタイマーの２倍の期間、仮想ルータｖｒ１を動作させる。
【０１２１】
このように、仮想ルータｖｒ１は、マイグレーション後、代表して取得した仮想マシンｖｍ１の新しい搭載物理マシンＩＰアドレスをセッション情報ｓｔとして保持する。したがって、仮想ルータｖｒ１は、セッション情報ｓｔに基づいて、他の仮想マシンｖｍに、仮想マシンｖｍ１の搭載物理マシンＩＰアドレスを通知することができる。これにより、ＩａａＳ管理プログラム３１０への問い合わせ回数を、１回に抑えることができる。
【０１２２】
図１２は、図６に示す、マイグレーションして移動した仮想マシンｖｍから、対向仮想マシンｖｍにパケットを送信する場合を説明する図である。すなわち、マイグレーションして移動した仮想マシンｖｍは、図６の仮想マシンｖｍ１に対応し、対向仮想マシンｖｍは図６の仮想マシンｖｍ２に対応する。
【０１２３】
ｘ２１：マイグレーション後の仮想マシンｖｍ１を搭載するサーバ装置（以下、新物理マシン）１０ｃの仮想ルータｖｒ３は、仮想マシンｖｍ１から、対向仮想マシンｖｍ２を宛先とするパケットを受信する（ａ２１）。新物理マシン１０ｃの仮想ルータｖｒ３は、マイグレーション後であるため、セッション情報ｓｔを有していない。したがって、新物理マシン１０ｃの仮想ルータｖｒ３は、ネットワーク管理モジュール３１２に、対向仮想マシンｖｍ２への経路情報を問い合わせる（ａ２２、図６のｎ１）。
【０１２４】
ｘ２２：ネットワーク管理モジュール３１２は、図１０の工程ｘ３と同様に、宛先の仮想マシンｖｍ２へ経路情報を生成し、問い合わせ元の仮想ルータｖｒ３に送信する（ａ２３、図６のｎ１）。なお、経路情報は、仮想マシンｖｍ２への経路が、往復セッションの往路のパケットであることを示す往復フラグｆｇ１を含む。
【０１２５】
ｘ２３：新物理マシン１０ｃの仮想ルータｖｒ３は、受信した経路情報を、セッション情報ｓｔとして記憶し、対向の仮想マシンｖｍ２へのトンネルパケットＰＫａを生成し、送信する（ａ２４、図６のｎ２）。このとき、仮想ルータｖｒ３は、往復フラグｆｇ１に基づいて往路のパケットであることを検知し、往路と反対方向の経路に基づく、復路の利用者パケットのヘッダ情報を生成し、セッション情報ｓｔに記憶しておく。
【０１２６】
ｘ２４：対向仮想マシンｖｍ２を搭載する物理マシン１０ｂの仮想ルータ（以下、対向仮想マシンの仮想ルータ）ｖｒ２は、受信したトンネルパケットＰＫａに基づいて、保持しているセッション情報ｓｔを更新する。このとき、対向仮想マシンｖｍ２の仮想ルータｖｒ２は、往復フラグｆｇ１に基づいて往路のパケットであることを検知し、復路のパケットの宛先となる仮想マシンｖｍ１の搭載物理マシンＩＰアドレスを、セッション情報ｓｔとして記憶しておく。仮想ルータｖｒ２は、受信したトンネルパケットＰＫａを解析し、対向仮想マシンｖｍ２にパケットを転送する（ａ２５）。
【０１２７】
ｘ２５：対向仮想マシンｖｍ２の仮想ルータｖｒ２は、対向仮想マシンｖｍ２から復路のパケットを受信すると（ａ２６）、復路のトンネルパケットＰＫａを生成する。具体的に、仮想ルータｖｒ２は、工程ｘ２４で登録したセッション情報ｓｔに基づいて、復路の宛先のＩＰアドレスを取得する。そして、仮想ルータｖｒ２は、取得したＩＰアドレスを宛先とし、復路であることを示す往復フラグｆｇ１を有するトンネルパケットＰＫａを生成し、送信する（ａ２７）。
【０１２８】
ｘ２６：新物理マシン１０ｃの仮想ルータｖｒ３は、対向仮想マシンｖｍ２の仮想ルータｖｒ２からトンネルパケットＰＫａを受信する。このとき、仮想ルータｖｒ３は、トンネルパケットＰＫａの往復フラグｆｇ１に基づいて復路のパケットであることを検知する。そして、仮想ルータｖｒ３は、工程ｘ２３でセッション情報ｓｔに登録した復路の経路に基づいて、仮想マシンｖｍ１への利用者パケットのヘッダ情報を更新し、仮想マシンｖｍ１に転送する（ａ２８）。
【０１２９】
工程ｘ２３〜ｘ２６に示すように、本実施の形態例におけるトンネルパケットＰＫａは、往復フラグｆｇ１を有する。これにより、仮想ルータｖｒ２、ｖｒ３は、送受信したパケットが、往復のパケットであるか、往路、復路のいずれのパケットであるかを判別することができる。そして、仮想ルータｖｒ２、ｖｒ３は、往復フラグｆｇ１に基づいて往路のパケットであることを検知すると、復路のパケットの経路情報を、セッション情報ｓｔとして記憶しておく。
【０１３０】
これにより、仮想ルータｖｒ２は、復路のパケットの送信時に、記憶したセッション情報ｓｔに基づいて、トンネルパケットＰＫａの宛先のＩＰアドレスを更新することができる（ｘ２５）。また、仮想ルータｖｒ３は、復路のパケットの受信時に、記憶したセッション情報ｓｔに基づいて、トンネルパケットＰＫａの利用者パケットのヘッダ情報を更新することができる（ｘ２６）。
【０１３１】
このように、往路の経路に基づいて復路の経路を生成することにより、パケットの往路と復路の経路を一致させることが可能になる。したがって、本実施の形態例によると、ＮＡＴ変換やロードバランサ等を経由するパケットについても、往路と復路の経路を一致させることが可能になる。また、トンネルパケットＰＫａが往復フラグｆｇ１を有することにより、仮想ルータｖｒ２、ｖｒ３は、復路のパケットの送受信時に、ＩａａＳ管理プログラム３１０への問い合わせを行うことなく、往路と一致する復路のパケットの経路を取得可能になる。
【０１３２】
図１３は、マイグレーション後、所定の時間経過後、移動した仮想マシンｖｍが、対向仮想マシンｖｍからパケットを受信する場合を説明する図である。図１３の例は、図７の例に対応する。
【０１３３】
ｘ３１：対向仮想マシンｖｍ２を搭載するサーバ装置１０ｂの仮想ルータ（以下、対向仮想マシンの仮想ルータ）ｖｒ２では、セッション情報ｓｔのキャッシュタイマー値の期間の経過により、セッション情報ｓｔが消滅している。
【０１３４】
ｘ３２：マイグレーションして移動した仮想マシンｖｍ１を搭載していたサーバ装置（以下、旧物理マシン）１０ａで動作する仮想ルータｖｒ１は、セッションキャッシュタイマー値の２倍の期間経過したことから、終了している。
【０１３５】
ｘ３３：対向仮想マシンの仮想ルータｖｒ２は、対向仮想マシンｖｍ２から、仮想マシンｖｍ１を宛先とするパケットを受信する（ａ３１）。工程ｘ３１で説明したとおり、仮想ルータｖｒ２が保持するセッション情報ｓｔは消滅している。したがって、対向仮想マシンの仮想ルータｖｒ２は、管理サーバ装置２０のネットワーク管理モジュール３１２に、管理ネットワークｎｗ２を介して、仮想マシンｖｍ１のセッション情報ｓｔを問い合わせる（ａ３２）。
【０１３６】
ｘ３４：ネットワーク管理モジュール３１２は、図１０の工程ｘ３と同様に、宛先の仮想マシンｖｍ１へ経路情報を生成し、問い合わせ元の仮想ルータｖｒ２に送信する（ａ２３）。
【０１３７】
ｘ３５：対向仮想マシンの仮想ルータｖｒ２は、受信した経路情報を、セッション情報ｓｔとして記憶し、仮想マシンｖｍ１へのトンネルパケットＰＫａを生成して送信する（ａ３４）。
【０１３８】
ｘ３６：新物理マシン１０ｃの仮想ルータｖｒ３は、受信したトンネルパケットＰＫａを解析し、仮想マシンｖｍ１に転送する（ａ３５）。
【０１３９】
図１３に示すように、本実施の形態例における仮想ルータｖｒは、タイマー値が示す期間、セッション情報（経路情報）ｓｔを保持（記憶）する。したがって、タイマー値の期間が経過すると、セッション情報ｓｔは消滅する。これにより、仮想ルータｖｒは、送信対象のパケットに対応するセッション情報ｓｔがない場合、パケットの宛先の仮想マシンｖｍへの経路情報をＩａａＳ管理プログラム３１０に問い合わせる。即ち、仮想ルータｖｒは、セッション情報ｓｔがタイマーの満了により消滅したことにより、再度、ＩａａＳ管理プログラム３１０に経路情報を問い合わせる。
【０１４０】
これにより、仮想ルータｖｒは、セッション情報ｓｔを更新することができる。したがって、送信対象のパケットの宛先の仮想マシンｖｍが、マイグレーションにより移動していた場合に、セッション情報ｓｔを更新することができる。これにより、古いセッション情報ｓｔに基づいてパケットを送信した結果、パケットが廃棄されることを回避することが可能になる。
【０１４１】
次に、図１４〜図２０にしたがって、図１、図３に示した、管理サーバ装置２０のソフトウェアブロック図、及び、ＩａａＳ管理プログラム３１０の処理を説明する。そして、図２１、図２２にしたがって、図１、図３に示した、サーバ装置１０のハードウェア構成図、及び、仮想ルータｖｒのソフトウェアブロック図を説明する。
【０１４２】
［管理サーバ装置］
図１４は、図１、図３で示した、管理サーバ装置２０のソフトウェアブロック図を示す図である。管理サーバ装置２０のＩａａＳ管理プログラム３１０は、ＶＭ管理モジュール３１１と、ネットワーク管理モジュール３１２とを有する。
【０１４３】
図１４に示す、ＶＭ管理モジュール３１１は、利用者や管理者の要求に応じて、仮想マシンｖｍの起動、配置、消去などを管理し、テナント仮想システム管理情報４１０を更新する。また、ＶＭ管理モジュール３１１は、管理者からのマイグレーションの指示に応じて仮想マシンｖｍの移動を行い、テナント仮想システム管理情報４１０を更新する。テナント仮想システム管理情報４１０は、仮想ネットワークデータベース１４１、仮想マシンデータベース１４２、仮想ルータデータベース１４３、物理マシンデータベース１４４を含む。各データベースの説明は、図１６〜図２０にしたがって後述する。
【０１４４】
また、ネットワーク管理モジュール３１２は、テナントの仮想ネットワーク（図３のｎｗ１）を管理する。また、ネットワーク管理モジュール３１２は、仮想ルータｖｒからの問い合わせに応答して、テナント仮想システム管理情報４１０に基づいて、シミュレーション処理を行い、経路情報を生成する。そして、ネットワーク管理モジュール３１２は、生成した経路情報を、問い合わせ元の仮想ルータｖｒに送信する。
【０１４５】
次に、図１５にしたがって、本実施の形態例における仮想システムＶＳ１の構成例を説明する。また、図１６〜図２０では、図１５に示す仮想システムＶＳ１に対応する、仮想ネットワークデータベース１４１、仮想マシンデータベース１４２、仮想ルータデータベース１４３、及び、物理マシンデータベース１４４の例を説明する。
【０１４６】
以下、仮想ネットワークデータベース１４１を、仮想ネットワークＤＢと称する。以下、仮想マシンデータベース１４２を、仮想マシンＤＢと称する。以下、仮想ルータデータベース１４３を、仮想ルータＤＢと称する。以下、物理マシンデータベース１４４を、物理マシンＤＢと称する。
【０１４７】
図１５は、本実施の形態例における仮想システムＶＳ１の構成例を説明する図である。図１５において、仮想システムＶＳ１は、仮想マシン「Node-1」〜「Node-3」ｖｍ−１〜ｖｍ−３と、仮想ルータ「Router-1」ｖｒ−１とを含む。また、仮想システムＶＳ１は、仮想ネットワーク「Net-1」ｎ１、「Net-2」ｎ２を有する。
【０１４８】
仮想ネットワーク「Net-1」ｎ１のＩＰアドレスの範囲は「130.69.100.0/24」である。仮想ネットワーク「Net-2」ｎ２のＩＰアドレスの範囲は「172.16.10.0/24」である。また、仮想ルータ「Router-1」ｖｒ−１の仮想ネットワーク「Net-1」ｎ１への接続インタフェースのＩＰアドレスは「130.69.100.1」である。また、仮想ルータ「Router-1」ｖｒ−１の仮想ネットワーク「Net-2」ｎ２への接続インタフェースのＩＰアドレスは「172.16.10.1」である。
【０１４９】
また、仮想ルータ「Router-1」ｖｒ−１は、ＮＡＴ変換ルールを有する。ＮＡＴ変換ルールは、ＩＰアドレス「133.11.0.11」を、仮想マシン「Node-2」ｖｍ−２、または仮想マシン「Node-3」ｖｍ−３のＩＰアドレスに変換するルールである。
【０１５０】
仮想マシン「Node-1」ｖｍ−１のＩＰアドレスは「130.69.100.10」であって、仮想マシン「Node-1」ｎ１は、仮想ネットワーク「Net-1」ｎ１に接続する。また、仮想マシン「Node-2」ｖｍ−２のＩＰアドレスは「172.16.10.10」であって、仮想マシン「Node-3」ｖｍ−３のＩＰアドレスは「172.16.10.11」である。仮想マシン「Node-2」ｖｍ−２、及び、仮想マシン「Node-3」ｖｍ−３は、仮想ネットワーク「Net-2」ｎ２に接続する。
【０１５１】
本実施の形態例では、図１５に示す仮想システムＶＳ１のネットワーク構成に基づいて、仮想マシン「Node-1」ｖｍ−１から、仮想マシン「Node-2」ｖｍ−２、または仮想マシン「Node-3」ｖｍ−３にパケットを送信する場合を例示する。
【０１５２】
［仮想ネットワークＤＢ］
図１６は、図１４に示した仮想ネットワークＤＢ１４１の一例を示す図である。仮想ネットワークＤＢ１４１は、仮想ネットワークごとに、ネットワークアドレスと、接続している仮想マシンｖｍ、及び、ルータの情報を有するＤＢである。図１６の仮想ネットワークＤＢ１４１は、図１５に示した仮想システムＶＳ１に対応する。
【０１５３】
仮想ネットワークＤＢ１４１は、例えば、項目「ID」、項目「ネットワークアドレス」、項目「ネットマスク」、項目「仮想マシン」、項目「ルータ」等を有する。項目「ID」は、仮想ネットワークの識別情報を示す。項目「ネットワークアドレス」は、仮想ネットワークのネットワークアドレスである。項目「ネットマスク」は、仮想ネットワークのサブネットマスクである。項目「仮想マシン」は、仮想ネットワークに属する仮想マシンｖｍの識別情報を示す。項目「ルータ」は、仮想ネットワークと接続するルータを示す。
【０１５４】
図１６に示す仮想ネットワークＤＢ１４１の例によると、仮想ネットワークＩＤ「Net-1」ｎ１のネットワークアドレスは「130.69.100.0」であって、サブネットマスクは「255.255.255.0」である。また、仮想ネットワークＩＤ「Net-1」ｎ１には、仮想マシン「Node-1」ｖｍ−１が属する。また、仮想ネットワークＩＤ「Net-1」ｎ１は、ルータ「Router-1」ｖｒ−１と接続する。
【０１５５】
また、仮想ネットワークＩＤ「Net-2」ｎ２のネットワークアドレスは「172.16.10.0」であって、サブネットマスクは「255.255.255.0」である。また、仮想ネットワークＩＤ「Net-2」ｎ２には、仮想マシン「Node-2、Node-3」ｖｍ−２、ｖｍ−３が属する。また、仮想ネットワークＩＤ「Net-2」ｎ２は、ルータ「Router-1」ｖｒ−１と接続する。
【０１５６】
［仮想マシンＤＢ］
図１７は、図１４に示した仮想マシンＤＢ１４２の一例を示す第１の図である。仮想マシンＤＢ１４２は、仮想システムＶＳを構成する仮想マシンｖｍごとに、仮想マシンｖｍのプロパティやネットワーク情報を有するＤＢである。図１７の仮想マシンＤＢ１４２は、図１５に示した仮想システムＶＳ１に対応する。
【０１５７】
仮想マシンＤＢ１４２は、例えば、項目「VM id」、項目「Accounts」、項目「Storages」、項目「NICs」、項目「物理マシン id」等を有する。項目「VM id」は、仮想マシンｖｍを識別する情報を示す。項目「Accounts」は、仮想マシンｖｍのプロパティを示し、所有者情報や認証情報等を示す。項目「Storages」は、仮想マシンｖｍのプロパティを示し、仮想マシンｖｍが接続する機器構成情報（ブロックストレージ情報）を示す。項目「NICs」は、仮想マシンｖｍのネットワーク情報を示し、仮想マシンｖｍが有する仮想インタフェースの情報を示す。仮想インタフェースが複数ある場合、項目「NICs」は、複数の仮想インタフェースの情報を有する。項目「物理マシン id」は、仮想マシンｖｍを搭載するサーバ装置１０の識別情報である。
【０１５８】
また、仮想マシンＤＢ１４２は、ネットワークの仮想インタフェースの情報として、仮想インタフェースのＭＡＣアドレス及びＩＰアドレス等を管理する。
【０１５９】
仮想マシンＤＢ１４２は、ネットワークの仮想インタフェースの情報として、例えば、項目「Vif no.」、項目「Connect Net」、項目「Mac Address」、項目「IP address」、項目「Options」を有する。項目「Vif no．」は、仮想インタフェースの識別情報である。項目「Connect Net」は、仮想インタフェースが接続する仮想ネットワークＩＤを示す。項目「Mac Address」は、仮想インタフェースのＭＡＣアドレスを示す。項目「IP address」は、仮想インタフェースのＩＰアドレスを示す。項目「Options」は、仮想インタフェースの付加情報である。
【０１６０】
図１７に示す仮想マシンＤＢ１４２の例によると、仮想マシン「Node-1」ｖｍ−１を搭載するサーバ装置１０の識別情報は「#20010」である。また、仮想マシン「Node-1」ｖｍ−１は、仮想インタフェースを介して、仮想ネットワークＩＤ「Net-1」ｎ１に接続する。また、仮想マシン「Node-1」ｖｍ−１の仮想インタフェースのＭＡＣアドレスは「Ab:cd:ef:12:34:56」であって、ＩＰアドレスは「130.69.100.10」である。
【０１６１】
図１８は、図１４に示した仮想マシンＤＢ１４２の一例を示す第２の図である。図１８は、仮想マシンＤＢ１４２における、仮想マシン「Node-2」ｖｍ−２、「Node-3」ｖｍ−３の情報を示す。
【０１６２】
図１８に示す仮想マシンＤＢ１４２の例によると、仮想マシン「Node-2」ｖｍ−２を搭載する物理マシンの識別情報は「#20011」であって、仮想ネットワークＩＤ「Net-2」ｎ２に接続する。また、仮想マシン「Node-2」ｖｍ−２のＭＡＣアドレスは「Ab:cd:ef:12:34:78」であって、ＩＰアドレスは「172.16.10.10」である。また、仮想マシン「Node-3」ｖｍ−３が動作する物理マシンの識別情報は「#20011」であって、仮想ネットワークＩＤ「Net-2」ｎ２に接続する。また、仮想マシン「Node-3」ｖｍ−３のＭＡＣアドレスは「Ab:cd:ef:12:34:90」であって、ＩＰアドレスは「172.16.10.11」である。
【０１６３】
［仮想ルータＤＢ］
図１９は、図１４に示した仮想ルータＤＢ１４３の一例を示す図である。図１９の仮想ルータＤＢ１４３は、図１５に示した仮想システムＶＳ１に対応する。仮想ルータＤＢ１４３は、仮想ルータの仮想インタフェースの情報、及び、ルーティング情報、ＮＡＴ情報等を管理するＤＢである。
【０１６４】
仮想ルータＤＢ１４３は、例えば、項目「Router id」、項目「NICs」、項目「ルーティングテーブル」、項目「ＮＡＴテーブル」、項目「NAT active list」等を有する。項目「Router id」は、仮想ルータの識別情報を示す。項目「NICs」は、仮想インタフェースの情報を示す。項目「ルーティングテーブル」は、仮想ルータのルーティングテーブル（図示せず）の情報を有する。項目「ＮＡＴテーブル」は、ＮＡＴ変換のルールを有する。項目「NAT active list」は、発生中のＮＡＴセッションの情報を有する。
【０１６５】
図１９に示す仮想ルータＤＢ１４３の例によると、仮想ルータ「Router-1」ｖｒ−１は２つの仮想インタフェースを有する。図１９に示す仮想インタフェースの各項目は、図１７、図１８に示した仮想マシンＤＢ１４２の仮想インタフェース説明で述べたとおりである。
【０１６６】
１つ目の仮想インタフェースは、仮想ネットワークＩＤ「Net-1」ｎ１に接続し、ＭＡＣアドレスは「Ab:cd:ef:12:a0:56」であって、ＩＰアドレスは「130.69.100.1」である。また、２つ目の仮想インタフェースは、仮想ネットワークＩＤ「Net-2」ｎ２に接続し、ＭＡＣアドレスは「Ab:cd:ef:12:ａ0:78」であって、ＩＰアドレスは「172.16.10.1」である。
【０１６７】
また、図１９に示す仮想ルータＤＢ１４３のＮＡＴテーブルは、例えば、項目「ID」、項目「NAT Type」、項目「Orig-D-IP」、項目「Orig-Proto」、項目「Orig-Port」を有する。また、ＮＡＴテーブルは、さらに、項目「Trans-D-IP」、項目「Trans-Dport」、項目「LB-Policy」、項目「Next Net」等を有する。
【０１６８】
項目「ID」は、ＮＡＴテーブルの識別情報である。項目「NAT Type」は、ＮＡＴテーブルの種別を示す。項目「Orig-D-IP」は、変換元の宛先のＩＰアドレスを示す。項目「Orig-Proto」は、変換元のプロトコルを示す。項目「Orig-Port」は、変換元のポート番号を示す。項目「Trans-D-IP」は、変換先の宛先のＩＰアドレスを示す。項目「Trans-Dport」は、変換先のポート番号を示す。項目「LB-Policy」は、ＮＡＴテーブルの種別がロードバランサの場合の、ロードバランサの手法を示す。項目「Next Net」は、ＮＡＴ変換後のパケットを転送する仮想ネットワークＩＤを示す。
【０１６９】
図１９に示す仮想ルータＤＢ１４３のＮＡＴテーブルの例によると、ＮＡＴテーブル「NAT-Rule-1」の項目「NAT Type」が「Load Balancer」であることから、ロードバランサによる変換を行うテーブルを示す。また、ＮＡＴテーブル「NAT-Rule-1」によると、変換元の宛先のＩＰアドレス「133.11.0.11」は、ＩＰアドレス「172.16.10.10」またはＩＰアドレス「172.16.10.1１」に変換される。また、ＮＡＴテーブル「NAT-Rule-1」によると、ロードバランサの手法は、「Round robin」であって、次の仮想ネットワークＩＤは、「Net-2」ｎ２である。
【０１７０】
なお、図１９の仮想ルータＤＢ１４３の例では、仮想ルータ「Router-1」は、「NAT active list」のエントリを有していない。したがって、図１９に示した仮想ルータＤＢ１４３は、ＮＡＴセッションが発生していない状態を示す。
【０１７１】
［物理マシンＤＢ］
図２０は、図１４に示した物理マシンＤＢ１４４の一例を示す図である。物理マシンＤＢ１４４は、物理マシン（サーバ装置）１０の情報を有するＤＢである。
【０１７２】
物理マシンＤＢ１４４は、例えば、項目「物理マシン id」、項目「ラック番号」、項目「マシン情報」、項目「IP address」、項目「Options」等を有する。項目「物理マシン id」は、サーバ装置１０の識別情報を示す。項目「ラック番号」は、サーバ装置１０を配置するラック番号であって、サーバ装置１０の物理的な位置を示す。項目「マシン情報」は、サーバ装置１０が使用する機器等の情報を示す。項目「IP address」は、サーバ装置１０のＩＰアドレスを示す。項目「Options」は、サーバ装置１０の付加情報を示す。
【０１７３】
図２０に示す物理マシンＤＢ１４４の例によると、サーバ装置「#20010」のＩＰアドレスは「10.20.4.120」であって、サーバ装置「#20011」のＩＰアドレスは「10.20.4.121」である。なお、図１７、図１８の仮想マシンＤＢ１４２によると、サーバ装置「#20010」では仮想マシン「Node-1」ｖｍ−１が動作し、サーバ装置「#20011」では仮想マシン「Node-2」ｖｍ−２、及び、仮想マシン「Node-3」ｖｍ−３が動作する。
【０１７４】
図１４〜図２０にしたがって、図１、図３に示した、管理サーバ装置２０のソフトウェアブロックの説明をした。次に、図２１にしたがって、図１、図３に示した、サーバ装置１０のハードウェア構成を説明する。
【０１７５】
［サーバ装置］
図２１は、図１、図３に示した、サーバ装置１０のハードウェア構成を説明する図である。図２１において、図１で示したものと同一のものは、同一の記号で示す。
【０１７６】
サーバ装置１０は、例えば、ＣＰＵ（Central Processing Unit：ＣＰＵ）２０１、ＲＡＭ（Random Access Memory：ＲＡＭ）２２０や不揮発性メモリ２２１等を備えるメモリ２０２、通信インタフェース部２０３を有する。各部は、バス２０４を介して相互に接続する。通信インタフェース部２０３は、イントラネット５０を介して管理サーバ装置２０（図３）等と接続する。
【０１７７】
ＣＰＵ２０１は、バス２０４を介してメモリ２０２等と接続するとともに、サーバ装置１０全体の制御を行う。メモリ２０２のＲＡＭ２２０は、ＣＰＵ２０１が処理を行うデータ等を記憶する。メモリ２０２の不揮発性メモリ２２１は、ハイパ−バイザプログラム格納領域Ｈｙｐや、仮想ルータプログラム格納領域ｖｒｐを備える。また、不揮発性メモリ２０２は、仮想マシンａデータ格納領域ｖｍｄａや、仮想マシンｂデータ格納領域ｖｍｄｂを備える。不揮発性メモリ２０２は、ＨＤＤ（Hard disk drive：ＨＤＤ）、不揮発性半導体メモリ等で構成される。
【０１７８】
ハイパ−バイザプログラム格納領域Ｈｙｐのハイパ−バイザプログラム（以下、ハイパ−バイザプログラムＨｙｐと称する）は、ＣＰＵ２０１の実行によって、本実施の形態例におけるハイパ−バイザＨｙの処理を実現する。仮想ルータプログラム格納領域ｖｒｐの仮想ルータプログラム（以下、仮想ルータプログラムｖｒｐと称する）は、ＣＰＵ２０１の実行によって、本実施の形態例における仮想ルータｖｒの処理を実現する。
【０１７９】
仮想マシンａデータ格納領域ｖｍｄａの仮想マシンａデータ（以下、仮想マシンａデータｖｍｄａと称する）は、ハイパ−バイザＨｙによって参照または更新され、仮想マシンｖｍａとして動作する。仮想マシンｂデータ格納領域ｖｍｄｂの仮想マシンｂデータ（以下、仮想マシンｂデータｖｍｄｂと称する）は、ハイパ−バイザＨｙによって参照または更新され、仮想マシンｖｍｂとして動作する。
【０１８０】
（仮想ルータのソフトウェアブロック図）
図２２は、図２１に示したサーバ装置１０の仮想ルータプログラムｖｒｐのソフトウェアブロック図を示す図である。図２２に示す仮想ルータプログラムｖｒｐは、ＲＸ処理モジュール４０１、ＴＸ処理モジュール４０２、ｐｒｏｘｙＡＲＰ（Address Resolution Protocol：ＡＲＰ）モジュール４０３、ＴＸセッションテーブルｓｔ−ｔ、ＲＸセッションテーブルｓｔ−ｒを有する。
【０１８１】
ＲＸ処理モジュール４０１、及び、ＴＸ処理モジュール４０２は、パケットの送受信処理、トンネルパケットのヘッダの着脱、ブロードキャスト通信の対応、ＩＰ以外のパケットの応答処理を行う。また、本実施の形態例におけるＲＸ処理モジュール４０１、及び、ＴＸ処理モジュール４０２は、さらに、ＩａａＳ管理プログラム３１０が提供する経路情報に基づくトンネルパケットＰＫａの更新処理を行う。また、ＲＸ処理モジュール４０１は、物理マシン更新パケットＰＫｂの送受信処理を行う。
【０１８２】
ＴＸ処理モジュール４０２の処理は、図３８〜図４０のフローチャートにしたがって後述する。ＲＸ処理モジュール４０１の処理は、図４１〜図４６のフローチャートにしたがって後述する。また、ｐｒｏｘｙＡＲＰモジュール４０３は、ｐｒｏｘｙＡＲＰ処理を行う。即ち、ｐｒｏｘｙＡＲＰモジュール４０３は、ネットワーク内の機器からのＡＲＰ要求を、問い合わせ先に代わって返答する。
【０１８３】
ＴＸセッションテーブルｓｔ−ｔは、送信処理用のセッション情報ｓｔを有し、ＲＸセッションテーブルｓｔ−ｒは、受信処理用のセッション情報ｓｔを有する。ＴＸセッションテーブルｓｔ−ｔ、及び、ＲＸセッションテーブルｓｔ−ｒの詳細は、図３６で後述する。
【０１８４】
［ＩａａＳ管理プログラム：シミュレーション処理］
次に、図２３〜図３５にしたがって、管理サーバ装置２０のＩａａＳ管理プログラム３１０によるシミュレーション処理を説明する。
【０１８５】
（シミュレーション処理：入力情報）
図２３は、図１４に示すＩａａＳ管理プログラム３１０のネットワーク管理モジュール３１２によるシミュレーション処理の入力情報を示す図である。図２３に示す入力情報は、例えば、仮想ルータｖｒが仮想マシンｖｍから受信したＴＣＰ／ＩＰパケットのヘッダ情報ｈｄである。
【０１８６】
図２３のヘッダ情報ｈｄは、項目「Src Mac Address」、項目「Dst Mac Address」、項目「Dst IP address」、項目「Src IP address」、項目「Protocol」、項目「Dst port」、項目「Src port」等を有する。
【０１８７】
項目「Src Mac Address」は、パケットの送信元のＭＡＣアドレスを示す。項目「Dst Mac Address」は、パケットの宛先のＭＡＣアドレスを示す。項目「Dst IP address」は、パケットの宛先のＩＰアドレスを示す。項目「Src IP address」は、パケットの送信元のＩＰアドレスを示す。項目「Protocol」は、パケットのプロトコルを示す。項目「Dst port」は、パケットの宛先のポート番号を示す。項目「Src port」は、パケットの送信元のポート番号を示す。
【０１８８】
仮想ルータ「Router-1」ｖｒ−１は、仮想マシン「Node-1」ｖｍ−１から、図２３に示すヘッダ情報ｈｄを有するパケットを受信する。図２３に示すパケットは、仮想マシン「Node-1」ｖｍ−１から、ＮＡＴ変換処理対象のＩＰアドレス「133.11.0.11」宛のパケットである。
【０１８９】
したがって、図２３のヘッダ情報ｈｄの項目「Src Mac Address」が示す送信元のＭＡＣアドレスは、仮想マシン「Node-1」ｖｍ−１のＭＡＣアドレスを示す。また、ヘッダ情報ｈｄの項目「Dst Mac Address」が示す宛先のＭＡＣアドレスは、仮想ルータ「Router-1」ｖｒ−１の仮想ネットワーク「Net-1」ｎ１のＭＡＣアドレス「Ab:cd:ef:12:a0:56」を示す。また、ヘッダ情報ｈｄの項目「Dst IP address」が示す宛先のＩＰアドレスは、ＮＡＴ変換の変換元のＩＰアドレス「133.11.0.11」を示す。また、ヘッダ情報ｈｄの項目「Src IP address」が示す送信元のＩＰアドレスは、仮想マシン「Node-1」ｖｍ−１のＩＰアドレス「130.69.100.10」を示す。また、ヘッダ情報ｈｄの項目「Dst port」は、ポート番号「80」を示し、項目「Src port」は、ポート番号「48754」を示す。
【０１９０】
（シミュレーション処理：出力情報）
図２４は、図１４に示す、ネットワーク管理モジュール３１２によるシミュレーション処理の出力情報を示す図である。ネットワーク管理モジュール３１２は、図２３に示したパケットのヘッダ情報ｈｄに基づいて、シミュレーション処理を行い、経路情報として、図２４に示すパケットヘッダ書き換え表ｈｗを出力する。
【０１９１】
パケットヘッダ書き換え表ｈｗは、ヘッダ書き換え部分ｈｗｕの項目と、制御部ｈｗｃの項目とを有する。ヘッダ書き換え部分ｈｗｕの項目は、仮想ルータｖｒが転送するパケットのヘッダ情報ｈｄのうち、書き換え対象の項目を示す。なお、ヘッダ書き換え部分ｈｗｕの項目のうち、空欄の項目については、書き換え対象外の項目である。
【０１９２】
ヘッダ書き換え部分ｈｗｕは、図２３に示すヘッダ情報ｈｄの項目に加えて、項目「TTL」を有する。項目「TTL」は、トンネルパケットＰＫａが有する利用者パケットのヘッダ情報のTTL（Time To Live：TTL）の値から差し引く値である。TTLの値は、トンネルパケットＰＫａの有効期間を示す。
【０１９３】
制御部ｈｗｃの項目は、例えば、項目「往復セッション」、項目「往路／復路」、項目「宛先物理マシンIP address」を有する。項目「往復セッション」は、往復セッションのトンネルパケットＰＫａであるか否かを示す。本実施の形態例では、往復セッションのトンネルパケットＰＫａである場合に値「１」、往復セッションのトンネルパケットＰＫａではない場合に値「０」を有する。
【０１９４】
項目「往路／復路」は、往路のトンネルパケットＰＫａであるか、復路のトンネルパケットＰＫａであるかを示す。本実施の形態例では、往路のトンネルパケットＰＫａである場合に値「０」、復路のトンネルパケットＰＫａである場合に値「１」を有する。項目「宛先物理マシンIP address」は、トンネルパケットＰＫａの宛先として指定するＩＰアドレス（外側の宛先ＩＰアドレス）を示す。
【０１９５】
（シミュレーション処理の概要）
図２５は、図１４に示すネットワーク管理モジュール３１２によるシミュレーション処理の概要を説明する図である。仮想ネットワークでは、パケットは、送信元の仮想マシンｖｍから１つまたは複数の仮想ルータｖｒを経由して、宛先の仮想マシンｖｍに到達する。したがって、シミュレーション処理では、図２５に示すように、仮想ルータｖｒによるルーティング処理を繰り返す。したがって、図２６で説明するフローチャート図では、ルーティング処理（図２６のＳ１４）を０回以上、繰り返す。
【０１９６】
（シミュレーション処理の流れ）
図２６は、図１４に示すネットワーク管理モジュール３１２によるシミュレーション処理を説明するフローチャート図である。ネットワーク管理モジュール３１２は、開始仮想ネットワークＩＤ、及び、図２３で説明した利用者パケットのヘッダ情報ｈｄを入力とする。開始仮想ネットワークＩＤは、利用者パケットのヘッダ情報ｈｄの項目「Src Mac Address」が示す、パケットの送信元のＭＡＣアドレスが属する仮想ネットワークのＩＤである。
【０１９７】
Ｓ１１：ネットワーク管理モジュール３１２は、シミュレーションの前処理を行う。シミュレーションの前処理の詳細は、図２７のフローチャート図にしたがって説明する。
【０１９８】
（シミュレーション処理：前処理（Ｓ１１））
図２７は、図２６に示した、ネットワーク管理モジュール３１２の工程Ｓ１１の処理を説明するフローチャート図である。
【０１９９】
Ｓ１１−１：ネットワーク管理モジュール３１２は、シミュレーションの前処理として、シミュレーション状態の初期化処理を行う。具体的に、ネットワーク管理モジュール３１２は、図２４に示したパケットヘッダ書き換え表ｈｗを初期化する。そして、ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗの項目「TTL」に初期値「64」を代入する。また、ネットワーク管理モジュール３１２は、入力された開始仮想ネットワークＩＤを、現仮想ネットワークＩＤとする。
【０２００】
（初期化後のパケットヘッダ書き換え表（Ｓ１１−１））
図２８は、工程Ｓ１１−１による初期化後のパケットヘッダ書き換え表ｈｗ−１を示す図である。本実施の形態例の仮想システムＶＳ１（図１５）では、パケットの送信元の仮想マシン「Node-1」ｖｍ−１は、仮想ネットワーク「Net-1」ｎ１と接続する。したがって、現仮想ネットワークＩＤは、仮想ネットワーク「Net-1」ｎ１である。また、図２７で前述したとおり、初期化後のパケットヘッダ書き換え表ｈｗ−１の項目「TTL」の値「64」である。
【０２０１】
図２６のフローチャート図に戻る。
【０２０２】
Ｓ１２：ネットワーク管理モジュール３１２は、仮想マシンＤＢ１４２（図１７、図１８）、及び、仮想ルータＤＢ１４３（図１９）を参照する。そして、ネットワーク管理モジュール３１２は、仮想マシンＤＢ１４２及び仮想ルータＤＢ１４３のエントリから、ＭＡＣアドレスが、利用者パケットのヘッダ情報ｈｄの項目「Dst Mac Address」が示す、宛先のＭＡＣアドレスと一致するエントリを検索する。
【０２０３】
Ｓ１３：ネットワーク管理モジュール３１２は、仮想ルータＤＢ１４３（図１９）から、利用者パケットヘッダ情報ｈｄの項目「Dst Mac Address」と一致するエントリを検出したか否かを判定する。
【０２０４】
図２３に示したように、本実施の形態例では、利用者パケットヘッダ情報ｈｄの項目「Dst Mac Address」は、仮想ネットワーク「Net-1」ｎ１のＭＡＣアドレス「Ab:cd:ef:12:a0:56」である。したがって、ネットワーク管理モジュール３１２は、仮想ルータＤＢ１４３から、ＭＡＣアドレスが、ＭＡＣアドレス「Ab:cd:ef:12:a0:56」と一致する、仮想ルータ「Router-1」ｖｒ−１のエントリを検出する。
【０２０５】
Ｓ１４：工程Ｓ１３の検索処理の結果、一致するエントリ検出した場合（Ｓ１３のｙｅｓ）、ネットワーク管理モジュール３１２は、利用者パケットのルーティング処理を行う。工程Ｓ１４の処理の詳細は、図２９のフローチャート図にしたがって説明する。
【０２０６】
（シミュレーション処理：ルーティング処理（Ｓ１４））
図２９は、図２８に示した、ネットワーク管理モジュール３１２の工程Ｓ１４の処理を説明するフローチャート図である。工程Ｓ１４は、パケットのルーティング処理を示す。ルーティング処理では、パケットヘッダ書き換え表ｈｗの更新処理、及び、仮想ネットワークの遷移を行う。
【０２０７】
Ｓ１４−１：ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗの項目「TTL」の値が、値「０」より大きいか否かを判定する。
【０２０８】
Ｓ１４−２：パケットヘッダ書き換え表ｈｗの項目「TTL」の値が値「０」以下の場合（Ｓ１４−１のｎｏ）、タイムアウトにより、ネットワーク管理モジュール３１２は、エラー終了する。ネットワーク管理モジュール３１２は、利用者パケットが宛先のアドレスに到達しない旨のエラー情報「network unreachable」を出力する。
【０２０９】
Ｓ１４−３：パケットヘッダ書き換え表ｈｗの項目「TTL」の値が値「０」より大きい場合（Ｓ１４−１のｙｅｓ）、ネットワーク管理モジュール３１２は、検出した仮想ルータのＮＡＴルールテーブル（NAT rule table）を検索する。ネットワーク管理モジュール３１２は、仮想ルータＤＢ１４３（図１９）のＮＡＴルールテーブルのエントリから、項目「Orig-D-IP」が、利用者パケットのヘッダ情報ｈｄの項目「Dst IP address」が示す宛先のＩＰアドレスと一致するエントリを検索する。
【０２１０】
Ｓ１４−４：ネットワーク管理モジュール３１２は、工程Ｓ１４−３の検索処理の結果、一致するエントリを検出したか否かを判定する。本実施の形態例では、ネットワーク管理モジュール３１２は、仮想ルータ「Router-1」ｖｒ−１のＮＡＴルールテーブルのエントリ（図１９）から、項目「Orig-D-IP」が、ヘッダ情報ｈｄの宛先のＩＰアドレス「133.11.0.11」と一致するエントリを検出する（Ｓ１４−４のｙｅｓ）。
【０２１１】
Ｓ１４−５：一方、一致するエントリを検出しなかった場合（Ｓ１４−４のｎｏ）、利用者パケットが、ＮＡＴ変換対象のパケットではないことを示す。ネットワーク管理モジュール３１２は、検出した仮想ルータのルーティングテーブルから、利用者パケットヘッダ情報ｈｄの宛先のＩＰアドレスのアドレスブロックを検索する。
【０２１２】
Ｓ１４−６：工程Ｓ１４−５の検索処理の結果、ネットワーク管理モジュール３１２は、アドレスブロックを検出したか否かを判定する。
【０２１３】
Ｓ１４−７：アドレスブロックを検出しなかった場合（Ｓ１４−６のｎｏ）、通信が不達であることを示す。したがって、ネットワーク管理モジュール３１２は、ネットワークが到達しない旨のエラー情報「network unreachable」を出力し、エラー終了する。
【０２１４】
Ｓ１４−８：工程Ｓ１４−５の検索処理の結果、アドレスブロックを検出した場合（Ｓ１４-６のｙｅｓ）、ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗを更新する。
【０２１５】
具体的に、ネットワーク管理モジュール３１２は、ルーティングテーブルのネクストホップ（nexthop）のＩＰアドレスを取得し、当該ＩＰアドレスに対応するＭＡＣアドレスを取得する。そして、ネットワーク管理モジュール３１２は、取得したＭＡＣアドレスを、パケットヘッダ書き換え表ｈｗの項目「Dst Mac Address」に更新する。また、ネットワーク管理モジュール３１２は、現在の仮想ネットワークＩＤを、ネクストホップ（nexthop）が示す仮想ネットワークＩＤに更新する。
【０２１６】
Ｓ１４−９：一方、工程Ｓ１４−３の検索処理の結果、一致するＮＡＴテーブルのエントリを検出した場合（Ｓ１４−４のｙｅｓ）、利用者パケットが、ＮＡＴ変換対象のパケットであることを示す。したがって、ネットワーク管理モジュール３１２は、検出したＮＡＴルールテーブルのエントリに基づいて、ＮＡＴ変換処理を行う。なお、ＮＡＴテーブルのエントリを検出した場合、往復のパケットであることを示す。ＮＡＴ変換処理を、図３０のフローチャート図にしたがって説明する。
【０２１７】
（シミュレーション処理：ＮＡＴ変換処理（Ｓ１４−９））
図３０は、図２９に示した、ネットワーク管理モジュール３１２の工程Ｓ１４−９のＮＡＴ変換処理を説明するフローチャート図である。
【０２１８】
Ｓ１４−１１：ネットワーク管理モジュール３１２は、検出したＮＡＴルールテーブルのＮＡＴアクティブリスト（「NAT active list」）のエントリから、所定の項目が、ヘッダ情報ｈｄと一致するエントリを検索する。所定の項目は、項目「Orig-D-IP」、項目「Orig-Proto」、項目「Orig-Port」である。
【０２１９】
Ｓ１４−１２：所定の項目が一致するＮＡＴアクティブリストのエントリが検出されたか否かを判定する。
【０２２０】
Ｓ１４−１３：所定の項目が一致するＮＡＴアクティブリストのエントリを検出した場合（Ｓ１４−１２のｙｅｓ）、パケットのヘッダ情報ｈｄに対応するＮＡＴ変換処理が発生していることを示す。ネットワーク管理モジュール３１２は、検出したＮＡＴアクティブリストのエントリに基づいて、パケットヘッダ書き換え表ｈｗを更新する。
【０２２１】
具体的に、ネットワーク管理モジュール３１２は、検出したＮＡＴアクティブリストのエントリの項目「Trans-D-IP」が示す変換後のＩＰアドレスに対応するＭＡＣアドレスを、パケットヘッダ書き換え表ｈｗの項目「Dst Mac Address」に更新する。また、ネットワーク管理モジュール３１２は、当該変換後のＩＰアドレスを、パケットヘッダ書き換え表ｈｗの項目「Dst IP address」に更新する。また、ネットワーク管理モジュール３１２は、検出したＮＡＴアクティブリストのエントリの項目「Trans-Port」の値を、パケットヘッダ書き換え表ｈｗの項目「Dst port」に更新する。
【０２２２】
また、ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗの項目「往復セッション」に値「１」を更新するとともに、項目「往路／復路」に値「０／１」を更新する。ＮＡＴアクティブリストのエントリを検出した場合、項目「往復セッション」の値が「１」であることを示す。また、ネットワーク管理モジュール３１２は、検出したＮＡＴアクティブリストのエントリに基づいて、項目「往路／復路」の値を更新する。また、ネットワーク管理モジュール３１２は、現在の仮想ネットワークＩＤに、ＮＡＴルールテーブルの項目「Next Net」が示す仮想ネットワークＩＤを更新する。
【０２２３】
Ｓ１４−１４：一方、所定の項目が一致するＮＡＴアクティブリストのエントリを検出しない場合（Ｓ１４−１２のｎｏ）、ネットワーク管理モジュール３１２は、ＮＡＴルールテーブルを検出する。ネットワーク管理モジュール３１２は、利用者パケットのヘッダ情報ｈｄの項目「Dst IP address」が示す宛先のＩＰアドレスと、項目「Trans-D-IP」が一致するＮＡＴルールテーブルのエントリを検出する。
【０２２４】
本実施の形態例では、初めは、所定の項目が一致するＮＡＴアクティブリストのエントリは存在しない。したがって、ネットワーク管理モジュール３１２は、所定の項目が一致するＮＡＴアクティブリストのエントリを検出しない（Ｓ１４−１２のｎｏ）。そして、ネットワーク管理モジュール３１２は、利用者パケットのヘッダ情報ｈｄの宛先のＩＰアドレス「133.11.0.11」と、項目「Trans-D-IP」が一致するＮＡＴルールテーブルのエントリを検出する（Ｓ１４−１４）。
【０２２５】
Ｓ１４−１５：ネットワーク管理モジュール３１２は、検索したＮＡＴルールテーブルのエントリの項目「NAT Type」が「Load Balancer」であるか否かを判定する。
【０２２６】
Ｓ１４−１６：項目「NAT Type」が「Load Balancer」である場合（Ｓ１４−１５のｙｅｓ）、ネットワーク管理モジュール３１２は、負荷分散のポリシーにしたがって、パケットの宛先の仮想マシンｖｍを決定する。なお、項目「NAT Type」が「Load Balancer」ではない場合（Ｓ１４−１５のｎｏ）、ネットワーク管理モジュール３１２は、工程Ｓ１４−１６の処理を行わない。
【０２２７】
図１９に示した仮想ルータＤＢ１４３によると、本実施の形態例では、検出したＮＡＴルールテーブルのエントリの項目「NAT Type」は「Load Balancer」である。したがって、ネットワーク管理モジュール３１２は、エントリの項目「LB-Policy」のラウンドロビン（Round robin）の手法にしたがって、宛先の仮想マシンｖｍを、仮想マシン「Node-2」ｖｍ−２に決定する。そして、ネットワーク管理モジュール３１２は、仮想マシン「Node-2」ｖｍ−２のＩＰアドレスアドレス「172.16.10.10」を取得する。
【０２２８】
Ｓ１４−１７：ネットワーク管理モジュール３１２は、ＮＡＴ変換処理後のＩＰアドレスから、宛先の仮想マシンのＭＡＣアドレスを取得する。本実施の形態例では、ネットワーク管理モジュール３１２は、仮想マシンＤＢ１４２（図１４）を参照し、仮想マシン「Node-2」ｖｍ−２のＭＡＣアドレス「Ab:cd:ef:12:34:78」を取得する。
【０２２９】
Ｓ１４−１８：ネットワーク管理モジュール３１２は、検出したＮＡＴルールテーブルのエントリの項目と、工程Ｓ１４−１７で取得したＩＰアドレスとに基づいて、パケットヘッダ書き換え表ｈｗを更新する。更新処理の詳細は、図３１にしたがって後述する。
【０２３０】
Ｓ１４−１９：ネットワーク管理モジュール３１２は、仮想ルータＤＢ１４３（図１９）の検出した仮想ルータｖｒのエントリに、ＮＡＴアクティブリストを登録する。ネットワーク管理モジュール３１２は、ロードバランサ（Load Balancer）の状態を保持するために、ＮＡＴアクティブリストに、往復のセッションのエントリを登録しておく。ＮＡＴアクティブリストの登録例は、図３２にしたがって後述する。
【０２３１】
（シミュレーション処理：ＮＡＴ変換処理後のパケットヘッダ書き換え表（Ｓ１４−１８））
図３１は、図３０のフローチャートの工程Ｓ１４−１８の、パケットヘッダ書き換え表ｈｗの更新例を説明する図である。
【０２３２】
ネットワーク管理モジュール３１２は、ＮＡＴ変換処理後の宛先の仮想マシン「Node-2」ｖｍ−２のＭＡＣアドレス「Ab:cd:ef:12:34:78」を、パケットヘッダ書き換え表ｈｗ−２の項目「Dst Mac Address」に更新する。また、ネットワーク管理モジュール３１２は、宛先の仮想マシン「Node-2」ｖｍ−２のＩＰアドレス「172.16.10.10」を、パケットヘッダ書き換え表ｈｗ−２の項目「Dst IP address」に更新する。また、ネットワーク管理モジュール３１２は、ＮＡＴルールテーブルの項目「Orig-Port」の値「80」を、パケットヘッダ書き換え表ｈｗ−２の項目「Dst port」に更新する。
【０２３３】
また、ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗ−２の項目「往復セッション」に値「１」を更新する。また、ネットワーク管理モジュール３１２は、ＮＡＴアクティブリストが存在しないことから、パケットヘッダ書き換え表ｈｗ−２の項目「往路／復路」に値「０（往路）」を更新する。また、ネットワーク管理モジュール３１２は、現在の仮想ネットワークＩＤに、ＮＡＴルールテーブルの項目「Next Net」の仮想ネットワークＩＤ「Net-2」ｎ２を更新する。
【０２３４】
（シミュレーション処理：ＮＡＴアクティブリストの登録（Ｓ１４−１９））
図３２は、図３０のフローチャートの工程Ｓ１４−１９で登録した往復セッションのＮＡＴアクティブリスト（「NAT active list」）の一例を示す。
【０２３５】
図３２は、仮想ルータ「Router-1」ｖｒ−１の往路と復路のＮＡＴアクティブリストの一例を示す。なお、図３２に示す、仮想ルータ「Router-1」ｖｒ−１のＮＡＴルールテーブルは、図１９に示す仮想ルータＤＢ１４３と同様である。
【０２３６】
ＮＡＴアクティブリストは、項目「ID」、項目「Rule-ID」、項目「NAT Type」、項目「Session-Pair」、項目「Orig-D-IP」、項目「Orig-Proto」、項目「Orig-D-Port」、項目「Orig-S-IP」、項目「Orig-S-port」、項目「Trans-D-IP」、項目「Trans-Port」、項目「Timer」を有する。
【０２３７】
項目「ID」は、ＮＡＴアクティブリストの識別情報を示す。項目「Rule-ID」は、ＮＡＴ変換のルールの識別情報を示す。項目「NAT Type」は、往路、または、復路を示す。項目「NAT Type」は、往路の場合に“DNAT（destination NAT）”を示し、復路の場合に“SNAT（Source NAT）”を示す。項目「Session-Pair」は、対となるＮＡＴアクティブリストの「ID」を示す。
【０２３８】
項目「Orig-D-IP」は、ＮＡＴ変換元のＩＰアドレスである。項目「Orig-Proto」は、ＮＡＴ変換元のプロトコルを示す。項目「Orig-D-Port」は、ＮＡＴ変換元の宛先のポート番号を示す。項目「Orig-S-IP」は、ＮＡＴ変換元の送信元のＩＰアドレスを示す。項目「Orig-S-port」は、ＮＡＴ変換元の送信元のポート番号を示す。項目「Trans-D-IP」は、ＮＡＴ変換先の宛先のＩＰアドレスを示す。項目「Trans-Port」は、ＮＡＴ変換先のポート番号を示す。項目「Timer」は、エントリの有効期間を示す。
【０２３９】
図３２の例によると、仮想ルータ「Router-1」は、ＩＤ「NAT-Active-1」、ＩＤ「NAT-Active-2」のＮＡＴアクティブリストを有する。ＩＤ「NAT-Active-1」及びＩＤ「NAT-Active-2」のNAT active listの項目「Rule-ID」の値は、ともに「NAT-Rule-1」であって、同一のＮＡＴルールテーブルに基づくことを示す。また、項目「Session-Pair」に示すように、ＩＤ「NAT-Active-1」及びＩＤ「NAT-Active-2」は対の情報である。ＩＤ「NAT-Active-1」の項目「NAT Type」の値は「DNAT」であって、ＩＤ「NAT-Active-2」の項目「NAT Type」の値は「SNAT」である。したがって、ＩＤ「NAT-Active-1」のエントリは、往路のＮＡＴ変換情報を示し、ＩＤ「NAT-Active-2」のエントリは、復路のＮＡＴ変換情報を示す。
【０２４０】
また、ＩＤ「NAT-Active-1」のエントリによると、往路の変換元の、宛先のＩＰアドレスは値「133.11.0.11（項目「Orig-D-IP」）」、ポート番号は「80（項目「Orig-Proto」）」であって、プロトコルは「TCP（項目「Orig-D-Port」）」である。また、ＩＤ「NAT-Active-1」のエントリによると、往路の変換元の、送信元のＩＰアドレスは値「130.69.100.10（項目「Orig-S-IP」）」であり、ポート番号は「48754（項目「Orig-S-port」）」である。
【０２４１】
また、ＩＤ「NAT-Active-1」のエントリによると、往路の変換先の、宛先のＩＰアドレスは値「172.16.10.10（項目「Trans-D-IP」）」、ポート番号は「80（項目「Trans-Port」）」である。また、エントリの有効期間（項目「Timer」）は、３０秒である。ＩＤ「NAT-Active-2」のエントリが示す、復路のＮＡＴ変換情報は、ＩＤ「NAT-Active-1」が有する往路の変換情報の逆変換の情報を有する。
【０２４２】
図３０で説明した、工程Ｓ１４−１３、工程Ｓ１４−１９の処理後、ＮＡＴ処理（図２９の工程Ｓ１４−９）が終了し、図２９のルーティング処理のフローチャート図に戻る。
【０２４３】
Ｓ１４−１０：工程Ｓ１４−８、工程Ｓ１４−９の後、ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗを更新する。パケットヘッダ書き換え表ｈｗの更新処理を、図３３にしたがって説明する。
【０２４４】
（ルーティング処理後のパケットヘッダ書き換え表（Ｓ１４−１０））
図３３は、図２９のフローチャートの工程Ｓ１４−１０の、パケットヘッダ書き換え表ｈｗの更新処理を説明する図である。工程Ｓ１４−１０では、ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗ−３の項目「Src Mac Address」と、項目「TTL」の値を更新する。
【０２４５】
本実施の形態例では、図３０の示したＮＡＴ変換処理の結果、現在の仮想ネットワークＩＤは、仮想ネットワークＩＤ「Net-2」ｎ２である。仮想ルータＤＢ１４３（図１９）の仮想ルータ「Router-1」ｖｒ−１のエントリによると、仮想ネットワークＩＤ「Net-2」ｎ２のＭＡＣアドレスは、「Ab:cd:ef:12:ａ0:78」である。したがって、ネットワーク管理モジュール３１２は、ＭＡＣアドレス「Ab:cd:ef:12:ａ0:78」を、パケットヘッダ書き換え表ｈｗ−３の「Srct Mac Address」に更新する。また、ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗ−３の項目「TTL」の値を、値「64」から値「63」にデクリメントする。
【０２４６】
図２９に示した、工程Ｓ１４−１０の処理後、ルーティング処理（図２６の工程Ｓ１４）が終了し、図２６のフローチャート図に戻る。
【０２４７】
ルーティング処理の結果、ネットワーク管理モジュール３１２は、再度、工程Ｓ１２、Ｓ１３の処理を行う。ネットワーク管理モジュール３１２は、仮想ルータＤＢ１４３（図１９）のエントリから、利用者パケットのヘッダ情報ｈｄの項目「Dst Mac Address」が一致するエントリを検出すると（Ｓ１３のｙｅｓ）、再度、ルーティング処理を行う（Ｓ１４）。ネットワーク管理モジュール３１２は、工程Ｓ１２〜Ｓ１４の処理を繰り返すことにより、１つまたは複数のルータによる、ルーティング処理をシミュレートする。
【０２４８】
一方、ネットワーク管理モジュール３１２は、仮想ルータＤＢ１４３（図１９）のエントリから、ＭＡＣアドレスが、利用者パケットのヘッダ情報ｈｄの項目「Dst Mac Address」と一致するエントリを検出しない場合（Ｓ１３のｎｏ）、工程Ｓ１５の処理に遷移する。
【０２４９】
Ｓ１５：一致するエントリを検出しない場合（Ｓ１３のｎｏ）、ネットワーク管理モジュール３１２は、仮想マシンＤＢ１４２（図１７、図１８）から、ＭＡＣアドレスが、ヘッダ情報ｈｄの項目「Dst Mac Address」と一致するエントリを検出したか否かを判定する。
【０２５０】
本実施の形態例では、ＮＡＴ変換処理後の、パケットヘッダ書き換え表ｈｗ−３（図３３）の項目「Dst Mac Address」の値は、仮想マシン「Node-2」ｖｍ−２のＭＡＣアドレス「Ab:cd:ef:12:34:78」を示す。したがって、ネットワーク管理モジュール３１２は、仮想マシンＤＢ１４２（図１７、図１８）のエントリから、ＭＡＣアドレス「Ab:cd:ef:12:34:78」と一致する仮想マシン「Node-2」ｖｍ−２のエントリを検出する（Ｓ１５のｙｅｓ）。
【０２５１】
Ｓ１６：工程Ｓ１５の検索処理の結果、一致するエントリを検出しない場合（Ｓ１５のｎｏ）、通信が不達であることを示す。したがって、ネットワーク管理モジュール３１２は、ネットワークが到達しない旨のエラー情報「network unreachable」を出力し、エラー終了する。
【０２５２】
Ｓ１７：一方、一致するエントリを検出した場合（Ｓ１５のｙｅｓ）、宛先の仮想マシンｖｍに到達したことを示す。したがって、ネットワーク管理モジュール３１２は、シミュレーションの後処理を行う。シミュレーションの後処理は、図３４のフローチャート図で後述する。
【０２５３】
Ｓ１８：ネットワーク管理モジュール３１２は、シミュレーションの結果データを出力し、シミュレーション処理を終了する。ネットワーク管理モジュール３１２は、図３５に後述するパケットヘッダ書き換え表ｈｗを、シミュレーションの結果データ（経路情報）として、問い合わせ元の仮想ルータｖｒに送信する。
【０２５４】
（シミュレーション処理：後処理（Ｓ１７））
図３４は、図２６に示した、ネットワーク管理モジュール３１２の工程Ｓ１７の処理を説明するフローチャート図である。工程Ｓ１７では、ネットワーク管理モジュール３１２は、シミュレーションの後処理として、シミュレーションの結果データの生成処理を行う。
【０２５５】
Ｓ１７−１：ネットワーク管理モジュール３１２は、パケットヘッダ書き換え表ｈｗが示す宛先の仮想マシンｖｍに基づいて、当該仮想マシンｖｍの搭載物理マシンＩＰアドレスを取得する。そして、ネットワーク管理モジュール３１２は、取得した搭載物理マシンＩＰアドレスを、パケットヘッダ書き換え表ｈｗの項目「宛先物理マシンIP address」に設定する。
【０２５６】
本実施の形態例では、パケットヘッダ書き換え表ｈｗ−３（図３３）によると、宛先の仮想マシンｖｍは、仮想マシン「Node-2」ｖｍ−２である。したがって、ネットワーク管理モジュール３１２は、仮想マシンＤＢ１４２（図１７、図１８）を参照し、仮想マシン「Node-2」ｖｍ−２を搭載するサーバ装置１０の識別情報「#20011」を取得する。そして、ネットワーク管理モジュール３１２は、物理マシンＤＢ１４４（図１６）を参照し、サーバ装置「#20011」のＩＰアドレス「10.20.4.121」を取得する。
【０２５７】
（シミュレーション処理：後処理後のパケットヘッダ書き換え表）
図３５は、図３４のフローチャートの工程Ｓ１７−１の、パケットヘッダ書き換え表ｈｗ−４の更新処理を説明する図である。ネットワーク管理モジュール３１２は、取得した仮想マシン「Node-2」ｖｍ−２の搭載物理マシンＩＰアドレス「10.20.4.121」を、パケットヘッダ書き換え表ｈｗ−４の項目「宛先物理マシンIP address」にセットする。
【０２５８】
図２６〜図３５にしたがって、ネットワーク管理モジュール３１２によるシミュレーション処理を説明した。次に、図２２に示した、仮想ルータｖｒのＴＸ処理モジュール４０２、及び、ＲＸ処理モジュール４０１の処理を順次、説明する。
【０２５９】
［仮想ルータの処理］
初めに、図２２に示した、ＴＸセッションテーブルｓｔ−ｔ、ＲＸセッションテーブルｓｔ−ｒが有するセッション情報ｓｔのフォーマットを説明する。
【０２６０】
（ＴＸセッションテーブル、ＲＸセッションテーブル）
図３６は、ＴＸセッションテーブルｓｔ−ｔ、及び、ＲＸセッションテーブルｓｔ−ｒが有するセッション情報ｓｔのフォーマットを説明する図である。
【０２６１】
セッション情報ｓｔは、マッチ部分ｓｔｍ、ヘッダ書き換え部分ｓｔｕ、制御部ｓｔｃを有する。マッチ部分ｓｔｍは、送受信した利用者パケットのヘッダ情報ｈｄと比較する部分である。ヘッダ書き換え部分ｓｔｕが有する項目は、送受信した利用者パケットのヘッダ情報ｈｄを書き換える対象の項目である。なお、ヘッダ書き換え部分ｓｔｕが有する項目のうち、空欄の項目は、利用者パケットのヘッダ情報ｈｄの書き換え対象外の項目である。制御部ｓｔｃは、セッションの制御情報を有する。
【０２６２】
マッチ部分ｓｔｍは、シミュレーション処理の入力情報である、ヘッダ情報ｈｄ（図２３）と同一の項目を有する。ヘッダ書き換え部分ｓｔｕは、シミュレーション処理の出力情報である、パケットヘッダ書き換え表ｈｗ（図２４）のヘッダ書き換え部分ｈｗｕと、同一の項目を有する。また、制御部ｓｔｃは、パケットヘッダ書き換え表ｈｗ（図２４）の制御部ｈｗｃの項目に加えて、項目「タイマー」を有する。項目「タイマー」の値は、セッション情報ｓｔの有効期限を示す。
【０２６３】
（ヘッダ情報を書き換え）
図３７は、図２２に示した、ＴＸ処理モジュール４０２、及び、ＲＸ処理モジュール４０１による、利用者パケットのヘッダ情報ｈｄの書き換え処理の有無を説明する図である。
【０２６４】
ＴＸ処理モジュール４０２は、ＴＸセッションテーブルｓｔ−ｔのセッション情報ｓｔのマッチ部分ｓｔｍが一致する、送信対象のトンネルパケットＰＫａの利用者パケットのヘッダ情報を、ヘッダ書き換え部分ｓｔｕにしたがって更新する。また、ＲＸ処理モジュール４０１は、ＲＸセッションテーブルｓｔ−ｒのセッション情報ｓｔのマッチ部分ｓｔｍが一致する、受信対象のトンネルパケットＰＫａの利用者パケットのヘッダ情報を、ヘッダ書き換え部分ｓｔｕにしたがって更新する。
【０２６５】
ＴＸ処理モジュール４０２、及び、ＲＸ処理モジュール４０１は、往復パケットｆｇ１の値に応じて、利用者パケットのヘッダ情報の更新を行う。図３７の表Ｈ１に示すヘッダ情報の更新の有無は、図３８〜図４６に示す、ＴＸ処理モジュール４０２、及び、ＲＸ処理モジュール４０１の処理のフローチャート図に対応する。
【０２６６】
図３７に示す表Ｈ１によると、ＴＸ処理モジュール４０２は、送信対象のパケットが、片道のパケット、または、往路パケットである場合、セッション情報ｓｔに基づいて、トンネルパケットＰＫａの、利用者パケットのヘッダ情報を更新する。また、ＲＸ処理モジュール４０１は、復路のトンネルパケットＰＫａを受信したときに、トンネルパケットＰＫａの、利用者パケットのヘッダ情報を更新する。
【０２６７】
次に、図３８〜図４０にしたがって、ＴＸ処理モジュール４０２の処理を説明する。
【０２６８】
（ＴＸ処理モジュール）
図３８は、図２２に示す、仮想ルータｖｒのＴＸ処理モジュール４０２の処理を説明するフローチャート図である。
【０２６９】
Ｓ２１：ＴＸ処理モジュール４０２は、仮想マシンｖｍから送信対象のパケットを受信すると、仮想マシンｖｍの仮想インタフェースが接続する、仮想ネットワークＩＤを取得する。具体的に、ＴＸ処理モジュール４０２は、仮想マシンＤＢ１４２（図１７、図１８）の当該仮想マシンｖｍの仮想インタフェースの項目「Connect Net」が示す、仮想ネットワークＩＤを取得する。
【０２７０】
Ｓ２２：ＴＸ処理モジュール４０２は、仮想マシンｖｍから、送信対象のパケットを解析し、パケットの種別を取得する。
【０２７１】
Ｓ２３：ＴＸ処理モジュール４０２は、解析結果に基づいて、送信対象のパケットがａｒｐ要求か否かを判定する。
【０２７２】
Ｓ２４：パケットがａｒｐ要求である場合（Ｓ２３のｙｅｓ）、ＴＸ処理モジュール４０２は、ａｒｐ要求をｐｒｏｘｙＡＲＰモジュール４０３に通知する。
【０２７３】
Ｓ２５：一方、パケットがａｒｐ要求ではない場合（Ｓ２３のｎｏ）、ＴＸ処理モジュール４０２は、パケットの解析結果に応じて、パケットがＩＰユニキャストであるか否かを判定する。
【０２７４】
Ｓ２６：パケットがＩＰユニキャストではない場合（Ｓ２５のｎｏ）、ＴＸ処理モジュール４０２は、解析結果に応じて、ブロードキャストの処理や、Ｌ２パケットの送信処理を行い、処理を終了する。
【０２７５】
Ｓ２７：一方、パケットがＩＰユニキャストである場合（Ｓ２５のｙｅｓ）、ＴＸ処理モジュール４０２は、パケットの送信処理を行う。工程Ｓ２７の処理は、図３９のフローチャート図にしたがって説明する。
【０２７６】
（ＴＸ処理モジュール：ＩＰユニキャストの送信処理）
図３９は、図３８の工程Ｓ２７の処理を説明するフローチャート図である。工程Ｓ２７は、ＩＰユニキャストのパケットの送信処理を示す。
【０２７７】
Ｓ３１：ＴＸ処理モジュール４０２は、送信対象のパケットのヘッダ情報ｈｄに基づいて、ＴＸセッションテーブルｓｔ−ｔを検索する。具体的に、ＴＸ処理モジュール４０２は、ＴＸセッションテーブルｓｔ−ｔのエントリから、マッチ部分ｓｔｍが、送信対象のパケットのヘッダ情報ｈｄと一致するエントリを検索する。
【０２７８】
Ｓ３２：ＴＸ処理モジュール４０２は、送信対象のパケットのヘッダ情報ｈｄと一致するマッチ部分ｓｔｍを有するエントリが、ＴＸセッションテーブルｓｔ−ｔに登録済みであるか否かを判定する。
【０２７９】
Ｓ３３：登録済みではない場合（Ｓ３２のｎｏ）、ＴＸ処理モジュール４０２は、ＴＸセッションテーブルｓｔ−ｔに、送信対象のパケットのヘッダ情報ｈｄに対応するセッション情報ｓｔを登録する。工程Ｓ３３の処理の詳細は、図４０にしたがって後述する。なお、既に登録済みの場合（Ｓ３２のｙｅｓ）、ＴＸ処理モジュール４０２は、工程Ｓ３３の処理を行わない。
【０２８０】
工程Ｓ３１〜Ｓ３３によって、ＴＸ処理モジュール４０２は、送信対象のパケットのヘッダ情報ｈｄとマッチ部分ｓｔｍが一致する、ＴＸセッションテーブルｓｔ−ｔのエントリを取得する。
【０２８１】
Ｓ３４：ＴＸ処理モジュール４０２は、取得したエントリのヘッダ書き換え部分ｓｔｕに基づいて、トンネルパケットＰＫａが含む、利用者パケットのヘッダ情報ｈｄを更新する。
【０２８２】
Ｓ３５：ＴＸ処理モジュール４０２は、取得したエントリに基づいて、トンネルパケットＰＫａのＶＸＬＡＮヘッダ（図８）が含む、仮想ネットワークＩＤ、往復フラグｆｇ１を設定する。
【０２８３】
Ｓ３６：ＴＸ処理モジュール４０２は、取得したエントリに基づいて、トンネルパケットＰＫａのトンネリングＵＰＤ/ＩＰヘッダ（図８）が含む、宛先ＩＰアドレスに、宛先の仮想マシンｖｍの搭載物理マシンＩＰアドレスを指定する。
【０２８４】
工程Ｓ３４〜Ｓ３６の処理によって、宛先の仮想マシンｖｍを搭載するサーバ装置１０にトンネルパケットＰＫａが到達するとともに、宛先の仮想マシンｖｍに、トンネルパケットＰＫａが含む、利用者パケットが到達する。また、トンネルパケットＰＫａの往復フラグｆｇ１に基づいて、パケットが往復セッションのパケットであるか否か、往路、復路のいずれのパケットであるかが検知可能になる。
【０２８５】
Ｓ３７：ＴＸ処理モジュール４０２は、更新したトンネルパケットＰＫａを、サーバ装置１０のネットワークインタフェース（図２１の通信インタフェース部２０３）を介して、送信する。
【０２８６】
（ＴＸ処理モジュール：セッションの登録）
図４０は、図３９の工程Ｓ３３の処理を説明するフローチャート図である。工程Ｓ３３は、ＴＸセッションテーブルｓｔ−ｔに、送信対象のパケットのヘッダ情報ｈｄに対応するセッション情報ｓｔを登録する処理を示す。
【０２８７】
Ｓ４１：ＴＸ処理モジュール４０２は、送信対象のパケットのヘッダ情報ｈｄに基づいて、管理サーバ装置２０のネットワーク管理モジュール３１２に、ヘッダ情報ｈｄに対応する経路情報を問い合わせる。そして、ＴＸ処理モジュール４０２は、ネットワーク管理モジュール３１２から、パケットヘッダ書き換え表ｈｗを受信する。
【０２８８】
Ｓ４２：ＴＸ処理モジュール４０２は、取得したパケットヘッダ書き換え表ｈｗに基づいて、送信対象のパケットが往復セッションのパケットであるか否かを判定する。
【０２８９】
Ｓ４３：往復セッションのパケットである場合（Ｓ４２のｙｅｓ）、ＴＸ処理モジュール４０２は、さらに、送信対象のパケットが往路のパケットであるか否かを判定する。
【０２９０】
Ｓ４４：往復セッションのパケットであって（Ｓ４２のｙｅｓ）、復路のパケットである場合（Ｓ４３のｎｏ）、ＴＸ処理モジュール４０２は、取得したパケットヘッダ書き換え表ｈｗのヘッダ書き換え部分ｈｗｕの情報をクリアする。即ち、ＴＸ処理モジュール４０２は、ヘッダ書き換え部分ｈｗｕの情報を無効化する。
【０２９１】
Ｓ４５：また、往路のパケットである場合（Ｓ４３のｙｅｓ）、ＴＸ処理モジュール４０２は、取得したパケットヘッダ書き換え表ｈｗが示す経路の逆の経路を、ＲＸセッションテーブルｓｔ−ｒに登録する。即ち、ＴＸ処理モジュール４０２は、取得したパケットヘッダ書き換え表ｈｗに基づいて復路の経路を生成し、ＲＸセッションテーブルｓｔ−ｒに登録しておく。これにより、ＲＸ処理モジュール４０１は、復路のパケットの受信時に、ＲＸセッションテーブルｓｔ−ｒに基づいて、利用者パケットのヘッダ情報を更新可能になる。これにより、往路と復路の経路を一致させることが実現可能になる。
【０２９２】
なお、片道のパケットである場合（Ｓ４２のｎｏ）、または、往路のパケットである場合（Ｓ４３のｙｅｓ）、ＴＸ処理モジュール４０２は、ヘッダ書き換え部分ｈｗｕの情報を、トンネルパケットＰｋａの書き換え（図３９のＳ３４）に使用する（図３７）。
【０２９３】
Ｓ４６：工程Ｓ４２〜Ｓ４５の後、ＴＸ処理モジュール４０２は、パケットヘッダ書き換え表ｈｗを、ＴＸセッションテーブルｓｔ−ｔに追加して登録する。このとき、ＴＸ処理モジュール４０２は、追加した、ＴＸセッションテーブルｓｔ−ｔのエントリの項目「タイマー」に、有効期限を設定する。
【０２９４】
このように、ＴＸ処理モジュール４０２は、ＴＸセッションテーブルｓｔ−ｔに、送信対象のパケットのヘッダ情報ｈｄに対応するセッション情報ｓｔがない場合、ＩａａＳ管理プログラム３１０に経路情報を問い合わせる。そして、ＴＸ処理モジュール４０２は、経路情報に基づいて、送信対象のトンネルパケットＰＫａを更新する。これにより、マイグレーションに追従した、仮想ルータｖｒのルーティング制御が可能になる。
【０２９５】
次に、図４１〜図４６にしたがって、ＲＸ処理モジュール４０１の処理を説明する。
【０２９６】
（ＲＸ処理モジュール）
図４１は、図２２に示す、仮想ルータｖｒのＲＸ処理モジュール４０１の処理を説明するフローチャート図である。
【０２９７】
Ｓ５１：ＲＸ処理モジュール４０１は、テナントネットワークｎｗ１から受信したパケットのヘッダ情報ｈｄを解析し、パケットの種別を取得する。
【０２９８】
Ｓ５２：ＲＸ処理モジュール４０１は、物理マシン更新パケットＰＫｂの処理を行う。工程Ｓ５２の処理の詳細は、図４２のフローチャート図にしたがって後述する。
【０２９９】
Ｓ５３：ＲＸ処理モジュール４０１は、受信パケットを解析し、パケットがＩＰユニキャストであるか否かを判定する。
【０３００】
Ｓ５４：受信パケットがＩＰユニキャストではない場合（Ｓ５３のｎｏ）、ＲＸ処理モジュール４０１は、解析結果に応じて、ブロードキャストの処理や、Ｌ２パケットの送信処理を行い、処理を終了する。
【０３０１】
Ｓ５５：一方、受信パケットがＩＰユニキャストである場合（Ｓ５３のｙｅｓ）、ＲＸ処理モジュール４０１は、パケットの受信処理を行う。工程Ｓ５５の処理は、図４５のフローチャート図にしたがって後述する。
【０３０２】
Ｓ５６：ＲＸ処理モジュール４０１は、パケットの仮想ネットワークＩＤと、パケットの宛先のＭＡＣアドレスとに対応する、自マシンに搭載の仮想マシンｖｍにパケットを転送する。
【０３０３】
（ＲＸ処理モジュール：物理マシン更新パケットの処理）
図４２は、図４１の工程Ｓ５２の処理を説明するフローチャート図である。工程Ｓ５２は、物理マシン更新パケットＰＫｂの受信処理、及び、送信処理を示す。
【０３０４】
Ｓ６１：ＲＸ処理モジュール４０１は、受信パケットのフラグｆｇ２（図９）に基づいて、受信パケットが、物理マシン更新パケットＰＫｂであるか否かを判定する。
【０３０５】
Ｓ６２：物理マシン更新パケットＰＫｂである場合（Ｓ６１のｙｅｓ）、ＲＸ処理モジュール４０１は、ＴＸセッションテーブルｓｔ−ｔを更新し、処理を終了する。
【０３０６】
ＴＸセッションテーブルｓｔ−ｔは、仮想ネットワークＩＤごとに管理される。したがって、ＲＸ処理モジュール４０１は、ＴＸセッションテーブルｓｔ−ｔの全エントリから、物理マシン更新パケットＰＫｂが有する仮想ネットワークＩＤと仮想ＩＰアドレスとが一致するエントリを検出する。ＲＸ処理モジュール４０１は、一致したエントリが有する搭載物理マシンＩＰアドレスを、物理マシン更新パケットＰＫｂが有する搭載物理マシンＩＰアドレスにしたがって更新する。
【０３０７】
このように、ＲＸ処理モジュール４０１は、物理マシン更新パケットＰＫｂが有する搭載物理マシンＩＰアドレスにしたがって、仮想ルータｖｒが保持するＴＸセッションテーブルｓｔ−ｔを更新する。即ち、ＲＸ処理モジュール４０１は、ＴＸセッションテーブルｓｔ−ｔが有する、マイグレーションにより移動した仮想マシンｖｍの搭載物理マシンＩＰアドレスを更新する。これにより、ＴＸ処理モジュール４０２は、ＴＸセッションテーブルｓｔ−ｔに基づいて、マイグレーションにより移動した仮想マシンｖｍと通信できる。
【０３０８】
Ｓ６３：一方、物理マシン更新パケットＰＫｂではない場合（Ｓ６１のｎｏ）、ＲＸ処理モジュール４０１は、ＲＸセッションテーブルｓｔ−ｒに、マッチ部分ｓｔｍが、パケットのヘッダ情報ｈｄと一致するエントリがあるか否かを判定する。
【０３０９】
Ｓ６４：一致するエントリがある場合（Ｓ６３のｙｅｓ）、ＲＸ処理モジュール４０１は、自マシンに、パケットの宛先の仮想マシンｖｍが搭載されているか否かを判定する。ＲＸ処理モジュール４０１は、ハイパ−バイザＨｙ（図１）に問い合わせることによって、仮想マシンｖｍが搭載されているか否かを判定する。
【０３１０】
なお、自マシンに、パケットの宛先の仮想マシンｖｍが搭載されている場合（Ｓ６４のｙｅｓ）、パケットの宛先の仮想マシンｖｍが動作していることを示す。したがって、ＲＸ処理モジュール４０１は、図４１のフローチャート図の工程Ｓ５３の判定処理に遷移する。
【０３１１】
Ｓ６５：一致するエントリがあり（Ｓ６３のｙｅｓ）、自マシンに、パケットの宛先の仮想マシンｖｍが搭載されていない場合（Ｓ６４のｎｏ）、自マシンで動作していた仮想マシンｖｍがマイグレーションにより移動したことを示す。このように、ヘッダ情報ｈｄと一致するＲＸセッションテーブルｓｔ−ｒのエントリがあるか否かを判定することによって、仮想マシンｖｍを過去に搭載していたか否かが判定可能になる。
【０３１２】
そして、ＲＸ処理モジュール４０１は、自マシンで動作していた仮想マシンｖｍの、マイグレーション後の搭載物理マシンＩＰアドレスをＩａａＳ管理プログラム３１０に問い合わせる。そして、ＲＸ処理モジュール４０１は、問い合わせて取得した、マイグレーション後の搭載物理マシンＩＰアドレスにしたがって、過去搭載していた仮想マシン表ｖｈを更新する。過去搭載していた仮想マシン表ｖｈは、図４３にしたがって説明する。また、工程Ｓ６５の処理の詳細は、図４４のフローチャート図にしたがって後述する。
【０３１３】
（過去搭載していた仮想マシン表）
図４３は、過去搭載していた仮想マシン表ｖｈの一例を説明する図である。過去搭載していた仮想マシン表ｖｈは、項目「エントリＩＤ」、項目「仮想ネットワークＩＤ」、項目「仮想マシンｖｍのＩＰアドレス」、項目「新搭載物理マシンＩＰアドレス」、項目「タイマー」を有する。
【０３１４】
項目「エントリＩＤ」は、識別情報を示す。項目「仮想ネットワークＩＤ」は、仮想マシンｖｍが属する仮想ネットワークＩＤを示す。項目「仮想マシンｖｍのＩＰアドレス」は、仮想マシンｖｍのＩＰアドレスを示す。項目「新搭載物理マシンＩＰアドレス」は、マイグレーション後の仮想マシンｖｍを搭載するサーバ装置１０のＩＰアドレスを示す。項目「タイマー」は、エントリを保持する期間を示す。
【０３１５】
（ＲＸ処理モジュール：過去搭載していた仮想マシン表の更新処理）
図４４は、図４２の工程Ｓ６５の処理を説明するフローチャート図である。工程Ｓ６５は、自マシンに過去搭載していた仮想マシン表ｖｈ（図４３）の更新処理を示す。
【０３１６】
Ｓ７１：ＲＸ処理モジュール４０１は、ＲＸセッションテーブルｓｔ−ｒから、マッチ部分ｓｔｍの宛先のＭＡＣアドレスが、パケットの宛先の仮想マシンｖｍのＩＰアドレスと一致するエントリを削除する。つまり、ＲＸ処理モジュール４０１は、ＲＸセッションテーブルｓｔ−ｒから、マイグレーションにより移動した仮想マシンｖｍを宛先とするエントリを削除する。
【０３１７】
Ｓ７２：ＲＸ処理モジュール４０１は、仮想ネットワークＩＤと、パケットのヘッダ情報ｈｄとに基づいて、管理サーバ装置２０のネットワーク管理モジュール３１２に、マイグレーションした仮想マシンｖｍの搭載物理マシンＩＰアドレスを問い合わせる。
【０３１８】
具体的に、ＲＸ処理モジュール４０１は、パケットのヘッダ情報ｈｄに基づいて、逆方向の経路のヘッダ情報ｈｄを生成する。そして、ＲＸ処理モジュール４０１は、逆方向の経路のヘッダ情報ｈｄと、仮想ネットワークＩＤとに基づいて、管理サーバ装置２０のネットワーク管理モジュール３１２に、経路情報を問い合わせる。そして、ＲＸ処理モジュール４０１は、ネットワーク管理モジュール３１２から、パケットヘッダ書き換え表ｈｗを受信する。
【０３１９】
Ｓ７３：ＲＸ処理モジュール４０１は、受信したパケットヘッダ書き換え表ｈｗに基づいて、過去搭載していた仮想マシン表ｖｈにエントリを登録する。
【０３２０】
具体的に、ＲＸ処理モジュール４０１は、マイグレーションした仮想マシンｖｍの仮想ネットワークＩＤを、過去搭載していた仮想マシン表ｖｈの項目「仮想ネットワークＩＤ」に登録する。また、ＲＸ処理モジュール４０１は、当該仮想マシンｖｍのＩＰアドレスを、過去搭載していた仮想マシン表ｖｈの項目「仮想マシンｖｍのＩＰアドレス」に登録する。
【０３２１】
また、ＲＸ処理モジュール４０１は、取得したパケットヘッダ書き換え表ｈｗの制御部ｈｗｃの項目「宛先物理マシンIP address」の値を、過去搭載していた仮想マシン表ｖｈの項目「新搭載物理マシンＩＰアドレス」に登録する。また、ＲＸ処理モジュール４０１は、過去搭載していた仮想マシン表ｖｈのタイマー値を、キャッシュタイマーの２倍の値にセットする。
【０３２２】
図４２のＲＸ処理モジュール４０１の処理に戻る。
【０３２３】
Ｓ６６：ＲＸセッションテーブルｓｔ−ｒに、マッチ部分ｓｔｍが、パケットのヘッダ情報ｈｄと一致するエントリがない場合（Ｓ６３のｎｏ）、ＲＸ処理モジュール４０１は、自マシンにパケットの宛先の仮想マシンｖｍが搭載されているか否かを判定する。仮想マシンｖｍが搭載されている場合（Ｓ６６のｙｅｓ）、新たなセッションを検出した場合に該当する。したがって、ＲＸ処理モジュール４０１は、図４１のフローチャート図の工程Ｓ５３の判定処理に遷移する。
【０３２４】
Ｓ６７：一致するエントリがなく（Ｓ６３のｎｏ）、自マシンに、パケットの宛先の仮想マシンｖｍが搭載されていない場合（Ｓ６６のｎｏ）、ＲＸ処理モジュール４０１は、過去搭載していた仮想マシン表ｖｈを参照する。そして、ＲＸ処理モジュール４０１は、過去搭載していた仮想マシン表ｖｈに、パケットの宛先の仮想マシンｖｍと一致するエントリがあるか否かを判定する。つまり、ＲＸ処理モジュール４０１は、受信パケットが、過去、搭載していた仮想マシンｖｍを宛先とするパケットであるか否かを判定する。
【０３２５】
Ｓ６８：受信したパケットの宛先の仮想マシンｖｍと一致するエントリがない場合（Ｓ６７のｎｏ）、不適切なパケットであることを示す。したがって、ＲＸ処理モジュール４０１は、受信したパケットを廃棄し、処理を終了する。
【０３２６】
Ｓ６９：工程Ｓ６５、工程Ｓ６７のｙｅｓの場合、受信パケットが、過去に搭載していた仮想マシンｖｍを宛先とするパケットであることを示す。したがって、ＲＸ処理モジュール４０１は、受信パケットの送信元のＩＰアドレスに、受信パケットの宛先の仮想マシンｖｍの新しい搭載物理マシンＩＰアドレスを含む、物理マシン更新パケットＰＫｂを送信する。
【０３２７】
このように、過去に仮想マシンｖｍを搭載していたサーバ装置１０で動作するＲＸ処理モジュール４０１は、当該仮想マシンｖｍ宛のパケットの受信を契機として、物理マシン更新パケットＰＫｂを送信する。これにより、ＲＸ処理モジュール４０１は、パケットの送信元の仮想マシンｖｍに、過去に自マシンに搭載していた仮想マシンｖｍの搭載物理マシンＩＰアドレスを通知することができる。これにより、マイグレーションの発生による通信の不通時間を低減可能になる。
【０３２８】
（ＲＸ処理モジュール：パケットの受信処理）
図４５は、図４１のフローチャート図の工程Ｓ５５の処理を説明するフローチャート図である。工程Ｓ５５は、パケットの受信処理を示す。
【０３２９】
Ｓ８１：ＲＸ処理モジュール４０１は、受信パケットのヘッダ情報ｈｄに基づいて、ＲＸセッションテーブルｓｔ−ｒを検索する。具体的に、ＲＸ処理モジュール４０１は、ＲＸセッションテーブルｓｔ−ｒのエントリから、マッチ部分ｓｔｍが、パケットのヘッダ情報ｈｄと一致するエントリを検索する。
【０３３０】
Ｓ８２：ＲＸ処理モジュール４０１は、受信パケットのヘッダ情報ｈｄと一致するマッチ部分ｓｔｍを有するエントリが、ＲＸセッションテーブルｓｔ−ｒに登録済みであるか否かを判定する。
【０３３１】
Ｓ８３：登録済みではない場合（Ｓ８２のｎｏ）、ＲＸ処理モジュール４０１は、ＲＸセッションテーブルｓｔ−ｒに、受信パケットのヘッダ情報ｈｄに対応するセッション情報ｓｔを登録する。工程Ｓ８３の処理の詳細は、図４６にしたがって後述する。なお、既に登録済みの場合（Ｓ８２のｙｅｓ）、ＲＸ処理モジュール４０１は、工程Ｓ８３の処理を行わない。
【０３３２】
工程Ｓ８１〜Ｓ８３によって、ＲＸ処理モジュール４０１は、受信パケットのヘッダ情報ｈｄとマッチ部分ｓｔｍが一致する、ＲＸセッションテーブルｓｔ−ｒのエントリを取得する。
【０３３３】
Ｓ８４：ＲＸ処理モジュール４０１は、取得したエントリに基づいて、トンネルパケットＰＫａが含む、利用者パケットのヘッダ情報ｈｄを更新する。そして、ＲＸ処理モジュール４０１は、利用者パケットを宛先の仮想マシンｖｍに転送する。
【０３３４】
なお、復路パケットの場合、ＲＸ処理モジュール４０１は、往路の際に、ＴＸ処理モジュール４０２が登録した、ＲＸセッションテーブルｓｔ−ｒに基づいて（図４０のＳ４５）、利用者パケットのヘッダ情報ｈｄを更新する（Ｓ８４）。これにより、ＮＡＴやロードバランサ等によるＩＰ変換を介するパケットの、往路と復路の経路を一致させることが可能になる。
【０３３５】
（ＲＸ処理モジュール：セッションの登録）
図４６は、図４５の工程Ｓ８３の処理を説明するフローチャート図である。工程Ｓ８３は、ＲＸセッションテーブルｓｔ−ｒに、受信パケットのヘッダ情報ｈｄに対応するセッション情報ｓｔを登録する処理を示す。
【０３３６】
Ｓ９１：ＲＸ処理モジュール４０１は、受信パケットのヘッダ情報ｈｄに基づいて、管理サーバ装置２０のネットワーク管理モジュール３１２に、ヘッダ情報ｈｄに対応する経路情報を問い合わせる。そして、ＲＸ処理モジュール４０１は、ネットワーク管理モジュール３１２から、パケットヘッダ書き換え表ｈｗを受信する。
【０３３７】
Ｓ９２：ＲＸ処理モジュール４０１は、取得したパケットヘッダ書き換え表ｈｗに基づいて、受信パケットが往復セッションのパケットであるか否かを判定する。
【０３３８】
Ｓ９３：往復セッションのパケットである場合（Ｓ９２のｙｅｓ）、ＲＸ処理モジュール４０１は、さらに、受信パケットが往路のパケットであるか否かを判定する。
【０３３９】
Ｓ９４：往路のパケットである場合（Ｓ９３のｙｅｓ）、ＲＸ処理モジュール４０１は、受信パケットの送信元の仮想マシンｖｍ及びＩＰアドレスを宛先とするセッション情報ｓｔを生成し、ＴＸセッションテーブルｓｔ−ｔに登録する。これにより、ＴＸ処理モジュール４０２は、復路のパケットの送信時に、登録したセッション情報ｓｔに基づいて、トンネルパケットＰＫａの宛先のＩＰアドレスを取得できる。これにより、ＮＡＴやロードバランサ等によるＩＰ変換を介するパケットの、往路と復路の経路を一致させることが可能になる。
【０３４０】
Ｓ９５：片道のパケットである場合（Ｓ９２のｎｏ）、または、往路のパケットである場合（Ｓ９３のｙｅｓ）、ＲＸ処理モジュール４０１は、取得したパケットヘッダ書き換え表ｈｗのヘッダ書き換え部分ｈｗｕの情報をクリアする。即ち、ＲＸ処理モジュール４０１は、取得したパケットヘッダ書き換え表ｈｗのヘッダ書き換え部分ｈｗｕを無効化する。
【０３４１】
なお、往復セッションのパケットであって（Ｓ９２のｙｅｓ）、復路のパケットである場合（Ｓ９３のｎｏ）、ＲＸ処理モジュール４０１は、ヘッダ書き換え部分ｈｗｕの情報を、トンネルパケットＰｋａの書き換え（図４５のＳ８４）に使用する（図３７）。
【０３４２】
Ｓ９６：工程Ｓ９２〜Ｓ９５の後、ＲＸ処理モジュール４０１は、パケットヘッダ書き換え表ｈｗを、ＲＸセッションテーブルｓｔ−ｒに追加して登録する。このとき、ＲＸ処理モジュール４０１は、追加した、ＲＸセッションテーブルｓｔ−ｒのエントリの項目「タイマー」に、有効期限を設定する。
【０３４３】
このように、ＲＸ処理モジュール４０１は、キャッシュとして保持するＲＸセッションテーブルｓｔ−ｒに、受信したパケットのヘッダ情報ｈｄに対応するセッション情報ｓｔがない場合、ＩａａＳ管理プログラム３１０に経路情報を問い合わせる。そして、ＲＸ処理モジュール４０１は、経路情報に基づいて、受信したパケットのヘッダ情報ｈｄを更新し、仮想マシンｖｍに転送する。これにより、マイグレーションに追従した、仮想ルータｖｒのルーティング制御が可能になる。
【０３４４】
［他の実施の形態例］
なお、上記の実施の形態例では、仮想ルータｖｒは、トンネルパケットＰＫａに往復フラグｆｇ１を付加する。ただし、この例に限定されるものではない、仮想ルータｖｒは、トンネルパケットＰＫａに、往復フラグｆｇ１を付加しなくてもよい。
【０３４５】
仮想ルータｖｒは、復路のパケットの送信時に、ＩａａＳ管理プログラム３１０に問い合わせることによって、復路の経路情報を取得してもよい。これにより、往復フラグｆｇ１をトンネルパケットＰＫａに付加しない場合であっても、パケットの往路と復路の経路を一致させることが可能になる。
【０３４６】
なお、上記の実施の形態例では、仮想マシンｖｍがデフォルトルートとして指定する、仮想ルータｖｒは、当該仮想マシンｖｍを搭載するサーバ装置１０で動作する。ただし、この例に限定されるものではない。仮想マシンｖｍがデフォルトルートとして指定する仮想ルータｖｒは、当該仮想マシンｖｍを搭載するサーバ装置１０とは、異なるサーバ装置１０で動作してもよい。
【０３４７】
以上の実施の形態をまとめると、次の付記のとおりである。
【０３４８】
（付記１）
第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
前記生成した経路情報を前記第１の仮想ルータに送信する、
処理をコンピュータに実行させる経路情報提供プログラム。
【０３４９】
（付記２）
付記１において、
前記生成は、さらに、前記通信のパケットの通信に関する第１の情報と、前記第１、第２の仮想マシン及び前記第１の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、ＩＰアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記ＩＰアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供プログラム。
【０３５０】
（付記３）
付記２において、
前記生成は、さらに、前記第１の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供プログラム。
【０３５１】
（付記４）
付記２または３のいずれかにおいて、
前記生成は、さらに、前記第１の仮想マシンから前記第２の仮想マシンに対応する第２の仮想ルータを介して当該第２の仮想マシンに到達する、前記パケットの通信に関する第２の情報を含む前記経路情報を生成する、
経路情報提供プログラム。
【０３５２】
（付記５）
付記２乃至４のいずれかにおいて、
前記送信は、前記パケットの前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を更新する、前記経路情報を、前記第１の仮想ルータに送信する、
経路情報提供プログラム。
【０３５３】
（付記６）
付記２乃至５のいずれかにおいて、
前記送信は、さらに、前記第１の仮想ルータが、前記第２の仮想マシンへの通信のパケットを生成する第３の仮想ルータに送信するための、前記経路情報を、前記第１の仮想ルータに送信する、
経路情報提供プログラム。
【０３５４】
（付記７）
付記１乃至６のいずれかにおいて、
前記生成は、前記構成情報が含む、前記仮想システムの各構成要素の前記ネットワーク識別情報を示す、ＭＡＣアドレス及びＩＰアドレスに基づいて、前記ルーティング処理を行う、
経路情報提供プログラム。
【０３５５】
（付記８）
付記１乃至７のいずれかにおいて、
前記送信は、前記第１の仮想ルータが、所定の期間、記憶する前記経路情報を前記第１の仮想ルータに送信する、
経路情報提供プログラム。
【０３５６】
（付記９）
処理部が、第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、
処理部が、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、
処理部が、前記生成した経路情報を前記第１の仮想ルータに送信する、
経路情報提供方法。
【０３５７】
（付記１０）
付記９において、
前記生成は、さらに、前記通信のパケットの通信に関する第１の情報と、前記第１、第２の仮想マシン及び前記第１の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、ＩＰアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記ＩＰアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供方法。
【０３５８】
（付記１１）
付記１０において、
前記生成は、さらに、前記第１の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供方法。
【０３５９】
（付記１２）
第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報とを記憶する記憶部と、
第１の仮想マシンからのパケットを中継する第１の仮想ルータから、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを受信し、前記構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信する処理部と、
を有する経路情報提供装置。
【０３６０】
（付記１３）
付記１２において、
前記処理部は、さらに、前記通信のパケットの通信に関する第１の情報と、前記第１、第２の仮想マシン及び前記第１の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、ＩＰアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記ＩＰアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
経路情報提供装置。
【０３６１】
（付記１４）
付記１３において、
前記処理部は、さらに、前記第１の仮想ルータが、前記パケットが往復通信の往路のパケットであるか否かを示し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成するための、往復情報を含む前記経路情報を生成する、
経路情報提供装置。
【０３６２】
（付記１５）
第１の仮想マシンからのパケットを中継する第１の仮想ルータが、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを、経路情報提供装置に送信し、
前記経路情報提供装置は、前記問い合わせに応答して、前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信し、
前記第１の仮想ルータは、前記受信した経路情報に基づいて、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットを更新する、
情報処理システムの経路制御方法。
【０３６３】
（付記１６）
付記１５において、
前記情報提供装置は、さらに、前記通信のパケットの通信に関する第１の情報と、前記第１、第２の仮想マシン及び前記第１の仮想ルータを含む仮想システムの各構成要素のネットワーク識別情報、ＩＰアドレスの変換情報を含む前記構成情報とに基づいて、前記パケットの経路の選択、及び、前記ＩＰアドレスの変換を含む前記パケットのルーティング処理を行い、前記経路情報を生成する、
情報処理システムの経路制御方法。
【０３６４】
（付記１７）
付記１６において、
前記情報提供装置は、さらに、前記パケットが往復通信の往路のパケットであるか否かを示す往復情報を含む前記経路情報を生成し、
前記第１の仮想ルータは、前記受信した経路情報が含む前記往復情報に基づいて、前記パケットが前記往路のパケットであるか否かを判定し、前記パケットが前記往路のパケットであると判定した場合に、前記パケットの復路の経路情報を生成する、
情報処理システムの経路制御方法。
【０３６５】
（付記１８）
付記１６または１７において、
前記情報提供装置は、さらに、前記第１の仮想マシンから前記第２の仮想マシンに対応する第２の仮想ルータを介して前記第２の仮想マシンに到達する、前記パケットの通信に関する第２の情報を含む前記経路情報を生成する、
情報処理システムの経路制御方法。
【０３６６】
（付記１９）
付記１５乃至１８のいずれかにおいて、
前記第１の仮想ルータは、さらに、前記受信した経路情報を、前記第２の仮想マシンへの通信のパケットを生成する第３の仮想ルータに送信する、
情報処理システムの経路制御方法。
【０３６７】
（付記２０）
付記１５乃至１９のいずれかにおいて、
前記第１の仮想ルータは、前記受信した経路情報を、所定の期間、記憶する、
情報処理システムの経路制御方法。
【０３６８】
（付記２１）
第１のハードウェア資源で構成された第１の仮想マシンと、
第２のハードウェア資源で構成された第２の仮想マシンと、
前記第１、または、第３のハードウェア資源で構成された前記第１の仮想マシンからのパケットを中継する第１の仮想ルータと、
経路情報提供装置と、を有し、
前記第１の仮想ルータは、
前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットの経路情報の問い合わせを前記経路情報提供装置に送信し、前記経路情報提供装置から前記経路情報を受信する通信部と、
前記受信した経路情報に基づいて、前記第１の仮想マシンから第２の仮想マシンへの通信の前記パケットを更新する処理部と、を有し、
前記経路情報提供装置は、
前記第２の仮想マシンの識別情報と、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む構成情報を記憶する記憶部と、
前記構成情報に基づいて、前記第２の仮想マシンを搭載する物理マシンのネットワーク識別情報を含む前記経路情報を生成し、前記生成した経路情報を前記第１の仮想ルータに送信する処理部と、
を有する情報処理システム。
【符号の説明】
【０３６９】
Ｄｃ：データセンタ、１０ａ〜１０ｃ：サーバ装置、２０：管理サーバ装置、４０：ゲートウェイ装置、３０ａ、３０ｂ：利用者のクライアント装置、６０：管理者のクライアント装置、ｖｍ：仮想マシン、ｖｒ：仮想ルータ
【図１】
2016100625.tif 000003
【図２】
2016100625.tif 000004
【図３】
2016100625.tif 000005
【図４】
2016100625.tif 000006
【図５】
2016100625.tif 000007
【図６】
2016100625.tif 000008
【図７】
2016100625.tif 000009
【図８】
2016100625.tif 000010
【図９】
2016100625.tif 000011
【図１０】
2016100625.tif 000012
【図１１】
2016100625.tif 000013
【図１２】
2016100625.tif 000014
【図１３】
2016100625.tif 000015
【図１４】
2016100625.tif 000016
【図１５】
2016100625.tif 000017
【図１６】
2016100625.tif 000018
【図１７】
2016100625.tif 000019
【図１８】
2016100625.tif 000020
【図１９】
2016100625.tif 000021
【図２０】
2016100625.tif 000022
【図２１】
2016100625.tif 000023
【図２２】
2016100625.tif 000024
【図２３】
2016100625.tif 000025
【図２４】
2016100625.tif 000026
【図２５】
2016100625.tif 000027
【図２６】
2016100625.tif 000028
【図２７】
2016100625.tif 000029
【図２８】
2016100625.tif 000030
【図２９】
2016100625.tif 000031
【図３０】
2016100625.tif 000032
【図３１】
2016100625.tif 000033
【図３２】
2016100625.tif 000034
【図３３】
2016100625.tif 000035
【図３４】
2016100625.tif 000036
【図３５】
2016100625.tif 000037
【図３６】
2016100625.tif 000038
【図３７】
2016100625.tif 000039
【図３８】
2016100625.tif 000040
【図３９】
2016100625.tif 000041
【図４０】
2016100625.tif 000042
【図４１】
2016100625.tif 000043
【図４２】
2016100625.tif 000044
【図４３】
2016100625.tif 000045
【図４４】
2016100625.tif 000046
【図４５】
2016100625.tif 000047
【図４６】
2016100625.tif 000048