【文献】
OpenFlow Management and Configuration Protocol(OF-Config 1.1),OPEN NETWORKING FOUNDATION,2012年 6月25日
(58)【調査した分野】(Int.Cl.,DB名)
トンネルエンドポイントから出力されるパケットの追加ヘッダに含まれる仮想ネットワーク識別子に対応する情報を、オリジナルヘッダの所定の領域に書き込むパケット書換ルールを記憶するパケット書換ルール記憶部と、
前記パケット書換ルールに従い、送信パケットの前記オリジナルヘッダに前記仮想ネットワーク識別子に対応する情報を書き込んだパケットに書き換えるパケット書換部とを備え、
前記トンネルエンドポイントと、前記オリジナルヘッダの内容を参照してパケットに適用する処理を決定するスイッチと、の間に配置されるパケット書換装置。
前記パケット書換ルールとして、オリジナルヘッダの所定の領域の内容を、前記制御装置が前記スイッチに設定した制御情報のマッチ条件に用いられた内容に書き換えるパケット書換ルールを用いる請求項3のパケット書換装置。
前記パケット書換ルールとして、オリジナルヘッダの所定の領域の内容を、前記仮想ネットワークを一意に識別する識別子に書き換えるパケット書換ルールを用いる請求項1から4いずれか一のパケット書換装置。
トンネルエンドポイントから出力されるパケットの追加ヘッダに含まれる仮想ネットワーク識別子に対応する情報を、オリジナルヘッダの所定の領域に書き込むパケット書換ルールを作成するパケット書換ルール作成部と、
スイッチと前記トンネルエンドポイントとの間に配置されたパケット書換装置に前記作成したパケット書換ルールを配付する制御部とを備える制御装置。
トンネルエンドポイントから出力されるパケットの追加ヘッダに含まれる仮想ネットワーク識別子に対応する情報を、オリジナルヘッダの所定の領域に書き込むパケット書換ルールに従い、送信パケットの前記オリジナルヘッダに前記仮想ネットワーク識別子に対応する情報を書き込んだパケットに書き換えるステップと、
前記書き換えたパケットを所定の物理ポートを介してスイッチに送信するステップと、を含むパケット送信方法。
トンネルエンドポイントから出力されるパケットの追加ヘッダに含まれる仮想ネットワーク識別子に対応する情報を、オリジナルヘッダの所定の領域に書き込むパケット書換ルールに従い、送信パケットの前記オリジナルヘッダに前記仮想ネットワーク識別子に対応する情報を書き込んだパケットに書き換える処理と、
前記書き換えたパケットを所定の物理ポートを介してスイッチに送信する処理と、
を前記トンネルエンドポイントから出力されたパケットが入力されるコンピュータに実行させるプログラム。
【発明を実施するための形態】
【0017】
はじめに本願開示の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本願開示を図示の態様に限定することを意図するものではない。
【0018】
本願開示の一実施形態において、
図1に示すように、トンネルエンドポイントとスイッチとの間に配置されるパケット書換装置1000Aにて実現できる。このパケット書換装置1000Aは、トンネルエンドポイントから出力されるパケットの追加ヘッダに含まれる仮想ネットワーク識別子に対応する情報を、オリジナルヘッダの所定の領域に書き込むパケット書換ルールを記憶するパケット書換ルール記憶部1005と、パケット書換部1004とを備える。そして、前記パケット書換部1004は、前記パケット書換ルールに従い、前記トンネルエンドポイントの出力パケットを、前記オリジナルヘッダに前記仮想ネットワーク識別子に対応する情報を書き込んだパケットに書き換える処理を実行する。
【0019】
以上のように、トンネルエンドポイントとスイッチとの間に、上記したパケット書換装置1000Aを配置することで、カプセルヘッダ(追加ヘッダ)に含まれるVNIやTNIといった仮想ネットワーク識別子(テナントID)そのものあるいはこれらに対応する情報が、オリジナルヘッダに書き込まれることになる。そして、パケット書換装置1000A間に配置されたスイッチが、書換後のヘッダに含まれる仮想ネットワーク識別子(テナントID)等に基づいた転送処理等を行なうことが可能となる(
図9、
図11参照)。なお、必要に応じて、受信側のトンネルエンドポイントにおいても、同一のパケット書換ルールを配付したパケット書換装置1000Aを配置し、受信パケットを書き換え前の状態に復元する処理を行わせることが望ましい。また、これにより双方向のフロー制御を実現することが可能となる。
【0020】
[第1の実施形態]
続いて、パケット書換装置をデータセンタ等の物理サーバ内に内蔵させた第1の実施形態について図面を参照して詳細に説明する。
図2は、第1の実施形態の通信システムの構成を示す図である。
図2を参照すると、それぞれの拠点に配置された2台の物理サーバ1000と、拠点間を接続するスイッチ10と、これらスイッチ10を制御するコントローラ100とを接続した構成が示されている。なお、
図2に示した構成は、例えば、データセンタ間を接続する構成として採用することができる。
【0021】
コントローラ100は、図中破線で表した制御チャネルを介して、スイッチ10と物理サーバ1000に接続されている。
【0022】
スイッチ10は、コントローラ100により設定された制御情報(フローエントリ)に従い、パケットの書き換え、転送などを行うオープンフロースイッチによって構成される。
【0023】
物理サーバ1000は、
図3の詳細図で示されるように、VM(Virtual Machine)1001と、仮想スイッチ1002と、トンネルエンドポイント1003と、パケット書換部1004と、パケット書換ルール記憶部1005と、コントローラ通信部1006とを備えている。なお、
図3のパケット書換部1004と、パケット書換ルール記憶部1005とが
図2のパケット書換モジュール1004Aに相当する。また
図2においてコントローラ通信部1006は省略されている。
【0024】
VM1001は、図示省略するハイパーバイザ等により管理され、物理サーバ上の仮想化プラットフォーム上で動作する仮想マシンである。VM1001は、いずれかの仮想ネットワーク(以下、「テナント」ともいう。)に属しており、仮想スイッチ1002、トンネルエンドポイント1003、パケット書換部1004を介して、他の物理サーバ上で動作する同一仮想ネットワークに属するVM1001と通信を行うことが可能となっている。
【0025】
仮想スイッチ1002は、テナント毎にMAC(Media Access Protocol)アドレステーブルを保持し、VM1001又はトンネルエンドポイント1003から受信したパケットを適切な宛先に転送する。より具体的には、仮想スイッチ1002は、パケットを受信すると、当該パケットが属するテナント毎のMACアドレステーブルを参照し、同一テナントの該当ポートにパケットを転送する。
【0026】
そのため、仮想スイッチ1002は、自身に接続する各VM1001がそれぞれどのテナントに属するのかといった情報を保持している。
図4は、仮想スイッチ1002が保持するテナント情報の一例である。仮想スイッチ1002は、
図4に示すテナント情報を参照し、受信したパケットの送信元のVMが属するテナントのIDを特定する。なお、
図4に示すテナント情報は、例えば、コントローラ通信部1006を介して、コントローラが保持するテナント情報と同期管理される。
【0027】
仮想スイッチ1002は、受信したパケットの宛先となっているVMが同一仮想スイッチ(自装置)に接続されている場合、そのVMへとパケットを転送する。一方、受信したパケットの宛先が、他の物理サーバ上で動作するVMであった場合、仮想スイッチ1002は、その物理サーバへとパケットを届けるために、トンネルエンドポイント1003へとパケットを転送する。その際、仮想スイッチ1002は、VMが属するテナントIDをトンネルエンドポイント1003へと通知する。
【0028】
なお、上記のような仮想スイッチに代えて、コントローラから設定される制御情報(フローエントリ)に従って動作するスイッチ10相当のオープンフロースイッチを仮想化した仮想スイッチを用いることもできる。
【0029】
トンネルエンドポイント(TEP)1003は、VXLANやNVGREといったトンネリングプロトコルに従いパケットをカプセル化する。また、トンネルエンドポイント1003は、VM管理情報を保持する。
【0030】
図5は、トンネルエンドポイント1003が保持するVM管理情報の例である。
図5の例では、VMが、どのテナントに属し、どの物理サーバ上に存在するかといった情報が記憶されている。
【0031】
トンネルエンドポイント1003は、仮想スイッチ1002からパケットを受信すると、そのパケットの送信元のVMが属するテナントIDとパケットの宛先MACアドレスをキーに、
図5のVM管理情報から該当するエントリを検索する。そして、前記エントリを基に、パケットをカプセル化し、パケット書換部1004へ前記カプセル化後のパケットを転送する。また、トンネルエンドポイントは、前記VM管理情報から検索した物理サーバのIP(Internet Protocol)アドレスと、物理サーバのMACアドレスを前記カプセル化したパケットの外側のヘッダ(追加ヘッダ、アウターヘッダ)に格納する。
【0032】
また逆に、トンネルエンドポイント1003は、パケット書換部1004からパケットを受信すると、カプセル化されたパケットを元のパケットに戻して(デカプセル化)から、仮想スイッチ1002に転送する。またその際に、トンネルエンドポイント1003は、仮想スイッチ1002に対し、カプセル化用のヘッダ(追加ヘッダ、アウターヘッダ)に埋め込まれたテナントIDを通知する。
【0033】
パケット書換ルール記憶部1005には、カプセル化されたパケットをどのように書き換えるかを示すルールが保存される。
図6は、パケット書換ルール記憶部1005に保持されているパケット書換ルールの例である。
図6の例では、カプセル化用のヘッダ(追加ヘッダ、アウターヘッダ)が付加される前のヘッダ(オリジナルヘッダ)の宛先MACアドレスフィールドに、宛先物理サーバの識別子(上位3オクテットを使用、具体値はコントローラが指定)とテナントID(下位3オクテットを使用、xx:xx:xxの部分にテナントIDを埋め込む)とを書き込むパケット書換ルールの例が示されている。なお、このパケット書換ルールは、コントローラ100によりパケット書換ルール記憶部1005に設定され、コントローラ100のパケット書換ルール記憶部104に保持されているパケット書換ルールと同期されている。
【0034】
図7は、
図6のパケット書換ルールにより書換後の宛先MACアドレスフィールドの内容を示す図である。
図7に示すように、
図6のパケット書換ルールによれば、元々のMACアドレスの上位24ビットのOUI(Organizationally Unique Identifier)部を宛先物理サーバの識別子に書き換え、下位24ビットのNIC(Network Interface Controller)識別部をテナント識別子に書換える処理が行われる。なお、
図7のI/Gビットは、個別アドレス/グループアドレス識別ビットを示す、G/Lビットは、グローバルアドレス/ローカルアドレス識別ビットを示している。
【0035】
パケット書換部1004は、トンネルエンドポイント1003からパケットを受信すると、パケット書換ルール記憶部1005のパケット書換ルールに従い、前記パケットの宛先MACアドレスを書き換える。具体的には、パケット書換部1004は、オリジナルヘッダの宛先MACアドレスの上位24ビットをパケット書換ルールにて指定された物理サーバの識別子に置き換える。また、パケット書換部1004は、受信パケットのカプセル化用のヘッダ(追加ヘッダ、アウターヘッダ)からテナントIDを取り出して、オリジナルヘッダのMACアドレスの下位24ビットに埋め込む処理を実行する。
【0036】
前記パケット書換処理が完了すると、パケット書換部1004は、前記書換したパケットを物理ポートに転送する。
【0037】
パケット書換部1004は、逆にスイッチ10側からパケットを受信すると、パケット書換ルール記憶部1005の内容に従い、前記パケットを元のパケットに復元する動作を行う。具体的には、パケット書換部1004は、オリジナルヘッダの宛先MACアドレスの上位24ビット及び下位24ビットを
図6に示す書換前の内容に復元する動作を行う。
【0038】
コントローラ通信部1006は、コントローラ100から配布される情報(テナント情報、VM管理情報、パケット書換ルール等)を仮想スイッチ1002、トンネルエンドポイント1003及びパケット書換ルール記憶部1005にそれぞれ転送する動作を行う。
【0039】
続いて、スイッチ10の制御のほか、上記物理サーバ1000内の各部への設定を行うコントローラ100について説明する。コントローラ100は、物理サーバ1000に対してパケット書換ルールを設定するとともに、パケット転送経路上のスイッチ10に対して、前記書換が施されたパケットの転送用の制御情報(フローエントリ)を設定する。
【0040】
図8は、本実施形態のコントローラ100の構成を表した機能ブロック図である。
図8を参照すると、スイッチ制御部101と、物理サーバ記憶部102と、パケット書換ルール作成部103と、パケット書換ルール記憶部104と、物理サーバ制御部105とを備えた構成が示されている。
【0041】
スイッチ制御部101は、スイッチ10から受信した情報を基に、ネットワークトポロジを把握し、物理サーバ記憶部102に記憶されている物理サーバ情報を用いて特定されるネットワーク中の各物理サーバ間の経路を計算する。また、スイッチ制御部101は、前記物理サーバ情報及びパケット書換ルール記憶部104のパケット書換ルールを用いて、前記経路上のスイッチ10に経路に沿ったパケット転送等を指示する制御情報(フローエントリ)を作成する。さらに、スイッチ制御部101は、前記作成した制御情報(フローエントリ)を各スイッチに設定する。本実施形態では、スイッチ制御部101は、トンネルエンドポイントを持つ全物理サーバ間の経路を作成し、全トンネルエンドポイント同士が通信可能な状態となるように、制御情報(フローエントリ)を設定する。
【0042】
物理サーバ記憶部102は、各物理サーバのアドレスや接続先のスイッチ情報を含む物理サーバ情報を記憶する。
図9は物理サーバ情報の例である。物理サーバのIPアドレスやMACアドレスは、制御情報(フローエントリ)のマッチ条件中の宛先アドレスを指定する際に使用される。また、接続先スイッチIDやその接続先ポート番号は、経路計算を行う際に、計算する経路の起点、終点となるスイッチを特定する際に参照される。
【0043】
パケット書換ルール作成部103は、物理サーバ1000がネットワークに追加された際に、その物理サーバに対応するパケット書換ルールを作成する。本実施形態では、パケット書換ルール作成部103は、各物理サーバに対してシステムで一意となる識別子(ID)を割り当て、その識別子と追加された物理サーバMACアドレスを基に、
図6に示すパケット書換ルールを作成する。作成されたパケット書換ルールは、パケット書換ルール記憶部104に保存され、適当なタイミングで、物理サーバ制御部105が、物理サーバ1000に送信する。
【0044】
なお、前記パケット書換ルールの配布タイミングとしては、次のようなものが考えられる。例えば、パケット書換ルールを作成する度に、全物理サーバにパケット書換ルールを配布するのでもよいし、そのパケット書換ルールを必要とする物理サーバにだけ配布する方式を採用しても良い。例えば、ある2つの物理サーバに着目した時、その2つの物理サーバ上で同一のテナントに属する仮想マシンが動作していなかった場合、その2つの物理サーバは通信する必要がない。よって、その2つの物理サーバには、他方の物理サーバとの通信を実現するためのパケット書換ルールを配布する必要はない。
【0045】
また、パケット書換ルールの配布タイミングとして、コントローラ100が事前に配布するのではなく、各物理サーバが書換ルールを必要なときにコントローラ100に問い合わせる方式もある。例えば、物理サーバ1000のパケット書換部1004がパケットを受け取り、パケット書換ルール記憶部1005に保持されているパケット書換ルールを検索した結果、該当するパケット書換ルールが無かった場合に、パケット書換部1004がコントローラ100にパケット書換ルールを要求する方式も採用可能である。
【0046】
前述のとおり、各物理サーバ1000のパケット書換部1004は、パケットの宛先MACアドレスフィールドに、物理サーバの識別子とテナントIDとを埋め込む。そして、コントローラ100が各スイッチ10に、この物理サーバ識別子とテナントIDをマッチ条件に含むフローエントリを設定することで、パケットの転送を実現することができる。
【0047】
物理サーバ制御部105は、物理サーバ1000に対し、パケット書換ルールを送信し、パケット書換ルール記憶部1005の記憶内容を更新する。また、物理サーバ制御部105は、各物理サーバ1000に対し、前述のテナント情報(
図4参照)とVM管理情報(
図5参照)とを配布する。
【0048】
なお、
図2、
図3、
図8及び
図14に示した物理サーバやコントローラ(オープンフローコントローラとサーバコントローラに分割した構成も含む)の各部(処理手段)は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【0049】
続いて、本実施形態の動作について図面を参照して詳細に説明する。
図10は、第1の実施形態の物理サーバのパケット送信時の動作を表したフローチャートである。
図10を参照すると、まず、仮想スイッチ1002が、VMから送信されたパケットを受信する(ステップS110)。
【0050】
次に、前記受信したパケットの転送先が、同一仮想スイッチに接続するVM宛のパケットであった場合(ステップS120のYes)、仮想スイッチ1002は、前記同一仮想スイッチに接続するVMへとパケットを転送する(ステップS130)。
【0051】
一方、前記受信したパケットの転送先が、同一仮想スイッチに接続するVM宛のパケットでない場合(ステップS120のNo)、仮想スイッチ1002は、トンネルエンドポイント1003に対し、テナントIDとともに受信パケットを送る。トンネルエンドポイント1003は、前記パケットに対して前記テナントIDを含んだカプセルヘッダ(追加ヘッダ)を付加するカプセル化を実施する(ステップS140)。
【0052】
次に、パケット書換部1004が、パケット書換ルール記憶部1005から、前記カプセル化したパケットの宛先MACアドレス、即ち、宛先物理サーバのMACアドレスをキーに、当該パケットに適用するパケット書換ルールを検索する(ステップS150)。
【0053】
例えば、宛先の物理サーバのMACアドレスが00:00:BB:BB:BB:BBである場合、パケット書換部1004は、
図6のパケット書換ルールのうち、MACアドレスが00:00:BB:BB:BB:BBであるルールを用いて当該パケットのオリジナルヘッダの宛先MACアドレスを“02:00:02:xx:xx:xx”に書き換える(ステップS160)。但し、“xx:xx:xx”には、カプセルヘッダ(追加ヘッダ)に含まれるテナント識別子が設定される。
【0054】
そして、パケット書換部1004は、前記書換したパケットを物理ポートを介してスイッチ10に送信する(ステップS170)。
【0055】
一方、コントローラ100は、物理サーバ1000間の経路上のスイッチ10に、前記したパケット書換ルールと物理サーバの識別子をマッチ条件とした制御情報(フローエントリ)に設定している。従って、パケット書換部1004から送信されたパケットは、
図11に示すように、経路上のスイッチにより対向する物理サーバ1000に転送される(
図11のスイッチ近傍に付した数字#nは、ポート番号を示す)。
【0056】
図12は、第1の実施形態の物理サーバのパケット受信時の動作を表したフローチャートである。
図12を参照すると、まず、前記パケット書換が施されたパケットをスイッチ10から受信すると(ステップS210)、パケット書換部1004は、パケット書換ルール記憶部1005から、前記書換済みのMACアドレスフィールドの内容をキーに、当該書換済みパケットに適用するパケット書換ルールを検索する(ステップS220)。
【0057】
例えば、宛先の物理サーバのMACアドレスフィールドが02:00:02:xx:xx:xxと書き換えられている場合、パケット書換部1004は、
図6のパケット書換ルールのうち、書き換え後MACアドレスが00:00:BB:BB:BB:BBであるルールを用いて当該パケットのオリジナルヘッダの宛先MACアドレスを“00:00:BB:BB:BB:BB”に復元する(ステップS230)。
【0058】
トンネルエンドポイント1003は、前記パケットに対してデカプセル化を実施し、仮想スイッチ1002に送る(ステップS240)。
【0059】
仮想スイッチ1002は、トンネルエンドポイント1003から送られたテナントIDを基にMACアドレステーブルを選択し、デカプセル化されたパケットのヘッダ、即ち、オリジナルヘッダにマッチするエントリに基づいて、該当するVMにパケットを転送する(ステップS250)。
【0060】
以上のように、カプセルヘッダを付加したまま、一方の物理サーバのVMから送信されたパケットを、対向する物理サーバに転送することが可能となる。また、
図11に示すように、復路(反対方向)のパケットを転送する制御情報(フローエントリ)を設定しておくことで、前記パケットを受信したVMからの応答も上記と同様の手順で、転送可能である。
【0061】
また、本実施形態によれば、特定のテナントのパケットに対してだけ特別な制御をすることもできる。
図13は、テナントID=10(00:00:0a)であるVMからのパケットだけ、
図13の下段に設けた経路で転送するように、制御情報(フローエントリ)を設定した例である。例えば、
図13の左端のスイッチ10がテナントID=10のVMからのパケット(MACアドレスは“02:00:02:00:00:0a”に書換済み)を受信すると、スイッチ10は、マッチする制御情報(フローエントリ)の中から最優先のもの(
図13の吹出し内の最上段のエントリ)を適用してポート#4からパケットを転送する。一方、その他のテナントからのパケットは、
図13の吹出し内の最上段のエントリにはマッチしないため、
図13の上側の経路(
図11と同様の経路)で転送されることになる。
【0062】
以上のように、本実施形態によれば、カプセルヘッダを解釈できる高価なスイッチを用いなくとも、トンネリング技術を用いた拠点間のフロー制御を実現できる。
【0063】
また、本実施形態によれば、オープンフロースイッチを使ってMPLS(Multi−Protocol Label Switching)相当のラベルスイッチングも実現できる。前記第1の実施形態では、物理サーバ1000のパケット書換部1004がパケットの宛先MACアドレスフィールドに、トンネルエンドポイント1003の識別子を埋め込んでいる。この識別子をMPLSにおけるラベルのように扱い、スイッチ10にパケットを転送させることが可能である。MPLSネットワークでは、MPLSルータが自律的にラベルを計算し、隣接ルータに配布する処理が必要となる。一方、本実施形態では、コントローラがトンネルエンドポイントの識別子をパケットに埋め込む書換を指示するとともに、その識別子をマッチ条件とする制御情報(フローエントリ)を作成し、ネットワーク中の各スイッチ10に設定する。本実施形態によれば、スイッチ10は、ラベルの作成や経路計算をする必要がなく、MPLSのルータに比べて処理が減るため有利である。
【0064】
以上、本発明の実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【0065】
例えば、
図14で示すように、コントローラ100のオープンフロー制御機能と物理サーバ制御機能と分割し、それぞれ別装置に配置した構成(第2の実施形態)も採用可能である。この場合、
図14のオープンフローコントローラ100Bは、サーバコントローラ100Aに対してオープンフローネットワークを制御するためのインターフェースを提供する。オープンフローコントローラ100B側には、第1の実施形態のコントローラ100の機能のうち、スイッチ10に制御情報(フローエントリ)を登録するための機能や、ネットワークのトポロジ情報を取得するための機能が配置される。
【0066】
また、上記した第1の実施形態では、送信元の物理サーバ1000は、それぞれVMが属するテナントIDを宛先MACアドレスに埋め込むので、送信先の物理サーバが受信すべきMACアドレスは複数になる。複数の宛先MACアドレスを受信するために、物理サーバは、そのNICをプロミスキャスモードで動作させる必要がある。一般的に、NICをプロミスキャスモードで動作させた場合、ソフトウェアでパケットの宛先を調べ、自分宛以外のパケットを破棄する処理をしなければならず、CPU(Central Processing Unit)に大きな負荷がかかってしまう。しかしながら、本実施形態の環境では、パケットはリピーターハブではなく、オープンフロースイッチ相当のスイッチにより制御情報(フローエントリ)にマッチしたものだけが転送されてくるので、物理サーバに自分宛て以外のパケットが転送されることはない。
【0067】
また、本実施形態では、物理サーバ間がオープンフロースイッチ相当のスイッチで接続されているものとして説明したが、その他のスイッチの適用を制限するものではない。
図15は、各環境におけるNICの動作モードを表している。一般的な仮想サーバ環境において、各物理サーバが処理すべきMACアドレスの数は、その物理サーバ上に動作しているVMの数を超えない。このとき、NICはプロミスキャスモードで動作させる必要がある。各物理サーバのソフトウェアによるパケット受信処理の負荷が高くならないように、この環境ではネットワークをスイッチングハブで構成し、各物理サーバに自分の宛先以外のパケットが転送されないようにする必要がある。また、仮想サーバ環境に、VXLANやNVGREを利用して仮想ネットワークを構築する際は、NICをノーマルモードで動作させてよい。物理サーバ上にいくつ仮想サーバ(VM)が動作していようとも、物理サーバが受信すべきパケットのMACアドレスはトンネルエンドポイントのMACアドレスただ1つである。この環境においては、リピーターハブを用いてネットワークを構築しても良い。
【0068】
また、上記した実施形態では、オリジナルヘッダの宛先MACアドレスフィールドを用いてパケットを書き換える例を挙げて説明したが、上記説明したように、書換したパケットは、出口側のスイッチで復元することができるため、宛先IPアドレス等その他のフィールドを書換対象としても差し支えない。
【0069】
また、書き換える内容も仮想ネットワークID(テナントID)そのものでなくともよい。仮想ネットワークID(テナントID)に対応するフロー識別子等を割り当てて、このフロー識別子をオリジナルヘッダに書き込むとともに、制御情報(フローエントリ)のマッチ条件として用いても同様の効果を奏することができる。
【0070】
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点によるパケット書換装置参照)
[第2の形態]
第1の形態のパケット書換装置において、
前記パケット書換部は、前記パケット書換ルールを参照して、前記書き換えが行われた受信パケットの復元処理を実行するパケット書換装置。
[第3の形態]
第1又は第2の形態のパケット書換装置において、
前記パケット書換ルールとして、前記スイッチを制御する制御装置から配布されたパケット書換ルールを用いるパケット書換装置。
[第4の形態]
第1から第3いずれか一の形態のパケット書換装置において、
前記パケット書換ルールとして、オリジナルヘッダの所定の領域の内容を、前記制御装置が前記スイッチに設定した制御情報のマッチ条件に用いられた内容に書き換えるパケット書換ルールを用いるパケット書換装置。
[第5の形態]
第1から第4いずれか一の形態のパケット書換装置において、
前記パケット書換ルールとして、オリジナルヘッダの所定の領域の内容を、前記仮想ネットワークを一意に識別する識別子を書き込むパケット書換ルールを用いるパケット書換装置。
[第6の形態]
第1から第5いずれか一の形態のパケット書換装置において、
前記トンネルエンドポイントを介して通信する仮想マシンが動作する物理サーバに内蔵されているパケット書換装置。
[第7の形態]
(上記第2の視点による制御装置(コントローラ)参照)
[第8の形態]
第7の形態の制御装置(コントローラ)において、
前記パケット書換ルールを用いて、配下のスイッチに設定する制御情報のマッチ条件を作成する制御装置。
[第9の形態]
(上記第3の視点による通信システム参照)
[第10の形態]
第9の形態の通信システムにおいて、
前記制御装置は、
前記パケット書換ルール記憶部に記憶させるパケット書換ルールを作成するパケット書換ルール作成部と、
前記作成したパケット書換ルールを、前記スイッチと前記トンネルエンドポイントとの間に配置されたパケット書換装置に配付する制御部とを備える。
[第11の形態]
(上記第4の視点によるパケット送信方法参照)
[第12の形態]
(上記第5の視点によるプログラム参照)
なお、上記第10、第11の形態は、第1の形態と同様に、第2〜第6の形態に展開することが可能である。
【0071】
なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。