(57)【特許請求の範囲】
【請求項１】
ＶＸＬＡＮ（Virtual eXtensible Local Area Network）に基づきフレームを中継するスイッチ装置であって、
非カプセル化フレームの通信を行う下位ポートと、
前記非カプセル化フレームを外部ヘッダでカプセル化することでカプセル化フレームを生成するカプセル化実行部と、
前記カプセル化フレームの通信を行う上位ポートと、
外部ＭＡＣアドレスと、外部ＩＰアドレスと、内部ＭＡＣアドレスと、ポート識別子との対応関係を保持するＦＤＢ（Forwarding DataBase）と、
前記ＦＤＢの学習および検索を行う中継処理部と、
を有し、
前記中継処理部は、
前記上位ポートで前記カプセル化フレームを受信した場合に、当該受信した上位ポートの前記ポート識別子と、前記カプセル化フレームの前記外部ヘッダに含まれる送信元の前記外部ＭＡＣアドレスおよび送信元の前記外部ＩＰアドレスと、前記カプセル化フレーム内の前記非カプセル化フレームの領域に含まれる送信元の前記内部ＭＡＣアドレスとの対応関係を前記ＦＤＢに学習し、
前記下位ポートで前記非カプセル化フレームを受信した場合に、前記非カプセル化フレームに含まれる宛先の前記内部ＭＡＣアドレスを検索キーとして前記ＦＤＢを検索し、当該検索結果として前記上位ポートの前記ポート識別子、前記外部ＭＡＣアドレスおよび前記外部ＩＰアドレスを取得した際には、前記非カプセル化フレームを前記カプセル化実行部を介して前記上位ポートに向けて送信し、
前記カプセル化実行部は、前記ＦＤＢの検索結果に基づく宛先の前記外部ＭＡＣアドレスおよび宛先の前記外部ＩＰアドレスを含んだ前記カプセル化フレームを生成する、
スイッチ装置。
【請求項２】
請求項１記載のスイッチ装置において、
前記中継処理部は、前記下位ポートで前記非カプセル化フレームを受信した場合の前記ＦＤＢの検索結果として、前記下位ポートの前記ポート識別子を取得した際には、前記非カプセル化フレームを前記下位ポートに向けて送信する、
スイッチ装置。
【請求項３】
請求項１記載のスイッチ装置において、
前記カプセル化フレームから前記外部ヘッダを取り除くことで前記非カプセル化フレームを生成するデカプセル化実行部を有し、
前記中継処理部は、前記上位ポートで前記カプセル化フレームを受信した場合に、前記カプセル化フレーム内の前記非カプセル化フレームの領域に含まれる宛先の前記内部ＭＡＣアドレスを検索キーとして前記ＦＤＢを検索し、当該検索結果として前記下位ポートの前記ポート識別子を取得した際には、前記カプセル化フレームを前記デカプセル化実行部を介して前記下位ポートに向けて送信する、
スイッチ装置。
【請求項４】
請求項１記載のスイッチ装置において、
前記非カプセル化フレームに含まれるＶＬＡＮ識別子と、前記カプセル化フレームの前記外部ヘッダに含まれるＶＸＬＡＮネットワーク識別子とを内部ＶＬＡＮ識別子を介して対応付けるＶＰＮテーブルを有し、
前記ＦＤＢの前記対応関係には、さらに、前記内部ＶＬＡＮ識別子が含まれ、
前記中継処理部は、前記下位ポートで前記非カプセル化フレームを受信した場合に、当該非カプセル化フレームの前記ＶＬＡＮ識別子に対応する前記内部ＶＬＡＮ識別子を前記ＦＤＢに学習し、前記上位ポートで前記カプセル化フレームを受信した場合に、当該カプセル化フレームの前記ＶＸＬＡＮネットワーク識別子に対応する前記内部ＶＬＡＮ識別子を前記ＦＤＢに学習する、
スイッチ装置。
【請求項５】
ＩＰアドレスに基づきフレームを中継するＬ３ネットワークと、ＭＡＣアドレスに基づきフレームを中継するＬ２ネットワークとの境界に配置され、ＶＸＬＡＮ（Virtual eXtensible Local Area Network）に基づきフレームを中継する複数のスイッチ装置を有する中継システムであって、
前記複数のスイッチ装置のそれぞれは、
前記Ｌ２ネットワークに接続され、非カプセル化フレームの通信を行う下位ポートと、
前記非カプセル化フレームを外部ヘッダでカプセル化することでカプセル化フレームを生成するカプセル化実行部と、
前記Ｌ３ネットワークに接続され、前記カプセル化フレームの通信を行う上位ポートと、
外部ＭＡＣアドレスと、外部ＩＰアドレスと、内部ＭＡＣアドレスと、ポート識別子との対応関係を保持するＦＤＢ（Forwarding DataBase）と、
前記ＦＤＢの学習および検索を行う中継処理部と、
を有し、
前記中継処理部は、
前記上位ポートで前記カプセル化フレームを受信した場合に、当該受信した上位ポートの前記ポート識別子と、前記カプセル化フレームの前記外部ヘッダに含まれる送信元の前記外部ＭＡＣアドレスおよび送信元の前記外部ＩＰアドレスと、前記カプセル化フレーム内の前記非カプセル化フレームの領域に含まれる送信元の前記内部ＭＡＣアドレスとの対応関係を前記ＦＤＢに学習し、
前記下位ポートで前記非カプセル化フレームを受信した場合に、前記非カプセル化フレームに含まれる宛先の前記内部ＭＡＣアドレスを検索キーとして前記ＦＤＢを検索し、当該検索結果として前記上位ポートの前記ポート識別子、前記外部ＭＡＣアドレスおよび前記外部ＩＰアドレスを取得した際には、前記非カプセル化フレームを前記カプセル化実行部を介して前記上位ポートに向けて送信し、
前記カプセル化実行部は、前記ＦＤＢの検索結果に基づく宛先の前記外部ＭＡＣアドレスおよび宛先の前記外部ＩＰアドレスを含んだ前記カプセル化フレームを生成する、
中継システム。
【請求項６】
請求項５記載の中継システムにおいて、
前記中継処理部は、前記下位ポートで前記非カプセル化フレームを受信した場合の前記ＦＤＢの検索結果として、前記下位ポートの前記ポート識別子を取得した際には、前記非カプセル化フレームを前記下位ポートに向けて送信する、
中継システム。
【請求項７】
請求項５記載の中継システムにおいて、
前記カプセル化フレームから前記外部ヘッダを取り除くことで前記非カプセル化フレームを生成するデカプセル化実行部を有し、
前記中継処理部は、前記上位ポートで前記カプセル化フレームを受信した場合に、前記カプセル化フレーム内の前記非カプセル化フレームの領域に含まれる宛先の前記内部ＭＡＣアドレスを検索キーとして前記ＦＤＢを検索し、当該検索結果として前記下位ポートの前記ポート識別子を取得した際には、前記カプセル化フレームを前記デカプセル化実行部を介して前記下位ポートに向けて送信する、
中継システム。
【請求項８】
請求項５記載の中継システムにおいて、
前記非カプセル化フレームに含まれるＶＬＡＮ識別子と、前記カプセル化フレームの前記外部ヘッダに含まれるＶＸＬＡＮネットワーク識別子とを内部ＶＬＡＮ識別子を介して対応付けるＶＰＮテーブルを有し、
前記ＦＤＢの前記対応関係には、さらに、前記内部ＶＬＡＮ識別子が含まれ、
前記中継処理部は、前記下位ポートで前記非カプセル化フレームを受信した場合に、当該非カプセル化フレームの前記ＶＬＡＮ識別子に対応する前記内部ＶＬＡＮ識別子を前記ＦＤＢに学習し、前記上位ポートで前記カプセル化フレームを受信した場合に、当該カプセル化フレームの前記ＶＸＬＡＮネットワーク識別子に対応する前記内部ＶＬＡＮ識別子を前記ＦＤＢに学習する、
中継システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ装置および中継システムに関し、例えば、ＶＸＬＡＮ（Virtual eXtensible Local Area Network）が適用されるスイッチ装置および中継システムに関する。
【背景技術】
【０００２】
例えば、特許文献１には、ＶＸＬＡＮでカプセル化を行う際に、ＣＰＵにソフトテーブルを参照させることで、カプセル化に必要な宛先ＭＡＣアドレスや宛先ＩＰアドレス等を取得する方式が示される。また、この宛先ＭＡＣアドレスや宛先ＩＰアドレスは、予め管理用ポートを介して外部装置から設定される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１９０５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、データセンター等では、仮想マシンおよび仮想ネットワークを用いた仮想化環境の適用が進んでいる。このような仮想化環境では、例えば、互いに離れた拠点に配置され、ＯＳＩ参照モデルのレイヤ３（Ｌ３）のネットワークを介して接続された仮想マシン間で、仮想的にレイヤ２（Ｌ２）を用いた通信を実現するための仮想ネットワークを構築することが求められる。このようなオーバーレイ方式の仮想ネットワークを構築する技術の一つとして、ＶＸＬＡＮが知られている。
【０００５】
ＶＸＬＡＮは、Ｌ２フレームをカプセル化することで、Ｌ３ネットワーク上に論理的なＬ２ネットワークを構築するトンネリングプロトコルである。具体的には、各仮想マシンは、ＶＴＥＰ（VXLAN Tunnel End Point）と呼ばれる装置に適宜属するように構成される。異なるＶＴＥＰに属する仮想マシン間での通信は、対応するＶＴＥＰ間での通信を介して行われる。この際に、ＶＴＥＰは、自身に属する仮想マシンからのＬ２フレームをＵＤＰ（User Datagram Protocol）ヘッダ等を含む外部ヘッダでカプセル化し、当該カプセル化されたフレームを、宛先の仮想マシンが属する所定のＶＴＥＰ宛てに送信する。
【０００６】
ここで、ＶＴＥＰは、受信したＬ２フレームをカプセル化し、所定のＶＴＥＰ宛てに送信する際に、Ｌ３中継を行うため、通常、ルーティングテーブルやＡＲＰ（Address Resolution Protocol）テーブル等の各種テーブルを順次参照する必要がある。このため、ＶＴＥＰは、このような処理をソフトウェア処理で実行する場合が多い。その結果、通信の高速化が図れない恐れがある。
【０００７】
本発明は、このようなことに鑑みてなされたものであり、その目的の一つは、通信の高速化を実現可能なスイッチ装置および中継システムを提供することにある。
【０００８】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される発明のうち、代表的な実施の形態の概要を簡単に説明すれば、次のとおりである。
【００１０】
本実施の形態によるスイッチ装置は、ＶＸＬＡＮに基づきフレームを中継し、下位ポートと、カプセル化実行部と、上位ポートと、ＦＤＢ（Forwarding DataBase）と、中継処理部とを有する。下位ポートは、非カプセル化フレームの通信を行う。カプセル化実行部は、非カプセル化フレームを外部ヘッダでカプセル化することでカプセル化フレームを生成する。上位ポートは、カプセル化フレームの通信を行う。ＦＤＢは、外部ＭＡＣアドレスと、外部ＩＰアドレスと、内部ＭＡＣアドレスと、ポート識別子との対応関係を保持する。中継処理部は、上位ポートでカプセル化フレームを受信した場合に、そのポート識別子と、外部ヘッダに含まれる送信元の外部ＭＡＣアドレスおよび送信元の外部ＩＰアドレスと、当該フレーム内の非カプセル化フレームの領域に含まれる送信元の内部ＭＡＣアドレスとの対応関係をＦＤＢに学習する。また、中継処理部は、下位ポートで非カプセル化フレームを受信した場合に、当該フレームに含まれる宛先の内部ＭＡＣアドレスを検索キーとしてＦＤＢを検索する。そして、中継処理部は、当該検索結果として上位ポートのポート識別子、外部ＭＡＣアドレスおよび外部ＩＰアドレスを取得した際には、非カプセル化フレームをカプセル化実行部を介して当該上位ポートに向けて送信する。カプセル化実行部は、ＦＤＢの検索結果に基づく宛先の外部ＭＡＣアドレスおよび宛先の外部ＩＰアドレスを含んだカプセル化フレームを生成する。
【発明の効果】
【００１１】
本願において開示される発明のうち、代表的な実施の形態によって得られる効果を簡単に説明すると、スイッチ装置および中継システムにおいて、通信の高速化を実現できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施の形態による中継システムの構成例および動作例を示す概略図である。
【図２】図１の中継システムにおいて、各フレームの構造例を示す概略図である。
【図３Ａ】図１の中継システムにおいて、スイッチ装置の主要部の構成例およびカプセル化フレーム受信時のＦＤＢ学習動作の一例を示す概略図である。
【図３Ｂ】図１の中継システムにおいて、スイッチ装置の主要部の構成例およびカプセル化フレーム受信時のＦＤＢ検索動作の一例を示す概略図である。
【図４Ａ】図１の中継システムにおいて、スイッチ装置の主要部の構成例および非カプセル化フレーム受信時のＦＤＢ学習動作の一例を示す概略図である。
【図４Ｂ】図１の中継システムにおいて、スイッチ装置の主要部の構成例および非カプセル化フレーム受信時のＦＤＢ検索動作の一例を示す概略図である。
【図５】図１の中継システムにおいて、スイッチ装置の構成例を示す概略図である。
【図６】（ａ）は、図５におけるＶＰＮテーブル［１］の構造例を示す概略図であり、（ｂ）は、図５におけるＶＰＮテーブル［２］の構造例を示す概略図である。
【図７】図５における終端判定部の動作例を示すフロー図である。
【図８】図５のスイッチ装置における代表的な動作例を示す説明図である。
【図９】図５のスイッチ装置における代表的な動作例を示す説明図である。
【図１０】図５のスイッチ装置における代表的な動作例を示す説明図である。
【発明を実施するための形態】
【００１３】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
【００１４】
さらに、以下の実施の形態において、その構成要素（要素ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
《中継システムの構成》
図１は、本発明の一実施の形態による中継システムの構成例および動作例を示す概略図である。図１に示す中継システムは、Ｌ３ネットワークＮＷ１と、Ｌ２ネットワークＮＷ２ａ，ＮＷ２ｂと、Ｌ３ネットワークＮＷ１とＬ２ネットワークＮＷ２ａ，ＮＷ２ｂとの境界にそれぞれ配置されるスイッチ装置ＶＴＥＰ［１］，ＶＴＥＰ［２］とを備える。Ｌ３ネットワークＮＷ１は、ＩＰ（Internet Protocol）アドレスに基づきフレームを中継し、Ｌ２ネットワークＮＷ２ａ，ＮＷ２ｂは、ＭＡＣ（Media Access Control）アドレスに基づきフレームを中継する。
【００１７】
Ｌ３ネットワークＮＷ１は、ルータ装置（またはＬ３スイッチ）ＲＴａ，ＲＴｂを備える。Ｌ２ネットワークＮＷ２ａは、情報処理装置１０ａ，１０ｂを備え、Ｌ２ネットワークＮＷ２ｂは、情報処理装置１０ｃを備える。情報処理装置１０ａ，１０ｂ，１０ｃは、仮想マシンを構築可能な構成となっている。この例では、情報処理装置１０ａは、仮想マシンＶＭ１１，ＶＭ１２，…を有し、情報処理装置１０ｂは、仮想マシンＶＭ２１，ＶＭ２２，…を有し、情報処理装置１０ｃは、仮想マシンＶＭ３１，ＶＭ３２，…を有する。
【００１８】
スイッチ装置ＶＴＥＰ［１］，ＶＴＥＰ［２］は、ＶＸＬＡＮに基づくＶＴＥＰとして機能し、ＶＸＬＡＮに基づきフレームを中継する。スイッチ装置ＶＴＥＰ［１］，ＶＴＥＰ［２］のそれぞれは、上位ポートＰｕ［１］，Ｐｕ［２］と、下位ポートＰｄ［１］〜Ｐｄ［ｎ］とを備える。下位ポートＰｄ［１］〜Ｐｄ［ｎ］は、Ｌ２ネットワークに接続され、イーサネットフレーム（イーサネットは登録商標）となる非カプセル化フレームの通信を行う。上位ポートＰｕ［１］，Ｐｕ［２］は、Ｌ３ネットワークに接続され、ＶＸＬＡＮフレームとなるカプセル化フレームの通信を行う。
【００１９】
この例では、スイッチ装置ＶＴＥＰ［１］の下位ポートＰｄ［１］，Ｐｄ［ｎ］は、それぞれ、Ｌ２ネットワークＮＷ２ａ内の情報処理装置１０ａ，１０ｂに接続され、上位ポートＰｕ［１］は、Ｌ３ネットワークＮＷ１内のルータ装置ＲＴａに接続される。また、スイッチ装置ＶＴＥＰ［２］の下位ポートＰｄ［１］は、Ｌ２ネットワークＮＷ２ｂ内の情報処理装置１０ｃに接続され、上位ポートＰｕ［１］は、Ｌ３ネットワークＮＷ１内のルータ装置ＲＴｂに接続される。本明細書では、下位ポートＰｄ［１］〜Ｐｄ［ｎ］のそれぞれを代表して下位ポートＰｄと称し、上位ポートＰｕ［１］，Ｐｕ［２］のそれぞれを代表して上位ポートＰｕと称する。
【００２０】
《中継システムの概略動作（前提）》
次に、図１の中継システムにおいて、前提となるフレーム中継動作について説明する。この例では、スイッチ装置ＶＴＥＰ［１］，ＶＴＥＰ［２］のＭＡＣアドレスは、それぞれ、“ＭＡ１”，“ＭＡ２”であり、ＩＰアドレスは、それぞれ“ＩＰＡ１”，“ＩＰＡ２”である。ルータ装置ＲＴａ，ＲＴｂのＭＡＣアドレスは、それぞれ、“ＭＡａ”，“ＭＡｂ”であり、ＩＰアドレスは、それぞれ“ＩＰＡａ”，“ＩＰＡｂ”である。また、仮想マシンＶＭ１１，ＶＭ２１，ＶＭ３１のＭＡＣアドレスは、それぞれ、“ＭＡ１１”，“ＭＡ２１”，“ＭＡ３１”である。
【００２１】
このような状態で、まず、仮想マシンＶＭ３１が仮想マシンＶＭ１１を宛先として非カプセル化フレームＦＲ３１を送信し、その後に、仮想マシンＶＭ１１が仮想マシンＶＭ３１を宛先として非カプセル化フレームＦＲ１３を送信する場合を想定する。図２は、図１の中継システムにおいて、各フレームの構造例を示す概略図である。図２に示すように、カプセル化フレーム（ＶＸＬＡＮフレーム）ＦＲＣは、非カプセル化フレーム（イーサネットフレーム）ＦＲを外部ヘッダ１２でカプセル化した構造となっている。
【００２２】
非カプセル化フレームＦＲは、宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣ、送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣ、内部ＶＬＡＮタグＩ＿ＶＬＡＮおよびペイロードを含む。内部ＶＬＡＮタグＩ＿ＶＬＡＮは、例えば、１２ビットのＶＬＡＮ識別子ＶＩＤを含む。外部ヘッダ１２は、宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣ、送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣ、外部ＶＬＡＮタグＯ＿ＶＬＡＮ、宛先の外部ＩＰアドレスＯ＿ＤＩＰ、送信元の外部ＩＰアドレスＯ＿ＳＩＰ、ＵＤＰヘッダおよびＶＸＬＡＮヘッダを含む。外部ＶＬＡＮタグＯ＿ＶＬＡＮは、例えば、１２ビットのＶＬＡＮ識別子ＶＩＤを含む。ＵＤＰヘッダは、送信元ポート番号ＳＰＮおよび宛先ポート番号ＤＰＮを含む。ＶＸＬＡＮヘッダは、２４ビットのＶＸＬＡＮネットワーク識別子ＶＮＩを含む。
【００２３】
仮想マシンＶＭ３１から仮想マシンＶＭ１１に向けて送信される非カプセル化フレームＦＲ３１において、宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣは“ＭＡ１１”であり、送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣは“ＭＡ３１”であり、内部ＶＬＡＮタグＩ＿ＶＬＡＮのＶＬＡＮ識別子ＶＩＤは“Ｖ１”である。スイッチ装置ＶＴＥＰ［２］は、下位ポートＰｄ［１］で非カプセル化フレームＦＲ３１を受信する。ここでは、スイッチ装置ＶＴＥＰ［２］は、宛先となる“ＭＡ１１”がどのスイッチ装置（ＶＴＥＰ）に属しているかを知らないものとする。
【００２４】
この場合、スイッチ装置ＶＴＥＰ［２］は、予めＶＸＬＡＮネットワーク識別子ＶＮＩ毎に構築しておいたネットワークセグメントへ当該非カプセル化フレームＦＲ３１をマルチキャストで送信する。具体的には、スイッチ装置ＶＴＥＰ［２］は、予め、ＩＰマルチキャストのプロトコルを用いて、Ｌ３ネットワークＮＷ１内にＶＸＬＡＮネットワーク識別子ＶＮＩ毎のネットワークセグメントを構築し、ネットワークセグメント毎に、マルチキャストＩＰアドレスと宛先ポートとを定めておく。
【００２５】
スイッチ装置ＶＴＥＰ［２］は、受信した非カプセル化フレームＦＲ３１をカプセル化することでカプセル化フレームＦＲＣ３１ａを生成し、当該カプセル化フレームＦＲＣ３１ａをマルチキャスト用の宛先ポート（ここでは上位ポートＰｕ［１］）へ中継する。カプセル化フレームＦＲＣ３１ａにおいて、宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣは、マルチキャストＭＡＣアドレスＭＣＭＡであり、送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣは、自身のＭＡＣアドレス“ＭＡ２”であり、外部ＶＬＡＮタグＯ＿ＶＬＡＮのＶＬＡＮ識別子ＶＩＤは、予め定めた“Ｖ１０”である。
【００２６】
また、宛先の外部ＩＰアドレスＯ＿ＤＩＰは、マルチキャストＩＰアドレスＭＣＩＰであり、送信元の外部ＩＰアドレスＯ＿ＳＩＰは、自身のＩＰアドレス“ＩＰＡ２”である。なお、マルチキャストＩＰアドレスＭＣＩＰは、ＩＰｖ４の場合、例えば“２２４．ｘ．ｙ．ｚ”（ｘ，ｙ，ｚのそれぞれは０〜２５５の中のいずれかの値）等であり、マルチキャストＭＡＣアドレスＭＣＭＡは、当該マルチキャストＩＰアドレスＭＣＩＰに規定値を組み合わせた値となる。
【００２７】
ＵＤＰヘッダ内の送信元ポート番号ＳＰＮは、例えば、フレーム内の各種情報をハッシュ演算すること等で定められ、宛先ポート番号ＤＰＮは、例えば、ＶＸＬＡＮの規格で定められる値に設定される。ＶＸＬＡＮヘッダ内のＶＸＬＡＮネットワーク識別子ＶＮＩは、予め、送信元の仮想マシンＶＭ３１に対して割り当てた値となる“ＶＮ１０”である。
【００２８】
ルータ装置ＲＴｂは、当該カプセル化フレームＦＲＣ３１ａを受信し、ＩＰマルチキャストのプロトコルを用いて予め生成したマルチキャストテーブル（例えば、マルチキャストＩＰアドレスと宛先ポートとの対応関係）に基づいて、当該フレームをルータ装置ＲＴａに向けて中継する。その中継の過程で、カプセル化フレームの送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣは、ルータ装置を経由する毎に書き換えられる。
【００２９】
ルータ装置ＲＴａは、ルータ装置ＲＴｂからのカプセル化フレームを受信し、ルータ装置ＲＴｂの場合と同様にマルチキャストテーブルに基づく中継を行う。その結果、ルータ装置ＲＴａは、カプセル化フレームＦＲＣ３１ｂをスイッチ装置ＶＴＥＰ［１］へ送信する。カプセル化フレームＦＲＣ３１ｂは、カプセル化フレームＦＲＣ３１ａと比較して、送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣがルータ装置ＲＴａのＭＡＣアドレス“ＭＡａ”となっている点が異なっている。
【００３０】
スイッチ装置ＶＴＥＰ［１］は、カプセル化フレームＦＲＣ３１ｂを上位ポートＰｕ［１］で受信する。ここでは、スイッチ装置ＶＴＥＰ［１］は、宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣである“ＭＡ１１”が自身の下位ポートＰｄ［１］の先に存在していることを予め知っているものとする。この場合、スイッチ装置ＶＴＥＰ［１］は、当該カプセル化フレームＦＲＣ３１ｂから外部ヘッダ１２を取り除くことで元の非カプセル化フレームＦＲ３１を生成し、それを下位ポートＰｄ［１］へ中継する。また、スイッチ装置ＶＴＥＰ［１］は、カプセル化フレームＦＲＣ３１ｂを受信することで、その送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣである“ＭＡ３１”と、送信元の外部ＩＰアドレスＯ＿ＳＩＰである“ＩＰＡ２”との対応関係をＶＸＬＡＮ用のテーブルに学習する。
【００３１】
その後、仮想マシンＶＭ１１は、仮想マシンＶＭ３１を宛先として非カプセル化フレームＦＲ１３を送信する。当該非カプセル化フレームＦＲ１３において、宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣは“ＭＡ３１”であり、送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣは“ＭＡ１１”であり、内部ＶＬＡＮタグＩ＿ＶＬＡＮのＶＬＡＮ識別子ＶＩＤは“Ｖ１”である。スイッチ装置ＶＴＥＰ［１］は、下位ポートＰｄ［１］で非カプセル化フレームＦＲ１３を受信する。ここで、スイッチ装置ＶＴＥＰ［１］は、前述したＶＸＬＡＮ用のテーブルに基づき、宛先となる“ＭＡ３１”がＩＰアドレス“ＩＰＡ２”を持つスイッチ装置ＶＴＥＰ［２］に属していることを知っている。
【００３２】
この場合、スイッチ装置ＶＴＥＰ［１］は、受信した非カプセル化フレームＦＲ１３をカプセル化することでカプセル化フレームＦＲＣ１３ａを生成し、当該カプセル化フレームＦＲＣ１３ａを、上位ポートＰｕ［１］からスイッチ装置ＶＴＥＰ［２］に向けてユニキャストで中継する。カプセル化フレームＦＲＣ１３ａにおいて、宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣは、ルータ装置ＲＴａのＭＡＣアドレス“ＭＡａ”であり、送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣは、自身のＭＡＣアドレス“ＭＡ１”であり、外部ＶＬＡＮタグＯ＿ＶＬＡＮのＶＬＡＮ識別子ＶＩＤは、予め定めた“Ｖ１０”である。
【００３３】
また、宛先の外部ＩＰアドレスＯ＿ＤＩＰは、スイッチ装置ＶＴＥＰ［２］のＩＰアドレス“ＩＰＡ２”であり、送信元の外部ＩＰアドレスＯ＿ＳＩＰは、自身のＩＰアドレス“ＩＰＡ１”である。ＵＤＰヘッダ内の送信元ポート番号ＳＰＮおよび宛先ポート番号ＤＰＮや、ＶＸＬＡＮヘッダ内のＶＸＬＡＮネットワーク識別子ＶＮＩ（ここでは“ＶＮ１０”）は、前述したスイッチ装置ＶＴＥＰ［２］の場合と同様にして定められる。
【００３４】
ここで、スイッチ装置ＶＴＥＰ［１］は、当該カプセル化フレームＦＲＣ１３ａを生成する際に、具体的には、例えば、次のような処理を行う。まず、スイッチ装置ＶＴＥＰ［１］は、ＶＸＬＡＮ用のテーブルに基づき、宛先の外部ＩＰアドレスＯ＿ＤＩＰ“ＩＰＡ２”を定める。次いで、スイッチ装置ＶＴＥＰ［１］は、ルーティングテーブルに基づき、当該“ＩＰＡ２”にルーティングするためのネクストホップとなるルータ装置（ここではＲＴａ）のＩＰアドレス“ＩＰＡａ”を取得する。続いて、スイッチ装置ＶＴＥＰ［１］は、ＡＲＰテーブルに基づき、ＩＰアドレス“ＩＰＡａ”に対応するＭＡＣアドレス“ＭＡａ”および宛先ポート（ここでは上位ポートＰｕ［１］）を取得し、当該取得したＭＡＣアドレス“ＭＡａ”を宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣに定める。
【００３５】
スイッチ装置ＶＴＥＰ［１］から送信されたカプセル化フレームＦＲＣ１３ａは、ルータ装置ＲＴａ、ルータ装置ＲＴｂを順に介してスイッチ装置ＶＴＥＰ［２］へ中継される。この際に、ルータ装置ＲＴａ，ＲＴｂは、宛先の外部ＩＰアドレスＯ＿ＤＩＰ“ＩＰＡ２”を検索キーとする通常のルーティング処理を実行する。スイッチ装置ＶＴＥＰ［２］は、前述したスイッチ装置ＶＴＥＰ［１］の場合と同様に、上位ポートＰｕ［１］でルータ装置ＲＴｂからのカプセル化フレームを受信し、元の非カプセル化フレームＦＲ１３を生成し、それを下位ポートＰｄ［１］へ中継する。また、スイッチ装置ＶＴＥＰ［２］は、ＶＸＬＡＮ用のテーブルの学習も行う。
【００３６】
以上のように、ＶＸＬＡＮでは、通常、ＶＴＥＰとなるスイッチ装置（この例ではＶＴＥＰ［１］）は、カプセル化フレーム（ＦＲＣ１３ａ）を生成する際に、各種テーブル（ＶＸＬＡＮ用のテーブル、ルーティングテーブル、ＡＲＰテーブル）を順次参照する必要がある。このため、ＶＴＥＰとなるスイッチ装置は、このような処理をソフトウェア処理で実行する場合が多い。その結果、カプセル化フレームの生成に時間を要し、通信の高速化が図れない恐れがある。
【００３７】
《スイッチ装置の主要部の概略（本実施の形態）》
図３Ａは、図１の中継システムにおいて、スイッチ装置の主要部の構成例およびカプセル化フレーム受信時のＦＤＢ学習動作の一例を示す概略図である。図３Ｂは、図１の中継システムにおいて、スイッチ装置の主要部の構成例およびカプセル化フレーム受信時のＦＤＢ検索動作の一例を示す概略図である。図４Ａは、図１の中継システムにおいて、スイッチ装置の主要部の構成例および非カプセル化フレーム受信時のＦＤＢ学習動作の一例を示す概略図である。図４Ｂは、図１の中継システムにおいて、スイッチ装置の主要部の構成例および非カプセル化フレーム受信時のＦＤＢ検索動作の一例を示す概略図である。図３Ａ、図３Ｂ、図４Ａおよび図４Ｂには、図１のスイッチ装置ＶＴＥＰ［１］を例として、主要部の構成例が示される。
【００３８】
図３Ａ、図３Ｂ、図４Ａおよび図４Ｂに示すスイッチ装置ＶＴＥＰ［１］は、ＦＤＢ（Forwarding DataBase）と、ＶＰＮテーブル２１と、カプセル化実行部１８と、デカプセル化実行部１９とを備える。ＶＰＮテーブル２１は、概略的には、非カプセル化フレームＦＲに含まれるＶＬＡＮ識別子ＶＩＤと、カプセル化フレームＦＲＣの外部ヘッダ１２に含まれるＶＸＬＡＮネットワーク識別子ＶＮＩとを内部ＶＬＡＮ識別子ＩＶＩＤを介して対応付けるテーブルである。内部ＶＬＡＮ識別子ＩＶＩＤは、１２ビットのＶＬＡＮ識別子ＶＩＤよりも多いビット数（例えば１５ビット等）を備える。
【００３９】
カプセル化実行部１８は、受信した非カプセル化フレームＦＲの宛先ポートが上位ポートＰｕである場合に、非カプセル化フレームＦＲを外部ヘッダ１２でカプセル化することでカプセル化フレームＦＲＣを生成する。デカプセル化実行部１９は、受信したカプセル化フレームＦＲＣの宛先ポートが下位ポートＰｄである場合に、受信したカプセル化フレームＦＲＣから外部ヘッダ１２を取り除くことで非カプセル化フレームＦＲを生成する。
【００４０】
図３Ａ、図３Ｂ、図４Ａおよび図４ＢのＦＤＢは、外部ＭＡＣアドレスＯ＿ＭＡＣと、外部ＩＰアドレスＯ＿ＩＰと、内部ＭＡＣアドレスＩ＿ＭＡＣと、内部ＶＬＡＮ識別子ＩＶＩＤと、ポート識別子（ポートＩＤ）との対応関係を保持する。まず、ＦＤＢの学習動作について説明する。
【００４１】
図３Ａおよび図４ＡのＦＤＢにおいて、スイッチ装置ＶＴＥＰ［１］は、例えば、仮想マシンＶＭ１１，ＶＭ２１からの非カプセル化フレームを受信することで、Ｎｏ．１およびＮｏ．２のエントリを学習する。Ｎｏ．１のエントリは、内部ＭＡＣアドレスＩ＿ＭＡＣ“ＭＡ２１”と、内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”と、ポート識別子｛Ｐｄ［ｎ］｝との対応関係を保持し、Ｎｏ．２のエントリは、内部ＭＡＣアドレスＩ＿ＭＡＣ“ＭＡ１１”と、内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”と、ポート識別子｛Ｐｄ［１］｝との対応関係を保持する。本明細書では、｛Ｐｄ［ｎ］｝は、下位ポートＰｄ［ｎ］の識別子（ＩＤ）を表し、同様にして、例えば、｛ＡＡ｝は“ＡＡ”の識別子を表すものとする。
【００４２】
具体例として、図４Ａに示されるように、スイッチ装置ＶＴＥＰ［１］が、仮想マシンＶＭ１１からの非カプセル化フレームＦＲ１３を下位ポートＰｄ［１］で受信した場合を想定する。この場合、スイッチ装置ＶＴＥＰ［１］は、まず、ＶＰＮテーブル２１に基づいて、非カプセル化フレームＦＲ１３のＶＬＡＮ識別子“Ｖ１”を内部ＶＬＡＮ識別子“ＩＶ１”に変換する。そして、スイッチ装置ＶＴＥＰ［１］は、非カプセル化フレームＦＲ１３の送信元の内部ＭＡＣアドレス“ＭＡ１１”および内部ＶＬＡＮ識別子“ＩＶ１”をポート識別子｛Ｐｄ［１］｝に対応付けてＦＤＢ（ここではＮｏ．２のエントリ）に学習する。
【００４３】
これと同様にして、スイッチ装置ＶＴＥＰ［１］は、ＦＤＢのＮｏ．１のエントリも学習する。なお、スイッチ装置ＶＴＥＰ［１］は、ＦＤＢの学習を行う際には、内部ＭＡＣアドレスＩ＿ＭＡＣおよび内部ＶＬＡＮ識別子ＩＶＩＤを学習キーとして、ヒットしたエントリの上書きや、エージングタイマ（図示せず）の更新等を行う。
【００４４】
また、スイッチ装置ＶＴＥＰ［１］は、図１に示したように、上位ポートＰｕ［１］でカプセル化フレームＦＲＣ３１ｂを受信した場合に、図３Ａおよび図４ＡのＦＤＢにおけるＮｏ．３のエントリを学習する。具体的には、図３Ａに示されるように、スイッチ装置ＶＴＥＰ［１］は、当該フレームを受信した上位ポートのポート識別子｛Ｐｕ［１］｝と、送信元の外部ＭＡＣアドレス“ＭＡａ”および送信元の外部ＩＰアドレス“ＩＰＡ２”と、当該フレーム内の非カプセル化フレームの領域に含まれる送信元の内部ＭＡＣアドレス“ＭＡ３１”との対応関係をＦＤＢに学習する。加えて、スイッチ装置ＶＴＥＰ［１］は、当該カプセル化フレームＦＲＣ３１ｂのＶＸＬＡＮネットワーク識別子“ＶＮ１０”をＶＰＮテーブル２１に基づいて内部ＶＬＡＮ識別子“ＩＶ１”に変換し、ＦＤＢのＮｏ．３のエントリに、当該“ＩＶ１”を学習する。
【００４５】
次に、ＦＤＢの検索動作について説明する。スイッチ装置ＶＴＥＰ［１］は、図１に示したように、上位ポートＰｕ［１］でカプセル化フレームＦＲＣ３１ｂを受信した場合に、図３Ｂに示されるように、当該フレームに含まれる宛先の内部ＭＡＣアドレスＭＡ１１を検索キーとしてＦＤＢを検索する。スイッチ装置ＶＴＥＰ［１］は、当該ＦＤＢの検索結果として下位ポートのポート識別子｛Ｐｄ［１］｝を取得した際には、当該フレームをデカプセル化実行部１９を介して当該下位ポートＰｄ［１］に向けて送信する。この際に、デカプセル化実行部１９は、カプセル化フレームＦＲＣ３１ｂから外部ヘッダ１２を削除することで、非カプセル化フレームＦＲ３１を生成する。
【００４６】
より詳細には、スイッチ装置ＶＴＥＰ［１］は、図３Ｂに示されるように、カプセル化フレームＦＲＣ３１ｂを受信した場合に、当該フレームのＶＸＬＡＮネットワーク識別子“ＶＮ１０”をＶＰＮテーブル２１に基づいて内部ＶＬＡＮ識別子“ＩＶ１”に変換する。そして、スイッチ装置ＶＴＥＰ［１］は、宛先の内部ＭＡＣアドレスＭＡ１１に加えて当該内部ＶＬＡＮ識別子“ＩＶ１”を検索キーとしてＦＤＢを検索する。
【００４７】
また、スイッチ装置ＶＴＥＰ［１］は、図１に示したように、下位ポートＰｄ［１］で非カプセル化フレームＦＲ１３を受信した場合に、図４Ｂに示されるように、当該フレームに含まれる宛先の内部ＭＡＣアドレスＭＡ３１を検索キーとしてＦＤＢを検索する。スイッチ装置ＶＴＥＰ［１］は、当該ＦＤＢの検索結果として上位ポートのポート識別子｛Ｐｕ［１］｝、外部ＭＡＣアドレス“ＭＡａ”および外部ＩＰアドレス“ＩＰＡ２”を取得した際には、当該フレームをカプセル化実行部１８を介して当該上位ポートＰｕ［１］に向けて送信する。この際に、カプセル化実行部１８は、当該ＦＤＢの検索結果に基づく宛先の外部ＭＡＣアドレス“ＭＡａ”および宛先の外部ＩＰアドレス“ＩＰＡ２”を含んだカプセル化フレームＦＲＣ１３ａを生成する。
【００４８】
より詳細には、スイッチ装置ＶＴＥＰ［１］は、図４Ｂに示されるように、非カプセル化フレームＦＲ１３を受信した場合に、当該フレームのＶＬＡＮ識別子“Ｖ１”をＶＰＮテーブル２１に基づいて内部ＶＬＡＮ識別子“ＩＶ１”に変換する。そして、スイッチ装置ＶＴＥＰ［１］は、宛先の内部ＭＡＣアドレスＭＡ３１に加えて当該内部ＶＬＡＮ識別子“ＩＶ１”を検索キーとしてＦＤＢを検索する。また、カプセル化実行部１８は、ＶＰＮテーブル２１に基づいて当該内部ＶＬＡＮ識別子“ＩＶ１”をＶＸＬＡＮネットワーク識別子“ＶＮ１０”に変換することで、外部ヘッダ１２のＶＸＬＡＮネットワーク識別子ＶＮＩを定める。
【００４９】
なお、ここでは、ＦＤＢの保持情報として内部ＶＬＡＮ識別子ＩＶＩＤを用いたが、場合によっては、内部ＶＬＡＮ識別子ＩＶＩＤの代わりに、ＶＸＬＡＮネットワーク識別子ＶＮＩ等を用いることも可能である。この場合、ＶＰＮテーブルは、非カプセル化フレームＦＲに含まれるＶＬＡＮ識別子ＶＩＤと、カプセル化フレームＦＲＣの外部ヘッダ１２に含まれるＶＸＬＡＮネットワーク識別子ＶＮＩとの対応関係を保持すればよい。ただし、ＶＸＬＡＮネットワーク識別子ＶＮＩを用いた場合、２４ビットが必要であるため、ＣＡＭ（Content Addressable Memory）等のハードウェアで構成されるＦＤＢの記憶領域が多く消費される恐れがある。また、実用上、２４ビットほどの識別空間は必要とされない場合がある。このような観点からは、１２ビットよりも多く、２４ビットよりも少ない内部ＶＬＡＮ識別子ＩＶＩＤを用いることが有益となる。
【００５０】
《本実施の形態の主要な効果》
以上のように、図３Ａ、図３Ｂ、図４Ａおよび図４Ｂのスイッチ装置は、ＦＤＢの保持情報として、Ｌ２ネットワーク内での中継で通常使用される保持情報に加えて、外部ＭＡＣアドレスＯ＿ＭＡＣおよび外部ＩＰアドレスＯ＿ＩＰを含んでいる。このようなＦＤＢの拡張により、前述したような各種テーブルを順次参照するソフトウェア処理ではなく、ＦＤＢによるハードウェア処理を用いてカプセル化フレームの生成に必要な各種情報を取得することができる。その結果、カプセル化フレームの生成に要する時間を短縮でき、通信の高速化が実現可能になる。
【００５１】
また、当該ＦＤＢは、勿論、Ｌ２ネットワーク内でイーサネットフレームを中継する際にも使用することができる。例えば、図１において、スイッチ装置ＶＴＥＰ［１］が仮想マシンＶＭ１１から仮想マシンＶＭ２１を宛先とするイーサネットフレームを受信した場合、図４ＢのＮｏ．１のエントリに基づき、当該フレームを下位ポートＰｄ［ｎ］へ中継すればよい。
【００５２】
《スイッチ装置の構成》
図５は、図１の中継システムにおいて、スイッチ装置の構成例を示す概略図である。図６（ａ）は、図５におけるＶＰＮテーブル［１］の構造例を示す概略図であり、図６（ｂ）は、図５におけるＶＰＮテーブル［２］の構造例を示す概略図である。図７は、図５における終端判定部の動作例を示すフロー図である。
【００５３】
図５に示すスイッチ装置ＶＴＥＰは、非カプセル化フレームＦＲの通信（送信または受信）を行う下位ポートＰｄ［１］〜Ｐｄ［ｎ］と、カプセル化フレームＦＲＣの通信を行う上位ポートＰｕ［１］，Ｐｕ［２］，…と、各種処理部および各種テーブルとを有する。以下、各種処理部および各種テーブルに関して説明する。
【００５４】
インタフェース部１５は、受信バッファおよび送信バッファと、受信ポート識別子付加部２５とを備え、下位ポートＰｄとの間で非カプセル化フレームの送信または受信を行い、上位ポートＰｕとの間でカプセル化フレームの送信または受信を行う。受信ポート識別子付加部２５は、複数のポート（Ｐｄ［１］〜Ｐｄ［ｎ］，Ｐｕ［１］，Ｐｕ［２］，…）のいずれかでフレームを受信した場合に、当該フレームに受信したポートの識別子（受信ポート識別子ＲＰＩＤと称する）を付加する。
【００５５】
テーブル処理部１６は、ＶＰＮテーブル［１］２１ａに基づいて、受信したフレーム（非カプセル化フレームまたはカプセル化フレーム）に、内部ＶＬＡＮ識別子ＩＶＩＤを割り当てる。ＶＰＮテーブル［１］２１ａの内容は、予めネットワーク管理者等によって定められる。ＶＰＮテーブル［１］２１ａは、図６（ａ）に示されるように、下位ポートＰｄの受信ポート識別子（受信ポートＩＤ）ＲＰＩＤと内部ＶＬＡＮタグＩ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤとの組合せを内部ＶＬＡＮ識別子ＩＶＩＤに対応付けて保持する。また、ＶＰＮテーブル［１］２１ａは、上位ポートＰｕの受信ポート識別子ＲＰＩＤと外部ヘッダ１２内のＶＸＬＡＮネットワーク識別子ＶＮＩとの組合せを内部ＶＬＡＮ識別子ＩＶＩＤに対応付けて保持する。これにより、ＶＰＮテーブル［１］２１ａは、内部ＶＬＡＮタグＩ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤと、ＶＸＬＡＮネットワーク識別子ＶＮＩとを内部ＶＬＡＮ識別子ＩＶＩＤを介して対応付ける。
【００５６】
中継処理部１７は、ＦＤＢ処理部２６および終端判定部２７を備える。ＦＤＢ処理部２６は、図３Ａ、図３Ｂ、図４Ａおよび図４Ｂで述べたように、ＦＤＢの学習および検索を行う。具体的には、ＦＤＢの学習に際し、ＦＤＢ処理部２６は、上位ポートＰｕでカプセル化フレームＦＲＣを受信した場合、送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣおよび内部ＶＬＡＮ識別子ＩＶＩＤを、受信ポート識別子ＲＰＩＤ、送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣおよび送信元の外部ＩＰアドレスＯ＿ＳＩＰに対応付けてＦＤＢに学習する。また、ＦＤＢ処理部２６は、下位ポートＰｄで非カプセル化フレームＦＲを受信した場合、送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣおよび内部ＶＬＡＮ識別子ＩＶＩＤを、受信ポート識別子ＲＰＩＤに対応付けてＦＤＢに学習する。
【００５７】
一方、ＦＤＢの検索に際し、ＦＤＢ処理部２６は、受信したフレームの宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣおよび内部ＶＬＡＮ識別子ＩＶＩＤを検索キーとしてＦＤＢを検索する。ＦＤＢ処理部２６は、ＦＤＢの検索結果として、上位ポートＰｕのポート識別子、外部ＭＡＣアドレスＯ＿ＭＡＣおよび外部ＩＰアドレスＯ＿ＩＰを取得した際には、受信したフレームに当該取得した各種情報を付加し、それをカプセル化実行部１８へ送信する。
【００５８】
なお、ＦＤＢの検索結果として上位ポートＰｕのポート識別子が得られる場合とは、下位ポートＰｄで受信した非カプセル化フレームＦＲの宛先が上位ポートＰｕであった場合を意味する。すなわち、後述する終端判定部２７の処理により、上位ポートＰｕ間でのフレームのユニキャスト中継は実行されない。また、ＦＤＢの検索結果で取得したポート識別子は、宛先ポート識別子ＤＰＩＤとなる。
【００５９】
一方、ＦＤＢ処理部２６は、ＦＤＢの検索結果として、下位ポートＰｄのポート識別子を取得した際には、当該取得した情報（すなわち宛先ポート識別子ＤＰＩＤ）を、受信したフレームに付加してデカプセル化実行部１９または中継実行部２０へ送信する。この際に、ＦＤＢ処理部２６は、受信したフレームが非カプセル化フレームＦＲの場合（例えば、受信ポート識別子ＲＰＩＤが下位ポートＰｄの場合）には中継実行部２０へ送信し、カプセル化フレームＦＲＣの場合（例えば、受信ポート識別子ＲＰＩＤが上位ポートＰｕの場合）にはデカプセル化実行部１９へ送信する。
【００６０】
カプセル化実行部１８は、非カプセル化フレームＦＲを外部ヘッダ１２でカプセル化することでカプセル化フレームＦＲＣを生成する。この際に、カプセル化実行部１８は、外部ヘッダ１２の宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣおよび宛先の外部ＩＰアドレスＯ＿ＤＩＰを、それぞれ、ＦＤＢ処理部２６によって付加された外部ＭＡＣアドレスＯ＿ＭＡＣおよび外部ＩＰアドレスＯ＿ＩＰに定める。また、カプセル化実行部１８は、外部ヘッダ１２の送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣおよび送信元の外部ＩＰアドレスＯ＿ＳＩＰを、それぞれ、自身のＭＡＣアドレスおよびＩＰアドレスに定める。
【００６１】
さらに、カプセル化実行部１８は、外部ヘッダ１２のＵＤＰヘッダ内の送信元ポート番号ＳＰＮおよび宛先ポート番号ＤＰＮを所定の規定値に定める。そして、カプセル化実行部１８は、外部ヘッダ１２のＶＸＬＡＮヘッダ内のＶＸＬＡＮネットワーク識別子ＶＮＩおよび外部ＶＬＡＮタグＯ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤに関しては、ＶＰＮテーブル［２］２１ｂに基づいて定める。ＶＰＮテーブル［２］２１ｂの内容は、例えば、予めネットワーク管理者等によって定められる。
【００６２】
ＶＰＮテーブル［２］２１ｂは、図６（ｂ）に示されるように、内部ＶＬＡＮ識別子ＩＶＩＤと、ＶＸＬＡＮネットワーク識別子ＶＮＩと、外部ＶＬＡＮタグＯ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤと、マルチキャストＩＰアドレスＭＣＩＰと、マルチキャスト時の宛先のポート識別子との対応関係を保持する。カプセル化実行部１８は、中継処理部１７からのフレームに付加されている内部ＶＬＡＮ識別子ＩＶＩＤをキーとしてＶＰＮテーブル［２］２１ｂを参照し、対応するＶＸＬＡＮネットワーク識別子ＶＮＩおよび外部ＶＬＡＮタグＯ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤを取得する。
【００６３】
カプセル化実行部１８は、このようにして生成したカプセル化フレームＦＲＣを中継実行部２０へ送信する。デカプセル化実行部１９は、受信したカプセル化フレームＦＲＣから外部ヘッダ１２を取り除くことで非カプセル化フレームＦＲを生成し、当該非カプセル化フレームＦＲを中継実行部２０へ送信する。
【００６４】
中継実行部２０は、前述した各処理部からのフレーム（非カプセル化フレームまたはカプセル化フレーム）を、インタフェース部１５内の所定の送信バッファへ送信する。この所定の送信バッファは、ＦＤＢ処理部２６によって当該フレームに付加される宛先ポート識別子ＤＰＩＤに対応するバッファである。また、中継実行部２０は、フレームに付加されている不要な情報（例えば、受信ポート識別子ＲＰＩＤや宛先ポート識別子ＤＰＩＤ等）を削除する。インタフェース部１５内の送信バッファは、中継実行部２０からのフレームを受けて、対応するポート（すなわち宛先ポート識別子ＤＰＩＤが表す下位ポートＰｄまたは上位ポートＰｕ）へフレームを送信する。
【００６５】
なお、ここでは、ＦＤＢの検索結果がヒットした場合を想定した。一方、ＦＤＢ検索結果がミスヒットの場合や、下位ポートＰｄで受信した非カプセル化フレームＦＲの宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣがブロードキャストアドレス等の場合、中継処理部１７は、ＶＰＮテーブル［２］２１ｂに基づき、マルチキャストの処理を行う。具体的には、中継処理部１７は、受信したフレームの内部ＶＬＡＮ識別子ＩＶＩＤをキーとしてＶＰＮテーブル［２］２１ｂを参照し、マルチキャストＩＰアドレスＭＣＩＰおよびマルチキャスト時の宛先のポート識別子を取得する。
【００６６】
例えば、図６（ｂ）を例として、取得した宛先のポート識別子が｛Ｐｕ［１］｝，｛Ｐｄ［１］｝，｛Ｐｄ［ｎ］｝であり、受信ポート識別子ＲＰＩＤが｛Ｐｄ［１］｝であった場合を想定する。この場合、中継処理部１７は、受信したフレームをコピーすることで２個のフレームを生成し、一方を、宛先ポート識別子｛Ｐｕ［１］｝およびマルチキャストＩＰアドレスＭＣＩＰを付加したのちカプセル化実行部１８へ送信し、他方を、宛先ポート識別子｛Ｐｄ［ｎ］｝を付加したのち中継実行部２０へ送信する。カプセル化実行部１８は、当該マルチキャストＩＰアドレスＭＣＩＰを用いて、図２のカプセル化フレームＦＲＣ３１ａの場合と同様のカプセル化フレームＦＲＣを生成する。
【００６７】
また、中継処理部１７の終端判定部２７は、図７のステップＳ１０１に示すように、上位ポートＰｕでフレームを受信した場合（例えば、受信ポート識別子ＲＰＩＤが上位ポートＰｕであった場合）に、各種処理を実行する。この場合、終端判定部２７は、まず、受信したフレームに含まれるイーサタイプがＩＰｖ４またはＩＰｖ６であるか否かを判定する（ステップＳ１０２）。ＩＰｖ４またはＩＰｖ６でない場合、終端判定部２７は、受信したフレームを破棄する（ステップＳ１０８）。ステップＳ１０８でフレームが破棄された場合、その後の処理（例えば、ＦＤＢ処理部２６の処理等）は行われない。
【００６８】
一方、ＩＰｖ４またはＩＰｖ６である場合、終端判定部２７は、ＵＤＰヘッダのポート番号（具体的には宛先ポート番号ＤＰＮ）がＶＸＬＡＮ用の規定値であるか否かを判定する（ステップＳ１０３）。ＶＸＬＡＮ用の規定値でない場合、終端判定部２７は、当該フレームを破棄する（ステップＳ１０８）。一方、ＶＸＬＡＮ用の規定値である場合、終端判定部２７は、宛先の外部ＩＰアドレスＯ＿ＤＩＰが、マルチキャストＩＰアドレスＭＣＩＰであり（ステップＳ１０４）、かつ当該マルチキャストＩＰアドレスＭＣＩＰがＶＰＮテーブル［２］２１ｂに登録されているか否かを判定する（ステップＳ１０５）。
【００６９】
ステップＳ１０５でＶＰＮテーブル［２］２１ｂに登録されている場合、終端判定部２７は、受信したフレームを終端する（ステップＳ１０７）。ステップＳ１０７でフレームが終端された場合、その後の処理（例えば、ＦＤＢ処理部２６の処理等）が行われる。一方、ステップＳ１０５でＶＰＮテーブル［２］２１ｂに登録されていない場合、終端判定部２７は、受信したフレームを破棄する（ステップＳ１０８）。
【００７０】
また、ステップＳ１０４で宛先の外部ＩＰアドレスＯ＿ＤＩＰがマルチキャストＩＰアドレスＭＣＩＰでない場合、終端判定部２７は、受信したフレームの宛先の外部ＩＰアドレスＯ＿ＤＩＰおよび宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣが自身のＩＰアドレスおよびＭＡＣアドレスであるか否かを判定する（ステップＳ１０６）。終端判定部２７は、自身のＩＰアドレスおよびＭＡＣアドレスである場合、受信したフレームを終端し（ステップＳ１０７）、自身のＩＰアドレスおよびＭＡＣアドレスでない場合、受信したフレームを破棄する（ステップＳ１０８）。
【００７１】
このように、終端判定部２７は、上位ポートＰｕでフレームを受信した場合に、主に、［条件１］〜［条件３］を満たすか否かを判定する。
【００７２】
［条件１］ＵＤＰヘッダのポート番号がＶＸＬＡＮ用の規定値である（ステップＳ１０３）
［条件２］宛先の外部ＩＰアドレスＯ＿ＤＩＰが自身が参加しているマルチキャストグループのマルチキャストＩＰアドレスである（ステップＳ１０４，Ｓ１０５）
［条件３］宛先の外部ＩＰアドレスＯ＿ＤＩＰおよび宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣが共に自身のＩＰアドレスおよびＭＡＣアドレスである（ステップＳ１０６）
【００７３】
そして、終端判定部２７は、［条件１］かつ［条件２］を満たす場合か、または［条件１］かつ［条件３］を満たす場合に、受信したフレームに対してＦＤＢ学習・検索等の処理を行い（ステップＳ１０７）、そうでない場合には、受信したフレームを破棄する（ステップＳ１０８）。これにより、スイッチ装置ＶＴＥＰは、自身宛てのＶＸＬＡＮフレームのみを対象に中継処理を実行することができ、イレギュラーなフレームの中継（例えば、自身宛てで無いフレームを受信することによる上位ポートＰｕ間でフレーム中継等）に伴う不要な処理の発生やネットワーク内の不要なフレームの増大等を抑制することが可能になる。
【００７４】
図５の代表的な実装形態として、インタフェース部１５や中継実行部２０は、ＡＳＩＣ（Application Specific Integrated Circuit）等に実装される。テーブル処理部１６、中継処理部１７、カプセル化実行部１８およびデカプセル化実行部１９は、ＦＰＧＡ（Field Programmable Gate Array）等に実装される。ＦＤＢは、ＣＡＭ（Content Addressable Memory）等に実装され、ＶＰＮテーブル［１］２１ａ，［２］２１ｂは、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）やフラッシュメモリ等の書き換え可能なメモリに実装される。
【００７５】
ただし、各部の具体的な実装形態は、必ずしも、これに限定されるものではなく、ハードウェアまたはソフトウェアあるいはその組合せを用いて適宜実装されればよい。例えば、前述した中継処理部１７におけるマルチキャストの処理等は、ＣＰＵ（Central Processing Unit）によるソフトウェア処理で行うことも可能である。
【００７６】
《スイッチ装置の動作》
図８、図９および図１０は、図５のスイッチ装置における代表的な動作例を示す説明図である。図８には、図１に示したように、スイッチ装置ＶＴＥＰ［１］が上位ポートＰｕ［１］でカプセル化フレームＦＲＣ３１ｂを受信し、それを非カプセル化フレームＦＲ３１に変換して下位ポートＰｄ［１］へ中継する場合の動作例が示される。まず、受信ポート識別子付加部２５は、受信したカプセル化フレームＦＲＣ３１ｂに受信ポート識別子ＲＰＩＤ｛Ｐｕ［１］｝を付加し、それをテーブル処理部１６へ送信する。
【００７７】
テーブル処理部１６は、受信ポート識別子ＲＰＩＤ｛Ｐｕ［１］｝とカプセル化フレームＦＲＣ３１ｂに含まれるＶＸＬＡＮネットワーク識別子ＶＮＩ“ＶＮ１０”との組み合わせをキーとしてＶＰＮテーブル［１］２１ａを参照し、その結果に基づき、当該フレームに内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を付加する。そして、テーブル処理部１６は、当該フレームを中継処理部１７へ送信する。中継処理部１７の終端判定部２７は、フレームの受信ポートが上位ポートＰｕであるため、図７の処理を実行する。ここでは、終端判定部２７は、図７の処理結果としてフレームを終端し、ＦＤＢ処理部２６へ処理を移行する。
【００７８】
ＦＤＢ処理部２６は、受信したフレームの送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣ“ＭＡ３１”および内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を、送信元の外部ＭＡＣアドレスＯ＿ＳＭＡＣ“ＭＡａ”、送信元の外部ＩＰアドレスＯ＿ＳＩＰ“ＩＰＡ２”および受信ポート識別子ＲＰＩＤ｛Ｐｕ［１］｝に対応付けてＦＤＢに学習する。また、ＦＤＢ処理部２６は、受信したフレームの宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣ“ＭＡ１１”および内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を検索キーとしてＦＤＢを検索し、宛先ポート識別子ＤＰＩＤ｛Ｐｄ［１］｝を取得する。これに応じて、ＦＤＢ処理部２６は、当該フレームに宛先ポート識別子ＤＰＩＤ｛Ｐｄ［１］｝を付加し、それをデカプセル化実行部１９へ送信する。
【００７９】
デカプセル化実行部１９は、カプセル化フレームＦＲＣ３１ｂから外部ヘッダ１２を取り除くことで非カプセル化フレームＦＲ１３を生成し、それを中継実行部２０へ送信する。中継実行部２０およびインタフェース部１５は、フレームに付加されている宛先ポート識別子ＤＰＩＤ｛Ｐｄ［１］｝に基づき、不要な情報を削除した上で非カプセル化フレームＦＲ１３を下位ポートＰｄ［１］へ送信する。
【００８０】
図９には、図１に示したように、スイッチ装置ＶＴＥＰ［１］が下位ポートＰｄ［１］で非カプセル化フレームＦＲ１３を受信し、それをカプセル化フレームＦＲＣ１３ａに変換して上位ポートＰｕ［１］へ中継する場合の動作例が示される。まず、受信ポート識別子付加部２５は、受信した非カプセル化フレームＦＲ１３に受信ポート識別子ＲＰＩＤ｛Ｐｄ［１］｝を付加し、それをテーブル処理部１６へ送信する。
【００８１】
テーブル処理部１６は、受信ポート識別子ＲＰＩＤ｛Ｐｄ［１］｝と非カプセル化フレームＦＲ１３に含まれる内部ＶＬＡＮタグＩ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤ“Ｖ１”との組み合わせをキーとしてＶＰＮテーブル［１］２１ａを参照し、その結果に基づき、当該フレームに内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を付加する。そして、テーブル処理部１６は、当該フレームを中継処理部１７へ送信する。
【００８２】
中継処理部１７のＦＤＢ処理部２６は、受信したフレームの送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣ“ＭＡ１１”および内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を、受信ポート識別子ＲＰＩＤ｛Ｐｄ［１］｝に対応付けてＦＤＢに学習する。また、ＦＤＢ処理部２６は、受信したフレームの宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣ“ＭＡ３１”および内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を検索キーとしてＦＤＢを検索し、宛先の外部ＭＡＣアドレスＯ＿ＤＭＡＣ、宛先の外部ＩＰアドレスＯ＿ＤＩＰおよび宛先ポート識別子ＤＰＩＤ｛Ｐｕ［１］｝を取得する。これに応じて、ＦＤＢ処理部２６は、これらの取得情報をフレームに付加し、それをカプセル化実行部１８へ送信する。
【００８３】
カプセル化実行部１８は、フレームに付加されている取得情報と、ＶＰＮテーブル［２］２１ｂに基づく情報とを用いて外部ヘッダ１２を生成し、当該外部ヘッダ１２で非カプセル化フレームＦＲ１３をカプセル化することでカプセル化フレームＦＲＣ１３ａを生成する。この際に、カプセル化実行部１８は、フレームの内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”をキーとしてＶＰＮテーブル［２］２１ｂを参照し、外部ＶＬＡＮタグＯ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤ“Ｖ１０”およびＶＸＬＡＮネットワーク識別子ＶＮＩ“ＶＮ１０”を取得する。
【００８４】
カプセル化実行部１８は、当該カプセル化フレームＦＲＣ１３ａを中継実行部２０へ送信する。中継実行部２０およびインタフェース部１５は、フレームに付加されている宛先ポート識別子ＤＰＩＤ｛Ｐｕ［１］｝に基づき、不要な情報を削除した上でカプセル化フレームＦＲＣ１３ａを上位ポートＰｕ［１］へ送信する。
【００８５】
図１０には、図１において、スイッチ装置ＶＴＥＰ［１］が、仮想マシンＶＭ１１からの仮想マシンＶＭ２１宛の非カプセル化フレームＦＲ１２を下位ポートＰｄ［１］で受信し、それを下位ポートＰｄ［ｎ］へ中継する場合の動作例が示される。まず、受信ポート識別子付加部２５は、受信した非カプセル化フレームＦＲ１２に受信ポート識別子ＲＰＩＤ｛Ｐｄ［１］｝を付加し、それをテーブル処理部１６へ送信する。
【００８６】
テーブル処理部１６は、受信ポート識別子ＲＰＩＤ｛Ｐｄ［１］｝と非カプセル化フレームＦＲ１２に含まれる内部ＶＬＡＮタグＩ＿ＶＬＡＮ内のＶＬＡＮ識別子ＶＩＤ“Ｖ１”との組み合わせをキーとしてＶＰＮテーブル［１］２１ａを参照し、その結果に基づき、当該フレームに内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を付加する。そして、テーブル処理部１６は、当該フレームを中継処理部１７へ送信する。
【００８７】
中継処理部１７のＦＤＢ処理部２６は、受信したフレームの送信元の内部ＭＡＣアドレスＩ＿ＳＭＡＣ“ＭＡ１１”および内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を、受信ポート識別子ＲＰＩＤ｛Ｐｄ［１］｝に対応付けてＦＤＢに学習する。また、ＦＤＢ処理部２６は、受信したフレームの宛先の内部ＭＡＣアドレスＩ＿ＤＭＡＣ“ＭＡ２１”および内部ＶＬＡＮ識別子ＩＶＩＤ“ＩＶ１”を検索キーとしてＦＤＢを検索し、宛先ポート識別子ＤＰＩＤ｛Ｐｄ［ｎ］｝を取得する。これに応じて、ＦＤＢ処理部２６は、宛先ポート識別子ＤＰＩＤ｛Ｐｄ［ｎ］｝をフレームに付加し、それを中継実行部２０へ送信する。中継実行部２０およびインタフェース部１５は、フレームに付加されている宛先ポート識別子ＤＰＩＤ｛Ｐｄ［ｎ］｝に基づき、不要な情報を削除した上で非カプセル化フレームＦＲ１２を下位ポートＰｄ［ｎ］へ送信する。
【００８８】
以上、本実施の形態のスイッチ装置および中継システムを用いることで、代表的には、ＶＸＬＡＮにおける通信の高速化が実現できる。
【００８９】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【００９０】
１０ａ〜１０ｃ  情報処理装置
１２  外部ヘッダ
１５  インタフェース部
１６  テーブル処理部
１７  中継処理部
１８  カプセル化実行部
１９  デカプセル化実行部
２０  中継実行部
２１，２１ａ，２１ｂ  ＶＰＮテーブル
２５  受信ポート識別子付加部
２６  ＦＤＢ処理部
２７  終端判定部
ＦＲ  非カプセル化フレーム
ＦＲＣ  カプセル化フレーム
Ｉ＿ＤＭＡＣ  宛先の内部ＭＡＣアドレス
Ｉ＿ＭＡＣ  内部ＭＡＣアドレス
Ｉ＿ＳＭＡＣ  送信元の内部ＭＡＣアドレス
Ｉ＿ＶＬＡＮ  内部ＶＬＡＮタグ
ＩＶＩＤ  内部ＶＬＡＮ識別子
ＮＷ１  Ｌ３ネットワーク
ＮＷ２ａ，ＮＷ２ｂ  Ｌ２ネットワーク
Ｏ＿ＤＩＰ  宛先の外部ＩＰアドレス
Ｏ＿ＤＭＡＣ  宛先の外部ＭＡＣアドレス
Ｏ＿ＩＰ  外部ＩＰアドレス
Ｏ＿ＭＡＣ  外部ＭＡＣアドレス
Ｏ＿ＳＩＰ  送信元の外部ＩＰアドレス
Ｏ＿ＳＭＡＣ  送信元の外部ＭＡＣアドレス
Ｏ＿ＶＬＡＮ  外部ＶＬＡＮタグ
Ｐｄ  下位ポート
Ｐｕ  上位ポート
ＲＴａ，ＲＴｂ  ルータ装置
ＶＩＤ  ＶＬＡＮ識別子
ＶＭ１１，ＶＭ１２，ＶＭ２１，ＶＭ２２，ＶＭ３１，ＶＭ３２  仮想マシン
ＶＮＩ  ＶＸＬＡＮネットワーク識別子
ＶＴＥＰ  スイッチ装置
【図１】
0006629681.tif 000002
【図２】
0006629681.tif 000003
【図３Ａ】
0006629681.tif 000004
【図３Ｂ】
0006629681.tif 000005
【図４Ａ】
0006629681.tif 000006
【図４Ｂ】
0006629681.tif 000007
【図５】
0006629681.tif 000008
【図６】
0006629681.tif 000009
【図７】
0006629681.tif 000010
【図８】
0006629681.tif 000011
【図９】
0006629681.tif 000012
【図１０】
0006629681.tif 000013