(57)【特許請求の範囲】
【請求項１】
制御装置によって制御されるエントリに従ってパケットを処理する通信端末であって、
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に前記制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が前記制御装置の指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問い合わせ処理で指定された制御装置を宛先とする問い合わせを行う問い合わせ手段と、
を備えることを特徴とする通信端末。
【請求項２】
制御装置によって制御される通信端末であって、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段と、
前記エントリに対する権限を記憶する第２の記憶手段と、
を備えることを特徴とする通信端末。
【請求項３】
制御装置によって制御される通信端末であって、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段とを備え、
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶する
ことを特徴とする通信端末。
【請求項４】
前記通信端末は、さらに、
前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第３の記憶手段を備え、
前記問い合わせ手段は、前記問い合わせを行う制御装置を決定する場合に、前記第３の記憶手段を参照する
ことを特徴とする請求項２又は３に記載の通信端末。
【請求項５】
前記通信端末は、さらに、
前記エントリに対する権限を記憶する第２の記憶手段を備えることを特徴とする請求項１に記載の通信端末。
【請求項６】
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする請求項１に記載の通信端末。
【請求項７】
前記通信端末は、さらに、
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する権限判定手段を備えることを特徴とする請求項２から６のいずれか１つに記載の通信端末。
【請求項８】
前記権限判定手段は、前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする請求項７に記載の通信端末。
【請求項９】
前記権限判定手段は、さらに、
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定することを特徴とする請求項７または８に記載の通信端末。
【請求項１０】
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に通信端末を制御する制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段から、受信したパケットに対応する処理を検索するステップと、
前記検索した処理が前記指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問い合わせ処理で指定された制御装置を宛先とする問い合わせを行うステップと、
を含むことを特徴とする通信方法。
【請求項１１】
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段から、受信したパケットに対応する処理を検索するステップと、
前記検索した処理が、通信端末を制御する制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定するステップと、前記決定した制御装置を宛先とする問い合わせを行うステップとを含み、
前記エントリに対する権限を記憶すること
を特徴とする通信方法。
【請求項１２】
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段から、受信したパケットに対応する処理を検索するステップと、
前記検索した処理が、通信端末を制御する制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定するステップと、前記決定した制御装置を宛先とする問い合わせを行うステップとを含み、
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶すること
を特徴とする通信方法。
【請求項１３】
前記問い合わせを行う制御装置を決定する場合に、前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第２の記憶手段を参照する
ことを特徴とする請求項１１又は１２に記載の通信方法。
【請求項１４】
前記エントリに対する権限を記憶することを特徴とする請求項１０に記載の通信方法。
【請求項１５】
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする請求項１０に記載の通信方法。
【請求項１６】
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定するステップを含むことを特徴とする請求項１１から１５のいずれか１つに記載の通信方法。
【請求項１７】
前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする請求項１６に記載の通信方法。
【請求項１８】
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定するステップを含むことを特徴とする請求項１６または１７に記載の通信方法。
【請求項１９】
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に通信端末を制御する制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段から、受信したパケットに対応する処理を検索する処理と、
前記検索した処理が通信端末を制御する制御装置の前記指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問い合わせ処理で指定された制御装置を宛先とする問い合わせを行う処理と、
をコンピュータに実行させることを特徴とするプログラム。
【請求項２０】
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段から、受信したパケットに対応する処理を検索する処理と、
前記検索した処理が、通信端末を制御する制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定する処理と、
前記決定した制御装置を宛先とする問い合わせを行う処理とをコンピュータに実行させ、
前記エントリに対する権限を記憶する
ことを特徴とするプログラム。
【請求項２１】
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段から、受信したパケットに対応する処理を検索する処理と、
前記検索した処理が、通信端末を制御する制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定する処理と、
前記決定した制御装置を宛先とする問い合わせを行う処理とをコンピュータに実行させ、
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶する
ことを特徴とするプログラム。
【請求項２２】
前記問い合わせを行う制御装置を決定する場合に、前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第２の記憶手段を参照する
ことを特徴とする請求項２０又は２１に記載のプログラム。
【請求項２３】
前記エントリに対する権限を記憶することを特徴とする請求項１９に記載のプログラム。
【請求項２４】
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする請求項１９に記載のプログラム。
【請求項２５】
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する処理を含むことを特徴とする請求項２０から２４のいずれか１つに記載のプログラム。
【請求項２６】
前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする請求項２５に記載のプログラム。
【請求項２７】
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定する処理を含むことを特徴とする請求項２５または２６に記載のプログラム。
【請求項２８】
制御装置によって制御されるエントリに従ってパケットを処理するスイッチであって、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に前記制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が前記制御装置の指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問い合わせ処理で指定された制御装置を宛先とする問い合わせを行う問い合わせ手段と、
を備えることを特徴とするスイッチ。
【請求項２９】
制御装置によって制御されるスイッチであって、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段と、
前記エントリに対する権限を記憶する第２の記憶手段と
を備えることを特徴とするスイッチ。
【請求項３０】
制御装置によって制御されるスイッチであって、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段とを備え、
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶する
ことを特徴とするスイッチ。
【請求項３１】
前記スイッチは、さらに、
前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第３の記憶手段を備え、
前記問い合わせ手段は、前記問い合わせを行う制御装置を決定する場合に、前記第３の記憶手段を参照する
ことを特徴とする請求項２９又は３０に記載のスイッチ。
【請求項３２】
前記スイッチは、さらに、
前記エントリに対する権限を記憶する第２の記憶手段を備えることを特徴とする請求項２８に記載のスイッチ。
【請求項３３】
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする請求項２８に記載のスイッチ。
【請求項３４】
前記スイッチは、さらに、
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する権限判定手段を備えることを特徴とする請求項２９から３３のいずれか１項に記載のスイッチ。
【請求項３５】
前記権限判定手段は、前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする請求項３４に記載のスイッチ。
【請求項３６】
前記権限判定手段は、さらに、
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定することを特徴とする請求項３４または３５に記載のスイッチ。
【請求項３７】
制御装置と、
前記制御装置によって制御されるエントリに従ってパケットを処理する通信端末と、
を備える通信システムであって、
前記通信端末は、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に前記制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が前記制御装置の指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問合せ処理で指定された制御装置を宛先とする問い合わせを行う問い合わせ手段と、
を備えることを特徴とする通信システム。
【請求項３８】
制御装置と、
前記制御装置によって制御される通信端末と、
を備える通信システムであって、
前記通信端末は、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段と、
前記エントリに対する権限を記憶する第２の記憶手段と、
を備えることを特徴とする通信システム。
【請求項３９】
制御装置と、
前記制御装置によって制御される通信端末と、
を備える通信システムであって、
前記通信端末は、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段とを備え、
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶する
ことを特徴とする通信システム。
【請求項４０】
前記通信端末は、さらに、
前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第３の記憶手段を備え、
前記問い合わせ手段は、前記問い合わせを行う制御装置を決定する場合に、前記第３の記憶手段を参照する
ことを特徴とする請求項３８又は３９に記載の通信システム。
【請求項４１】
前記通信端末は、さらに、
前記エントリに対する権限を記憶する第２の記憶手段を備えることを特徴とする請求項３７に記載の通信システム。
【請求項４２】
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする請求項３７に記載の通信システム。
【請求項４３】
前記通信端末は、さらに、
前記制御装置から前記エントリの参照 要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する権限判定手段を備えることを特徴とする請求項３８から４２のいずれか１つに記載の通信システム。
【請求項４４】
前記権限判定手段は、前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする請求項４３に記載の通信システム。
【請求項４５】
前記権限判定手段は、さらに、
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定することを特徴とする請求項４３または４４に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続する通信端末、通信方法、およびプログラムに関する。
【背景技術】
【０００２】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている。このオープンフローについては、非特許文献１、非特許文献２、また特許文献１、特許文献２に記載されている。オープンフローでは、オープンフロースイッチ（ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ、以下ＯＦＳ）の機能と、それに対する制御装置であるオープンフローコントローラ（ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ、以下ＯＦＣ）との通信方法が規定されている。ＯＦＳとＯＦＣは、セキュアチャネルと呼ばれる制御パスによって接続される。また、ＯＦＳは、単一のＯＦＣによって制御される。
【０００３】
ＯＦＳは、内部にフローテーブルを持つ。フローテーブルには、少なくともパケットのフローを識別するためのヘッダフィールドと、パケットに対する処理の組が、エントリとして登録される。パケットを識別するためのヘッダフィールドは、マッチングルールとも呼ばれる。ヘッダフィールドは複数のタプルから構成され、それぞれにワイルドカードを指定できる。ワイルドカードを指定することにより、集合としてフローの範囲を表すことができる。例えば、あるエントリのヘッダフィールドの送信元ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスだけを指定しておき、残りのタプルをワイルドカードに設定したとする。このとき、設定したエントリは、指定したＩＰアドレスから送信されるすべてのフローの集合を表すことになる。すなわち、指定したＩＰアドレスから送信されるパケットは、その宛先によらずすべてが設定したエントリに対応する。
【０００４】
また、パケットに対する処理は、アクションとも呼ばれる。アクションには少なくとも、指定ポートへの転送、ＯＦＣへの転送、入力ポートへの折り返し転送、廃棄等がある。指定ポートへの転送はパケットの次段のスイッチへの転送に用いられる。ＯＦＣへの転送は、主にパケットの処理方法の問い合わせに用いられる。
【０００５】
ＯＦＳは、パケットを受信すると、まずフローテーブルを検索する。受信パケットにマッチするエントリが存在する場合には、マッチしたエントリのアクションに従ってパケットを処理する。エントリには優先度を設定することができ、パケットが複数のエントリにマッチする場合には、優先度が最も高いエントリのアクションが適用される。
【０００６】
フローテーブルに受信パケットにマッチするエントリが存在しない場合、ＯＦＳは、ＯＦＣに対して、受信パケットにどのような処理をするかを問い合わせる。その際、ＯＦＳは、セキュアチャネルを介して、パケットの一部または全部をＯＦＣに転送する。処理の問い合わせを受けたＯＦＣは、必要に応じてフローテーブルにエントリを追加し、ＯＦＳに処理方法を通知する。
【０００７】
また、特許文献３および特許文献４には、制御機能を有する制御装置と、転送機能を有し、制御装置によって制御されるスイッチとが設けられるネットワークアーキテクチャが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−０８２８３４号公報
【特許文献２】特開２０１１−１０１２４５号公報
【特許文献３】特開２００６―１３５９７１号公報
【特許文献４】特開２００６−１３５９７５号公報
【非特許文献】
【０００９】
【非特許文献１】Nick  McKeown  ほか７名、OpenFlow:  Enabling  Innovation  in  Campus  Networks、［２０１１年６月２８日検索］、インターネット＜URL：  http://www.openflowswitch.org/documents/openflow-wp-latest.pdf＞
【非特許文献２】OpenFlow  Switch  Specification  Version  1.0.0  (Wire  Protocol  0x01)、２００９年１２月３１日、［２０１１年８月３１日検索］、インターネット＜URL:  http://www.openflowswitch.org/documents/openflow-spec-v1.0.0.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献１、非特許文献２、特許文献１、特許文献２に開示されたオープンフローや、特許文献３や特許文献４に開示されたアーキテクチャは、単一のコントローラによってスイッチの動作が細かく制御されることを前提としたネットワークシステムだといえる。
【００１１】
よって、上記の先行技術文献では、複数のコントローラがある場合に、複数のコントローラによってスイッチを制御することができなかった。
【００１２】
本発明の目的は、上述した課題を解決することが可能な、通信端末、通信方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本発明による通信端末は、制御装置によって制御される通信端末であって、パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に前記制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段と、受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、前記検索した処理が前記制御装置の指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問い合わせ処理で指定された制御装置を宛先とする問い合わせを行う問い合わせ手段と、を備えることを特徴とする。
【００１４】
本発明による通信方法は、パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に通信端末を制御する制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段から、受信したパケットに対応する処理を検索するステップと、前記検索した処理が通信端末を前記指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問い合わせ処理で指定された制御装置を宛先とする問い合わせを行うステップと、を含むことを特徴とする。
【００１５】
本発明によるプログラムは、パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶し、前記パケットに対する処理に通信端末を制御する制御装置のいずれかを指定して問い合わせを行う指定問い合わせ処理が含まれる第１の記憶手段から、受信したパケットに対応する処理を検索する処理と、前記検索した処理が通信端末を制御する制御装置の前記指定問い合わせ処理である場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記指定問い合わせ処理で指定された制御装置を宛先とする問い合わせを行う処理と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、スイッチや通信端末を制御するコントローラまたは制御装置が複数存在する場合であっても、複数のコントローラまたは制御装置によって、スイッチや通信端末を制御することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態による通信装置の構成例を示す図である。
【図２】第１の実施形態による動作例を示すフローチャートである。
【図３】第２の実施形態による通信システムの構成例を示す図である。
【図４】第２の実施形態によるスイッチの構成例を示す図である。
【図５】第２の実施形態によるスイッチの構成例を示す図である。
【図６】第２の実施形態によるフローテーブルの構成例を示す図である。
【図７】第２の実施形態によるエントリ編集コマンドの例を示す図である。
【図８】第２の実施形態によるスイッチの構成例を示す図である。
【図９】第２の実施形態によるエントリ付加情報の例を示す図である。
【図１０】第２の実施形態による動作例を示すフローチャートである。
【図１１】第２の実施形態による動作例を示すフローチャートである。
【図１２】第２の実施形態による動作例を示すフローチャートである。
【図１３】第２の実施形態による動作例を示すフローチャートである。
【図１４】第３の実施形態によるスイッチの構成例を示す図である。
【図１５】第３の実施形態によるフローテーブルの構成例を示す図である。
【図１６】第３の実施形態による動作例を示すフローチャートである。
【図１７】第４の実施形態によるスイッチの構成例を示す図である。
【図１８】第４の実施形態によるコントローラフローテーブルの構成例を示す図である。
【図１９】第４の実施形態による動作例を示すフローチャートである。
【図２０】第４の実施形態による動作例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００１９】
［第１の実施形態］
［構成］
図１は、本発明の第１の実施形態による通信装置１０００の構成例を示している。図１によれば、通信装置１０００は、記憶手段１００１と、検索手段１００２と、問い合わせ手段１００３と、を含む。また、通信装置１０００は、図示されていない制御装置と接続しているものとする。さらに、通信装置１０００は、制御装置によって制御されている。
【００２０】
記憶手段１００１は、パケットを識別する情報と、パケットに対する処理とを対応付けて記憶する。
【００２１】
検索手段１００２は、パケットを受信した場合に、受信パケットに対応する処理を記憶手段１００１から検索する。
【００２２】
問い合わせ手段１００３は、検索手段１００２が検索した処理が、制御装置に対する問い合わせであった場合に、以下の動作を行う。問い合わせ手段１００３は、まず、受信パケットに対応する記憶手段１００１のエントリに基づいて、問い合わせを行う制御装置を決定する。続いて、問い合わせ手段１００３は、決定した制御装置を宛先として、問い合わせを行う。
【００２３】
［動作］
以下、図２のフローチャートを用いて第１の実施形態の動作について説明する。
【００２４】
まず、検索手段１００２は、受信パケットに対応する処理を記憶手段１００１から検索する（Ｓ１００１）。
【００２５】
次に、問い合わせ手段１００３は、検索手段１００２が検索した処理が、制御装置に対する問い合わせであった場合に、受信パケットに対応する記憶手段１００１のエントリに基づいて、問い合わせを行う制御装置を決定する（Ｓ１００２）。
【００２６】
続いて、問い合わせ手段１００３は、Ｓ１００２で決定した制御装置を宛先として、問い合わせを行う（Ｓ１００３）。
【００２７】
以上の通り、第１の実施形態では、通信装置１０００が記憶手段１００１、検索手段１００２、問い合わせ手段１００３を有するとして説明した。しかしながら、上記の各手段は、通信装置に限らず、通信端末など、その他の通信機器が備えていても良い。
【００２８】
［効果］
以上説明した通り、第１の実施形態によれば、通信装置は、受信パケットの処理問い合わせ先の制御装置を決定して、問い合わせを行っている。その結果、問い合わせを受けた制御装置は、受信パケットに対する処理を決定することができる。従って、第１の実施形態によれば、通信装置を制御する制御装置が複数存在する場合であっても、受信パケットを制御する制御装置を１つに決定することができるため、複数の制御装置による通信装置の制御が可能となる。
【００２９】
［第２の実施形態］
［構成］
図３は、第２の実施形態における通信システム１の構成例を示す図である。通信システム１は、図示されていないネットワークに接続された複数のコントローラ１１と、複数のスイッチ１２を備えている。図３の例では、コントローラ１１は、コントローラ１１−Ａ、コントローラ１１−Ｂ、コントローラ１１−Ｃ、コントローラ１１−Ｄの４個存在する。以降、特に区別する必要のない限りは、この４個のコントローラをコントローラ１１と呼称する。
【００３０】
スイッチ１２は、制御パスによって複数のコントローラ１１と接続される。コントローラ１１は、コントローラ１１が制御するスイッチ１２と接続され、制御メッセージのやり取りを行う。
【００３１】
図３の例では、スイッチ１２は２個存在し、それぞれがコントローラ１１−Ａとコントローラ１１−Ｂに接続している。また、図３のコントローラ１１−Ｃからコントローラ１１−Ａと、コントローラ１１−Ｄからコントローラ１１−Ｂの２区間は、破線矢印で接続関係が示されている。これは、あるコントローラが、他のコントローラが制御する通信範囲を制限できても良いことを示している。
【００３２】
図４は、スイッチ１２の構成例を示している。図４によれば、スイッチ１２は、制御通信手段１２１と、フローテーブル管理手段１２２と、フロー識別手段１２３と、データ処理手段１２４と、フローテーブル１２５を備える。
【００３３】
制御通信手段１２１は、コントローラ１１と、フローテーブル管理手段１２２と、フロー識別手段１２３と接続される。制御通信手段１２１は、コントローラ１１から制御メッセージを受け取ると、フローテーブル管理手段１２２に制御指示を送る。フローテーブル管理手段１２２が制御結果を返すと、制御通信手段１２１は、必要に応じてコントローラ１１に制御メッセージを送る。
【００３４】
図５は、制御通信手段１２１の構成例を示した図である。図５によれば、制御通信手段１２１は、コントローラ指定処理問い合わせ手段１２１１を備える。
【００３５】
コントローラ指定処理問い合わせ手段１２１１は、パケットの処理内容の問い合わせとコントローラの指定を受け、コントローラへ処理の問い合わせを行う。
【００３６】
フローテーブル管理手段１２２は、フローテーブル１２５に記載された情報を管理する。このフローテーブル管理手段１２２については、後に詳しく説明する。
【００３７】
フロー識別手段１２３は、データ処理手段１２４に到着したパケットの属するフローを識別する。フロー識別手段１２３は、フローテーブル１２５と接続されている。また、フロー識別手段１２３は、識別したフローに対する処理をフローテーブル１２５から検索する。
【００３８】
フローテーブル１２５は、フローの処理内容を記憶する。フローテーブル１２５の構成は、例えば図６のようなものである。フローテーブル１２５のエントリには、少なくとも優先度、マッチングルール、アクションが含まれる。優先度のａ、ｋ、ｎ、ｍは自然数であり、大小関係は、ｋ＜ｎ＜ｍ＜ａであるとする。従って、図６の例では、優先度の降順にエントリが並べられている。マッチングルールには、背景技術の項で述べた通り、ＩＰアドレスやＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス等のタプルが記憶されている。アクションには、マッチングルールに適合したパケットをどのように処理するかが記載されている。
【００３９】
第２の実施形態では、マッチングルールに適合したパケットに対して、コントローラを指定して処理を問い合わせるというアクションを登録することができる。例えば、フローＡに属するパケットに対しては、コントローラＡに処理の問い合わせを行い、フローＣに属するパケットに対しては、コントローラＢに処理の問い合わせを行う。これにより、例えば、スイッチ１２がフローＡに属するパケットを受信した場合には、コントローラＡに処理を問い合わせるので、コントローラＡはフローＡに対する操作権限を得ることになる。なお、アクションとしては、背景技術で述べた処理を登録することも可能である。例えば、フローＢに属するパケットに対しては、指定のポートへ転送するという処理が行われる。
【００４０】
データ処理手段１２４は、スイッチ１２が接続する他のスイッチ等から、パケットを受信する。データ処理手段１２４は、パケットを受信すると、パケットの一部分、全部、またはコピーをフロー識別手段１２３に送信する。フロー識別手段１２３は、フローテーブル１２５のエントリとのマッチングを行うことでフローの識別を行い、アクションを出力する。データ処理手段１２４は、マッチしたエントリのアクションを受信し、パケットの処理を行う。
【００４１】
コントローラ１１が、スイッチ１２のフローテーブル１２５のエントリに操作権限を設定する方法について以下に説明する。コントローラ１１は、フローテーブル１２５のエントリの操作をスイッチ１２に指示する制御メッセージの付加情報として、操作権限情報を記述する。もしくは、コントローラ１１は、制御メッセージとは別に、操作権限を指定する特別なメッセージをスイッチ１２に送信しても良い。
【００４２】
図７は、コントローラ１１からスイッチ１２に送信されるエントリ編集コマンドの一例を示したものである。図７のエントリは、優先度はａ、マッチングルールがフローＡのパケットに対して、アクションとしてコントローラＡに処理を問い合わせることを規定している。コントローラ１１は、スイッチ１２に図７のエントリを送信して、スイッチ１２のフローテーブル１２５に図７のエントリを設定させる。また、「Ｏｔｈｅｒｓ：ＲｅａｄＯｎｌｙ」の項は、図７のエントリの操作権限を示している。操作権限のターゲットは、コントローラＡ、Ｂ等、個別で指定できても良いし、コントローラのグループで指定できても良い。また、権限を指定するコントローラと他のコントローラの関係を利用したマクロで指定できても良い。図７の例では、権限を指定するコントローラ以外のコントローラからは、読み込みのみ許可することを指定している。図７のエントリ編集コマンドは、その操作権限をコントローラＡに与えるものであるので、「Ｏｔｈｅｒｓ：ＲｅａｄＯｎｌｙ」は、コントローラＡ以外のコントローラは読み込みのみ許可されることを示している。
【００４３】
次に、フローテーブル管理手段１２２について説明する。図８に示すように、フローテーブル管理手段１２２は、権限管理・判定手段１２２１と、エントリ付加情報記憶手段１２２２と、フローテーブル操作手段１２２３を備える。
【００４４】
まず、権限管理・判定手段１２２１は、エントリ操作権限管理・判定手段１２２１１とフロー範囲判定手段１２２１２を備える。エントリ操作権限管理・判定手段１２２１１は、制御通信手段１２１、フロー範囲判定手段１２２１２、エントリ付加情報記憶手段１２２２、フローテーブル操作手段１２２３と接続される。また、フロー範囲判定手段１２２１２は、フローテーブル操作手段１２２３と接続される。さらに、エントリ付加情報記憶手段１２２２はフローテーブル操作手段１２２３と接続される。フローテーブル操作手段１２２３は、フローテーブル１２５と接続される。
【００４５】
権限管理・判定手段１２２１は、図７に示したようなコントローラ１１からのエントリの操作要求に対して権限の判定を行い、判定結果に従って処理を行う。
【００４６】
エントリ付加情報記憶手段１２２２には、フローテーブル１２５のエントリに対応する権限情報が記憶されている。権限情報としては、例えば、コントローラごとに一意に定まるパーミッションと、所有者情報などが含まれる。
【００４７】
エントリ操作権限管理・判定手段１２２１１は、エントリの操作権限を管理するとともに、コントローラ１１からのエントリに対する操作要求に対して操作の可否を判定する。エントリ操作権限管理・判定手段１２２１１は、エントリ操作権限指示手段１１２からフローテーブル１２５のエントリに、制御通信手段１２１を通して操作権限が設定されるとき、エントリ付加情報記憶手段１２２２に操作権限の情報を記憶する。制御通信手段１２１を通してコントローラ１１がエントリを参照・編集するときは、エントリ操作権限管理・判定手段１２２１１は、エントリ付加情報記憶手段１２２２の操作権限情報を参照する。さらに、エントリ操作権限管理・判定手段１２２１１は、エントリの編集がマッチングルールの変更を含むときはフロー範囲判定手段１２２１２に問い合わせ、返された判定結果を含めて、操作の可否を判定する。
【００４８】
フロー範囲判定手段１２２１２は、コントローラ１１がエントリを登録する際に、コントローラ１１による制御の可否を判定する。具体的には、制御を許可されているフロー範囲内に、コントローラ１１が制御を要求する範囲が収まっているかを判定する。許可するフロー範囲は、例えば、そのコントローラに問い合わせるアクションを持つエントリのマッチングルールの和集合とすることが考えられる。また、無効化するフロー範囲は、その他のコントローラに問い合わせるアクションを持つ、許可範囲の根拠になったエントリよりも高い優先度のマッチングルールとすることが考えられる。
【００４９】
図９は、フローテーブル１２５のエントリと、エントリ付加情報記憶手段１２２３に対応して記憶されているエントリ付加情報の一例を示したものである。図９を用いて、フロー範囲判定手段１２２１２で行う判断の一例を示す。まず、フローテーブルの一列目は優先度、二列目はマッチングルール、三列目はアクションを示している。また、エントリ付加情報の一列目はフローテーブル１２５の対応するエントリの操作権限、二列目は対応するエントリの所有者を示している。図９の例でも、図６と同様に、優先度の降順にエントリが並べられている。図９の例では、コントローラＡは、コントローラＢが通信を制御するフローの範囲を制限するものとする。アクションの列の「コントローラ：Ａ」は、スイッチ１２が、フローＡにマッチするパケットを受信した場合に、コントローラＡに対して処理を問い合わせることを意味する。このとき、コントローラＢが、フローＢというマッチングルールを持つエントリを登録できる条件は、２つある。まず１つは、フローＢが示すフローの範囲が、コントローラＢに問い合わせるアクションを持つコントローラＡのエントリのマッチングルールであるフローＣが示すフロー範囲に包含されることである。２つ目は、エントリの優先度の大小関係が、ａ−ｎ＜ａ−ｋ＜ａとなることである。
【００５０】
［動作］
図１０、図１１、図１２、図１３は、第２の実施形態における、通信システム１の動作を示すフローチャートである。以下、これらのフローチャートを用いて、第２の実施形態の動作について説明する。
【００５１】
図１０は、第２の実施形態において、スイッチ１２がパケットを受信した際の動作を示すフローチャートである。
【００５２】
まず、データ処理手段１２４は、ネットワーク上の図示しない他の通信装置からのパケットを受信する（Ｓ１１）。次に、フロー識別手段１２３は、受信パケットがフローテーブル１２５のエントリのマッチングルールにマッチするか否かを判断する（Ｓ１２）。
【００５３】
受信パケットにマッチするフローテーブル１２５のエントリが存在する場合、フロー識別手段１２３は、マッチしたエントリのアクションが、コントローラ指定の処理問い合わせであるか否かを判断する（Ｓ１３）。
【００５４】
マッチしたエントリのアクションが、コントローラ指定の処理問い合わせであると判断された場合、コントローラ指定処理問い合わせ手段１２１１は、指定されたコントローラに対する処理問い合わせを行う（Ｓ１４）。
【００５５】
コントローラ指定の処理問い合わせではないと判断された場合、データ処理手段１２４は、マッチしたエントリのアクションに従って、パケットを処理する（ステップＳ１６）。データ処理手段１２４は、例えば、受信パケットを他の通信装置に転送したり、受信パケットを破棄したりする。
【００５６】
Ｓ１２でパケットがフローテーブルのエントリのマッチングルールにマッチしないと判断された場合、制御通信手段１２１は、デフォルトとして設定されているコントローラに処理の問い合わせを行う（Ｓ１５）。
【００５７】
図１１および図１２は、スイッチ１２がコントローラ１１からエントリ編集コマンドを受信した際の動作を示すフローチャートである。
【００５８】
まず、制御通信手段１２１は、コントローラ１１からエントリ編集コマンドを受信する（Ｓ２１）。
【００５９】
続いて、フローテーブル管理手段１２２は、受信したコマンドが、フローテーブル１２５にエントリを追加するコマンドであるか否かを判断する（Ｓ２２）。
【００６０】
Ｓ２２において、受信したコマンドが、フローテーブルにエントリを追加するコマンドではないと判断された場合、Ｓ２３の動作が行われる。エントリ操作権限管理・判定手段１２２１１は、エントリ付加情報記憶手段１２２２に記憶されている権限情報を参照する（Ｓ２３）。その後、エントリ操作権限管理・判定手段１２２１１は、コマンドを送信したコントローラに編集対象のエントリへの要求操作が許可されているかを判断する（Ｓ２４）。
【００６１】
Ｓ２２において、エントリ編集コマンドが、フローテーブルにエントリを追加するコマンドであると判断された場合、Ｓ２６の処理を行う。Ｓ２６の処理については後述する。
【００６２】
Ｓ２４で、編集対象のエントリへの要求操作が許可されていると判断された場合、権限管理・判定手段１２２１は、Ｓ２５の処理を行う。権限管理・判定手段１２２１は、エントリ編集コマンドが、エントリの優先度またはマッチングルールを変更するコマンドであるか否かを判断する（Ｓ２５）。
【００６３】
また、Ｓ２４において、エントリ編集コマンドを送信したコントローラに編集対象のエントリへの要求操作が許可されていないと判断された場合、操作コマンドを拒否する（ステップＳ３０）。
【００６４】
Ｓ２５で、エントリの優先度またはマッチングルールを変更するコマンドであると判断された場合、フロー範囲判定手段１２２１２は、Ｓ２６の処理を行う。フロー範囲判定手段１２２１２は、エントリ編集コマンドで要求されている変更後のエントリの優先度やマッチングルールが、要求元のコントローラに許可されている範囲内であるか否かを判断する（Ｓ２６）。
【００６５】
Ｓ２６で、エントリ編集コマンドで要求されている変更後のエントリの優先度やマッチングルールが、コントローラに許可されている範囲内であると判断された場合、エントリ操作権限管理・判定手段１２２１１は、Ｓ２７の処理を行う。エントリ操作権限管理・判定手段１２２１１は、エントリ操作権限指定に新規追加があるか、もしくは変更があるか、または新規追加も変更もないかを判断する（Ｓ２７）。
【００６６】
Ｓ２７で、エントリ操作権限指定に新規追加または変更があると判断された場合、エントリ操作権限管理・判定手段１２２１１は、Ｓ２８の処理を行う。エントリ操作権限管理・判定手段１２２１１において、エントリ付加情報記憶手段１２２２のエントリ操作権限を編集する（ステップＳ２８）。その後、フローテーブル操作手段１２２３が、操作コマンドを実行する（ステップＳ２９）。また、Ｓ２７で、エントリ操作権限指定に新規追加または変更がないと判断された場合には、Ｓ２８の処理を飛ばして、Ｓ２９の処理が行われる。
【００６７】
コントローラ１１は、スイッチ１２の管理等のため、スイッチ１２に対してフローテーブルを参照するコマンドを送信することができる。以下、このコマンドをフローテーブル参照コマンドと呼ぶ。図１３は、スイッチ１２がコントローラ１１からフローテーブル参照コマンドを受信したときの動作を示すフローチャートである。
【００６８】
まず、スイッチ１２は、コントローラ１１から、制御通信手段１２１を介して、フローテーブル参照コマンドを受信する（Ｓ３１）。
【００６９】
次に、エントリ操作権限管理・判定手段１２２１１は、エントリ付加情報記憶手段１２２２に記憶されている権限情報を参照する（Ｓ３２）。
【００７０】
Ｓ３２の後、エントリ操作権限管理・判定手段１２２１１は、コマンド送信元のコントローラに参照権限があるエントリを抽出する（Ｓ３３）。
【００７１】
フローテーブル操作手段１２２３は、Ｓ３３で抽出したエントリをフローテーブル１２５から取得する（Ｓ３４）。
【００７２】
エントリ操作権限管理・判定手段１２２１１において、ステップＳ３２で抽出したエントリに対応するエントリ付加情報を、エントリ付加情報記憶部１２２２から取得する（Ｓ３５）。
【００７３】
次に、エントリ操作権限管理・判定手段１２２１１は、Ｓ３５で取得したエントリ付加情報を複製する（Ｓ３６）。
【００７４】
さらに、エントリ操作権限管理・判定手段１２２１１は、Ｓ３６で複製したエントリ付加情報の中の権限情報を、参照を要求するコントローラが持つ権限に変換する（Ｓ３７）。
【００７５】
最後に、制御通信手段１２１は、Ｓ３４で取得したエントリと、Ｓ３７で変換したエントリ付加情報を、参照を要求するコントローラ１１に送信する（Ｓ３８）。
【００７６】
［効果］
以上説明した通り、第２の実施形態における通信システム１は、フローテーブル１２５のエントリのアクションとして、コントローラ１１のうちいずれかを指定するアクションを用いている。これにより、フロー範囲ごとに、パケットの処理を問い合わせるコントローラを分けることが可能となる。その結果、例えば、ある特定のフローに対して制御するコントローラを１つに定めるような制御が可能になる。
【００７７】
また、スイッチ１２は、エントリごとにコントローラ１１の権限情報を保持して、フローテーブル１２５のエントリに対する操作を制限している。これにより、コントローラ１１が制御可能なフロー範囲を制限している。従って、異なるコントローラによる制御ポリシの意図しない上書きを防ぐことが可能になる。
【００７８】
以上の動作によって、スイッチ１２を、制御範囲と権限範囲を定め、複数のコントローラ１１から直接制御することが可能になる。従って、第２の実施形態によれば、スイッチ１２を制御するコントローラ１１が複数存在する場合であっても、受信パケットを制御するコントローラ１１を１つに決定することができるため、複数のコントローラ１１によるスイッチ１２の制御が可能となる。
【００７９】
［第３の実施形態］
［構成］
以下、本発明の第３の実施形態について説明する。第３の実施形態は、第２の実施形態と比較して、スイッチ１２のフローテーブル管理手段１２２と、フローテーブル２２５が変更されている。従って、以下では、フローテーブル管理手段１２２からの変更点に焦点を当てて説明し、第２の実施形態と同様の構成および動作については説明を省略する。
【００８０】
図１４は、第３の実施形態によるフローテーブル管理手段２２２を示すブロック図である。図１４によれば、フローテーブル管理手段２２２は、権限管理・判定手段２２２１と、フローテーブル操作手段１２２２を備える。権限管理・判定手段２２２１は、エントリ操作権限管理・判定手段２２２１１と、フロー範囲判定手段２２２１２を含む。エントリ操作権限管理・判定手段２２２１１は、制御通信手段１２１と、フロー範囲判定手段１２２１２と、フローテーブル操作手段１２２２と接続されている。
【００８１】
また、第２の実施形態のフローテーブル管理手段１２２と比較すると、エントリ付加情報記憶手段１２２２が削除されている。第３の実施形態では、フローテーブル２２５が、第２の実施形態のエントリ付加情報記憶手段１２２２が記憶していた情報を記憶している。図１５は、第３の実施形態によるフローテーブル２２５の一例を示している。図１５によれば、フローテーブル２２５には、第２の実施形態のフローテーブル１２５が記憶する情報に追加して、権限情報が記憶されている。
【００８２】
［動作］
第３の実施形態によるスイッチ１２では、コントローラ１１からエントリ編集コマンドを受信時の動作において、エントリ付加情報を参照または編集する必要がある場合には、フローテーブル２２５を参照または編集すれば良い。
【００８３】
図１６は、第３の実施形態によるスイッチ１２がフローテーブル参照コマンドを受信した場合の動作を示すフローチャートである。図１６に示す動作は、図１３の第２の実施形態の動作と比べて、Ｓ３４以降の動作に違いがある。なお、その他の第２の実施形態と同様の動作については、それぞれ図１３と同一の符号を付し、詳細な説明を省略する。
【００８４】
エントリ操作権限管理・判定手段２２２１１は、Ｓ３３とＳ３４によって取得されたエントリを複製する（Ｓ２３６）。
【００８５】
続いて、エントリ操作権限管理・判定手段２２２１１は、Ｓ２３６において複製したエントリが持つ権限情報を、参照を要求するコントローラが持つ権限に変換する（Ｓ２３７）。
【００８６】
最後に、制御通信手段１２１は、Ｓ２３７で変換したエントリを、参照を要求するコントローラ１１に通知する（Ｓ２３８）。
【００８７】
［効果］
第３の実施形態における通信システム１は、第２の実施形態の通信システム１と同様の効果を奏する。すなわち、第３の実施形態によるフローテーブル２２５のエントリのアクションとして、コントローラ１１のうちいずれかを指定するアクションを用いている。これにより、フロー範囲ごとに、パケットの処理を問い合わせるコントローラを分けることが可能となる。その結果、例えば、ある特定のフローに対して制御するコントローラを１つに定めるような制御が可能になる。
【００８８】
また、スイッチ１２は、エントリごとにコントローラ１１の権限情報を保持して、フローテーブル２２５のエントリに対する操作を制限している。これにより、コントローラ１１が制御可能なフロー範囲を制限している。従って、異なるコントローラによる制御ポリシの意図しない上書きを防ぐことが可能になる。
【００８９】
以上の動作によって、スイッチ１２を、制御範囲と権限範囲を定め、複数のコントローラ１１から直接制御することが可能になる。従って、第３の実施形態によれば、スイッチ１２を制御するコントローラ１１が複数存在する場合であっても、受信パケットを制御するコントローラ１１を１つに決定することができるため、複数のコントローラ１１によるスイッチ１２の制御が可能となる。
【００９０】
［第４の実施形態］
［構成］
図１７は、本発明の第４の実施形態によるスイッチ３２を示している。図１７に示されるように、第４の実施形態によるスイッチ３２は、制御通信手段３２１とフローテーブル管理手段３２２とフローテーブル３２５が、第２の実施形態と異なっている。なお、その他の構成要素は第２の実施形態および第３の実施形態と同様である。また、第２の実施形態と同様の構成要素については、図４、図５、図８と同一の符号を付し、詳細な説明を省略する。
【００９１】
第４の実施形態では、フローテーブル３２５には、コントローラを指定した処理問い合わせをアクションとして登録できなくても良い。フローテーブル３２５のアクションに、コントローラを指定した処理問い合わせを登録しない場合について、以下に説明する。
【００９２】
第４の実施形態では、制御通信手段３２１は、コントローラ指定処理問い合わせ手段１２１１と、処理問い合わせ先振り分け手段３２１２と、コントローラフローテーブル３２１３を備える。また、第４の実施形態では、第２の実施形態と比べて、フローテーブル管理手段３２２には、処理問い合わせ先管理手段３２２４が追加されている。
【００９３】
以下、第４の実施形態で新たに追加された要素について説明する。まず、処理問い合わせ先振り分け手段３２１２は、コントローラ１１へのパケットの処理内容の問い合わせに対して、どのコントローラに問い合わせるのかを選択する。また、処理問い合わせ先振り分け手段３２１２は、コントローラを指定していない処理問い合わせ指示を、コントローラを指定した処理問い合わせ指示に変換する。
【００９４】
図１８は、コントローラフローテーブル３２１３の一例を示している。図１８によれば、コントローラフローテーブル３２１３は、少なくとも優先度と、マッチングルールと、宛先と
なるコントローラの識別子をエントリとして持つ。コントローラの識別子は、コントローラに対して一意に定まるものであればどのようなものでも良い。
【００９５】
また、処理問い合わせ先管理手段３２２４は、処理問い合わせ先の振り分け基準を管理し、エントリのアクション部分を変換する。
【００９６】
［動作］
図１９、図２０は、本発明の第４の実施形態におけるスイッチ３２の動作を示すフローチャートである。第２の実施形態と同様の動作については、それぞれ図１０と同一の符号を付し、詳細な説明を省略する。
【００９７】
図１９は、スイッチ３２がパケットを受信した際の動作を示すフローチャートである。まず、スイッチ３２は、パケットを受信し、フローテーブルのエントリのマッチングルールにマッチするか否かを判断する（Ｓ１１、Ｓ１２）。
【００９８】
Ｓ１２で、受信パケットがフローテーブルのエントリのマッチングルールにマッチすると判断された場合、フロー識別手段１２３は、マッチしたマッチングルールのエントリのアクションが、コントローラへの処理問い合わせであるか否かを判断する（Ｓ１３）。
【００９９】
Ｓ１３で、マッチしたエントリのアクションが、コントローラへの処理問い合わせであると判断された場合、Ｓ３１７の処理が行われる。処理問い合わせ先振り分け手段３２１２は、受信パケットの処理を問い合わせるべきコントローラを、コントローラフローテーブル３２１３を参照して検索する（Ｓ３１７）。具体的には、処理問い合わせ先振り分け手段３２１２は、受信パケットがマッチしたマッチングルールに対応するコントローラフローテーブル３２１３のマッチングルールを有するエントリを検索する。処理問い合わせ先振り分け手段３２１２は、検索したエントリの宛先コントローラを、問い合わせ先として取得する。
【０１００】
次に、処理問い合わせ先振り分け手段３２１２が、宛先を指定しないコントローラへの処理問い合わせを、検索したコントローラを宛先として指定した処理問い合わせに変換する（Ｓ３１８）。
【０１０１】
その後、コントローラ指定処理問い合わせ手段１２１１は、指定されたコントローラに対する処理問い合わせを行う（Ｓ１４）。
【０１０２】
図２０は、スイッチ３２がコントローラ１１から処理問い合わせ先を指定するエントリの登録を指示されたときの動作を示すフローチャートである。第２の実施形態および第３の実施形態では、エントリの登録指示を受けた場合には、そのままフローテーブルに登録していたが、第４の実施形態では、コントローラフローテーブル３２１３への登録も必要となる。
【０１０３】
まず、制御通信手段３２１は、コントローラ１１から、処理の問い合わせ先を指定するエントリの登録指示を受信する（Ｓ３４１）。
【０１０４】
次に、権限管理・判定手段１２２１は、第２の実施形態と同様に、エントリの権限判定を行う（Ｓ３４２）。
【０１０５】
続いて、処理問い合わせ先管理手段３２２４は、コントローラフローテーブル３２１３に、マッチングルールをキー、コントローラの識別子をバリューとするエントリを登録し、エントリに優先度を付ける（Ｓ３４３）。
【０１０６】
さらに、処理問い合わせ先管理手段３２２４は、エントリ登録指示中のアクションを、コントローラを指定しない処理問い合わせに置換する（Ｓ３４４）。
【０１０７】
最後に、フローテーブル操作手段１２２３は、フローテーブル３２５にエントリを登録する（Ｓ３４５）。
【０１０８】
［効果］
第４の実施形態における通信システム１は、第２の実施形態および第３の実施形態の通信システム１と同様の効果を奏する。すなわち、第４の実施形態によるフローテーブル３２５のエントリ中の、コントローラに対する処理問い合わせのアクションに対して、スイッチ３２は、問い合わせの宛先となるコントローラがどれであるかをコントローラフローテーブル３２１３に記憶している。これにより、フロー範囲ごとに、パケットの処理を問い合わせるコントローラを分けることが可能となる。その結果、例えば、ある特定のフローに対して制御するコントローラを１つに定めるような制御が可能になる。
【０１０９】
また、スイッチ３２は、エントリごとにコントローラ１１の権限情報を保持して、フローテーブル３２５のエントリに対する操作を制限している。これにより、コントローラ１１が制御可能なフロー範囲を制限している。従って、異なるコントローラによる制御ポリシの意図しない上書きを防ぐことが可能になる。
【０１１０】
以上の動作によって、スイッチ３２を、制御範囲と権限範囲を定め、複数のコントローラ１１から直接制御することが可能になる。従って、第３の実施形態によれば、スイッチ３２を制御するコントローラ１１が複数存在する場合であっても、受信パケットを制御するコントローラ１１を１つに決定することができるため、複数のコントローラ１１によるスイッチ３２の制御が可能となる。
【０１１１】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１２】
上記の各実施形態のスイッチは、通信端末や、その他の通信機器類等に適宜適用することが可能であり、スイッチに限られるものではない。
【０１１３】
また、上記の実施形態では、オープンフローを適用したネットワークについて説明したが、これに限られるものではない。オープンフロー以外であっても、制御サーバ等がスイッチの集中管理を行うようなネットワークであれば、適用可能である。
【０１１４】
また、上記の実施形態によるスイッチ、またはスイッチと同等の機能を有する通信端末、もしくはその他の通信機器は、その有する機能をハードウェアで実現することも可能である。また、上記の実施形態によるスイッチ、またはスイッチと同等の機能を有する通信端末、もしくはその他の通信機器は、コンピュータと、コンピュータ上で実行されるプログラムとで実現することも可能である。プログラムは、磁気ディスクや半導体メモリ等の記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。このようにコンピュータの動作を制御し、コンピュータを上述の各実施形態におけるスイッチ、またはスイッチと同等の機能を有する通信端末や通信機器として機能させ、前述した処理を行わせる。
【０１１５】
さらに、上記の実施形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
【０１１６】
（付記１）
制御装置によって制御される通信端末であって、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段と、
を備えることを特徴とする通信端末。
【０１１７】
（付記２）
前記第１の記憶手段が記憶する前記パケットに対する処理は、前記制御装置のうち、いずれかを指定して前記パケットに対する処理の問い合わせを行うことを含むことを特徴とする付記１に記載の通信端末。
【０１１８】
（付記３）
前記通信端末は、さらに、
前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第２の記憶手段を備え、
前記問い合わせ手段は、前記問い合わせを行う制御装置を決定する場合に、前記第２の記憶手段を参照する
ことを特徴とする付記１に記載の通信端末。
【０１１９】
（付記４）
前記通信端末は、さらに、
前記エントリに対する権限を記憶する第３の記憶手段を備えることを特徴とする付記１から３のいずれか１つに記載の通信端末。
【０１２０】
（付記５）
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする付記１から３のいずれか１つに記載の通信端末。
【０１２１】
（付記６）
前記通信端末は、さらに、
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する権限判定手段を備えることを特徴とする付記４または５に記載の通信端末。
【０１２２】
（付記７）
前記権限判定手段は、前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする付記６に記載の通信端末。
【０１２３】
（付記８）
前記権限判定手段は、さらに、
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定することを特徴とする付記６または７に記載の通信端末。
【０１２４】
（付記９）
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段から、受信したパケットに対応する処理を検索するステップと、
前記検索した処理が、通信端末を制御する制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定するステップと、
前記決定した制御装置を宛先とする問い合わせを行うステップと、
を含むことを特徴とする通信方法。
【０１２５】
（付記１０）
前記第１の記憶手段が記憶する前記パケットに対する処理は、前記制御装置のうち、いずれかを指定して前記パケットに対する処理の問い合わせを行うことを含むことを特徴とする付記９に記載の通信方法。
【０１２６】
（付記１１）
前記問い合わせを行う制御装置を決定する場合に、前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第２の記憶手段を参照する
ことを特徴とする付記９に記載の通信方法。
【０１２７】
（付記１２）
前記エントリに対する権限を記憶することを特徴とする付記９から１１のいずれか１つに記載の通信方法。
【０１２８】
（付記１３）
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする付記９から１１のいずれか１つに記載の通信方法。
【０１２９】
（付記１４）
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定するステップを含むことを特徴とする付記１２または１３に記載の通信方法。
【０１３０】
（付記１５）
前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする付記１４に記載の通信方法。
【０１３１】
（付記１６）
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定するステップを含むことを特徴とする付記１４または１５に記載の通信方法。
【０１３２】
（付記１７）
パケットを識別する情報と前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段から、受信したパケットに対応する処理を検索する処理と、
前記検索した処理が、通信端末を制御する制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定する処理と、
前記決定した制御装置を宛先とする問い合わせを行う処理と、
をコンピュータに実行させることを特徴とするプログラム。
【０１３３】
（付記１８）
前記第１の記憶手段が記憶する前記パケットに対する処理は、前記制御装置のうち、いずれかを指定して前記パケットに対する処理の問い合わせを行うことを含むことを特徴とする付記１７に記載のプログラム。
【０１３４】
（付記１９）
前記問い合わせを行う制御装置を決定する場合に、前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第２の記憶手段を参照する
ことを特徴とする付記１８に記載のプログラム。
【０１３５】
（付記２０）
前記エントリに対する権限を記憶することを特徴とする付記１７から１９のいずれか１つに記載のプログラム。
【０１３６】
（付記２１）
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする付記１７から１９のいずれか１つに記載のプログラム。
【０１３７】
（付記２２）
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する処理を含むことを特徴とする付記２０または２１に記載のプログラム。
【０１３８】
（付記２３）
前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする付記２２に記載のプログラム。
【０１３９】
（付記２４）
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定する処理を含むことを特徴とする付記２２または２３に記載のプログラム。
【０１４０】
（付記２５）
制御装置によって制御されるスイッチであって、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段と、
を備えることを特徴とするスイッチ。
【０１４１】
（付記２６）
前記第１の記憶手段が記憶する前記パケットに対する処理は、前記制御装置のうち、いずれかを指定して前記パケットに対する処理の問い合わせを行うことを含むことを特徴とする付記２５に記載のスイッチ。
【０１４２】
（付記２７）
前記スイッチは、さらに、
前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第２の記憶手段を備え、
前記問い合わせ手段は、前記問い合わせを行う制御装置を決定する場合に、前記第２の記憶手段を参照する
ことを特徴とする付記２５に記載のスイッチ。
【０１４３】
（付記２８）
前記スイッチは、さらに、
前記エントリに対する権限を記憶する第３の記憶手段を備えることを特徴とする付記２５から２７のいずれか１つに記載のスイッチ。
【０１４４】
（付記２９）
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする付記２５から２８のいずれか１つに記載のスイッチ。
【０１４５】
（付記３０）
前記スイッチは、さらに、
前記制御装置から前記エントリの編集要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する権限判定手段を備えることを特徴とする付記２８または２９に記載のスイッチ。
【０１４６】
（付記３１）
前記権限判定手段は、前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする付記３０に記載のスイッチ。
【０１４７】
（付記３２）
前記権限判定手段は、さらに、
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定することを特徴とする付記３０または３１に記載のスイッチ。
【０１４８】
（付記３３）
制御装置と、
前記制御装置によって制御される通信端末と、
を備える通信システムであって、
前記通信端末は、
パケットを識別する情報と、前記パケットに対する処理とを対応付けてエントリとして記憶する第１の記憶手段と、
受信したパケットに対応する処理を前記第１の記憶手段から検索する検索手段と、
前記検索した処理が、前記制御装置に対する問い合わせである場合に、前記受信したパケットに対応する前記第１の記憶手段が記憶する前記エントリに基づいて、前記問い合わせを行う制御装置を決定し、前記決定した制御装置を宛先とする問い合わせを行う問い合わせ手段と、
を備えることを特徴とする通信システム。
【０１４９】
（付記３４）
前記第１の記憶手段が記憶する前記パケットに対する処理は、前記制御装置のうち、いずれかを指定して前記パケットに対する処理の問い合わせを行うことを含むことを特徴とする付記３３に記載の通信システム。
【０１５０】
（付記３５）
前記通信端末は、さらに、
前記第１の記憶手段が記憶するエントリに対応する前記制御装置を記憶する第２の記憶手段を備え、
前記問い合わせ手段は、前記問い合わせを行う制御装置を決定する場合に、前記第２の記憶手段を参照する
ことを特徴とする付記３３に記載の通信システム。
【０１５１】
（付記３６）
前記通信端末は、さらに、
前記エントリに対する権限を記憶する第３の記憶手段を備えることを特徴とする付記３３から３５のいずれか１つに記載の通信システム。
【０１５２】
（付記３７）
前記第１の記憶手段は、さらに、前記エントリに対する権限を前記エントリに対応付けて記憶することを特徴とする付記３３から３６のいずれか１つに記載の通信システム。
【０１５３】
（付記３８）
前記通信端末は、さらに、
前記制御装置から前記エントリの参照 要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの編集の可否を判定する権限判定手段を備えることを特徴とする付記３６または３７に記載の通信システム。
【０１５４】
（付記３９）
前記権限判定手段は、前記エントリの優先度または前記パケットを識別する情報の少なくとも１つに基づいて前記制御装置による前記エントリの編集の可否を判定することを特徴とする付記３８に記載の通信システム。
【０１５５】
（付記４０）
前記権限判定手段は、さらに、
前記制御装置から前記エントリの参照要求を受けた場合に、前記エントリに対する権限を参照して、前記制御装置による前記エントリの参照の可否を判定することを特徴とする付記３８または３９に記載の通信システム。
【０１５６】
以上、例示的な実施形態を参照して本発明を説明したが、本発明はこれら実施形態に限定されるものではない。当業者によって理解されるように、本願特許請求の範囲により定義される本発明の思想および範囲から逸脱することなく形式および詳細について種々の変更を行うことは可能である。
本願は、２０１１年９月２２日出願の日本国特許出願番号２０１１−２０７６５９号に基づく優先権を主張し、それに基づいてなされたものであり、その開示された事項の全ては本願明細書に含まれる。
【符号の説明】
【０１５７】
１    通信システム
１１    コントローラ
１２、３２    スイッチ
１２１、３２１    制御通信手段
１２２、２２２、３２２    フローテーブル管理手段
１２３    フロー識別手段
１２４    データ処理手段
１２５、２２５、３２５    フローテーブル
１２１１    コントローラ指定処理問い合わせ手段
１２２１、２２２１    権限管理・判定手段
１２２２    エントリ付加情報記憶手段
１２２３    フローテーブル操作手段
３２１２    処理問い合わせ先振り分け手段
３２１３    コントローラフローテーブル
３２２４    処理問い合わせ先管理手段
１２２１１、２２２１１    エントリ操作権限管理・判定手段
１２２１２、２２２１２    フロー範囲判定手段
【図１】
0006036816.tif 000002
【図２】
0006036816.tif 000003
【図３】
0006036816.tif 000004
【図４】
0006036816.tif 000005
【図５】
0006036816.tif 000006
【図６】
0006036816.tif 000007
【図７】
0006036816.tif 000008
【図８】
0006036816.tif 000009
【図９】
0006036816.tif 000010
【図１０】
0006036816.tif 000011
【図１１】
0006036816.tif 000012
【図１２】
0006036816.tif 000013
【図１３】
0006036816.tif 000014
【図１４】
0006036816.tif 000015
【図１５】
0006036816.tif 000016
【図１６】
0006036816.tif 000017
【図１７】
0006036816.tif 000018
【図１８】
0006036816.tif 000019
【図１９】
0006036816.tif 000020
【図２０】
0006036816.tif 000021