(57)【特許請求の範囲】
【請求項１】
受信パケットと照合する照合規則と、前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードと、
前記ノードからの要求に応じて前記ノードに前記処理規則を設定する制御装置と、を含み、
前記制御装置は、
前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理規則作成部を備える通信システム。
【請求項２】
前記制御装置は、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する第１の記憶部を備える請求項１の通信システム。
【請求項３】
前記パケット処理部は、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行う請求項１または２の通信システム。
【請求項４】
さらに、所定の間隔で、前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部と、
前記ノードに設定した処理規則を記憶する第２の記憶部と、を含み、
前記制御装置は、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する請求項１から３いずれか一の通信システム。
【請求項５】
前記制御装置は、
前記特定したノードに設定した処理規則に対応する処理規則を、複数のノードに設定する請求項１から４いずれか一の通信システム。
【請求項６】
前記制御装置は、さらに、
前記ノードから受信したパケットの情報を記憶する第３の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の２つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから前記特定したノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する請求項５の通信システム。
【請求項７】
受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理規則作成部と、
前記ノードに前記作成した処理規則を設定する処理規則設定部と、
を備える制御装置。
【請求項８】
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する第１の記憶部を備える請求項７の制御装置。
【請求項９】
前記パケット処理部として、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行うパケット処理部を備える請求項７または８の制御装置。
【請求項１０】
さらに、前記ノードに設定した処理規則を記憶する第２の記憶部を備え、
所定の間隔で前記パケット処理部に入力される監視パケットに対する前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する請求項７から９いずれか一の制御装置。
【請求項１１】
さらに、前記ノードに設定した処理規則を記憶する第２の記憶部と、
所定の間隔で、前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部と、を備え、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する請求項７から９いずれか一の制御装置。
【請求項１２】
前記特定したノードに設定した処理規則に対応する処理規則を、複数のノードに設定する請求項７から１１いずれか一の制御装置。
【請求項１３】
さらに、
前記ノードから受信したパケットの情報を記憶する第３の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の２つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから前記特定したノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する請求項１２の制御装置。
【請求項１４】
受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力するステップと、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成するステップと、
前記ノードに前記作成した処理規則を設定するステップと、を含む、
ノードの制御方法。
【請求項１５】
受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力する処理と、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理と、
前記ノードに前記作成した処理規則を設定する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１１−１８６０９６号（２０１１年８月２９日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、通信システム、制御装置、ノード、ノードの制御方法およびプログラムに関し、特に、ノードを集中制御する制御装置が設けられている通信システム、その制御装置、ノード、ノードの制御方法およびプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（特許文献１、非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール（ヘッダフィールド）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（図１７参照）。
【０００３】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルール（図１７のヘッダフィールド参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットの処理内容の決定の要求を送信する。オープンフロースイッチは、要求に対応するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行う。
【０００４】
また、非特許文献３には、上記オープンフローを用いて仮想ネットワーク環境を構築するルートフロー（ＲｏｕｔｅＦｌｏｗ）という技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２００８／０９５０１０号
【非特許文献】
【０００６】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２３（２０１１）年５月２６日検索］、インターネット〈URL: http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）  ［平成２３（２０１１）年５月２６検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【非特許文献３】“Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒｓ  ａｓ  ａ  Ｓｅｒｖｉｃｅ：Ｔｈｅ  ＲｏｕｔｅＦｌｏｗ  Ａｐｐｒｏａｃｈ  Ｌｅｖｅｒａｇｉｎｇ  Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ”  ［平成２３（２０１１）年７月１１日検索］、インターネット〈URL: http://sites.google.com/site/routeflow/documents/routeflow-virtual-ip-sdn-CFI-2011.pdf?attredirects=0〉
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以下の分析は、本発明によって与えられたものである。上記のようなオープンフローを用いたネットワークにおいて、外部ネットワークとの境界やその内部の仮想ノードとして、ルータやゲートウェイ等の通信機器を配置したいという要請がある。また敢えて、レイヤ２スイッチ等のレガシーな通信機器を配置したいケースも考えられる。
【０００８】
例えば、特定の（オープンフロー）スイッチをルータとして動作させる場合、図１８に示すように、（オープンフロー）コントローラに、ＲＩＰ（Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）、ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）、ＢＧＰ（Ｂｏｒｄｅｒ  Ｇａｔｅｗａｙ  Ｐｒｏｔｏｃｏｌ）等により動的に更新される経路表を用いてルーティングを行うルータパケット処理機構を搭載し、（オープンフロー）コントローラ内部で、経路表の更新を行いつつ、ルータ相当の動作を実現するフローエントリを作成することが考えられる。しかしながら、この方法では、コントローラにルータパケット処理機構を実装する必要があり、その開発コストが高くなってしまうという問題点がある。
【０００９】
非特許文献３では、仮想化されたＩＰルーティングエンジンを相互に接続した仮想ネットワーク環境を管理するルートフローサーバを導入することが提案されている。しかしながら、非特許文献３の方法も、図１９に示すように、仮想ネットワーク環境の各仮想マシン上に配置されるルートフロースレーブと呼ばれるデーモンにより、経路表やＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）テーブルの変化を監視し、その変化を逐次フローエントリに反映する必要があり、その実装コストが高くなってしまうという問題点がある。
【００１０】
本発明の目的は、オープンフローネットワークのノードに、低コストで、所定の仕様に準じた通信機器に相当する動作を行わせることのできる構成を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の視点によれば、受信パケットと照合する照合規則と、前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードと、前記ノードからの要求に応じて前記ノードに前記処理規則を設定する制御装置と、を含む通信システムが提供される。前記制御装置は、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理規則作成部を備える。
【００１２】
本発明の第２の視点によれば、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力し、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を設定する処理規則設定部と、を備える制御装置が提供される。
【００１３】
本発明の第３の視点によれば、予め定められた仕様に従ってパケット処理を行うパケット処理部と接続されるノードが提供される。前記ノードは、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従ってパケットを処理するノード側パケット処理部と、前記照合規則に適合しないパケットを前記パケット処理部に入力し、前記パケット処理部への入力によって得られたパケット処理結果に相当する処理規則を作成する処理規則作成部と、を備える。
【００１４】
本発明の第４の視点によれば、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力するステップと、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、
前記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成するステップと、前記ノードに前記作成した処理規則を設定するステップと、を含む、ノードの制御方法が提供される。本方法は、前記ノードを制御する制御装置という、特定の機械に結びつけられている。
【００１５】
本発明の第５の視点によれば、受信パケットと照合する照合規則と前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノードからの要求に応じて、前記ノードから処理規則の作成を要求されたパケットを、所定のルーティングプロトコルに従ってパケット処理を行うパケット処理部に出力する処理と、前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を参照して、前記ノードが前記処理されたパケットを出力する前記ノードのインタフェースを特定し、記処理されたパケットに対応する照合規則に適合するパケットを、前記特定したノードのインタフェースから出力させる処理規則を作成する処理と、前記ノードに前記作成した処理規則を設定する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な非トランジエントな記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１６】
本発明によれば、コストを掛けずに、オープンフローネットワークのノードを任意の通信機器のように振舞わせることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態の概要を説明するための図である。
【図２】本発明の一実施形態の動作概要を説明するためのシーケンス図である。
【図３】本発明の第１の実施形態の構成を表したブロック図である。
【図４】本発明の第１の実施形態のコントローラのインタフェースＤＢに保持される情報の例である。
【図５】本発明の第１の実施形態のコントローラの動作を表した流れ図である。
【図６】本発明の第１の実施形態の動作を説明するための図である。
【図７】図６の続図である。
【図８】図７の続図である。
【図９】本発明の第２の実施形態の概略構成を表したブロック図である。
【図１０】本発明の第２の実施形態の構成を表したブロック図である。
【図１１】本発明の第２の実施形態のコントローラの動作を表した流れ図である。
【図１２】本発明の第３の実施形態の概略構成を表したブロック図である。
【図１３】本発明の第３の実施形態の構成を表したブロック図である。
【図１４】本発明の第３の実施形態のコントローラのインタフェースＤＢに保持される情報の例である。
【図１５】本発明の第３の実施形態のコントローラの入力パケットＤＢに保持される情報の例である。
【図１６】本発明の第３の実施形態のコントローラの動作を表した流れ図である。
【図１７】非特許文献２のフローエントリの構成を表した図である。
【図１８】背景技術を説明するための図である。
【図１９】非特許文献３の概略構成を説明するための図である。
【発明を実施するための形態】
【００１８】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１９】
本発明は、その一実施形態において、図１に示すように、フローテーブル２１と、（ノード側）パケット処理部２２とを備え、受信パケットと照合する照合規則と、前記照合規則に適合するパケットに適用する処理内容とを含む処理規則に従って動作するノード２０と、前記ノード２０からの要求に応じて前記ノード２０に前記処理規則（以下、「フローエントリ」）を設定するコントローラ１０（上記「制御装置」に相当。）と、予め定められた仕様に従ってパケット処理を行うパケット処理部１１とを含む構成にて実現できる。具体的には、コントローラ１０は、前記ノード２０からフローエントリの作成を要求されたパケットを前記パケット処理部１１に入力し、前記入力により得られた前記パケット処理部１１のパケット処理結果に相当するフローエントリを作成するフローエントリ作成部１２（上記、「処理規則作成部」に相当。）を備える。なお以下の説明では、パケット処理部１１は、ＩＰｖ４のルータと同等のパケット処理を行うものとする。
【００２０】
なお、ノード２０は、非特許文献１、２のオープンフロースイッチまたはその互換製品により実現することが可能である。
【００２１】
図２は、上記本発明の一実施形態の動作概要を説明するためのシーケンス図である。図２に示すように、パケット処理部１１は、コントローラ１０を介して、ノード２０とＲＩＰ、ＯＳＰＦ、ＢＧＰ等の制御パケットの送受信（図２のＳ４０１）、または、管理者による静的設定に基づき、経路表を更新する（図２のＳ４０２）。
【００２２】
その後、ホストから新規にユーザパケットを受信すると（図２のＳ４０３）、ノード２０は、フローテーブル２１から、受信したユーザパケットに適合する照合規則（マッチングルール）を持つフローエントリを検索する（図２のＳ４０４）。
【００２３】
ここでは、ホストから受信したパケットは、新規のユーザパケットであるため、ノード２０のフローテーブル２１には、受信パケットに適合するフローエントリは存在しない。そこで、ノード２０は、コントローラ１０に対して、受信パケットに適合するフローエントリの設定を要求する（図２のＰａｃｋｅｔ−Ｉｎ；Ｓ４０５）。
【００２４】
前記Ｐａｃｋｅｔ−Ｉｎを受信したコントローラ１０は、Ｐａｃｋｅｔ−Ｉｎとともに受信したパケットをパケット処理部１１に入力する際のインタフェース（出力先インタフェース）を決定し（図２のＳ４０６）、パケット処理部１１に、前記Ｐａｃｋｅｔ−Ｉｎとともに受信したパケットを入力する（図２のＳ４０７）。
【００２５】
パケット処理部１１は、上記のように、ステップＳ４０１、Ｓ４０２で更新した経路表を検索して、入力されたパケットの転送先を決定し（図２のＳ４０８）、コントローラ１０側に出力する（図２のＳ４０９）。
【００２６】
コントローラ１０は、前記パケット処理部１１からのパケットが出力されたインタフェースに基づいてノード２０からパケットを出力させるポートを決定し（図２のＳ４１０）、当該パケットの後続パケットを前記決定したポートから出力させるフローエントリを生成する（図２のＳ４１１）。
【００２７】
次に、コントローラ１０は、前記生成したフローエントリをノード２０に設定する（図２のＦｌｏｗＭｏｄ（Ａｄｄ）；Ｓ４１２、Ｓ４１３）。さらに、コントローラ１０は、ノード２０に対し、前記決定したポートから、ステップＳ４０５でフローエントリの設定要求を受けたパケットを送信するよう指示する（図２のＰａｃｋｅｔ−Ｏｕｔ；Ｓ４１４）。ノード２０は、前記指示に従って、指定されたポートから、パケットを次ホップに送信する（図２のＳ４１５）。
【００２８】
その後、ホストから後続パケットを受信すると（図２のＳ４１６）、ノード２０は、フローテーブル２１から、受信したユーザパケットに適合する照合規則（マッチングルール）を持つフローエントリを検索する（図２のＳ４１７）。ここでは、上述のように、前記後続パケットを処理するためのフローエントリが登録されているため、該当するフローエントリに従って次ホップに転送するインストラクションが実行される（図２のＳ４１８、Ｓ４１９）。
【００２９】
以上のように、本実施形態では、ＩＰｖ４のルータのパケット処理を行うパケット処理部１１の内部の経路表等を観測するのではなく、そのパケット転送動作を観測し、その結果に基づいて、フローエントリを作成するようにしたため、背景技術に述べた構成よりも低コストで、ノード２０にルータ相当の動作を行わせることができる。
【００３０】
［第１の実施形態］
続いて、本発明をより具体的に説明すべく、本発明の第１の実施形態について図面を参照して詳細に説明する。図３は、本発明の第１の実施形態の構成を表したブロック図である。図３を参照すると、フローテーブル２１と、（ノード側）パケット処理部２２とを備えるノード２０を制御するコントローラ１００の詳細構成が示されている。（ノード側）パケット処理部２２は、コントローラ１００のネットワークインタフェース通信部１０１と接続されたパケット処理部とは異なり、フローテーブル２１に格納されたエントリを処理規則として用いてパケット処理を行う。
【００３１】
なお、本実施形態で用いるパケット処理部は、図１に示したＩＰｖ４のルータのパケット処理を行うパケット処理部１１と同等であるものとする。即ち、パケット処理部１１内部のＲＩＰ、ＢＧＰ、ＯＳＰＦといったルーティングプロトコルのデーモンがノード２０と通信し内部の経路表を更新しているものとする。また、コントローラ１００は、ノード２０とルーティングプロトコルデーモン間の制御パケットを必要に応じ中継するのみで、経路表の変化には関知しないものとする。
【００３２】
コントローラ１００は、パケット処理部側の複数のネットワークインタフェース接続されてパケットの送受信を行うネットワークインタフェース通信部１０１と、ノード２０に備えられたポートと、前記ネットワークインタフェースとの対応関係を記憶する記憶部に相当するインタフェースデータベース（インタフェースＤＢ）１０２と、ノード２０に設定した処理規則（フローエントリ）を格納したフローエントリデータベース（フローエントリＤＢ）１０３と、ノード通信部１０８および制御メッセージ処理部１０７を介してノードから受信したパケットをパケット処理部に入力し、その結果を出力パケット解析・フローエントリ生成部１０５に出力するユーザパケット処理部１０４と、ユーザパケット処理部１０４から入力された内容に基づいて、フローエントリを生成する出力パケット解析・フローエントリ生成部１０５と、前記生成されたフローエントリのフローエントリＤＢ１０３への登録や、ノード２０への設定を行うフローエントリ管理部１０６と、制御メッセージ処理部１０７と、ノード２０との通信を行うノード通信部１０８と、を備えて構成される。
【００３３】
なお、図３の構成中、ノード２０に設定したフローエントリを保持する必要が無い場合、フローエントリＤＢ１０３は省略することが可能である。また、インタフェースＤＢ１０２は、コントローラ１００からアクセス可能であればよく、別の外部装置に設けることも可能である。
【００３４】
さらに、制御メッセージ処理部１０７は、ノード２０から受信した制御メッセージを解析して、必要な処理を行うメッセージ解析・処理部１０７１と、ノード２０に送信するメッセージを生成するメッセージ生成部１０７２とを備えて構成される。
【００３５】
図４は、インタフェースＤＢ１０２に保持される情報を模式的に表した図である。図４の例では、ノード（物理ノード）のポート＃１、＃３３、＃４８、＃５０が、それぞれ対応するネットワークインタフェースｔａｐ０〜３と対応付けられている。例えば、ノード（物理ノード）のポート＃１から入力されたパケットは、ネットワークインタフェースｔａｐ０からパケット処理部１１に入力される。そして、前記パケットの入力の結果、パケット処理部１１から前記パケットの出力先となるネットワークインタフェースを観測することにより、パケット処理部のふるまいを把握することができる。例えば、ポート＃１から入力されたパケットをネットワークインタフェースｔａｐ０からパケット処理部１１に入力した結果、パケット処理部１１のネットワークインタフェースｔａｐ３から前記パケットが出力された場合、パケット処理部１１に保持されている経路表は、ポート＃１から入力された前記パケットをポート＃５０から出力するエントリを持っていると推測できる。出力パケット解析・フローエントリ生成部１０５は、このようなパケット処理の結果を用いて、ノード２０のポート＃１から入力されたパケットをポート＃５０から出力されるフローエントリを生成する。なお、出力パケット解析・フローエントリ生成部１０５が生成するフローエントリのインストラクション（処理内容）は転送に限らず、例えば、パケット処理部１１において各種優先制御がなされている場合には、これを実現するフローエントリが生成される。
【００３６】
上記のようなコントローラ１００は、非特許文献１、２のオープンフローコントローラをパケット処理部に接続し、少なくとも上記ネットワークインタフェース通信部１０１、インタフェースＤＢ１０２、ユーザパケット処理部１０４、出力パケット解析・フローエントリ生成部１０５を追加することにより実現することが可能である。
【００３７】
なお、上記コントローラ１００の各部（処理手段）は、コントローラ１００を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３８】
続いて、上記したコントローラ１００の動作について説明する。図５は、コントローラ１００の動作を表した流れ図である。図５の左側の流れ図（Ａ）を参照すると、ノード２０からフローエントリの作成要求（Ｐａｃｋｅｔ−Ｉｎ）を受けると、コントローラ１００は、インタフェースＤＢ１０２を参照して、フローエントリの作成要求（Ｐａｃｋｅｔ−Ｉｎ）に添付されたパケットのノード２０の受信ポートに対応するネットワークインタフェースを検索する（ステップＳ００１；Ｐａｃｋｅｔ−Ｉｎ）。前記検索の結果、インタフェースＤＢ１０２に該当するエントリが無い場合、処理を終了する（ステップＳ００２のＮｏ）。なおここで、前記パケットが、ノード２０以外のパケット処理部と対応付けられていないノードからのパケットである場合には、背景技術に記載したように、これらのノードのために経路作成や他のコントローラへの経路作成依頼等を行うようにしても良い。
【００３９】
一方、前記検索の結果、該当するエントリが見つかった場合（ステップＳ００２のＹｅｓ）、コントローラ１００は、当該エントリに記述されたネットワークインタフェース宛に、ノード２０から受信したユーザパケットを転送する（ステップＳ００３）。例えば、図６に示すように、ノード２０のポート＃１で受信したパケットについてフローエントリの作成要求を受けた場合、コントローラ１００は、インタフェースＤＢ１０２を参照し、ノード２０のポート＃１に対応付けられているネットワークインタフェースｔａｐ０宛てにパケットを転送する。
【００４０】
その後、パケット処理部の任意のネットワークインタフェースからパケットを受信すると、コントローラ１００は、図５の右側の流れ図（Ｂ）に従って動作する。まず、コントローラ１００は、インタフェースＤＢ１０２を参照して、パケットを受信したネットワークインタフェースに対応する出力先ポートを検索する（ステップＳ１０１）。前記検索の結果、インタフェースＤＢ１０２に該当するエントリが無い場合、処理を終了する（ステップＳ１０２のＮｏ）。
【００４１】
一方、前記検索の結果、該当するエントリが見つかった場合（ステップＳ１０２のＹｅｓ）、コントローラ１００は、前記受信パケットを、当該エントリに記述された出力先ポートから転送させるフローエントリを生成する（ステップＳ１０３）。なお、ここで、パケット処理部にて、パケットヘッダの書き換え等が行われている場合、コントローラ１００が、これらに対応するインストラクションをフローエントリに追加するようにしてもよい。
【００４２】
次にコントローラ１００は、ノード２０に、前記生成したフローエントリを設定し（ステップＳ１０４；ＦｌｏｗＭｏｄ（Ａｄｄ）送信）、さらにノード２０に対し、前記受信したパケットの転送を指示する（ステップＳ１０５；Ｐａｃｋｅｔ−Ｏｕｔ）。
【００４３】
例えば、図７に示すように、パケット処理部のネットワークインタフェースｔａｐ０宛てにパケットを転送した結果として、ネットワークインタフェースｔａｐ３からパケットを受信している場合、コントローラ１００は、インタフェースＤＢ１０２を参照し、ネットワークインタフェースｔａｐ３に対応付けられている出力先ポートとして、ノード２０のポート＃５０を特定する。最終的にコントローラ１００は、前記受信パケットをポート＃５０から転送させるインストラクションを定めたフローエントリを生成、設定する。
【００４４】
以上により、その後は、図８に示すように、ノード２０に設定されたフローエントリに従って、パケット処理部の経路表に従った転送処理と同様の転送処理が行われる。
【００４５】
以上説明したように、本実施形態によれば、コントローラが自ら経路表を管理したり、経路表の変化を監視することなく、ノード２０を、ＩＰｖ４ルータと同等に振舞わせることができる。また、構成としても、仕様の通信装置と同等に動作するパケット処理部（このようなパケット処理部は、既存のルーティングプロトコルスタックを用いて容易に構成できる。）を用意するとともに、コントローラ側に、ノードとパケット処理部のインタフェース間の対応関係を記憶する記憶部と、その結果に基づいたフローエントリの生成機能とを持たせるだけであるので、低コストで実現することが可能である。
【００４６】
［第２の実施形態］
続いて、上記した第１の実施形態に変更を加えた第２の実施形態について図面を参照して詳細に説明する。上記した第１の実施形態では、ノード２０からパケットを受信した場合にのみ、その出力の観測が行われる。その一方で、パケット処理部では所定のタイミングで経路表の更新が行われるため、パケット処理部内部の経路表の変化が、ノード２０に保持されているフローエントリに反映されていないということが起こりうる。
【００４７】
そこで、本発明の第２の実施形態では、図９に示すように、所定のタイミングで、パケット処理部１１のネットワークインタフェース宛に、監視用のパケットを送信する監視パケット送信部１１０を追加している。以下、基本的な構成は、第１の実施形態と共通するので、その相違点を中心に説明する。
【００４８】
図１０は、本発明の第２の実施形態の詳細構成を表したブロック図である。図３に示した第１の実施形態との相違点は、フローエントリＤＢ１０３のエントリが監視パケット送信部に参照されるようになっている点と、出力パケット解析・フローエントリ生成部１０５Ａに前記監視パケットによるフローエントリの更新機能が追加されている点である。
【００４９】
監視パケット送信部１１０は、フローエントリＤＢ１０３からフローエントリを読み出し、当該フローエントリのマッチングルール（照合規則）に適合するヘッダと、監視パケットであることを示す情報を含んだ監視パケットを生成し、パケット処理部に入力する動作を行う。監視パケットとしては、ｐｉｎｇで用いられるＩＣＭＰ  ｅｃｈｏ  ｒｅｑｕｅｓｔパケット等のダミーのパケットを用いることができる。
【００５０】
図１１は、本発明の第２の実施形態のコントローラの動作を表した流れ図である。第１の実施形態のコントローラの動作を表した図５の右側の流れ図（Ｂ）に対し、ステップＳ１１１〜Ｓ１１６が追加されている。
【００５１】
図１１を参照すると、まず、ネットワークインタフェースからパケットを受信したコントローラ１００Ａは、インタフェースＤＢ１０２を参照して、当該パケットを受信したネットワークインタフェースに対応する出力先ポートを検索する（ステップＳ１０１）。前記検索の結果、インタフェースＤＢ１０２に該当するエントリが無い場合、処理を終了する（ステップＳ１０２のＮｏ）。
【００５２】
一方、前記検索の結果、該当するエントリが見つかった場合（ステップＳ１０２のＹｅｓ）、コントローラ１００Ａは、パケットの解析を行う（ステップＳ１１１）。前記パケットの解析の結果、受信パケットがユーザパケットであるなど、監視パケットで無い場合（ステップＳ１１２のＮｏ）、第１の実施形態と同様に（図５のステップＳ１０３〜Ｓ１０５参照）、前記特定された出力先ポートに基づいて、フローエントリの生成、設定、パケットの送信指示が行われる（図１１のＳ１０３〜Ｓ１０５）。
【００５３】
一方、前記パケットの解析の結果、受信パケットが監視パケットであると判断した場合（ステップＳ１１２のＹｅｓ）、コントローラ１００Ａは、フローエントリＤＢ１０３から、前記受信パケット（監視パケット）に適合するマッチングルール（照合規則）を持つフローエントリを検索する（ステップＳ１１３）。
【００５４】
次に、コントローラ１００Ａは、インタフェースＤＢ１０２を参照して、前記受信パケット（監視パケット）が出力されたネットワークインタフェースに対応するポートを特定する。さらに、コントローラ１００Ａは、前記特定されたポートが、前記ステップＳ１１３で検索されたフローエントリのインストラクションフィールドに定められた出力先ポートと一致するか否かを確認する（ステップＳ１１４）。ここで、前記特定されたポートが、検索されたフローエントリのインストラクションフィールドに定められた出力先ポートと一致する場合（ステップＳ１１４のＮｏ）、コントローラは処理を終了する。
【００５５】
一方、前記特定されたポートが、検索されたフローエントリのインストラクションフィールドに定められた出力先ポートと一致しない場合（ステップＳ１１４のＹｅｓ）、コントローラ１００Ａは、前記検索されたフローエントリのインストラクションフィールドの内容を前記特定されたポートへの転送処理に書き換え（ステップＳ１１５）、ノードに設定する（ステップＳ１１６）。
【００５６】
以上のように、本実施形態によれば、パケット処理部内部の経路表の変化を、なるべく速やかに、ノード２０に保持されているフローエントリに反映させることが可能になる。
【００５７】
なお、上記した実施形態では、監視パケット送信部１１０は、フローエントリＤＢ１０３からフローエントリを読み出して、監視パケットを生成するものとして説明したが、任意の監視パケット生成規則を用いて、監視パケットを自動生成するようにしてもよい。また、監視パケットは、更新要否確認対象のフローエントリと対応付けて生成され、監視パケットであることを識別可能なものであればよい。
【００５８】
［第３の実施形態］
続いて、上記した第１の実施形態に変更を加えた第３の実施形態について図面を参照して詳細に説明する。上記した第１、第２の実施形態では、ノード２０と、パケット処理部１１が１対１の対応関係にあるものとして説明したが、複数のノードを単一の通信機器として振舞わせることも可能である。
【００５９】
そこで、本発明の第３の実施形態では、図１２に示すように、コントローラ１００Ｂが複数のノード２０Ａ、２０Ｂを制御する構成となっている。以下、基本的な構成は、第１の実施形態と共通するので、その相違点を中心に説明する。
【００６０】
図１３は、本発明の第３の実施形態の詳細構成を表したブロック図である。図３に示した第１の実施形態との相違点は、コントローラ１００Ｂに、入力パケットデータベース（入力パケットＤＢ）１０９、内部トポロジ管理部１１１および内部経路計算部１１２が追加されている点と、インタフェースＤＢ１０２Ｂ、ユーザパケット処理部１０４Ｂ、出力パケット解析・フローエントリ生成部１０５Ｂに変更が加えられている点である。
【００６１】
図１４は、インタフェースＤＢ１０２Ｂに保持される情報を模式的に表した図である。図４に示した第１の実施形態のインタフェースＤＢ１０２との相違点は、各エントリにノードＩＤ（Ｄａｔａｐａｔｈ  ＩＤ）が追加されている点である。例えば、ノード２０Ａのポート＃１から入力されたパケットは、ネットワークインタフェースｔａｐ０からパケット処理部１１に入力される。また例えば、ポート＃１から入力されたパケットをネットワークインタフェースｔａｐ０からパケット処理部１１に入力した結果、パケット処理部１１のネットワークインタフェースｔａｐ３から前記パケットが出力された場合、パケット処理部１１に保持されている経路表は、ポート＃１から入力された前記パケットをポート＃５０から出力するエントリを持っていると推測できる。出力パケット解析・フローエントリ生成部１０５Ｂは、このようなパケット処理の結果を用いて、ノード２０Ａのポート＃１から入力されたパケットをノード２０Ｂのポート＃５０から出力されるフローエントリを生成する。このとき、ノード２０Ａ、ノード２０Ｂ間のパケット転送が必要となるので、後記する入力パケットＤＢ１０９、内部トポロジ管理部１１１および内部経路計算部１１２が利用される。
【００６２】
図１５は、入力パケットＤＢ１０９に保持される情報を模式的に表した図である。図１５の例では、入力パケットＤＢのエントリは、入力パケットのヘッダ情報等の入力パケット情報と、ノードＩＤ（Ｄａｔａｐａｔｈ  ＩＤ）と、（物理）ノードのポート＃とを対応付けた内容となっている。例えば、ユーザパケット処理部１０４Ｂが、ユーザパケットをノード側から受信すると、その入力パケット情報Ｗ、ノードＩＤ、ポート＃を入力パケットＤＢ１０９に登録する。ポート＃１から入力されたパケットをネットワークインタフェースｔａｐ０からパケット処理部１１に入力した結果、パケット処理部１１のネットワークインタフェースｔａｐ３から、入力パケット情報としてＷを持つパケットが出力された場合、前記登録した情報を逆引きして、当該パケットが、ノードＩＤが０ｘ０１であるノード２０Ａのポート＃１から入力されたパケットであることを割り出すことができる。
【００６３】
内部トポロジ管理部１１１は、ノード２０Ａおよびノード２０Ｂ間の接続関係を管理する。内部経路計算部１１２は、出力パケット解析・フローエントリ生成部１０５Ｂからの要求に応じて、ユーザパケットを受信したノードと、当該ユーザパケットを出力すべきノード間の経路を計算する。例えば、出力パケット解析・フローエントリ生成部１０５Ｂから、ノード２０Ａとノード２０Ｂ間の経路を計算する要求を受けた場合、内部経路計算部１１２は、内部トポロジ管理部１１１に保持されている情報を参照して経路を計算し、出力パケット解析・フローエントリ生成部１０５Ｂに計算結果を返す。
【００６４】
続いて、上記したコントローラ１００Ｂの動作について説明する。図１６は、コントローラ１００Ｂの動作を表した流れ図である。図１６の左側の流れ図（Ａ）を参照すると、ノード２０Ａ（またはノード２０Ｂ）からフローエントリの作成要求（Ｐａｃｋｅｔ−Ｉｎ）を受けると、コントローラ１００Ｂは、インタフェースＤＢ１０２Ｂを参照して、フローエントリの作成要求（Ｐａｃｋｅｔ−Ｉｎ）に添付されたパケットのノード２０Ａ（またはノード２０Ｂ）の受信ポートに対応するネットワークインタフェースを検索する（ステップＳ００１；Ｐａｃｋｅｔ−Ｉｎ）。前記検索の結果、インタフェースＤＢ１０２Ｂに該当するエントリが無い場合、処理を終了する（ステップＳ００２のＮｏ）。
【００６５】
一方、前記検索の結果、該当するエントリが見つかった場合（ステップＳ００２のＹｅｓ）、コントローラ１００Ｂは、フローエントリの作成要求（Ｐａｃｋｅｔ−Ｉｎ）に添付されたパケットから、前述した入力パケット情報、ノードＩＤ、ポート＃などを抽出し（ステップＳ０１１）、入力パケットＤＢ１０９に登録する（ステップＳ０１２）。
【００６６】
その後、コントローラ１００Ｂは、ステップＳ００１で検索したエントリに記述されたネットワークインタフェース宛に、ノード２０から受信したユーザパケットを転送する（ステップＳ００３）。例えば、ノード２０Ａのポート＃１で受信したパケットについてフローエントリの作成要求を受けた場合、コントローラ１００Ｂは、インタフェースＤＢ１０２Ｂを参照し、ノード２０のポート＃１に対応付けられているネットワークインタフェースｔａｐ０宛てにパケットを転送する。
【００６７】
その後、パケット処理部の任意のネットワークインタフェースからパケットを受信すると、コントローラ１００Ｂは、図１６の右側の流れ図（Ｂ）に従って動作する。まず、コントローラ１００Ｂは、インタフェースＤＢ１０２Ｂを参照して、パケットが送られてきたネットワークインタフェースに対応するノードＩＤと出力先ポートを検索する（ステップＳ１２１）。前記検索の結果、インタフェースＤＢ１０２Ｂに該当するエントリが無い場合、処理を終了する（ステップＳ１２２のＮｏ）。
【００６８】
一方、前記検索の結果、該当するエントリが見つかった場合（ステップＳ１２２のＹｅｓ）、コントローラ１００Ｂは、前記受信パケットから入力パケット情報を抽出し、入力パケットＤＢ１０９から該当入力パケット情報を持つエントリを検索する（ステップＳ１２３）。
【００６９】
この時点で、ネットワークインタフェースから受信したパケットの受信ノードとその受信ポート、当該パケットを出力すべき出力ノードとそのポートが判明している。コントローラ１００Ｂは、これらに基づいて、内部経路計算部１１２に、前記受信ノードと出力ノード間の経路の計算させる（ステップＳ１２４）。なお、前記計算の過程で転送不可能と判断された場合、コントローラ１００Ｂは、処理を終了する（ステップＳ１２５のＮｏ）。
【００７０】
一方、転送可能と判断された場合、コントローラ１００Ｂは、前記パケットを入力ノードから出力ノードに転送し、出力ノードの指定ポートから転送させるフローエントリを生成する（ステップＳ１２６）。
【００７１】
次にコントローラ１００Ｂは、ノード２０Ａ、２０Ｂに、前記生成したフローエントリを設定し（ステップＳ１２７；ＦｌｏｗＭｏｄ（Ａｄｄ）送信）、前記受信したパケットの転送を指示する（ステップＳ１２８；Ｐａｃｋｅｔ−Ｏｕｔ）。
【００７２】
図１２のノード２０Ａのポート＃１から受信したパケットの情報を入力パケットＤＢ１０９に登録するとともに、図１４のインタフェースＤＢ１０２Ｂに従って、同パケットをネットワークインタフェースｔａｐ０に入力した場合を考える。例えば、ネットワークインタフェースｔａｐ０にパケットを入力した結果として、ネットワークインタフェースｔａｐ３からパケットを受信している場合、コントローラ１００Ｂは、インタフェースＤＢ１０２を参照し、ネットワークインタフェースｔａｐ３に対応付けられている出力先ポートとして、ノード２０Ｂのポート＃５０を特定する。さらに、コントローラ１００Ｂは、入力パケットＤＢ１０９を参照して、当該パケットがノード２０Ａのポート＃１から受信したものであることを特定する。コントローラ１００Ｂは、これらの情報に基づいて、ノード２０Ａに、前記パケットに後続するパケットをノード２０Ｂに転送させるフローエントリを設定し、ノード２０Ｂに、前記パケット後続するパケットをそのポート＃５０から転送させるフローエントリを設定する。
【００７３】
その後、図１２のノード２０Ａのポート＃１から受信される後続パケットは、コントローラ１００Ｂを介することなく、ノード２０Ｂに転送され、ノード２０Ｂのポート＃５０から出力される。
【００７４】
以上説明したように、本実施形態によれば、低コストで、複数のノードを、あたかも一つの通信機器であるかのように振舞わせることが可能となる。また、この場合の構成も、仕様の通信装置と同等に動作するパケット処理部（このようなパケット処理部は、既存のルーティングプロトコルスタックを用いて容易に構成できる。）を用意するとともに、コントローラ側に、インタフェースＤＢ１０２、入力パケットＤＢ１０９、ユーザパケット処理部１０４Ｂ、出力パケット解析・フローエントリ生成部１０５Ｂ、内部トポロジ管理部１１１、内部経路計算部１１２に相当する機能とを持たせるだけあるので、低コストで実現することが可能である。
【００７５】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記した実施形態に示したノード、ポート、ネットワークインタフェースの数は、あくまで、本発明の理解を助けるために示した例であり、これらの数に限定されない。
【００７６】
また例えば、上記した実施形態では、パケット処理部では、ＩＰｖ４ルータ相当の動作を行うものとして説明したが、経路表等のパケット処理部内部の情報の監視を要しないので、ノード２０、２０Ａ、２０Ｂを、ＩＰｖ６ルータはもちろんとして、各種のゲートウェイやパケット処理装置等と同様の動作を行わせることができる。
【００７７】
また例えば、上記した実施形態では、コントローラ１００、１００Ａ、１００Ｂの外部に、パケット処理部や監視パケット送信部が接続されているものとして説明したが、図１に示したように、コントローラ１０の内部にパケット処理部や監視パケット送信部が配置されている構成も採用可能である。
【００７８】
また例えば、上記した実施形態では、コントローラ１００、１００Ａ、１００Ｂが一連の動作を行うものとして説明したが、ノード２０、２０Ａ、２０Ｂ側に上記コントローラ１００、１００Ａ、１００Ｂと同等の機能を追加し、ノード２０、２０Ａ、２０Ｂが直接エミュレータ部にパケットを入力し、その結果に基づいて、フローエントリを生成するようにすることも可能である。
【００７９】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による通信システム参照）
［第２の形態］
第１の形態において、
前記制御装置は、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する記憶部を備え、
前記ノードから処理規則の作成を要求されたパケットに後続するパケットを、前記パケット処理部から出力されたインタフェースに対応する前記ノードのインタフェースから出力させる処理規則を作成する通信システム。
［第３の形態］
第１または第２の形態において、
前記パケット処理部は、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行う通信システム。
［第４の形態］
第１から第３いずれか一の形態において、
さらに、所定の間隔で、前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部と、
前記ノードに設定した処理規則を記憶する第２の記憶部と、を含み、
前記制御装置は、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する通信システム。
［第５の形態］
第１から第４いずれか一の形態において、
前記制御装置は、
複数のノードにそれぞれ処理規則を設定することにより、前記複数のノードに、前記パケット処理部と同等のパケット処理を行わせる通信システム。
［第６の形態］
第５の形態において、
前記制御装置は、さらに、
前記ノードから受信したパケットの情報を記憶する第３の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の２つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから出力ノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する通信システム。
［第７の形態］
（上記第２の視点による制御装置参照）
［第８の形態］
第７の形態において、さらに、
前記パケット処理部のインタフェースと、前記ノードのインタフェースとの対応関係を記憶する記憶部を備え、
前記ノードから処理規則の作成を要求されたパケットに後続するパケットを、前記パケット処理部から出力されたインタフェースに対応する前記ノードのインタフェースから出力させる処理規則を作成する制御装置。
［第９の形態］
第７または第８の形態において、さらに、
前記パケット処理部として、経路表を保持し、前記経路表を参照して転送先の決定を含むパケット処理を行うパケット処理部を備える制御装置。
［第１０の形態］
第７から第９いずれか一の形態において、
さらに、前記ノードに設定した処理規則を記憶する第２の記憶部を備え、
所定の間隔で前記パケット処理部に入力される監視パケットに対する前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する制御装置。
［第１１の形態］
第７から第９いずれか一の形態において、
さらに、前記ノードに設定した処理規則を記憶する第２の記憶部と、
所定の間隔で前記パケット処理部に対し、前記ノードに保持されている処理規則に対応する監視パケットを入力する監視パケット送信部を備え、
前記監視パケットの入力により得られた前記パケット処理部のパケット処理結果の変化を検知して、前記ノードに保持されている処理規則を更新する制御装置。
［第１２の形態］
第７から第１１いずれか一の形態において、
複数のノードにそれぞれ処理規則を設定することにより、前記複数のノードに、前記パケット処理部と同等のパケット処理を行わせる制御装置。
［第１３の形態］
第１２の形態において、
さらに、
前記ノードから受信したパケットの情報を記憶する第３の記憶部と、
前記複数のノード間の接続関係を記憶する内部トポロジ管理部と、
前記複数のノードの任意の２つのノード間の経路を計算する内部経路計算部とを備え、
前記複数のノードの一のノードから処理規則の作成を要求されたパケットを前記パケット処理部に入力し、前記入力により得られた前記パケット処理部のパケット処理結果に基づいて、前記一のノードから出力ノードまでの経路を計算し、該経路上のノードに設定する処理規則を作成する制御装置。
［第１４の形態］
（上記第３の視点によるノード参照）
［第１５の形態］
（上記第４の視点によるノードの制御方法参照）
［第１６の形態］
（上記第５の視点によるプログラム参照）
【００８０】
なお、上記第１４〜第１６の形態は、上記第１、第７の形態と同様に、派生する形態に展開することが可能である。
【００８１】
お、引用した上記の特許文献、非特許文献の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲（クレーム）の枠内において、種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合せないし選択が可能である。
【符号の説明】
【００８２】
１０、１００、１００Ａ、１００Ｂ  コントローラ
１１  パケット処理部
１２  フローエントリ作成部
１３ａ〜１３ｃ  ルーティング  プロトコル  スタック
１４  経路表
１５  転送処理部
２０、２０Ａ、２０Ｂ  ノード
２１  フローテーブル  
２２  （ノード側）パケット処理部
１０１  ネットワークインタフェース通信部
１０２、１０２Ｂ  インタフェースＤＢ
１０３  フローエントリＤＢ
１０４、１０４Ｂ  ユーザパケット処理部
１０５、１０５Ａ、１０５Ｂ  出力パケット解析・フローエントリ生成部
１０６  フローエントリ管理部
１０７  制御メッセージ処理部
１０８  ノード通信部
１０９  入力パケットＤＢ
１１０  監視パケット送信部
１１１  内部トポロジ管理部
１１２  内部経路計算部
１０７１  メッセージ解析・処理部
１０７２  メッセージ生成部
【図１】
0005994846.tif 000002
【図２】
0005994846.tif 000003
【図３】
0005994846.tif 000004
【図４】
0005994846.tif 000005
【図５】
0005994846.tif 000006
【図６】
0005994846.tif 000007
【図７】
0005994846.tif 000008
【図８】
0005994846.tif 000009
【図９】
0005994846.tif 000010
【図１０】
0005994846.tif 000011
【図１１】
0005994846.tif 000012
【図１２】
0005994846.tif 000013
【図１３】
0005994846.tif 000014
【図１４】
0005994846.tif 000015
【図１５】
0005994846.tif 000016
【図１６】
0005994846.tif 000017
【図１７】
0005994846.tif 000018
【図１８】
0005994846.tif 000019
【図１９】
0005994846.tif 000020