(57)【特許請求の範囲】
【請求項１】
パケット転送ルールに従ってパケットを転送する複数のフォワーディングエレメントと、
各フォワーディングエレメントに対してパケット転送ルールを設定するコントロールエレメントと、
各フォワーディングエレメントとコントロールエレメントとを接続させるスイッチ装置とを備え、
各フォワーディングエレメントは、パケット転送ルールにより転送先が定められていないパケットであるファーストパケットを受信すると、当該ファーストパケットをコントロールエレメントに送信し、
コントロールエレメントは、
ファーストパケットを受信すると、当該ファーストパケットを送信したフォワーディングエレメントにパケット転送ルールを設定するパケット転送ルール設定手段を複数含み、
前記複数のパケット転送ルール設定手段に対してファーストパケットをスイッチングするコントロールエレメント内スイッチと、
前記スイッチ装置と前記コントロールエレメント内スイッチとを一つのスイッチとして動作させるスイッチ管理手段とを含み、
各フォワーディングエレメントは、前記スイッチを介して、ファーストパケットをパケット転送ルール設定手段に送信する
ことを特徴とするパケット転送システム。
【請求項２】
各パケット転送ルール設定手段と、コントロールエレメント内スイッチと、スイッチ管理手段は、コントロールエレメントのＣＰＵによって実現されるバーチャルマシンである
請求項１に記載のパケット転送システム。
【請求項３】
コントロールエレメントは、複数のＣＰＵを備えるコンピュータであり、
各パケット転送ルール設定手段は、コントロールエレメントが備える個々のＣＰＵによって実現され、
コントロールエレメント内スイッチは、スイッチファブリックである
請求項１に記載のパケット転送システム。
【請求項４】
スイッチ装置は、破棄しないパケットの条件のリストまたは破棄するパケットの条件のリストを保持し、
パケット転送ルール設定手段は、ファーストパケットが不正パケットであるか否かを判定し、ファーストパケットが不正パケットであると判定した場合に、当該ファーストパケットが破棄されるように、スイッチ装置が保持するリストを更新する
請求項１から請求項３のうちのいずれか１項に記載のパケット転送システム。
【請求項５】
パケット転送ルールに従ってパケットを転送する各フォワーディングエレメントが、パケット転送ルールにより転送先が定められていないパケットであるファーストパケットを受信すると、当該ファーストパケットをコントロールエレメントに送信し、
コントロールエレメントが備える複数のパケット転送ルール設定手段が、ファーストパケットを受信すると、当該ファーストパケットを送信したフォワーディングエレメントにパケット転送ルールを設定し、
コントロールエレメントが備えるスイッチ管理手段が、
コントロールエレメント内に設けられ、前記複数のパケット転送ルール設定手段に対してファーストパケットをスイッチングするコントロールエレメント内スイッチと、コントロールエレメントの外部に設けられ、各フォワーディングエレメントおよび当該コントロールエレメントを接続させるスイッチ装置とを一つのスイッチとして動作させ、
各フォワーディングエレメントは、
ファーストパケットをコントロールエレメントに送信するときに、前記スイッチを介してファーストパケットを送信する
ことを特徴とするパケット転送システム内におけるパケット集中回避方法。
【請求項６】
パケット転送ルールに従ってパケットを転送する複数のフォワーディングエレメントに対してパケット転送ルールを設定するコントロールエレメントとなるコンピュータに搭載されるコントロールエレメント用プログラムであって、
前記コンピュータを、
パケット転送ルールにより転送先が定められていないパケットであるファーストパケットをフォワーディングエレメントから受信すると、当該フォワーディングエレメントに対してパケット転送ルールを設定する複数のパケット転送ルール設定手段、
前記複数のパケット転送ルール設定手段に対してファーストパケットをスイッチングするコントロールエレメント内スイッチ、および、
前記コンピュータの外部に設けられ、各フォワーディングエレメントおよび前記コンピュータを接続させるスイッチ装置と、前記コントロールエレメント内スイッチとを一つのスイッチとして動作させるスイッチ管理手段
として機能させるためのコントロールエレメント用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントロールエレメントとフォワーディングエレメントとを含むパケット転送システムと、そのパケット転送システム内におけるパケット集中回避方法、およびそのパケット転送システムに適用されるコントロールエレメント用プログラムに関する。
【背景技術】
【０００２】
通信ネットワークにおいてパケット転送を行うパケット転送装置として、ルータやスイッチがある。また、このようなパケット転送装置として、パケットをフロー毎に識別して処理するフローベースのパケット転送装置がある。
【０００３】
図４は、一般的なフローベースのパケット転送装置の構成の一例を示すブロック図である。一般的なフローベースのパケット転送装置は、コントロールモジュール（Control Module）１１と、インタフェースモジュール（Interface Module）１２と、スイッチファブリックモジュール（Switch Fabric Module）１３とを備える。
【０００４】
コントロールモジュール１１は、各種ルーティングプロトコルに従って、各インタフェースモジュール１２に対してパケット転送ルールを指示する。コントロールモジュール１１は、例えば、ＣＰＵ１４と、メモリ１５とを備える。メモリ１５は、パケット転送ルールの指示を行わせるためのプログラムや、そのプログラムの実行に用いる各テーブルを保持し、ＣＰＵ１４は、そのプログラムに従って、各インタフェースモジュール１２に対してパケット転送ルールを指示する。
【０００５】
各インタフェースモジュール１２は、回線からのパケットの受信、回線へのパケットの送信、および、コントロールモジュール１１から指示されたパケット転送ルールに従うパケット転送処理を行う。各インタフェースモジュール１２は、例えば、フォワーディングエンジン１６と、メモリ１７とを備える。メモリ１７は、コントロールモジュール１１によって指示されたパケット転送ルールを記憶し、フォワーディングエンジン１６は、回線から受信したパケットを、そのパケット転送ルールに従って、他のインタフェースモジュール１２に転送する。また、フォワーディングエンジン１６は、他のインタフェースモジュール１２から転送されたパケットを回線に送信する。
【０００６】
スイッチファブリックモジュール１３は、例えば、クロスバースイッチ（Crossbar Switch ）を備え、各インタフェースモジュール１２間のパケット転送を行う。
【０００７】
コントロールモジュール１１がインタフェースモジュール１２に指示するパケット転送ルールは、受信したパケットのフローに応じて、パケットの転送先を規定するルールである。インタフェースモジュール１２は、コントロールモジュール１１によって設定されたパケット転送ルールをメモリ１７に記憶させる。個々のインタフェースモジュールにおけるパケット転送ルールの集合をフォワーディングテーブルと称する。
【０００８】
また、フォワーディングテーブルに規定されていないパケットをファーストパケット（１ｓｔパケット）と呼ぶ。インタフェースモジュール１２は、ファーストパケットを受信した場合、そのファーストパケットをコントロールモジュール１１に転送する。そして、コントロールモジュール１１は、ファーストパケットの転送先を規定するパケット転送ルールを、そのインタフェースモジュール１２に設定し、インタフェースモジュール１２は、そのパケット転送ルールに従って、ファーストパケットを転送する。
【０００９】
このようなフローベースのパケット転送装置（例えば、ルータやスイッチ）の機能を、コントロールプレーン上のコントロールエレメント（Control Element：以下、ＣＥと記す。）と、ユーザデータプレーン上のフォワーディングエレメント（Forwarding Element：以下、ＦＥと記す。）とに分離することができる。図５は、ＣＥとＦＥとを備えるパケット転送システムの例を示す説明図である。図５に示すように、ＣＥ２１とＦＥ２２とに機能分離することで、非常に自由度の高い仮想パケット転送装置を構成することが可能となる。
【００１０】
ＣＥとＦＥとに機能分離したパケット転送装置は、例えば、特許文献１に記載されている。
【００１１】
また、特許文献２には、複数のバーチャルマシンと仮想スイッチとを含む装置が記載されている。特許文献２に記載された仮想スイッチは、ルータの集合と、データ構造とを有する。そして、その各ルータは、各バーチャルマシンにおけるＶＮＩＣ（Virtual Network Interface Card：仮想ネットワークインタフェースカード）間における接続を組織して種々の仮想ネットワークを形成することを目的として、データ構造を使用する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−７４２８２号公報（段落００１１）
【特許文献２】特表２００７−５２２５８３号公報（段落００２７、図１）
【発明の概要】
【発明が解決しようとする課題】
【００１３】
図５に例示するように、パケット転送装置の機能をＣＥ２１とＦＥ２２とに分離して、ＣＥ２１を集約した場合（例えば、ＣＥ２１を一つの装置で実現した場合）、そのＣＥ２１には、例えば、各ＦＥ２２から送られるファーストパケット等が集中し、ＣＥ２１に対するトラフィックの圧迫や、ＣＥ２１におけるＣＰＵ処理の圧迫が生じる。
【００１４】
また、ＣＥ２１を集約する際に、コントロールプレーンにおいて、多数のＦＥ２２を外部スイッチ（図５において図示せず。）で収容してから各ＦＥ２２をＣＥ２１に接続することになる。このとき、外部スイッチがＣＥ２１とは個別に動作を行うため、ＦＥ２２とＣＥ２１とによる仮想的なパケット転送装置としての連携が損なわれてしまう。
【００１５】
そこで、本発明は、ＣＥにおける処理の圧迫やトラフィック圧迫を効率的に低減することができるパケット転送システム、パケット転送システム内におけるパケット集中回避方法、および、そのパケット転送システムに適用されるコントロールエレメント用プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明によるパケット転送システムは、パケット転送ルールに従ってパケットを転送する複数のフォワーディングエレメントと、各フォワーディングエレメントに対してパケット転送ルールを設定するコントロールエレメントと、各フォワーディングエレメントとコントロールエレメントとを接続させるスイッチ装置とを備え、各フォワーディングエレメントが、パケット転送ルールにより転送先が定められていないパケットであるファーストパケットを受信すると、当該ファーストパケットをコントロールエレメントに送信し、コントロールエレメントが、ファーストパケットを受信すると、当該ファーストパケットを送信したフォワーディングエレメントにパケット転送ルールを設定するパケット転送ルール設定手段を複数含み、複数のパケット転送ルール設定手段に対してファーストパケットをスイッチングするコントロールエレメント内スイッチと、そのスイッチ装置とそのコントロールエレメント内スイッチとを一つのスイッチとして動作させるスイッチ管理手段とを含み、各フォワーディングエレメントが、そのスイッチを介して、ファーストパケットをパケット転送ルール設定手段に送信することを特徴とする。
【００１７】
また、本発明によるパケット転送システム内におけるパケット集中回避方法は、パケット転送ルールに従ってパケットを転送する各フォワーディングエレメントが、パケット転送ルールにより転送先が定められていないパケットであるファーストパケットを受信すると、当該ファーストパケットをコントロールエレメントに送信し、コントロールエレメントが備える複数のパケット転送ルール設定手段が、ファーストパケットを受信すると、当該ファーストパケットを送信したフォワーディングエレメントにパケット転送ルールを設定し、コントロールエレメントが備えるスイッチ管理手段が、コントロールエレメント内に設けられ、複数のパケット転送ルール設定手段に対してファーストパケットをスイッチングするコントロールエレメント内スイッチと、コントロールエレメントの外部に設けられ、各フォワーディングエレメントおよび当該コントロールエレメントを接続させるスイッチ装置とを一つのスイッチとして動作させ、各フォワーディングエレメントが、ファーストパケットをコントロールエレメントに送信するときに、そのスイッチを介してファーストパケットを送信することを特徴とする。
【００１８】
また、本発明によるコントロールエレメント用プログラムは、パケット転送ルールに従ってパケットを転送する複数のフォワーディングエレメントに対してパケット転送ルールを設定するコントロールエレメントとなるコンピュータに搭載されるコントロールエレメント用プログラムであって、コンピュータを、パケット転送ルールにより転送先が定められていないパケットであるファーストパケットをフォワーディングエレメントから受信すると、当該フォワーディングエレメントに対してパケット転送ルールを設定する複数のパケット転送ルール設定手段、その複数のパケット転送ルール設定手段に対してファーストパケットをスイッチングするコントロールエレメント内スイッチ、および、コンピュータの外部に設けられ、各フォワーディングエレメントおよびコンピュータを接続させるスイッチ装置と、コントロールエレメント内スイッチとを一つのスイッチとして動作させるスイッチ管理手段として機能させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ＣＥにおける処理の圧迫やトラフィック圧迫を効率的に低減することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施形態のパケット転送システムの構成例を示すブロック図である。
【図２】本発明の第２の実施形態のパケット転送システムの構成例を示すブロック図である。
【図３】本発明のパケット転送システムの最小構成の例を示す説明図である。
【図４】一般的なフローベースのパケット転送装置の構成の一例を示すブロック図である。
【図５】ＣＥとＦＥとを備えるパケット転送システムの例を示す説明図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面を参照して説明する。
【００２２】
実施形態１．
図１は、本発明の第１の実施形態のパケット転送システムの構成例を示すブロック図である。第１の実施形態のパケット転送システムは、回線からのパケットの受信、回線へのパケットの送信、およびパケット転送を行うＦＥ（フォワーディングエレメント）３１０，３１１と、各ＦＥ３１０，３１１を収容するスイッチ装置３０９と、レイヤ２パケット転送におけるファーストパケットに対する処理や、レイヤ３パケット転送におけるファーストパケットに対する処理を行うＣＥ（コントロールエレメント）３０１とを備える。ファーストパケットに対する処理とは、ＦＥからファーストパケットが送られたときに、そのファーストパケットのフローに応じた転送先を規定するパケット転送ルールをそのＦＥに設定する処理である。なお、図１に示す例では、２つのＦＥ３１０，３１１を図示しているが、ＦＥの数は限定されず、３つ以上のＦＥが設けられていてもよい。
【００２３】
ＣＥ３０１は、ＣＰＵ３０２を備え、そのＣＰＵ３０２によって、複数のバーチャルマシン（Virtual Machine ：以下、ＶＭと記す。）３０３〜３０７と、バーチャルスイッチ（Virtual Switch：以下、ＶＳと記す。）３０８とが実現される。また、ＶＳ３０８は、ＶＳ３０８およびスイッチ装置３０９を一つのバーチャルスイッチ３１２として動作させるＶＳ管理モジュール３１３を含むように実現される。
【００２４】
ＣＥ３０１は、例えば、サーバ装置により実現され、サーバ装置のＣＰＵを、ＣＥ３０１のＣＰＵ３０２として用いてもよい。
【００２５】
ＣＰＵ３０２によって実現される各ＶＭ３０３〜３０７は、個々に機能を分担する。図１に示す例では、ＶＭ３０３は、装置管理機能を分担する。
【００２６】
また、ＶＭ３０４，３０５は、それぞれ、Ｌ２処理（レイヤ２パケット転送）におけるファーストパケットに対する処理を分担する。すなわち、ＶＭ３０４，３０５は、レイヤ２パケット転送において、転送先がＦＥ内のフォワーディングテーブル（パケット転送ルールの集合）に規定されていないファーストパケットをＦＥから送られると、そのファーストパケットのフローに応じた転送先を規定するパケット転送ルールをそのＦＥに設定する。
【００２７】
また、ＶＭ３０６，３０７は、それぞれ、Ｌ３処理（レイヤ３パケット転送）におけるファーストパケットに対する処理を分担する。すなわち、ＶＭ３０６，３０７は、レイヤ３パケット転送において、転送先がＦＥ内のフォワーディングテーブル（パケット転送ルールの集合）に規定されていないファーストパケットをＦＥから送られると、そのファーストパケットのフローに応じた転送先を規定するパケット転送ルールをそのＦＥに設定する。
【００２８】
図１では、ＣＰＵ３０２によりＶＭ３０３〜ＶＭ３０７が実現される場合を例示しているが、ＣＰＵ３０２により実現されるＶＭの数は限定されない。また、各ＶＭが分担する機能は、装置管理機能、レイヤ２やレイヤ３におけるファーストパケットに対する処理機能に限定されない。例えば、新たな機能を分担するＶＭが追加されてもよい。
【００２９】
ＣＰＵ３０２によって、同一の機能を有する複数のＶＭが実現されることで、ＣＥ３０１におけるＣＰＵ処理の圧迫やトラフィックの圧迫を低減することができる。例えば、レイヤ２パケット転送におけるファーストパケットに対する処理を行うＶＭとして複数のＶＭ３０４，３０５が設けられることにより、各ＦＥ３１０，３１１からそのようなファーストパケットを多数受信したとしても、ＶＭ３０４，３０５がそれぞれファーストパケットに対する処理を行うので、負荷が分散される。同様に、レイヤ３パケット転送におけるファーストパケットに対する処理を行うＶＭとしてＶＭ３０６，３０７が設けられることにより、各ＦＥ３１０，３１１からそのようなファーストパケットを多数受信したとしても、ＶＭ３０６，３０７がそれぞれファーストパケットに対する処理を行うので、負荷が分散される。
【００３０】
また、ＣＰＵ３０２によって実現されるＶＳ３０８は、各ＦＥ３１０，３１１から、コントロールプレーン経由でＣＥ３０１に到達するファーストパケットを、各ＶＭへスイッチングする。また、ＶＳ３０８は、ＶＳ３０８自身と、各ＦＥ３１０，３１１を収容するスイッチ装置３０９とを一つのバーチャルスイッチ３１２として動作させるＶＳ管理モジュール３１３としての機能も含む。
【００３１】
各ＦＥ３１０，３１１は、回線から受信したパケットを、フォワーディングテーブルに従って他のＦＥに転送する。フォワーディングテーブルは、ＣＥ３０１によって設定されたパケット転送ルールの集合である。各ＦＥ３１０，３１１は、回線から受信したパケットの転送先がフォワーディングテーブルに規定されていない場合、そのパケットをファーストパケットとして、ＣＥ３０１に送信し、その結果、新たにパケット転送ルールを設定される。換言すれば、フォワーディングテーブルに新たなパケット転送ルールが追加される。この結果、各ＦＥ３１０，３１１は、パケットの転送先を定めることができる。
【００３２】
また、各ＦＥ３１０，３１１は、他のＦＥから転送されたパケットを回線に送信する。
【００３３】
スイッチ装置３０９は、ＣＥ３０２の外部に設けられるスイッチ装置である。具体的には、スイッチ装置３０９は、各ＦＥ３１０，３１１とＣＥ３０１との間に設けられ、各ＦＥ３１０，３１１とＣＥ３０１とを接続させる。
【００３４】
ＶＳ管理モジュール３１３は、ＶＳ３０８とスイッチ装置３０９とを一つのバーチャルスイッチ３１２として動作させる。換言すれば、ＶＳ管理モジュール３１３は、スイッチ装置３０９をＶＳ３０８に組み込ませているということができる。
【００３５】
ＶＳ管理モジュール３０３を含むＶＳ３０８、およびＶＭ３０３〜３０７は、コントロールエレメント用プログラムに従って動作するＣＰＵ３０２によって実現される。この場合、ＣＥ３０２のプログラム記憶装置（図示せず。）に記憶されたコントロールエレメント用プログラムをＣＰＵ３０２が読み込み、ＣＰＵ３０２がそのプログラムに従って、ＶＳ管理モジュール３０３を含むＶＳ３０８、およびＶＭ３０３〜３０７として動作する。ＶＳ３０８およびＶＳ管理モジュール３１３も、ＣＰＵ３０２によって実現されるバーチャルマシンである。
【００３６】
次に、動作について説明する。
まず、ＶＳ管理モジュール３１３が、ＶＳ３０８とスイッチ装置３０９とを一つのバーチャルスイッチ３１２として動作させる処理について説明する。ＶＳ管理モジュール３１３は、ＶＳ３０８の入出力テーブルと、スイッチ装置３０９の入出力テーブルを共通に管理することで、ＶＳ３０８とスイッチ装置３０９とを一つのバーチャルスイッチ３１２として動作させる。すなわち、ＶＳ管理モジュール３１３は、ＶＳ３０８の入出力テーブルと、スイッチ装置３０９の入出力テーブルを共通に管理することにより、スイッチ装置３０９におけるＦＥ３１０，３１１側の入力から、ＶＳ３０８におけるＶＭ３０３〜３０７側の出力までを管理し、ＶＳ３０８とスイッチ装置３０９とを一つのバーチャルスイッチ３１２として動作させる。
【００３７】
各ＦＥ３１０，３１１は、回線から受信したパケットを、ＦＥ自身が保持しているフォワーディングテーブルに従って、他のＦＥに転送し、そのパケットを受信したＦＥは、回線からそのパケットを送信する。
【００３８】
ＶＳ管理モジュール３１３によって、ＶＳ３０８とスイッチ装置３０９とが一つのバーチャルスイッチ３１２として動作する状態において、各ＦＥ３１０，３１１は、回線から受信したパケットがファーストパケットである場合、そのファーストパケットを、バーチャルスイッチ３１２を介して、ＶＭに送る。このとき、バーチャルスイッチ３１２は、ＦＥ３１０，３１１から送られたファーストパケットを、転送態様（レイヤ）に応じてＶＭ３０４，３０５、あるいは、ＶＭ３０６，３０７に分散させて送る。ＶＭは、ファーストパケットを受信すると、そのファーストパケットのフローに応じた転送先を規定するパケット転送ルールを決定し、ファーストパケットを送信したＦＥに対してそのパケット転送ルールを返す。
【００３９】
ＦＥ３１０，３１１が、Ｌ３処理が必要なパケットを大量に受信した場合を例にして説明する。この場合、ＦＥ３１０，３１１は、それぞれ、受信したパケットを、フォワーディングテーブルに従って他のＦＥに転送する。転送先が規定されていないファーストパケットを受信した場合、ＦＥ３１０，３１１は、そのファーストパケットを、バーチャルスイッチ３１２を介して、ＶＭに送る。本例では、バーチャルスイッチ３１２は、レイヤ３パケット転送におけるファーストパケットに対する処理を行うＶＭ３０６，３０７に分散して、各ＦＥからのファーストパケットを送る。ＶＭ３０６，３０７は、それぞれ、ファーストパケットに応じてパケット転送ルールを決定し、ファーストパケットを送信したＦＥに対してそのパケット転送ルールを送信する。
【００４０】
各ＦＥから送信されるファーストパケットは、一つのＶＭに集中せずに、上記のように複数のＶＭ３０６，３０７によって処理される。従って、各ＦＥ３１０，３１１とＣＥ３０１との間における通信経路での通信帯域の圧迫を防止して、各ＦＥ３１０，３１１とＣＥ３０１との間における通信経路での通信帯域を確保できる。また、一つのＶＭにパケットが集中してそのＶＭの処理が圧迫されてしまうことを防止して、複数のＶＭ３０６，３０７で処理負荷を分散することができる。
【００４１】
上記の例では、ＦＥ３１０，３１１が、Ｌ３処理が必要なパケットを受信した場合を例にして説明した。レイヤ２転送が必要なパケットをＦＥ３１０，３１１が受信する場合において、ＦＥ３１０，３１１がファーストパケットをＣＥ３０１に送信するときには、バーチャルスイッチ３１２が、そのファーストパケットをＶＭ３０４，３０５に分散して送ればよい。
【００４２】
また、各ＶＭは、バーチャルスイッチ３１２から送られたファーストパケットに対する処理を行う際に、そのパケットが不正なパケットであると判断した場合、スイッチ装置３０９に廃棄しないパケットの条件のリスト（アクセスリストと呼ぶ。）を設定して、バーチャルスイッチ３１２として動作するスイッチ装置３０９に、不正なパケットを廃棄してＣＥ３０１に送信させないようにしてもよい。
【００４３】
この場合、本発明のコントロールエレメント用プログラムにセキュリティソフトウェアを含め、ＣＰＵ３０２からそのプログラムを読み込み、各ＶＭが、不正なパケットを検知すればよい。セキュリティソフトウェアの例として、例えば、ＩＤＳ（Intrusion Detection System）やＩＰＳ（Intrusion Prevention System ）が挙げられる。各ＶＭは、具体的には、予め用意したシグネチャと、ＦＥから送られたファーストパケットとを比較して、そのファーストパケットが不正パケットであるか否かを判定すればよい。各ＶＭは、不正パケットを検出したならば、そのような不正パケットが廃棄されるように、スイッチ装置３０９に設定されているアクセスリストを更新する。スイッチ装置３０９は、アクセスリストに含まれる条件に合致するパケットを通過させ、クセスリストに含まれる条件に合致しないパケットを廃棄する。従って、各ＶＭが不正パケットに基づいて、アクセスリストを更新することで、同様の不正パケットが各ＶＭに再度送られてくることを防止できる。
【００４４】
また、各ＶＭは、アクセスリストの代わりに、廃棄すべきパケットの条件のリストをスイッチ装置３０９に設定してもよい。
【００４５】
第１の実施形態によれば、ＣＰＵ３０２によって同一機能を有する複数のＶＭが実現され、バーチャルスイッチ３１２が、各ＦＥ３１０，３１１から受信したパケットを、その複数のＶＭに分散して送る。従って、ＣＥ３０１におけるＣＰＵ処理の圧迫を防止し、複数のＶＭでパケットに対する処理を分散して行うことができる。また、各ＦＥ３１０，３１１とＣＥ３０１との間の通信経路における通信帯域を確保することができる。
【００４６】
また、ＶＳ管理モジュール３１３が、ＣＰＵ３０２によって実現されるＶＳ３０８と、スイッチ装置３０９とを一つのバーチャルスイッチ３１２として動作させるので、効率的にＶＭにおける負荷分散が可能となる。
【００４７】
また、ルータ機能をレイヤ２パケット転送における処理やレイヤ３パケット転送における処理に分割し、分割した各機能をＣＥ３０１内の各ＶＭに分担させることにより、何らかの障害が発生したときに、その障害の影響を、各機能間で低減させることができる。また、機能毎のプログラム更新を、他の機能に影響を与えることなく行うことができる。
【００４８】
実施形態２．
図２は、本発明の第２の実施形態のパケット転送システムの構成例を示すブロック図である。第２の実施形態のパケット転送システムは、回線からのパケットの受信、回線へのパケットの送信、およびパケット転送を行うＦＥ（フォワーディングエレメント）４１０，４１１と、各ＦＥ４１０，４１１を収容するスイッチ装置４０９と、レイヤ２パケット転送におけるファーストパケットに対する処理や、レイヤ３パケット転送におけるファーストパケットに対する処理を行うＣＥ（コントロールエレメント）４０１とを備える。第１の実施形態と同様にＦＥの数は限定されず、３つ以上のＦＥが設けられていてもよい。ＦＥ４１０，４１１、スイッチ装置４０９は、それぞれ、第１の実施形態におけるＦＥ３１０，３１１、スイッチ装置３０９と同様であり、説明を省略する。
【００４９】
ＣＥ４０１は、マルチプロセッサ構成のコンピュータ（例えば、サーバ装置）によって実現され、複数のＣＰＵ４０３〜４０７と、スイッチファブリック（Switch Fabric ）４０８とを備える。また、ＣＥ４０１は、スイッチファブリック４０８およびスイッチ装置４０９を一つのバーチャルスイッチ４１２として動作させるＶＳ管理モジュール４１３を備える。
【００５０】
ＣＥ４０１が備える複数のＣＰＵ４０３〜４０７は、個々に機能を分担する。図２に示す例では、各ＣＰＵ４０３〜４０７は、それぞれ、第１の実施形態におけるＶＭ３０３〜３０７と同様の機能を分担する。例えば、ＣＰＵ４０３は、装置管理機能を分担する。
【００５１】
また、ＣＰＵ４０４，４０５は、それぞれ、Ｌ２処理におけるファーストパケットに対する処理を分担する。すなわち、ＣＰＵ４０４，４０５は、レイヤ２パケット転送において、転送先がＦＥ内のフォワーディングテーブルに規定されていないファーストパケットをＦＥから送られると、そのファーストパケットのフローに応じた転送先を規定するパケット転送ルールをそのＦＥに設定する。
【００５２】
また、ＣＰＵ４０６，４０７は、それぞれ、Ｌ３処理におけるファーストパケットに対する処理を分担する。すなわち、ＣＰＵ４０６，４０７は、レイヤ３パケット転送において、転送先がＦＥ内のフォワーディングテーブルに規定されていないファーストパケットをＦＥから送られると、そのファーストパケットのフローに応じた転送先を規定するパケット転送ルールをそのＦＥに設定する。
【００５３】
各ＣＰＵ４０３〜４０７は、それぞれ、ＣＥ４０１のプログラム記憶装置（図示略）に記憶されたプログラムを読み込んで、そのプログラムに従って動作すればよい。
【００５４】
図２では、ＣＥ４０１がＣＰＵ４０３〜４０７を備える場合を例示しているが、ＣＥ４０１が備えるＣＰＵの数は限定されない。また、各ＣＰＵが分担する機能は、装置管理機能、レイヤ２やレイヤ３におけるファーストパケットに対する処理機能に限定されない。例えば、新たな機能を分担するＣＰＵが追加されてもよい。
【００５５】
ＣＥ４０１が、同一の機能を有する複数のＣＰＵを備えることで、ＣＥ４０１におけるＣＰＵ処理の圧迫やトラフィックの圧迫を低減することができる。例えば、レイヤ２パケット転送におけるファーストパケットに対する処理を行うＣＰＵとして複数のＣＰＵ４０４，４０５を備えていることにより、各ＦＥ４１０，４１１からそのようなファーストパケットを多数受信したとしても、ＣＰＵ４０４，４０５がそれぞれファーストパケットに対する処理を行うので、負荷が分散される。同様に、レイヤ３パケット転送におけるファーストパケットに対する処理を行うＣＰＵとして複数のＣＰＵ４０６，４０７を備えていることにより、各ＦＥ４１０，４１１からそのようなファーストパケットを多数受信したとしても、ＣＰＵ４０６，４０７がそれぞれファーストパケットに対する処理を行うので、負荷が分散される。
【００５６】
スイッチファブリック４０８は、各ＦＥ４１０，４１１から、コントロールプレーン経由でＣＥ４０１に到達するファーストパケットを、各ＣＰＵにスイッチングするクロスバースイッチである。
【００５７】
ＶＳ管理モジュール４１３は、スイッチファブリック４０８とスイッチ装置４０９とを一つのバーチャルスイッチ４１２として動作させる。
【００５８】
次に、動作について説明する。
ＶＳ管理モジュール４１３が、スイッチファブリック４０８とスイッチ装置４０９とを一つのバーチャルスイッチとして動作させる処理は、第１の実施形態におけるＶＳ管理モジュール３１３の処理と同様である。すなわち、ＶＳ管理モジュール４１３は、スイッチファブリック４０８の入出力テーブルと、スイッチ装置４０９の入出力テーブルを共通に管理することにより、スイッチ装置４０９におけるＦＥ４１０，４１１側の入力から、スイッチファブリック４０８におけるＣＰＵ４０３〜４０７側の出力までを管理し、スイッチファブリック４０８とスイッチ装置４０９とを一つのバーチャルスイッチ４１２として動作させる。
【００５９】
各ＦＥ４１０，４１１が回線から受信したパケットを他のＦＥに転送する動作は、第１の実施形態と同様である。
【００６０】
ＶＳ管理モジュール４１３によって、スイッチファブリック４０８とスイッチ装置４０９とが一つのバーチャルスイッチ４１２として動作する状態において、各ＦＥ４１０，４１１は、回線から受信したパケットがファーストパケットである場合、そのファーストパケットを、バーチャルスイッチ４１２を介してＣＰＵに送る。このとき、バーチャルスイッチ４１２は、ＦＥ４１０，４１１から送られたファーストパケットを、転送態様（レイヤ）に応じてＣＰＵ４０４，４０５、あるいは、ＣＰＵ４０６，４０７に分散させて送る。ＣＰＵは、ファーストパケットを受信すると、そのファーストパケットのフローに応じた転送先を規定するパケット転送ルールを決定し、ファーストパケットを送信したＦＥに対してそのパケット転送ルールを返す。このＣＰＵの動作は、第１の実施形態におけるＶＭの動作と同様である。
【００６１】
また、ＦＥ４１０，４１１からＣＥ４１０にファーストパケットを送信する際のバーチャルスイッチ４１２の動作は、第１の実施形態におけるバーチャルスイッチ３１２の動作と同様である。
【００６２】
また、各ＣＰＵは、バーチャルスイッチ４１２から送られたファーストパケットに対する処理を行う際に、そのパケットが不正なパケットであると判断した場合、スイッチ装置４０９にアクセスリストを設定して、バーチャルスイッチ４１２として動作するスイッチ装置４０９に、不正なパケットを廃棄してＣＥ４０１に送信させないようにしてもよい。このときのＣＰＵの動作も、第１の実施形態におけるＶＭの動作と同様である。例えば、各ＣＰＵは、予め用意したシグネチャと、ＦＥから送られたファーストパケットとを比較して、そのファーストパケットが不正パケットであるか否かを判定すればよい。また、各ＣＰＵは、不正パケットを検出したならば、そのような不正パケットが廃棄されるように、スイッチ装置４０９に設定されているアクセスリストを更新すればよい。また、アクセスリストの代わりに、廃棄すべきパケットの条件のリストをスイッチ装置４０９に設定してもよい。
【００６３】
第２の実施形態においても、第１の実施形態と同様の効果が得られる。
【００６４】
次に、本発明の最小構成の例を説明する。図３は、本発明のパケット転送システムの最小構成の例を示す説明図である。本発明のパケット転送システムは、パケット転送ルールに従ってパケットを転送する複数のフォワーディングエレメント６１と、各フォワーディングエレメント６１に対してパケット転送ルールを設定するコントロールエレメント５１と、各フォワーディングエレメント６１とコントロールエレメント５１とを接続させるスイッチ装置６５とを備える。
【００６５】
各フォワーディングエレメント６１は、パケット転送ルールにより転送先が定められていないパケットであるファーストパケットを受信すると、そのファーストパケットをコントロールエレメント５１に送信する。
【００６６】
コントロールエレメント５１は、パケット転送ルール設定手段５２を複数含み、また、コントロールエレメント内スイッチ５３と、スイッチ管理手段５４とを含む。
【００６７】
各パケット転送ルール設定手段５２は、ファーストパケットを受信すると、そのファーストパケットを送信したフォワーディングエレメント６１にパケット転送ルールを設定する。
【００６８】
コントロールエレメント内スイッチ５３は、複数のパケット転送ルール設定手段５２に対してファーストパケットをスイッチングする。
【００６９】
スイッチ管理手段５４は、スイッチ装置６５と、コントロールエレメント内スイッチ５３とを一つのスイッチとして動作させる。
【００７０】
各フォワーディングエレメント６１は、そのスイッチを介して、ファーストパケットをパケット転送ルール設定手段に送信する。
【００７１】
以上のような構成により、コントロールエレメント５１における処理の圧迫やトラフィック圧迫を効率的に低減することができる。
【００７２】
また、上記の各実施形態には、以下の（１）〜（４）に示すようなパケット転送システムの特徴的構成が示されている。
【００７３】
（１）本発明のパケット転送システムは、パケット転送ルールに従ってパケットを転送する複数のフォワーディングエレメントと、各フォワーディングエレメントに対してパケット転送ルールを設定するコントロールエレメントと、各フォワーディングエレメントとコントロールエレメントとを接続させるスイッチ装置（例えば、スイッチ装置３０９，４０９）とを備え、各フォワーディングエレメントは、パケット転送ルールにより転送先が定められていないパケットであるファーストパケットを受信すると、当該ファーストパケットをコントロールエレメントに送信し、コントロールエレメントは、ファーストパケットを受信すると、当該ファーストパケットを送信したフォワーディングエレメントにパケット転送ルールを設定するパケット転送ルール設定手段を複数含み（例えば、ＶＭ３０４〜３０７、または、ＣＰＵ４０４〜４０７を含み）、複数のパケット転送ルール設定手段に対してファーストパケットをスイッチングするコントロールエレメント内スイッチ（例えば、ＶＳ３０８、または、スイッチファブリック４０８）と、そのスイッチ装置とそのコントロールエレメント内スイッチとを一つのスイッチとして動作させるスイッチ管理手段（例えば、ＶＳ管理モジュール３１３，４１３）とを含み、各フォワーディングエレメントが、そのスイッチを介して、ファーストパケットをパケット転送ルール設定手段に送信することを特徴とする。
【００７４】
（２）各パケット転送ルール設定手段と、コントロールエレメント内スイッチと、スイッチ管理手段が、コントロールエレメントのＣＰＵによって実現されるバーチャルマシンであってもよい。
【００７５】
（３）コントロールエレメントが、複数のＣＰＵを備えるコンピュータであり、各パケット転送ルール設定手段が、コントロールエレメントが備える個々のＣＰＵによって実現され、コントロールエレメント内スイッチは、スイッチファブリックである構成であってもよい。
【００７６】
（４）スイッチ装置が、破棄しないパケットの条件のリストまたは破棄するパケットの条件のリストを保持し、パケット転送ルール設定手段が、ファーストパケットが不正パケットであるか否かを判定し、ファーストパケットが不正パケットであると判定した場合に、当該ファーストパケットが破棄されるように、スイッチ装置が保持するリストを更新する構成であってもよい。
【産業上の利用可能性】
【００７７】
本発明は、コントロールエレメントとフォワーディングエレメントとを含むパケット転送システムに好適に適用される。
【符号の説明】
【００７８】
３０１  ＣＥ（コントロールエレメント）
３０２  ＣＰＵ
３０３〜３０７  ＶＭ（バーチャルマシン）
３０８  バーチャルスイッチ
３０９  スイッチ装置
３１０，３１１  ＦＥ（フォワーディングエレメント）
３１２  バーチャルスイッチ
３１３  ＶＳ管理モジュール
【図１】
0005402688.tif 000002
【図２】
0005402688.tif 000003
【図３】
0005402688.tif 000004
【図４】
0005402688.tif 000005
【図５】
0005402688.tif 000006