添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
図1は、本実施形態における通信システム10の全体構成図を示す。この通信システム10は、サーバE1〜E4および転送装置N1〜N7などの通信装置ならびに経路管理サーバ100を含んで構成されている。サーバE1〜E2は、図示しない端末装置との通信接続するためのサーバである。サーバE3〜E4は、いわゆる関門交換機に相当するものであり、外部ネットワークとの境界に配置されるものであって、その外部ネットワークと接続するためのサーバである。転送装置N1〜N7は、ルータやスイッチであり、サーバE1〜E2とサーバE3〜E4とをつなぐものである。転送装置N1〜N7は、複数配置されており、その組み合わせによりサーバE1〜E2とサーバE3〜E4との間で、複数の経路を構成することができる。
本実施形態においては、転送装置N1〜N4の上位層(外部ネットワーク側)に転送装置N5〜N7が配置されている。また、転送装置N1〜N2が同じグループに属し、転送装置N3〜N4が同じグループに属し、転送装置N5〜N7が同じグループに属するものとする。このグループは、同じ役割・機能を有するものとして定義されたものである。
サーバE1、E2は、それぞれ2つの物理ポートP1、P2を備えており、転送装置N1〜N2との間でパケットデータを入出力可能に構成されている。これら物理ポートP1、P2は、それぞれサーバE1、E2において、仮想ポートV1、V2が割り当てられており、仮想ポートを用いた通信を可能にしている。
同様に、転送装置N1〜N7においても、物理ポートが備えられている。例えば、転送装置N1においては、物理ポートP1〜P4が備えられており、物理ポートP1は、サーバE1の物理ポートP1と接続されており、物理ポートP2は、転送装置N5と接続され、物理ポートP3は、転送装置N6と接続され、物理ポートP4は転送装置N7と接続されている。転送装置N2〜N4においても同様の接続関係を有している。
ここで、転送装置N1と転送装置N2とは、同じ役割を有しており、一方が故障した場合に、他方が補完することができるように同じ機能構成を有するものである。本実施形態においては、転送装置N1と転送装置N2においては、同じ仮想ポートを割り当てておき、いずれの転送装置にパケットデータが入力されたとしても、同じ宛先に出力できるように構成されている。本実施形態においては、転送装置N1、N2においては、その物理ポートP1、物理ポートP2〜P4において、それぞれ仮想ポートV3、およびV5が割り当てられている。
なお、転送装置N3、N4は、同じグループであるが、転送装置N1、N2とは異なるグループである。よって、転送装置N3、N4間においては同じ仮想ポートが割り当てられているが、転送装置N1、N2とは異なる仮想ポートが割り当てられている。同様に、転送装置N5〜N7においては、転送装置N1〜N4とはそのグループが異なるため、異なる仮想ポートが割り当てられているが、転送装置N5〜N7間においては、同じグループに属する関係にあり、その仮想ポートは、それぞれ仮想ポートV7〜V9が割り当てられている。
経路管理サーバ100は、上述したサーバE1〜E4、および転送装置N1〜N7の物理的な接続関係を示すトポロジ情報を記憶しており、この接続関係に従って、サーバE1、E2と、サーバE3、E4との間の経路を決定して、各転送装置N1〜N7に対して設定することができる。
図2は、仮想ポートV1〜V10を割り当てるときの処理概念を示す説明図である。図2(a)は、仮想ポートの割り当てがない状態の通信システムの全体を示す図である。経路管理サーバ100は、このような物理的な入出力ポートとそれらポートを用いた接続関係を管理している。この状態においては、仮想ポートは割り当てられていない。図2(b)は、各サーバ、転送装置の役割に応じてまとめられた通信システムの模式図を示す。
図2(b)に示される通り、サーバE1は、仮想サーバVE1に割り当てられている。また、転送装置N1、N2は、仮想転送装置VN1に割り当てられている。転送装置N1、N2は、同じ役割を有するものとしており、仮想的には一つの装置としてまとめることができる。
仮想転送装置VN1と仮想サーバVE1とにおいて、その接続関係を示す仮想リンクVL1が割り当てられる。ここで、仮想リンクVL1の仮想転送装置VN1における仮想サーバVE1側の端点である転送装置N1の物理ポートP1に対して、仮想ポートV3が割り当てられる。また、仮想サーバVE1における仮想転送装置VN1側の端点であるサーバE1の物理ポートP1,P2に対して、仮想ポートV1が割り当てられている。
ほか、転送装置N3〜N7、およびサーバE3、E4についても同様に同じ役割を有するものについては、その役割単位で仮想的にまとめられ、仮想リンクの端点である各装置・各サーバの物理ポートに対して、仮想ポートが割り当てられる。
図3は、図2で説明した仮想ポートを実際の通信システムにおいてどのように割り当てられるかを示す説明図である。図3(b)において、割り当てられた仮想ポートは、通信システム10のそれぞれの物理ポートP1等に割り当てられる。例えば、サーバE1における物理ポートP1、P2には、仮想ポートV1が割り当てられる。また、転送装置N1の物理ポートP2〜P4には、仮想ポートV5が割り当てられる。
このようにして、仮想ポートV1〜V10が、各サーバE1〜E4、各転送装置N1〜N7のそれぞれの物理ポートP1〜P4に対して割り当てられる。
つぎに、仮想ポートの割り当てについて、詳細な処理について説明する。図4は、物理的な経路管理を行なうとともに、仮想ポートの割り当て処理を行なう経路管理サーバ100の機能を示すブロック図である。図4に示される通り、経路管理サーバ100は、ノード情報取得部101、ノード情報テーブル102、仮想ノード識別子付与部103(特定手段)、仮想ノード設定テーブル104、仮想リンク識別子付与部105(仮想ポート付与手段)、仮想ポート設定テーブル106、転送情報生成部107(生成手段)、転送情報設定テーブル108、および設定処理部109(設定手段)を含んで構成されている。
図5は、経路管理サーバ100のハードウェア構成図である。図4に示される経路管理サーバ100は、物理的には、図5に示すように、一または複数のCPU11、主記憶装置であるRAM12及びROM13、入力デバイスであるキーボード及びマウス等の入力装置14、ディスプレイ等の出力装置15、ネットワークカード等のデータ送受信デバイスである通信モジュール16、ハードディスクや半導体メモリ等の補助記憶装置17などを含むコンピュータシステムとして構成されている。図4における各機能は、図5に示すCPU11、RAM12等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、CPU11の制御のもとで入力装置14、出力装置15、通信モジュール16を動作させるとともに、RAM12や補助記憶装置17におけるデータの読み出し及び書き込みを行うことで実現される。以下、図4に示す機能ブロックに基づいて、各機能ブロックを説明する。
ノード情報取得部101は、各サーバE1〜E4、各転送装置N1〜N7の役割を取得する部分である。ノード情報取得部101は、システムのオペレータにより入力された役割を取得してもよいし、各サーバE1〜E4、各転送装置N1〜N7において設定されている役割を示す情報を取得してもよい。なお、ここでの役割とは、上述した通り、その通信の冗長性を向上させるために同じグループに属するものであることを示す情報である。
ノード情報テーブル102は、ノード情報取得部101により取得された役割情報を、物理ノード識別子および物理ポート(およびその接続先)と関連付けて記憶する部分である。図6(a)にその具体例を示す。例えば、図6(a)においては、物理ノード識別子としてE1には、物理ポートP1およびP2が対応付けられており、物理ポートP1およびP2のそれぞれは、物理ノード識別子として転送装置N1およびN2が対応付けられている。サーバE1においては、他に関連するものがないとして、関連ノードには何も記述されていない。
一方、物理ノード識別子として転送装置N1には、関連ノードとして転送装置N2が割り当てられている。これらは、転送装置N1、N2が同じ役割であることを示している。
仮想ノード識別子付与部103は、各サーバE1〜E4、転送装置N1〜N7などの物理ノードに対して仮想ノード識別子を付与する部分である。仮想ノード識別子は、他のノードと識別できるようにユニークとなるようなものであればよい。この仮想ノード識別子付与部103は、ノード情報テーブル102を参照して、関連ノードをキーにして同じ役割を有する複数の転送装置を仮想転送装置としてその仮想ノード識別子を付与する。なお、関連ノードが記述されていないサーバE1、E2等においては、それぞれを仮想サーバVE1、VE2とする。
仮想ノード設定テーブル104は、仮想ノード識別子付与部103により付与された仮想ノード識別子を、物理ノード識別子に対応付けて記憶する部分である。図6(b)は、物理ノード識別子と、仮想ノード識別子とを対応付けした仮想ノード設定テーブルの具体例である。図に示される通り、例えば物理ノード識別子としてサーバE1に対して、仮想サーバVE1が割り当てられている。また、転送装置N1およびN2に対して仮想転送装置VN1が割り当てられている。
仮想リンク識別子付与部105は、仮想サーバ間または仮想転送装置間または仮想サーバと仮想転送装置との間の仮想リンクを示す仮想リンク識別子を付与する部分である。例えば、図2(a)に示されるように仮想サーバVE1と仮想転送装置VN1との間に対して、仮想リンクVL1がその識別子として付与されている。
さらに仮想リンク識別子付与部105は、仮想リンクの端点である仮想サーバ、仮想転送装置のそれぞれにおける仮想ポートに対して仮想ポート識別子を付与する。例えば、仮想リンクVL1の端点は、仮想サーバVE1、仮想転送装置VN1である。これら仮想サーバVE1、仮想転送装置VN1のそれぞれの物理ポートに対して仮想ポート識別子を付与する。仮想ポート識別子それ自体は、上述の仮想ノード識別子と同様に、ユニークとなるように付与されるものである。
仮想ポート設定テーブル106は、仮想リンク識別子付与部105により付与された仮想リンク識別子を、仮想ノード識別子によりその仮想ノード間を示す情報に対応付けて記憶する部分である。さらに、その仮想リンクの端点である仮想サーバ、仮想転送装置のそれぞれに対応付けて、仮想ポート識別子を記憶する。
図6(c)においては、仮想ノード識別子として、仮想サーバVE1と仮想転送装置VN1とのリンクに対して、仮想リンクVL1が対応付けられている。さらに、仮想ポート識別子として、仮想サーバVE1には仮想ポートV1が、仮想転送装置VN1には、仮想ポートV3が対応付けられている。
転送情報生成部107は、各サーバE1〜E4、各転送装置N1〜N7に対して設定される転送情報を生成する部分である。すなわち、転送情報生成部107は、各サーバE1〜E4、各転送装置N1〜N7に、仮想ポート識別子、仮想ポート識別符号、および物理ポート識別子を対応付けた転送情報を生成する。転送情報生成部107は、上述したノード情報テーブル102、仮想ノード設定テーブル104、および仮想ポート設定テーブル106を用いることにより、物理ノード識別子ごとに、仮想ポート識別子、仮想ポート識別符号、仮想ポート識別子を対応付けた転送情報を生成することができる。なお、仮想ポート識別符号は、仮想ポート識別子に対してユニークに付与された符号(例えば数字のみからなるもの)であって、ネットワーク上においては、この符号を用いて転送処理を可能にしている。
ここで、仮想転送装置VN3に着目して、仮想転送装置VN1と接続するための仮想ポートV7と物理ポートP1、P2との対応付け処理の処理過程について説明する。図6(c)に示される通り、仮想ノード識別子のリンクはVN3−VN1には、仮想リンクVL3が対応付けられている。ここで仮想転送装置VN3は、仮想転送装置VN1に対する仮想ポートとして仮想ポートV7が付与さる。
一方で、図6(b)を参照すると、仮想転送装置VN3は、転送装置N5〜N7から構成されることがわかる。また、図6(a)を参照すると、転送装置N5〜N7は、それぞれ物理ポートP1〜P6を有し、それぞれ転送装置N1〜N4、サーバE3、E4に接続されることがわかる。
ここでは、仮想転送装置VN3は、仮想転送装置VN1と接続しており、この仮想転送装置VN1は、転送装置N1とN2とから構成される。
再度、図6(a)を参照すると、転送装置N5において、転送装置N1とN2とに接続されるポートは物理ポートP1、P2である。
よって、仮想転送装置VN3における仮想転送装置VN1と接続するための仮想ポートV7は、転送装置N5においては、物理ポートP1、P2に対応付けられることがわかる。転送装置N6、N7も同様である。以上のことから、各転送装置、サーバにおける仮想ポートと物理ポートとの対応付けを可能にすることができる。
転送情報設定テーブル108は、転送情報生成部107により生成された転送情報を記憶する部分である。図6(d)は、その具体例を示す図である。図に示される通り、転送情報設定テーブル108は、物理ノード識別子、仮想ポート識別子、仮想ポート識別符号、物理ポート識別子を対応付けて記憶している。例えば、物理ノードであるサーバE1に対しては、仮想ポートV1、仮想ポート識別符号100001、および物理ポートP1、P2が対応付けている。
設定処理部109は、転送情報設定テーブル108に記憶されている転送情報を、各サーバE1〜E4、各転送装置N1〜N7に対して設定する部分である。この設定処理は、転送装置またはサーバ宛てに対して転送情報を送信し、その転送情報を受信した転送装置またはサーバが記憶することにより行われる。
つぎに、このように構成された経路管理サーバ100の処理について説明する。図7は、経路管理サーバ100が仮想ポートを付与して、転送情報を生成する仮想ポート割当方法のフローチャートである。図に示される通り、ノード情報取得部101により各サーバE1〜E4、各転送装置N1〜N7の役割が取得され、ノード情報テーブルが生成される(S101、図6(a))。そして、仮想ノード識別子付与部103により、互いに等価な役割を持つサーバ、転送装置を一つの仮想ノードと見做して仮想ノード識別子は付与されるとともに、サーバ、転送装置との仮想ノード設定テーブルが生成される(S102、図6(b))。
つぎに、仮想リンク識別子付与部105により、仮想ノード間の接続関係を仮想リンクと見做して仮想リンク識別子が付与され、仮想ポート設定テーブルが生成される(S103)。さらに、仮想リンク識別子付与部105により、仮想リンクの端点を仮想ポートと見做して、仮想ノード(仮想サーバ、仮想転送装置)に対して一意となる仮想ポート識別子が仮想ポート設定テーブル106に付与される(図6(c))。そして、転送情報生成部107により、仮想ノード(仮想サーバ、仮想転送装置)に対して一意となる仮想ポート識別符号が付与され、サーバ、転送装置の物理ポートとの対応関係が転送情報として生成される(S104、図6(d))。
このようにして、生成された転送情報は、設定処理部109により、各サーバE1〜E4、転送装置N1〜N7に対して送信され、各サーバ、各転送装置において、転送テーブルとして設定される(S105)。
つぎに、このようにして設定された転送情報を記憶した各サーバE1〜E4、転送装置N1〜N7における転送処理について説明する。図8は、転送装置N1の機能を示す機能ブロック図である。なお、サーバE1〜E4、転送装置N2〜N7においても同様の機能構成を有する。図8に示される通り、転送装置N1は、転送情報テーブル201(記憶手段)、仮想ポート転送処理部202(出力手段、判断手段)、入出力ポート203を含んで構成されている。なお、図8においては、入出力ポート203は、物理ポート203a〜203cを有するものとしているが、これに限るものではない。この物理ポート203a〜203cは、例えば図1における物理ポートP1等に相当する。
転送情報テーブル201は、上述した経路管理サーバ100において生成された転送情報を記憶する部分である。この転送情報テーブル201は、少なくとも物理ポート識別子、仮想ポート識別子を記憶している。
仮想ポート転送処理部202は、入出力ポート203から入力されたパケットを転送情報テーブル201に従って、転送する部分である。ここで、その転送制御について、詳細に説明する。図9は、転送の対象となるパケットデータのフォーマット例を示す図である。図9に示される通り、パケットデータは、共通ヘッダ、仮想ポート識別符号列、およびデータである入力パケットからなる。共通ヘッダは、仮想ネットワーク識別子、入力パケット識別情報および品質指定情報を含んでいる。仮想ネットワーク識別子は、サーバ、転送装置が所属する仮想ネットワークの識別子を示す。入力パケット識別情報は、入力したパケットを識別するための情報であり、例えばセッション番号である。これは、同じ通信にあるパケットを識別するための情報となる。品質指定情報は、通信において迅速性を求められており、割り込み処理が必要であるか否かを示す情報である。例えば音声データなどの場合には迅速性が求められたものとされる。
仮想ポート識別符号列は、転送先となる転送装置の仮想ポート識別符号を記述した符号列を示す。パケットデータは転々と複数の転送装置を介して転送されるものであって、仮想ポート識別符号列には、各転送装置出力先として、その転送順に複数仮想ポート識別符号が記述されている。入力パケットは、転送対象となるデータである。
仮想ポート転送処理部202は、入出力ポート203から入力されたパケットデータのうち共通ヘッダを参照して、自装置が属している仮想化ネットワーク識別子に対応したものであるか否か、を判断し、対応したものでなければ、当該パケットデータを落とす処理を行なう。なお、自装置に対応した仮想化ネットワークであるか否かを判断するために用いるほか、仮想化ネットワーク毎にトラフィックの状態を把握するために、該当する仮想化ネットワーク識別子に対応するパケットデータを受信した場合には、図示しない統計管理サーバに、そのパケットデータのサイズや送受信時刻等を送信するようにしてもよい。なお、自装置の仮想化ネットワーク識別子はあらかじめ設定されているものとする。
そして、仮想ポート転送処理部202は、転送情報テーブル201を参照して、入力されたパケットに付与されている仮想ポート識別符号列に対応する物理ポートからパケットを出力する。その際は、入力パケット識別情報に基づいて定められた物理ポートから出力する。入力パケット識別情報は、例えばセッション番号であって、通信の遅延等で、到着するパケットの順番がずれないように同じ経路(同じ物理ポート)を通すようにするための情報である。これにより、同じセッションについてのパケットデータは同じ出力ポートから出力されることになり、パケットデータを同じ経路で出力することができる。
また、リンクダウン情報(例えば隣接する装置との間が導通状態になっていないなど)に基づいて、出力先となる物理ノードや物理リンクがダウンしていると判断する場合には、仮想ポート転送処理部202は、他の物理ポートを選択する。
ここで、仮想ポート転送処理部202は、自装置における仮想ポート識別符号を記憶しており、パケットデータにおける仮想ポート識別符号列から自装置の仮想ポート符号を削除して当該符号列が削除されたパケットデータを転送する。
このように構成された転送装置N1の転送処理について説明する。図10は、転送装置N1の転送処理を示すフローチャートである。まず、入出力ポート203からパケットデータが受信される(S201)。そして、仮想ポート転送処理部202により、ヘッダにおける仮想ポート識別符号列から、自装置の仮想ポート識別符号が削除される(S202)。また、仮想ポート転送処理部202により、仮想化ネットワーク識別子に基づいて、自装置において対応した仮想化ネットワーク識別子に一致したパケットデータであるか否かが判断される(S203)。ここで、対応不可であると判断されると処理は中止となり、パケットが落ちる処理がなされる。
対応可である場合には、仮想ポート転送処理部202により、さらに品質指定情報に基づいて割り込み処理が必要なものであるか否かが判断される(S204)。割り込み処理が不要であるものについては、出力バッファなどに入れて出力待ち状態とする(S205)。割り込み処理が必要である場合には、出力バッファなどに入れることなく、そのまま転送処理を行なう。
転送処理に際しては、まず仮想ポート識別子に基づいて出力ポートが決定される(S206)。ここでは、転送情報テーブルに基づいて、仮想ポート識別子に対応する物理ポートのポート識別子が抽出される。通常物理ポートは複数割り当てられている。
さらに、複数の物理ポートから、入力パケット識別情報およびリンクダウン情報に基づいて、一の物理ポートが決定される(S207)。入力パケット識別情報に基づいて、同じセッションであるパケットは同じ物理ポートから出力するように、その物理ポートを決定する。さらに、リンクダウン情報に基づいて、決定した物理ポートの送信先となる物理ノードや物理リンクがダウンしていると判断できる場合には、あらかじめ定めたルールに従って他の物理ポートを決定する。
このようにして決定した入出力ポート203から、パケットデータが出力される(S208)。
ここで、図1を用いて仮想ポート識別子を用いたパケットデータの送信処理について説明する。図1において、その経路Kに示される通り、サーバE1からサーバE3に対してパケットデータが送信されている。
サーバE1から送信されるパケットデータの仮想ポート識別符号列には、仮想ポートV1、V5、V9に対応する符号列が設定されている。これにより、経路Kに従った転送処理が可能となる。以下その詳細について説明する。
サーバE1においては、仮想ポートV1が指定されているため物理ポートP1またはP2のいずれかから出力される。ここでは、物理ポートP1から出力されることが決められているものとする。物理ポートP1から出力されたパケットデータは、転送装置N1に入力される。転送装置N1においては、そのヘッダを参照すると仮想ポートV5から出力することが指定されていることから、さらに転送情報を参照して物理ポートP2からP4のいずれかが選択される。ここでは、物理ポートP2が選択されるものとする。
そして、物理ポートP2から出力されたパケットデータは、転送装置N5に入力される。転送装置N5においては、仮想ポートV9が指定されていることから、その物理ポートP5またはP6のいずれかから出力されることになる。ここでは、物理ポートP5が選択されるものとする。そして、パケットデータは、サーバE3に入力され、外部ネットワークに送信されることになる。
上述は通常の経路であるが、図11においては、転送装置N5が故障している状態を示している。そのため、転送装置N1においては、仮想ポートV5における物理ポートP2を選択すると、パケットが落ちてしまう。よって、このような場合には、転送装置N1は、リンクダウン情報に基づいて物理ポートP2を選択しないようにする。
本実施形態では、例えば、転送装置N1において、物理ポートP3を選択すると、パケットデータは、転送装置N6に送信される。転送装置N6は、転送装置N5と同じ役割を有するものとして設定されていることから、同じ仮想ポート識別子を用いた転送処理を行なうことができる。
ここでは、転送装置N6は、仮想ポートV9に対応付けられている物理ポートのうち物理ポートP5を選択することができる。そして、物理ポートP5から出力されたパケットデータは、サーバE3に出力されることになる。
このようにして、仮想ポート識別子を用いることで、自動的に経路K1に迂回して転送処理を行なうことができ、経路途中にある転送装置が故障したとしても、経路を再計算することなく、迅速にパケットデータの転送処理を行なうことができる。
つぎに、経路管理サーバ100から各サーバE1〜E4、転送装置N1〜N7に対して、転送情報をどのようにして設定するかを説明する。図12は、経路管理サーバ100が制御パケット転送装置を用いて各サーバE1〜E4、転送装置N1〜N7と接続していることを示すシステム構成図である。
図12に示される通り、経路管理サーバ100は、制御パケット転送装置200を用いて各サーバE1〜E4、各転送装置N1〜N7と接続している。各サーバE1〜E4、各転送装置N1〜N7には、制御パケット転送装置200と接続するための物理ポートP0が備えられている。また、制御パケット転送装置200は、各サーバE1〜E4、転送装置N1〜N7と接続するための物理ポートP2〜P12が備えられている。また、経路管理サーバ100および制御パケット転送装置200が相互に接続するための物理ポートP0およびP1がそれぞれ備えられている。
図12においては、制御パケット転送装置200や専用線を用いて、経路管理サーバ100は、転送情報を各サーバE1〜E4、各転送装置N1〜N7に設定することができる。
ところで、図12に示される方法では、制御パケット転送装置200を必要として、またサーバE1〜E4、転送装置N1〜N7においては、制御パケット転送装置200と接続するための物理ポートを必要とする。
そのため、その構成を簡易にするために、以下の変形例で示される構成が考えられる。図13は、経路管理サーバ100が転送装置N3,N4とのみ接続している通信システム10のシステム構成図を示す。なお、この変形例においては、転送装置N3、N4とのみ経路管理サーバ100が接続している状態を示しているが、これに限るものではなく、他の転送装置と接続してもよい。
この変形例においては、経路管理サーバ100は、上述の通り生成した転送情報を、転送装置N3およびN4に送信する。転送装置N3およびN4は、受け取った転送情報のうち、自装置の転送情報を設定し、他の装置の転送情報については、さらに他の転送装置N2、N5〜N7、サーバE1〜E4に送信する。他の転送装置N2、N5〜N7、サーバE1〜E4は、受け取った転送情報を設定し、またさらに他の転送装置に送信する。
ここで、サーバE1〜E4、転送装置N1〜N7は、どのようにして、転送情報を送信するか、また通常のデータ信号との区別をどのようにして処理しているか、説明する。
図14は、パケットデータのフォーマット例を示す説明図である。図14(a)は、転送情報などの制御パケットを送信するためのパケットデータのフォーマットを示し、図14(b)は、データなどの入力パケットを送信するためのパケットデータのフォーマットを示す。
図14(a)に示される通り、制御パケットのためのパケットデータは、制御信号識別ヘッダと、制御パケットとから構成されている。制御信号識別ヘッダには、制御信号である旨が記述されている。制御パケットは、通信システム10のトポロジ情報または仮想ポート識別符号と物理ポートと物理ノード識別子を対応付けした転送情報を含む。
また、図14(b)に示される通り、入力パケットのためのパケットデータは、制御信号識別ヘッダ、共通ヘッダ、仮想ポート識別符号列、および入力パケットから構成される。制御信号識別ヘッダには、データ信号である旨が記述される。
このようなパケットデータのフォーマットを用いてその処理について説明する。図15は、各転送装置およびサーバにおける処理過程を示す説明図である。図15においては、転送装置N3、N7、およびサーバE3における処理を示す。転送装置N3は、物理ポートP0およびP1、制御信号識別ヘッダ読取部301および302、制御プロセス部303(転送情報記憶手段、トポロジ情報記憶手段、制御手段)、仮想ポート転送処理部304(制御手段)を含んで構成されている。
物理ポートP0、P1は上述した通り、外部と物理的に接続するための入出力ポートである。
制御信号識別ヘッダ読取部301および302は、物理ポートP0およびP1から入力されたパケットデータの制御信号識別ヘッダを読み取る部分である。これら制御信号識別ヘッダ読取部301、302は、物理ポートP0およびP1ごとに備えられている。
制御信号識別ヘッダ読取部301および302は、制御信号識別ヘッダに基づいて、入力されたパケットデータが制御信号か、データ信号かを判断する。そして、制御信号であると判断した場合には、パケットデータを制御プロセス部303に出力する。またデータ信号であると判断した場合には、パケットデータを仮想ポート転送処理部304に出力する。
制御プロセス部303は、受信した制御パケットがトポロジ情報である場合には、そのトポロジ情報を図示しないメモリに記憶するとともに、トポロジ情報を含んだパケットデータを隣接する他の転送装置(ここでは転送装置N7)に出力する。他の転送装置においては、同様の処理を行なうことによりトポロジ情報を記憶する。これによって、通信システムにおける接続関係を各サーバおよび各転送装置が順次転送して、それぞれがその接続関係を把握することができる。
また、制御プロセス部303は、受信した制御パケットが仮想ポート識別子と物理ポート識別子と物理ノード識別子との対応付けをした転送情報である場合には、その転送情報の物理ノード識別子を参照して、自装置に関するものである場合には、図示しないメモリに記憶する。また、他の転送装置を対象とするものである場合には、先に記憶したトポロジ情報に基づいて定められた物理ポートから宛先(転送装置)に向けて転送情報を出力する。
制御プロセス部303においては、物理ポートが備えられ、仮想ポート転送処理部304の導通確認を行なうことにより通信チェックを行なうよう構成されている。
仮想ポート転送処理部304は、仮想ポート識別符号に基づいて転送処理を行なう部分である。すなわち、上述の通り仮想ポート識別符号に対応する物理ポートから転送処理を行なう。
ところで、制御プロセス部303は、一般的には迅速な処理を必要としないために、ソフトウエア処理により実現可能である。一方で、仮想ポート転送処理部304は、パケットデータの転送処理に用いるものであることから即時性が求められる。したがって、専用のハードウェアで構成することにより、その即時性を実現することができる。
つぎに、図15に示される転送装置N3、N7およびサーバE3を用いた信号の流れについて説明する。
まず、経路管理サーバ100において、制御信号識別ヘッダに制御信号である旨が記述され、制御パケットとしてトポロジ情報が記述されたパケットデータが転送装置N3に送信される。
転送装置N3において、制御信号識別ヘッダ読取部301は、パケットデータは制御信号を含んだものであることを判断し、制御プロセス部303に当該パケットデータを出力する。そして、制御プロセス部303は、パケットデータに含まれているものはトポロジ情報であることを判断すると、当該トポロジ情報を記憶して、隣接する転送装置N7に対してトポロジ情報が記述されたパケットデータを送信する。トポロジ情報であるか否かの判断はそのデータ形式を見てもよいし、トポロジ情報であることを示すフラグ情報などに基づいて判断するようにしてもよい。
転送装置N7において、上述と同様に、物理ポートP3からトポロジ情報を含んだパケットデータが受信される。そして、制御信号識別ヘッダ読取部301aは、制御信号識別ヘッダに基づいてパケットデータは制御信号であると判断し、制御プロセス部303aに出力する。制御プロセス部303aは、トポロジ情報を記憶するとともに、隣接するサーバE3にトポロジ情報を含んだパケットデータを送信する。
サーバE3において、上述のように、物理ポートP3からトポロジ情報を含んだパケットデータが受信される。そして、制御信号識別ヘッダ読取部301bは、制御信号識別ヘッダに基づいてパケットデータは制御信号であると判断し、制御プロセス部303bに出力する。制御プロセス部303bは、トポロジ情報を記憶する。サーバE3にはさらに隣接する装置はないため、処理はここで終了となる。なお、転送装置N5、N6に送信するようにしてもよい。
このようにして、各転送装置N1〜N7およびサーバE1〜E4において、ネットワークの接続関係を示したトポロジ情報が記憶される。各転送装置N1〜N7、およびサーバE1〜E4においては、以下説明する通り、このトポロジ情報を用いて転送情報の設定処理を行なうことができる。
経路管理サーバ100において、制御信号識別ヘッダに御信号である旨が記述され、制御パケットとして転送情報が記述されたパケットデータが転送装置N3に送信される。この送信処理は、各転送装置、各サーバを宛先対象として行われる。
転送装置N3において、制御信号識別ヘッダ読取部301は、パケットデータは制御信号を含んだものであることを判断し、制御プロセス部303に当該パケットデータを出力する。そして、制御プロセス部303は、その転送情報であることを判断し、当該転送情報の物理ノード識別子が自装置宛てのものでるかを判断し、自装置宛てのものであれば、当該転送情報を記憶する。他の装置宛てのものであれば、先に記憶したトポロジ情報を用いて隣接する転送装置に送信する。なお、転送情報であるか否かの判断は、そのデータ形式を見てもよいし、転送情報をフラグ情報などで示すことによって行なうようにしてもよい。
ここで、他の装置宛て、例えばサーバE3のための転送情報である場合には、転送装置N3は、トポロジ情報に従って、例えば転送装置N7に送信する。転送装置N7においては、転送装置N3と同様に、制御信号識別ヘッダを参照して、制御信号であることを判断し、その後制御プロセス部303aは、トポロジ情報を参照して、サーバE3に転送情報を含んだパケットデータを出力する。サーバE3においては、自装置宛ての転送情報を受信し、記憶する。
このようにして、各転送装置、各サーバはトポロジ情報に従って、転送情報を順次転送し、設定することができる。その後、サーバE1等から、制御信号識別ヘッダにデータ信号である旨が記述されたパケットデータが送信されると、各転送装置、各サーバに設定されている転送情報に従って、仮想ポートを用いた転送処理を行なうことができる。
なお、上述の方法では、トポロジ情報を経路管理サーバ100が転送装置N3、N4を介して、通信システムを構成する全転送装置、サーバに送信していたが、これに限るものではない。例えば、転送装置を通信ネットワークに新たに追加したい場合がある。追加する場合には、既存の転送装置の空きポートに対して、追加した転送装置を接続することが考えられる。そして、追加した転送装置と既存の転送装置との間で相互に認識することにより、トポロジ情報(物理ポートと接続先装置の識別子との対応付情報)を自動的に生成することができる。ここで生成したトポロジ情報を全転送装置、全サーバに対して送信するようにしてもよい。
つぎに、本実施形態のサーバE1〜E4、転送装置N1〜N7(以下、通信装置とする)の作用効果について説明する。本実施形態の通信装置においては、入出力ポート203から入力された転送対象であるパケットデータのヘッダ部に記述されている仮想ポート識別子を、仮想ポート転送処理部202が、転送情報テーブル201を参照して、一の物理ポート(例えば、物理ポート203a〜203cのいずれか)を決定する。具体的には、仮想ポート転送処理部202は、仮想ポート識別子に割り当てられた一または複数の物理ポート識別子を決定し、さらに、そこから一の物理ポートを決定する。そして、仮想ポート転送処理部202は、決定した物理ポートからパケットデータを出力する。
これにより、仮想ポートを用いた経路設定を行なうことができ、例えば途中でルータやスイッチ等の転送装置が故障したとしても、仮想ポートを使って故障した転送装置を回避した経路を選択することができる。よって、経路設定のための再計算を行うことなく、迅速にデータ送信処理を行なうことができる。
また、ここでは、仮想ポートに対応付けられる物理ポートの出力先は、それぞれ同じ機能を有する装置とする。例えば、図1において、転送装置N1と転送装置N2とは同じ役割を有するものであることから同じ機能を有している。サーバE1に割り当てられている物理ポートP1およびP2は、それぞれ同じ機能を有する装置に接続されるように構成されている。これにより、経路を回避したとしても、全く同じ条件での通信を可能にすることができる。
また、本実施形態の通信装置において、仮想ポート転送処理部202は、仮想ポート識別子に加えて、入力パケットの識別情報に基づいて一の物理ポートを決定し、当該一の物理ポートから出力することで、同じ物理ポートからの出力を可能にすることができる。例えば入力パケットの識別情報としてセッション番号とした場合に、同じセッションについては同じ物理ポートから出力されることになり、パケットデータ到着のずれを防止することができる。
また、本実施形態の通信装置において、仮想ポート転送処理部202は、仮想化ネットワークの識別情報に基づいて出力処理の可否を決定することで、仮想化ネットワーク単位での処理を可能にすることができる。よって、誤って異なった仮想化ネットワークからのパケットデータを受信したとしても、それを処理することを防止することができる。
また、本実施形態の通信装置において、仮想ポート転送処理部202は、出力先となる装置が通信接続不可であると判断されると、他の物理ポート識別子に基づいた一物理ポートからパケットデータを出力することができ、通信経路の再計算を行なうことなく、その通信不可の経路を簡単に回避することができる。
また、本実施形態の通信装置において制御信号識別ヘッダ読取部301、302が、制御信号識別ヘッダに制御信号である旨があること判断すると、パケットデータにおいてトポロジ情報が含まれていると判断する。そして、その場合には、制御プロセス部303にパケットデータを出力する。制御プロセス部303は、パケットデータのトポロジ情報を記憶するとともに、さらに当該パケットデータにおいて、自装置宛ての仮想ポート識別子付与のための転送情報が含まれていると判断する場合には、当該転送情報を記憶する。そして、制御プロセス部303は、トポロジ情報に従って物理ポートを決定し、その物理ポートから転送情報の転送処理を行う。これにより、仮想ポート識別子付与のための転送情報の設定を簡単な構成で行なうことができる。すなわち、経路管理サーバのように一極管理して生成した転送情報を個別に各通信装置に対して設定処理する必要がなく、そのための専用線も必要がない。
また、本実施形態の通信装置において、制御信号識別ヘッダ読取部301が、制御信号識別ヘッダにデータ信号である旨が記述されていると判断すると、パケットデータにおいて転送対象となるデータが含まれていると判断する。そして、その場合には、制御信号識別ヘッダ読取部301は、仮想ポート転送処理部304にパケットデータを出力し、仮想ポート転送処理部304は、転送情報に従ったパケットデータの転送処理を行なう。これにより、転送情報の設定とデータ転送の処理とを切り換えて行うことができる。
また、本実施形態の通信装置において、仮想ノード識別子付与部103は、ネットワークを構成する複数の通信装置(サーバE1〜E4、転送装置N1〜N7)のそれぞれに対して、ノード情報取得部101により取得された役割に基づいて、一または複数の通信装置からなる仮想通信装置を特定する。例えば、図2を例にとると、仮想ノード識別子付与部103は、E1〜E4、転送装置N1〜N7のうち、転送装置N1、N2を仮想転送装置VN1として特定する。
そして、仮想リンク識別子付与部105は、仮想通信装置において、その接続先となる他の仮想通信装置との仮想ポートを示す仮想ポート識別子を付与する。例えば図2を例にとると、仮想転送装置VN1の接続先となる仮想転送装置VN3、仮想サーバVE1に対する仮想ポート識別子としてV3、V5を付与する。
そして、転送情報生成部107は、付与された仮想ポート識別子を、仮想通信装置を構成する通信装置ごとに、他の仮想通信装置を構成する通信装置と接続するための物理ポートの物理ポート識別子と対応付けた転送情報を生成する。図3を例にとると、仮想転送装置VN1の仮想ポートV3は、転送装置N1およびN2の物理ポートP1に対応付けられる。同様に仮想ポートV5は、転送装置N1およびN2の物理ポートP2〜P4に対応付けられる。このように仮想ポートと物理ポートとを対応付けた転送情報を生成する。
設定処理部109は、このようにして生成された転送情報を送信することにより、一または複数の通信装置に対して転送情報を設定する。これにより、仮想化ポートを簡単に設定することができる。