はじめに、一実施形態の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図1は、一実施形態に係るパケット転送装置の構成を例示するブロック図である。パケット転送装置100は、仮想ネットワークを含むネットワークにおけるパケットを転送する。図1を参照すると、パケット転送装置100(例えば、図5のパケット転送装置100−A)は、端末(例えば、図5の仮想マシン30−a2)から受信したパケットの送信元アドレスを端末の第1レイヤのアドレス(例えば、MAC(Media Access Control)アドレスMACa2)からパケット転送装置の第1レイヤのアドレス(例えば、MACアドレスMACA)に書き換える宛先情報更新部114と、前記書き換え後のパケットをカプセリングするカプセリング部112と、を備えている。
すなわち、パケット転送装置100(例えば、図5のパケット転送装置100−A)は、端末(例えば、仮想マシン30−a1、30−a2)から受信したパケットをカプセリングする際に端末の第1レイヤのアドレス(たとえば、MACアドレスMACa1, MACa2)をパケット転送装置100のアドレス(例えば、図5のパケット転送装置100−AのMACアドレスMACA)に書き換えてから、他のパケット転送装置(例えば、パケット転送装置100−C)に送信する。このとき、他のパケット転送装置(例えば、パケット転送装置100−C)がカプセリングの際に参照する情報は、相手方のパケット転送装置の情報(例えば、図5のパケット転送装置100−AのMACアドレスMACA)に集約される。例えば、図14の仮想化転送先情報記憶部13−Cと比較して、図5の仮想化転送先情報記憶部113−Cが保持する対応付けは半分に集約されている。したがって、かかるパケット転送装置100によると、パケット転送装置100が保持する、カプセリングの際に参照する情報の量を削減することが可能となる。
図2は、一実施形態に係るパケット転送装置の他の構成を例示するブロック図である。図2を参照すると、パケット転送装置100は、端末(例えば、図5の仮想マシン30−a2)から受信したパケットに含まれる端末の第1レイヤおよび第2レイヤのアドレス(例えば、MACアドレスMACa2およびIP(Internet Protocol)アドレスIPa2)を関連付けて保持する端末情報記憶部115(例えば、図5の端末情報記憶部115−A)を備えている。カプセリング部112は、端末(例えば、図5の仮想マシン30−a2)宛てのカプセリングされたパケットをデカプセリングする。ここで、宛先情報更新部114は、端末情報記憶部115(例えば、図5の端末情報記憶部115−A)を参照し、デカプセリングされたパケットの宛先アドレスをパケット転送装置の第1レイヤのアドレス(例えば、パケット転送装置100−AのMACアドレスMACA)から端末の第1レイヤのアドレス(仮想マシン30−a2のMACアドレスMACa2)に書き換える。
かかるパケット転送装置によると、パケット転送装置がオーバーレイネットワークから受信したパケットをカプセリングしてアンダーレイネットワークに送出するとともに、アンダーレイネットワークから受信したカプセリングされたパケットをデカプセリングしてオーバーレイネットワークに送出することが可能となる。すなわち、カプセリング技術に基づく仮想ネットワークにおける双方向の通信が実現される。
図2を参照すると、パケット転送装置100(例えば、図5のパケット転送装置100−A)は、他のパケット転送装置(例えば、図5のパケット転送装置100−B)から受信した端末(例えば、仮想マシン30−a1)宛のカプセリングされたパケットの外部ヘッダから抽出された他のパケット転送装置の第1レイヤおよび第2レイヤのアドレス(例えば、パケット転送装置100−BのMACアドレスMACBおよびIPアドレスIPB)を関連付けて保持する仮想化転送先情報記憶部113(例えば、図5の仮想化転送先情報記憶部113−A)を備えている。ここで、カプセリング部112は、仮想化転送先情報記憶部113を参照して、端末(例えば、仮想マシン30−a1)から受信したパケットをカプセリングし、他のパケット転送装置(例えば、パケット転送装置100−B)に送信する。
このとき、上述のように、仮想化転送先情報記憶部113が保持すべき情報が集約され、記憶すべき情報量を削減することが可能となる。
以上のように、一実施形態によると、宛先情報更新部114は、カプセリング時に、元パケットの送信元情報を、パケット転送装置の情報に書き換えるとともに、元パケットの端末情報を端末情報記憶部115に記録し、デカプセリング時に、展開パケットの宛先情報が自装置を示す場合、前記記録した端末情報に基づき、宛先情報を書き換える。これにより、パケット転送装置が保持するオーバーレイネットワークの情報は、一部の情報がパケット転送装置を示す情報に書き換えられる。したがって、オーバーレイネットワークの情報を集約してパケット転送装置に管理させることが可能となる。
具体的には、一実施形態によると、カプセリングする際に分離された転送情報、特に、L2(Ethernet)の情報を、カプセリングするときに、パケット転送装置(カプセリング装置)固有の情報に上書きすることで、対向する装置の論理ネットワークには、カプセリング装置との間の通信と認識させる。これにより、通信相手が保持すべき情報を削減することが可能となる。すなわち、仮想ネットワーク(カプセリング技術)により分離されたオーバーレイ/アンダーレイの情報を、パケット転送装置の情報に集約させ、各パケット転送装置が保持すべき情報量を削減することができる。
<実施形態1>
次に、第1の実施形態に係るパケット転送装置について、図面を参照して説明する。
[構成]
図2は、本実施形態に係るパケット転送装置100の構成を例示するブロック図である。図2を参照すると、パケット転送装置100は、仮想ネットワーク管理部110、内部転送制御部111、カプセリング部112、仮想化転送先情報記憶部113、宛先情報更新部114、および、端末情報記憶部115を備えている。
はじめに、本実施形態のパケット転送装置100の概略構成を説明する。宛先情報更新部114は、カプセリング時に、元パケットの送信元情報を、パケット装置の情報に書き換えると同時に、端末情報記憶部115に元パケットの端末情報を記憶する。また、宛先情報更新部114は、デカプセリング時に、展開パケットの宛先情報が自装置を示す場合、端末情報記憶部115が記憶した端末情報に基づき、宛先情報を書き換える。
仮想ネットワーク管理部110は、仮想ネットワークとして外部に出力すべきかどうか、または、出力する場合にカプセリングするIDを管理する。内部転送制御部111は、宛先に応じて、外部パケット転送装置に転送すべきかどうかを制御する。
カプセリング部112は、オーバーレイネットワークとアンダーレイネットワークのパケット形式を変換するためのカプセリング/デカプセリングを行う。
かかる構成により、パケット転送装置100が保持するオーバーレイネットワークの情報は、一部の情報がパケット転送装置100を示す情報に書き換えられ、オーバーレイネットワークでの管理情報として集約情報として管理することが可能となる。
なお、上記のパケット転送装置100の各部をプログラムとして実現し、処理をCPU(Central Processing Unit)で実行するとともに、記憶をメモリまたはSSD(Solid State Drive)、HDD(Hard Disk Drive)等に代表される2次記憶装置を持つサーバ上で実現してもよい。また、上記各部を1つの仮想スイッチとしてのプログラムとして実現してもよい。
さらに、これらの各部の一部または全部の機能をオフロード化し、専用回路として実現することもできる。また、キャッシュ回路を搭載し、情報の検索速度を向上させるようにしてもよい。このときの実現手段として、NIC(Network Interface Card)のようにサーバに組み込まれるパーツ装置、または、その先に接続される物理スイッチを用いてもよい。
以下では、図2の各部について詳細に説明する。
仮想ネットワーク管理部110は、仮想マシン環境のネットワーク構成を管理する。特に、仮想ネットワーク管理部110は、パケット転送装置100内に閉じた範囲のネットワーク構成を管理する。具体的には、仮想ネットワーク管理部110は、仮想ネットワークとして、対応する仮想ネットワークID、および、連携接続方法、または、そのためのマルチキャスト/ブロードキャストアドレスと仮想インタフェースの接続関係を管理する。
また、仮想ネットワーク管理部110は、仮想ネットワークの仮想インタフェースの接続関係を元に、内部転送するインタフェースの関係、および、外部転送する場合の仮想ネットワークID関係を内部転送制御部111に設定する。
さらに、仮想ネットワーク管理部110は、仮想ネットワークの接続方法を元に、仮想ネットワークIDに対する、もしくは、デフォルトで用いるブロードキャストアドレス、または、他のパケット転送装置と連携するための手段に対応する情報をカプセリング部112に設定する。
内部転送制御部111は、仮想ネットワークの接続関係に基づいて、オーバーレイネットワークからの受信パケット、または、宛先情報更新部114からの通達パケットを、適切な仮想インタフェースへと転送する。このとき、宛先記憶として、特定の仮想インタフェースへ通信する機能を設けてもよい。公知のMAC(Media Access Control)学習機能等がこれに該当する。また、内部転送制御部111は、Unknown Unicast通信や、ブロードキャスト通信、マルチキャスト通信の場合、すべての仮想インタフェースへと通信する。
カプセリング部112は、パケットのカプセリングおよびデカプセリングを行う。
カプセリング部112は、宛先情報更新部114からパケットを受信した場合、対応する仮想ネットワークに応じたカプセリングを行う。カプセリング部112は仮想化転送先情報記憶部113を参照し、オーバーレイネットワーク(Inner)とアンダーレイネットワーク(Outer)の対応付けが存在する場合、該対応付けの転送先情報を用いて、ユニキャストにカプセリングを行う。一方、仮想化転送先情報記憶部113に対応付けが存在しない場合、カプセリング部112はブロードキャストアドレス、または、他のパケット転送装置と連携する手段を用いて、カプセリングして通信を行う。
また、カプセリング部112は、アンダーレイネットワークの仮想インタフェースからパケットを受信した場合、受信したパケットのデカプセリングを行う。すなわち、カプセリング部112は、カプセリングされたパケット(カプセリングパケット)のカプセリングヘッダを解体する。このとき、カプセリング部112は、内部パケットの送り先と、解体したカプセリングヘッダの宛先情報から、ペアを作成し、転送先情報として仮想化転送先情報記憶部113の情報を更新する。さらに、カプセリング部112は、解体した内部パケットを宛先情報更新部114へ送信する。
仮想化転送先情報記憶部113は、カプセリングにおける送信対応付け規則を記憶する。すなわち、仮想化転送先情報記憶部113は、オーバーレイネットワークとして使用される仮想ネットワークとしての端末情報と、アンダーレイネットワークとして使用する転送装置の端末情報との対応付けを記憶する。
仮想化転送先情報記憶部113が保持する対応付け規則の一例として、カプセリング部112がパケット情報から抽出して、登録する規則がある。
また、仮想化転送先情報記憶部113が保持する対応付け規則の他の例として、仮想ネットワーク管理部110から、カプセリング部112を介して、デフォルトの設定として登録される規則が考えられる。
宛先情報更新部114は、内部転送制御部111からパケットを受信した場合、受信パケットに対して、カプセリング処理する際に送受信の端末情報とする通信プロトコル層(以下、「送受信判定レイヤ」ともいう。)に相当する送信元情報と、さらにもう1層上位レイヤの送信元情報とを対応付け規則として、端末情報記憶部115に記録する。
一方、宛先情報更新部114は、内部転送制御部111からパケットを受信した場合、受信パケットに対して、カプセリングの送受信判定レイヤに相当する送信元情報をパケット転送装置100固有の情報に置き換えて、カプセリング部112に転送する。
カプセリングの送受信判定レイヤに相当する送信元情報および宛先情報は、一例として、L2層に該当するEthernetアドレスである。VXLAN、NVGRE、Geneve等では、Ethernetアドレスが用いられる。このとき、もう1層上位レイヤの送信元情報は、IP(Internet Protocol)情報となる。
また、宛先情報更新部114は、カプセリング部112からパケットを受信すると、カプセリングの送受信判定レイヤに相当する宛先情報がパケット転送装置100固有の情報である場合、さらにもう1層上位レイヤの送信元情報を元に、端末情報記憶部115から対応付け規則を抽出し、カプセリングの送受信判定レイヤに相当する宛先情報を、抽出した情報に書き換える。一方、抽出できない場合、宛先情報更新部114は、宛先情報の書き換えを行わない。さらに、宛先情報更新部114は、加工後の受信パケットを内部転送制御部111に転送する。
端末情報記憶部115は、カプセリングの送受信判定レイヤに相当する端末情報と、さらにもう1層上位レイヤの端末情報とを対応付け規則として記憶する。
[動作]
次に、本実施形態に係るパケット転送装置の動作について、図面を参照して説明する。
図3は、オーバーレイネットワークからの通常パケット(カプセリング前のパケット)を受信した際の動作を例示するフロー図である。
図3を参照すると、内部転送制御部111は、オーバーレイネットワークからの通常パケットを受信すると、仮想ネットワークの接続関係に基づき、転送先を決定する(ステップS100)。このとき、MAC学習等により、パケットの転送先を唯一に決定できる場合、パケットの送信先を決定された転送先に限定することができる。ただし、転送先は複数存在してもよい。一方、学習した転送先が存在しない場合、内部転送先制御部111はUnknown Unicast Floodingとしてフラッディングを行い、マルチキャスト通信またはブロードキャスト通信の場合、仮想ネットワークの接続に関するすべての仮想インタフェースにフラッディングを行う。このとき、転送先に応じて、ステップS100のNo〜S104、または、ステップS100のYes〜S104のいずれかのフローが実行される。
外部の他のパケット転送装置へパケットを送出する必要がある場合(ステップS100のYes)、宛先情報更新部114は内部転送制御部111から受信パケットを取得し、該受信パケットの送信元情報からカプセリングの送受信判定レイヤの端末情報とさらにその1層上位レイヤの端末情報を抽出し、対応付け情報として端末情報記憶部115に記録する(ステップS101)。
次に、宛先情報更新部114は、該受信パケットのカプセリングの送受信判定レイヤの端末情報を、自パケット転送装置100を示す情報に上書きする(ステップS102)。
カプセリング部112は、該情報が上書きされた受信パケットの宛先情報から、カプセリングの送受信判定レイヤの端末情報を抜き出し、仮想化転送先情報記憶部113から対応付け情報を抽出する。対応付け情報が存在する場合、カプセリング部112は、その固定転送先となるパケット転送装置へ向けた情報を用いてカプセリングを行う。一方、対応付け情報が存在しない場合、カプセリング部112は、定義された仮想ネットワークに属するパケット転送装置へ配送するための手段を用いて、カプセリングを行う(ステップS103)。
また、カプセリング部112は、ステップS103までで加工された受信パケットをアンダーレイ側に相当するインタフェースに送信する(ステップS104)。
一方、内部に相当するオーバーレイネットワーク側のインタフェースに送出する必要がある場合(ステップS100のNo)、内部転送制御部111は受信パケットを対応するインタフェースから送信する。
以上の動作により、自パケット転送装置のオーバーレイネットワーク側に閉じない、オーバーレイネットワークからの通常パケットの送信元情報を、自パケット転送装置を示す情報に書き換えるとともに、元に戻すための情報を蓄積し、他パケット転送装置へカプセリングしたパケットを送信することが可能となる。
図4は、アンダーレイネットワークからのカプセリングパケットを受信した際の動作を例示するフロー図である。
カプセリング部112はアンダーレイネットワークからカプセリングパケットを受信すると、宛先が自身かどうか、または、仮想ネットワークの接続関係に基づき、受信すべきパケットか否かを判定する。受信すべきカプセリングパケットである場合、カプセリング部112はパケットの送信元情報を抽出する。さらに、カプセリング部112は、カプセリングパケットの内部から、内部パケットの送信元情報を抽出する。これらのペアを転送先情報として仮想化転送先情報記憶部113に記憶する(ステップS110)。
次に、カプセリング部112は、受信したカプセリングパケットをデカプセリングして内部パケットを抽出し、宛先情報更新部114に転送する(ステップS111)。
次に、宛先情報更新部114は、抽出された内部パケットから宛先情報を取り出し、端末情報記憶部115を参照して、宛先情報に該当する対応付け情報を抽出する(ステップS112)。
宛先情報更新部114は、対応付け情報が存在する場合(ステップS113のYes)、該対応付け情報を元に、宛先情報を更新する(ステップS114)。
次に、宛先情報更新部114は、内部パケットを内部転送制御部111へ転送する。内部転送制御部111は、MAC学習等の転送情報に基づき、オーバーレイネットワークに接続する仮想ネットワークインタフェースに向けて内部パケットを送信する(ステップS115)。
以上により、パケット転送装置は、他のパケット転送装置から受信したカプセリングパケットを、自身が記憶した情報を元に、自身のオーバーレイネットワークに適応する情報に戻し、パケットを伝達することが可能となる。
次に、本実施形態に係るパケット転送装置100を設けた、仮想ネットワークを含むネットワーク環境における通信について、具体例に基づいて説明する。
図5は、本実施形態に係るパケット転送装置100−A〜100−Cを設けたネットワーク環境におけるパケット転送の様子を例示する。一方、図6は、図5に示したネットワーク環境において、仮想マシン間の通信を行うためのシーケンス図を示す。
ここでは、一例として、図5の仮想マシン30−a1(VMa1)から、仮想マシン30−b1(VMb1)に通信する場合について、図6のシーケンス図を説明する。なお、ここでは、すべての仮想マシンが同一の仮想ネットワークに属するものとする。
仮想マシン30−a1(VMa1)は、仮想マシン30−b1(VMb1)に通信しようとするとき、端末情報が存在しないため、ARP(Address Resolution Protocol)等の宛先解決プロトコルを用いて通信の宛先の情報取得を試みる。ここでは、一例として、ARPを例として説明するが、本発明における宛先解決プロトコルはARPに限定されない。
仮想マシン30−a1(VMa1)は、パケット転送装置100−A(SWA)にARP requestパケットを送信する(図6のステップA1)。本実施形態のパケット転送装置100−A(SWA)は、該ARP requestパケットを受信すると、図3に示すフローを実行する。
パケット転送装置100−A(SWA)の内部転送制御部111は、宛先アドレスがブロードキャストアドレスであるため、フラッディング処理を行い、パケットを仮想マシン30−a2へ転送する(図3のステップS100のNo、ステップS104)。また、内部転送制御部111は、連携装置へ転送するため、宛先情報更新部114へ転送する(ステップS100のYes)。宛先情報更新部114は、該受信パケットの送信元情報から、カプセリングの送受信判定レイヤの端末情報MACa1と、さらにその1層上位レイヤの端末情報IPa1を抜き出し、対応付け情報として端末情報記憶部115に記憶する(図3のステップS101、図6のステップA2)。
次に、宛先情報更新部114は、該受信パケットについて、カプセリングの送受信判定レイヤの端末情報MACa1を、自パケット転送装置を示す情報MACAに上書きする(図3のステップS102、図6のステップA3)。
次に、宛先情報更新部114は、該受信パケットをカプセリング部112に転送する。カプセリング部112は、仮想化転送先情報記憶部113に情報を記憶していないため、マルチキャスト転送をするためのパケットとしてカプセリングする。さらに、カプセリング部112は、カプセリングしたパケットをアンダーレイネットワークの転送装置20に転送する(図6のステップA4)。
かかるカプセリングパケットは、マルチキャストにより、パケット転送装置100−B(SWB)およびパケット転送装置100−Cに転送される(図6のステップA4)。なお、パケット転送装置100−Cでは、対応する装置が存在しないため、仮想マシン等において最終的にパケットが廃棄される。
本実施形態のパケット転送装置100−B(SWB)は、パケット転送装置100−A(SWA)からカプセリングパケットを受信すると、図4に示すフローを実行する。
パケット転送装置100−B(SWB)のカプセリング部112は、カプセリングパケットの送信元情報と、内部パケットの送信元情報から、MACアドレスMACAの端末に送信したい場合、IPアドレスがIPAの端末に送信すればよいことを把握し、MACアドレスとIPアドレスの対応付けを仮想化転送先情報記憶部113に記録する(図4のステップS110、図6のステップA5)。
次に、カプセリング部112は、カプセリングされたパケットをデカプセリングし、内部パケットを抽出する(図4のステップS111)。さらに、カプセリング部112は、抽出した内部パケットを宛先情報更新部114に転送する。
宛先情報更新部114は、内部パケットの宛先情報IPb1を抽出し、宛先情報IPb1に相当する対応付け情報を端末情報記憶部115から検索する(図4のステップS112)。しかし、かかる対応付け情報はまだ存在しないため、内部パケットをそのまま内部転送制御部111へ転送する(ステップS113のNo)。
内部転送制御部111は、宛先情報がブロードキャストアドレスであるため、各仮想マシンへと内部パケットを転送する(図4のステップS115、図6のステップA6)。
仮想マシン30−b1(VMb1)は、当該ARP requestを受信すると、端末情報としてIPアドレスIPa1の端末がMACアドレスMACAであることを記憶する(図6のステップA7)。さらに、仮想マシン30−b1(VMb1)は、ARP requestが自身へのリクエストであることから、ARP requestに応答するためのARP replyパケットを作成して返信する(図6のステップA8、A9)。
パケット転送装置100−B(SWB)は、仮想マシン30−b1からARP replyを受信すると、図3に示すフローを実行する。
パケット転送装置100−B(SWB)の内部転送制御部111は、宛先情報がMACAであることから、外部方向への送信であると判定する。したがって、内部転送制御部111は該受信パケットを宛先情報更新部114へ転送する(図3のステップS100のYes)。宛先情報更新部114は、該受信パケットの送信元情報から、カプセリングの送受信判定レイヤの端末情報MACb1と、さらにその1層上位レイヤの端末情報IPb1を抜き出し、対応付け情報として端末情報記憶部115に記憶する(図3のステップS101、図6のステップA10)。
次に、宛先情報更新部114は、該受信パケットについて、カプセリングの送受信判定レイヤの端末情報MACb1を、自パケット転送装置を示す情報MACBに上書きする(図3のステップS102、図6のステップA11)。さらに、宛先情報更新部114は、該受信パケットをカプセリング部112に転送する。
カプセリング部112は、仮想化転送先情報記憶部113に蓄積された情報から、MACアドレスMACAの端末に送信したい場合、IPアドレスIPAの端末に送信すればよいことを把握し、IPアドレスIPA向けへのパケットとしてカプセリングを行う。カプセリング部112は、カプセリングしたパケットをアンダーレイネットワークの転送装置20に転送する(図6のステップA12)。
かかるカプセリングパケットは、宛先アドレスIPAに対応するパケット転送装置100−A(SWA)に転送される(図6のステップA12)。パケット転送装置100−A(SWA)は、カプセリングパケットを受信すると、図4に示すフローを実行する。
パケット転送装置100−A(SWA)のカプセリング部112は、カプセリングパケットの送信元情報と、内部パケットの送信元情報から、MACアドレスMACBの端末に送信したい場合、IPアドレスIPBの端末に送信すればいいことを把握し、MACアドレスとIPアドレスの対応付けを仮想化転送先情報記憶部113に記録する(図4のステップS110、図6のステップA13)。
次に、カプセリング部112は、カプセリングされたパケットをデカプセリングし、内部パケットを抽出する(図4のステップS111)。さらに、カプセリング部112は、抽出した内部パケットを宛先情報更新部114に転送する。
宛先情報更新部114は、内部パケットの宛先情報IPa1を抽出し、宛先情報IPa1に相当する対応付け情報を端末情報記憶部115から検索する(図4のステップS112)。宛先情報更新部114は、対応付け情報として、IPアドレスIPa1がMACアドレスMACa1に対応することを抽出する(図4のステップS113のYes)。宛先情報更新部114は、該宛先情報として、MACアドレスをMACAからMACa1に書き換えることで元の端末情報へと修正し、内部転送制御部111に転送する(図4のステップS114、図6のステップA14)。
内部転送制御部111は、宛先情報が明確であるため、パケットを仮想マシン30−a1(VMa1)に転送する(図4のステップS115、図6のステップA15)。
仮想マシン30−a1(VMa1)は、当該ARP replyを受信すると、端末情報としてIPアドレスIPb1の端末がMACアドレスMACBであることを記憶する(図6のステップA16)。
以上のARPを通した動作により、パケット転送装置の学習と、各仮想マシンによる端末情報の学習が可能となる。このように、各仮想マシンは、カプセリングの送受信判定レイヤの転送先情報として、今までのように通信相手となる端末情報でなく、端末が属しているパケット転送装置の情報として記憶する。さらに、各パケット転送装置は、この集約された情報に基づき、カプセリング転送先情報を記憶する。
図5は、パケット転送装置100−Aが各通信において学習した結果を、仮想化転送先情報記憶部113―A、端末情報記憶部115−Aとして示す。また、図5は、パケット転送装置100−Cが各通信において学習した結果を、仮想化転送先情報記憶部113―C、端末情報記憶部115−Cとして示す。図5の仮想化転送先情報記憶部113―A、113−Cに示すように、カプセリング転送先情報は、相手方のパケット転送装置の台数に集約される。
また、図5は、仮想マシン30−a2が学習した端末情報35−a2を示す。本実施形態によると、従来のカプセリング技術とは異なり、各端末(仮想マシン)が記憶する通信宛先に相当する端末情報は、パケット転送装置100を示す端末情報となる。例えば、IPアドレスIPb1、IPb2の仮想マシンに対するMACアドレスは、パケット転送装置100BのMACアドレスMACBとなる。
また、図5は、仮想マシン30−a2から仮想マシン30−b2に通信する際に流れるパケットP100−1、P100−2、P100−3を示す。このうち、従来のカプセリング技術を用いた仮想ネットワークと相違する点を下線で示す。図5に示すように、本実施形態では、宛先情報は、受信側のパケット転送装置100−Bを通過するまで、パケット転送装置100−Bを示す集約された情報(すなわち、MACアドレスMACB)となる。一方、送信元情報は、他のパケット転送装置への送信点となるパケット転送装置100−Aを通過した後、パケット転送装置100−Aを示す集約された情報(すなわち、MACアドレスMACA)となる。
このように、本実施形態のパケット転送装置100を用いると、パケット転送装置から見てオーバーレイネットワークからパケットが送出されるときに、情報が集約される。このとき、相手方のパケット転送装置および通信端末に対して、あたかも1つの装置から通信が行われているように見せかけることが可能となる。すなわち、相手側のパケット転送装置が保持すべき情報を削減し、メモリリソース消費量を抑えることが可能となる。
以上のとおり、本実施形態のパケット転送装置は、カプセリングする際に、仮想マシンを示す情報を、自装置を示す情報に集約する。これにより、相手方のパケット転送装置の対応付け記憶容量を削減することが可能となる。したがって、相手方のパケット転送装置の記憶容量が不足する事態を回避することができる。さらに、本実施形態のパケット転送装置によると、各パケット転送装置の記憶容量不足を解消することができ、大規模の仮想ネットワーク環境を実現することが可能となる。
なお、本実施形態に係るパケット転送装置は、従来のカプセリング技術を用いるパケット転送装置と連動させて使用することも可能である。図7は、本実施形態のパケット転送装置と従来のパケット転送装置とを連動させた場合のパケット転送の様子を示す。
図7に示すネットワークでは、本実施形態のパケット転送装置(仮想スイッチ)100−Aと、従来のパケット転送装置10−B、10−Cを用いて通信が行われる。
相手方のパケット転送装置10−B、20−Cは端末情報を変換しないため、本実施形態のパケット転送装置100−Aが学習する情報は集約されない情報となる。すなわち、仮想化転送先情報記憶部113−Aが記憶する情報は、相手方のパケット転送装置10−B、10−C上の各通信端末情報(MACb1, MACb2, MACc)と、それに対応するパケット転送装置の端末情報(MACB, MACC)との対応付け情報となる。
一方、本実施形態のパケット転送装置100−Aと連動して動作する相手方の従来のパケット転送装置10−Cにおいては、本実施形態のパケット転送装置100−Aによって情報が集約される効果が生じる。すなわち、通信相手となる各通信端末情報として記憶されるはずのMACアドレスMACa1, MACa2が、単一のMACアドレスMACAに集約されるため、仮想化転送先情報記憶部13−Cにおいて消費される記憶容量を少なくすることができる。
また、図7のネットワーク環境で通信されるパケットは、本実施形態のパケット転送装置100−Aを境目として、パケット転送装置100−A上のオーバーレイ部分が集約された情報として丸め込まれ、従来の仮想ネットワーク環境とは相違することになる。
以上より、図7に示すように、本実施形態のパケット転送装置は、従来のパケット転送装置と同時に利用することが可能である。この場合の効果は、上記のとおり従来のパケット転送装置の側に生じる。
<実施形態2>
次に、第2の実施形態に係るパケット転送装置について、図面を参照して説明する。
図8は、本実施形態のパケット転送装置200の構成を例示するブロック図である。本実施形態のパケット転送装置200は、第1の実施形態のようにカプセリング処理を行うパケット転送装置でなく、中継ゲートウェイ装置として実装される。
図8を参照すると、本実施形態のパケット転送装置200では、第1の実施形態のパケット転送装置100(図2)のカプセリング部112がカプセリング情報の更新のみを行うカプセリング情報更新部212に変更される。また、本実施形態では、カプセリング情報更新部212が更新する情報は、第1の実施形態のように仮想化転送先情報記憶部113に記録される代わりに、端末情報を関連付けて、端末情報記憶部215に記録される。さらに、宛先情報更新部114が参照する通信情報は、カプセリングパケットの内部パケット情報から取得する。
カプセリング情報更新部212は、宛先情報更新部214からパケットを転送された場合、カプセリングパケットの転送元情報と、カプセリング内部パケットの転送元情報を抽出し、端末情報記憶部215の対応するレコードに、カプセリングパケットの転送元情報を記憶する。
一方、カプセリング情報更新部212は、外部ネットワークに接続しているインタフェースから、カプセリングパケットをユニキャスト通信で受信し、受信したカプセリングパケットの宛先情報が自パケット転送装置を示す場合、受信したカプセリングパケットの内部パケットの宛先情報を取り出す。また、カプセリング情報更新部212は、取り出した宛先情報に対応する対応付け情報を、端末情報記憶部215から抽出する。さらに、カプセリング情報更新部212は、抽出した対応付け情報に基づき、カプセリングフィールドの宛先情報を更新し、宛先情報更新部214へ転送する。
以上より、本実施形態のパケット転送装置200は、カプセリングフィールドの情報を宛先情報記憶部215に記憶するとともに、自パケット転送装置の情報に更新する機能、および、自パケット転送装置の情報から元の装置の情報に復旧する機能を有する。かかるパケット転送装置200によると、ゲートウェイ装置として使用した場合においても、第1の実施形態と同等の効果を奏することが可能となる。なお、宛先情報更新部214とカプセリング情報更新部212は、同一の更新処理として1つの装置(ないし処理)にまとめることもできる。
図9は、本実施形態のパケット転送装置200をゲートウェイ装置(パケット転送装置)200−Dとして設けた仮想ネットワーク環境を例示する。
図9の構成によると、アンダーレイネットワークを構成する転送装置20―Aと転送装置20−Bとの間に、本実施形態のパケット転送装置200−Dが設けられる。このとき、本実施形態のパケット転送装置200−Dを通過するときに、内部の端末情報がパケット転送装置200−Dを示す情報に丸め込まれる。また、本実施形態のパケット転送装置200−Dと、従来のカプセリング機能を有するパケット転送装置(仮想スイッチ)10−A、10−B、または、第1の実施形態のパケット転送装置100−Cと通信するために、カプセリングフィールドの情報更新も行われる。
すなわち、図9に示すカプセリングパケットP200−2が、本実施形態のパケット転送装置200―Dを通過すると、送信元情報がパケット転送装置200−Dを示すIPアドレスIPDおよびMACアドレスMACDに書き換えられるとともに、内部パケットの送信元情報のカプセリングの送受信判定レイヤの端末情報がMACDに書き換えられる。この対応関係は、端末情報記憶部215−Dに記憶されている。したがって、逆方向の通信において、内部パケットの宛先情報IPa2から、送信元情報を元の通信相手を示すIPアドレスIPAおよびMACアドレスMACAに復元し、内部パケットの送信元情報のカプセリングの送受信判定レイヤの端末情報をMACa2へと復元することが可能となる。
<実施形態3>
次に、第3の実施形態に係るパケット転送装置について、図面を参照して説明する。
図10は、本実施形態のパケット転送装置300の構成を例示するブロック図である。本実施形態のパケット転送装置300は、パケットによる通信先情報の学習に加えて、または、かかる学習の代わりに、外部管理コントローラによる制御に基づく転送情報の設定を可能とする。
図10を参照すると、本実施形態のパケット転送装置300は、第1の実施形態のパケット転送装置100(図2)に対して、さらに管理情報更新部316を追加した構成を有する。また、本実施形態に係るパケット転送装置300を設けた仮想ネットワーク環境には、パケット転送装置以外に、仮想ネットワーク接続管理コントローラ320が追加される。
仮想ネットワーク接続管理コントローラ320は、仮想ネットワークの接続関係を制御し、パケット転送装置300に仮想ネットワーク構成設定や転送規則を登録する。仮想ネットワーク接続管理コントローラ320は、パケット転送装置300の管理情報更新部316へ、仮想ネットワーク構成設定や転送規則を設定命令として送信する。
仮想ネットワーク接続管理コントローラ320は、例えば、オープンフロー(OpenFlow)のような転送規則設定用のプロトコルを有する外部コントローラ(OpenFlow Controller)である。なお、OpenFlowのコントローラ以外にも、NVGREを用いたHyper-V環境においてネットワーク仮想化モジュールを制御するSystem Center Virtual Machine Managerや、VMwareのNSXコントローラ等を用いることができる。
管理情報更新部316は、仮想ネットワーク接続管理コントローラ320から設定命令を受信した場合、受信した設定命令に含まれる情報に合わせて、仮想ネットワーク管理部310の管理情報、仮想化転送先情報記憶部313の転送先情報、端末情報記憶部315の対応付け情報を更新する。
以上により、本実施形態のパケット転送装置300によると、パケットによる学習前に、仮想ネットワーク接続管理コントローラ320からの設定で、通信集約情報を登録することが可能となる。
なお、仮想ネットワーク接続管理コントローラ320は、各パケット転送装置300から接続情報を求められた場合に、各転送情報を登録する仕組みを用いてもよい。
図11は、本実施形態のパケット転送装置300−A〜300−Cを設けた仮想ネットワーク環境を例示する。
仮想ネットワーク接続管理コントローラ320は、仮想マシン30−c1がパケット転送装置300−C上に設置されたことを検出する。すると、仮想ネットワーク接続管理コントローラ320は、パケット転送装置300−Cに対して、対応付けルールとして、IPアドレスIPc、MACアドレスMACcの端末情報を設定する命令(Register term IPc = MACc)を発行する。パケット転送装置300−Cの管理情報更新部316は、かかる設定命令に応じて、IPアドレスIPc、MACアドレスMACcの端末情報を端末情報記憶部315に記憶する。これにより、パケット転送装置300−Cは、パケットを用いた学習前であっても、対応付け規則を保持することが可能となる。
また、仮想ネットワーク接続管理コントローラ320は、新たにパケット転送装置300−C上に仮想ネットワークが広がったことを検出した場合、仮想ネットワークを構成するパケット転送装置300−A、300−Bに対して、宛先転送情報として、MACアドレスMACCについてはIPアドレスIPCに転送する設定命令(Register trans MACC = IPC)を発行することできる。このとき、パケット転送装置300−Aの管理情報更新部316は、設定命令に応じて、MACアドレスMACC、IPアドレスIPCを仮想化転送先情報記憶部313に記憶する。これにより、パケット転送装置300−Aは、相手方のパケット転送装置からのパケット受信による学習前であっても、転送先規則を保持することが可能となる。
以上より、本実施形態のパケット転送装置300によると、パケットに基づく実際の通信が発生する前であっても、各パケット転送装置に対して転送規則および対応付け規則を登録することが可能となる。
<実施形態4>
次に、第4の実施形態に係るパケット転送装置について、図面を参照して説明する。
図12は、本実施形態のパケット転送装置400の構成を例示するブロック図である。本実施形態のパケット転送装置400は、第3の実施形態のパケット転送装置300(図10)に対して、さらに、通信端末の情報を更新する機能を追加したものである。
図12を参照すると、本実施形態のパケット転送装置400は、第3の実施形態のパケット転送装置300(図10)に対して、さらに識別情報更新パケット送信部417を有する。
識別情報更新パケット送信部417は、端末情報記憶部415において新たな対応付け規則が更新されると、端末情報更新パケットを作成し、オーバーレイネットワークに送信する機能(以下「追加端末更新情報機能」という。)を有する。なお、端末情報更新パケットの転送先は、更新対応付け規則の転送先でないインタフェースに限定することができる。
ここで、端末情報更新パケットとして、例えば、GARP(Gratuitous ARP)を用いることができる。ただし、本発明における端末情報更新パケットは、GARPに限定されない。
また、識別情報更新パケット送信部417は、端末情報記憶部415に対して新たな対応付け規則が更新されると、既存の対応付け規則から端末情報更新パケットを作成し、オーバーレイネットワークに送信する機能(以下「既存端末情報通達機能」という。)を有する。なお、端末情報更新パケットの転送先は、更新対応付け規則の転送先となるインタフェースに限定することができる。
さらに、識別情報更新パケット送信部417は、管理情報更新部416を通して、仮想ネットワーク接続管理コントローラ420から、端末の移動情報を受信すると、端末情報更新パケットを作成し、オーバーレイネットワークに送信する機能(以下「移動端末更新情報機能」という。)を有する。
なお、識別情報更新パケット送信部417は、上記の追加端末更新情報機能、既存端末情報通達機能、および、移動端末更新情報機能のうちの少なくとも1つ以上を有するようにしてもよい。
仮想ネットワーク接続管理コントローラ420は、第3の実施形態において説明した設定機能に加えて、端末の移動通知を各パケット転送装置400へ通知する機能を有する。このとき、仮想ネットワーク接続管理コントローラは、宛先を示すカプセリングの送受信判定レイヤの端末情報を、移動先のパケット転送装置を示す端末情報として通知する。
図13は、本実施形態のパケット転送装置400−A〜400−Cを設けた仮想ネットワーク環境を例示する。
仮想ネットワーク接続管理コントローラ420は、仮想マシン30−aがパケット転送装置400−A上からパケット転送装置400−B上に移動したことを検出する。すると、仮想ネットワーク接続管理コントローラ420は、パケット転送装置400−Aに対して、端末情報を削除する設定命令を発行する。パケット転送装置400−Aの管理情報更新部416は、かかる設定命令に応じて端末情報記憶部413から対応付け情報を削除する。
また、仮想ネットワーク接続管理コントローラ420は、パケット転送装置400−Bに対して、端末情報を追加する設定命令を発行する。パケット転送装置400−Bの管理情報更新部416は、かかる設定命令に応じて端末情報記憶部415へ対応付け情報を追加する。
パケット転送装置400−Bの識別情報更新パケット送信部417は、端末情報の更新を抽出し、追加された情報から端末情報更新パケットを作成する。すなわち、識別情報更新パケット送信部417は、IPアドレスIPa、MACアドレスMACaのGARPを生成する。さらに、識別情報更新パケット送信部417は、生成したGARPをIPアドレスIPa以外のインタフェースへ送出することで、仮想マシン30−bに向けて送信する。これにより、仮想マシン30−bの端末学習テーブルが更新される。したがって、仮想マシン30−bは、パケット転送装置400−Bのオーバーネットワーク内に端末30−aが存在することを学習し、端末30−aと通信することが可能となる。
また、パケット転送装置400−Bの識別情報更新パケット送信部417は、端末情報の更新を抽出すると、既存の端末情報から端末情報更新パケットを作成する。すなわち、識別情報更新パケット送信部417はIPアドレスIPb、MACアドレスMACbのGARPを生成する。さらに、識別情報更新パケット送信部417は、生成したGARPをIPアドレスIPaであるインタフェースへ送出することで、仮想マシン30−aに向けて送信する。これにより、仮想マシン30−aの端末学習テーブルが更新される。したがって、仮想マシン30−aは、パケット転送装置400−Bのオーバーネットワーク内に仮想マシン30−bが存在することを学習し、端末30−bと通信することができる。
すなわち、本実施形態のパケット転送装置400によると、マイグレーションにより、仮想マシンが移動したとしても、MAC情報を更新することができる。したがって、本実施形態のパケット転送装置を用いた仮想ネットワーク環境において、素早く正常な通信を回復することができる。
また、仮想ネットワーク接続管理コントローラ420は、パケット転送装置400−Cに対して、端末情報の移動通知を発行する。すなわち、IPアドレスIPaの仮想マシンはMACアドレスMACBのパケット転送装置上に存在する旨の移動通知を発行する。パケット転送装置400−Bの管理情報更新部416は、移動通知を識別情報更新パケット送信部417に伝える。識別情報更新パケット送信部417は、かかる移動通知に基づき、端末情報更新パケットを作成する。すなわち、識別情報更新パケット送信部417は、IPアドレスIPa、MACアドレスMACBのGARPを生成する。識別情報更新パケット送信部417は、生成したパケットをオーバーレイネットワークに送信する。これにより、仮想マシン30−c1の端末学習テーブルが更新される。したがって、仮想マシン30−c1はIPアドレスIPaに対する転送先を素早く学習することができる。
本実施形態のパケット転送装置によると、第3の実施形態のパケット転送装置によってもたらされる効果に加えて、さらに端末(仮想マシン)においても、素早く転送先情報を構築することが可能となる。
本発明は、一例として、カプセリング技術、情報階層化技術により仮想ネットワークを構築する仮想計算機環境に対して適用することが可能である。
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の態様に係るパケット転送装置のとおりである。
[形態2]
前記端末から受信したパケットに含まれる前記端末の第1レイヤおよび第2レイヤのアドレスを関連付けて保持する端末情報記憶部と、
前記カプセリング部は、前記端末宛てのカプセリングされたパケットをデカプセリングし、
前記宛先情報更新部は、前記端末情報記憶部を参照し、前記デカプセリングされたパケットの宛先アドレスを前記パケット転送装置の第1レイヤのアドレスから前記端末の第1レイヤのアドレスに書き換える、
形態1に記載のパケット転送装置。
[形態3]
他のパケット転送装置から受信した前記端末宛のカプセリングされたパケットの外部ヘッダから抽出された前記他のパケット転送装置の第1レイヤおよび第2レイヤのアドレスを関連付けて保持する仮想化転送先情報記憶部を備え、
前記カプセリング部は、前記仮想化転送先情報記憶部を参照して前記端末から受信したパケットをカプセリングし、前記他のパケット転送装置に転送する、
形態2に記載のパケット転送装置。
[形態4]
前記宛先情報更新部は、端末から他のパケット転送装置を経由して受信したカプセリングされたパケットの内部ヘッダに含まれる送信元アドレスを、前記端末の第1レイヤのアドレスから前記パケット転送装置の第1レイヤのアドレスに書き換え、
前記端末情報記憶部は、前記他のパケット転送装置を経由して受信したカプセリングされたパケットの内部ヘッダに含まれる前記端末の第1レイヤおよび第2レイヤのアドレスと、前記パケットの外部ヘッダに含まれる前記他のパケット転送装置の第2レイヤのアドレスとを関連付けて保持する、
形態2に記載のパケット転送装置。
[形態5]
前記パケット転送装置に接続した第1の端末を検出したコントローラから、前記第1の端末の第1レイヤおよび第2レイヤのアドレスの設定指示を受けると、前記第1の端末の第1レイヤおよび第2レイヤのアドレスを関連付けて前記端末情報記憶部に格納する管理情報更新部を備える、
形態2または3に記載のパケット転送装置。
[形態6]
前記設定指示を受けると、前記第1の端末の第1レイヤおよび第2レイヤのアドレスを前記パケット転送装置に接続された前記第1の端末以外の第2の端末に通知するとともに、前記第2の端末の第1レイヤおよび第2レイヤのアドレスを前記第1の端末に通知する識別情報更新パケット送信部を備える、
形態5に記載のパケット転送装置。
[形態7]
前記第1レイヤのアドレスは、MAC(Media Access Control)アドレスであり、
前記第2レイヤのアドレスは、IP(Internet Protocol)アドレスである、
形態2ないし6のいずれか一に記載のパケット転送装置。
[形態8]
上記第2の態様に係るパケット転送方法のとおりである。
[形態9]
前記端末から受信したパケットに含まれる前記端末の第1レイヤおよび第2レイヤのアドレスを関連付けて記憶部に保持するステップと、
前記端末宛てのカプセリングされたパケットをデカプセリングするステップと、
前記記憶部を参照し、前記デカプセリングされたパケットの宛先アドレスを前記パケット転送装置の第1レイヤのアドレスから前記端末の第1レイヤのアドレスに書き換えるステップと、を含む、
形態8に記載のパケット転送方法。
[形態10]
上記第3の態様に係るプログラムのとおりである。
[形態11]
前記端末から受信したパケットに含まれる前記端末の第1レイヤおよび第2レイヤのアドレスを関連付けて記憶部に保持する処理と、
前記端末宛てのカプセリングされたパケットをデカプセリングする処理と、
前記記憶部を参照し、前記デカプセリングされたパケットの宛先アドレスを前記パケット転送装置の第1レイヤのアドレスから前記端末の第1レイヤのアドレスに書き換える処理と、を前記コンピュータに実行させる、
形態10に記載のプログラム。
なお、上記特許文献の全開示内容は、本書に引用をもって繰り込み記載されているものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の全開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。