説明

パケット変換プログラム、パケット変換装置、及びパケット変換方法

【課題】MACヘッダのアドレス空間を有効活用して、物理ネットワーク上に構築可能なサブネット数を向上させる技術を提供する。
【解決手段】仮想計算機からブロードキャスト/マルチキャストのMACアドレスを含むパケットを取得すると、取得したパケットのMACアドレスに対応するサブネット識別子を第1対応関係から得て、取得したパケットのMACアドレスに対応するパケット種別識別子を第2対応関係から得て、ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、第1対応関係から得られたサブネット識別子と第2対応関係から得られたパケット種別識別子とを設定することによって、対象パケットをマルチキャストのパケットに変換し、変換して得られた対象パケットを、ネットワークを介して他のコンピュータに送信するパケット変換プログラムにより、上記課題の解決を図る。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、サブネット構築技術に関する。
【背景技術】
【0002】
ICT(Information and Communication Technology)システム構築の新しい利用形態として、クラウドコンピューティングのIaaS(Infrastructure as a Service)サービスが注目を集めている。IaaSサービスは、ネットワーク上にあるコンピューティング資源を用いて仮想的なサーバ(以下、仮想マシンまたはVMと称す)を構築し、その仮想マシンを利用者に対してサービスとして提供している。このようなIaaSサービスを提供するクラウドコンピューティングインフラにおいて、複数の企業や部門または部署(以下、これらを総じて「テナント」と称す)の仮想サーバが稼動している。したがって、テナント間のセキュリティ保護のために、テナント毎に分離しているネットワーク環境(以下、「サブネット」と称す)が必要である。
【0003】
ひとつの物理的なイーサネットネットワーク上に、複数のサブネットを構築する技術としてVLAN(Virtual Local Area Network)やPBB(Provider Backbone Bridge)がある。
【0004】
図1は、VLANまたはPBB技術を用いたネットワークの構築について説明するための図である。物理サーバは、複数の仮想マシンと、サブネット単位の複数の仮想スイッチを含む。物理サーバは、同一サブネットに属する仮想マシンを同じ仮想スイッチに収容する。例えば、サーバ1は、VM2、VM3と、VM2,3を収容する仮想スイッチ4を含む。サーバ5は、VM6、VM7と、VM6,7を収容する仮想スイッチ8を含み、VM9、VM10と、VM9,10を収容する仮想スイッチ11を含む。サーバ12は、VM13、VM14と、VM13,14を収容する仮想スイッチ15を含み、VM16、VM17と、VM16,17を収容する仮想スイッチ18を含む。
【0005】
例えば、テナントAを形成するサブネットには、VM2、VM3、VM6、VM7が含まれる。例えば、テナントCを形成するサブネットには、VM9、VM10が含まれる。例えば、テナントDを形成するサブネットには、13,14が含まれる。例えば、テナントEを形成するサブネットには、VM16、VM17が含まれる。
【0006】
例えば、不図示のネットワーク管理システムは、VLANまたはPBBを用いてネットワーク19を構築する。ネットワーク管理システムは、ネットワーク19を構築するレイヤ2スイッチ装置と、それらのレイヤ2スイッチ装置を制御する管理装置をと含むネットワークのシステムである。
【0007】
ネットワーク管理システムは、各レイヤ2スイッチ装置(L2SW)20,21,22,23に、例えば、VLAN設定として、物理ポート・サブネット対応関係情報を設定する。物理ポート・サブネット対応関係情報は、各レイヤ2スイッチ装置のどの物理ポートがどの仮想サブネットに属しているのかということを示す情報である。例えば、物理ポート(P)0,1,2を含むレイヤ2スイッチ装置22の場合、ポート0及びポート1がテナントAを形成するサブネットに属する物理ポート・サブネット対応関係情報を含む。
【0008】
ここで、パケットは、MACDA、MACSA、ペイロードを含む。MACDAは、Media Access Control (MAC) Destination Address(送信先MACアドレス) を表す。MACSAは、Media Access Control (MAC) source Address(送信元MACアドレス)を表す。ペイロードは、MACDA、MACSA等のヘッダを除いたデータ部分を表す。
【0009】
ネットワーク管理システムは、図1に示すように、物理ネットワーク上を流れるパケットに対して、サブネットを識別するためのタグ(サブネット識別子)を付与する。サブネット識別子は、VLANの場合はVIDが対応し、PBBの場合はI−SIDが対応する。このサブネットを識別するタグが付与されたパケットをVM送信パケットと称する。
【0010】
例えば、レイヤ2スイッチ装置22は、送信元である物理サーバ1からのパケットを受信した場合、パケットのサブネット識別子を参照して、そのサブネット識別子により特定されるサブネットに属する物理ポートにパケット転送を行う。この場合、パケットのサブネット識別子は「VLAN−A」であるから、レイヤ2スイッチ装置22は、物理ポート・サブネット対応関係情報から「VLAN−A」を検索し、「VLAN−A」に対応する「ポート0、ポート1」を取得する。レイヤ2スイッチ装置22は、パケットを受信したポート0ではない、ポート1にパケット転送を行う。
【0011】
このように、サブネット識別子を用いることで、パケットが同一のテナント内にて送受信される。したがって、サブネット識別子に対応してサブネットが構築されるので、複数のサブネット識別子があれば、そのサブネット識別子に応じて、1つの物理ネットワーク上に複数のサブネットが構築される。
【0012】
また、広域イーサネット(登録商標)網において、VPN(Virtual Private Network)の数を増加させる他の技術がある。この他の技術は、送信元エッジスイッチと、送信先エッジスイッチと、1以上のコアスイッチにより構成され、送信元エッジスイッチと送信先エッジスイッチとの間を接続するコアネットワークに関する技術がある。この技術では、VLANスタッキング技術に対応しない従来のスイッチを用いた場合においても、4096を超えるVPNを提供することを実現している。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開2009−118127号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
VLAN技術は、安価なレイヤ2スイッチ装置であっても標準的にサポートしている。しかしながら、VLAN技術では、サブネット識別子であるVIDのアドレス空間が12bitのため、1つの物理ネットワーク上に構築可能なサブネットの数が4096個に制限されてしまう。そのため、膨大な数の仮想マシンを収容するデータセンタでは、VLAN技術の適用が難しい。
【0015】
一方、PBB技術を用いれば、サブネット識別子であるI−SIDのアドレス空間が24bitのため、非常に多くのサブネットを構築することができる。しかしながら、PBB技術に対応したレイヤ2スイッチ装置は非常に高価であることから、物理ネットワークの構築コストが増大する。同様に、上記他の技術においても、コアネットワークを構築しなければならず、物理ネットワークの構築コストが増大する。
【0016】
そこで、本明細書では、物理ネットワーク上に構築可能なサブネット数を向上させる技術を提供する。
【課題を解決するための手段】
【0017】
パケット変換プログラムは、記憶部を備えるコンピュータに、以下の処理を実行させる。ここで、記憶部は、仮想スイッチと接続されている仮想計算機のMACアドレスと仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係を記憶する。また、記憶部は、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する。コンピュータは、仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得したパケットのMACアドレスに対応するサブネット識別子を第1対応関係から得る。コンピュータは、取得したパケットのMACアドレスに対応するパケット種別識別子を第2対応関係から得る。コンピュータは、ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られたパケット種別識別子とを設定する。これによって、コンピュータは、対象パケットをマルチキャストのパケットに変換する。コンピュータは、変換して得られた対象パケットを、ネットワークを介して他のコンピュータに送信する。
【0018】
また、パケット変換プログラムは、記憶部を備えるコンピュータに、以下の処理を実行させる。ここで、記憶部は、仮想スイッチと接続されている仮想計算機のMACアドレスと仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係を記憶する。また、記憶部は、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する。コンピュータは、ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信したパケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出する。コンピュータは、抽出したサブネット識別子が第1対応関係にある場合、受信したパケットのMACヘッダを変更することにより、受信したパケットを元のブロードキャストまたはマルチキャストのパケットに変換する。コンピュータは、変換して得たパケットを仮想計算機に送信する。
【発明の効果】
【0019】
本明細書の技術によれば、物理ネットワーク上に構築可能なサブネット数を向上させることができる。
【図面の簡単な説明】
【0020】
【図1】VLANまたはPBB技術を用いたネットワークの構築について説明するための図である。
【図2】第1の実施形態における仮想マシンを収容する仮想スイッチを含む物理サーバの一例を示す。
【図3】第1の実施形態におけるフォワーディングデータベースの構成の一例を示す。
【図4】第1の実施形態における受信ルールテーブルの構成の一例を示す。
【図5】第1の実施形態におけるアドレス変換テーブルの一例を示す。
【図6】第1の実施形態における仮想スイッチ送信パケットの内容を示す。
【図7】第1の実施形態におけるパケット送信時の仮想スイッチの動作のフローを示す。
【図8】第1の実施形態におけるパケット受信時の仮想スイッチの動作のフローを示す。
【図9】第1の実施形態における仮想マシンからユニキャストパケットを受信した場合の仮想スイッチの動作を説明するための図である。
【図10】第1の実施形態における仮想マシンからブロードキャストパケット(またはマルチキャストパケット)を受信した場合の仮想スイッチの動作を説明するための図である。
【図11】第2の実施形態における仮想マシンを収容する仮想スイッチを含む物理サーバの一例を示す。
【図12】IGMPパケットフォーマットを示す。
【図13】第2の実施形態におけるIGMPパケット送信処理のフローの一例を示す。
【図14】第2の実施形態における仮想マシンからブロードキャストパケット(またはマルチキャストパケット)を受信した場合の仮想スイッチの動作を説明するための図である。
【図15】第3の実施形態における仮想マシンを収容する仮想スイッチを含む物理サーバの一例を示す。
【図16】第3の実施形態における仮想スイッチ送信パケットの内容を示す。
【図17】第3の実施形態におけるパケット送信時の仮想スイッチ32の動作のフローを示す。
【図18】第3の実施形態におけるパケット受信時の仮想スイッチ32の動作のフローを示す。
【図19】第3の実施形態における仮想マシンからユニキャストキャストパケットを受信した場合の仮想スイッチの動作を説明するための図である。
【図20】第3の実施形態における仮想マシンからブロードキャストパケット(またはマルチキャストパケット)を受信した場合の仮想スイッチの動作を説明するための図である。
【図21】第1〜第3の実施形態における物理サーバのハードウェアの構成ブロック図の一例を示す。
【発明を実施するための形態】
【0021】
図2は、本実施形態における仮想マシンを収容する仮想スイッチを含む物理サーバの一例を示す。物理サーバ31(31−1,31−2)は、複数の仮想マシン30(A−1,A−2,・・・,B−1,B−2,・・・)と、サブネット単位の複数の仮想スイッチ32を含む。物理サーバ31は、同一サブネットに属する1以上の仮想マシンを同じ仮想スイッチに収容する。
【0022】
仮想スイッチ32は、フォワーディング処理部33、送信先アドレス変換部34、フィルタリング処理部35、送信先アドレス逆変換部36、記憶部39を含む。仮想スイッチ32は、フォワーディング処理部33、送信先アドレス変換部34、フィルタリング部35、送信先アドレス逆変換部36として機能するソフトウェアスイッチである。
【0023】
フォワーディング処理部33は、フォワーディングデータベース(Forwarding Data Base(FDB))を用いて、仮想マシンからのパケットを、レイヤ2ヘッダの送信先MACアドレスに従って、仮想スイッチ32に設けられたいずれかのポートへ転送する。FDBは、送信先MACアドレスと出力先ポート情報との対応関係が記載されたデータベースである。
【0024】
送信先アドレス変換部34は、仮想スイッチ32からNIC37へ出力されるパケットの送信先MACアドレス値を、後述するアドレス変換テーブルに従って、コード値及びサブネット識別子を含むマルチキャストアドレスに変換する。サブネット識別子は、仮想スイッチ32が収容している仮想マシンが属しているテナントに対応するサブネット識別子である。NIC(Network Interface card)37は、物理ネットワーク38と接続されている物理インターフェースである。
【0025】
フィルタリング処理部35は、仮想スイッチ32がNIC37からパケットを受信した場合に、受信ルールテーブルに従って、パケットを廃棄する。受信ルールテーブルについては後述する。
【0026】
送信先アドレス逆変換部36は、フィルタリング処理部35により透過されたパケットの送信先アドレス(送信先アドレス変換部34において変換された送信先アドレス)を元の送信先アドレスに逆変換する。
【0027】
記憶部39には、FDB、受信ルールテーブル、アドレス変換テーブル、仮想マシン管理情報が記憶されている。FDB、受信ルールテーブル、アドレス変換テーブルの例は、図3−図5に示される。仮想マシン管理情報は、仮想スイッチ32が収容している仮想マシンの管理するための情報である。
【0028】
図3は、本実施形態におけるフォワーディングデータベースの構成の一例を示す。フォワーディングデータベース(FDB)41は、「送信先アドレス41a」と、「ポート名」41bとを含む。「送信先アドレス41a」は、送信先のMACアドレスである。「ポート名」41bは、そのMACアドレスに対応する仮想スイッチのポート名である。
【0029】
図4は、本実施形態における受信ルールテーブル42の構成の一例を示す。受信ルールテーブル42は、受信を許可する仮想マシン宛てまたはテナント宛てのパケットを受信できるようにするための受信ルール情報を含む。受信ルール情報とは、例えば、当該仮想スイッチ32が収容している仮想マシンのMAC(Media Access Control)アドレス、及び当該仮想スイッチ32が収容している仮想マシンが属しているテナントに対応するサブネット識別子である。
【0030】
図5は、本実施形態におけるアドレス変換テーブルの一例を示す。アドレス変換テーブル43は、「MACアドレス」43a、「コード値」43bを含む。「MACアドレス」43aは、本実施形態において変換の対象となるブロードキャストパケット及びマルチキャストパケットのMACアドレスである。「コード値」43bは、「MACアドレス」43aを識別するコード値(パケット種別識別子)を含む。
【0031】
図6は、本実施形態における仮想スイッチ送信パケットの内容を示す。仮想スイッチ送信パケットとは、仮想スイッチ32から送信されるパケットを示す。図6(A)に示すように、仮想スイッチ送信パケット45は、「MACDA(送信先MACアドレス)」46、「MACSA(送信元MACアドレス)」47、「タイプ」48、「ペイロード」49を含む。
【0032】
図6(B)は、ユニキャストの場合の送信先MACアドレス46の構成例を示す。1バイト目は、「I/G(Individual/Group)識別子」を示す。I/G(Individual/Group)識別子により、ユニキャストパケットであるか、マルチキャストパケットであるかが判定される。ユニキャストパケットの場合には第1バイト目の最下位ビットに「0」が設定され、ユニキャスト及びマルチキャストパケットの場合には第1バイト目の最下位ビットに「1」が設定される。2〜6バイト目は、「送信先仮想マシン識別子」を示す。「送信先仮想マシン識別子」には、送信先の仮想マシンのMACアドレスが設定される。
【0033】
図6(C)は、ブロードキャスト及びマルチキャストの場合の送信先MACアドレス46の構成例を示す。1バイト目は、「I/G識別子」を示す。2バイト目は、「パケット識別子」を示す。3バイト目は、「MC(multicast)種別」を示す。4〜6バイト目は、「サブネット識別子」を示す。「パケット識別子」には、ブロードキャストパケットか、マルチキャストパケットかを識別するための情報が設定される。「MC種別」には、マルチキャストパケットの種類を識別するための情報が設定される。
【0034】
図6(D)は、送信元の仮想マシンのMACアドレス47の構成例を示す。1バイト目は、「I/G識別子」を示す。2〜6バイト目は、「送信元仮想マシン識別子」を示す。「送信仮想マシン識別子」には、送信元の仮想マシンのMACアドレスが設定される。
【0035】
以下では、図7、図8を用いて仮想スイッチ32の動作について説明する。
図7は、本実施形態におけるパケット送信時の仮想スイッチ32の動作のフローを示す。仮想マシンVM(A−1)から出力されたパケットは、仮想スイッチ32へ転送される。
【0036】
仮想スイッチ32は、レイヤ2パケットフォワーディング処理を実行し、FDB41を用いて、出力先ポートを解決する(S1)。ここでは、まず、仮想スイッチ32は、OSI(Open Systems Interconnection)参照モデルのデータリンク層(第2層)でのパケットの送信先の判定を行う(S1)。
【0037】
仮想スイッチ32は、そのパケットの送信先MACアドレスを参照して、FDB41に基づいて宛先ポート、すなわち出力インターフェース(以下、出力I/Fという)を決定する。
【0038】
仮想スイッチ32は、決定した宛先ポートが、内部インターフェース(以下、内部I/Fという)であるか、外部インターフェースであるか(以下、外部I/Fという)を判定する(S2)。内部I/Fとは、仮想スイッチ32の収容する他の仮想マシンVM(A−2)と接続されたポートを示す。外部I/Fは、物理ネットワーク38に繋がるポート、すなわちNIC37に設けられたポートを示す。
【0039】
決定した宛先ポートが内部I/Fであると判定された場合、仮想スイッチ32は、その内部I/Fへパケットを転送する。仮想スイッチ32は、その内部I/Fより、パケットを出力する(S5)。
【0040】
I 決定した宛先ポートが外部I/Fであると判定された場合、仮想スイッチ32は、そのパケットの先頭バイトのI/G識別子を参照して、そのパケットがブロードキャストパケットまたはマルチキャストパケットであるかを判定する(S3)。
【0041】
S3において、そのパケットがブロードキャストパケットまたはマルチキャストパケットであると判定された場合、仮想スイッチ32は、宛先アドレスコード化処理を行う(S4)。ここでは、仮想スイッチ32は、そのパケットの送信元MACアドレスから送信元の仮想マシンのMACアドレスを取得する。仮想スイッチ32は、受信ルールテーブル42から、その送信元の仮想マシンのMACアドレスに対応するサブネット識別子を取得する。それから、仮想スイッチ32は、アドレス変換テーブル43から、そのパケットの送信先アドレス(ブロードキャストアドレスまたはマルチキャストアドレス)に対応するコード値を取得する。仮想スイッチ32は、その取得したコード値と、上記で取得したサブネット識別子とを結合させることにより、サブネット識別子を含むマルチキャストアドレスを生成する。このようにして、仮想スイッチ32は、仮想マシンから送信されたパケットの送信先MACアドレスを、サブネット識別子を含むマルチキャストアドレスに変換する。
【0042】
S3において、そのパケットがユニキャストパケットであると判定された場合には、仮想スイッチ32は、そのパケットの送信先MACアドレスの変換処理を実施しない。
仮想スイッチ32は、S3でユニキャストパケットであると判定されたパケットまたはS4でアドレス変換したマルチキャストパケットを、仮想スイッチ送信パケットとして物理ネットワーク38へ出力する(S5)。
【0043】
物理ネットワーク38内のレイヤ2スイッチ装置は、パケット転送処理を行って、仮想スイッチ送信パケットを中継する。このとき、仮想スイッチ32によりマルチキャストアドレスに変換された仮想スイッチ送信パケットは、物理ネットワーク38内ではマルチキャストパケットとして中継される。
【0044】
図8は、本実施形態におけるパケット受信時の仮想スイッチ32の動作のフローを示す。物理サーバ31は、物理ネットワーク38から仮想スイッチ送信パケットを受信し、各仮想スイッチ32へ転送する。仮想スイッチ32は、その転送された仮想スイッチ送信パケットのI/G識別子を参照して、そのパケットがユニキャストパケットであるか否かを判定する(S11)。
【0045】
そのパケットがユニキャストパケットであると判定された場合(S11で「Yes」)、仮想スイッチ32は、そのパケットが当該仮想スイッチにより収容されている仮想マシン宛てのパケットであるかを判定する(S12)。すなわち、仮想スイッチ32は、そのパケットの送信先MACアドレスが受信ルールテーブル42に登録されているかを判定する。
【0046】
そのパケットの送信先MACアドレスが受信ルールテーブル42に登録されている場合(S12で「Yes」)、仮想スイッチ32は、当該パケットの受信を許可し、S18の処理へ進む。そのパケットの送信先MACアドレスが受信ルールテーブル42に登録されていない場合(S12で「No」)、仮想スイッチ32は、そのパケットを廃棄する(S13)。
【0047】
一方、S11において、そのパケットがユニキャストパケットでないと判定した場合(S11で「No」)、仮想スイッチ32は、宛先アドレスデコード化処理を行う(S14)。ここでは、仮想スイッチ32は、受信ルールテーブル42を用いて、そのパケットの送信先アドレスに含まれるサブネット識別子の解析を行う。すなわち、仮想スイッチ32は、そのパケットの送信先アドレス(ブロードキャストアドレスまたはマルチキャストアドレス)の4バイト目から6バイト目の情報(サブネット識別子)を抽出する。仮想スイッチ32は、受信ルールテーブル42から、その抽出したサブネット識別子を検索する。
【0048】
そのパケットの送信先MACアドレスに含まれるサブネット識別子が受信ルールテーブル42に登録されている場合(S15において、「Yes」)、仮想スイッチ32は、そのパケットの受信を許可する。そのパケットの送信先アドレスに含まれるサブネット識別子が受信ルールテーブル42に登録されていない場合(S15において、「No」)、仮想スイッチ32は、受信パケットを廃棄する(S16)。このフィルタリング処理により、同一サブネットに属する仮想マシンにパケットが届くようなサブネットを構築することができる。
【0049】
仮想スイッチ32は、フィルタリング処理において受信の許可がされたパケット(透過パケット)の送信先MACアドレスを、アドレス変換テーブル43に従って、送信先MACアドレスに含まれるコード値から元の送信先MACアドレスへ逆変換する(S17)。すなわち、仮想スイッチ32は、透過パケットの送信先MACアドレスの1バイト目から3バイト目の情報(コード値)を抽出する。仮想スイッチ32は、アドレス変換テーブル43から、その抽出したコードに対応するブロードキャストアドレスまたはマルチキャストアドレスを取得する。仮想スイッチは、その取得したブロードキャストアドレスまたはマルチキャストアドレスを、透過パケットの送信先MACアドレスへ設定する。
【0050】
仮想スイッチ32は、元の送信先MACアドレスへ逆変換されたパケットについて、レイヤ2パケットフォワーディング処理を実行し、FDB41を用いて、出力先ポートを解決する(S18)。S18の処理は、S1と同様である。仮想スイッチ32は、元の送信先MACアドレスへ逆変換されたパケットを、解決された出力先ポートへ転送する。
【0051】
このように、パケットのMACアドレスに含まれるサブネット識別子によってサブネットを識別することができる。MACアドレスに含まれるサブネット識別子は3バイト(224ビット)で表すことができるので、大きなアドレス空間を表現できる。そのため、本実施形態による技術は、多くのサブネットを構築することが可能である。
【0052】
また、仮想スイッチから物理ネットワーク38へ出力されるパケットは、マルチキャスト/ユニキャストパケットである。そのため、物理ネットワークインフラにおいては、レイヤ2スイッチ装置を用いて、物理ネットワーク38を構築することができる。その結果、物理ネットワークインフラを経済的に実現することが可能となる。
【0053】
以下で、本実施形態をより詳述する。まずは、ある物理サーバの仮想マシンa1から異なる物理サーバのa4へユニキャストパケットが転送される場合について、図9を用いて説明する。
【0054】
図9は、本実施形態における仮想マシンからユニキャストパケットを受信した場合の仮想スイッチの動作を説明するための図である。図9の例では、3つの物理サーバ31−1,31−2,31−3上に、1つまたは2つのテナント(テナントA及び/またはテナントB)が形成された仮想マシン(a1〜a4,b1〜b4)が動作していると仮定する。なお、物理サーバ数、仮想マシン数、テナント数は、本実施形態において限定されない。また、物理サーバ31−1,31−2,31−3は、レイヤ2スイッチ装置51を含む物理ネットワーク38に接続されていると仮定する。
【0055】
各仮想スイッチ(vSW1〜vSW4)は、受信ルールテーブル42−1〜42−4を含む。例えば、仮想スイッチ(vSW1)の有する受信ルールテーブル42−1は、vSW1に収容されている仮想マシンa1,a2のMACアドレス(それぞれ便宜上、a1、a2と表す)を含む。また、受信ルールテーブル42−1は、仮想マシンa1,a2が属しているテナントのサブネット識別子(A)を含む。
【0056】
ここで、仮想マシンa1から仮想マシンa4に対してユニキャストパケットが転送されるときの動作を以下に示す。まず、仮想マシンa1は、仮想マシンa4に対してパケットを送信する。このとき、当該パケットのイーサネットヘッダの送信先のMACアドレスフィールドには、仮想マシンa4のMACアドレス(便宜上a4と表す)が設定されている。また、そのイーサネットヘッダの送信元MACアドレスフィールドには、仮想マシンa1自身のMACアドレスa1と表す)が設定されている。
【0057】
仮想スイッチ(vSW1)は、仮想マシンa1から受信したユニキャストパケットの送信先MACアドレスフィールドと、FDB41−1とを参照して出力先のポートを決定する。仮想スイッチ(vSW1)の保有するFDB41−1によれば、アドレスa4に対応する出力先は、物理I/FであるNIC38と繋がっているポートp0である。よって、仮想スイッチ(vSW1)は、ポートp0へパケット(仮想スイッチ送信パケット)を転送する。
【0058】
物理ネットワーク38へと出力された仮想スイッチ送信パケットは、物理ネットワーク38内のレイヤ2スイッチ装置(L2SW)51によって中継される。この例では、各レイヤ2スイッチ装置51のFDB内には、MACアドレスa4に関する情報が登録されていないことを想定する。この場合、レイヤ2スイッチ装置51は、MACアドレスa4についての宛先ポートの解決をすることができない。そのため、レイヤ2スイッチ装置51は、自身の物理スイッチの全ポートへパケットを転送(フラッディング)する。その結果、a4宛てのユニキャストパケットは、物理サーバ31−2及び物理サーバ31−3へ送信される。
【0059】
物理ネットワーク38から仮想スイッチ送信パケットを受信した物理サーバ31−2及び物理サーバ31−3の仮想スイッチ(vSW2,vSW3,vSW4)は、到着したパケットのI/G識別子を識別する。
【0060】
到着したパケットがユニキャストパケットである場合には、仮想スイッチは、そのパケットの送信先MACアドレス値と自身の受信ルールテーブルを照らし合わせて、受信ルール情報に一致するパケットを透過させる。この例では、物理サーバ3の仮想スイッチ(vSW3)の有する受信ルールテーブル42−3にアドレス値a4が含まれている。この場合、物理サーバ31−3の仮想スイッチ(vSW3)は、その受信パケットを透過させる。
【0061】
一方、受信ルールテーブル42−2,42−4には、アドレス値a4が含まれていない。この場合、物理サーバ31−2の仮想スイッチ(vSW2)と物理サーバ31−3の仮想スイッチ(vSW4)は、その受信パケットを廃棄する。その後、仮想スイッチ(vSW3)において透過されたパケットは、仮想スイッチ(vSW3)のFDBに従って、仮想マシンa4へと送信される。
【0062】
次に、仮想マシンa1から同じテナントに属する仮想マシンa2,a3,a4へブロードキャストパケットが転送される場合について、図10を用いて説明する。
図10は、本実施形態における仮想マシンからブロードキャストパケット(またはマルチキャストパケット)を受信した場合の仮想スイッチの動作を説明するための図である。仮想マシンa1がブロードキャストパケットを送信する場合を例に説明する。
【0063】
この例では、当該パケットのイーサネットヘッダの送信先MACアドレスフィールドには、ブロードキャストを示すMACアドレス(便宜上BCと表す)が設定されているとする。また、その送信元MACアドレスフィールドには、仮想マシンa1自身のMACアドレス(便宜上a1と表す)が設定されている。
【0064】
仮想スイッチ(vSW1)は、仮想マシンa1から送信されたパケットを受信する。その受信パケットはブロードキャストパケットである。そのため、仮想スイッチ(vSW1)は、FDB41−1を用いて、パケットが到着したポートp1を除く、仮想スイッチの全ポートへそのブロードキャストパケットを転送する。その結果、仮想マシンa2に、ブロードキャストパケットが到達する。
【0065】
一方、物理ネットワーク38とつながるポートp0へ転送されたブロードキャストパケットについては、仮想スイッチ(vSW1)は、送信先アドレスの変換処理を行う。ここでは、仮想スイッチ(vSW1)は、アドレス変換テーブル43を用いて、そのブロードキャストパケットの送信先アドレスを変換する。ここでは、まず、仮想スイッチ(vSW1)は、物理ネットワーク38とつながるポートp0へ転送されるパケットの送信先アドレスに対応するコード値を、アドレス変換テーブル43から取得する。この例では、そのパケットの送信先MACアドレスは、ブロードキャストを示すFF-FF-FF-FF-FF-FFである。この場合、仮想スイッチ(vSW1)は、アドレス変換テーブル43から、MACアドレスFF-FF-FF-FF-FF-FFに対応するコード値01-01-00を取得する。
【0066】
次に、仮想スイッチ(vSW1)は、自身に収容されている仮想マシンのサブネット識別子(A)を、受信ルールテーブル42−1より取得する。仮想スイッチ(vSW1)は、そのコード値(01-01-00)と、そのサブネット識別子(A)とを結合した6バイトのデータ(01-01-00-00-00-0A)を作成する。それから、仮想スイッチ(vSW1)は、その作成したデータを、出力対象のパケットの送信先MACアドレスフィールドに設定する。これにより、図6で説明した仮想スイッチ送信パケットが生成される。
【0067】
仮想スイッチ(vSW1)は、送信先MACアドレスの変換処理がされた仮想スイッチ送信パケットを、物理ネットワーク38へ転送する。
物理ネットワーク38において、レイヤ2スイッチ装置(L2SW)51は、その仮想スイッチ送信パケットを、図6(A)に示すイーサネットフレームフォーマットのマルチキャストアドレスパケットであると認識する。すると、レイヤ2スイッチ装置(L2SW)51は、マルチキャスト中継処理を行って、自身のいずれかのポートへ転送する。この場合、レイヤ2スイッチ装置(L2SW)51は、多くの場合、マルチキャストパケットを、ブロードキャストパケットと同様に、全ての物理ポートへとフラッディングする。この結果、そのマルチキャストパケット(元はブロードキャストパケット)(仮想スイッチ送信)は、物理サーバ31−2及び物理サーバ31−3に送信される。
【0068】
物理ネットワーク38から仮想スイッチ送信パケットを受信した物理サーバ31−2及び物理サーバ31−3の仮想スイッチ(vSW2,vSW3,vSW4)は、到着したパケットのI/G識別子を識別する。
【0069】
到着したパケットがマルチキャストパケットである場合、仮想スイッチは、そのパケットの送信先MACアドレスの下位3バイト(4バイト目から6バイト目)に格納されたサブネット識別子と受信ルールテーブルを照らし合わせる。仮想スイッチは、受信ルール情報に一致するパケットを透過させる。
【0070】
この例では、物理サーバ31−3の仮想スイッチ(vSW3)の有する受信ルールテーブル42−3にサブネット識別子(A)が含まれている。この場合、物理サーバ31−3の仮想スイッチvSW3は、そのパケットを透過させる。
【0071】
一方、物理サーバ31−2のvSW2と物理サーバ31−2のvSW4は、受信ルールテーブルにサブネット識別子(A)を含んでいない。この場合、物理サーバ31−2の仮想スイッチ(vSW2)と物理サーバ31−3の仮想スイッチ(vSW4)は、そのパケットを廃棄する。
【0072】
その後、仮想スイッチ(vSW3)は、透過したパケットの送信先アドレスから上位3バイトの情報(この例では01-01-00)を取得する。それから、仮想スイッチ(vSW3)は、その取得した3バイトの情報に対応するブロードキャストアドレスを、アドレス変換テーブル43から取得する。
【0073】
仮想スイッチ(vSW3)は、その取得したブロードキャストアドレス(この例では、FF-FF-FF-FF-FF-FF)を、透過したパケットの送信先MACアドレスフィールドに設定する。その後、仮想パケット(vSW3)は、パケットフォワーディング処理を行って、仮想マシンa3とa4へそのブロードキャストパケットを転送する。
【0074】
このように、送信側の仮想スイッチは、送信パケットがブロードキャストまたはマルチキャストパケットである場合には、送信先MACアドレスの値をコード値とサブネット識別子を含むマルチキャストアドレス値に変換する。
【0075】
受信側の仮想スイッチは、受信したパケットのマルチキャストアドレスに含まれるサブネット識別子を参照して、自仮想スイッチに収容している仮想マシンへそのパケットを中継する。これにより、テナントに属する仮想マシンに、パケットが届くようなサブネットを構築することが可能となる。
【0076】
本実施形態では、サブネット識別子を送信先MACアドレスの下位3バイト(24ビット)にマッピングしているため、224個のサブネットを構築することが可能である。また、物理ネットワークを流れるパケットは、マルチキャストパケット形式になるため、例えば、汎用のL2SWで物理ネットワークを構築することが可能であり、経済的なネットワークインフラを構築することが可能である。
【0077】
また、フィルタリング機能により、サブネット識別子が異なるテナントに属する仮想マシンへパケットが送信されることがないので、サブネットのセキュリティを向上させることができる。
【0078】
<第2の実施形態>
第1の実施形態では、送信元の仮想スイッチにおいてマルチキャストまたはブロードキャストアドレス値を、コード値とサブネット識別子を含むマルチキャストアドレスに変換した。そして、物理ネットワーク上の機器はそのパケットをマルチキャストパケットとして処理を行った。しかしながら、この場合、ある仮想マシンが送信したブロードキャストパケットが、データセンタ内の全物理サーバに届くことになり、無駄なトラフィックが大量に発生する可能性がある。
【0079】
そこで、本実施形態では、レイヤ2スイッチ装置のIGMP(Internet Group Management Protocol)スヌーピング機能を利用して、次のことを行う。すなわち、本実施形態は、レイヤ2スイッチ装置に、仮想スイッチにより変換されたマルチキャストアドレス値で表されるマルチキャストメンバとしてのテナントに属する仮想スイッチを含む物理サーバへ仮想スイッチ送信パケットを送るように制御を行う。なお、本実施形態において、第1の実施形態と同じ構成、処理、機能等については同一の符号を付与し、その説明を省略する。
【0080】
図11は、本実施形態における仮想マシンを収容する仮想スイッチを含む物理サーバの一例を示す。図11に示す仮想スイッチ32aは、フォワーディング処理部33、送信先アドレス変換部34、フィルタリング部35、送信先アドレス逆変換部36、IGMP送出部61として機能するソフトウェアスイッチである。図11に示す仮想スイッチ32aは、図2の仮想スイッチ32に、IGMP送出部61を加えたものである。
【0081】
IGMP送出部61は、一定周期で、IGMPパケットを、NIC37を介して、物理ネットワーク38へ送出する。この場合、IGMPパケットは、仮想スイッチ32aが収容する仮想マシンの属するテナントのサブネット識別子を含むマルチキャストアドレスで表されるマルチキャストメンバへ参加宣言するためのIGMP Reportパケットである。
【0082】
図12は、IGMPパケットフォーマットを示す。IGMPパケットは、IP(Internet Protocol)ヘッダとIGMPメッセージを有する。IGMPメッセージは、「タイプ」、「最大応答時間」、「チェックサム」、「グループアドレス」を有する。「タイプ」には、「メンバーシップレポート」、「リーブグループ」等のIGMPのメッセージのタイプが格納される。グループアドレスとして、第1の実施形態で得られたコード値とサブネット識別子を含むマルチキャストアドレスが格納される。
【0083】
図13は、本実施形態におけるIGMPパケット送出処理のフローの一例を示す。仮想スイッチ32は、一定周期で、IGMPパケットを送信している。仮想スイッチ32aは、IGMPパケットの送信の度に、図13の処理を実行する。
【0084】
まず、仮想スイッチ32aは、仮想スイッチ32aが収容している仮想マシンがないか否かを判定する(S21)。仮想スイッチ32aは、自身が収容している仮想マシンの管理するための情報(仮想マシン管理情報)を有している。仮想マシン管理情報は、例えば、仮想マシンのポート名と、そのポートに接続されている仮想マシン名とか関連付けられた情報である。仮想スイッチ32aは、仮想マシン管理情報を参照することにより、仮想スイッチ32aが収容している仮想マシンがないか否かを判定することができる。
【0085】
仮想スイッチ32aが収容している仮想マシンがないと判定した場合(S21で「Yes」)、仮想スイッチ32は、仮想スイッチ32aが収容している仮想マシンを、マルチキャストメンバから脱退させるIGMP LEAVEパケットを生成する(S22)。このとき、IGMP LEAVEパケット中のグループアドレスには、第1の実施形態で得られたコード値と、仮想スイッチ32aが収容していた仮想マシンが属するテナントのサブネット識別子を含むマルチキャストアドレスが設定される。
【0086】
仮想スイッチ32が収容している仮想マシンがあると判定した場合(S21で「No」)、仮想スイッチ32aは、IGMP JOINパケット(グループ参加の最初のメンバーシップレポートを含むIGMPパケット)を生成する(S23)。このとき、IGMP JOINパケット中のグループアドレスには、第1の実施形態で得られたコード値と、仮想スイッチ32が収容していた仮想マシンaが属するテナントのサブネット識別子を含むマルチキャストアドレスが設定される。
【0087】
仮想スイッチ32aは、S22またはS23で生成したIGMPパケットを、NIC37を介して、物理ネットワーク38へ送出する。
図14は、本実施形態における仮想マシンからブロードキャストパケット(またはマルチキャストパケット)を受信した場合の仮想スイッチの動作を説明するための図である。各仮想スイッチvSW1(32a−1),vSW2(32a−2),vSW3(32a−3),vSW4(32a−4)より送出されたIGMPパケットは、各物理サーバ31−1,31−2,31−3のNIC37を介して、物理ネットワーク38へ送信される。
【0088】
レイヤ2スイッチ装置(L2SW)51−1〜51−4は、IGMPスヌーピング機能を有する。IGMPスヌーピング機能を用いることにより、レイヤ2スイッチ装置(L2SW)51は、自身のポートを流れるIGMPパケットを盗み見ることができる。
【0089】
受信したパケットがIGMP reportである場合、レイヤ2スイッチ装置51−1〜51−4は、IGMPスヌーピング機能を用いて、次の処理を実行する。すなわち、レイヤ2スイッチ装置51−1〜51−4は、IGMP reportパケットのグループアドレスフィールドから、マルチキャストアドレスを取得する。それから、レイヤ2スイッチ装置51−1〜51−4は、取得したマルチキャストアドレスと、IGMP reportパケットを受信したポート(IGMP受信ポート)を示す情報とを関係付けて、マルチキャストアドレス・ポート関係テーブルに保持する。
【0090】
レイヤ2スイッチ装置51−1の場合、仮想スイッチ(vSW1)より送信された、サブネット識別子(A)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p11である。また、仮想スイッチ(vSW3)より送信された、サブネット識別子(A)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p12である。したがって、レイヤ2スイッチ装置51−1のマルチキャストアドレス・ポート情報テーブル71−1には、サブネット識別子(A)を含むマルチキャストアドレスと、IGMP受信ポートp11,P12とが関連付けられて格納されている。
【0091】
レイヤ2スイッチ装置51−2の場合、仮想スイッチ(vSW2)より送信された、サブネット識別子(B)からなるマルチキャストアドレスを有するIGMPパケットを受信するポートは、p13である。また、仮想スイッチ(vSW4)より送信された、サブネット識別子(B)を含むマルチキャストアドレスを有するIGMPパケットを受信するポートは、p14である。したがって、レイヤ2スイッチ装置51−2のマルチキャストアドレス・ポート関係テーブル71−2には、サブネット識別子(B)を含むマルチキャストアドレスと、IGMP受信ポートp13,P14とが関連付けられて格納されている。
【0092】
レイヤ2スイッチ装置51−3の場合、仮想スイッチ(vSW1)より送信された、サブネット識別子(A)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p16である。また、仮想スイッチ(vSW3)より送信された、サブネット識別子(A)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p15である。また、仮想スイッチ(vSW2)より送信された、サブネット識別子(B)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p16である。仮想スイッチ(vSW4)より送信された、サブネット識別子(B)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p15である。したがって、レイヤ2スイッチ装置51−3のマルチキャストアドレス・ポート関係テーブル71−3には、サブネット識別子(A)を含むマルチキャストアドレスと、IGMP受信ポートp15,P16とが関連付けられて格納されている。また、マルチキャストアドレス・ポート関係テーブル71−3には、サブネット識別子(B)を含むマルチキャストアドレスと、IGMP受信ポートp15,P16とが関連付けられて格納されている。
【0093】
レイヤ2スイッチ装置51−4の場合、仮想スイッチ(vSW1)より送信された、サブネット識別子(A)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p17である。また、仮想スイッチ(vSW3)より送信された、サブネット識別子(A)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p19である。また、仮想スイッチ(vSW2)より送信された、サブネット識別子(B)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートはp18である。また、仮想スイッチ(vSW4)より送信された、サブネット識別子(B)を含むマルチキャストアドレス情報を有するIGMPパケットを受信するポートは、p19である。したがって、レイヤ2スイッチ装置51−4のマルチキャストアドレス・ポート関係テーブル71−4には、サブネット識別子(A)を含むマルチキャストアドレスと、IGMP受信ポートp17,P19とが関連付けられて格納されている。また、マルチキャストアドレス・ポート関係テーブル71−4には、仮想スイッチで生成されたサブネット識別子(B)を含むマルチキャストアドレスと、IGMP受信ポートp18,P19とが関連付けられて格納されている。
【0094】
マルチキャストアドレス・ポート関係テーブルの作成後、マルチキャストパケットを受信した場合、レイヤ2スイッチ装置は、マルチキャストアドレス・ポート関係テーブルから、当該マルチキャストアドレスと関係付けられたポート情報を取得する。それから、レイヤ2スイッチ装置は、そのポートにそのマルチキャストパケットを転送する。
【0095】
例えば、仮想スイッチ(vSW1)は、ブロードキャストパケットを示すコード値(01-01-00)と、サブネット識別子(A)とを結合したマルチキャストアドレス値(01-01-00-00-00-0A)を生成したとする。それから、仮想スイッチ(vSW1)は、その生成したマルチキャストアドレス値(01-01-00-00-00-0A)を、出力対象のパケットの送信先MACアドレスフィールドに設定する。これにより、図6(A)で説明した仮想スイッチ送信パケットが生成される。仮想スイッチ(vSW1)は、その仮想スイッチ送信パケットを、物理ネットワーク38へ転送する。
【0096】
レイヤ2スイッチ装置51−1は、その仮想スイッチ送信パケットを、図6(A)に示すイーサネットフレームフォーマットのマルチキャストアドレスパケットであると認識する。すると、レイヤ2スイッチ装置51は、マルチキャストアドレス・ポート関係テーブル71−1から、受信したパケットのマルチキャストアドレス(01-01-00-00-00-0A)を検索する。その検索結果に基づいて、レイヤ2スイッチ装置51−1は、受信した仮想スイッチ送信パケットを、送信先ポートp12(パケットが到着したポートp11を除く)へ転送する。
【0097】
他のレイヤ2スイッチ装置51−4,51−3もそれぞれ同様に、受信した仮想スイッチ送信パケットを、マルチキャストアドレス・ポート関係テーブル71−4,71−3に従って、送信先ポートへ転送する。これにより、レイヤ2スイッチ装置51−1から転送されたサブネット識別子(A)を含むマルチキャストアドレスを有するパケットは、物理サーバ31−3へ送信される。この場合、レイヤ2スイッチ装置51−1から転送されたサブネット識別子(A)を含むマルチキャストアドレスを有するパケットは、レイヤ2スイッチ装置51−2及び物理サーバ31−2へは送信されない。
【0098】
本実施形態によれば、仮想スイッチは、サブネット識別子を含むマルチキャストアドレス情報を、IGMP reportパケットに乗せて物理ネットワークに送出する。これにより、物理ネットワークのレイヤ2スイッチ装置(L2SW)は、自身のどの物理ポート配下にどのマルチキャストアドレスに属する仮想スイッチがあるかを認識することが可能となる。その結果、レイヤ2スイッチ装置(L2SW)は、マルチキャストパケットを受信した場合に、自身の有するポートのうち、IGMP reportパケットを受信したポートに、マルチキャストパケットを転送できる。そのため、例えば、あるテナントの仮想マシンが送信したブロードキャストパケットは、当該テナントに属する仮想マシンが稼動している物理サーバのみに中継される。その結果、無駄なトラフィックの発生を抑制することが可能となる。
【0099】
<第3の実施形態>
第1の実施形態では、仮想スイッチが備えるアドレス変換テーブルに従って、仮想マシンから送出されたブロードキャストパケットまたはマルチキャストパケットの送信先アドレスの値を変換した。しかしながら、変換可能なブロードキャストまたはマルチアドレスの数は、変換後のマルチキャストアドレスに含まれる「MC種別」フィールドの長さに依存する。第1の実施形態では、「MC種別」フィールドが約1バイト分(図6の3バイト目)のため、最大でも256種類のマルチキャストアドレスまでしか対応できない。
【0100】
そこで、本実施形態では、次のことを実現する。仮想マシンより受信したパケットを、予め設定されたコード値とサブネット識別子とを含むマルチキャストアドレスを送信先MACとするMACヘッダでカプセリングする。なお、本実施形態において、第1または第2の実施形態と同じ構成、処理、機能等については同一の符号を付与し、その説明を省略する。
【0101】
図15は、本実施形態における仮想マシンを収容する仮想スイッチを含む物理サーバの一例を示す。仮想スイッチ32bは、フォワーディング処理部33、カプセリング部81、アドレス設定部82、フィルタリング部35、デカプセリング部83として機能するソフトウェアスイッチである。
【0102】
カプセリング部81は、フォワーディング処理部33からNIC37へ転送されるパケットに対して、新たなMACヘッダを付加する。
アドレス設定部82は、付加したMACヘッダの送信先MACアドレスと送信元MACアドレスフィールドに、アドレスを設定する。仮想マシンから送信されたパケットがユニキャストパケットの場合、アドレス設定部82は、付加したMACヘッダの送信先MACアドレスフィールドに、仮想マシンが送信したパケットの送信先MACアドレスと同じ値を設定する。このとき、アドレス設定部82は、付加したMACヘッダの送信元MACアドレスフィールドに、当該仮想スイッチ32bのMACアドレスを設定する。
【0103】
また、仮想マシンから送信されたパケットがブロードキャストまたはマルチキャストである場合、アドレス設定部82は、次を実行する。すなわち、アドレス設定部82は、付加したMACヘッダの送信先MACアドレスフィールドに、予め設定されたコード値と仮想マシンの属するテナントのサブネット識別子を含むマルチキャストアドレスを設定する。このとき、このとき、アドレス設定部82は、付加したMACヘッダの送信元MACアドレスフィールドに、当該仮想スイッチ32bのMACアドレスを設定する。
デカプセリング部83は、フィルタリング部35により透過されたパケットに付加されたMACヘッダを削除する。
【0104】
図16は、本実施形態における仮想スイッチ送信パケットの内容を示す。図16(A)に示すように、本実施形態の仮想スイッチ送信パケット90は、仮想マシン送信パケット91に、カプセリングヘッダ(92)を付加したものである。仮想マシン送信パケット(95)は、仮想マシンから送信される、「MACDA(送信先MACアドレス)」96、「MACSA(送信元MACアドレス)」97、「タイプ」98、「ペイロード」99を有するパケットである。
【0105】
カプセリングヘッダ(91)は、MACヘッダのフォーマットと同じである。すなわち、カプセリングヘッダ(91)は、「MACDA(送信先MACアドレス)」92、「MACSA(送信元MACアドレス)」93、「タイプ」94を含む。
【0106】
図16(B)は、ユニキャストの場合のカプセリングヘッダの送信先MACアドレス92の構成例を示す。図16(C)は、ブロードキャスト、及びマルチキャストの場合のカプセリングヘッダの送信先MACアドレス92の構成例を示す。
【0107】
図16(D)は、カプセリングヘッダの送信元MACアドレス93の構成例を示す。カプセリングヘッダの送信元MACアドレス93には、カプセリングヘッダを付加した仮想スイッチのMACアドレスが送信元仮想スイッチ識別子として、2バイト目〜6バイト目に設定される、
図16(B)〜図16(D)のフォーマットは、図6(B)〜図6(D)と同様であるため、その説明を省略する。
【0108】
図17は、本実施形態におけるパケット送信時の仮想スイッチ32の動作のフローを示す。仮想スイッチ32bは、例えば、仮想マシン(A−1)よりパケット(仮想マシン送信パケット)を受信すると、第1の実施形態で説明したように、レイヤ2パケットフォワーディング処理を実行し、FDB41を用いて、出力先ポートを解決する(S31,S32)。
【0109】
解決された出力先ポートが、仮想スイッチ32bの収容する他の仮想マシンVM(A−2)と接続されたポート、すなわち内部I/Fである場合、仮想スイッチ32bは、その内部I/Fへ仮想マシン送信パケットを転送する。仮想スイッチ32bは、その内部I/Fより、パケットを出力する(S37)。
【0110】
解決された出力先ポートが、物理ネットワーク38に繋がるポート(外部I/F)である場合、仮想スイッチ32bは、仮想マシン送信パケット(イーサネットフレーム)を、別のMACヘッダでカプセリングする(S33)。
【0111】
仮想スイッチ32bは、仮想マシン送信パケットのI/G識別子を参照し、その仮想マシン送信パケットがユニキャストパケットであるか否かを判定する(S34)。
そのパケットがユニキャストパケットであると判定された場合、仮想スイッチ32bは、S33で付加したMACヘッダ(カプセリングヘッダ)の送信先アドレスフィールドに、仮想マシン送信パケットの送金先MACアドレスと同じアドレスを設定する。また、仮想スイッチ32bは、付加したMACヘッダの送信元アドレスフィールドに、仮想スイッチ32b自身のMACアドレスを設定する(S35)。
【0112】
その仮想マシン送信パケットがブロードキャストまたはマルチキャストパケットであると判定された場合、仮想スイッチ32bは、宛先アドレスコード化処理を行う(S36)。ここでは、仮想スイッチ32bは、その仮想マシン送信パケットの送信元MACアドレスから送信元の仮想マシンのMACアドレスを取得する。仮想スイッチ32は、受信ルールテーブル42から、その送信元の仮想マシンのMACアドレスに対応するサブネット識別子を取得する。それから、仮想スイッチ32bは、アドレス変換テーブル43から、そのパケットの送信先アドレス(ブロードキャストアドレスまたはマルチキャストアドレス)に対応するコード値を取得する。仮想スイッチ32bは、その取得したコード値と、上記で取得したサブネット識別子とを結合させることにより、サブネット識別子を含むマルチキャストアドレスを生成する。このようにして、仮想スイッチ32bは、仮想マシン送信パケットの送信先MACアドレスを、サブネット識別子を含むマルチキャストアドレスに変換する。また、仮想スイッチ32bは、付加したMACヘッダの送信元アドレスフィールドに、仮想スイッチ32b自身のMACアドレスを設定する。なお、本実施形態では、仮想マシン送信パケットのMACアドレスの変換は、行わない。
【0113】
その後、仮想スイッチ32bは、S35で設定したマルチキャストパケットまたはS36で設定したマルチキャストパケット(仮想スイッチ送信パケット)を物理ネットワーク38へ出力する(S37)。
【0114】
図18は、本実施形態におけるパケット受信時の仮想スイッチ32の動作のフローを示す。物理サーバ31は、物理ネットワーク38から仮想スイッチ送信パケットを受信し、各仮想スイッチ32へ転送する。仮想スイッチ32bは、その転送された仮想スイッチ送信パケットのI/G識別子を参照して、そのパケットがユニキャストパケットであるか否かを判定する(S41)。
【0115】
そのパケットがユニキャストパケットであると判定された場合(S41で「Yes」)、仮想スイッチ32bは、そのパケットが当該仮想スイッチ32bに収容されている仮想マシン宛てのパケットであるかを判定する(S42)。すなわち、仮想スイッチ32bは、そのパケットの送信先MACアドレスが受信ルールテーブル42に登録されているかを判定する。
【0116】
そのパケットの送信先MACアドレスが受信ルールテーブル42に登録されている場合(S42で「Yes」)、仮想スイッチ32bは、当該パケットの受信を許可し、S47の処理へ進む。受信パケットの送信先MACアドレスが受信ルールテーブル42に登録されていない場合(S42で「No」)、仮想スイッチ32は、そのパケットを廃棄する(S43)。
【0117】
一方、S41において、そのパケットがユニキャストパケットでないと判定した場合(S41で「No」)、仮想スイッチ32bは、宛先アドレスデコード化処理を行う(S44)。ここでは、仮想スイッチ32bは、受信ルールテーブル42を用いて、そのパケットの送信先アドレスに含まれるサブネット識別子の解析を行う。すなわち、仮想スイッチ32bは、そのパケットの送信先アドレス(ブロードキャストアドレスまたはマルチキャストアドレス)の4バイト目から6バイト目の情報(サブネット識別子)を抽出する。仮想スイッチ32bは、受信ルールテーブル42から、その抽出したサブネット識別子を検索する。
【0118】
受信パケットの送信先アドレスに含まれるサブネット識別子が受信ルールテーブル42に登録されている場合(S45において、「Yes」)、仮想スイッチ32bは、そのパケットの受信を許可する。そのパケットの送信先アドレスに含まれるサブネット識別子が受信ルールテーブル42に登録されていない場合(S45において、「No」)、仮想スイッチ32bは、そのパケットを廃棄する(S46)。このフィルタリング処理により、同一サブネットに属する仮想マシンにパケットが届くようなサブネットを構築することができる。
【0119】
次に、仮想スイッチ32bは、フィルタリング処理において受信の許可がされたパケット(透過パケット)についてデカプセリング処理を行い、その透過パケットのカプセリングヘッダ(MACヘッダ)を削除する(S47)。これにより、その透過パケットは、カプセリングされる前の状態のパケット、すなわち仮想マシン送信パケットへ戻る。
【0120】
仮想スイッチ32bは、例えば、そのデカプセリングされたパケットについて、第1の実施形態で説明したように、レイヤ2パケットフォワーディング処理を実行し、FDB41を用いて、出力先ポートを解決する。仮想スイッチ32bは、そのデカプセリング処理後のパケット(仮想マシン送信パケット)を、解決された出力先ポートへ転送する(S48)。
【0121】
次に、図19を用いて、仮想マシンa1から仮想マシンa4に対してユニキャストパケットが転送される場合について、説明する。
図19は、本実施形態における仮想マシンからユニキャストキャストパケットを受信した場合の仮想スイッチの動作を説明するための図である。仮想スイッチvSW1(32b−1)〜vSW4(32b−4)はいずれも、フォワーディング処理部33、カプセリング部81、アドレス設定部82、フィルタリング部35、デカプセリング部83として機能するソフトウェアスイッチである。
【0122】
まず、仮想マシンa1は、仮想マシンa4に対してユニキャストパケットを送出する。この場合、当該パケットのイーサネットヘッダの送信先MACアドレスフィールドには、仮想マシンa4のMACアドレス(便宜上a4と表す)が設定されている。また、そのイーサネットヘッダの送信元MACアドレスフィールドには、仮想マシンa1自身のMACアドレス(便宜上a1と表す)が設定されている。
【0123】
仮想スイッチ(vSW1)は、仮想マシンa1から受信したユニキャストパケット(仮想マシン送信パケット)の送信先MACアドレスフィールドと、FDB41−1とを参照して、出力先のポートを決定する。仮想スイッチ(vSW1)の保有するFDB41−1によれば、アドレスa4に対応する出力先は、物理インターフェースであるNICと繋がっているポートp0である。よって、仮想スイッチ(vSW1)は、ポートp0へパケットを転送する。
【0124】
このとき、仮想スイッチ(vSW1)は、仮想マシン送信パケットに対して新たなMACヘッダ(カプセリングヘッダ)を付加する。このとき、仮想スイッチ(vSW1)は、カプセリングヘッダの送信先アドレスフィールドに、仮想マシン送信パケットの送信先アドレス(a4)を設定する。また、仮想スイッチ(vSW1)は、カプセリングヘッダの送信元アドレスフィールドに、仮想スイッチ自身のMACアドレス(便宜上vSW1と表す)を設定する。仮想スイッチ(vSW1)は、そのアドレス設定後のパケット(仮想スイッチ送信パケット)を、物理ネットワークへ送信する。
【0125】
仮想スイッチ送信パケットは、物理ネットワーク38内のレイヤ2スイッチ装置(L2SW)51によってカプセリングヘッダ部分が参照されて、いずれかの出力ポートへと中継される。本実施形態では、各レイヤ2スイッチ装置51のFDB内にMACアドレスa4に関する情報が登録されていないことを想定する。この場合、レイヤ2スイッチ装置51は、宛先ポートの解決をすることができない。そのため、レイヤ2スイッチ装置51は、自身の物理スイッチの全ポートに対してパケットを転送(フラッディング)する。その結果、仮想マシンa4宛てのユニキャストパケットは、物理サーバ31−2及び物理サーバ31−3へ送信される。
【0126】
物理ネットワーク38から仮想スイッチ送信パケットを受信した物理サーバ31−2及び物理サーバ31−3の仮想スイッチ(vSW2,vSW3,vSW4)は、到着したパケットのI/G識別子を識別する。
【0127】
到着したパケットがユニキャストパケットの場合には、仮想スイッチは、そのパケットのカプセリングヘッダ部分の送信先MACアドレス値と自身の受信ルールテーブルを照らし合わせて、受信ルール情報に一致するパケットを透過させる。この例では、物理サーバ3の仮想スイッチ(vSW3)の有する受信ルールテーブル42−3にアドレス値a4が含まれているので、物理サーバ31−3の仮想スイッチvSW3がその受信パケットを透過させる。一方、物理サーバ31−2のvSW2と物理サーバ31−3のvSW4は、その受信パケットを廃棄する。
【0128】
その後、仮想スイッチ(vSW3)は、デカプセリング処理を行い、その透過パケットからカプセリングヘッダを削除する。その後、仮想スイッチ(vSW3)は、パケットフォワーディング処理を行って、仮想マシンa4へデカプセリング処理されたパケット(カプセリング前の仮想マシン送信パケット(ユニキャストパケット))を転送する。
【0129】
次に、仮想マシンa1から同じテナントに属する仮想マシンa2,a3,a4へブロードキャストパケットが転送される場合について、説明する。
図20は、本実施形態における仮想マシンからブロードキャストパケット(またはマルチキャストパケット)を受信した場合の仮想スイッチの動作を説明するための図である。仮想マシンa1がブロードキャストパケットを送信する場合を例に説明する。
【0130】
この例では、当該パケットのイーサネットヘッダの送信先MACアドレスフィールドには、ブロードキャストを示すMACアドレス(便宜上BCと表す)が設定されている。また、その送信元MACアドレスフィールドには、仮想マシン自身のMACアドレス(便宜上a1と表す)が設定されている。
【0131】
仮想スイッチ(vSW1)は、仮想マシンa1から送信されたパケット(仮想マシン送信パケット)を受信する。その受信パケットは、ブロードキャストパケットである。そのため、仮想スイッチ(vSW1)は、FDB41−1を用いて、パケットが到着したポートp1を除く、仮想スイッチの全ポートへブロードキャストパケットを転送する。その結果、仮想マシンa2にブロードキャストパケットが到達する。
【0132】
一方、物理ネットワークとつながるポートp0へ転送されるブロードキャストパケットについて、仮想スイッチ(vSW1)は、そのパケットに対して新たなMACヘッダを付加する。
【0133】
仮想スイッチ(vSW1)は、付加されたMACヘッダ(カプセリングヘッダ)の送信元アドレスフィールドに、仮想スイッチ(vSW1)自身のMACアドレスを設定する。
また、仮想スイッチ(vSW1)は、カプセリングヘッダの送信先アドレスフィールドに、次のアドレスを設定する。ここでは、まず、仮想スイッチ(vSW1)は、自身に収容されている仮想マシンのサブネット識別子(A)を、受信ルールテーブル42−1より取得する。仮想スイッチ(vSW1)は、予め設定されているコード値(例えば、01-01-00)と、そのサブネット識別子(A)とを結合した6バイトのデータ(01-01-00-00-00-0A)を作成する。ここで、その予め設定されたコード値は、少なくとも、I/G識別子においてブロードキャストまたはマルチキャストであると識別できる3バイトのコードであれば特に限定されない。なお、そのコード値は、アドレス変換テーブル43に設定されていてもよい。
【0134】
それから、仮想スイッチ(vSW1)は、その作成した6バイトのデータを、カプセリングヘッダの送信先MACアドレスフィールドに設定する。これにより、図16で説明した仮想スイッチ送信パケットが生成される。
【0135】
上記処理によって生成された仮想スイッチ送信パケットは、ポートp0より物理ネットワーク38へ転送される。物理ネットワーク38のレイヤ2スイッチ装置(L2SW)51は、その仮想スイッチ送信パケットを、イーサネットフレームフォーマットのマルチキャストアドレスパケットであると認識する。すると、レイヤ2スイッチ装置(L2SW)51は、マルチキャスト中継処理を行って、自身のいずれかのポートへ転送する。この場合、レイヤ2スイッチ装置(L2SW)51は、多くの場合、そのカプセル化されたパケットをブロードキャストパケットと同様に、全ての物理ポートへとフラッディングする。この結果、そのマルチキャストパケット(仮想スイッチ送信パケット)は、物理サーバ31−2及び物理サーバ31−3に送信される。
【0136】
物理ネットワーク38からパケットを受信した物理サーバ31−2及び物理サーバ31−3の仮想スイッチ(vSW2,vSW3,vSW4)は、到着したパケットのI/G識別子を識別する。
【0137】
到着したパケットがマルチキャストパケットである場合、仮想スイッチは、そのパケットのカプセリングヘッダ内の送信先MACアドレス値の下位3バイト(4バイト目から6バイト目)に格納されたサブネット識別子と受信ルールテーブルを照らし合わせる。仮想スイッチは、受信ルール情報に一致するパケットを透過させる。
【0138】
この例では、物理サーバ31−3の仮想スイッチ(vSW3)の有する受信ルールテーブル42−3にサブネット識別子(A)が含まれている。この場合、物理サーバ31−3の仮想スイッチvSW3は、そのパケットを透過させる。
【0139】
一方、物理サーバ31−2のvSW2と物理サーバ31−2のvSW4は、受信ルールテーブルにサブネット識別子(A)を含んでいない。この場合、物理サーバ31−2の仮想スイッチ(vSW2)と物理サーバ31−3の仮想スイッチ(vSW4)は、そのパケットを廃棄する。
【0140】
仮想スイッチ(vSW3)は、デカプセリング処理を行い、透過パケットからカプセリングヘッダ部分を削除する。その後、仮想スイッチ(vSW3)は、パケットフォワーディング処理を行って、仮想マシンa3とa4へデカプセリング処理された透過パケット(カプセリング前のブロードキャストパケット、すなわち、仮想マシン送信パケット)を転送する。
【0141】
このように、本実施形態では、新たなイーサネットヘッダを付加することで、仮想マシンから送出されたパケットが透過的にネットワーク上を転送されるようになる。そのため、第1の実施形態のようなマルチキャストアドレス数の制約を回避することが可能となる。
【0142】
図21は、第1〜第3の実施形態における物理サーバのハードウェアの構成ブロック図の一例を示す。物理サーバ31は、制御部102、ROM103、RAM106、NIC37、記憶装置107、出力I/F101、入力I/F105、読み取り装置108、バス109、出力機器111、入力機器112によって構成されている。ROMは、リードオンリメモリを示す。RAMは、ランダムアクセスメモリを示す。I/Fは、インターフェースを示す。
【0143】
バス109には、制御部102、ROM103、RAM106、NIC37、記憶装置107、出力I/F101、入力I/F105、及び読み取り装置108等が接続されている。読み取り装置108は、可搬型記録媒体を読み出す装置である。出力機器111は、出力I/F101に接続されている。入力機器112は、入力I/F105に接続にされている。
【0144】
記憶装置107としては、ハードディスクドライブ、フラッシュメモリ装置、磁気ディスク装置など様々な形式の記憶装置を使用することができる。RAM106は、例えば、データを一時的に格納する作業領域として用いられる。
【0145】
記憶装置107またはROM103には、例えば、オペレーティングシステム(Operating System(OS))等のプログラム等の情報が格納されている。また、記憶装置107またはROM103には、仮想マシン、仮想スイッチ等を実現するソフトウェア、FDB41、受信ルールテーブル42、アドレス変換テーブル等の情報が格納されている。
【0146】
制御部102は、記憶装置107等に格納した後述する処理を実現するプログラムを読み出し、当該プログラムを実行する演算処理装置である。
本実施形態において説明した仮想スイッチの動作を実現するプログラムは、プログラム提供者側から物理ネットワーク38、およびNIC37を介して、例えば記憶装置107に格納してもよい。また、後述する実施形態で説明する処理を実現するプログラムは、市販され、流通している可搬型記憶媒体に格納されていてもよい。この場合、この可搬型記憶媒体は読み取り装置108に設定されて、制御部102によってそのプログラムが読み出されて、実行されてもよい。可搬型記憶媒体としてはCD−ROM、フレキシブルディスク、光ディスク、光磁気ディスク、ICカード、USBメモリ装置など様々な形式の記憶媒体を使用することができる。このような記憶媒体に格納されたプログラムが読み取り装置108によって読み取られる。
【0147】
また、入力機器112には、キーボード、マウス、電子カメラ、ウェブカメラ、マイク、スキャナ、センサ、タブレット、タッチパネルなどを用いることが可能である。また、出力機器111には、ディスプレイ、プリンタ、スピーカなどを用いることが可能である。また、物理ネットワーク38は、インターネット、LAN、WAN、専用線、有線、無線等の通信網であってよい。
【0148】
第1〜第3の実施形態によれば、パケット変換プログラムは、記憶部を備えるコンピュータに、以下の処理を実行させる。ここで、記憶部は、仮想スイッチと接続されている仮想計算機のMACアドレスと仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係を記憶する。また、記憶部は、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する。コンピュータは、仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得したパケットのMACアドレスに対応するサブネット識別子を第1対応関係から得る。コンピュータは、取得したパケットのMACアドレスに対応するパケット種別識別子を第2対応関係から得る。コンピュータは、ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、第1対応関係から得られたサブネット識別子と前記第2対応関係から得られたパケット種別識別子とを設定する。これによって、コンピュータは、送信対象パケットをマルチキャストのパケットに変換する。コンピュータは、変換して得られた対象パケットを、ネットワークを介して他のコンピュータに送信する。第1対応関係の一例は、受信ルールテーブル42である。第2対応関係の一例は、アドレス変換テーブルである。記憶部の一例は、記憶部39である。パケット種別識別子の一例は、コード値である。送信対象パケットをマルチキャストのパケットに変換する一例は、S4、S36の処理である。
【0149】
このように構成することにより、MACヘッダのアドレス空間を有効活用して、サブネット識別子のアドレス空間を拡張し、物理ネットワーク上に構築可能なサブネット数を向上させることができる。
【0150】
また、送信対象パケットは、例えば、仮想計算機より取得したパケットである。送信対象パケットをマルチキャストのパケットに変換する場合、コンピュータは、取得したパケットのMACアドレスのフィールドに、第1対応関係から得られたサブネット識別子と第2対応関係から得られたパケット種別識別子とを設定する。これにより、コンピュータは、取得したパケットをマルチキャストのパケットに変換する。
【0151】
このように構成することにより、サブネット識別子のアドレス空間を拡張させることができる。
パケット変換プログラムは、コンピュータに、さらに、仮想計算機より取得したパケットに、MACヘッダを付加する処理を実行させる。送信対象パケットは、例えば、MACヘッダが付加されたパケットである。コンピュータは、送信対象パケットをマルチキャストのパケットに変換する場合、付加したMACヘッダのMACアドレスのフィールドに、第1対応関係から得られたサブネット識別子とブロードキャストまたはマルチキャストを示すパケット識別子とを設定する。これにより、コンピュータは、MACヘッダが付加されたパケットをマルチキャストのパケットに変換する。
【0152】
このように構成することにより、マルチキャストアドレス数の制約を回避することが可能となる。
パケット変換プログラムは、コンピュータに、さらに、次の処理を実行させる。すなわち、コンピュータは、第1対応関係から得られたサブネット識別子と第2対応関係から得られたパケット種別識別子とにより表されるマルチキャストアドレスにより示されるマルチキャストメンバへ参加するための参加宣言情報を送信する。
【0153】
このように構成することにより、同一テナントの仮想マシンが稼動している物理サーバのみにパケットが中継されるので、無駄なトラフィックの発生を抑制することが可能となる。
【0154】
また、パケット変換プログラムは、記憶部を備えるコンピュータに、以下の処理を実行させる。ここで、記憶部は、仮想スイッチと接続されている仮想計算機のMACアドレスと仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係を記憶する。また、記憶部は、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する。コンピュータは、ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信したパケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出する。コンピュータは、抽出したサブネット識別子が第1対応関係にある場合、受信したパケットのMACヘッダを変更することにより、受信したパケットを元のブロードキャストまたはマルチキャストのパケットに変換する。コンピュータは、変換して得たパケットを仮想計算機に送信する。受信したパケットを元のブロードキャストまたはマルチキャストのパケットに変換する一例は、S17,S47の処理である。
【0155】
このように構成することにより、MACヘッダのアドレス空間を有効活用して、サブネット識別子のアドレス空間を拡張し、物理ネットワーク上に構築可能なサブネット数を向上させることができる。
【0156】
コンピュータは、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する場合、抽出した前記パケット種別識別子に対応するMACアドレスを第2対応関係から得る。コンピュータは、得たMACアドレスを、受信したパケットのMACアドレスのフィールドに設定することによって、受信したパケットを元のブロードキャストまたはマルチキャストのパケットに変換する。
【0157】
このように構成することにより、サブネット識別子のアドレス空間を拡張させることができる。
コンピュータは、受信したパケットを元のブロードキャストまたはマルチキャストのパケットに変換する場合、受信したパケットの第1のMACアドレスを削除して第2のMACアドレスを有効にする。これにより、コンピュータは、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する。
【0158】
このように構成することにより、マルチキャストアドレス数の制約を回避することが可能となる。
また、コンピュータは、抽出したサブネット識別子が第1対応関係になければ、受信した前記パケットを廃棄する。
【0159】
これにより、サブネット識別子が異なるテナントに属する仮想マシンへパケットが送信されることがないので、サブネットのセキュリティを向上させることができる。
なお、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【0160】
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータに、
前記仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得した該パケットのMACアドレスに対応するサブネット識別子を前記第1対応関係から得て、
取得した前記パケットのMACアドレスに対応するパケット種別識別子を前記第2対応関係から得て、
ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、前記対象パケットをマルチキャストのパケットに変換し、
変換して得られた前記対象パケットを、前記ネットワークを介して前記他のコンピュータに送信する、
処理を実行させるパケット変換プログラム。
(付記2)
前記送信対象パケットは、取得した前記パケットであり、
前記送信対象パケットをマルチキャストのパケットに変換する場合、取得した前記パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、取得した前記パケットをマルチキャストのパケットに変換する
処理を実行させる付記1記載のパケット変換プログラム。
(付記3)
前記コンピュータに、さらに、
取得した前記パケットに、MACヘッダを付加する
処理を実行させ、
前記送信対象パケットは、前記MACヘッダが付加された前記パケットであり、
前記送信対象パケットをマルチキャストのパケットに変換する場合、付加した前記MACヘッダのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子とブロードキャストまたはマルチキャストを示すパケット識別子とを設定することによって、前記MACヘッダが付加された前記パケットをマルチキャストのパケットに変換する
処理を実行させる付記1記載のパケット変換プログラム。
(付記4)
前記コンピュータに、さらに、
前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とにより表されるマルチキャストアドレスにより示されるマルチキャストメンバへ参加するための参加宣言情報を送信する
処理を実行させる付記1〜3のうちいずれか1項に記載のパケット変換プログラム。
(付記5)
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータに、
ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信した前記パケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出し、
抽出した前記サブネット識別子が前記第1対応関係にある場合、受信した前記パケットのMACヘッダを変更することにより、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換し、
変換して得た前記パケットを前記仮想計算機に送信する、
処理を実行させるパケット変換プログラム。
(付記6)
受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する場合、抽出した前記パケット種別識別子に対応するMACアドレスを前記第2対応関係から得て、
得た前記MACアドレスを、受信した前記パケットのMACアドレスのフィールドに設定することによって、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換し、
処理を実行させる付記5記載のパケット変換プログラム。
(付記7)
受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する場合、受信した前記パケットの第1のMACアドレスを削除して第2のMACアドレスを有効にすることによって、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する
処理を実行させる付記5記載のパケット変換プログラム。
(付記8)
抽出した前記サブネット識別子が前記第1対応関係になければ、受信した前記パケットを廃棄する、
処理を実行させる付記5〜7のうち1いずれか1項に記載のパケット変換プログラム。
(付記9)
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部と、
前記仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得した該パケットのMACアドレスに対応するサブネット識別子を前記第1対応関係から得る第1取得部と、
取得した前記パケットのMACアドレスに対応するパケット種別識別子を前記第2対応関係から得る第2取得部と、
ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、前記対象パケットをマルチキャストのパケットに変換する変換部と、
変換して得られた前記対象パケットを、前記ネットワークを介して前記他のコンピュータに送信する送信部と
を備えることを特徴とするパケット変換装置。
(付記10)
前記送信対象パケットは、取得した前記パケットであり、
前記変換部は、取得した前記パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、取得した前記パケットをマルチキャストのパケットに変換する
ことを特徴とする付記9に記載のパケット変換装置。
(付記11)
前記パケット変換装置は、さらに、
取得した前記パケットに、MACヘッダを付加する付加部
を備え、
前記送信対象パケットは、前記MACヘッダが付加された前記パケットであり、
前記変換部は、付加した前記MACヘッダのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子とブロードキャストまたはマルチキャストを示すパケット識別子とを設定することによって、前記MACヘッダが付加された前記パケットをマルチキャストのパケットに変換する
ことを特徴とする付記9に記載のパケット変換装置。
(付記12)
前記パケット変換装置は、さらに、
前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とにより表されるマルチキャストアドレスにより示されるマルチキャストメンバへ参加するための参加宣言情報を送信する参加宣言部
を備えることを特徴とする付記9〜11のうちいずれか1項に記載のパケット変換装置。
(付記13)
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部と、
ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信した前記パケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出する抽出部と、
抽出した前記サブネット識別子が前記第1対応関係にある場合、受信した前記パケットのMACヘッダを変更することにより、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する変換部と、
変換して得た前記パケットを前記仮想計算機に送信する送信部と、
を備えることを特徴とするパケット変換装置。
(付記14)
前記変換部は、抽出した前記パケット種別識別子に対応するMACアドレスを前記第2対応関係から得て、得た前記MACアドレスを、受信した前記パケットのMACアドレスのフィールドに設定することによって、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する
ことを特徴とする付記13記載のパケット変換装置。
(付記15)
前記変換部は、受信した前記パケットの第1のMACアドレスを削除して第2のMACアドレスを有効にすることによって、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する
ことを特徴とする付記13記載のパケット変換装置。
(付記16)
前記抽出部は、抽出した前記サブネット識別子が前記第1対応関係になければ、受信した前記パケットを廃棄する、
ことを特徴とする付記13〜15のうち1いずれか1項に記載のパケット変換装置。
(付記17)
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータは、
前記仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得した該パケットのMACアドレスに対応するサブネット識別子を前記第1対応関係から得て、
取得した前記パケットのMACアドレスに対応するパケット種別識別子を前記第2対応関係から得て、
ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、前記対象パケットをマルチキャストのパケットに変換し、
変換して得られた前記対象パケットを、前記ネットワークを介して前記他のコンピュータに送信する、
処理を実行するパケット変換方法。
(付記18)
前記送信対象パケットは、取得した前記パケットであり、
前記コンピュータは、前記送信対象パケットをマルチキャストのパケットに変換する場合、取得した前記パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、取得した前記パケットをマルチキャストのパケットに変換する
処理を実行させる付記17記載のパケット変換方法。
(付記19)
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータは、
ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信した前記パケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出し、
抽出した前記サブネット識別子が前記第1対応関係にある場合、受信した前記パケットのMACヘッダを変更することにより、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換し、
変換して得た前記パケットを前記仮想計算機に送信する、
処理を実行するパケット変換方法。
(付記20)
前記コンピュータは、
受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する場合、抽出した前記パケット種別識別子に対応するMACアドレスを前記第2対応関係から得て、
得た前記MACアドレスを、受信した前記パケットのMACアドレスのフィールドに設定することによって、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換し、
処理を実行する付記19記載のパケット変換方法。
【符号の説明】
【0161】
30 仮想マシン
31 物理サーバ
32,32a,32b 仮想スイッチ
33 フォワーディング処理部
34 送信先アドレス変換部
35 フィルタリング処理部
36 送信先アドレス逆変換部
37 NIC
38 物理ネットワーク
39 記憶部
41 FDB
42 受信ルールテーブル
43 アドレス変換テーブル
61 IGMP送出部
81 カプセリング部
82 アドレス設定部
83 デカプセリング部

【特許請求の範囲】
【請求項1】
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータに、
前記仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得した該パケットのMACアドレスに対応するサブネット識別子を前記第1対応関係から得て、
取得した前記パケットのMACアドレスに対応するパケット種別識別子を前記第2対応関係から得て、
ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、前記対象パケットをマルチキャストのパケットに変換し、
変換して得られた前記対象パケットを、前記ネットワークを介して前記他のコンピュータに送信する、
処理を実行させるパケット変換プログラム。
【請求項2】
前記送信対象パケットは、取得した前記パケットであり、
前記送信対象パケットをマルチキャストのパケットに変換する場合、取得した前記パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、取得した前記パケットをマルチキャストのパケットに変換する
処理を実行させる請求項1記載のパケット変換プログラム。
【請求項3】
前記コンピュータに、さらに、
取得した前記パケットに、MACヘッダを付加する
処理を実行させ、
前記送信対象パケットは、前記MACヘッダが付加された前記パケットであり、
前記送信対象パケットをマルチキャストのパケットに変換する場合、付加した前記MACヘッダのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子とブロードキャストまたはマルチキャストを示すパケット識別子とを設定することによって、前記MACヘッダが付加された前記パケットをマルチキャストのパケットに変換する
処理を実行させる請求項1記載のパケット変換プログラム。
【請求項4】
前記コンピュータに、さらに、
前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とにより表されるマルチキャストアドレスにより示されるマルチキャストメンバへ参加するための参加宣言情報を送信する
処理を実行させる請求項1〜3のうちいずれか1項に記載のパケット変換プログラム。
【請求項5】
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータに、
ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信した前記パケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出し、
抽出した前記サブネット識別子が前記第1対応関係にある場合、受信した前記パケットのMACヘッダを変更することにより、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換し、
変換して得た前記パケットを前記仮想計算機に送信する、
処理を実行させるパケット変換プログラム。
【請求項6】
受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する場合、抽出した前記パケット種別識別子に対応するMACアドレスを前記第2対応関係から得て、
得た前記MACアドレスを、受信した前記パケットのMACアドレスのフィールドに設定することによって、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換し、
処理を実行させる請求項5記載のパケット変換プログラム。
【請求項7】
受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する場合、受信した前記パケットの第1のMACアドレスを削除して第2のMACアドレスを有効にすることによって、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する
処理を実行させる請求項5記載のパケット変換プログラム。
【請求項8】
抽出した前記サブネット識別子が前記第1対応関係になければ、受信した前記パケットを廃棄する、
処理を実行させる請求項5〜7のうち1いずれか1項に記載のパケット変換プログラム。
【請求項9】
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部と、
前記仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得した該パケットのMACアドレスに対応するサブネット識別子を前記第1対応関係から得る第1取得部と、
取得した前記パケットのMACアドレスに対応するパケット種別識別子を前記第2対応関係から得る第2取得部と、
ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、前記対象パケットをマルチキャストのパケットに変換する変換部と、
変換して得られた前記対象パケットを、前記ネットワークを介して前記他のコンピュータに送信する送信部と
を備えることを特徴とするパケット変換装置。
【請求項10】
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部と、
ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信した前記パケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出する抽出部と、
抽出した前記サブネット識別子が前記第1対応関係にある場合、受信した前記パケットのMACヘッダを変更することにより、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換する変換部と、
変換して得た前記パケットを前記仮想計算機に送信する送信部と、
を備えることを特徴とするパケット変換装置。
【請求項11】
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータは、
前記仮想計算機からブロードキャストまたはマルチキャストのMACアドレスを含むパケットを取得すると、取得した該パケットのMACアドレスに対応するサブネット識別子を前記第1対応関係から得て、
取得した前記パケットのMACアドレスに対応するパケット種別識別子を前記第2対応関係から得て、
ネットワークを介して他のコンピュータに送信される送信対象パケットのMACアドレスのフィールドに、前記第1対応関係から得られた前記サブネット識別子と前記第2対応関係から得られた前記パケット種別識別子とを設定することによって、前記対象パケットをマルチキャストのパケットに変換し、
変換して得られた前記対象パケットを、前記ネットワークを介して前記他のコンピュータに送信する、
処理を実行するパケット変換方法。
【請求項12】
仮想スイッチと接続されている仮想計算機のMACアドレスと該仮想計算機の属するテナントを識別するサブネット識別子との第1対応関係と、ブロードキャストまたはマルチキャストを表すMACアドレスとパケット種別識別子との第2対応関係とを記憶する記憶部を備えるコンピュータは、
ネットワークを介して他のコンピュータからマルチキャストのパケットを受信すると、受信した前記パケットのMACアドレスのフィールドからサブネット識別子とパケット種別識別子を抽出し、
抽出した前記サブネット識別子が前記第1対応関係にある場合、受信した前記パケットのMACヘッダを変更することにより、受信した前記パケットを元のブロードキャストまたはマルチキャストのパケットに変換し、
変換して得た前記パケットを前記仮想計算機に送信する、
処理を実行するパケット変換方法。

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図21】
image rotate

【図1】
image rotate

【図9】
image rotate

【図10】
image rotate

【図14】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−253572(P2012−253572A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−124661(P2011−124661)
【出願日】平成23年6月2日(2011.6.2)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】