(57)【要約】【課題】マイグレーション後も通信を継続することを課題とする。【解決手段】仮想ＦＷを実行する物理サーバは、複数の中継装置によって接続された第１ノードと第２ノード間の通信を中継する。物理サーバは、他のコンピュータから、第１ノードと第２ノード間の中継の処理を移行されることに伴い、第２ノードから第１ノード宛の通信につき、当該物理サーバタを経由することを示唆する制御情報を生成する。その後、物理サーバは、生成した制御情報を複数の中継装置に送信する。【選択図】図６
2014143617.tif 000002
【特許請求の範囲】
【請求項１】
複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能なコンピュータに、
他のコンピュータから、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成し、
前記生成した前記制御情報を前記複数の中継装置に送信する
処理を実行させることを特徴とする中継プログラム。
【請求項２】
前記コンピュータは、前記第１ノードと前記第２ノード間の中継情報を記憶しており、
前記コンピュータに、更に、
前記中継情報を基に前記制御情報を生成させる処理を実行させることを特徴とする請求項１記載の中継プログラム。
【請求項３】
前記コンピュータは、前記他のコンピュータから取得した前記中継情報を記憶することを特徴とする請求項１記載の中継プログラム。
【請求項４】
前記中継情報は、前記第１ノードの固有情報と前記第２ノードが属するネットワークのネットワーク情報を含んでおり、
前記コンピュータに、更に、前記中継情報の前記第１ノードの固有情報と前記第２ノードが属するネットワークのネットワーク情報を基に前記制御情報を生成させる処理を実行させることを特徴とする請求項２または請求項３記載の中継プログラム。
【請求項５】
複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能なコンピュータが、
他のコンピュータから、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成し、
前記生成した前記制御情報を前記複数の中継装置に送信する
ことを特徴とする中継方法。
【請求項６】
前記中継は、前記コンピュータが仮想マシンプログラムを実行することにより実現される仮想マシンにより処理されるとともに、
前記仮想マシンを管理する仮想マシン管理プログラムによって前記コンピュータが前記中継の再開を前記中継プログラムに通知することを特徴とする請求項５記載の中継方法。
【請求項７】
複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能な中継処理装置であって、
他の中継処理装置から、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成する生成部と、
前記生成部により生成された前記制御情報を前記複数の中継装置に送信する送信部と、
を有することを特徴とする中継処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継プログラム、中継方法および中継処理装置に関する。
【背景技術】
【０００２】
ＩＣＴ（Information  and  Communication  Technology）システム構築の新しい利用形態として、クラウドコンピューティングを用いたＩａａＳ（Infrastructure  as  a  Service）サービスが利用されている。ＩａａＳサービスは、ネットワーク上のコンピューティングリソースを用いて構成された仮想的なサーバ（以下、「ＶＭ（Virtual  Machine）」と表記する）をプラットフォームとして利用者に提供するサービスである。
【０００３】
ＩａａＳサービスを利用する企業などの利用者は、ＩａａＳサービスで提供されるＶＭを利用して、所望するＩＣＴシステムを構築する。例えば、利用者は、インターネット経由でアクセスする業務システムを構築する場合、フロントエンドシステムとしてＷｅｂサーバをＶＭで構築し、バックエンドシステムとしてＡＰ（Application）サーバやＤＢ（DataBase）サーバをＶＭで構築する。
【０００４】
このようなＶＭを用いたＩＣＴシステムであっても、利用者は、通常のＩＣＴシステムと同様、ファイアウォールの設置やネットワークゾーンの区分けを行い、セキュリティの保護を実行する。例えば、利用者は、Ｗｅｂサーバが属するＤＭＺ（DeMilitarized  Zone）とＤＢサーバ等が属するセキュアゾーンとを、ＶＬＡＮ（Virtual  Local  Area  Network）を用いてセグメント分割する。そして、利用者は、ファイアウォールの機能を実行するＶＭ（以下、仮想ＦＷと表記する）を用いて、ゾーン間の通信や外部から各ゾーンへの通信を制御する。
【０００５】
また、ＶＭを用いたシステムは、マイグレーションによってＶＭを移動させた場合に、ＧＡＲＰ（Gratuitous  Address  Resolution  Protocol）を利用して、レイヤ２スイッチ等のネットワーク機器の設定情報を更新することで、システムの稼動を継続する。
【０００６】
例えば、物理サーバをメンテナンスする場合には、メンテナンス対象の物理サーバで動作するＶＭが他の物理サーバに移動される。このとき、移動先の物理サーバで実行されるハイパーバイザは、ＶＭの移動が完了すると、移動対象のＶＭのＭＡＣ（Media  Access  Control）アドレスとＩＰ（Internet  Protocol）アドレスとをペイロードに含むＧＡＲＰパケットをブロードキャストで送信する。レイヤ２スイッチは、このＧＡＲＰパケットを受信すると、受信したポート情報とＧＡＲＰのペイロード情報に基づいて、ＦＤＢ（Forwarding  Database）を更新する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−６５０１５号公報
【特許文献２】特開２０１１−１９８２９９号公報
【特許文献３】特開２００９−２３２２０７号公報
【特許文献４】特開２０００−１３４２４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記技術では、ＶＭ間の通信を中継制御する仮想ＦＷがマイグレーションによって他の物理サーバへ移動した場合に、仮想ＦＷを介した通信が継続できずに遮断されるという問題がある。
【０００９】
具体的には、仮想ＦＷが移動した場合でも、仮想ＦＷに対する通信は移動前後でも確立される。しかし、異なるネットワークゾーンに属し、仮想ＦＷを介して通信を行うＶＭ間の通信は、仮想ＦＷの移動後に遮断される。
【００１０】
例えば、通信を終端させずに中継する透過型の仮想ＦＷを移動させた場合を想定する。この仮想ＦＷは、中継ルールとして、ネットワークＡに属するＶＭ（Ａ）とネットワークＢに属するＶＭ（Ｂ）との通信を許可するルールを記憶している。したがって、ＶＭ（Ａ）からＶＭ（Ｂ）への送信パケット、または、ＶＭ（Ｂ）からＶＭ（Ａ）への送信パケットは、一度、仮想ＦＷに到達して中継ルールに基づいて制御された後に宛先へ中継される。
【００１１】
このような状況で、仮想ＦＷが他の物理サーバへ移動した場合、移動先のハイパーバイザは、仮想ＦＷのアドレス情報をブロードキャストで送信する。このため、システム内の各Ｌ２スイッチは、この仮想ＦＷのアドレス情報を受信し、受信ポートと仮想ＦＷのアドレス情報とを対応付けてＦＤＢに登録する。この結果、各Ｌ２スイッチは、移動後の仮想ＦＷ宛のパケットを中継することができる。
【００１２】
一方、移動先のハイパーバイザから送信されるアドレス情報は仮想ＦＷのアドレス情報であり、仮想ＦＷが中継するＶＭ（Ａ）やＶＭ（Ｂ）のアドレス情報は含まれない。このため、各Ｌ２スイッチは、仮想ＦＷの移動後にＶＭ（Ａ）やＶＭ（Ｂ）に関するＦＤＢの書き換えを実行しない。この結果、各Ｌ２スイッチは、ＶＭ（Ａ）やＶＭ（Ｂ）宛のパケットを受信した場合、移動前の仮想ＦＷすなわち移動前の仮想ＦＷが動作していた物理サーバへ、当該パケットを中継する。したがって、仮想ＦＷが存在しない物理サーバへパケットが中継されるので、パケットの中継が遮断され、通信が途絶える。
【００１３】
１つの側面では、マイグレーション後も通信を継続することができる中継プログラム、中継方法および中継処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
第１の案では、中継プログラムは、複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能なコンピュータに、処理を実行させる。また、中継制御プログラムは、他のコンピュータから、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成する処理をコンピュータに実行させる。また、中継制御プログラムは、前記生成した前記制御情報を前記複数の中継装置に送信する処理をコンピュータに実行させる。
【発明の効果】
【００１５】
本発明の１実施態様によれば、マイグレーション後も通信を継続することができる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係る仮想マシンを用いたＩＣＴシステムの全体構成例を示す図である。
【図２】図２は、実施例１に係るＩＣＴシステムの物理接続の例を示す図である。
【図３】図３は、実施例１に係るＩＣＴシステムの論理接続の例を示す図である。
【図４】図４は、物理サーバの階層構造図である。
【図５】図５は、ＧＡＲＰパケットのフォーマット例を示す図である。
【図６】図６は、仮想ＦＷの機能構成を示す機能ブロック図である。
【図７】図７は、中継ルールＤＢに記憶される情報の例を示す図である。
【図８】図８は、ＦＤＢ書換用ＧＡＲＰパケットの生成例を説明する図である。
【図９】図９は、実施例１に係る仮想ＦＷのマイグレーションの流れを示すシーケンス図である。
【図１０】図１０は、実施例１に係る仮想ＦＷが実行する処理の流れを示すフローチャートである。
【図１１】図１１は、仮想ＦＷが移動する前の状態を示す図である。
【図１２】図１２は、仮想ＦＷが移動した状態を示す図である。
【図１３】図１３は、仮想ＦＷが移動した後の通信断を説明する図である。
【図１４】図１４は、移動した仮想ＦＷによるＦＤＢの更新を示す図である。
【図１５】図１５は、仮想ＦＷ移動後も通信が継続する例を示す図である。
【図１６】図１６は、実施例２に係る移動先の物理サーバが実行する処理の流れを示すフローチャートである。
【図１７】図１７は、実施例２に係る移動された仮想ＦＷが移動後に実行する処理の流れを示すフローチャートである。
【図１８】図１８は、物理サーバのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する中継プログラム、中継方法および中継処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、以下の各実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例１】
【００１８】
［全体構成］
図１は、実施例１に係る仮想マシンを用いたＩＣＴシステムの全体構成例を示す図である。図１に示すＩＣＴシステムは、ネットワーク上のコンピューティングリソースを用いて構成されたＶＭによるプラットフォームを利用者に提供するシステムである。
【００１９】
図１に示すように、実施例１に係るＩＣＴシステムが提供するプラットフォームは、企業や部門などのグループを示すテナントを複数収容するマルチテナント環境である。各テナントのＶＭは、同一のＩＰサブネットに属する。また、ＩＰサブネット内は、セキュリティポリシーの異なる複数のネットワークゾーンに分割される。
【００２０】
図１では、テナントＡに属するユーザ端末は、インターネット６を介して、クラウドデータセンタ１のテナントＡのサブネットにアクセスしてサービスを利用する。同様に、テナントＢに属するユーザ端末は、インターネット６を介して、クラウドデータセンタ１のテナントＢのサブネットにアクセスしてサービスを利用する。
【００２１】
クラウドデータセンタ１には、ルータ１ａ、スイッチ１ｂ、スイッチ１ｃ、スイッチ１ｄ、物理サーバが設置される。また、各物理サーバは、ＷｅｂサーバやＡＰサーバ等の機能を実行するＶＭを動作させ、スイッチ等によってサブネットに分割される。
【００２２】
テナントＡのサブネットは、例えば10.0.0.x/24のネットワークアドレスによって識別されるネットワークであり、テナントＡの利用者がＶＭによって構築したシステムである。このテナントＡのサブネットは、ＶＬＡＮによって、Ｗｅｂサーバを実行するＶＭが属するＤＭＺと、ＡＰサーバやＤＢサーバを実行するＶＭが属するセキュアゾーンとに分割される。異なるＶＬＡＮ間の通信は、仮想ＦＷによって中継制御される。
【００２３】
例えば、仮想ＦＷは、ＤＭＺが属するＶＬＡＮ（Ａ１）のインタフェースと、セキュアゾーンが属するＶＬＡＮ（Ａ２）のインタフェースとを有する。そして、仮想ＦＷは、ＤＭＺのＶＭからセキュアゾーンのＶＭへの通信、または、セキュアゾーンのＶＭからＤＭＺのＶＭへの通信を中継もしくは遮断する。また、仮想ＦＷは、ＤＭＺのＶＭと外部ネットワークとの通信、または、セキュアゾーンのＶＭと外部ネットワークとの通信を中継または遮断する。
【００２４】
また、テナントＢのサブネットは、例えば20.0.0.x/24のネットワークアドレスによって識別されるネットワークであり、テナントＢの利用者がＶＭによって構築したシステムである。このテナントＢのサブネットは、テナントＡと同様、ＶＬＡＮによって、Ｗｅｂサーバを実行するＶＭが属するＤＭＺと、ＡＰサーバやＤＢサーバを実行するＶＭが属するセキュアゾーンとに分割される。異なるＶＬＡＮ間の通信は、仮想ＦＷによって中継制御される。
【００２５】
例えば、仮想ＦＷは、ＤＭＺが属するＶＬＡＮ（Ｂ１）のインタフェースと、セキュアゾーンが属するＶＬＡＮ（Ｂ２）のインタフェースとを有する。そして、仮想ＦＷは、ＤＭＺのＶＭからセキュアゾーンのＶＭへの通信、または、セキュアゾーンのＶＭからＤＭＺのＶＭへの通信を中継もしくは遮断する。また、仮想ＦＷは、ＤＭＺのＶＭと外部ネットワークとの通信、または、セキュアゾーンのＶＭと外部ネットワークとの通信を中継もしくは遮断する。
【００２６】
このようなＩＣＴシステムでは、テナントＡのユーザ端末からのアクセスは、インターネット６を介してクラウドデータセンタ１のルータ１ａに到達する。そして、ルータ１ａは、このアクセスがテナントＡのサブネットへのアクセスであることを特定し、スイッチ１ｂを介してスイッチ１ｃにアクセスを振り分ける。この結果、テナントＡの利用者は、テナントＡのＷｅｂサーバ等にアクセスすることができる。
【００２７】
同様に、テナントＢのユーザ端末からのアクセスは、インターネット６を介してクラウドデータセンタ１のルータ１ａに到達する。そして、ルータ１ａは、このアクセスがテナントＢのサブネットへのアクセスであることを特定し、スイッチ１ｂを介してスイッチ１ｄにアクセスを振り分ける。この結果、テナントＢの利用者は、テナントＢのＷｅｂサーバ等にアクセスすることができる。
【００２８】
［物理構成］
続いて、クラウドデータセンタ１が有する物理サーバおよび物理スイッチについて説明する。図２は、実施例１に係るＩＣＴシステムの物理接続の例を示す図である。図２は、説明上、図１に示したマルチテナント環境のクラウドデータセンタ１を簡略化した図である。
【００２９】
図２に示すように、実施例１で想定するＩＣＴシステムは、Ｌ２スイッチ２、Ｌ２スイッチ３、Ｌ２スイッチ４、ルータ５、物理サーバ１０、物理サーバ２０、物理サーバ３０、物理サーバ４０、ＶＭ管理サーバ７を有する。
【００３０】
各Ｌ２スイッチは、インターネット６を介した各テナントのユーザ端末とＶＭ間の通信や各ＶＭ間の通信などを中継するネットワーク機器である。各Ｌ２スイッチは、ＦＤＢに基づいて入力パケットを宛先へ出力する。
【００３１】
図２の例では、Ｌ２スイッチ２のポート１（以下、「Ｐ１」と表記する）はルータ５と接続され、Ｐ２はＬ２スイッチ３のＰ１と接続され、Ｐ３はＬ２スイッチ４のＰ１と接続される。Ｌ２スイッチ３のＰ１はＬ２スイッチ２のＰ２と接続され、Ｐ２は物理サーバ１０と接続され、Ｐ３は物理サーバ２０と接続される。また、Ｌ２スイッチ４のＰ１はＬ２スイッチ２のＰ３と接続され、Ｐ２は物理サーバ３０と接続され、Ｐ３は物理サーバ４０と接続される。
【００３２】
ルータ５は、ＩＣＴシステムの外部からのアクセスをＬ２スイッチ２へ中継し、また、ＩＣＴシステムの内部からのアクセスを外部へ中継するネットワーク機器である。ＶＭ管理サーバ７は、各物理サーバと接続され、ＶＭのマイグレーションの開始指示や終了通知を各物理サーバに送信するサーバ装置である。
【００３３】
各物理サーバは、ハイパーバイザ（以下、「ＨＶ」と表記する）を実行し、ＨＶによってＶＭを動作させるサーバ装置である。図２の例では、物理サーバ１０上でＶＭ（ｂ）１００が動作し、物理サーバ３０上でＶＭ（ａ）３００が動作し、物理サーバ４００上で仮想ＦＷ４００が動作する。
【００３４】
ＶＭ（ａ）３００とＶＭ（ｂ）１００は、例えばＷｅｂサーバやＤＢサーバ等の機能をユーザに提供する仮想マシンであり、異なるネットワークに属している。仮想ＦＷ４００は、通信を終端させずに中継する透過型のファイアウォール機能を提供する仮想マシンであり、ＶＭ（ａ）３００のネットワークとＶＭ（ｂ）１００のネットワーク各々に属している。例えば、仮想ＦＷ４００は、ＶＭ（ａ）３００とＶＭ（ｂ）１００との通信を中継するか否かを判定する中継ルールを記憶し、ＶＭ（ａ）３００からのパケットが到達した場合に、中継ルールに基づいてパケットをフィルタリングする。
【００３５】
［論理接続］
次に、図２に示したシステムの論理接続について説明する。図３は、実施例１に係るＩＣＴシステムの論理接続の例を示す図である。
【００３６】
図３に示すように、ＶＭ（ａ）３００はＶＬＡＮ（Ｘ）に属し、ＶＭ（ｂ）１００はＶＬＡＮ（Ｙ）に属する。そして、仮想ＦＷ４００とＶＭ（ａ）３００とはＶＬＡＮ（Ｘ）で接続され、仮想ＦＷ４００とＶＭ（ｂ）１００とはＶＬＡＮ（Ｙ）で接続される。このため、ＶＭ（ａ）３００からＶＭ（ｂ）１００へ送信されたパケットは、まず仮想ＦＷ４００に到達する。そして、仮想ＦＷ４００は、ＶＭ（ａ）３００からＶＭ（ｂ）１００へ送信されたパケットを、中継ルールに基づいてＶＭ（ｂ）３００へ中継する。なお、ＶＬＡＮ（Ｘ）とは、ＶＬＡＮ−ＩＤ＝Ｘで識別されるＶＬＡＮである。
【００３７】
図２を用いて詳細に説明すると、ＶＭ（ａ）３００からＶＭ（ｂ）１００を宛先として送信されたパケットは、Ｌ２スイッチ４のＰ２に入力される。Ｌ２スイッチ４は、ＦＤＢに基づいて、Ｐ２に入力されたパケットをＰ３から出力する。このパケットは、物理サーバ４０上の仮想ＦＷ４００に到達する。
【００３８】
仮想ＦＷ４００は、中継ルールに基づいてパケットを中継すると判定し、Ｌ２スイッチ４から受信したパケットを、再びＬ２スイッチ４へ送信する。Ｌ２スイッチ４は、ＦＤＢに基づいて、Ｐ３に入力されたパケットをＰ１から出力する。また、Ｌ２スイッチ２は、ＦＤＢに基づいて、Ｐ３に入力されたパケットをＰ２から出力する。また、Ｌ２スイッチ３は、ＦＤＢに基づいて、Ｐ１に入力されたパケットをＰ２から出力する。このようにして、ＶＭ（ｂ）１００は、ＶＭ（ａ）３００から送信されたパケットを受信する。
【００３９】
このように、各Ｌ２スイッチは、ＶＭ（ａ）３００またはＶＭ（ｂ）１００を宛先とするパケットがＬ２スイッチ４を経由する経路をＦＤＢに記憶する。また、Ｌ２スイッチ４は、ＶＭ（ａ）３００またはＶＭ（ｂ）１００を宛先とするパケットをまずＰ３から出力して仮想ＦＷ４００に到達させる経路をＦＤＢに記憶する。
【００４０】
このような構成において、仮想ＦＷ４００が、ＶＭ管理サーバ７の指示によって、物理サーバ４０から物理サーバ２０へマイグレーションしたとする。すると、移動先の物理サーバ２０のＨＶは、「ＶＬＡＮ−ＩＤ＝Ｘ、仮想ＦＷ４００のＭＡＣアドレスおよびＩＰアドレス」を含めたＧＡＲＰパケットをブロードキャストで送信する。同様に、移動先の物理サーバ２０のＨＶは、「ＶＬＡＮ−ＩＤ＝Ｙ、仮想ＦＷ４００のＭＡＣアドレスおよびＩＰアドレス」を含めたＧＡＲＰパケットをブロードキャストで送信する。
【００４１】
この結果、各Ｌ２スイッチは、仮想ＦＷ４００を宛先とするパケットの出力先ポートを物理サーバ２０が接続されるポートへ、ＦＤＢを書換える。したがって、各ＶＭ等から仮想ＦＷ４００宛てに送信されたパケットは、物理サーバ２０上で動作する仮想ＦＷ４００に到達できる。
【００４２】
さらに、仮想ＦＷ４００は、マイグレーションが完了すると、第１ノードと第２ノード間の中継の処理を移行されることに伴い、第２ノードから第１ノード宛の通信につき、移動先を経由することを示唆する制御情報を生成する。そして、仮想ＦＷ４００は、生成した制御情報を複数のＬ２スイッチに送信する。例えば、仮想ＦＷ４００は、マイグレーションによる移動前の物理サーバ上で中継もしくは遮断していたパケットの宛先情報と送信元情報とを含めたＦＤＢ書換用ＧＡＲＰパケットを生成する。そして、仮想ＦＷ４００は、生成したＦＤＢ書換用ＧＡＲＰパケットをブロードキャストで送信する。この結果、各Ｌ２スイッチが移動後の中継経路を学習することができるので、仮想ＦＷ４００は、移動後も中継を継続できる。
【００４３】
［物理サーバの構成］
続いて、図２に示した物理サーバの機能構成を説明する。なお、各物理サーバは同様の構成を有するので、ここでは、物理サーバ４０を例にして説明する。また、図２に示したＬ２スイッチやルータ５は、一般的なスイッチやルータと同様の構成を有するので、ここでは詳細な説明は省略する。
【００４４】
図４は、物理サーバ４０の階層構造図である。基本的に他の物理サーバ１０〜４０もほぼ同様の構成を有している。図４に示すように、物理サーバ４０は、ハードウェア４１、ＯＳ４２、ＨＶ４３、ＶＭ４４，ＯＳ４５、仮想ＦＷ４００、およびアプリケーション・プログラム４６を有する。ＯＳ４２、ＨＶ４３およびＶＭ４４は、物理サーバ４０のハードウェア４１によって、実行されるソフトウェアである。
【００４５】
ハードウェア４１の構成については後述する。ＯＳ４２は、ハードウェア４１を制御するオペレーティングシステム（Operating  System）である。ＨＶ４３は、ＯＳ４２上で実行されるハイパーバイザのプログラムである。
【００４６】
ＶＭ４４は、ＨＶ４３によって生成、管理される仮想マシン・プログラムである。ＯＳ４５、仮想ＦＷ４００、およびアプリケーション・プログラム４６は、ＶＭ４４によって、実行されるソフトウェアである。ＨＶ４３は、ＶＭ４４に関する各種処理を管理する。
【００４７】
例えば、ＨＶ４３は、仮想メモリや仮想プロセッサをＶＭ４４に割り与える。なお、ＨＶ４３は、複数のＶＭ４４を動作させることができる。
【００４８】
ＯＳ４５は、ＶＭ４４上で実行されるオペレーティングシステム（Operating  System）である。仮想ＦＷ４００は、ＶＭ４４で実行されるファイアウォール・プログラムである。ＶＭ４４は、ファイアウォール・プログラム以外のアプリケーション・プログラム４６を実行することができる。さらに、１つのＯＳ４５上で、複数の仮想ＦＷ４００およびアプリケーション・プログラム４６を実行することができる。
【００４９】
また、ＨＶ４３は、ＶＭ管理サーバ７からマイグレーションの開始指示を受け付けた場合には、該当するＶＭ４４のマイグレーションを実行する。例えば、ＨＶ４３は、移動元の物理サーバから該当ＶＭ４４における仮想メモリの内容を新規のＶＭ４４へコピーするメモリコピーを実行し、移動対象のＶＭ４４と同様の構成を構築する。そして、ＨＶ４３は、メモリコピーが完了すると、新たに生成したＶＭ４４を動作させる。このようにして、ＨＶ４３は、マイグレーションを実行する。
【００５０】
また、ＨＶ４３は、マイグレーションが完了すると、移動してきたＶＭ４４に関するＧＡＲＰパケットをブロードキャストで送信する。具体的には、ＨＶ４３は、移動対象のＶＭ４４が属するＶＬＡＮ−ＩＤと、移動対象のＭＡＣアドレスおよびＩＰアドレスを含めたＧＡＲＰパケットをブロードキャストで送信する。
【００５１】
ここで、ＧＡＲＰパケットのパケットフォーマット例を説明する。図５は、ＧＡＲＰパケットのフォーマット例を示す図である。図５に示すように、ＧＡＲＰパケットのパケットフォーマットは、イーサネット（登録商標）ヘッダとTypeとPayloadを有する。
【００５２】
イーサネット（登録商標）ヘッダは、Destination  MAC  Addressと、Source  MAC  Addressと、VLANタグとを有する。Destination  MAC  Addressは、ＧＡＲＰパケットの宛先を示すフィールドであり、例えば「FF:FF:FF:FF:FF:FF」などのブロードキャストアドレスが設定される。Source  MAC  Addressは、ＧＡＲＰパケットの送信元を示すフィールドであり、上記例では移動先である物理サーバ２０のＭＡＣアドレスが設定される。VLANタグは、ＶＬＡＮを識別するフィールドであり、TPID（Tag  Protocol  Identifier）とPCP（Priority  Code  Point）とCFI（Canonical  Format  Indicator）とVLAN−IDとを有する。
【００５３】
TPIDは、ＶＬＡＮタグが付加されたフレームであることを示す１６ビットのフィールドであり、例えば固定値「0x8100」が設定される。PCPは、優先度を示す３ビットのフィールドであり、例えば固定値「0x0」が設定される。CFIは、正規フォーマットであるか否かを示す１ビットのフィールドであり、例えばイーサネット（登録商標）の場合には固定値「0x0」が設定される。VLAN−IDは、送信されたＧＡＲＰパケットが属するＶＬＡＮを識別する１２ビットのフィールドであり、例えば移動したＶＭのVLAN−IDが設定される。
【００５４】
Typeは、ARPパケットであることを示すフィールドであり、例えば固定値「0x0806」が設定される。Payloadは、Hardware  Typeと、Protocol  Typeと、Hardware  Lengthと、Protocol  Lengthと、Operation  codeと、Sender  Hardware  Addressと、Sender  Protocol  Addressと、Target  Hardware  Addressと、Target  Protocol  Addressとを有する。
【００５５】
Hardware  Typeは、２バイトのフィールドであり、例えばイーサネット（登録商標）の場合は固定値「0x1」が設定される。Protocol  Typeは、２バイトのフィールドであり、例えばIPネットワークの場合は固定値「0x0800」が設定される。Hardware  Lengthは、MACアドレスの長さを指定するフィールドであり、例えば固定値「6」が設定される。Protocol  Lengthは、IPアドレスの長さを指定するフィールドであり、例えば固定値「4」が設定される。Operation  codeは、ARP要求かARP要求に対する応答かを指定する１バイトのフィールドであり、例えばARP要求の場合には固定値「1」が設定される。Sender  Hardware  Addressは、ARP要求対象のVMのMACアドレスを指定するフィールドである。Sender  Protocol  Addressは、ARP要求対象のVMのIPアドレスを指定するフィールドである。Target  Hardware  Addressには、Sender  Hardware  Addressと同一の情報が設定される。Target  Protocol  Addressには、Sender  Protocol  Addressと同一の情報が設定される。
【００５６】
ここで、一例として、仮想ＦＷ４００が物理サーバ２０へ移動した場合を想定する。この場合、物理サーバ２０のＨＶ４３は、ＶＬＡＮ（Ｘ）とＶＬＡＮ（Ｙ）の各々についてＧＡＲＰパケットを送信する。
【００５７】
具体的には、ＨＶ４３は、VLANタグのVLAN−IDフィールドにＶＬＡＮ（Ｘ）を識別する「Ｘ」を設定する。さらに、ＨＶ４３は、Sender  Hardware  AddressおよびTarget  Hardware  Addressに仮想ＦＷ４００の「ＭＡＣアドレス」を設定し、Sender  Protocol  AddressおよびTarget  Protocol  Addressに仮想ＦＷ４００の「ＩＰアドレス」を設定する。その後、ＨＶ４３は、これらを設定したＧＡＲＰパケットをブロードキャストでＳＷに送信する。
【００５８】
同様に、物理サーバ２０のＨＶ４３は、VLANタグのVLAN−IDフィールドにＶＬＡＮ（Ｙ）を識別する「Ｙ」を設定する。さらに、ＨＶ４３は、Sender  Hardware  AddressおよびTarget  Hardware  Addressに仮想ＦＷ４００の「ＭＡＣアドレス」を設定し、Sender  Protocol  AddressおよびTarget  Protocol  Addressに仮想ＦＷ４００の「ＩＰアドレス」を設定する。その後、ＨＶ４３は、これらを設定したＧＡＲＰパケットをブロードキャストでＳＷに送信する。
【００５９】
このＧＡＲＰパケットを受信したＬ２スイッチは、ＦＤＢに記憶される仮想ＦＷ４００のＭＡＣアドレスに対応付けられるポート番号を、ＧＡＲＰパケットを受信したポート番号に書換える。この結果、Ｌ２スイッチは、仮想ＦＷ４００がマイグレーションによって他の物理サーバへ移動した後も、仮想ＦＷ４００宛てのパケットを正しく中継することができる。
【００６０】
［仮想ＦＷの構成］
続いて、仮想ＦＷ４００の機能構成について説明する。なお、他のＶＭについては、一般的なＶＭと同様の構成を有するので、詳細な説明は省略する。図６は、仮想ＦＷの機能構成を示す機能ブロック図である。
【００６１】
仮想ＦＷ４００は、ＶＭ間の通信を終端させずに中継する透過型のファイアウォールプログラムである。図６に示すように、この仮想ＦＷ４００は、入力インタフェース４０１、出力インタフェース４０２、中継ルールＤＢ４０３、中継処理部４０４、移動検知部４０５、書換パケット生成部４０６、挿入部４０７を有する。いずれの処理部も、ＶＭ４４によって提供される、仮想プロセッサにより実現される。
【００６２】
入力インタフェース４０１は、仮想ＦＷ４００宛てに到達したパケットを受け付けて、移動検知部４０５または中継処理部４０４へ出力する処理部である。例えば、入力インタフェース４０１は、中継制御対象のＶＭ宛のパケット、仮想ＦＷ宛のパケット、ＶＭ管理サーバ７から送信された各種通知を受け付ける。
【００６３】
出力インタフェース４０２は、仮想ＦＷ４００に到達したパケットを宛先に送信する処理部である。例えば、出力インタフェース４０２は、中継対象のパケットを宛先に送信し、書換パケット生成部４０６によって生成されたＦＤＢ書換用ＧＡＲＰパケットをブロードキャストで送信する。
【００６４】
中継ルールＤＢ４０３は、ファイアウォール機能によって中継または遮断するルールを記憶する。この中継ルールＤＢ４０３は、仮想メモリに設けられる。図７は、中継ルールＤＢに記憶される情報の例を示す図である。図７に示すように、中継ルールＤＢ４０３は、「第一のＶＭ情報、第二のＶＭ情報、アクション」を対応付けて記憶する。
【００６５】
「第一のＶＭ情報」および「第二のＶＭ情報」は、中継対象のＶＭに関する情報であり、「アクション」は、中継するか遮断するかの動作を示す情報である。つまり、中継ルールＤＢ４０３は、第一のＶＭ情報で特定されるＶＭと、第二のＶＭ情報で特定されるＶＭとの通信を、中継するか遮断するかを特定する中継ルールを記憶する。
【００６６】
「第一のＶＭ情報」および「第二のＶＭ情報」の各々は、「ＩＰアドレス、ＭＡＣアドレス、ＶＬＡＮ−ＩＤ」を対応付けて記憶する。「ＩＰアドレス」は、中継制御対象のＶＭに設定されるＩＰアドレスを示し、「ＭＡＣアドレス」は、中継制御対象のＶＭに設定されるＭＡＣアドレスを示す。「ＶＬＡＮ−ＩＤ」は、中継制御対象のＶＭが属するＶＬＡＮのＩＤを示す。「アクション」は、中継するか遮断するかの動作を示す情報であり、「中継」する場合には「Ｐａｓｓ」、「遮断」する場合には「Ｄｉｓｃａｒｄ」が設定される。
【００６７】
図７の一例を説明する。図７には、ＶＬＡＮ（Ｘ）に属しＩＰアドレスが「10.0.0.3」およびＭＡＣアドレスが「11:22:33:44:55:0a」のＶＭと、ＶＬＡＮ（Ｙ）に属しＩＰアドレスが「10.0.0.2」およびＭＡＣアドレスが「11:22:33:44:55:0b」のＶＭとの通信を中継することが記憶される。
【００６８】
中継処理部４０４は、入力インタフェース４０１に到達したパケットを中継ルールＤＢ４０３に基づいて制御する処理部である。具体的には、中継処理部４０４は、入力インタフェース４０１に到達したパケットをフィルタリングする。
【００６９】
例えば、中継処理部４０４は、到達したパケットから送信元ＶＭのＭＡＣアドレス、ＩＰアドレス、ＶＬＡＮ−ＩＤを抽出する。同様に、中継処理部４０４は、到達したパケットから宛先ＶＭのＭＡＣアドレス、ＩＰアドレス、ＶＬＡＮ−ＩＤを抽出する。そして、中継処理部４０４は、抽出した「ＭＡＣアドレス、ＩＰアドレス、ＶＬＡＮ−ＩＤ」の組に対応する「アクション」を中継ルールＤＢ４０３から特定し、特定した「アクション」に対応する処理を実行する。
【００７０】
ここで、中継処理部４０４は、特定した「アクション」が「Ｐａｓｓ」である場合には、到達したパケットを挿入部４０７と出力インタフェース４０２を介して宛先に送信する。一方、中継処理部４０４は、特定した「アクション」が「Ｄｉｓｃａｒｄ」である場合には、到達したパケットを破棄する。
【００７１】
移動検知部４０５は、入力インタフェース４０１に到達したパケットから、該当のＶＭが他の物理サーバへの移動が完了したことを示すパケットを検出する処理部である。つまり、移動検知部４０５は、ＶＭ管理サーバ７や移動先の物理サーバのＨＶから送信される、マイグレーション完了イベントを検知する。そして、移動検知部４０５は、マイグレーション完了イベントを検知すると、書換パケット生成部４０６にマイグレーションが完了したことを通知する。
【００７２】
書換パケット生成部４０６は、マイグレーションが完了した場合に、ＨＶが送信するＧＡＲＰパケットとは別のＦＤＢ書換用ＧＡＲＰパケットを生成する処理部である。具体的には、書換パケット生成部４０６は、中継ルールＤＢ４０３に記憶される中継対象のＶＭについて、ＦＤＢ書換用ＧＡＲＰパケットを生成し、生成したＦＤＢ書換用ＧＡＲＰパケットを挿入部４０７へ出力する。
【００７３】
このＦＤＢ書換用ＧＡＲＰパケットは、Ｌ２スイッチのＦＤＢにおいて中継対象のＶＭに対応付けられるポート番号を、移動元の物理サーバへ接続されるポート番号から移動先の物理サーバへ接続されるポート番号に書換えることを要求するパケットである。
【００７４】
ここで、ＦＤＢ書換用ＧＡＲＰパケットの生成について具体的に説明する。図８は、ＦＤＢ書換用ＧＡＲＰパケットの生成例を説明する図である。図８に示すように、書換パケット生成部４０６は、中継ルールＤＢ４０３の「第一のＶＭ情報」の「ＩＰアドレス＝10.0.0.3」と「ＭＡＣアドレス＝11:22:33:44:55:0a」を抽出するとともに、「第二のＶＭ情報」の「ＶＬＡＮ−ＩＤ＝Ｙ」を抽出する。
【００７５】
そして、書換パケット生成部４０６は、ＧＡＲＰパケットのSender  Hardware  AddressおよびTarget  Hardware  Addressに、抽出した第一のＶＭ情報のＭＡＣアドレス「11:22:33:44:55:0a」を設定する。また、書換パケット生成部４０６は、Sender  Protocol  AddressおよびTarget  Protocol  Addressに、抽出した第一のＶＭ情報のＩＰアドレス「10.0.0.3」を設定する。さらに、書換パケット生成部４０６は、VLAN−IDフィールドに、抽出した第二のＶＭ情報のＶＬＡＮ−ＩＤ「Ｙ」を設定する。そして、書換パケット生成部４０６は、Destination  MAC  Addressにブロードキャストアドレスを設定し、Source  MAC  Addressに移動先の物理サーバのＭＡＣアドレスを設定する。こうして、書換パケット生成部４０６は、第一のＶＭ情報に対応するＦＤＢ書換用ＧＡＲＰパケットを生成する。
【００７６】
同様に、書換パケット生成部４０６は、中継ルールＤＢ４０３の「第二のＶＭ情報」の「ＩＰアドレス＝10.0.0.2」と「ＭＡＣアドレス＝11:22:33:44:55:0b」を抽出するとともに、「第一のＶＭ情報」の「ＶＬＡＮ−ＩＤ＝Ｘ」を抽出する。
【００７７】
そして、書換パケット生成部４０６は、ＧＡＲＰパケットのSender  Hardware  AddressおよびTarget  Hardware  Addressに、抽出した第二のＶＭ情報のＭＡＣアドレス「11:22:33:44:55:0b」を設定する。また、書換パケット生成部４０６は、Sender  Protocol  AddressおよびTarget  Protocol  Addressに、抽出した第二のＶＭ情報のＩＰアドレス「10.0.0.2」を設定する。さらに、書換パケット生成部４０６は、VLAN−IDフィールドに、抽出した第一のＶＭ情報のＶＬＡＮ−ＩＤ「Ｘ」を設定する。そして、書換パケット生成部４０６は、Destination  MAC  Addressにブロードキャストアドレスを設定し、Source  MAC  Addressに移動先の物理サーバのＭＡＣアドレスを設定する。こうして、書換パケット生成部４０６は、第二のＶＭ情報に対応するＦＤＢ書換用ＧＡＲＰパケットを生成する。
【００７８】
挿入部４０７は、書換パケット生成部４０６から入力されたＦＤＢ書換用ＧＡＲＰパケットを、出力インタフェース４０２を介して出力する処理部である。この結果、ＦＤＢ書換用ＧＡＲＰパケットは、ブロードキャスト送信される。
【００７９】
［処理の流れ］
次に、仮想ＦＷ４００がマイグレーションによって移動した場合に実行される処理について説明する。ここでは、仮想ＦＷ４００のマイグレーションの全体的な流れと、移動後に仮想ＦＷ４００が実行する処理を説明する。
【００８０】
（シーケンス図）
図９は、実施例１に係る仮想ＦＷのマイグレーションの流れを示すシーケンス図である。図９に示すように、ＶＭ管理サーバ７は、仮想ＦＷ４００が動作する移動元サーバ４０にマイグレーションの開始指示を送信する（Ｓ１０１とＳ１０２）。
【００８１】
マイグレーションの開始指示を受信した移動元の物理サーバ４０のＨＶ４３は、仮想ＶＷ４００のマイグレーションを開始し（Ｓ１０３）、移動先の物理サーバである移動先の物理サーバ２０との間でマイグレーション処理を実行する（Ｓ１０４）。なお、マイグレーション処理の一例としては、メモリコピーなどがある。
【００８２】
その後、移動元の物理サーバ４０のＨＶ４３は、マイグレーションが完了すると、マイグレーション完了通知をＶＭ管理サーバ７へ送信する（Ｓ１０５とＳ１０６）。
【００８３】
一方、マイグレーションが完了すると、移動先の物理サーバ２０のＨＶ４３は、移動してきた仮想ＦＷ４００に対するＧＡＲＰパケットを生成し（Ｓ１０７）、生成したＧＡＲＰパケットをブロードキャスト送信する（Ｓ１０８）。
【００８４】
その一方で、ＶＭ管理サーバ７は、マイグレーション完了通知を受信すると、マイグレーション完了イベントを移動した仮想ＦＷ４００に送信する（Ｓ１０９とＳ１１０）。
【００８５】
仮想ＦＷ４００の移動検知部４０５がマイグレーション完了イベントを検知すると、書換パケット生成部４０６は、中継ルールに基づいてＦＤＢ書換用ＧＡＲＰパケットを生成する（Ｓ１１１）。その後、挿入部４０７は、Ｓ１１１で生成されたＦＤＢ書換用ＧＡＲＰパケットをブロードキャスト送信する（Ｓ１１２）。
【００８６】
（フローチャート）
図１０は、実施例１に係る仮想ＦＷが実行する処理の流れを示すフローチャートである。図１０に示すように、移動対象の仮想ＦＷ４００の移動検知部４０５がマイグレーション完了イベントを受信すると（Ｓ２０１：Ｙｅｓ）、書換パケット生成部４０６は、中継ルールを参照する参照ポインタを０に設定する（Ｓ２０２）。
【００８７】
続いて、書換パケット生成部４０６は、中継ルールＤＢ４０３に記憶される中継ルールのうち現在の参照ポインタに対応する中継ルールを参照し（Ｓ２０３）、第一のＶＭ情報の「ＭＡＣアドレス」と「ＩＰアドレス」とを取得する（Ｓ２０４）。さらに、書換パケット生成部４０６は、第二のＶＭ情報の「ＶＬＡＮ−ＩＤ」を取得する（Ｓ２０５）。
【００８８】
そして、書換パケット生成部４０６は、ＦＤＢ書換用ＧＡＲＰパケットを生成してブロードキャストで各Ｌ２スイッチに送信する（Ｓ２０６）。すなわち、書換パケット生成部４０６は、Ｓ２０４で取得した第一のＶＭ情報の「ＭＡＣアドレス、ＩＰアドレス」をペイロードに含み、Ｓ２０５で取得した第二のＶＭ情報の「ＶＬＡＮ−ＩＤ」をヘッダに含めたＦＤＢ書換用ＧＡＲＰパケットを生成して送信する。
【００８９】
同様に、書換パケット生成部４０６は、中継ルールＤＢ４０３に記憶される中継ルールのうち現在のポインタに対応する中継ルールを参照し、第二のＶＭ情報の「ＭＡＣアドレス」と「ＩＰアドレス」とを取得する（Ｓ２０７）。さらに、書換パケット生成部４０６は、第一のＶＭ情報の「ＶＬＡＮ−ＩＤ」を取得する（Ｓ２０８）。
【００９０】
そして、書換パケット生成部４０６は、ＦＤＢ書換用ＧＡＲＰパケットを生成してブロードキャストで各Ｌ２スイッチに送信する（Ｓ２０９）。すなわち、書換パケット生成部４０６は、Ｓ２０７で取得した第二のＶＭ情報の「ＭＡＣアドレス、ＩＰアドレス」をペイロードに含み、Ｓ２０８で取得した第一のＶＭ情報の「ＶＬＡＮ−ＩＤ」をヘッダに含めたＦＤＢ書換用ＧＡＲＰパケットを生成して送信する。
【００９１】
その後、書換パケット生成部４０６は、全中継ルールを参照したか否かを判定し（Ｓ２１０）、未参照の中継ルールが存在する場合には（Ｓ２１０：Ｎｏ）、参照ポインタをインクリメントして（Ｓ２１１）、Ｓ２０３以降の処理を繰り返す。一方、書換パケット生成部４０６は、未参照の中継ルールが存在しない場合には（Ｓ２１０：Ｙｅｓ）、処理を終了する。
【００９２】
［具体例］
次に、図１１から図１５を用いて、仮想ＦＷ４００がマイグレーションによって移動した場合に実行される処理例を具体的に説明する。図１１は、仮想ＦＷが移動する前の状態を示す図である。図１２は、仮想ＦＷが移動した状態を示す図である。図１３は、仮想ＦＷが移動した後の通信断を説明する図である。図１４は、移動した仮想ＦＷによるＦＤＢの更新を示す図である。図１５は、仮想ＦＷ移動後も通信が継続する例を示す図である。
【００９３】
ここで想定するシステムの物理接続は、図１１に示すように、図２で説明した物理構成例と同様である。具体的には、想定するシステムは、Ｌ２スイッチ２、Ｌ２スイッチ３、Ｌ２スイッチ４、ルータ５、物理サーバ１０、物理サーバ２０、物理サーバ３０、物理サーバ４０、ＶＭ管理サーバ７を有する。
【００９４】
各物理サーバは、ハイパーバイザ（ＨＶ）を実行し、ＶＭを動作させる。具体的には、物理サーバ１０は、ＭＡＣアドレスが「ＭＡＣ（ｂ）」、ＩＰアドレスが「ＩＰ（ｂ）」であるＶＭ（ｂ）１００を動作させる。また、物理サーバ３０は、ＭＡＣアドレスが「ＭＡＣ（ａ）」、ＩＰアドレスが「ＩＰ（ａ）」であるＶＭ（ａ）３００を動作させる。
【００９５】
物理サーバ４０は、ＭＡＣアドレスが「ＭＡＣ（ｆ）」、ＩＰアドレスが「ＩＰ（ｆ）」である仮想ＦＷ４００を動作させる。仮想ＦＷ４００は、中継ルールとして、ＶＭ（ａ）とＶＭ（ｂ）との通信を中継するルールを記憶する。ここで、各ＶＭが属するＶＬＡＮは、図３で説明した論理接続と同様とする。つまり、ＶＭ（ａ）３００はＶＬＡＮ（Ｘ）に属し、ＶＭ（ｂ）１００はＶＬＡＮ（Ｙ）に属する。そして、仮想ＦＷ４００とＶＭ（ａ）３００とはＶＬＡＮ（Ｘ）で接続され、仮想ＦＷ４００とＶＭ（ｂ）１００とはＶＬＡＮ（Ｙ）で接続される。
【００９６】
各Ｌ２スイッチは、ＦＤＢを有し、ＦＤＢを用いてパケットを中継する。ＦＤＢは、「ＶＬＡＮ、ＭＡＣ、Ｐｏｒｔ」が対応付けられたデータベースである。ここで、「ＶＬＡＮ」は、送信元ＶＭが属するＶＬＡＮ−ＩＤであり、「ＭＡＣ」は、宛先ＶＭのＭＡＣアドレスであり、「Ｐｏｒｔ」は、Ｌ２スイッチがパケットを出力するポート番号である。
【００９７】
具体的には、Ｌ２スイッチ２は、ＦＤＢ「ＶＬＡＮ、ＭＡＣ、Ｐｏｒｔ」として「Ｙ、ＭＡＣ（ｂ）、Ｐ２」、「Ｙ、ＭＡＣ（ａ）、Ｐ３」、「Ｙ、ＭＡＣ（ｆ）、Ｐ３」を記憶する。さらに、Ｌ２スイッチ２は、ＦＤＢ「ＶＬＡＮ、ＭＡＣ、Ｐｏｒｔ」として「Ｘ、ＭＡＣ（ｆ）、Ｐ３」を記憶する。
【００９８】
同様に、Ｌ２スイッチ３は、ＦＤＢ「ＶＬＡＮ、ＭＡＣ、Ｐｏｒｔ」として「Ｙ、ＭＡＣ（ｂ）、Ｐ２」、「Ｙ、ＭＡＣ（ａ）、Ｐ１」、「Ｙ、ＭＡＣ（ｆ）、Ｐ１」を記憶する。さらに、Ｌ２スイッチ３は、ＦＤＢ「ＶＬＡＮ、ＭＡＣ、Ｐｏｒｔ」として「Ｘ、ＭＡＣ（ｆ）、Ｐ１」を記憶する。
【００９９】
また、Ｌ２スイッチ４は、ＦＤＢ「ＶＬＡＮ、ＭＡＣ、Ｐｏｒｔ」として「Ｙ、ＭＡＣ（ｂ）、Ｐ１」、「Ｘ、ＭＡＣ（ａ）、Ｐ２」、「Ｙ、ＭＡＣ（ａ）、Ｐ３」を記憶する。さらに、Ｌ２スイッチ４は、ＦＤＢ「ＶＬＡＮ、ＭＡＣ、Ｐｏｒｔ」として「Ｘ、ＭＡＣ（ｂ）、Ｐ３」、「Ｘ、ＭＡＣ（ｆ）、Ｐ３」、「Ｙ、ＭＡＣ（ｆ）、Ｐ３」を記憶する。
【０１００】
このような状態において、ＶＭ（ａ）３００がＶＭ（ｂ）１００宛てにパケットを送信した例を説明する。ここで送信されるパケットには、宛先のＭＡＣアドレスにＶＭ（ｂ）１００のＭＡＣ（ｂ）が設定され、ＶＬＡＮ−ＩＤには送信元であるＶＭ（ａ）３００のＶＬＡＮ−ＩＤ「Ｘ」が設定される。
【０１０１】
ＶＭ（ａ）３００から送信されたパケットは、Ｌ２スイッチ４の「Ｐ２」で受信される。Ｌ２スイッチ４は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｘ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ３」と特定する。そして、Ｌ２スイッチ４は、受信したパケットを「Ｐ３」から送信する。
【０１０２】
Ｌ２スイッチ４の「Ｐ３」から送信されたパケットは、仮想ＦＷ４００に到達する。仮想ＦＷ４００は、到達したパケットを中継ルールに基づいて中継すると判定し、パケットを終端させずに、送信元のＬ２スイッチ４に中継する。ここで、仮想ＦＷ４００は、当該パケットのヘッダに設定されるＶＬＡＮ−ＩＤを、送信元であるＶＭ（ａ）３００のＶＬＡＮ−ＩＤ「Ｘ」から宛先であるＶＭ（ｂ）１００のＶＬＡＮ−ＩＤ「Ｙ」に書換える。このようにして、異なるＶＬＡＮ間でパケットが中継される。
【０１０３】
Ｌ２スイッチ４は、ＶＬＡＮ−ＩＤが「Ｘ」から「Ｙ」に書換えられたパケットを「Ｐ３」で受信する。すると、Ｌ２スイッチ４は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｙ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ１」と特定する。そして、Ｌ２スイッチ４は、受信したパケットを「Ｐ１」から送信する。
【０１０４】
続いて、Ｌ２スイッチ２は、Ｌ２スイッチ４が中継したパケットを「Ｐ３」で受信する。すると、Ｌ２スイッチ２は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｙ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ２」と特定する。そして、Ｌ２スイッチ２は、受信したパケットを「Ｐ２」から送信する。
【０１０５】
続いて、Ｌ２スイッチ３は、Ｌ２スイッチ２が中継したパケットを「Ｐ１」で受信する。すると、Ｌ２スイッチ３は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｙ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ２」と特定する。そして、Ｌ２スイッチ３は、受信したパケットを「Ｐ２」から送信する。
【０１０６】
その後、Ｌ２スイッチ３が「Ｐ２」から送信したパケットは、Ｌ２スイッチ３の「Ｐ２」と接続される物理サーバ１０に到達し、ＶＭ（ｂ）１００によって受信される。このようにして、異なるＶＬＡＮ間の通信が、仮想ＦＷ４００によって中継される。
【０１０７】
次に、図１２に示すように、仮想ＦＷ４００が物理サーバ４０から物理サーバ２０へ移動した例を説明する。具体的には、ＶＭ管理サーバ７は、物理サーバ４０のＨＶに、仮想ＦＷ４００を物理サーバ２０へ移動させるマイグレーション指示を送信する。すると、物理サーバ４０のＨＶと物理サーバ２０のＨＶとの間で、メモリコピー等が実行される。この結果、仮想ＦＷ４００は、物理サーバ４０から物理サーバ２０へ移動する。
【０１０８】
移動先である物理サーバ２０のＨＶは、仮想ＦＷ４００の移動が完了すると、仮想ＦＷ４００に対応するＧＡＲＰパケットをブロードキャストで送信する。具体的には、物理サーバ２０のＨＶは、仮想ＦＷ４００がＶＬＡＮ（Ｘ）とＶＬＡＮ（Ｙ）の２つのインタフェースを有することから、２つのＧＡＲＰパケットを送信する。
【０１０９】
例えば、物理サーバ２０のＨＶは、仮想ＦＷ４００のＩＰアドレス「ＩＰ（ｆ）」とＭＡＣアドレス「ＭＡＣ（ｆ）」と、仮想ＦＷ４００が属するＶＬＡＮ−ＩＤ「Ｘ」とを含めたＧＡＲＰパケットをブロードキャストで送信する。同様に、物理サーバ２０のＨＶは、仮想ＦＷ４００のＩＰアドレス「ＩＰ（ｆ）」とＭＡＣアドレス「ＭＡＣ（ｆ）」と、仮想ＦＷ４００が属するＶＬＡＮ−ＩＤ「Ｙ」とを含めたＧＡＲＰパケットをブロードキャストで送信する。
【０１１０】
物理サーバ２０のＨＶが送信するＧＡＲＰパケットは、ブロードキャストで送信されるので、各Ｌ２スイッチに受信される。そして、各Ｌ２スイッチは、ＧＡＲＰパケット「Ｘ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」とＧＡＲＰパケットト「Ｙ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」とを受信すると、ＦＤＢの書換を実行する。
【０１１１】
具体的には、Ｌ２スイッチ３は、ＧＡＲＰパケット「Ｘ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」およびＧＡＲＰパケット「Ｙ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」をポート「Ｐ３」で受信する。このため、Ｌ２スイッチ３は、ＦＤＢにおいて「Ｘ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」に対応するＰｏｒｔ「Ｐ１」を、ＧＡＲＰパケットを受信した「Ｐ３」に書換える。同様に、Ｌ２スイッチ３は、ＦＤＢにおいて「Ｙ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」に対応するＰｏｒｔ「Ｐ１」を、ＧＡＲＰパケットを受信した「Ｐ３」に書換える。
【０１１２】
また、Ｌ２スイッチ２は、ＧＡＲＰパケット「Ｘ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」およびＧＡＲＰパケット「Ｙ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」を、Ｌ２スイッチ３を介してポート「Ｐ２」で受信する。このため、Ｌ２スイッチ２は、ＦＤＢにおいて「Ｘ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」に対応するＰｏｒｔ「Ｐ３」を、ＧＡＲＰパケットを受信した「Ｐ２」に書換える。同様に、Ｌ２スイッチ２は、ＦＤＢにおいて「Ｙ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」に対応するＰｏｒｔ「Ｐ３」を、ＧＡＲＰパケットを受信した「Ｐ２」に書換える。
【０１１３】
また、Ｌ２スイッチ４は、ＧＡＲＰパケット「Ｘ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」およびＧＡＲＰパケットト「Ｙ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」を、Ｌ２スイッチ３とＬ２スイッチ２を介してポート「Ｐ１」で受信する。このため、Ｌ２スイッチ４は、ＦＤＢにおいて「Ｘ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」に対応するＰｏｒｔ「Ｐ３」を、ＧＡＲＰパケットを受信した「Ｐ１」に書換える。同様に、Ｌ２スイッチ４は、ＦＤＢにおいて「Ｙ、ＩＰ（ｆ）、ＭＡＣ（ｆ）」に対応するＰｏｒｔ「Ｐ３」を、ＧＡＲＰパケットを受信した「Ｐ１」に書換える。
【０１１４】
このようして、仮想ＦＷ４００が物理サーバ４０から物理サーバ２０へ移動した場合に、移動先の物理サーバ２０のＨＶがＧＡＲＰパケットを送信する。この結果、各Ｌ２スイッチは、仮想ＦＷ４００宛てのパケットを出力する出力先ポートを移動先の物理サーバ２０へ到達するように書換えることができる。
【０１１５】
したがって、宛先として仮想ＦＷ４００の「ＭＡＣ（ｆ）」および「ＩＰ（ｆ）」が設定されたパケットは、移動先の物理サーバ２０へ到達することができる。
【０１１６】
ところが、この状態では、仮想ＦＷ４００が中継対象とするＶＭ（ａ）３００やＶＭ（ｂ）１００を宛先とするパケットは、仮想ＦＷ４００に到達することができない。具体的には、図１３を用いて、ＶＭ（ｂ）１００からＶＭ（ａ）３００へパケットを送信する例と、ＶＭ（ａ）３００からＶＭ（ｂ）１００へパケットを送信する例を説明する。
【０１１７】
図１３に示す各Ｌ２スイッチのＦＤＢは、図１２に示す状態と同じである。つまり、マイグレーションした仮想ＦＷ４００に対応するＧＡＲＰパケットによってＦＤＢの更新が実行された状態である。
【０１１８】
このような状態で、まず、ＶＭ（ａ）３００からＶＭ（ｂ）１００へパケットを送信する例を説明する。ここで送信されるパケットには、宛先のＭＡＣアドレスにＶＭ（ｂ）１００のＭＡＣ（ｂ）が設定され、宛先のＩＰアドレスにＶＭ（ｂ）１００のＩＰ（ｂ）が設定され、ＶＬＡＮ−ＩＤには送信元であるＶＭ（ａ）３００のＶＬＡＮ−ＩＤ「Ｘ」が設定される。
【０１１９】
ＶＭ（ａ）３００から送信されたパケットは、Ｌ２スイッチ４の「Ｐ２」で受信される。Ｌ２スイッチ４は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｘ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ３」と特定する。そして、Ｌ２スイッチ４は、受信したパケットを「Ｐ３」から送信する。
【０１２０】
そして、Ｌ２スイッチ４のＰ３から送信されたパケットは、物理サーバ４０へ到達する。しかし、仮想ＦＷ４００は、物理サーバ４０から物理サーバ２０へ移動しているので、物理サーバ４０上には存在しない。したがって、Ｌ２スイッチ４の「Ｐ３」から送信されたパケットは、物理サーバ４０で破棄される。このように、ＶＭ（ａ）３００からＶＭ（ｂ）１００へ送信されたパケットは、仮想ＦＷ４００まで到達することができない。
【０１２１】
次に、ＶＭ（ｂ）１００からＶＭ（ａ）３００へパケットを送信する例を説明する。ここで送信されるパケットは、宛先のＭＡＣアドレスにＶＭ（ａ）３００のＭＡＣ（ａ）が設定され、宛先のＩＰアドレスにＶＭ（ａ）３００のＩＰ（ａ）が設定され、ＶＬＡＮ−ＩＤには送信元であるＶＭ（ｂ）１００のＶＬＡＮ−ＩＤ「Ｙ」が設定される。
【０１２２】
ＶＭ（ｂ）１００から送信されたパケットは、Ｌ２スイッチ３の「Ｐ２」で受信される。Ｌ２スイッチ３は、当該パケットから宛先の「ＭＡＣ（ａ）」と送信元のＶＬＡＮ−ＩＤ「Ｙ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ１」と特定する。そして、Ｌ２スイッチ３は、受信したパケットを「Ｐ１」から送信する。
【０１２３】
続いて、Ｌ２スイッチ２は、Ｌ２スイッチ３が中継したパケットを「Ｐ２」で受信する。すると、Ｌ２スイッチ２は、当該パケットから宛先の「ＭＡＣ（ａ）」と送信元のＶＬＡＮ−ＩＤ「Ｙ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ３」と特定する。そして、Ｌ２スイッチ２は、受信したパケットを「Ｐ３」から送信する。
【０１２４】
続いて、Ｌ２スイッチ４は、Ｌ２スイッチ２が中継したパケットを「Ｐ１」で受信する。すると、Ｌ２スイッチ４は、当該パケットから宛先の「ＭＡＣ（ａ）」と送信元のＶＬＡＮ−ＩＤ「Ｙ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ３」と特定する。そして、Ｌ２スイッチ４は、受信したパケットを「Ｐ３」から送信する。
【０１２５】
そして、Ｌ２スイッチ４のＰ３から送信されたパケットは、物理サーバ４０へ到達する。しかし、仮想ＦＷ４００は、物理サーバ４０から物理サーバ２０へ移動しているので、物理サーバ４０上には存在しない。したがって、Ｌ２スイッチ４の「Ｐ３」から送信されたパケットは、物理サーバ４０で破棄される。このように、ＶＭ（ｂ）１００からＶＭ（ａ）３００へ送信されたパケットは、仮想ＦＷ４００まで到達することができない。
【０１２６】
そこで、仮想ＦＷ４００は、マイグレーションが完了すると、中継ルールに記憶されるＶＭに関する情報をブロードキャスト送信することで、各Ｌ２スイッチにＦＤＢを更新させる。
【０１２７】
図１４を用いて具体的に説明すると、図１４に示すように、仮想ＦＷ４００は、ＶＭ管理サーバ７等によって移動が完了したことが通知されると、中継ルールＤＢ４０３を参照する。そして、仮想ＦＷ４００は、「ＶＭ（ａ）３００−ＶＭ（ｂ）１００」間の中継ルールを特定し、中継ルールに記憶される中継対象のＶＭ（ａ）３００とＶＭ（ｂ）１００の各々に対応するＦＤＢ書換用ＧＡＲＰパケットをブロードキャストで送信する。
【０１２８】
具体的には、仮想ＦＷ４００は、ＶＭ（ａ）３００からＶＭ（ｂ）１００への経路を書換えるＦＤＢ書換用ＧＡＲＰパケットを生成する。例えば、仮想ＦＷ４００は、送信元となるＶＭ（ａ）３００のＩＰアドレス「ＩＰ（ａ）」とＭＡＣアドレス「ＭＡＣ（ａ）」と、宛先となるＶＭ（ｂ）１００が属するＶＬＡＮ−ＩＤ「Ｙ」とを含めたＦＤＢ書換用ＧＡＲＰパケットをブロードキャストで送信する。
【０１２９】
同様に、仮想ＦＷ４００は、ＶＭ（ｂ）１００からＶＭ（ａ）３００への経路を書換えるＦＤＢ書換用ＧＡＲＰパケットを生成する。例えば、仮想ＦＷ４００は、送信元となるＶＭ（ｂ）１００のＩＰアドレス「ＩＰ（ｂ）」とＭＡＣアドレス「ＭＡＣ（ｂ）」と、宛先となるＶＭ（ａ）３００が属するＶＬＡＮ−ＩＤ「Ｘ」とを含めたＦＤＢ書換用ＧＡＲＰパケットをブロードキャストで送信する。
【０１３０】
仮想ＦＷ４００が送信するＦＤＢ書換用ＧＡＲＰパケットは、ブロードキャストで送信されるので、各Ｌ２スイッチに受信される。そして、各Ｌ２スイッチは、ＦＤＢ書換用ＧＡＲＰパケット「Ｙ、ＩＰ（ａ）、ＭＡＣ（ａ）」とＦＤＢ書換用ＧＡＲＰパケット「Ｘ、ＩＰ（ｂ）、ＭＡＣ（ｂ）」とを受信すると、ＦＤＢの書換を実行する。
【０１３１】
具体的には、Ｌ２スイッチ３は、ＦＤＢ書換用ＧＡＲＰパケット「Ｙ、ＭＡＣ（ａ）」およびＦＤＢ書換用ＧＡＲＰパケット「Ｘ、ＭＡＣ（ｂ）」をポート「Ｐ３」で受信する。このため、Ｌ２スイッチ３は、ＦＤＢにおいて「Ｙ、ＭＡＣ（ａ）」に対応するＰｏｒｔ「Ｐ１」を、ＧＡＲＰパケットを受信した「Ｐ３」に書換える。また、Ｌ２スイッチ３は、ＦＤＢにおいて「Ｘ、ＭＡＣ（ｂ）」に対応するＰｏｒｔが存在しないことから、「Ｘ、ＭＡＣ（ｂ）」とＦＤＢ書換用ＧＡＲＰパケットを受信した「Ｐ３」とを対応付けたエントリを新たに生成する。
【０１３２】
また、Ｌ２スイッチ２は、ＦＤＢ書換用ＧＡＲＰパケット「Ｙ、ＭＡＣ（ａ）」およびＦＤＢ書換用ＧＡＲＰパケット「Ｘ、ＭＡＣ（ｂ）」を、Ｌ２スイッチ３を介してポート「Ｐ２」で受信する。このため、Ｌ２スイッチ２は、ＦＤＢにおいて「Ｙ、ＭＡＣ（ａ）」に対応するＰｏｒｔ「Ｐ３」を、ＦＤＢ書換用ＧＡＲＰパケットを受信した「Ｐ２」に書換える。また、Ｌ２スイッチ２は、ＦＤＢにおいて「Ｘ、ＭＡＣ（ｂ）」に対応するＰｏｒｔが存在しないことから、「Ｘ、ＭＡＣ（ｂ）」とＦＤＢ書換用ＧＡＲＰパケットを受信した「Ｐ２」とを対応付けたエントリを新たに生成する。
【０１３３】
また、Ｌ２スイッチ４は、ＦＤＢ書換用ＧＡＲＰパケット「Ｙ、ＭＡＣ（ａ）」およびＦＤＢ書換用ＧＡＲＰパケット「Ｘ、ＭＡＣ（ｂ）」を、Ｌ２スイッチ３とＬ２スイッチ２を介してポート「Ｐ１」で受信する。このため、Ｌ２スイッチ４は、ＦＤＢにおいて「Ｙ、ＭＡＣ（ａ）」に対応するＰｏｒｔ「Ｐ３」を、ＦＤＢ書換用ＧＡＲＰパケットを受信した「Ｐ１」に書換える。同様に、Ｌ２スイッチ４は、ＦＤＢにおいて「Ｘ、ＭＡＣ（ｂ）」に対応するＰｏｒｔ「Ｐ３」を、ＦＤＢ書換用ＧＡＲＰパケットを受信した「Ｐ１」に書換える。
【０１３４】
このようして、仮想ＦＷ４００が物理サーバ４０から物理サーバ２０へ移動した場合に、仮想ＦＷ４００は、ＦＤＢ書換用ＧＡＲＰパケットを送信する。この結果、各Ｌ２スイッチは、仮想ＦＷ４００に中継されるＶＭを宛先とするパケットを移動先の物理サーバ２０へ到達するように、ＦＤＢを書換えることができる。
【０１３５】
ここで、一例として、図１５を用いて、仮想ＦＷ４００移動後にＶＭ（ａ）３００からＶＭ（ｂ）１００へ送信されたパケットの経路を説明する。図１５に示す各Ｌ２スイッチのＦＤＢは、図１４に示す状態と同じである。つまり、仮想ＦＷ４００の移動後に、ＧＡＲＰパケットおよびＦＤＢ書換用ＧＡＲＰパケットによってＦＤＢの更新が実行された状態である。
【０１３６】
このような状態で、ＶＭ（ａ）３００からＶＭ（ｂ）１００へパケットを送信する例を説明する。ここで送信されるパケットは、宛先のＭＡＣアドレスにＶＭ（ｂ）１００のＭＡＣ（ｂ）が設定され、宛先のＩＰアドレスにＶＭ（ｂ）１００のＩＰ（ｂ）が設定され、ＶＬＡＮ−ＩＤには送信元であるＶＭ（ａ）３００のＶＬＡＮ−ＩＤ「Ｘ」が設定される。
【０１３７】
ＶＭ（ａ）３００から送信されたパケットは、Ｌ２スイッチ４の「Ｐ２」で受信される。Ｌ２スイッチ４は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｘ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ１」と特定する。そして、Ｌ２スイッチ４は、受信したパケットを「Ｐ１」から送信する。
【０１３８】
続いて、Ｌ２スイッチ２は、Ｌ２スイッチ４が中継したパケットを「Ｐ３」で受信する。すると、Ｌ２スイッチ２は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｘ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ２」と特定する。そして、Ｌ２スイッチ２は、受信したパケットを「Ｐ２」から送信する。
【０１３９】
続いて、Ｌ２スイッチ３は、Ｌ２スイッチ２が中継したパケットを「Ｐ１」で受信する。すると、Ｌ２スイッチ３は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｘ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ３」と特定する。そして、Ｌ２スイッチ３は、受信したパケットを「Ｐ３」から送信する。
【０１４０】
その後、Ｌ２スイッチ３の「Ｐ３」から送信されたパケットは、物理サーバ２０の仮想ＦＷ４００に到達する。仮想ＦＷ４００は、到達したパケットを中継ルールに基づいて中継すると判定し、パケットを終端させずに、送信元のＬ２スイッチ３に中継する。ここで、仮想ＦＷ４００は、当該パケットのヘッダに設定されるＶＬＡＮ−ＩＤを、送信元であるＶＭ（ａ）３００のＶＬＡＮ−ＩＤ「Ｘ」から宛先であるＶＭ（ｂ）１００のＶＬＡＮ−ＩＤ「Ｙ」に書換える。
【０１４１】
Ｌ２スイッチ３は、ＶＬＡＮ−ＩＤが「Ｘ」から「Ｙ」に書換えられたパケットを「Ｐ３」で受信する。すると、Ｌ２スイッチ３は、当該パケットから宛先の「ＭＡＣ（ｂ）」と送信元のＶＬＡＮ−ＩＤ「Ｙ」を取得し、これらに対応するＰｏｒｔをＦＤＢから「Ｐ２」と特定する。そして、Ｌ２スイッチ３は、受信したパケットを「Ｐ２」から送信する。
【０１４２】
その後、Ｌ２スイッチ３が「Ｐ２」から送信したパケットは、Ｌ２スイッチ３の「Ｐ２」と接続される物理サーバ１０に到達し、ＶＭ（ｂ）１００によって受信される。
【０１４３】
このように、仮想ＦＷ４００がマイグレーションによって物理サーバを移動した場合、ハイパーバイザが送信する通常のＧＡＲＰパケットに加え、仮想ＦＷ４００がＦＤＢ書換用ＧＡＲＰパケットを送信する。したがって、各Ｌ２スイッチは、移動した仮想ＦＷ４００に関するＦＤＢに加え、仮想ＦＷ４００が中継制御するＶＭについてのＦＤＢも更新することができる。この結果、仮想ＦＷ４００がマイグレーションによって他の物理サーバへ移動した後も、仮想ＦＷ４００は、異なるＶＬＡＮに属するＶＭ間の通信を中継することができる。
【０１４４】
具体的には、ＶＭ（ａ）３００とＶＭ（ｂ）１００が通信を行っている状態で、仮想ＦＷ４００が移動した場合でも、ＶＭ（ａ）３００とＶＭ（ｂ）１００にかかわるエントリが、仮想ＦＷ４００から送信されたＦＤＢ書換用ＧＡＲＰパケットによって更新される。このため、最新の仮想ＦＷ４００の場所へパケットが転送されるようになり、仮想ＦＷ４００が移動しても、ＶＭ（ａ）３００とＶＭ（ｂ）１００との通信を継続できる。
【０１４５】
また、仮想ＦＷ４００は、ハイパーバイザによるＧＡＲＰパケットが送信された後に、ＦＤＢ書換用ＧＡＲＰパケットを送信するので、仮想ＶＷ４００が移動を完了する前に、ＦＤＢ書換用ＧＡＲＰパケットが送信されるのを抑制できる。この結果、各Ｌ２スイッチは、移動した仮想ＦＷ４００に関するＦＤＢを書換えた後に、仮想ＦＷ４００が中継するＶＭに関するＦＤＢを書換えることができる。したがって、ＦＤＢの書換タイミングによって、ＶＭ間の通信が遮断される危険性を低減できる。
【０１４６】
また、マイグレーションした仮想ＦＷ４００がＦＤＢ書換用ＧＡＲＰパケットを送信するので、ハイパーバイザが仮想ＦＷ４００の中継ルールを参照する時間を省略することができる。この結果、ハイパーバイザがＦＤＢ書換用ＧＡＲＰパケットを送信する場合に比べて、処理時間を短縮することができる。
【実施例２】
【０１４７】
実施例１では、移動した仮想ＦＷ４００に対して、ＶＭ管理サーバ７がマイグレーション完了通知を通知する例を説明したが、これに限定されるものではなく、移動先のハイパーバイザが通知するようにしてもよい。
【０１４８】
そこで、実施例２では、一例として、移動先である物理サーバ２０のＨＶが移動した仮想ＦＷ４００に対して、マイグレーション完了通知を通知する例を説明する。図１６は、実施例２に係る移動先の物理サーバが実行する処理の流れを示すフローチャートである。図１７は、実施例２に係る移動された仮想ＦＷが移動後に実行する処理の流れを示すフローチャートである。なお、Ｓ３０１〜Ｓ３０７は、ＨＶが実行する処理である。
【０１４９】
図１６に示すように、移動先の物理サーバ２０のＨＶは、ＶＭ管理サーバ７からの指示によってマイグレーションを実行する（Ｓ３０１）。そして、ＨＶは、マイグレーションを実行すると、ＧＡＲＰパケットを送信したか否かを判定する（Ｓ３０２）。つまり、ＨＶは、マイグレーションの完了に伴ってＧＡＲＰパケットの送信を実行したか否かを判定する。
【０１５０】
そして、ＨＶは、ＧＡＲＰパケットを送信したと判定すると（Ｓ３０２：Ｙｅｓ）、リトライ数を０に設定する（Ｓ３０３）。続いて、ＨＶは、送信されたＧＡＲＰパケットのペイロードに含まれるＩＰアドレスに対して、つまり移動した仮想ＦＷにマイグレーション完了イベントのメッセージを送信する（Ｓ３０４）。
【０１５１】
そして、ＨＶは、マイグレーション完了イベントのメッセージの送信が成功したか否かを判定する（Ｓ３０５）。つまり、ＨＶは、マイグレーション完了イベントのメッセージが、宛先のＩＰアドレスに対応するＶＭに受信されたか否かを判定する。
【０１５２】
ＨＶは、マイグレーション完了イベントのメッセージの送信が成功していないと判定した場合（Ｓ３０５：Ｎｏ）、リトライ数をインクリメントし（Ｓ３０６）、リトライ数が例えば３回などの閾値を超えるか否かを判定する（Ｓ３０７）。
【０１５３】
そして、ＨＶは、リトライ数が閾値を超えると判定した場合（Ｓ３０７：Ｙｅｓ）、処理を終了する。一方、ＨＶは、リトライ数が閾値を超えないと判定した場合（Ｓ３０７：Ｎｏ）、Ｓ３０４以降の処理を繰り返す。
【０１５４】
図１７に示すＳ３０８〜Ｓ３１８は、仮想ＦＷ４００が実行する処理である。マイグレーション完了イベントメッセージをＨＶから受信する（Ｓ３０８）。受信後は、Ｓ３０９以降の処理を仮想ＦＷ４００が行う。ＨＶ仮想ＦＷ４００が実行するＳ３０９からＳ３１８の処理は、図１０で説明したＳ２０１からＳ２１１と同様なので、詳細な説明は省略する。
【０１５５】
このように、ＶＭ管理サーバ７を介在せずにＦＤＢ書換用ＧＡＲＰパケットを迅速に送信することができ、仮想ＦＷの移動に伴う、中継対象のＶＭ（ａ）とＶＭ（ｂ）との通信のパケットロスを最小限に留めることができる。
【実施例３】
【０１５６】
さて、これまで実施例１と実施例２とを説明したが、開示する装置は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１５７】
（ＦＤＢ書換用ＧＡＲＰパケット）
実施例１や実施例２では、仮想ＦＷ４００は、ＦＤＢ書換用ＧＡＲＰパケットを用いて、各Ｌ２スイッチのＦＤＢを書換させる例を説明したが、これに限定されるものではない。例えば、仮想ＦＷ４００は、ＴＣＰ（Transmission  Control  Protocol）やＵＤＰ（User  Datagram  Protocol）を利用した特殊な制御パケットを利用することもできる。また、仮想ＦＷ４００は、より上位レイヤのＨＴＴＰ（Hypertext  Transfer  Protocol）やＳＯＡＰなどの制御メッセージを利用することもできる。同様に、実施例２で説明したマイグレーション完了イベントのメッセージについても、上記プロトコルを利用することができる。
【０１５８】
また、実施例１や実施例２では、中継ルールに記憶される各中継ルールについてＦＤＢ書換用ＧＡＲＰパケットを生成する例を説明したが、これに限定されるものではない。例えば、仮想ＦＷ４００は、中継ルールのうち「アクション」が「Ｐａｓｓ」の中継ルールを対象にして、ＦＤＢ書換用ＧＡＲＰパケットを生成することもできる。この結果、「アクション」が「Ｄｉｓｃａｒｄ」である中継ルールを対象外にすることができ、「Ｐａｓｓ」するＶＭ間だけを通知することができるので、パケット数の削減や処理時間の短縮化が図れる。
【０１５９】
（ＦＷの種別）
実施例１や実施例２では、透過型の仮想ＦＷを例にして説明したが、これに限定されるものではなく、例えばパケットを終端させる仮想ＦＷについても、上記処理と同様の処理を適用することができる。また、ファイアウォールに限定されず、他のコンピュータ同士の通信を中継する中継プログラムや、他のコンピュータ同士の通信を透過する透過プログラムなどに適用できる。例えば、ＩＤＳ（Intrusion  Detection  System）やＩＰＳ（Intrusion  Prevention  System）としてのプログラムを実行する仮想マシンについても同様に処理することができる。
【０１６０】
（ＦＤＢ書換用ＧＡＲＰパケットのペイロード）
実施例１や実施例２では、異なるＶＬＡＮに属するＶＭ間の通信を例に説明したが、これに限定されるものではなく、同じＶＬＡＮに属するＶＭ間の通信についても同様に適用することができる。その場合、仮想ＦＷ４００は、ＦＤＢ書換用ＧＡＲＰパケットのペイロードに、第一のＶＭのＭＡＣアドレスとＩＰアドレスと、第二のＶＭのＭＡＣアドレスとＩＰアドレスとを設定する。
【０１６１】
（ＦＤＢ書換用ＧＡＲＰパケットの送信）
実施例１や実施例２では、仮想ＦＷ４００がＦＤＢ書換用ＧＡＲＰパケットを生成して送信する例を説明したが、これに限定されるものではない。例えば、移動先の物理サーバのハイパーバイザが、移動してきた仮想ＦＷ４００から中継ルールを読み出して、ＦＤＢ書換用ＧＡＲＰパケットを生成して送信することもできる。
【０１６２】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、図７で説明したＩＰアドレスやＭＡＣアドレス等は、あくまで例示であり、数値や形式を限定するものではない。
【０１６３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１６４】
（ハードウェア）
図１８は、物理サーバ４０のハードウェア構成例を示す図である。ここで示したハードウェア構成は、図１等に示した各物理サーバのハードウェア構成例である。図１８に示すように、物理サーバ４０は、ＣＰＵ５０１、入力装置５０２、通信インタフェース５０３、ＨＤＤ（Hard  Disk  Drive）５０４、メモリ５０５、ディスプレイ５０６を有する。また、図１８に示した各部は、バス等で相互に接続される。
【０１６５】
入力装置５０２は、例えばキーボードなどであり、通信インタフェース５０３は、例えばＮＩＣなどである。ＨＤＤ５０４は、図４に示した機能や図６に示したＶＭを動作させるプログラムや各ＤＢを記憶する。記録媒体の例としてＨＤＤ５０４を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータが読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。また、ディスプレイ５０６は、各種情報を表示する表示装置である。
【０１６６】
ＣＰＵ５０１は、図４に示した各処理部と同様の処理を実行するプログラムをＨＤＤ５０４等から読み出してメモリ５０５に展開することで、図４等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、物理サーバ４０が有する各処理と同様の機能を実行する。具体的には、ＣＰＵ５０１は、ＨＶ４３と同様の機能を有するプログラムをＨＤＤ５０４等から読み出す。そして、ＣＰＵ５０１は、各処理部と同様の処理を実行するプロセスを実行する。
【０１６７】
また、ＣＰＵ５０１は、図６に示したＶＭに動作させる各処理部と同様の処理を実行するプログラムをＨＤＤ５０４等から読み出してメモリ５０５に展開することで、図６等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、仮想ＦＷ４００が有する各処理と同様の機能を実行する。具体的には、ＣＰＵ５０１は、入力インタフェース４０１、出力インタフェース４０２、中継処理部４０４、移動検知部４０５、書換パケット生成部４０６、挿入部４０７と同様の機能を有するプログラムをＨＤＤ５０４等から読み出す。そして、ＣＰＵ５０１は、各処理部と同様の処理を実行するプロセスを実行する。
【０１６８】
このように物理サーバ４０は、プログラムを読み出して実行することで仮想マシン制御方法を実行する情報処理装置として動作する。また、物理サーバ４０は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、物理サーバ４０によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【０１６９】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７０】
（付記１）複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能なコンピュータに、
他のコンピュータから、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成し、
前記生成した前記制御情報を前記複数の中継装置に送信する
処理を実行させることを特徴とする中継プログラム。
【０１７１】
（付記２）前記コンピュータは、前記第１ノードと前記第２ノード間の中継情報を記憶しており、
前記コンピュータに、更に、
前記中継情報を基に前記制御情報を生成させる処理を実行させることを特徴とする付記１記載の中継プログラム。
【０１７２】
（付記３）前記コンピュータは、前記他のコンピュータから取得した前記中継情報を記憶することを特徴とする付記１記載の中継プログラム。
【０１７３】
（付記４）前記中継情報は、前記第１ノードの固有情報と前記第２ノードが属するネットワークのネットワーク情報を含んでおり、
前記コンピュータに、更に、前記中継情報の前記第１ノードの固有情報と前記第２ノードが属するネットワークのネットワーク情報を基に前記制御情報を生成させる処理を実行させることを特徴とする付記２または付記３記載の中継プログラム。
【０１７４】
（付記５）複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能なコンピュータが、
他のコンピュータから、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成し、
前記生成した前記制御情報を前記複数の中継装置に送信する
ことを特徴とする中継方法。
【０１７５】
（付記６）前記中継は、前記コンピュータが仮想マシンプログラムを実行することにより実現される仮想マシンにより処理されるとともに、
前記仮想マシンを管理する仮想マシン管理プログラムによって前記コンピュータが前記中継の再開を前記中継プログラムに通知することを特徴とする付記５記載の中継方法。
【０１７６】
（付記７）複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能な中継処理装置であって、
他の中継処理装置から、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成する生成部と、
前記生成部により生成された前記制御情報を前記複数の中継装置に送信する送信部と、
を有することを特徴とする中継処理装置。
【０１７７】
（付記８）複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能な中継処理装置であって、
前記中継処理装置は、メモリと、
前記メモリに接続されるプロセッサと、を有し、
前記プロセッサは、
他のコンピュータから、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成し、
前記生成した前記制御情報を前記複数の中継装置に送信する
処理を実行することを特徴とする中継処理装置。
【０１７８】
（付記９）複数の中継装置によって接続された第１ノードと第２ノード間の通信の中継が可能なコンピュータに、
他のコンピュータから、前記第１ノードと前記第２ノード間の中継の処理を移行されることに伴い、前記第２ノードから前記第１ノード宛の通信につき、前記コンピュータを経由することを示唆する制御情報を生成し、
前記生成した前記制御情報を前記複数の中継装置に送信する処理を実行させる中継処理プログラムを記憶する、コンピュータ読み取り可能な記憶媒体。
【符号の説明】
【０１７９】
１  クラウドデータセンタ
２、３、４、  Ｌ２スイッチ
１０、２０、３０、４０  物理サーバ
４１  ハードウェア
４２  ＯＳ
４３  ＨＶ
４４  ＶＭ
４５  ＯＳ
４６  アプリケーション・プログラム
４００  仮想ＦＷ
４０１  入力インタフェース
４０２  出力インタフェース
４０３  中継ルールＤＢ
４０４  中継処理部
４０５  移動検知部
４０６  書換パケット生成部
４０７  挿入部
【図１】
2014143617.tif 000003
【図２】
2014143617.tif 000004
【図３】
2014143617.tif 000005
【図４】
2014143617.tif 000006
【図５】
2014143617.tif 000007
【図６】
2014143617.tif 000008
【図７】
2014143617.tif 000009
【図８】
2014143617.tif 000010
【図９】
2014143617.tif 000011
【図１０】
2014143617.tif 000012
【図１１】
2014143617.tif 000013
【図１２】
2014143617.tif 000014
【図１３】
2014143617.tif 000015
【図１４】
2014143617.tif 000016
【図１５】
2014143617.tif 000017
【図１６】
2014143617.tif 000018
【図１７】
2014143617.tif 000019
【図１８】
2014143617.tif 000020