説明

仮想ネットワークシステム及び仮想通信制御方法

【課題】分散仮想スイッチに適合するアクセス制御リストを簡単に作成して、当該分散仮想スイッチに配布できるようにする。
【解決手段】実施形態によれば、仮想ネットワークシステム内のアクセス制御リスト管理装置は、複数のホストマシン上で動作する複数の通信主体の各々について、通信を制御するための全体アクセス制御リストを記憶する。アクセス制御リスト管理装置は、複数のホストマシンの各々について、対応するホストマシン上で動作する通信主体に関係する部分アクセス制御リストを全体アクセス制御リストから抽出して、対応するホストマシン上で動作する分散仮想スイッチに配布する。複数の分散仮想スイッチはそれぞれ、自身に配布された部分アクセス制御リストを記憶し、当該部分アクセス制御リストに基づいて、自身が動作するホストマシン上で動作する通信主体の通信を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、複数の仮想マシン間の通信が仮想ネットワークを介して行われる仮想ネットワークシステム及び仮想通信制御方法に関する。
【背景技術】
【0002】
一般的な仮想環境におけるネットワークシステム(つまり仮想ネットワークシステム)におけるアクセス制御では、複数のホストマシンのそれぞれに仮想スイッチが配置される第1の技術を適用するのが一般的である。第1の技術において、各仮想スイッチは、複数のホストマシンのそれぞれで動作する全ての仮想マシン間のアクセス制御に用いられるアクセス制御リスト(ACL)を保持している。
【0003】
また、複数のホストマシンのそれぞれに配置される仮想スイッチがACLを保持する代わりに、通信の集合地点のノードがACLを保持し、当該ノードがACLに基づいて仮想マシン間のアクセス制御を行う第2の技術も知られている。
【0004】
しかし。通信の集合地点のノードがACLを保持する場合、ネットワーク利用の効率が悪くなる。一方、各仮想スイッチがACLを保持する場合、当該各仮想スイッチのアクセス制御処理の効率が悪くなる。
【0005】
そこで、複数のホストマシンのそれぞれに分散仮想スイッチが配置される技術(以下、先行技術と称する)も知られている。先行技術において、分散仮想スイッチの群の各々は、対応するホストマシン上で動作する仮想マシンの群に関するACL(つまり、固有のACL)を持ち、当該ACLに基づいてアクセス制御を行う。また分散仮想スイッチの群は、互いに協調して動作することにより、全体でひとつの仮想スイッチとして機能する。
【0006】
また、ネットワークを構成する複数のノード(エッジノード)にファイアウォール機能を分散させる、上記先行技術に相当する技術も知られている。この技術では、負荷に応じてフィルタリングルール(つまりアクセス制御ルール)の少なくとも一部が他のエッジに分配される。このように各エッジノードは、上記先行技術における分散仮想スイッチと同様に、固有のアクセス制御ルールを保持している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2001−249866号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した先行技術において、ホストマシン間を仮想マシンが移動する場合、この移動に関係する全ての仮想マシンについて、対応する分散仮想スイッチが保持するACLを変更する必要がある。しかし、各分散仮想スイッチが固有のACLを保持しているため、対応する分散仮想スイッチが保持するACLを変更する手順は複雑である。また、情報が重複したり、不要なアクセス制御ルールを保持する可能性もある。
【0009】
本発明が解決しようとする課題は、分散仮想スイッチに適合するアクセス制御リストを簡単に作成して、当該分散仮想スイッチに配布することができる仮想ネットワークシステム及び仮想通信制御方法を提供することにある。
【課題を解決するための手段】
【0010】
実施形態によれば、1つ以上の物理ネットワークにより接続された複数のホストマシンを備え、前記複数のホストマシン上で動作する複数の通信主体が仮想ネットワークにより相互接続された仮想ネットワークシステムが提供される。この仮想ネットワークシステムは、前記1つ以上の物理ネットワークの1つに接続されたアクセス制御リスト管理装置と、前記複数のホストマシン上でそれぞれ動作する複数の分散仮想スイッチとを具備する。前記アクセス制御リスト管理装置は、アクセス制御リスト記憶手段と、第1の通信手段とを具備する。前記アクセス制御リスト記憶手段は、前記複数の通信主体の各々について、対応する通信主体と前記複数の通信主体のうちの他の通信主体または外部ネットワークとの間の通信を制御するための全体アクセス制御リストを記憶する。前記アクセス制御リスト再構成手段は、前記複数のホストマシンの各々について、対応するホストマシン上で動作する通信主体に関係する通信を制御するための部分アクセス制御リストを前記全体アクセス制御リストから抽出する。前記第1の通信手段は、前記抽出された部分アクセス制御リストを、前記複数の分散仮想スイッチのうち対応するホストマシン上で動作する分散仮想スイッチに配布する。前記複数の分散仮想スイッチはそれぞれ、部分アクセス制御リスト記憶手段と、第2の通信手段とを具備する。前記部分アクセス制御リスト記憶手段は、自身に配布された部分アクセス制御リストを記憶する。前記第2の通信手段は、前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストに基づいて、自身が動作するホストマシン上で動作する通信主体の通信を制御する。
【図面の簡単な説明】
【0011】
【図1】実施形態に係る仮想ネットワークシステムの構成を示すブロック図。
【図2】同実施形態におけるアクセス制御リスト管理装置の構成を示すブロック図。
【図3】同実施形態における分散仮想スイッチの構成を示すブロック図。
【図4】同実施形態におけるアクセス制御リスト中の仮想マシンリストの例を示す図。
【図5】同実施形態における通信制御リスト中のホスト管理リストの例を示す図。
【図6】同実施形態における全体アクセス制御リスト中の通信許可リストの例を示す図。
【図7】同実施形態における全体アクセス制御リスト中の仮想マシン構成情報の例を示す図。
【図8】同実施形態における仮想マシン構成変更通知の第1の例を示す図。
【図9】同実施形態において仮想マシン構成変更通知が送られた仮想スイッチの動作を説明するためのフローチャート。
【図10】同実施形態においてアクセス制御リスト発行要求が送られたアクセス制御リスト管理装置の動作を説明するためのフローチャート。
【図11】同実施形態において、アクセス制御リスト発行要求に応じてアクセス制御リスト管理装置によって作成される部分アクセス制御リストの例を示す図。
【図12】同実施形態における仮想マシン構成変更通知の第2の例を示す図。
【図13】同実施形態における仮想分散スイッチによるアクセス制御を説明するためのフローチャート。
【発明を実施するための形態】
【0012】
以下、実施の形態につき図面を参照して説明する。
図1は一つの実施形態に係る仮想ネットワークシステムの構成を示すブロック図である。
【0013】
図1に示す仮想ネットワークシステムは。複数のホストマシン、例えば4台のホストマシンH1(#1),H2(#2),H3(#3)及びH4(#4)と、アクセス制御リスト管理装置(以下、ACL管理装置と称する)Mとを備えている。図1の例では、ホストマシンH1及びH2は、物理ネットワークPN1に接続されている。ホストマシンH3及びH4と、ACL管理装置Mとは、物理ネットワークPN2に接続されている。本実施形態において物理ネットワークPN1及びPN2はLANであり、ルータRによって相互接続されている。
【0014】
ホストマシンH1,H2,H3及びH4は、それぞれ、CPU、メモリ、入出力デバイス等の物理リソースを有する物理マシンである。ホストマシンH1,H2,H3及びH4は、それぞれ、仮想マシンモニタ(以下、VMMと称する)1-1,1-2,1-3及び1-4を備えている。VMM1-1,1-2,1-3及び1-4は、仮想マシンマネージャとも呼ばれ、それぞれ、対応するホストマシンH1,H2,H3及びH4の物理リソースを利用して仮想環境を提供する。
【0015】
VMM1-1上では、例えば3台の仮想マシン(以下、VMと称する)10(#10),11(#11)及び12(#12)と、分散仮想スイッチ2-1(#1)と、構成管理部3-1とが動作し、VMM1-2上では、例えば3台のVM20(#20),21(#21)及び22(#22)と、分散仮想スイッチ2-2(#2)と、構成管理部3-2とが動作する。VMM1-3上では、例えば3台のVM30(#30),31(#31)及び32(#32)と、分散仮想スイッチ2-3(#3)と、構成管理部3-3とが動作し、VMM1-4上では、例えば3台のVM40(#40),41(#41)及び42(#42)と、分散仮想スイッチ2-4(#4)と、構成管理部3-4とが動作する。構成管理部3-1,3-2,3-3及び3-4は、それぞれ、自身が動作するVMM1-1,1-2,1-3及び1-4上でのVMの構成を管理する。
【0016】
VM10〜12,20〜22,30〜32及び40〜42の各々では、ゲストOSと呼ばれるOSと、種々のアプリケーション(アプリケーションプログラム)とが動作する。VM10〜12,20〜22,30〜32及び40〜42は、ホストマシンH1〜H4の間で移動可能である。
【0017】
VM10〜12は、分散仮想スイッチ2-1によって相互に接続されると共に、外部ネットワークである物理ネットワークPN1と接続されている。VM20〜22は、分散仮想スイッチ2-2によって相互に接続されると共に物理ネットワークPN1と接続されている。VM30〜32は、分散仮想スイッチ2-3によって相互に接続されると共に物理ネットワークPN2と接続されており、VM40〜42は、分散仮想スイッチ2-4によって相互に接続されると共に物理ネットワークPN2と接続されている。
【0018】
分散仮想スイッチ2-1,2-2,2-3及び2-4の各々は、対応する分散仮想スイッチに接続されたVM(つまり配下のVM)の間と、配下のVMと他のVM(更には外部ネットワーク)との間の、アクセス(VM間通信)及び接続の切り替え(スイッチング)を制御する。
【0019】
VM間通信の具体的な実現方法としては、各VMに、対応するホストマシンが接続される物理LANのIP(Internet Protocol)アドレスを割り当て、単にTCP(Transmission Control Protocol)/IPで通信する方法(前者の方法)が適用可能である。また、分散仮想スイッチ間は何らかのカプセル化を行って、外部ネットワークとは全く別個のネットワーク(仮想ネットワーク)を構成し、外部と通信する際は分散仮想スイッチが変換する方法(後者の方法)も適用可能である。ここでは、後者の方法が適用されるものとする。より具体的に述べるならば、分散仮想スイッチ2-1,2-2,2-3及び2-4の配下のVM10〜12,20〜22,30〜32及び40〜42は、TCP/IPプロトコルを適用する仮想的に同一のネットワーク(つまり仮想ネットワーク)に、プライベートなアドレス体系「192.168.1.*/24」で接続されているものとする。いずれにせよ、図1に示す仮想ネットワークシステムでは、VM10〜12,20〜22,30〜32及び40〜42の間の通信は可能であり、また、VM10〜12,20〜22,30〜32及び40〜42と外部のマシン(例えばACL管理装置Mなど)との通信も可能である。
【0020】
図2は、本実施形態におけるACL管理装置Mの構成を示すブロック図である。
ACL管理装置Mは、アクセス制御リスト記憶部(以下、ACL記憶部と称する)201と、通信制御リスト記憶部(以下、CCL記憶部と称する)202と、通信部203と、ACL再構成部204とを備えている。
【0021】
ACL記憶部201は、図1に示す仮想ネットワークシステム内の全てのVM、つまりVM10〜12,20〜22,30〜32及び40〜42のためのACL(以下、全体ACLと称する)を記憶する。全体ACLは、VM10〜12,20〜22,30〜32及び40〜42の各々について、対応するVMとVM10〜12,20〜22,30〜32及び40〜42のうちの他のVMまたは外部ネットワークとの間の通信(アクセス)を制御するのに用いられるアクセス制御ルールの一覧である。全体ACLは、後述する通信許可リスト60(図6参照)及びVM構成情報70(図7参照)を含む。
【0022】
CCL記憶部202は、分散仮想スイッチ2-1〜2-4による接続の切り替え制御に用いられる、VM10〜12,20〜22,30〜32及び40〜42のためのCCL(通信制御リスト)を記憶する。CCLは、後述するVMリスト40(図4参照)及びホスト管理リスト50(図5参照)を含む。
【0023】
通信部203は、少なくとも、VMM1-i(i=1,2,3,4)上の分散仮想スイッチ2-iと通信する。通信部203は、VMM1-i(VMM1-iが動作するホストマシンHi)上でのVM構成の変更(例えば分散仮想スイッチ2-iに接続されるVMの変更)に伴って分散仮想スイッチ2-iから送信されるACL発行要求を受信する。通信部203は、受信したACL発行要求をACL再構成部204に渡す。ACL発行要求は、例えば分散仮想スイッチ2-iに接続されるVMの変更の場合、VM構成の変更が反映されたVMリストを含む。通信部203は、ACL発行要求に応じてACL再構成部204によって生成される部分ACLを、ACL発行要求の要求元に返す。
【0024】
ACL再構成部204は、例えば図1の仮想ネットワークシステムの起動時に、各ホストマシンHiについて、当該ホストマシンHi上で動作するVMに関係する通信(アクセス)を制御するための部分ACLをACL記憶部201に記憶されている全体ACLから抽出する。ACL再構成部204は、ホストマシンHiのための抽出した部分ACLを、当該ホストマシンHiに通信部203により配布させる。
【0025】
ACL再構成部204はまた、通信部203から渡されたACL発行要求が、VMのIPアドレスの変更、或いはアクセス制御ルールの変更に伴うACL発行要求の場合、当該変更が反映されるようにACL記憶部201に記憶されている全体ACLを更新する。ACL再構成部204は更に、全体ACLを更新した際に、要求元の分散仮想スイッチ2-iに適合する部分ACLを作成(再構成)して、当該再構成された部分ACLを通信部203により要求元の分散仮想スイッチ2-iに返す。
【0026】
図3は、本実施形態における分散仮想スイッチ2-i(i=1,2,3,4)の構成を示すブロック図である。
分散仮想スイッチ2-iは、部分ACL記憶部301と、CCL記憶部302と、通信部303と、部分ACL要求管理部304とを備えている。
【0027】
部分ACL記憶部301は、分散仮想スイッチ2-iの配下のVMのための部分ACLを記憶する。CCL記憶部302は、図2に示すCCL記憶部202と同様に、VM10〜12,20〜22,30〜32及び40〜42のためのCCLを記憶する。
【0028】
通信部303は、構成管理部3-iからVM構成の変更の通知(以下、VM構成変更通知と称する)を受信して部分ACL要求管理部304に渡す。通信部303は、VM構成変更通知に応じて部分ACL要求管理部304から返されるACL発行要求をACL管理装置Mに送信する。通信部303は、ACL発行要求に応じてACL管理装置Mから返される部分ACLを受信して部分ACL記憶部301に格納する。通信部303は更に、VM間の通信、VMと外部ネットワーク(に接続されるノード)との間の通信を、部分ACL記憶部301に記憶されている部分ACL及びCCL記憶部202に記憶されているCCLに基づいて実行する。
【0029】
部分ACL要求管理部304は、構成管理部3-iからのVM構成変更通知に応じて、VM構成の変更が反映された新VMリストを作成する。部分ACL要求管理部304は、新VMリストを含むACL発行要求を通信部303によりACL管理装置Mに送信させる。部分ACL要求管理部304は、ACL発行要求に応じてACL管理装置Mから返される部分ACLを通信部303から受け取って、部分ACL記憶部301に記憶する。
【0030】
図4は、CCL記憶部202及び302に記憶されているCCL中のVMリスト40の例を示す。
図4に示すVMリスト40は、図1に示す仮想ネットワークシステム内の全てのVM、つまりVM10〜12,20〜22,30〜32及び40〜42の一覧を、当該VM10〜12,20〜22,30〜32及び40〜42がそれぞれ接続されている分散仮想スイッチ2-1,2-2,2-3及び2-4のID(分散仮想スイッチID)と対応付けて保持する。
【0031】
図5は、CCL記憶部202及び302に記憶されているCCL中のホスト管理リスト50の例を示す。
図5に示すホスト管理リスト50は、図1に示す仮想ネットワークシステム内の全てのホストマシン、つまりホストマシンH1〜H4の一覧を、当該ホストマシンH1〜H4上で動作する分散仮想スイッチ2-1〜2-4の分散仮想スイッチIDと、当該ホストマシンH1〜H4のIPアドレス(物理IPアドレス)と対応付けて保持する。
【0032】
図6は、ACL記憶部201に記憶されている全体ACL中の通信許可リスト60の例を示す。
図6に示す通信許可リスト60は、図1に示す仮想ネットワークシステム内の全てのVMについて当該仮想ネットワークシステム内の他のVMまたは外部ネットワークとの通信が許可されているかを表すマトリクス形式のリストである。このマトリクス形式のリストの各行のVMは通信元(アクセス元)を表し、各列のVM(または外部ネットワーク)は通信先(アクセス先)を表す。また、図6における記号○は、当該記号○が付されている行のVMから、当該記号○が付されている列のVMまたは外部ネットワークへのアクセスが許可されていることを表す。また、通信許可リスト60は、外部ネットワークとVMとの間の通信が許可されているかをも表している。
【0033】
このように、図6に示す通信許可リスト60の例では、VM間(またはVMと外部ネットワークとの間)の通信が許可されているかを示している。つまり通信許可リスト60は、VM間(またはVMと外部ネットワークとの間)のアクセスの制御に用いられる。しかし、VMのTCP/UDPポート毎に、ポート間の通信が許可されているかを示すことにより、ポートを限定したアクセス制御を行うことも可能である。
【0034】
図7は、ACL記憶部201に記憶されている全体ACL中のVM構成情報70の例を示す。
図7に示すVM構成情報70は、図1に示す仮想ネットワークシステム内のVMの一覧を、当該VMそれぞれのIPアドレスと対応付けて保持する、VMアドレステーブルである。このようにVM構成情報70が、VMそれぞれのIPアドレスを保持するのは、本実施形態において分散仮想スイッチ2-1,2-2,2-3及び2-4によって構成される仮想ネットワークが、TCP/IPプロトコルを適用していることを前提としているためである。もし、上記仮想ネットワークがTCP/IPプロトコル以外の別のプロトコルで実装されるならば、IPアドレスに代えて、IPアドレスに相当する、当該別のプロトコルで適用される値を用いればよい。
【0035】
次に本実施形態の動作を、VM32がホストマシンH3のVMM1-3からホストマシンH1のVMM1-1に移動した場合を例に説明する。
今、ホストマシンH3のVMM1-3からホストマシンH1のVMM1-1へのVM32の移動(つまり転入)が発生したものとする。このVM32の移動は、ホストマシンH1側にとって転入であり、ホストマシンH3側にとって転出である。
【0036】
ホストマシンH1のVMM1-1へのVMの移動(転入)が発生すると、当該VMM1-1上で動作する構成管理部3-1は、その旨を示すVM構成変更通知を分散仮想スイッチ2-1に送出する。VMM1-1へのVM32の移動が発生した本実施形態では、図8に示すVM構成変更通知80が構成管理部3-1から送出される。VM構成変更通知80は、構成管理部3-1からの当該VM構成変更通知80の送出先の分散仮想スイッチ(つまり分散仮想スイッチ2-1)のIDと、移動したVM32(つまり構成変更の対象となったVM32)のIDと、構成変更が転入によるものか或いは転出によるものかを示す変更内容とを含む。VM構成変更通知80の例では、変更内容は「転入」である。
【0037】
したがって図8に示すVM構成変更通知80は、当該VM構成変更通知80の送出先の分散仮想スイッチ2-1が動作するホストマシンH1のVMM1-1上に、VM32が移動してきたことを示す。VMM1-1上に移動したVM32は、新たに分散仮想スイッチ2-1に接続されて、当該分散仮想スイッチ2-1の配下となる。つまり、図8に示すVM構成変更通知80の送出先の分散仮想スイッチのIDは、構成変更の対象となったVM32が新たに接続される分散仮想スイッチのIDをも示す。
【0038】
ここで、図8に示すVM構成変更通知80が構成管理部3-1から仮想スイッチ2-1に送出された場合の当該仮想スイッチ2-1の動作について、図9の示すフローチャートを参照して説明する。
まず分散仮想スイッチ2-1の通信部303は、構成管理部3-1からのVM構成変更通知80を受信する(ステップS1)。すると通信部303は、受信したVM構成変更通知80を分散仮想スイッチ2-1の部分ACL要求管理部304に渡す。
【0039】
部分ACL要求管理部304は、通信部303から渡されたVM構成変更通知90と、分散仮想スイッチ2-1のCCL記憶部3に記憶されているCCL中のVMリスト40とに基づいて、VM構成変更通知90の示すVM構成の変更が反映された新VMリストを作成する(ステップS2)。新VMリストは、VMリスト40(図4参照)におけるVM32と対応付けられる分散仮想スイッチのIDが、分散仮想スイッチ2-3のIDから、分散仮想スイッチ2-1のIDに変更されたものである。
【0040】
部分ACL要求管理部304は、VM32の移動に伴う新たな部分ACLの発行(配布)を要求するためのACL発行要求(第1のACL発行要求)を通信部303に渡す。すると通信部303は、部分ACL要求管理部304から渡されたACL発行要求をACL管理装置Mに送信する(ステップS3)。
【0041】
ACL管理装置Mに送信されるACL発行要求は、部分ACL要求管理部304によって作成された新VMリストを含む。この新VMリストは、VM32の移動(流入)に伴うVM構成の変更を反映したものである。したがってACL発行要求は、部分ACLの発行を要求するだけでなく、VM32の移動を通知する。なお、新VMリストが、分散仮想スイッチ2-1に接続されるVM32を含むVMのリストのみであってもよい。つまり新VMリストに、分散仮想スイッチ2-1以外の分散仮想スイッチ2-2,2-3及び2-4に接続されるVMのリストが含まれていなくても構わない。
【0042】
次に、分散仮想スイッチ2-1の通信部303からACL管理装置MにACL発行要求が送信された場合の当該ACL管理装置Mの動作について、図10の示すフローチャートを参照して説明する。
まずACL管理装置Mの通信部203は、分散仮想スイッチ2-1の通信部303からのACL発行要求を受信する(ステップS11)。すると通信部203は、受信したACL発行要求をACL管理装置MのACL再構成部204に渡す。
【0043】
ACL再構成部204は、通信部203から渡されたACL発行要求から当該ACL発行要求に含まれているVMリスト(新VMリスト)を取り出す(ステップS12)。ACL再構成部204はまた、ACL記憶部201に記憶されている全体ACLを取り出す(ステップS13)。
【0044】
ACL再構成部204は、取り出した全体ACLに含まれている通信許可リスト60(図6参照)及びVM構成情報70(図7参照)並びに取り出した新VMリストに基づいて、ACL発行要求の送信元(つまりACL発行の要求元)の分散仮想スイッチ2-1におけるVM構成の変更(VM32の転入)に適合する部分ACLを作成(再構成)する(ステップS14)。より詳細には、ACL再構成部204は、部分ACLを次のように作成する。
【0045】
まずACL再構成部204は、新VMリストに保持されているVMの群のうち、分散仮想スイッチ2-1のIDと対応付けられているVMの群、つまりVM10,VM11,VM12及びVM32を抽出する。なお、新VMリストが、分散仮想スイッチ2-1に接続されるVM32を含むVMのリストのみであるならば、この抽出は不要である。
【0046】
次にACL再構成部204は通信許可リスト60を参照し、抽出したVM10,VM11,VM12及びVM32に対応する行において、記号○が付されている列のVM(または外部ネットワーク)を抽出する。つまりACL再構成部204は、分散仮想スイッチ2-1に接続されるVM10,VM11,VM12及びVM32のそれぞれについて、当該VM10,VM11,VM12及びVM32からの通信(アクセス)が許可されているVM(または外部ネットワーク)を抽出する。図6に示す通信許可リスト60の例では、VM10からの許可された通信先としてVM11,VM21,VM32及び外部ネットワークが、VM11からの許可された通信先としてVM22,VM31及びVM41が、それぞれ抽出される。同様に、VM12からの許可された通信先としてVM10,VM41及び外部ネットワークが、VM32からの許可された通信先としてVM11が、それぞれ抽出される。
【0047】
またACL再構成部204は、外部ネットワークに対応する行において、記号○が付されている列のVMの中から、抽出したVM10,VM11,VM12及びVM32のいずれかに一致するVMを抽出する。つまりACL再構成部204は、抽出したVM10,VM11,VM12及びVM32の中から、外部ネットワークからのアクセスが許可されているVMを抽出する。図6に示す通信許可リスト60の例では、VM10,VM11,VM12及びVM32のうち、外部ネットワークからの許可された通信先としてVM11及びVM12が抽出される。
【0048】
次にACL再構成部204は、抽出した通信元と通信先との対応を示す、ACL発行の要求元の分散仮想スイッチ2-1のための仮の部分ACLを作成する。そしてACL再構成部204は、先に取り出した全体ACL中のVM構成情報70(図7参照)に基づいて、仮の部分ACL中の通信元VMと通信先VMを、対応するIPアドレスに置き換えることにより、分散仮想スイッチ2-1に送信すべき、図11に示す部分ACL110を作成する。
【0049】
ACL再構成部204は、作成した部分ACL110を通信部203に渡す。すると通信部203は、ACL再構成部204から渡された部分ACL110を、ACL発行の要求元の分散仮想スイッチ2-1に送信する(ステップS15)。この部分ACL110は、分散仮想スイッチ2-1の通信部303で受信される。通信部303は、受信した部分ACL110で、部分ACL記憶部301に現在記憶されている部分ACLを更新する。なお、部分ACLの更新が、部分ACL要求管理部304によって行われても構わない。
【0050】
上述のように、ホストマシンH3のVMM1-3からホストマシンH1のVMM1-1へのVM32の移動に応じて、VMM1-1上で動作する構成管理部3-1から分散仮想スイッチ2-1に図8に示すVM構成変更通知80が送出された場合の動作について説明した。
【0051】
さて、上述のVM32の移動時には、当該VM32の移動元のホストマシンH3のVMM1-3上で動作する構成管理部3-3から分散仮想スイッチ2-3に、図8に示したVM構成変更通知80と同様の構造の、図12に示すVM構成変更通知120が送出される。VM構成変更通知120は、分散仮想スイッチ2-3のIDと、移動したVM32のIDと、「転出」を示す変更内容とを含む。
【0052】
構成管理部3-3から分散仮想スイッチ2-3にVM構成変更通知120が送出された場合、前述した構成管理部3-1から分散仮想スイッチ2-1にVM構成変更通知80が送出された場合と同様の動作が、分散仮想スイッチ2-3及びACL管理装置Mで行われる。つまり、VM構成変更通知120の示すVM構成の変更が反映された新VMリストが、分散仮想スイッチ2-3の部分ACL要求管理部304で取得され、当該新VMリストが含むACL発行要求がACL管理装置Mに送信される。この新VMリストは、前述のVM構成変更通知80の示すVM構成の変更が反映された新リストと同一内容となる。
【0053】
ACL管理装置MのACL再構成部204は、分散仮想スイッチ2-3から送信されたACL発行要求を受け取ると、当該分散仮想スイッチ2-3におけるVM構成の変更(VM32の転出)に適合する部分ACLを作成して、当該作成した部分ACLを分散仮想スイッチ2-3に送信する。これにより、分散仮想スイッチ2-3の部分ACL記憶部301に記憶されている部分ACLが、VM構成の変更(VM32の転出)に適合する新たな部分ACLに更新される。
【0054】
このように本実施形態においいては、図1に示される仮想ネットワークシステム全体のACL(つまり全体ACL)がACL管理装置Mで一元的に管理管理される。そして、VM構成が変更になる都度、VM構成が変更されたホストマシンHiで動作する分散仮想スイッチ2-iには、当該分散仮想スイッチ2-iに必要最低限のアクセス制御ルールとしての部分ACL(つまり分散仮想スイッチ2-iに適合する部分ACL)がACL管理装置Mで作成される。この分散仮想スイッチ2-iに適合する部分ACLは、VM構成が変更されたホストマシンHiのVMM1-i上に存在するVM(つまり、分散仮想スイッチ2-iに接続される変更後のVM)の情報に基づいて作成される。
【0055】
よって本実施形態によれば、各分散仮想スイッチ2-iは最小限のACL(つまり部分ACL)しか保持する必要がなく、したがって各分散仮想スイッチ2-iにおける処理の負荷が軽減される。この効果は、同一VMM上で多数のVMが動作する場合、或いは仮想ネットワークシステム内に多数のホストマシンが存在する場合により顕著となる。
【0056】
以上、本実施形態の動作として、分散仮想スイッチ2-1及び2-3におけるVM構成の変更が、VM(VM32)のそれぞれ転入及び転出である場合を例に説明した。VM構成の変更は、VMの移動に限らない。例えば、VM構成の変更が、VMのIPアドレスの変更、或いはアクセス制御ルール(アクセス制御のポリシー)の変更であっても構わない。
【0057】
もし、VM構成の変更がVMのIPアドレスの変更の場合、VM構成変更通知の分散仮想スイッチID、対象VMM及び変更内容を、それぞれ、IPアドレスが変更されるVMを接続している分散仮想スイッチのID、IPアドレスが変更されるVMのID及び「IPアドレス変更」とすればよい。また、このVM構成変更通知に、変更後のIPアドレス(または変更前と変更後のIPアドレスの対)を付加すればよい。更にACL発行要求に、VMリストに代えて、IPアドレスが変更されるVMのIDと、「IPアドレス変更」と、変更後のIPアドレス(または変更前と変更後のIPアドレスの対)とを含めればよい。
【0058】
この場合、ACL管理装置MのACL再構成部204は、ACL発行要求(第3のACL発行要求)に応じて、ACL記憶部201に記憶されている全体ACL中のVM構成情報70を更新する。ACL再構成部204はまた、全体ACL中の通信許可リスト60と更新されたVM構成情報70とに基づいて、IPアドレスが変更されたVMを通信元または通信先として接続する分散仮想スイッチ毎に、当該全体ACLから部分ACLを抽出(つまり部分ACLを作成)する。作成された部分ACLは、対応する分散仮想スイッチに送信される。
【0059】
また、アクセス制御ルールの変更の場合も同様である。例えばVM10からの通信が許可されるVMが変更される場合、その旨を通知するためのVM構成変更通知に応じて、分散仮想スイッチ2-1からACL管理装置MにACL発行要求(第2のACL発行要求)が送信される。ACL管理装置MのACL再構成部204は、このにACL発行要求、つまりVM10からの通信が許可されるVMの変更に対応するACL発行要求に基づき、ACL記憶部201に記憶されている全体ACL中の通信許可リスト60を更新する。ACL再構成部204は、更新された通信許可リスト60に基づき、VM10を接続している分散仮想スイッチ2-1に適合する部分ACLを作成する。作成された部分ACLは、分散仮想スイッチ2-1に送信される。
【0060】
次に、分散仮想スイッチ2-iにおけるアクセス制御について、当該分散仮想スイッチ2-iに接続されるVM(または外部ネットワーク)から通信パケットが送信された場合を例に、図13のフローチャートを参照して説明する。
【0061】
分散仮想スイッチ2-iの通信部303は、分散仮想スイッチ2-iに接続されるVM(または外部ネットワーク)からの通信パケットを受信する(ステップS21)。次に通信部303は、部分ACL記憶部301から部分ACLを取得する(ステップS22)。そして通信部303は、受信した通信パケットの送信元IPアドレスと宛先IPアドレスとの対が、取得した部分ACLに保持されているかによって、受信した通信パケットの転送(通信)が許可されているかを判定する(ステップS23)。
【0062】
もし、転送が許可されているならば(ステップS23のYes)、通信部303は、CCL記憶部202に記憶されているCCLに基づいて、受信した通信パケットの転送を制御する(ステップS24)。これに対し、転送が許可されていないならば(ステップS23のNo)、通信部303は受信した通信パケットを廃棄する(ステップS25)。
【0063】
上述の動作説明から明らかなように、本実施形態においては、各分散仮想スイッチ2-iにおける通信(アクセス)の制御が、当該分散仮想スイッチ2-i内の部分ACL記憶部301に記憶されている部分ACLに基づいて、当該分散仮想スイッチ2-iに接続されているVMから他のVM(または外部ネットワーク)への通信について行われる。このように本実施形態では、分散仮想スイッチ2-iの配下のVMから他のVM(または外部ネットワーク)への通信を許可するか否かが制御される。つまり通信を許可するか否かが、送信側で制御される。このような送信側でのアクセス制御の適用により、従来から知られているフィルタリングのためのアクセス制御ルール(フィルタリングルール)に基づく受信側での制御、つまり分散仮想スイッチ2-iの配下にないVM(または外部ネットワーク)のような多数のVM(または外部ネットワーク)から当該分散仮想スイッチ2-iの配下にあるVMへの通信を、受信側でフィルタリングするかの制御と比較して、ACL(アクセス制御ルール)を簡略化することができる。
【0064】
上記実施形態では、CCL中のVM構成情報70(図7参照)が、VM毎にIPアドレスを保持し、VM単位でアクセス制御を行うことを前提としている。つまり、VMが通信の主体(送受信者)であることを前提としている。しかし、VM上で動作するアプリケーション、プロセスなどが、それぞれIPアドレスに相当する情報(例えば、アドレスとポート番号)を持って、通信の主体として動作するような環境におけるアクセス制御であっても構わない。
【0065】
以上説明した少なくとも1つの実施形態によれば、分散仮想スイッチに適合するアクセス制御リストを簡単に作成して、当該分散仮想スイッチに配布することができる仮想ネットワークシステム及び仮想通信制御方法を提供することができる。
【0066】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0067】
H1〜H4…ホストマシン、PN1,PN2…物理ネットワーク、M…アクセス制御リスト管理装置(ACL管理装置)、1-1〜1-4…仮想マシンモニタ(VMM)、2-1〜2-4…分散仮想スイッチ、3-1〜3-4…構成管理部、10〜12,20〜22,30〜32,40〜42…仮想マシン(VM)、201…アクセス制御リスト記憶部(ACL記憶部)、202,302…通信制御リスト記憶部(CCL記憶部)、203…通信部(第1の通信手段)、204…アクセス制御リスト再構成部(ACL再構成部)、301…部分アクセス制御リスト記憶部(部分ACL記憶部)、303…通信部(第2の通信手段)、304…部分アクセス制御リスト要求管理部(部分ACL要求管理部)。

【特許請求の範囲】
【請求項1】
1つ以上の物理ネットワークにより接続された複数のホストマシンを備え、前記複数のホストマシン上で動作する複数の通信主体が仮想ネットワークにより相互接続された仮想ネットワークシステムにおいて、
前記1つ以上の物理ネットワークの1つに接続されたアクセス制御リスト管理装置と、
前記複数のホストマシン上でそれぞれ動作する複数の分散仮想スイッチとを具備し、
前記アクセス制御リスト管理装置は、
前記複数の通信主体の各々について、対応する通信主体と前記複数の通信主体のうちの他の通信主体または外部ネットワークとの間の通信を制御するための全体アクセス制御リストを記憶するアクセス制御リスト記憶手段と、
前記複数のホストマシンの各々について、対応するホストマシン上で動作する通信主体に関係する通信を制御するための部分アクセス制御リストを前記全体アクセス制御リストから抽出するアクセス制御リスト再構成手段と、
前記抽出された部分アクセス制御リストを、前記複数の分散仮想スイッチのうち対応するホストマシン上で動作する分散仮想スイッチに配布する第1の通信手段とを具備し、
前記複数の分散仮想スイッチはそれぞれ、
自身に配布された部分アクセス制御リストを記憶する部分アクセス制御リスト記憶手段と、
前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストに基づいて、自身が動作するホストマシン上で動作する通信主体の通信を制御する第2の通信手段とを具備する
仮想ネットワークシステム。
【請求項2】
前記全体アクセス制御リストは、前記複数の通信主体の各々について、対応する通信主体を通信元とし、当該対応する通信主体からの通信が許可される通信主体または外部ネットワークを通信先として保持しており、
前記アクセス制御リスト再構成手段は、前記全体アクセス制御リストから、前記対応するホストマシン上で動作する通信主体を通信元とするリスト部分を前記部分アクセス制御リストとして抽出する
請求項1記載の仮想ネットワークシステム。
【請求項3】
前記複数の分散仮想スイッチの各々は、自身が動作するホストマシン上に、または自身が動作するホストマシン上から、通信主体が移動した場合、当該通信主体の移動を通知すると共に、当該通信主体の移動に伴う新たな部分アクセス制御リストの配布を要求するための第1の部分アクセス制御リスト発行要求を、対応する第2の通信手段により前記アクセス制御リスト管理装置に送信させ、前記第1の部分アクセス制御リスト発行要求に対する応答として前記アクセス制御リスト管理装置から新たな部分アクセス制御リストが配布された場合、前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストを前記配布された新たな部分アクセス制御リストに更新する部分アクセス制御リスト要求管理手段を更に具備し、
前記アクセス制御リスト再構成手段は、前記第1の部分アクセス制御リスト発行要求に応じて、前記通信主体の移動後において対応するホストマシン上で動作する通信主体に関係する通信を制御するための新たな部分アクセス制御リストを前記全体アクセス制御リストから抽出し、前記抽出された部分アクセス制御リストを、前記第1の部分アクセス制御リスト発行要求の要求元の分散仮想スイッチに前記第1の通信手段により配布させる
請求項2記載の仮想ネットワークシステム。
【請求項4】
前記部分アクセス制御リスト要求管理手段は、自身が動作するホストマシン上で動作する通信主体に関するアクセス制御のルールが変更された場合、当該通信主体に関するアクセス制御のルールの変更を通知すると共に、当該通信主体に関するアクセス制御のルールの変更に伴う新たな部分アクセス制御リストの配布を要求するための第2の部分アクセス制御リスト発行要求を対応する第2の通信手段により前記アクセス制御リスト管理装置に送信させ、
前記アクセス制御リスト再構成手段は、前記第1の部分アクセス制御リスト発行要求に応じて、前記アクセス制御リスト記憶手段に記憶されている前記全体アクセス制御リストを更新し、前記更新された全体アクセス制御リストから対応するホストマシン上で動作する通信主体に関係する通信を制御するための新たな部分アクセス制御リストを抽出する
請求項3記載の仮想ネットワークシステム。
【請求項5】
1つ以上の物理ネットワークにより接続された複数のホストマシンと、前記1つ以上の物理ネットワークの1つに接続され、前記複数の通信主体の各々について、対応する通信主体と前記複数の通信主体のうちの他の通信主体または外部ネットワークとの間の通信を制御するための全体アクセス制御リストを記憶するアクセス制御リスト記憶手段を含むアクセス制御リスト管理装置と、前記複数のホストマシン上でそれぞれ動作する複数の分散仮想スイッチとを備え、前記複数のホストマシン上で動作する複数の通信主体が仮想ネットワークにより相互接続された仮想ネットワークシステムにおける仮想通信制御方法であって、
前記アクセス制御リスト管理装置が、前記複数のホストマシンの各々について、対応するホストマシン上で動作する通信主体に関係する通信を制御するための部分アクセス制御リストを前記全体アクセス制御リストから抽出して、前記抽出された部分アクセス制御リストを、前記複数の分散仮想スイッチのうち対応するホストマシン上で動作する分散仮想スイッチに配布するステップと、
前記分散仮想スイッチに配布された部分アクセス制御リストを、当該分散仮想スイッチが自身が有する部分アクセス制御リスト記憶手段に記憶するステップと、
前記分散仮想スイッチの前記部分アクセス制御リスト記憶手段に記憶されている前記部分アクセス制御リストに基づいて、前記分散仮想スイッチが動作するホストマシン上で動作する通信主体の通信を、前記分散仮想スイッチが制御するステップと
を具備する仮想通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−190409(P2012−190409A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−55557(P2011−55557)
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000003078)株式会社東芝 (54,554)
【出願人】(301063496)東芝ソリューション株式会社 (1,478)
【Fターム(参考)】