(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0004】
簡単に例示する目的で、本実施形態は、その実施例を主に参照して記述される。以下の説明では、本実施形態を十分に理解するために具体的かつ詳細に記述されている。しかしながら、本実施形態は、これらの具体的かつ詳細に記載された内容に限定せずに実施可能であることは明らかである。他の実施例では、本実施形態が不必要に不明瞭とならないように、いくつかの方法および構造は詳細に記述していない。本実施形態を通じて、用語「a」および「an」は、特定のエレメントの少なくとも一つを示す。本明細書において、用語「含む」は、それを含むが、それに限定することではないことを意味し、用語「含み」は、それを含んでいるが、それに限定することではないことを意味し、用語「に基づく」は、少なくとも部分的にそれを基づくことを意味する。
【0005】
スイッチは、フレーム型であり、メインボードと、入出力(I/O)ボードと、ファブリックボードとを備える。メインボードは、プロトコルスタックの計算、転送エントリの配布および制御、および装置の管理を実行するためのボードである。I/Oボードは、データパケットの内部転送や外部転送などのデータパケットの転送を実行するためのボードである。ファブリックボードは、装置内のボードの間およびチップの間でデータパケットおよび制御パケットを転送するためのボードである。ファブリックボード上のチップは、パケット転送機能を有し、異なるI/Oボードの間でパケットを転送することができる。
【0006】
VXLANスイッチは、フレーム型スイッチの構造と同様に、メインボードと、I/Oボードと、ファブリックボードとを含む。一例として、二つ以上のI/Oボードが配置されている。
【0007】
VXLANの適用において、VXLANスイッチは、ファブリックボードがスイッチのファブリックボードと同様に設置される。VXLANスイッチのファブリックボード上のチップは、パケット転送機能を有し、異なるI/Oボードの間でパケットを転送することができる。
【0008】
本発明のいくつかの実施例では、VXLANスイッチがゲートウェイとして選択される。ゲートウェイとして選択されたVXLANスイッチ(以下、ゲートウェイVXLANスイッチという)は、改善することができる。
【0009】
ゲートウェイVXLANスイッチは、以下のように改善することができる。
ゲートウェイVXLANスイッチのファブリックボードは、転送機能とさまざまなエントリ機能を備えたチップを使用する。エントリ機能は、メインボードによって配布されたエントリを受信して保存する機能や、エントリ検索機能などを含む。例えば、ファブリックボードに用いられるチップは、ゲートウェイVXLANスイッチのI/Oボードに用いられたスイッチチップであってもよい。
【0010】
ゲートウェイVXLANスイッチのファブリックボードが、転送機能およびエントリ機能を有するチップを使用する場合、ゲートウェイVXLANスイッチに入力したパケットのレイヤ3転送がゲートウェイVXLANスイッチのI/Oボードとファブリックボードとの連携を介して実行できる。以下では、いくつかの実施例および
図1を参照して、VLAN(Virtual Local Area Network)からVXLANにパケットの転送方法を説明する。
【0011】
図1は、本発明のいくつかの実施例に係るVLANからVXLANへのパケットの転送方法を示すフローチャートである。この方法は、ゲートウェイVXLANスイッチに適用することができる。ゲートウェイVXLANスイッチのファブリックボードは、転送機能とさまざまなエントリ機能を備えたチップを使用する。たとえば、ファブリックボードに用いられるチップは、ゲートウェイVXLANスイッチのI/Oボードに用いられるチップと同一であってもよい。これにより、
図1に示すように、この方法は、下記のステップ201〜203を含む。
【0012】
ステップ201において、ゲートウェイVXLANスイッチのI/Oボードは、VLANからパケットを受信し、ローカルのレイヤ3テーブルからパケットの宛先IPアドレスに対応するレイヤ3エントリを検索し、レイヤ3エントリ内の出口ポートがVXLANトンネルポートである場合、パケットの送信元MACアドレスをゲートウェイVXLANスイッチのゲートウェイMACアドレスに変更し、パケットの宛先MACアドレスをレイヤ3エントリ内のMACアドレスに変更し、変更されたパケットをゲートウェイVXLANスイッチのファブリックボードに送信する。
【0013】
本発明の一つの実施例では、I/Oボードのローカルのレイヤ3エントリは、レイヤ3エントリ学習方法に従ってI/Oボードによって学習されるか、またはメインボードに設置されるか、あるいはレイヤ3エントリ学習方法に従ってメインボードによって学習され、I/Oボードに配布されてもよい。一例として、レイヤ3エントリは、ルーティングエントリであってもよく、宛先IPアドレス、VLAN ID(identity)、宛先MACアドレス、送信元MACアドレス、出口ポートなどを含んでもよい。レイヤ3エントリに含まれた内容に応じて、ステップ201でパケットの宛先IPアドレスに対応するレイヤ3エントリは、パケットの宛先IPアドレスを含むレイヤ3エントリである。
【0014】
ステップ201の例では、I/Oボードからファブリックボードへの変更されたパケットの送信されることを確保するために、I/Oボードはパケットに内部カプセルを付加する。仮に、この内部カプセルを、第1内部カプセルと呼ぶこととする。ステップ201の例では、
図2を参照すると、I/Oボードが変更されたパケットをファブリックボードへ送信する方法は、下記のステップa1およびステップa2を含む。
【0015】
ステップa1において、変更されたパケットに第1内部カプセルを付加する。
第1内部カプセルは、第1宛先チップIDと第1宛先ポートIDとを含む。第1宛先チップIDは第1仮想チップIDであり、第1宛先ポートIDは第1仮想ポートIDである。
【0016】
本発明の一つの実施例では、第1仮想チップIDは、エントリ検索およびパケット転送を行うことをファブリックボードに指示するための予め設置された仮想チップIDであってもよい。第1仮想ポートIDは、エントリ検索およびパケット転送を行うことをファブリックボードに指示するための予め設置された仮想ポートIDであってもよい。ゲートウェイVXLANスイッチが複数のファブリックボードを含む場合、すべてのファブリックボードには、第1仮想チップIDと第1仮想ポートIDが配置される。
【0017】
ステップa2において、I/Oボードが一つのファブリックボードに接続されると、第1内部カプセルが付加されたパケットは、I/Oボードがファブリックボードに接続される内部ポートを介して送信される。I/Oボードが複数のファブリックボードに接続されると、第1内部カプセルが付加されたパケットは、I/Oボードが複数のファブリックボードにそれぞれ接続される内部ポートの一つを介して送信される。
【0018】
I/Oボードが複数のファブリックボードに接続される場合、I/Oボードが複数のファブリックボードにそれぞれ接続される内部ポートは、束ねられて内部ポートグループとなる。したがって、ステップa2の例では、I/Oボードが複数のファブリックボードにそれぞれ接続される内部ポートの一つを介して、第1内部カプセルが付加されたパケットを送信するプロセスは、内部ポートグループから一つの内部ポートを選択するステップと、選択された内部ポートを介して、第1内部カプセルが付加されたパケットを送信するステップとを含む。内部ポートグループから一つの内部ポートを選択する方法としては、たとえば、内部ポートをランダムに選択する方法や、ハッシュアルゴリズムなどのアルゴリズムで内部ポートを選択する方法などの様々な方法がある。
【0019】
ステップa1およびステップa2によれば、ゲートウェイVXLANスイッチのI/Oボードは、ゲートウェイVXLANスイッチのファブリックボードに変更されたパケットを送信することができる。
【0020】
ステップ202において、ゲートウェイVXLANスイッチのファブリックボードは、I/Oボードによって送信されたパケットを受信し、受信したパケットのレイヤ2転送を実行することを判定し、そのパケットの宛先MACアドレスに対応するMACエントリをローカルのMACテーブルから検索し、MACエントリ内の出口ポートがVXLANトンネルポートであるときに、パケットをMACエントリ内の出口ポートに関連付けられた、ゲートウェイVXLANスイッチのI/Oボードに送信する。
【0021】
本発明の一つの実施例では、MACエントリ内の出口ポートに関連付けられたI/Oボードは、対応するI/Oボードと呼ばれる。
【0022】
ステップ201で説明した第1内部カプセルに基づいて、ファブリックボードによる受信したパケットのレイヤ2転送の実行を判定するプロセスは、以下のように実行される。
【0023】
ファブリックボードは、受信したパケットの第1内部カプセルのヘッダから第1宛先チップIDおよび第1宛先ポートIDを判定する。第1宛先チップIDが第1仮想チップIDであり、第1宛先ポートIDが第1仮想ポートIDである場合、ファブリックボードは当該パケットから第1内部カプセルを除去する。第1内部カプセルが除去された後、パケットの宛先MACアドレスがゲートウェイVXLANスイッチのゲートウェイMACアドレスではない場合、ファブリックボードは、受信したパケットのレイヤ2転送を実行することを判定する。
【0024】
ステップ202の例では、ファブリックボードのローカルのMACテーブルは、メインボードに配置されてもよく、またはMACエントリ学習方法に従ってメインボードによって学習され、ファブリックボードに配布されてもよい。MACエントリ内の出口ポートがVXLANトンネルポートである場合、VXLANトンネルポートは仮想トンネルポートである。本発明の一つの実施例では、VXLANトンネルポートは、VXLANトンネルカプセルのインデックスで表す。たとえば、VXLANトンネルポートはトンネル1で表す。トンネル1はVXLANトンネルカプセルのインデックスである。
【0025】
本発明の一つの実施例では、ステップ202で説明した対応するI/Oボードは、VXLANトンネルポート(即ち、MACエントリ内の出口ポートである)に関連付けられたVXLANトンネルに対応したネクストホップエントリによって判定できる。実施例では、
図3を参照すると、対応するI/Oボードの判定方法は、下記のステップを含む。
【0026】
ステップb11において、VXLANトンネルポートに関連付けられたVXLANトンネルに対応してローカルのネクストホップエントリを検索する。
【0027】
ステップb12において、ネクストホップエントリに一つのネクストホップが含まれる場合、ネクストホップエントリ内のネクストホップを対象ネクストホップとして判定し、ネクストホップエントリに複数のネクストホップが含まれる場合、ネクストホップエントリ中の複数のネクストホップから一つのネクストホップを対象ネクストホップとして選択する。
【0028】
ネクストホップエントリ内の複数のネクストホップから一つのネクストホップを選択する方法としては、例えば、ネクストホップをランダムに選択する方法や、ハッシュアルゴリズムなどの選択方法によってネクストホップを選択する方法などの様々な方法がある。
【0029】
ステップb13において、ネクストホップエントリでの対象ネクストホップに対応した出口ポートが単一の物理ポートである場合、対応するI/Oボードは、物理ポートが位置するI/Oボードである。ネクストホップエントリでの対象ネクストホップに対応した出口ポートが、複数の物理ポートを束ねて形成する物理ポートグループである場合、対応するI/Oボードは、物理ポートグループ内で一つの物理ポートが位置するI/Oボードである。
【0030】
ここで、物理ポートグループ内で一つの物理ポートは、物理ポートグループから選択されてもよい。物理ポートグループから一つの物理ポートを選択する方法としては、たとえば、物理ポートをランダムに選択する方法や、ハッシュアルゴリズムなどの選択方法によって物理ポートを選択する方法などの様々な方法がある。
【0031】
以上で、ステップb11〜b13により、対応するI/Oボードを判定することができる。
【0032】
本発明の一つの実施例では、ファブリックボードは、変更されたパケットに第2内部カプセルを付加し、第2内部カプセルが付加されたパケットを対応するI/Oボードに送信する。これにより、対応するI/Oボードは、ファブリックボードによって送信され第2内部カプセルが付加されたパケットにVXLANカプセルを付加し、VXLANカプセルが付加されたパケットをVXLANに転送することができる。
【0033】
ステップ202の例では、
図4を参照すると、パケットを対応するI/Oボードに送信する方法には、下記のステップが含まれる。
【0034】
ステップb1において、パケットに第2内部カプセルを付加する。
第2内部カプセルは、MACエントリ内の出口ポートの情報を含む。MACエントリ内の出口ポートがVXLANトンネルポートである場合、VXLANトンネルポートはVXLANトンネルカプセルのインデックスで表す。これによって、第2内部カプセルに含まれたMACエントリ内の出口ポートの情報は、VXLANトンネルカプセルのインデックスに相当する。
【0035】
ステップb2において、第2内部カプセルが付加されたパケットを対応するI/Oボードに送信する。
【0036】
ステップb1およびb2によれば、対応するI/Oボードによってファブリックボードから受信したパケットは、第2内部カプセルが付加されたパケットである。
【0037】
ステップ203において、ゲートウェイVXLANスイッチの対応するI/Oボードは、ファブリックボードによって送信されたパケットを受信し、受信したパケットにVXLANカプセルを付加し、VXLANカプセルが付加されたパケットをVXLANに転送する。
【0038】
ステップ203の例では、受信したパケットにVXLANカプセルを付加し、VXLANカプセルが付加されたパケットをVXLANに転送するプロセスは、以下のように実行される。
【0039】
対応するI/Oボードは、当該パケットの第2内部カプセルのヘッダから出口ポートの情報を判定し、当該パケットに対して第2内部カプセルを除去する。また、対応するI/Oボードは、出口ポートの情報に従ってローカルのVXLANトンネルカプセルテーブルからVXLANトンネルカプセルエントリを検索し、出口ポートの情報に対応するVNID(Virtual Network ID)を判定し、検索されたVXLANトンネルカプセルエントリおよび判定されたVNIDに基づいて、当該パケットにVXLANカプセルを付加し、VXLANトンネルカプセルエントリ内の出口ポートを介してVXLANカプセルが付加されたパケットを送信する。
【0040】
出口ポートの情報に対応するVNIDは、予め配置されたローカルのVNIDテーブルによって判定されてもよい。VNIDテーブル内のVNIDエントリは、VNIDおよびVXLANトンネルカプセルのインデックスを含む。MACエントリ内の出口ポートがVXLANトンネルポートである場合、VXLANトンネルポートはVXLANトンネルカプセルのインデックスで表す。VXLANトンネルカプセルのインデックスは、MACエントリ内の出口ポートの情報に相当する。したがって、出口ポートの情報に対応するVNIDを判定するプロセスは、予め配置されたローカルのVNIDテーブルから出口ポートの情報を含むVNIDエントリを検索し、検索されたVNIDエントリ内のVNIDを出口ポートの情報に対応するVNIDとして判定する。
【0041】
MACエントリ内の出口ポートは、VXLANトンネルポートである。VXLANトンネルポートがVXLANトンネルカプセルのインデックスで表す場合、出口ポートの情報に基づいて、ローカルのVXLANトンネルカプセルテーブルからVXLANトンネルカプセルエントリを検索するプロセスは、VXLANトンネルカプセルのインデックスに基づいてローカルのVXLANトンネルカプセルテーブルからVXLANトンネルカプセルエントリを検索することを意味する。
【0042】
VXLANトンネルカプセルエントリおよびVNIDに基づいてパケットにVXLANカプセルを付加するプロセスは、VXLANトンネルカプセルエントリ内のVXLANトンネルカプセル情報に基づいてパケットにVXLANの外層ヘッダを付加するステップと、VNIDに基づいてVXLANフィールド(例えば、VNIDフィールド)をパケットに付加するステップとを含む。VXLANの外層ヘッダには、外側イーサネット(登録商標)(ETH)カプセルが含まれている。外側ETHカプセルは、外側送信元MACアドレス、外側宛先MACアドレス、外側送信元IPアドレスおよび外側宛先IPアドレスを含む。
【0043】
本発明の一つの実施例では、検索されたVXLANトンネルカプセルエントリ内の出口ポートを介してパケットを送信するプロセスは、検索されたMACエントリ内の出口ポートを識別するステップと、出口ポートが単一の物理ポートである場合、単一の物理ポートを介してパケットを送信し、出口ポートが、複数の物理ポートを束ねて構成された物理ポートグループである場合、物理ポートグループから一つの物理ポートを選択し、選択された物理ポートを介してパケットを送信するステップとを含む。物理ポートはランダムに選択できず、対応するI/Oボードを判定するときにファブリックボードによって選択された物理ポートと同一である必要がある。I/Oボードがファブリックボードによって選択された物理ポートと同一になることを確保するように物理ポートを選択する方法は複数ある。たとえば、ファブリックボードはハッシュアルゴリズムに従って物理ポートを選択し、I/Oボードもハッシュアルゴリズムに従って物理ポートを選択する。
【0044】
本発明の一つの実施例では、I/Oボードのローカルのカプセルエントリは、I/Oボードに予め配置されていてもよい。
【0045】
本発明の一つの実施例では、ゲートウェイVXLANスイッチのファブリックボードに使用されるチップは、転送機能と様々なエントリ機能を有するチップである。例えば、I/Oボードが使用するチップと同一なチップを使用してもよい。したがって、ゲートウェイVXLANスイッチがI/Oボードを介してVXLANからパケットを受信すると、I/Oボードのローカルのレイヤ3テーブルからパケットの宛先IPアドレスに対応するレイヤ3エントリが検索される。レイヤ3エントリ内の出口ポートがVXLANトンネルポートである場合、I/Oボードは、パケットの送信元MACアドレスと宛先MACアドレスを変更し、変更されたパケットをファブリックボードに送信する。パケットの宛先MACアドレスと一致するMACエントリは、ファブリックボードのローカルMACテーブルから検索される。MACエントリ内の出口ポートがVXLANトンネルポートである場合、レイヤ3エントリ内の出口ポートに関連付けられた、ゲートウェイVXLANスイッチのI/Oボードは、パケットをVXLANカプセル化し、VXLANカプセル化されたパケットをVXLANに転送する。VXLANレイヤ3ゲートウェイ機能は、ゲートウェイVXLANスイッチを介して実装することができる。パケットは、VLANからVXLANに転送することができる。プロセス全体がゲートウェイVXLANスイッチ内で実行される。これにより、任意の帯域幅資源が無駄にならず、パケットのワイヤスピード転送が実現することができる。
【0046】
以下、一例を参照して
図1に示すフローチャートを説明する。
図5は、本発明のいくつかの実施例に係るVLANからVXLANにパケットを転送するためのネットワーキング構造を示す図である。
図5に示すように、物理マシン(PM)1〜PM5はVLAN内の装置で、仮想マシン(VM)1〜VM5はVXLAN内の装置である。ゲートウェイVXLANスイッチは、VLANとVXLANとの間に接続され、メインボード、I/Oボード、およびファブリックボードを含む。メインボードは
図5に図示されていない。ファブリックボードは、転送機能およびさまざまなエントリ機能を備えたチップを使用する。ファブリックボードに使用されるチップは、I/Oボードに使用されるチップと同一である。
図5には、VXLANスイッチの3つのI/Oボードを示す。
【0047】
VLANからVXLANにパケットを転送するプロセスを説明する。ここでは、PM1がVM1をアクセスすると想定する。
【0048】
ゲートウェイVXLANスイッチのI/Oボード1は、ローカルポート(例えば、
図5のポート10)を介してPM1からパケットを受信する。ここでは、I/Oボードで受信したパケットをパケット0と呼ぶ。
【0049】
I/Oボード1は、パケット0の宛先IPアドレスに対応するレイヤ3エントリをローカルのレイヤ3テーブルから検索する。
【0050】
検索されたレイヤ3エントリ内の出口ポートがVXLANトンネルポートである場合に、パケット0がファブリックボードへ転送されることを示す。I/Oボード1は、パケット0の送信元MACアドレスをゲートウェイVXLANスイッチのゲートウェイMACアドレスに変更し、パケット0の宛先MACアドレスを、検索されたレイヤ3エントリ内の宛先MACアドレスに変更する。
図5において、検索されたレイヤ3エントリ内の宛先MACアドレスは、VM1のMACアドレスである。ここで、送信元MACアドレスと宛先MACアドレスが変更されたパケット0は、パケット1と呼ばれる。
【0051】
I/Oボード1は、パケット1に第1内部カプセルを付加する。第1内部カプセルに含まれた第1宛先チップIDは、第1仮想チップID(例えば、
図5に示すチップ01)であり、第1内部カプセルに含まれた第1宛先ポートIDは、第1仮想ポートID(例えば、
図5に示すポート1)である。ここで、第1内部カプセルが付加されたパケット1は、パケット2と呼ばれる。
【0052】
I/Oボード1は、
図5に示すように、内部ポート11、内部ポート12及び内部ポート13がバインディングされた内部ポートグループを介して各ファブリックボードに接続されている。I/Oボード1は、内部ポートグループから一つの内部ポートを選択し、例えば、
図5に示す内部ポート11を選択してパケット2をファブリックボード1に送信する。I/Oボード1による内部ポートの選択方法は、予め設定されていてもよい。例えば、I/Oボード1は、パケット2の宛先IPアドレスに対してハッシュアルゴリズムに従ってハッシュ演算を行うことができ、ハッシュ演算結果に対応する番号を有する内部ポートを選択する。
【0053】
ファブリックボード1は、パケット2を受信し、パケット2の第1内部カプセルのヘッダから第1仮想チップIDである第1宛先チップID、および第1仮想ポートIDである第1宛先ポートIDがそれぞれチップ01およびポート1であると判定し、パケット2から第1内部カプセルを除去する。この場合、パケット1が復元される。
【0054】
ファブリックボード1は、パケット1の宛先MACアドレスを識別し、パケット1の宛先MACアドレスがゲートウェイVXLANスイッチのゲートウェイMACアドレスではないと発見し、パケット1のレイヤ2転送を行うことを判定する。
【0055】
ファブリックボード1は、パケット1の宛先MACアドレスに対応するMACエントリをローカルのMACテーブルから検索する。ファブリックボード1は、検索されたMACエントリ内の出口ポートがVXLANトンネルポートであると発見し、VXLANトンネルポートに関連付けられたVXLANトンネルに対応してローカルのネクストホップエントリを検索する。検索されたネクストホップエントリが一つのネクストホップを有し、且つネクストホップの出口ポートが複数の物理ポートがバインディングされた物理ポートグループである場合、ファブリックボード1は、物理ポートグループ内で一つの物理ポートが配置されるI/Oボードを対応するI/Oボードとして選択する。ネクストホップの出口ポートが単一の物理ポートである場合、ファブリックボード1は、単一の物理ポートが配置されるI/Oボードを対応するI/Oボードとして選択する。ここでは、対応するI/OボードがI/Oボード2であると想定する。
【0056】
ファブリックボード1は、パケット1に第2内部カプセルを付加する。ここで、第2内部カプセルが付加されたパケット1は、パケット3と呼ばれる。第2内部カプセルは、検索されたMACエントリ内の出口ポートの情報を含む。検索されたMACエントリ内の出口ポートがVXLANトンネルポートである場合、VXLANトンネルポートはVXLANトンネルカプセルのインデックスで表す。第2内部カプセルに含まれた出口ポートの情報は、VXLANトンネルカプセルのインデックスに相当する。
【0057】
ファブリックボード1は、ファブリックボード1がI/Oボード2に接続される内部ポートを介して、パケット3をI/Oボード2に送信する。
【0058】
I/Oボード2は、ファブリックボード1によって送信されたパケット3を受信し、パケット3の第2内部カプセルのヘッダ内の出口ポートの情報を判定し、パケット3から第2内部カプセルを除去する。この場合、パケット1が復元される。
【0059】
I/Oボード2は、出口ポートの情報に基づいて、ローカルのVXLANトンネルカプセルテーブルからVXLANトンネルカプセルエントリを検索し、出口ポートの情報に対応するVNIDを判定する。
【0060】
I/Oボード2は、検索されたVXLANトンネルカプセルエントリおよび判定したVNIDに基づいてパケット1をVXLANカプセルを付加し、VXLANトンネルカプセルエントリ内の出口ポートを介して、VXLANカプセルが付加されたパケット1を送信する。ここでは、VXLANカプセルが付加されたパケット1がパケット4と呼ばれる。
【0061】
検索されたVXLANトンネルカプセルエントリおよび判定したVNIDに基づいてI/Oボード2がパケット1をVXLANカプセルを付加するプロセスは、VXLANトンネルカプセルエントリ内のVXLANトンネルカプセル情報に基づいて、パケット1にVXLANの外層ヘッダを付加するステップと、VNID(すなわち、出口ポートが属するVXLANのVNID、例えば、
図5に示すVXLANのVNID200)に基づいて、VXLANフィールド(すなわち、VNIDフィールド)をパケット1に付加するステップとを含む。パケット1のVXLANの外層ヘッダには、外側イーサネット(ETH)カプセルが含まれている。外側ETHカプセルは、外側送信元MACアドレス、外側宛先MACアドレス、外側送信元IPアドレスおよび外側宛先IPアドレスを含む。
【0062】
I/Oボード2は、検索されたVXLANトンネルカプセルエントリ内の出口ポートに応じてパケット4を送信する。一例では、検索されたVXLANトンネルカプセルエントリ内の出口ポートに応じてI/Oボード2がパケット4を送信するプロセスは、検索されたVXLANトンネルカプセルエントリ内の出口ポートを識別するステップを含む。識別された出口ポートは、ファブリックボード1によって発見されたネクストホップの出口ポートである。ファブリックボード1によって発見されたネクストホップの出口ポートが、複数の物理ポートがバインディングされた物理ポートグループである場合、検索されたVXLANトンネルカプセルエントリ内の識別された出口ポートは物理ポートグループである。したがって、I/Oボード2は、対応するI/Oボードを判定する際に、ファブリックボード1による物理ポートの選択方法によって、識別された出口ポートから一つの物理ポートを選択することにより、パケット4を送信するポートがファブリックボード1によって選択された物理ポートと同一であることが確保される。
【0063】
VXLANのVM1は、PM1によって送信されたパケットを受信することができる。したがって、パケットは、ゲートウェイVXLANスイッチを介して、VLANからVXLANに転送することができる。
【0064】
VLANからVXLANにパケットを転送する装置は、以下の実施例を参照して説明される。
【0065】
図6は、本発明のいくつかの実施例に係るVLANからVXLANにパケットを転送する装置の構造を示す図である。この装置は、ゲートウェイとして使用されるVXLANスイッチである。VXLANスイッチには、I/Oボードとファブリックボードが含まれている。ファブリックボードは、転送機能とさまざまなエントリ機能を備えたチップを使用する。
図6に示すように、VXLANスイッチは、I/Oボード処理部601とファブリックボード処理部602とをさらに備える。
【0066】
I/Oボード処理部601は、VXLANスイッチのI/Oボード上に配置され、VXLANからパケットを受信し、パケットの宛先IPアドレスに対応するレイヤ3エントリをローカルのレイヤ3テーブルから検索し、レイヤ3エントリ内の出口ポートがVXLANトンネルポートである場合、パケットの送信元MACアドレスをVXLANスイッチのゲートウェイMACアドレスに変更し、パケットの宛先MACアドレスをレイヤ3エントリのMACアドレスに変更し、変更されたパケットをVXLANスイッチのファブリックボードに送信し、ファブリックボードから送信されたパケットを受信し、受信したパケットにVXLANカプセルを付加し、VXLANカプセルが付加されたパケットをVXLANに転送する。
【0067】
ファブリックボード処理部602は、VXLANスイッチのファブリックボード上に配置され、I/Oボードによって送信されたパケットを受信し、受信したパケットのレイヤ2転送を実行することを判定し、ローカルのMACテーブルからパケットの宛先MACアドレスに対応するMACエントリを検索し、MACエントリ内の出口ポートがVXLANトンネルポートである場合、パケットをゲートウェイVXLANスイッチにおいてMACエントリ内の出口ポートに関連付けられたI/Oボードに送信することができる。
【0068】
実施例では、I/Oボード処理部601は、以下のプロセスによりVXLANスイッチのファブリックボードに変更されたパケットを送信する。
【0069】
I/Oボード処理部601は、変更されたパケットに第1内部カプセルを付加する。第1内部カプセルは、第1宛先チップIDと第1宛先ポートIDとを含む。第1宛先チップIDは第1仮想チップIDであり、第1宛先ポートIDは第1仮想ポートIDである。
【0070】
実施例では、I/Oボードが一つのファブリックボードに接続されている場合、I/Oボード処理部601は、I/Oボードがファブリックボードに接続される内部ポートを介して第1内部カプセルが付加されたパケットを送信する。I/Oボードが複数のファブリックボードに接続されている場合、I/Oボード処理部601は、I/Oボードが複数のファブリックボードにそれぞれ接続されている内部ポートの一つを介して第1内部カプセルが付加されたパケットを送信する。
【0071】
実施例では、ファブリックボード処理部602は、以下のプロセスにより第1内部カプセルが付加された受信したパケットのレイヤ2転送を実行することを判定することができる。ファブリックボード処理部602は、第1内部カプセルが付加された受信したパケットの第1内部カプセルのヘッダから第1宛先チップIDおよび第1宛先ポートIDを判定する。第1宛先チップIDが第1仮想チップIDであり、第1宛先ポートIDが第1仮想ポートIDである場合、ファブリックボード処理部602は、第1内部カプセルが付加されたパケットに対して第1内部カプセルを除去する。ファブリックボード処理部602は、第1内部カプセルが除去された後に、パケットの宛先MACアドレスがVXLANスイッチのゲートウェイMACアドレスではないと判定した場合、パケットのレイヤ2転送を行うことを判定する。
【0072】
実施例では、ファブリックボード処理部602は、以下のプロセスにより、パケットを、MACエントリ内の出口ポートに関連付けられた、VXLANスイッチのI/Oボードに送信する。
【0073】
ファブリックボード処理部602は、パケットに第2内部カプセルを付加し、第2内部カプセルが付加されたパケットを、MACエントリ内の出口ポートに関連付けられた、VXLANスイッチのI/Oボードに送信する。第2内部カプセルは、MACエントリ内の出口ポートの情報を含む。
【0074】
実施例では、I/Oボード処理部601は、以下のプロセスにより、変更されたパケットにVXLANカプセルを付加し、VXLANカプセルが付加されたパケットをVXLANに転送することができる。
【0075】
対応するI/Oボード処理部601は、パケットの第2内部カプセルのヘッダから出口ポートの情報を判定し、パケットから第2内部カプセルを除去する。対応するI/Oボード処理部601は、出口ポートの情報に基づいて、I/OボードのローカルのVXLANトンネルカプセルテーブルからVXLANトンネルカプセルエントリを検索し、出口ポートの情報に対応するVNIDを判定し、検索されたVXLANトンネルカプセルエントリと判定したVNIDに基づいて、パケットにVXLANカプセルを付加し、VXLANトンネルカプセルエントリ内の出口ポートを介して、VXLANカプセルが付加されたパケットを送信する。
【0076】
実施例では、ファブリックボード処理部602は、以下のプロセスにより、MACエントリ内の出口ポートに関連付けられたI/Oボードを判定する。
【0077】
ファブリックボード処理部602は、MACエントリ内の出口ポートに関連付けられたVXLANトンネルに対応してローカルのネクストホップエントリを検索する。
【0078】
ネクストホップエントリに一つのネクストホップが含まれる場合、ファブリックボード処理部602は、ネクストホップエントリ内のネクストホップを対象ネクストホップとして判定する。ネクストホップエントリに複数のネクストホップが含まれる場合、ファブリックボード処理部602は、ネクストホップエントリ内の複数のネクストホップのうちの一つを対象ネクストホップとして選択する。
【0079】
ファブリックボード処理部602は、ネクストホップエントリ内の対象ネクストホップに対応する出口ポートが単一の物理ポートである場合、物理ポートが配置されたI/OボードをMACエントリ内の出口ポートに関連付けられたI/Oボードとして判定する。ファブリックボード処理部602は、ネクストホップエントリ内の対象ネクストホップに対応する出口ポートが、複数の物理ポートがバインディングされた物理ポートグループである場合、物理ポートグループ内の一つの物理ポートが配置されたI/OボードをMACエントリ内の出口ポートに関連付けられたI/Oボードとして判定する。
【0080】
本発明のいくつかの実施例によれば、VLANからVXLANにパケットを転送するための装置のハードウェア構造も示されている。この装置はゲートウェイとして使用されるVXLANスイッチである。
図7に示すように、VXLANスイッチのハードウェア構成では、I/Oボード70およびファブリックボード71が含まれる。
【0081】
I/Oボード70は、第1プロセッサ701(例えば、CPU)と第1非一時的記憶装置702とを含む。
【0082】
第1非一時的記憶装置702は、第1プロセッサ701によって実行可能なI/Oボード処理指令が含まれたコンピュータ読み取り可能な指令を格納することができる。
【0083】
第1プロセッサ701は、第1非一時的記憶部702に記憶されたI/Oボード処理指令を読み出して実行することにより、
図6に示すI/Oボード処理部の機能を実現することができる。
【0084】
ファブリックボード71は、第2プロセッサ711(例えば、CPU)と、第2非一時的記憶装置712とを含む。
【0085】
第2非一時的記憶装置712は、第2プロセッサ711によって実行可能なファブリックボード処理指令が含まれたコンピュータ読み取り可能な指令を格納することができる。
【0086】
第2プロセッサ711は、第2非一時的記憶装置712に記憶されたファブリックボード処理指令を読み出して実行することにより、
図6に示すファブリックボード処理部の機能を実現することができる。
【0087】
本発明の全体で具体的に記載されているが、本発明の代表的な例は、広範囲で有用性を有し、上記の議論は限定的であると解釈されるべきではなく、本発明の態様の例示的な論議として提供される。
【0088】
本明細書には、実施例とともに変更例を記載して説明する、本明細書で使用される用語、説明、および図面は、単なる例として説明されるが、これに限定することはない。さまざまな変更は、添付の特許請求の範囲およびそれらの同等物によって定義された本発明の精神および範囲を逸脱することなく行うことが可能である。添付の特許請求の範囲およびそれらの同等物では、全ての用語は、特に明記しない限り最も広く合理的な意味を持つ。