(57)【特許請求の範囲】
【請求項１】
１つ以上の物理ネットワークにより接続された複数のホストマシンを備え、前記複数のホストマシン上で動作する複数の通信主体が仮想ネットワークにより相互接続された仮想ネットワークシステムにおいて、
前記１つ以上の物理ネットワークの１つに接続されたアクセス制御リスト管理装置と、
前記複数のホストマシン上でそれぞれ動作する複数の分散仮想スイッチとを具備し、
前記アクセス制御リスト管理装置は、
前記複数の通信主体の各々について、対応する通信主体を通信元とし、前記複数の通信主体のうちの当該対応する通信主体からの通信が許可される全ての通信主体または外部ネットワークを通信先として保持する当該通信を制御するための全体アクセス制御リストを記憶するアクセス制御リスト記憶手段と、
前記複数のホストマシンの各々について、対応するホストマシン上で動作する通信主体を通信元とするリスト部分を、当該通信元から通信先への通信を制御するための部分アクセス制御リストとして前記全体アクセス制御リストから抽出するアクセス制御リスト再構成手段と、
前記抽出された部分アクセス制御リストを、前記複数の分散仮想スイッチのうち対応するホストマシン上で動作する分散仮想スイッチに配布する第１の通信手段とを具備し、
前記複数の分散仮想スイッチはそれぞれ、
自身に配布された部分アクセス制御リストを記憶する部分アクセス制御リスト記憶手段と、
前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストに基づいて、自身が動作するホストマシン上で動作する通信主体が通信元となって通信先に通信を行う場合の当該通信を制御する第２の通信手段とを具備する
仮想ネットワークシステム。
【請求項２】
前記複数の分散仮想スイッチの各々は、自身が動作するホストマシン上に、または自身が動作するホストマシン上から、通信主体が移動した場合、当該通信主体の移動を通知すると共に、当該通信主体の移動に伴う新たな部分アクセス制御リストの配布を要求するための第１の部分アクセス制御リスト発行要求を、対応する第２の通信手段により前記アクセス制御リスト管理装置に送信させ、前記第１の部分アクセス制御リスト発行要求に対する応答として前記アクセス制御リスト管理装置から新たな部分アクセス制御リストが配布された場合、前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストを前記配布された新たな部分アクセス制御リストに更新する部分アクセス制御リスト要求管理手段を更に具備し、
前記アクセス制御リスト再構成手段は、前記第１の部分アクセス制御リスト発行要求に応じて、前記通信主体の移動後において対応するホストマシン上で動作する通信主体を通信元とする通信を制御するための新たな部分アクセス制御リストを前記全体アクセス制御リストから抽出し、前記抽出された部分アクセス制御リストを、前記第１の部分アクセス制御リスト発行要求の要求元の分散仮想スイッチに前記第１の通信手段により配布させる
請求項１記載の仮想ネットワークシステム。
【請求項３】
前記部分アクセス制御リスト要求管理手段は、自身が動作するホストマシン上で動作する通信主体に関するアクセス制御のルールが変更された場合、当該通信主体に関するアクセス制御のルールの変更を通知すると共に、当該通信主体に関するアクセス制御のルールの変更に伴う新たな部分アクセス制御リストの配布を要求するための第２の部分アクセス制御リスト発行要求を対応する第２の通信手段により前記アクセス制御リスト管理装置に送信させ、
前記アクセス制御リスト再構成手段は、前記第１の部分アクセス制御リスト発行要求に応じて、前記アクセス制御リスト記憶手段に記憶されている前記全体アクセス制御リストを更新し、前記更新された全体アクセス制御リストから対応するホストマシン上で動作する通信主体を通信元とする通信を制御するための新たな部分アクセス制御リストを抽出する
請求項２記載の仮想ネットワークシステム。
【請求項４】
１つ以上の物理ネットワークにより接続された複数のホストマシンと、前記１つ以上の物理ネットワークの１つに接続され、前記複数のホストマシン上で動作する複数の通信主体の各々について、対応する通信主体を通信元とし、前記複数の通信主体のうちの当該対応する通信主体からの通信が許可される全ての通信主体または外部ネットワークを通信先として保持する当該通信を制御するための全体アクセス制御リストを記憶するアクセス制御リスト記憶手段を含むアクセス制御リスト管理装置と、前記複数のホストマシン上でそれぞれ動作する複数の分散仮想スイッチとを備え、前記複数の通信主体が仮想ネットワークにより相互接続された仮想ネットワークシステムにおける仮想通信制御方法であって、
前記アクセス制御リスト管理装置が、前記複数のホストマシンの各々について、対応するホストマシン上で動作する通信主体を通信元とするリスト部分を、当該通信元から通信先への通信を制御するための部分アクセス制御リストとして前記全体アクセス制御リストから抽出して、前記抽出された部分アクセス制御リストを、前記複数の分散仮想スイッチのうち対応するホストマシン上で動作する分散仮想スイッチに配布するステップと、
前記分散仮想スイッチに配布された部分アクセス制御リストを、当該分散仮想スイッチが自身が有する部分アクセス制御リスト記憶手段に記憶するステップと、
前記分散仮想スイッチの前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストに基づいて、前記分散仮想スイッチが動作するホストマシン上で動作する通信主体が通信元となって通信先に通信を行う場合の当該通信を、前記分散仮想スイッチが制御するステップと
を具備する仮想通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、複数の仮想マシン間の通信が仮想ネットワークを介して行われる仮想ネットワークシステム及び仮想通信制御方法に関する。
【背景技術】
【０００２】
一般的な仮想環境におけるネットワークシステム（つまり仮想ネットワークシステム）におけるアクセス制御では、複数のホストマシンのそれぞれに仮想スイッチが配置される第１の技術を適用するのが一般的である。第１の技術において、各仮想スイッチは、複数のホストマシンのそれぞれで動作する全ての仮想マシン間のアクセス制御に用いられるアクセス制御リスト（ＡＣＬ）を保持している。
【０００３】
また、複数のホストマシンのそれぞれに配置される仮想スイッチがＡＣＬを保持する代わりに、通信の集合地点のノードがＡＣＬを保持し、当該ノードがＡＣＬに基づいて仮想マシン間のアクセス制御を行う第２の技術も知られている。
【０００４】
しかし。通信の集合地点のノードがＡＣＬを保持する場合、ネットワーク利用の効率が悪くなる。一方、各仮想スイッチがＡＣＬを保持する場合、当該各仮想スイッチのアクセス制御処理の効率が悪くなる。
【０００５】
そこで、複数のホストマシンのそれぞれに分散仮想スイッチが配置される技術（以下、先行技術と称する）も知られている。先行技術において、分散仮想スイッチの群の各々は、対応するホストマシン上で動作する仮想マシンの群に関するＡＣＬ（つまり、固有のＡＣＬ）を持ち、当該ＡＣＬに基づいてアクセス制御を行う。また分散仮想スイッチの群は、互いに協調して動作することにより、全体でひとつの仮想スイッチとして機能する。
【０００６】
また、ネットワークを構成する複数のノード（エッジノード）にファイアウォール機能を分散させる、上記先行技術に相当する技術も知られている。この技術では、負荷に応じてフィルタリングルール（つまりアクセス制御ルール）の少なくとも一部が他のエッジに分配される。このように各エッジノードは、上記先行技術における分散仮想スイッチと同様に、固有のアクセス制御ルールを保持している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２４９８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した先行技術において、ホストマシン間を仮想マシンが移動する場合、この移動に関係する全ての仮想マシンについて、対応する分散仮想スイッチが保持するＡＣＬを変更する必要がある。しかし、各分散仮想スイッチが固有のＡＣＬを保持しているため、対応する分散仮想スイッチが保持するＡＣＬを変更する手順は複雑である。また、情報が重複したり、不要なアクセス制御ルールを保持する可能性もある。
【０００９】
本発明が解決しようとする課題は、分散仮想スイッチに適合するアクセス制御リストを簡単に作成して、当該分散仮想スイッチに配布することができる仮想ネットワークシステム及び仮想通信制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
実施形態によれば、１つ以上の物理ネットワークにより接続された複数のホストマシンを備え、前記複数のホストマシン上で動作する複数の通信主体が仮想ネットワークにより相互接続された仮想ネットワークシステムが提供される。この仮想ネットワークシステムは、前記１つ以上の物理ネットワークの１つに接続されたアクセス制御リスト管理装置と、前記複数のホストマシン上でそれぞれ動作する複数の分散仮想スイッチとを具備する。前記アクセス制御リスト管理装置は、アクセス制御リスト記憶手段と、第１の通信手段とを具備する。前記アクセス制御リスト記憶手段は、前記複数の通信主体の各々について、対応する通信主体と前記複数の通信主体のうちの他の通信主体または外部ネットワークとの間の通信を制御するための全体アクセス制御リストを記憶する。前記アクセス制御リスト再構成手段は、前記複数のホストマシンの各々について、対応するホストマシン上で動作する通信主体に関係する通信を制御するための部分アクセス制御リストを前記全体アクセス制御リストから抽出する。前記第１の通信手段は、前記抽出された部分アクセス制御リストを、前記複数の分散仮想スイッチのうち対応するホストマシン上で動作する分散仮想スイッチに配布する。前記複数の分散仮想スイッチはそれぞれ、部分アクセス制御リスト記憶手段と、第２の通信手段とを具備する。前記部分アクセス制御リスト記憶手段は、自身に配布された部分アクセス制御リストを記憶する。前記第２の通信手段は、前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストに基づいて、自身が動作するホストマシン上で動作する通信主体の通信を制御する。
【図面の簡単な説明】
【００１１】
【図１】実施形態に係る仮想ネットワークシステムの構成を示すブロック図。
【図２】同実施形態におけるアクセス制御リスト管理装置の構成を示すブロック図。
【図３】同実施形態における分散仮想スイッチの構成を示すブロック図。
【図４】同実施形態におけるアクセス制御リスト中の仮想マシンリストの例を示す図。
【図５】同実施形態における通信制御リスト中のホスト管理リストの例を示す図。
【図６】同実施形態における全体アクセス制御リスト中の通信許可リストの例を示す図。
【図７】同実施形態における全体アクセス制御リスト中の仮想マシン構成情報の例を示す図。
【図８】同実施形態における仮想マシン構成変更通知の第１の例を示す図。
【図９】同実施形態において仮想マシン構成変更通知が送られた仮想スイッチの動作を説明するためのフローチャート。
【図１０】同実施形態においてアクセス制御リスト発行要求が送られたアクセス制御リスト管理装置の動作を説明するためのフローチャート。
【図１１】同実施形態において、アクセス制御リスト発行要求に応じてアクセス制御リスト管理装置によって作成される部分アクセス制御リストの例を示す図。
【図１２】同実施形態における仮想マシン構成変更通知の第２の例を示す図。
【図１３】同実施形態における仮想分散スイッチによるアクセス制御を説明するためのフローチャート。
【発明を実施するための形態】
【００１２】
以下、実施の形態につき図面を参照して説明する。  
図１は一つの実施形態に係る仮想ネットワークシステムの構成を示すブロック図である。
【００１３】
図１に示す仮想ネットワークシステムは。複数のホストマシン、例えば４台のホストマシンＨ１（＃１），Ｈ２（＃２），Ｈ３（＃３）及びＨ４（＃４）と、アクセス制御リスト管理装置（以下、ＡＣＬ管理装置と称する）Ｍとを備えている。図１の例では、ホストマシンＨ１及びＨ２は、物理ネットワークＰＮ１に接続されている。ホストマシンＨ３及びＨ４と、ＡＣＬ管理装置Ｍとは、物理ネットワークＰＮ２に接続されている。本実施形態において物理ネットワークＰＮ１及びＰＮ２はＬＡＮであり、ルータＲによって相互接続されている。
【００１４】
ホストマシンＨ１，Ｈ２，Ｈ３及びＨ４は、それぞれ、ＣＰＵ、メモリ、入出力デバイス等の物理リソースを有する物理マシンである。ホストマシンＨ１，Ｈ２，Ｈ３及びＨ４は、それぞれ、仮想マシンモニタ（以下、ＶＭＭと称する）１-1，１-2，１-3及び１-4を備えている。ＶＭＭ１-1，１-2，１-3及び１-4は、仮想マシンマネージャとも呼ばれ、それぞれ、対応するホストマシンＨ１，Ｈ２，Ｈ３及びＨ４の物理リソースを利用して仮想環境を提供する。
【００１５】
ＶＭＭ１-1上では、例えば３台の仮想マシン（以下、ＶＭと称する）１０（＃１０），１１（＃１１）及び１２（＃１２）と、分散仮想スイッチ２-1（＃１）と、構成管理部３-1とが動作し、ＶＭＭ１-2上では、例えば３台のＶＭ２０（＃２０），２１（＃２１）及び２２（＃２２）と、分散仮想スイッチ２-2（＃２）と、構成管理部３-2とが動作する。ＶＭＭ１-3上では、例えば３台のＶＭ３０（＃３０），３１（＃３１）及び３２（＃３２）と、分散仮想スイッチ２-3（＃３）と、構成管理部３-3とが動作し、ＶＭＭ１-4上では、例えば３台のＶＭ４０（＃４０），４１（＃４１）及び４２（＃４２）と、分散仮想スイッチ２-4（＃４）と、構成管理部３-4とが動作する。構成管理部３-1，３-2，３-3及び３-4は、それぞれ、自身が動作するＶＭＭ１-1，１-2，１-3及び１-4上でのＶＭの構成を管理する。
【００１６】
ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２の各々では、ゲストＯＳと呼ばれるＯＳと、種々のアプリケーション（アプリケーションプログラム）とが動作する。ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２は、ホストマシンＨ１〜Ｈ４の間で移動可能である。
【００１７】
ＶＭ１０〜１２は、分散仮想スイッチ２-1によって相互に接続されると共に、外部ネットワークである物理ネットワークＰＮ１と接続されている。ＶＭ２０〜２２は、分散仮想スイッチ２-2によって相互に接続されると共に物理ネットワークＰＮ１と接続されている。ＶＭ３０〜３２は、分散仮想スイッチ２-3によって相互に接続されると共に物理ネットワークＰＮ２と接続されており、ＶＭ４０〜４２は、分散仮想スイッチ２-4によって相互に接続されると共に物理ネットワークＰＮ２と接続されている。
【００１８】
分散仮想スイッチ２-1，２-2，２-3及び２-4の各々は、対応する分散仮想スイッチに接続されたＶＭ（つまり配下のＶＭ）の間と、配下のＶＭと他のＶＭ（更には外部ネットワーク）との間の、アクセス（ＶＭ間通信）及び接続の切り替え（スイッチング）を制御する。
【００１９】
ＶＭ間通信の具体的な実現方法としては、各ＶＭに、対応するホストマシンが接続される物理ＬＡＮのＩＰ（Internet Protocol）アドレスを割り当て、単にＴＣＰ（Transmission Control Protocol）／ＩＰで通信する方法（前者の方法）が適用可能である。また、分散仮想スイッチ間は何らかのカプセル化を行って、外部ネットワークとは全く別個のネットワーク（仮想ネットワーク）を構成し、外部と通信する際は分散仮想スイッチが変換する方法（後者の方法）も適用可能である。ここでは、後者の方法が適用されるものとする。より具体的に述べるならば、分散仮想スイッチ２-1，２-2，２-3及び２-4の配下のＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２は、ＴＣＰ／ＩＰプロトコルを適用する仮想的に同一のネットワーク（つまり仮想ネットワーク）に、プライベートなアドレス体系「１９２．１６８．１．＊／２４」で接続されているものとする。いずれにせよ、図１に示す仮想ネットワークシステムでは、ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２の間の通信は可能であり、また、ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２と外部のマシン（例えばＡＣＬ管理装置Ｍなど）との通信も可能である。
【００２０】
図２は、本実施形態におけるＡＣＬ管理装置Ｍの構成を示すブロック図である。  
ＡＣＬ管理装置Ｍは、アクセス制御リスト記憶部（以下、ＡＣＬ記憶部と称する）２０１と、通信制御リスト記憶部（以下、ＣＣＬ記憶部と称する）２０２と、通信部２０３と、ＡＣＬ再構成部２０４とを備えている。
【００２１】
ＡＣＬ記憶部２０１は、図１に示す仮想ネットワークシステム内の全てのＶＭ、つまりＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２のためのＡＣＬ（以下、全体ＡＣＬと称する）を記憶する。全体ＡＣＬは、ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２の各々について、対応するＶＭとＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２のうちの他のＶＭまたは外部ネットワークとの間の通信（アクセス）を制御するのに用いられるアクセス制御ルールの一覧である。全体ＡＣＬは、後述する通信許可リスト６０（図６参照）及びＶＭ構成情報７０（図７参照）を含む。
【００２２】
ＣＣＬ記憶部２０２は、分散仮想スイッチ２-1〜２-4による接続の切り替え制御に用いられる、ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２のためのＣＣＬ（通信制御リスト）を記憶する。ＣＣＬは、後述するＶＭリスト４０（図４参照）及びホスト管理リスト５０（図５参照）を含む。
【００２３】
通信部２０３は、少なくとも、ＶＭＭ１-i（ｉ＝１，２，３，４）上の分散仮想スイッチ２-iと通信する。通信部２０３は、ＶＭＭ１-i（ＶＭＭ１-iが動作するホストマシンＨｉ）上でのＶＭ構成の変更（例えば分散仮想スイッチ２-iに接続されるＶＭの変更）に伴って分散仮想スイッチ２-iから送信されるＡＣＬ発行要求を受信する。通信部２０３は、受信したＡＣＬ発行要求をＡＣＬ再構成部２０４に渡す。ＡＣＬ発行要求は、例えば分散仮想スイッチ２-iに接続されるＶＭの変更の場合、ＶＭ構成の変更が反映されたＶＭリストを含む。通信部２０３は、ＡＣＬ発行要求に応じてＡＣＬ再構成部２０４によって生成される部分ＡＣＬを、ＡＣＬ発行要求の要求元に返す。
【００２４】
ＡＣＬ再構成部２０４は、例えば図１の仮想ネットワークシステムの起動時に、各ホストマシンＨｉについて、当該ホストマシンＨｉ上で動作するＶＭに関係する通信（アクセス）を制御するための部分ＡＣＬをＡＣＬ記憶部２０１に記憶されている全体ＡＣＬから抽出する。ＡＣＬ再構成部２０４は、ホストマシンＨｉのための抽出した部分ＡＣＬを、当該ホストマシンＨｉに通信部２０３により配布させる。
【００２５】
ＡＣＬ再構成部２０４はまた、通信部２０３から渡されたＡＣＬ発行要求が、ＶＭのＩＰアドレスの変更、或いはアクセス制御ルールの変更に伴うＡＣＬ発行要求の場合、当該変更が反映されるようにＡＣＬ記憶部２０１に記憶されている全体ＡＣＬを更新する。ＡＣＬ再構成部２０４は更に、全体ＡＣＬを更新した際に、要求元の分散仮想スイッチ２-iに適合する部分ＡＣＬを作成（再構成）して、当該再構成された部分ＡＣＬを通信部２０３により要求元の分散仮想スイッチ２-iに返す。
【００２６】
図３は、本実施形態における分散仮想スイッチ２-i（ｉ＝１，２，３，４）の構成を示すブロック図である。  
分散仮想スイッチ２-iは、部分ＡＣＬ記憶部３０１と、ＣＣＬ記憶部３０２と、通信部３０３と、部分ＡＣＬ要求管理部３０４とを備えている。
【００２７】
部分ＡＣＬ記憶部３０１は、分散仮想スイッチ２-iの配下のＶＭのための部分ＡＣＬを記憶する。ＣＣＬ記憶部３０２は、図２に示すＣＣＬ記憶部２０２と同様に、ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２のためのＣＣＬを記憶する。
【００２８】
通信部３０３は、構成管理部３-iからＶＭ構成の変更の通知（以下、ＶＭ構成変更通知と称する）を受信して部分ＡＣＬ要求管理部３０４に渡す。通信部３０３は、ＶＭ構成変更通知に応じて部分ＡＣＬ要求管理部３０４から返されるＡＣＬ発行要求をＡＣＬ管理装置Ｍに送信する。通信部３０３は、ＡＣＬ発行要求に応じてＡＣＬ管理装置Ｍから返される部分ＡＣＬを受信して部分ＡＣＬ記憶部３０１に格納する。通信部３０３は更に、ＶＭ間の通信、ＶＭと外部ネットワーク（に接続されるノード）との間の通信を、部分ＡＣＬ記憶部３０１に記憶されている部分ＡＣＬ及びＣＣＬ記憶部２０２に記憶されているＣＣＬに基づいて実行する。
【００２９】
部分ＡＣＬ要求管理部３０４は、構成管理部３-iからのＶＭ構成変更通知に応じて、ＶＭ構成の変更が反映された新ＶＭリストを作成する。部分ＡＣＬ要求管理部３０４は、新ＶＭリストを含むＡＣＬ発行要求を通信部３０３によりＡＣＬ管理装置Ｍに送信させる。部分ＡＣＬ要求管理部３０４は、ＡＣＬ発行要求に応じてＡＣＬ管理装置Ｍから返される部分ＡＣＬを通信部３０３から受け取って、部分ＡＣＬ記憶部３０１に記憶する。
【００３０】
図４は、ＣＣＬ記憶部２０２及び３０２に記憶されているＣＣＬ中のＶＭリスト４０の例を示す。  
図４に示すＶＭリスト４０は、図１に示す仮想ネットワークシステム内の全てのＶＭ、つまりＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２の一覧を、当該ＶＭ１０〜１２，２０〜２２，３０〜３２及び４０〜４２がそれぞれ接続されている分散仮想スイッチ２-1，２-2，２-3及び２-4のＩＤ（分散仮想スイッチＩＤ）と対応付けて保持する。
【００３１】
図５は、ＣＣＬ記憶部２０２及び３０２に記憶されているＣＣＬ中のホスト管理リスト５０の例を示す。  
図５に示すホスト管理リスト５０は、図１に示す仮想ネットワークシステム内の全てのホストマシン、つまりホストマシンＨ１〜Ｈ４の一覧を、当該ホストマシンＨ１〜Ｈ４上で動作する分散仮想スイッチ２-1〜２-4の分散仮想スイッチＩＤと、当該ホストマシンＨ１〜Ｈ４のＩＰアドレス（物理ＩＰアドレス）と対応付けて保持する。
【００３２】
図６は、ＡＣＬ記憶部２０１に記憶されている全体ＡＣＬ中の通信許可リスト６０の例を示す。  
図６に示す通信許可リスト６０は、図１に示す仮想ネットワークシステム内の全てのＶＭについて当該仮想ネットワークシステム内の他のＶＭまたは外部ネットワークとの通信が許可されているかを表すマトリクス形式のリストである。このマトリクス形式のリストの各行のＶＭは通信元（アクセス元）を表し、各列のＶＭ（または外部ネットワーク）は通信先（アクセス先）を表す。また、図６における記号○は、当該記号○が付されている行のＶＭから、当該記号○が付されている列のＶＭまたは外部ネットワークへのアクセスが許可されていることを表す。また、通信許可リスト６０は、外部ネットワークとＶＭとの間の通信が許可されているかをも表している。
【００３３】
このように、図６に示す通信許可リスト６０の例では、ＶＭ間（またはＶＭと外部ネットワークとの間）の通信が許可されているかを示している。つまり通信許可リスト６０は、ＶＭ間（またはＶＭと外部ネットワークとの間）のアクセスの制御に用いられる。しかし、ＶＭのＴＣＰ／ＵＤＰポート毎に、ポート間の通信が許可されているかを示すことにより、ポートを限定したアクセス制御を行うことも可能である。
【００３４】
図７は、ＡＣＬ記憶部２０１に記憶されている全体ＡＣＬ中のＶＭ構成情報７０の例を示す。  
図７に示すＶＭ構成情報７０は、図１に示す仮想ネットワークシステム内のＶＭの一覧を、当該ＶＭそれぞれのＩＰアドレスと対応付けて保持する、ＶＭアドレステーブルである。このようにＶＭ構成情報７０が、ＶＭそれぞれのＩＰアドレスを保持するのは、本実施形態において分散仮想スイッチ２-1，２-2，２-3及び２-4によって構成される仮想ネットワークが、ＴＣＰ／ＩＰプロトコルを適用していることを前提としているためである。もし、上記仮想ネットワークがＴＣＰ／ＩＰプロトコル以外の別のプロトコルで実装されるならば、ＩＰアドレスに代えて、ＩＰアドレスに相当する、当該別のプロトコルで適用される値を用いればよい。
【００３５】
次に本実施形態の動作を、ＶＭ３２がホストマシンＨ３のＶＭＭ１-3からホストマシンＨ１のＶＭＭ１-1に移動した場合を例に説明する。  
今、ホストマシンＨ３のＶＭＭ１-3からホストマシンＨ１のＶＭＭ１-1へのＶＭ３２の移動（つまり転入）が発生したものとする。このＶＭ３２の移動は、ホストマシンＨ１側にとって転入であり、ホストマシンＨ３側にとって転出である。
【００３６】
ホストマシンＨ１のＶＭＭ１-1へのＶＭの移動（転入）が発生すると、当該ＶＭＭ１-1上で動作する構成管理部３-1は、その旨を示すＶＭ構成変更通知を分散仮想スイッチ２-1に送出する。ＶＭＭ１-1へのＶＭ３２の移動が発生した本実施形態では、図８に示すＶＭ構成変更通知８０が構成管理部３-1から送出される。ＶＭ構成変更通知８０は、構成管理部３-1からの当該ＶＭ構成変更通知８０の送出先の分散仮想スイッチ（つまり分散仮想スイッチ２-1）のＩＤと、移動したＶＭ３２（つまり構成変更の対象となったＶＭ３２）のＩＤと、構成変更が転入によるものか或いは転出によるものかを示す変更内容とを含む。ＶＭ構成変更通知８０の例では、変更内容は「転入」である。
【００３７】
したがって図８に示すＶＭ構成変更通知８０は、当該ＶＭ構成変更通知８０の送出先の分散仮想スイッチ２-1が動作するホストマシンＨ１のＶＭＭ１-1上に、ＶＭ３２が移動してきたことを示す。ＶＭＭ１-1上に移動したＶＭ３２は、新たに分散仮想スイッチ２-1に接続されて、当該分散仮想スイッチ２-1の配下となる。つまり、図８に示すＶＭ構成変更通知８０の送出先の分散仮想スイッチのＩＤは、構成変更の対象となったＶＭ３２が新たに接続される分散仮想スイッチのＩＤをも示す。
【００３８】
ここで、図８に示すＶＭ構成変更通知８０が構成管理部３-1から仮想スイッチ２-1に送出された場合の当該仮想スイッチ２-1の動作について、図９の示すフローチャートを参照して説明する。  
まず分散仮想スイッチ２-1の通信部３０３は、構成管理部３-1からのＶＭ構成変更通知８０を受信する（ステップＳ１）。すると通信部３０３は、受信したＶＭ構成変更通知８０を分散仮想スイッチ２-1の部分ＡＣＬ要求管理部３０４に渡す。
【００３９】
部分ＡＣＬ要求管理部３０４は、通信部３０３から渡されたＶＭ構成変更通知８０と、分散仮想スイッチ２-1のＣＣＬ記憶部３に記憶されているＣＣＬ中のＶＭリスト４０とに基づいて、ＶＭ構成変更通知８０の示すＶＭ構成の変更が反映された新ＶＭリストを作成する（ステップＳ２）。新ＶＭリストは、ＶＭリスト４０（図４参照）におけるＶＭ３２と対応付けられる分散仮想スイッチのＩＤが、分散仮想スイッチ２-3のＩＤから、分散仮想スイッチ２-1のＩＤに変更されたものである。
【００４０】
部分ＡＣＬ要求管理部３０４は、ＶＭ３２の移動に伴う新たな部分ＡＣＬの発行（配布）を要求するためのＡＣＬ発行要求（第１のＡＣＬ発行要求）を通信部３０３に渡す。すると通信部３０３は、部分ＡＣＬ要求管理部３０４から渡されたＡＣＬ発行要求をＡＣＬ管理装置Ｍに送信する（ステップＳ３）。
【００４１】
ＡＣＬ管理装置Ｍに送信されるＡＣＬ発行要求は、部分ＡＣＬ要求管理部３０４によって作成された新ＶＭリストを含む。この新ＶＭリストは、ＶＭ３２の移動（流入）に伴うＶＭ構成の変更を反映したものである。したがってＡＣＬ発行要求は、部分ＡＣＬの発行を要求するだけでなく、ＶＭ３２の移動を通知する。なお、新ＶＭリストが、分散仮想スイッチ２-1に接続されるＶＭ３２を含むＶＭのリストのみであってもよい。つまり新ＶＭリストに、分散仮想スイッチ２-1以外の分散仮想スイッチ２-2，２-3及び２-4に接続されるＶＭのリストが含まれていなくても構わない。
【００４２】
次に、分散仮想スイッチ２-1の通信部３０３からＡＣＬ管理装置ＭにＡＣＬ発行要求が送信された場合の当該ＡＣＬ管理装置Ｍの動作について、図１０の示すフローチャートを参照して説明する。  
まずＡＣＬ管理装置Ｍの通信部２０３は、分散仮想スイッチ２-1の通信部３０３からのＡＣＬ発行要求を受信する（ステップＳ１１）。すると通信部２０３は、受信したＡＣＬ発行要求をＡＣＬ管理装置ＭのＡＣＬ再構成部２０４に渡す。
【００４３】
ＡＣＬ再構成部２０４は、通信部２０３から渡されたＡＣＬ発行要求から当該ＡＣＬ発行要求に含まれているＶＭリスト（新ＶＭリスト）を取り出す（ステップＳ１２）。ＡＣＬ再構成部２０４はまた、ＡＣＬ記憶部２０１に記憶されている全体ＡＣＬを取り出す（ステップＳ１３）。
【００４４】
ＡＣＬ再構成部２０４は、取り出した全体ＡＣＬに含まれている通信許可リスト６０（図６参照）及びＶＭ構成情報７０（図７参照）並びに取り出した新ＶＭリストに基づいて、ＡＣＬ発行要求の送信元（つまりＡＣＬ発行の要求元）の分散仮想スイッチ２-1におけるＶＭ構成の変更（ＶＭ３２の転入）に適合する部分ＡＣＬを作成（再構成）する（ステップＳ１４）。より詳細には、ＡＣＬ再構成部２０４は、部分ＡＣＬを次のように作成する。
【００４５】
まずＡＣＬ再構成部２０４は、新ＶＭリストに保持されているＶＭの群のうち、分散仮想スイッチ２-1のＩＤと対応付けられているＶＭの群、つまりＶＭ１０，ＶＭ１１，ＶＭ１２及びＶＭ３２を抽出する。なお、新ＶＭリストが、分散仮想スイッチ２-1に接続されるＶＭ３２を含むＶＭのリストのみであるならば、この抽出は不要である。
【００４６】
次にＡＣＬ再構成部２０４は通信許可リスト６０を参照し、抽出したＶＭ１０，ＶＭ１１，ＶＭ１２及びＶＭ３２に対応する行において、記号○が付されている列のＶＭ（または外部ネットワーク）を抽出する。つまりＡＣＬ再構成部２０４は、分散仮想スイッチ２-1に接続されるＶＭ１０，ＶＭ１１，ＶＭ１２及びＶＭ３２のそれぞれについて、当該ＶＭ１０，ＶＭ１１，ＶＭ１２及びＶＭ３２からの通信（アクセス）が許可されているＶＭ（または外部ネットワーク）を抽出する。図６に示す通信許可リスト６０の例では、ＶＭ１０からの許可された通信先としてＶＭ１１，ＶＭ２１，ＶＭ３２及び外部ネットワークが、ＶＭ１１からの許可された通信先としてＶＭ２２，ＶＭ３１及びＶＭ４１が、それぞれ抽出される。同様に、ＶＭ１２からの許可された通信先としてＶＭ１０，ＶＭ４１及び外部ネットワークが、ＶＭ３２からの許可された通信先としてＶＭ１１が、それぞれ抽出される。
【００４７】
またＡＣＬ再構成部２０４は、外部ネットワークに対応する行において、記号○が付されている列のＶＭの中から、抽出したＶＭ１０，ＶＭ１１，ＶＭ１２及びＶＭ３２のいずれかに一致するＶＭを抽出する。つまりＡＣＬ再構成部２０４は、抽出したＶＭ１０，ＶＭ１１，ＶＭ１２及びＶＭ３２の中から、外部ネットワークからのアクセスが許可されているＶＭを抽出する。図６に示す通信許可リスト６０の例では、ＶＭ１０，ＶＭ１１，ＶＭ１２及びＶＭ３２のうち、外部ネットワークからの許可された通信先としてＶＭ１１及びＶＭ１２が抽出される。
【００４８】
次にＡＣＬ再構成部２０４は、抽出した通信元と通信先との対応を示す、ＡＣＬ発行の要求元の分散仮想スイッチ２-1のための仮の部分ＡＣＬを作成する。そしてＡＣＬ再構成部２０４は、先に取り出した全体ＡＣＬ中のＶＭ構成情報７０（図７参照）に基づいて、仮の部分ＡＣＬ中の通信元ＶＭと通信先ＶＭを、対応するＩＰアドレスに置き換えることにより、分散仮想スイッチ２-1に送信すべき、図１１に示す部分ＡＣＬ１１０を作成する。
【００４９】
ＡＣＬ再構成部２０４は、作成した部分ＡＣＬ１１０を通信部２０３に渡す。すると通信部２０３は、ＡＣＬ再構成部２０４から渡された部分ＡＣＬ１１０を、ＡＣＬ発行の要求元の分散仮想スイッチ２-1に送信する（ステップＳ１５）。この部分ＡＣＬ１１０は、分散仮想スイッチ２-1の通信部３０３で受信される。通信部３０３は、受信した部分ＡＣＬ１１０で、部分ＡＣＬ記憶部３０１に現在記憶されている部分ＡＣＬを更新する。なお、部分ＡＣＬの更新が、部分ＡＣＬ要求管理部３０４によって行われても構わない。
【００５０】
上述のように、ホストマシンＨ３のＶＭＭ１-3からホストマシンＨ１のＶＭＭ１-1へのＶＭ３２の移動に応じて、ＶＭＭ１-1上で動作する構成管理部３-1から分散仮想スイッチ２-1に図８に示すＶＭ構成変更通知８０が送出された場合の動作について説明した。
【００５１】
さて、上述のＶＭ３２の移動時には、当該ＶＭ３２の移動元のホストマシンＨ３のＶＭＭ１-3上で動作する構成管理部３-3から分散仮想スイッチ２-3に、図８に示したＶＭ構成変更通知８０と同様の構造の、図１２に示すＶＭ構成変更通知１２０が送出される。ＶＭ構成変更通知１２０は、分散仮想スイッチ２-3のＩＤと、移動したＶＭ３２のＩＤと、「転出」を示す変更内容とを含む。
【００５２】
構成管理部３-3から分散仮想スイッチ２-3にＶＭ構成変更通知１２０が送出された場合、前述した構成管理部３-1から分散仮想スイッチ２-1にＶＭ構成変更通知８０が送出された場合と同様の動作が、分散仮想スイッチ２-3及びＡＣＬ管理装置Ｍで行われる。つまり、ＶＭ構成変更通知１２０の示すＶＭ構成の変更が反映された新ＶＭリストが、分散仮想スイッチ２-3の部分ＡＣＬ要求管理部３０４で取得され、当該新ＶＭリストが含むＡＣＬ発行要求がＡＣＬ管理装置Ｍに送信される。この新ＶＭリストは、前述のＶＭ構成変更通知８０の示すＶＭ構成の変更が反映された新リストと同一内容となる。
【００５３】
ＡＣＬ管理装置ＭのＡＣＬ再構成部２０４は、分散仮想スイッチ２-3から送信されたＡＣＬ発行要求を受け取ると、当該分散仮想スイッチ２-3におけるＶＭ構成の変更（ＶＭ３２の転出）に適合する部分ＡＣＬを作成して、当該作成した部分ＡＣＬを分散仮想スイッチ２-3に送信する。これにより、分散仮想スイッチ２-3の部分ＡＣＬ記憶部３０１に記憶されている部分ＡＣＬが、ＶＭ構成の変更（ＶＭ３２の転出）に適合する新たな部分ＡＣＬに更新される。
【００５４】
このように本実施形態においいては、図１に示される仮想ネットワークシステム全体のＡＣＬ（つまり全体ＡＣＬ）がＡＣＬ管理装置Ｍで一元的に管理管理される。そして、ＶＭ構成が変更になる都度、ＶＭ構成が変更されたホストマシンＨｉで動作する分散仮想スイッチ２-iには、当該分散仮想スイッチ２-iに必要最低限のアクセス制御ルールとしての部分ＡＣＬ（つまり分散仮想スイッチ２-iに適合する部分ＡＣＬ）がＡＣＬ管理装置Ｍで作成される。この分散仮想スイッチ２-iに適合する部分ＡＣＬは、ＶＭ構成が変更されたホストマシンＨｉのＶＭＭ１-i上に存在するＶＭ（つまり、分散仮想スイッチ２-iに接続される変更後のＶＭ）の情報に基づいて作成される。
【００５５】
よって本実施形態によれば、各分散仮想スイッチ２-iは最小限のＡＣＬ（つまり部分ＡＣＬ）しか保持する必要がなく、したがって各分散仮想スイッチ２-iにおける処理の負荷が軽減される。この効果は、同一ＶＭＭ上で多数のＶＭが動作する場合、或いは仮想ネットワークシステム内に多数のホストマシンが存在する場合により顕著となる。
【００５６】
以上、本実施形態の動作として、分散仮想スイッチ２-1及び２-3におけるＶＭ構成の変更が、ＶＭ（ＶＭ３２）のそれぞれ転入及び転出である場合を例に説明した。ＶＭ構成の変更は、ＶＭの移動に限らない。例えば、ＶＭ構成の変更が、ＶＭのＩＰアドレスの変更、或いはアクセス制御ルール（アクセス制御のポリシー）の変更であっても構わない。
【００５７】
もし、ＶＭ構成の変更がＶＭのＩＰアドレスの変更の場合、ＶＭ構成変更通知の分散仮想スイッチＩＤ、対象ＶＭＭ及び変更内容を、それぞれ、ＩＰアドレスが変更されるＶＭを接続している分散仮想スイッチのＩＤ、ＩＰアドレスが変更されるＶＭのＩＤ及び「ＩＰアドレス変更」とすればよい。また、このＶＭ構成変更通知に、変更後のＩＰアドレス（または変更前と変更後のＩＰアドレスの対）を付加すればよい。更にＡＣＬ発行要求に、ＶＭリストに代えて、ＩＰアドレスが変更されるＶＭのＩＤと、「ＩＰアドレス変更」と、変更後のＩＰアドレス（または変更前と変更後のＩＰアドレスの対）とを含めればよい。
【００５８】
この場合、ＡＣＬ管理装置ＭのＡＣＬ再構成部２０４は、ＡＣＬ発行要求（第３のＡＣＬ発行要求）に応じて、ＡＣＬ記憶部２０１に記憶されている全体ＡＣＬ中のＶＭ構成情報７０を更新する。ＡＣＬ再構成部２０４はまた、全体ＡＣＬ中の通信許可リスト６０と更新されたＶＭ構成情報７０とに基づいて、ＩＰアドレスが変更されたＶＭを通信元または通信先として接続する分散仮想スイッチ毎に、当該全体ＡＣＬから部分ＡＣＬを抽出（つまり部分ＡＣＬを作成）する。作成された部分ＡＣＬは、対応する分散仮想スイッチに送信される。
【００５９】
また、アクセス制御ルールの変更の場合も同様である。例えばＶＭ１０からの通信が許可されるＶＭが変更される場合、その旨を通知するためのＶＭ構成変更通知に応じて、分散仮想スイッチ２-1からＡＣＬ管理装置ＭにＡＣＬ発行要求（第２のＡＣＬ発行要求）が送信される。ＡＣＬ管理装置ＭのＡＣＬ再構成部２０４は、このにＡＣＬ発行要求、つまりＶＭ１０からの通信が許可されるＶＭの変更に対応するＡＣＬ発行要求に基づき、ＡＣＬ記憶部２０１に記憶されている全体ＡＣＬ中の通信許可リスト６０を更新する。ＡＣＬ再構成部２０４は、更新された通信許可リスト６０に基づき、ＶＭ１０を接続している分散仮想スイッチ２-1に適合する部分ＡＣＬを作成する。作成された部分ＡＣＬは、分散仮想スイッチ２-1に送信される。
【００６０】
次に、分散仮想スイッチ２-iにおけるアクセス制御について、当該分散仮想スイッチ２-iに接続されるＶＭ（または外部ネットワーク）から通信パケットが送信された場合を例に、図１３のフローチャートを参照して説明する。
【００６１】
分散仮想スイッチ２-iの通信部３０３は、分散仮想スイッチ２-iに接続されるＶＭ（または外部ネットワーク）からの通信パケットを受信する（ステップＳ２１）。次に通信部３０３は、部分ＡＣＬ記憶部３０１から部分ＡＣＬを取得する（ステップＳ２２）。そして通信部３０３は、受信した通信パケットの送信元ＩＰアドレスと宛先ＩＰアドレスとの対が、取得した部分ＡＣＬに保持されているかによって、受信した通信パケットの転送（通信）が許可されているかを判定する（ステップＳ２３）。
【００６２】
もし、転送が許可されているならば（ステップＳ２３のＹｅｓ）、通信部３０３は、ＣＣＬ記憶部２０２に記憶されているＣＣＬに基づいて、受信した通信パケットの転送を制御する（ステップＳ２４）。これに対し、転送が許可されていないならば（ステップＳ２３のＮｏ）、通信部３０３は受信した通信パケットを廃棄する（ステップＳ２５）。
【００６３】
上述の動作説明から明らかなように、本実施形態においては、各分散仮想スイッチ２-iにおける通信（アクセス）の制御が、当該分散仮想スイッチ２-i内の部分ＡＣＬ記憶部３０１に記憶されている部分ＡＣＬに基づいて、当該分散仮想スイッチ２-iに接続されているＶＭから他のＶＭ（または外部ネットワーク）への通信について行われる。このように本実施形態では、分散仮想スイッチ２-iの配下のＶＭから他のＶＭ（または外部ネットワーク）への通信を許可するか否かが制御される。つまり通信を許可するか否かが、送信側で制御される。このような送信側でのアクセス制御の適用により、従来から知られているフィルタリングのためのアクセス制御ルール（フィルタリングルール）に基づく受信側での制御、つまり分散仮想スイッチ２-iの配下にないＶＭ（または外部ネットワーク）のような多数のＶＭ（または外部ネットワーク）から当該分散仮想スイッチ２-iの配下にあるＶＭへの通信を、受信側でフィルタリングするかの制御と比較して、ＡＣＬ（アクセス制御ルール）を簡略化することができる。
【００６４】
上記実施形態では、ＣＣＬ中のＶＭ構成情報７０（図７参照）が、ＶＭ毎にＩＰアドレスを保持し、ＶＭ単位でアクセス制御を行うことを前提としている。つまり、ＶＭが通信の主体（送受信者）であることを前提としている。しかし、ＶＭ上で動作するアプリケーション、プロセスなどが、それぞれＩＰアドレスに相当する情報（例えば、アドレスとポート番号）を持って、通信の主体として動作するような環境におけるアクセス制御であっても構わない。
【００６５】
以上説明した少なくとも１つの実施形態によれば、分散仮想スイッチに適合するアクセス制御リストを簡単に作成して、当該分散仮想スイッチに配布することができる仮想ネットワークシステム及び仮想通信制御方法を提供することができる。
【００６６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６７】
Ｈ１〜Ｈ４…ホストマシン、ＰＮ１，ＰＮ２…物理ネットワーク、Ｍ…アクセス制御リスト管理装置（ＡＣＬ管理装置）、１-1〜１-4…仮想マシンモニタ（ＶＭＭ）、２-1〜２-4…分散仮想スイッチ、３-1〜３-4…構成管理部、１０〜１２，２０〜２２，３０〜３２，４０〜４２…仮想マシン（ＶＭ）、２０１…アクセス制御リスト記憶部（ＡＣＬ記憶部）、２０２，３０２…通信制御リスト記憶部（ＣＣＬ記憶部）、２０３…通信部（第１の通信手段）、２０４…アクセス制御リスト再構成部（ＡＣＬ再構成部）、３０１…部分アクセス制御リスト記憶部（部分ＡＣＬ記憶部）、３０３…通信部（第２の通信手段）、３０４…部分アクセス制御リスト要求管理部（部分ＡＣＬ要求管理部）。
【図１】
0005395833.tif 000002
【図２】
0005395833.tif 000003
【図３】
0005395833.tif 000004
【図４】
0005395833.tif 000005
【図５】
0005395833.tif 000006
【図６】
0005395833.tif 000007
【図７】
0005395833.tif 000008
【図８】
0005395833.tif 000009
【図９】
0005395833.tif 000010
【図１０】
0005395833.tif 000011
【図１１】
0005395833.tif 000012
【図１２】
0005395833.tif 000013
【図１３】
0005395833.tif 000014