(57)【要約】  パケット処理装置が記憶する処理規則の数を削減することができる制御装置を提供する。フロー識別情報作成手段９１は、フローを識別するためのフロー識別情報を作成する。処理規則作成手段９２は、フローのパケットに対する処理方法を定め、フロー識別情報および処理方法を含む処理規則を作成する。集約手段９３は、そのフローの処理規則と、他のフローの処理規則とを集約できる場合に、そのフローの処理規則と、他のフローの処理規則とを集約する。
2015136585.tif 000002
【特許請求の範囲】
【請求項１】
パケットを処理するパケット処理装置を制御する制御装置であって、
フローを識別するためのフロー識別情報を作成するフロー識別情報作成手段と、
前記フローのパケットに対する処理方法を定め、前記フロー識別情報および前記処理方法を含む処理規則を作成する処理規則作成手段と、
前記フローの処理規則と、他のフローの処理規則とを集約できる場合に、前記フローの処理規則と、前記他のフローの処理規則とを集約する集約手段と、
処理規則をパケット処理装置に通知する通知手段とを備える
ことを特徴とする制御装置。
【請求項２】
集約手段は、
別々のフローの処理規則に含まれる処理方法が同一である場合に、前記別々のフローの処理規則を集約できると判定する
請求項１に記載の制御装置。
【請求項３】
集約手段は、
別々のフローの処理規則に含まれる処理方法が同一である場合に、前記別々のフローの処理規則を集約できると判定し、前記別々のフローのそれぞれに合致するフロー識別情報を定め、当該フロー情報と前記処理方法とを含む処理規則を作成することによって、処理規則を集約する
請求項１または請求項２に記載の制御装置。
【請求項４】
フロー識別情報作成手段は、
フローのグループを識別するフロー識別情報を定め、
集約手段は、
新たに生じたフローが、既に処理規則が作成されたフローと同一のグループに属するフローである場合、前記処理規則を、前記新たに生じたフローの処理規則としても用いることによって、別々のフローの処理規則を集約する
請求項１に記載の制御装置。
【請求項５】
パケットを処理するパケット処理装置を制御する制御方法であって、
フローを識別するためのフロー識別情報を作成し、
前記フローのパケットに対する処理方法を定め、前記フロー識別情報および前記処理方法を含む処理規則を作成し、
前記フローの処理規則と、他のフローの処理規則とを集約できる場合に、前記フローの処理規則と、前記他のフローの処理規則とを集約し、
処理規則をパケット処理装置に通知する
ことを特徴とする制御方法。
【請求項６】
パケットを処理するパケット処理装置を制御するコンピュータに搭載される制御プログラムであって、
前記コンピュータに、
フローを識別するためのフロー識別情報を作成するフロー識別情報作成処理、
前記フローのパケットに対する処理方法を定め、前記フロー識別情報および前記処理方法を含む処理規則を作成する処理規則作成処理、
前記フローの処理規則と、他のフローの処理規則とを集約できる場合に、前記フローの処理規則と、前記他のフローの処理規則とを集約する集約処理、および、
処理規則をパケット処理装置に通知する通知処理
を実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットを処理するパケット処理装置を制御する制御装置、制御方法および制御プログラムに関する。
【背景技術】
【０００２】
オープンフロー（OpenFlow）という技術が提案されている（非特許文献１参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。パケット処理装置として機能するオープンフロースイッチは、経路制御装置として位置付けられるオープンフローコントローラとのセキュアチャネルを備える。そして、オープンフロースイッチは、オープンフローコントローラから適宜、追加されたり、書き換え指示されたりするフローエントリに従って動作する。フローエントリは、フロー毎にパケットに対する処理を定めた情報である。フローエントリを格納するオープンフロースイッチ内のテーブルをフローテーブルと呼ぶ。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“OpenFlow Switch Specification Version 1.0.0 (Wire Protocol 0x01)”、２００９年１２月３１日、［平成２６年３月１０日検索］、インターネット<http://www.openflow.org/documents/openflow-spec-v1.0.0.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワーク規模が大きくなると、フローテーブル内のフローエントリの数が増加する。しかし、パケット処理装置が保持できるフローエントリ数には限りがある。【０００５】
フローを識別するための識別情報と、その識別情報に合致するフローのパケットに対する処理方法とのセットを処理規則と記す。オープンフローにおけるフローエントリも、処理規則に該当する。【０００６】
本発明は、パケット処理装置が記憶する処理規則の数を削減することができる制御装置、制御方法および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明による制御装置は、パケットを処理するパケット処理装置を制御する制御装置であって、フローを識別するためのフロー識別情報を作成するフロー識別情報作成手段と、フローのパケットに対する処理方法を定め、フロー識別情報および処理方法を含む処理規則を作成する処理規則作成手段と、そのフローの処理規則と、他のフローの処理規則とを集約できる場合に、そのフローの処理規則と、他のフローの処理規則とを集約する集約手段と、処理規則をパケット処理装置に通知する通知手段とを備えることを特徴とする。【０００８】
また、本発明による制御方法は、パケットを処理するパケット処理装置を制御する制御方法であって、フローを識別するためのフロー識別情報を作成し、フローのパケットに対する処理方法を定め、フロー識別情報および処理方法を含む処理規則を作成し、そのフローの処理規則と、他のフローの処理規則とを集約できる場合に、そのフローの処理規則と、他のフローの処理規則とを集約し、処理規則をパケット処理装置に通知することを特徴とする。【０００９】
また、本発明による制御プログラムは、パケットを処理するパケット処理装置を制御するコンピュータに搭載される制御プログラムであって、コンピュータに、フローを識別するためのフロー識別情報を作成するフロー識別情報作成処理、フローのパケットに対する処理方法を定め、フロー識別情報および処理方法を含む処理規則を作成する処理規則作成処理、そのフローの処理規則と、他のフローの処理規則とを集約できる場合に、そのフローの処理規則と、他のフローの処理規則とを集約する集約処理、および、処理規則をパケット処理装置に通知する通知処理を実行させることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、パケット処理装置が記憶する処理規則の数を削減することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の制御装置の例を示すブロック図である。
【図２】処理規則を示す模式図である。
【図３】フローの例を示す模式図である。
【図４】制御装置の処理経過の例を示すフローチャートである。
【図５】管理ＤＢ記憶部に登録される処理規則を示す模式図である。
【図６】管理ＤＢ記憶部に登録される処理規則を示す模式図である。
【図７】パケット処理装置の例を示すブロック図である。
【図８】制御装置によって制御されるパケット処理装置の例を示す模式図である。
【図９】複数のフローの処理規則を集約した処理規則を作成可能か否かの判定処理の処理経過の例を示すフローチャートである。
【図１０】管理ＤＢ記憶部に登録される処理規則を示す説明図である。
【図１１】管理ＤＢ記憶部に登録される処理規則を示す説明図である。
【図１２】管理ＤＢ記憶部に登録される処理規則を示す説明図である。
【図１３】制御装置によって制御されるパケット処理装置の例を示す模式図である。
【図１４】管理ＤＢ記憶部に登録される処理規則を示す説明図である。
【図１５】管理ＤＢ記憶部に登録される処理規則を示す説明図である。
【図１６】管理ＤＢ記憶部に登録される処理規則を示す説明図である。
【図１７】本発明の制御装置の概要を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面を参照して説明する。以下に示す各実施形態は例示であり、本発明は、各実施形態に限定されるものではない。
【００１３】
実施形態１．
図１は、本発明の制御装置の例を示すブロック図である。本発明の制御装置１は、制御部１０と、処理規則粒度決定部１１と、管理データベース（以下、単にＤＢと記す。）記憶部１２とを備える。
【００１４】
制御装置１は、パケットを処理するパケット処理装置（図１において図示略）を制御する。パケット処理装置は、複数存在し、その複数のパケット処理装置でネットワークが形成される。制御装置１は、パケット処理装置に処理規則を通知することによって、パケット処理装置を制御する。
【００１５】
図２は、処理規則を示す模式図である。既に説明したように、処理規則は、フローを識別するための識別情報（以下、識別規則と記す。）と、その識別規則に合致するフローのパケットに対する処理方法とのセットである（図２参照）。パケット処理装置は、パケットを受信したときに、そのパケットのフローに対応する処理規則を検索し、その処理規則を検索できなかった場合に、制御装置１に対して処理規則の問い合わせを行う。制御装置１は、この問い合わせを受けると、そのパケットを転送すべき各パケット処理装置に対して処理規則を通知する。この結果、パケットはパケット処理装置によって、順次、転送される。
【００１６】
制御装置１がパケット処理装置を制御するプロトコルはオープンフロープロトコルであってもよい。その場合、処理規則は、オープンフローにおけるフローエントリに該当する。また、制御装置１がパケット処理装置を制御するプロトコルはオープンフロープロトコル以外であってもよい。
【００１７】
制御部１０は、パケット処理装置からの処理規則の問い合わせを受信する。
【００１８】
処理規則粒度決定部１１は、パケット処理装置からの処理規則の問い合わせに対して、処理規則の粒度を決定し、その粒度の処理規則をパケット処理装置に通知する。処理規則粒度決定部１１には、制御ポリシが入力される。制御ポリシは、フローが通過する各パケット処理装置でのパケットの処理方法をフロー毎に定めた情報である。処理規則粒度決定部１１は、制御ポリシに従って、フローが通過する各パケット処理装置でのパケットの処理方法を決定する。そして、１つのパケット処理装置に関して、処理方法が同一であって、異なるフローに対応する処理規則が存在する場合には、それらのフローに対応する処理規則を、それらの複数のフローに対応する１つの処理規則に集約する（換言すれば、纏める）。なお、本実施形態では、外部から制御ポリシが入力される場合を例にして説明するが、制御装置１が内部に制御ポリシを保持していてもよい。
【００１９】
管理ＤＢ記憶部１２は、パケット処理装置に通知する処理規則を記憶する記憶装置である。管理ＤＢ記憶部１２が記憶する処理規則は、パケット処理装置からの処理規則の問い合わせが新たに発生することによって更新され得る。
【００２０】
制御部１０および処理規則粒度決定部１１は、例えば、制御プログラムに従って動作するコンピュータのＣＰＵによって実現される、この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図示略）等のプログラム記録媒体から制御プログラムを読み込み、その制御プログラムに従って、制御部１０および処理規則粒度決定部１１として動作すればよい。また、制御部１０および処理規則粒度決定部１１が別々のハードウェアで実現されていてもよい。
【００２１】
図３は、フローの例を示す模式図である。以下、３台のパケット処理装置２ａ，２ｂ，２ｃが存在する場合を例にして説明する。各パケット処理装置２ａ，２ｂ，２ｃを特に区別しない場合には、単に、「パケット処理装置２」と記す。なお、パケット処理装置２の台数は３台に限定されない。また、図３は、３つのフローＡ〜Ｃがそれぞれ、各パケット処理装置２ａ，２ｂ，２ｃを通過する場合を例示している。フローＡのパケットに対する処理方法、および、フローＣのパケットに対する処理方法として、同一の処理方法が制御ポリシで定められているものとする。以下、この処理方法を処理方法（１）と記す。また、フローＢのパケットに対する処理方法として、処理方法（２）が制御ポリシで定められているものとする。また、図３に示す例において、フローＡ、フローＢ、フローＣの順にフローが発生するものとする。
【００２２】
図４は、制御装置１の処理経過の例を示すフローチャートである。パケット処理装置２ａは、フローＡのパケットを受信すると、パケット処理装置２ａが記憶している処理規則の中から、フローＡに対応する処理規則を検索する。パケット処理装置２ａは、フローＡに対応する処理規則を記憶してない場合、制御装置１に対して処理規則の問い合わせ（本例では、フローＡのパケットに対する処理方法の問い合わせ）を送信する。このとき、パケット処理装置２ａは、そのパケット（本例では、フローＡのパケット）も制御装置１に送信する。制御装置１の制御部１０は、処理規則の問い合わせ、およびパケットを受信する（ステップＳ５１）。すると、処理規則粒度決定部１１は、そのパケットに基づいて、フローＡを識別する識別規則を作成する（ステップＳ５２）。例えば、処理規則粒度決定部１１は、受信したパケットのヘッダフィールドの情報等を組み合わせて識別規則を作成する。
【００２３】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フローＡに対応する処理方法を、フローＡが通過するパケット処理装置毎に定める。この処理方法と、ステップＳＳ５２で作成された識別規則により、フローＡが通過するパケット処理装置毎の処理規則が定まる。そして、処理規則粒度決定部１１は、このフローＡに対応する処理規則と他のフローに対応する処理規則とを集約した処理規則を作成可能か否かを判定する（ステップＳ５３）。処理規則粒度決定部１１は、複数のフローの制御ポリシが同一である場合、その複数のフローの処理規則を集約した処理規則を作成可能であると判定する。より具体的には、処理規則粒度決定部１１は、処理方法が同一であって、異なるフローに対応する処理規則が存在する場合には、それらの複数のフローに対応する処理規則を集約することができると判定し、異なるフローに対応する処理規則を１つの処理規則に集約する。処理規則粒度決定部１１は、この判定をパケット処理装置２毎に行う。本例では、フローＡに対する処理規則しか作成されていないので、処理規則粒度決定部１１は、複数のフローに対応する処理規則を１つの処理規則に集約することができないと判定する。
【００２４】
ステップＳ５３の後、処理規則粒度決定部１１は、ステップＳ５３で得られた処理規則を管理ＤＢ記憶部１２に登録する（ステップＳ５４）。本例では、フローＡが通過するパケット処理装置毎に得られたフローＡに対する処理規則をそれぞれ管理ＤＢ記憶部１２に登録する。
【００２５】
次に、処理規則粒度決定部１１は、ステップＳ５４で登録したパケット処理装置２毎の各処理規則（本例では、フローＡが通過するパケット処理装置毎に得られたフローＡに対する処理規則）を、対応するパケット処理装置２に通知する（ステップＳ５５）。
【００２６】
次に、フローＢが発生し、パケット処理装置２ａがフローＢのパケットを受信したとする。そして、パケット処理装置２ａは、フローＢに対応する処理規則を記憶しておらず、制御装置１に対して処理規則の問い合わせ（本例では、フローＢのパケットに対する処理方法の問い合わせ）を送信するものとする。このとき、パケット処理装置２ａは、そのパケット（本例では、フローＢのパケット）も制御装置１に送信する。制御装置１は、この問い合わせを受信し、前述の図４に示す動作を行う。
【００２７】
すなわち、制御装置１の制御部１０は、処理規則の問い合わせ、およびパケットを受信する（ステップＳ５１）。すると、処理規則粒度決定部１１は、そのパケットに基づいて、フローＢを識別する識別規則を作成する（ステップＳ５２）。
【００２８】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フローＢに対応する処理方法を、フローＢが通過するパケット処理装置毎に定める。この処理方法と、ステップＳＳ５２で作成された識別規則により、フローＢが通過するパケット処理装置毎の処理規則が定まる。そして、処理規則粒度決定部１１は、このフローＢの処理規則と他のフローの処理規則とを集約した処理規則を作成可能か否かを判定する（ステップＳ５３）。この時点で、フローＡに対応する処理規則が管理ＤＢ記憶部１２に記憶されているが、フローＡのパケットに対する処理方法（１）と、フローＢのパケットに対する処理方法（２）とは異なる。従って、処理規則粒度決定部１１は、個々のパケット処理装置２において、複数のフローＡ，Ｂに対応する各処理規則を１つの処理規則に集約することができないと判定する。
【００２９】
ステップＳ５３の後、処理規則粒度決定部１１は、ステップＳ５３で得られた処理規則を管理ＤＢ記憶部１２に登録する（ステップＳ５４）。本例では、フローＢが通過するパケット処理装置毎に得られたフローＢに対する処理規則をそれぞれ管理ＤＢ記憶部１２に登録する。図５は、この時点において、管理ＤＢ記憶部１２に登録されている処理規則を示す模式図である。この時点では、各パケット処理装置２ａ，２ｂ，２ｃにおける処理規則として、それぞれ、フローＡに対応する処理規則と、フローＢに対応する処理規則とが管理ＤＢ記憶部１２に登録されている。なお、図５に示す例では、「処理方法（１）」、「処理方法（２）」と示しているが、処理方法（１）の具体的な内容は、パケット処理装置２毎に異なっていてもよい。処理方法（２）に関しても同様である。
【００３０】
次に、処理規則粒度決定部１１は、ステップＳ５４で登録したパケット処理装置２毎の各処理規則（本例では、フローＢが通過するパケット処理装置毎に得られたフローＢに対する処理規則）を、対応するパケット処理装置２に通知する（ステップＳ５５）。
【００３１】
次に、フローＣが発生し、パケット処理装置２ａがフローＣのパケットを受信したとする。そして、パケット処理装置２ａは、フローＣに対応する処理規則を記憶しておらず、制御装置１に対して処理規則の問い合わせ（本例では、フローＣのパケットに対する処理方法の問い合わせ）を送信するものとする。このとき、パケット処理装置２ａは、そのパケット（本例では、フローＣのパケット）も制御装置１に送信する。制御装置１は、この問い合わせを受信し、前述の図４に示す動作を行う。なお、既に説明したように、フローＡのパケットに対する処理方法と、フローＣのパケットに対する処理方法は、同一である。
【００３２】
制御装置１の制御部１０は、処理規則の問い合わせ、およびパケットを受信する（ステップＳ５１）。すると、処理規則粒度決定部１１は、そのパケットに基づいて、フローＣを識別する識別規則を作成する（ステップＳ５２）。
【００３３】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フローＣに対応する処理方法を、フローＣが通過するパケット処理装置毎に定める。この処理方法と、ステップＳＳ５２で作成された識別規則により、フローＣが通過するパケット処理装置毎の処理規則が定まる。そして、処理規則粒度決定部１１は、このフローＣの処理規則と他のフローの処理規則とを集約した処理規則を作成可能か否かを判定する（ステップＳ５３）。処理規則粒度決定部１１は、処理方法が同一であって、異なるフローに対応する処理規則が存在する場合には、それらの複数のフローの処理規則を集約することができると判定し、異なるフローに対応する処理規則を１つの処理規則に集約する。例えば、パケット処理装置２ａにおけるフローＣに対応する処理規則、および、パケット処理装置２ａにおけるフローＡに対応する処理規則では、処理方法が「処理方法（１）」で同一である。従って、処理規則粒度決定部１１は、パケット処理装置２ａにおけるフローＣに対応する処理規則と、パケット処理装置２ａにおけるフローＡに対応する処理規則とを１つに集約できると判定し、その２つの処理規則を一つに集約する。具体的には、処理規則粒度決定部１１は、複数のフロー（本例ではフローＡ，Ｃ）を包含する識別規則（換言すれば、複数のフローそれぞれに合致する識別規則）を定め、その識別規則と、その複数のフローで同一の処理方法とのセットを定めればよい。ここでは、パケット処理装置２ａを例にして説明したが、他のパケット処理装置２ｂ，２ｃに関しても同様である。
【００３４】
ステップＳ５３の後、処理規則粒度決定部１１は、ステップＳ５３で得られた処理規則を管理ＤＢ記憶部１２に登録する（ステップＳ５４）。複数の処理規則を１つに集約した処理規則を定めた場合には、処理規則粒度決定部１１は、その処理規則を管理ＤＢ記憶部１２に登録する。また、処理規則粒度決定部１１は、１つの処理規則に集約された既存の処理規則（本例では、フローＡの処理規則）を管理ＤＢ記憶部１２から削除する。
【００３５】
図６は、この時点において、管理ＤＢ記憶部１２に登録されている処理規則を示す模式図である。各パケット処理装置２ａ〜２ｃにおける処理規則において、フローＡに対応する処理規則およびフローＣに対応する処理規則が１つの処理規則に集約され、図５に示した既存のフローＡに対応する処理規則は削除されている。
【００３６】
次に、処理規則粒度決定部１１は、ステップＳ５４で登録したパケット処理装置２毎の処理規則（本例では、フローＡ，Ｃに対応する処理規則）を、対応するパケット処理装置２に通知する（ステップＳ５５）。また、通知する処理規則が、複数のフローに対応する処理規則を１つに集約したものである場合、処理規則粒度決定部１１は、集約されたフローに対応する既存の処理規則を削除する旨の指示も合わせて、パケット処理装置２に送信する。本例では、処理規則粒度決定部１１は、フローＡに対応する既存の処理規則を削除する旨の通知もステップＳ５５で送信する。
【００３７】
この結果、パケット処理装置２ａ，２ｂ，２ｃは、フローＡに対応する処理規則と、フローＣに対応する処理規則とを別個に記憶する必要はなく、フローＡ，Ｃに対応する処理規則を記憶する。従って、パケット処理装置２が記憶する処理規則の数を削減できる。
【００３８】
図７は、パケット処理装置２の例を示すブロック図である。パケット処理装置２は、処理規則設定部２０と、記憶部２１と、パケット処理部２２とを含む。
【００３９】
記憶部２１は、処理規則を記憶する記憶装置である。
【００４０】
処理規則設定部２０は、制御装置１から通知された処理規則を記憶部２１に記憶させる。また、処理規則設定部２０は、処理規則を削除する旨の指示を制御装置１から受信した場合には、制御装置１によって削除することを指定された処理規則を、記憶部２１から削除する。
【００４１】
パケット処理部２２は、パケットを受信すると、記憶部２１に記憶されている処理規則の中から、受信パケットに対応する識別規則を有する処理規則を検索する。受信パケットに対応する識別規則を有する処理規則を検索できた場合、パケット処理部２２は、その処理規則で定められている処理方法に従って、受信パケットを処理する。受信パケットに対応する識別規則を有する処理規則を検索できなかった場合（すなわち、記憶部２１に記憶されていなかった場合）、パケット処理部２２は、制御装置１に対して、受信パケットとともに、処理規則の問い合わせを送信する。この結果、制御装置１は、前述のステップＳ５１以降の動作を行う。
【００４２】
処理規則設定部２０およびパケット処理部２２は、例えば、パケット処理装置用プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵは、例えば、コンピュータのプログラム記憶装置（図示略）等のプログラム記録媒体からパケット処理装置用プログラムを読み込み、そのプログラムに従って、処理規則設定部２０およびパケット処理部２２として動作すればよい。また、処理規則設定部２０およびパケット処理部２２が別々のハードウェアで実現されていてもよい。
【００４３】
次に、具体例を用いて、制御装置１の動作を説明する。図８は、制御装置１によって制御されるパケット処理装置２の例を示す模式図である。ここでは、図３に示す場合と同様、３台のパケット処理装置２ａ，２ｂ，２ｃが存在する場合を例にして説明する。図８において、＃記号とともに示している番号は、ポート番号である。
【００４４】
図８に示す例では、パケット処理装置２ａに、端末８ａ，８ｂ，８ｃが接続されている。また、パケット処理装置２ｃに、端末８ｄが接続されている。
【００４５】
端末８ａのＩＰ（Internet Protocol ）アドレスは、１７２．２０．１．１であるものとする。
【００４６】
端末８ｂのＩＰアドレスは、１７２．２０．１．２であるものとする。
【００４７】
端末８ｃのＩＰアドレスは、１７２．２０．１．３であるものとする。
【００４８】
端末８ｄのＩＰアドレスは、１７２，２０．２．１であるものとする。
【００４９】
また、端末８ａから端末８ｄまでのフローをフロー１とする。端末８ｂから端末８ｄまでのフローをフロー２とする。端末８ｃから端末８ｄまでのフローをフロー３とする。フロー１のパケットに対する処理方法と、フロー３のパケットに対する処理方法は同一であるものとする。また、フロー２のパケットに対する処理方法は、フロー１，３のパケットに対する処理方法とは異なるものとする。
【００５０】
以下の説明において、初期状態では、各パケット処理装置２の記憶部２１に処理規則が記憶されていないものとする。
【００５１】
最初に端末８ａが、端末８ｄを宛先としてパケットを送信するものとする。パケット処理装置２ａは、そのパケットを受信する。パケット処理装置２ａのパケット処理部２２は、受信したパケットに対応する処理規則が記憶部２１に記憶されていないので、そのパケットのフロー（フロー１）に対する処理規則の問い合わせを制御装置１に送信する。このとき、パケット処理装置２ａのパケット処理部２２は、そのパケットも制御装置１に送信する。
【００５２】
すると、制御装置１の制御部１０は、パケット処理装置２ａから、処理規則の問い合わせ、およびパケットを受信する（ステップＳ５１）。次に、処理規則粒度決定部１１は、そのパケットに基づいて、フロー１を識別する識別規則を作成する（ステップＳ５２）。本実施形態では、パケットのＩＰヘッダの送信元ＩＰアドレスおよび宛先ＩＰアドレスの組み合わせを識別規則とする場合を例にして説明する。従って、上記のステップＳ５２で作成される識別規則は、送信元ＩＰアドレス“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される。
【００５３】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フロー１に対応する処理方法を、フロー１が通過するパケット処理装置２毎に定め、パケット処理装置２毎に処理規則を定める。そして、処理規則粒度決定部１１は、フロー１と他のフローとを集約した処理規則を作成可能か否かを判定する（ステップＳ５３）。
【００５４】
パケット処理装置２ａに対して定める処理方法は、「ポート＃４から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ａに対して、送信元ＩＰアドレス“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃４から転送」という内容の処理方法とを含む処理規則を定める。
【００５５】
パケット処理装置２ｂに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｂに対して、送信元ＩＰアドレス“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【００５６】
パケット処理装置２ｃに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｃに対して、送信元ＩＰアドレス“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【００５７】
ステップＳ５３では、上記のようにパケット処理装置２毎に処理規則を定めた後、処理規則粒度決定部１１は、フロー１の処理規則と他のフローの処理規則とを集約した処理規則を作成可能か否かを判定する。
【００５８】
複数のフローの処理規則を集約した処理規則を作成可能か否かの判定処理の処理経過の例を図９に示す。処理規則粒度決定部１１は、上記のようにステップＳ５３で作成した処理規則と処理方法が同一である識別規則が他に存在するか否かを判定する（ステップＳ５３１）。本例では、上記のようにステップＳ５３で作成した処理規則と処理方法が同一である識別規則は、管理ＤＢ記憶部１２に記憶されていない（ステップＳ５３１のＮＯ）。この場合、処理規則粒度決定部１１は、ステップＳ５２で求めた識別規則を含む処理規則（上記のようにステップＳ５３で作成した処理規則）を登録することを決定する（ステップＳ５３３）。
【００５９】
なお、上記のようにステップＳ５３で作成した処理規則と処理方法が同一である識別規則は、管理ＤＢ記憶部１２に記憶されている場合（ステップＳ５３１のＹＥＳ）、処理規則粒度決定部１１は、その識別規則を含む処理規則と、上記のようにステップＳ５３で作成した処理規則とを集約した処理規則を作成し、その処理規則を登録することを決定する（ステップＳ５３２）。ステップＳ５３２を実行する場合については、後述する。
【００６０】
本例では、処理規則粒度決定部１１は、ステップＳ５４において、上記のステップＳ５３３の決定に従い、ステップＳ５２で求めた識別規則を含む処理規則（上記のようにステップＳ５３で作成した処理規則）を管理ＤＢ記憶部１２に登録する（ステップＳ５４）。この時点で管理ＤＢ記憶部１２に登録されている処理規則を図１０に示す。
【００６１】
そして、処理規則粒度決定部１１は、ステップＳ５４で登録したパケット処理装置２毎の各処理規則を、対応するパケット処理装置２に通知する（ステップＳ５５）。ここでは、処理規則粒度決定部１１は、図１０に示すパケット処理装置２ａの処理規則を、パケット処理装置２ａに通知する。同様に、処理規則粒度決定部１１は、図１０に示すパケット処理装置２ｂの処理規則を、パケット処理装置２ｂに通知する。さらに、処理規則粒度決定部１１は、図１０に示すパケット処理装置２ｃの処理規則を、パケット処理装置２ｃに通知する。
【００６２】
各パケット処理装置２の処理規則設定部２０（図７参照）は、通知された処理規則を記憶部２１に記憶させる。そして、パケット処理部２２は、受信したパケットをその処理規則に従って処理する。この結果、フロー１のパケットは、フロー１に対応する処理規則に従って順次、転送される。
【００６３】
次に、端末８ｂが、端末８ｄを宛先としてパケットを送信するものとする。パケット処理装置２ａは、そのパケットを受信する。パケット処理装置２ａのパケット処理部２２（図７参照）は、受信したパケットに対応する処理規則が記憶部２１に記憶されていないので、そのパケットのフロー（フロー２）に対する処理規則の問い合わせを制御装置１に送信する。このとき、パケット処理装置２ａのパケット処理部２２は、そのパケットも制御装置１に送信する。
【００６４】
すると、制御装置１の制御部１０は、パケット処理装置２ａから、処理規則の問い合わせ、およびパケットを受信する（ステップＳ５１）。次に、処理規則粒度決定部１１は、そのパケットに基づいて、フロー２を識別する識別規則を作成する（ステップＳ５２）。ここでは、送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則が作成される。
【００６５】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フロー２に対応する処理方法を、フロー２が通過するパケット処理装置２毎に定め、パケット処理装置２毎に処理規則を定める。そして、処理規則粒度決定部１１は、フロー２の処理規則と他のフローの処理規則とを集約した処理規則を作成可能か否かを判定する（ステップＳ５３）。
【００６６】
パケット処理装置２ａに対して定める処理方法は、「ポート＃５から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ａに対して、送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃５から転送」という内容の処理方法とを含む処理規則を定める。
【００６７】
パケット処理装置２ｂに対して定める処理方法は、「ポート＃４から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｂに対して、送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃４から転送」という内容の処理方法とを含む処理規則を定める。
【００６８】
パケット処理装置２ｃに対して定める処理方法は、「ポート＃４から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｃに対して、送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃４から転送」という内容の処理方法とを含む処理規則を定める。
【００６９】
ステップＳ５３では、上記のようにパケット処理装置２毎に処理規則を定めた後、処理規則粒度決定部１１は、フロー２の処理規則と他のフローの処理規則を集約した処理規則を作成可能か否かを判定する。
【００７０】
すなわち、処理規則粒度決定部１１は、上記のようにステップＳ５３で作成した処理規則と処理方法が同一である識別規則が他に存在するか否かを判定する（ステップＳ５３１、図９参照）。本例では、図１０に示す処理規則（フロー１に対応する処理規則）が管理ＤＢ記憶部１２に記憶されている。しかし、図１０に示す処理規則の処理方法は、上記のようにステップＳ５３で作成した処理規則の処理方法とは異なる。従って、上記のようにステップＳ５３で作成した処理規則と処理方法が同一である識別規則は、管理ＤＢ記憶部１２に記憶されていない（ステップＳ５３１のＮＯ）。従って、処理規則粒度決定部１１は、ステップＳ５２で求めた識別規則を含む処理規則（上記のようにステップＳ５３で作成した処理規則）を登録することを決定する（ステップＳ５３３、図９参照）。
【００７１】
そして、処理規則粒度決定部１１は、ステップＳ５４において、上記のステップＳ５３３の決定に従い、ステップＳ５２で求めた識別規則を含む処理規則（上記のようにステップＳ５３で作成した処理規則）を管理ＤＢ記憶部１２に登録する（ステップＳ５４）。この時点で管理ＤＢ記憶部１２に登録されている処理規則を図１１に示す。送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則（図１１参照）を含む処理規則が、新たに追加登録された処理規則である。
【００７２】
そして、処理規則粒度決定部１１は、ステップＳ５４で登録したパケット処理装置２毎の各処理規則を、対応するパケット処理装置２に通知する（ステップＳ５５）。
【００７３】
処理規則の通知を受けた各パケット処理装置２の動作は、既に説明した動作と同様である。この結果、図１１に示すパケット処理装置２ａの処理規則が、パケット処理装置２ａに記憶される。また、図１１に示すパケット処理装置２ｂの処理規則が、パケット処理装置２ｂに記憶される。また、図１１に示すパケット処理装置２ｃの処理規則が、パケット処理装置２ｃに記憶される。そして、パケット処理部２２は、受信したパケットをその処理規則に従って処理する。その結果、フロー１のパケットは、フロー１に対応する処理規則に従って順次、転送され、フロー２のパケットは、フロー２に対応する処理規則に従って順次、転送される。
【００７４】
次に、端末８ｃが、端末８ｄを宛先としてパケットを送信するものとする。パケット処理装置２ａは、そのパケットを受信する。パケット処理装置２ａのパケット処理部２２（図７参照）は、受信したパケットに対応する処理規則が記憶部２１に記憶されていないので、そのパケットのフロー（フロー３）に対する処理規則の問い合わせを制御装置１に送信する。このとき、パケット処理装置２ａのパケット処理部２２は、そのパケットも制御装置１に送信する。
【００７５】
すると、制御装置１の制御部１０は、パケット処理装置２ａから、処理規則の問い合わせ、およびパケットを受信する（ステップＳ５１）。次に、処理規則粒度決定部１１は、そのパケットに基づいて、フロー３を識別する識別規則を作成する（ステップＳ５２）。ここでは、送信元ＩＰアドレス“１７２．２０．１．３”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則が作成される。
【００７６】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フロー３に対応する処理方法を、フロー３が通過するパケット処理装置２毎に定め、パケット処理装置２毎に処理規則を定める。そして、処理規則粒度決定部１１は、フロー３の処理規則と他のフローの処理規則とを集約した処理規則を作成可能か否かを判定する（ステップＳ５３）。
【００７７】
パケット処理装置２ａに対して定める処理方法は、「ポート＃４から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ａに対して、送信元ＩＰアドレス“１７２．２０．１．３”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃４から転送」という内容の処理方法とを含む処理規則を定める。
【００７８】
パケット処理装置２ｂに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｂに対して、送信元ＩＰアドレス“１７２．２０．１．３”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【００７９】
パケット処理装置２ｃに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｃに対して、送信元ＩＰアドレス“１７２．２０．１．３”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【００８０】
ステップＳ５３では、上記のようにパケット処理装置２毎に処理規則を定めた後、処理規則粒度決定部１１は、フロー３の処理規則と他のフローの処理規則を集約した処理規則を作成可能か否かを判定する。
【００８１】
すなわち、処理規則粒度決定部１１は、上記のようにステップＳ５３で作成した処理規則と処理方法が同一である識別規則が他に存在するか否かを判定する（ステップＳ５３１、図９参照）。本例では、図１１に示す処理規則（フロー１に対応する処理規則、およびフロー２に対応する処理規則）が管理ＤＢ記憶部１２に記憶されている。ここで、フロー１に対応する処理規則の処理方法は、上記のようにステップＳ５３で作成した処理規則の処理方法と同一である。従って、上記のようにステップＳ５３で作成した処理規則と処理方法が同一である識別規則は、管理ＤＢ記憶部１２に記憶されている（ステップＳ５３１のＹＥＳ）。従って、処理規則粒度決定部１１は、その識別規則を含む処理規則と、上記のようにステップＳ５３で作成した処理規則とを集約した処理規則を作成し、その処理規則を登録することを決定する（ステップＳ５３２）。
【００８２】
処理規則粒度決定部１１は、フロー３およびフロー１を包含する識別規則（換言すれば、フロー３とフロー１のそれぞれに合致する識別規則）を定める。処理規則粒度決定部１１は、例えば、フロー３およびフロー１を包含する識別規則として、送信元ＩＰアドレス“１７２．２０．１．０／３０”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則を作成する。この識別規則は、フロー３およびフロー１それぞれに合致する。そして、処理規則粒度決定部１１は、フロー３の処理規則およびフロー１の処理規則で同一であった処理方法と、その識別規則とのセットを作成することで、複数の処理規則を集約した処理規則を作成する。例えば、処理規則粒度決定部１１は、パケット処理装置２ａに関しては、上記の識別規則と、「ポート＃４から転送」という内容の処理方法とのセットを定める。ここでは、パケット処理装置２ａを例にして説明したが、処理規則粒度決定部１１は、他のパケット処理装置２ｂ，２ｃに関しても同様の処理を行う。
【００８３】
そして、処理規則粒度決定部１１は、ステップＳ５４において、上記のステップＳ５３２の決定に従い、ステップＳ５３２で新たに作成した処理規則を管理ＤＢ記憶部１２に登録する（ステップＳ５４）。また、処理規則粒度決定部１１は、ステップＳ５３２で新たに作成した処理規則を管理ＤＢ記憶部１２に登録する場合、新たな処理規則に集約された既存の処理規則（本例では、フロー１の処理規則。図１０および図１１参照。）を管理ＤＢ記憶部１２から削除する。この時点で管理ＤＢ記憶部１２に登録されている処理規則を図１２に示す。送信元ＩＰアドレス“１７２．２０．１．０／３０”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則（図１２参照）を含む処理規則が、新たに追加登録された処理規則である。また、“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則を含む処理規則（図１１参照）は、削除されている。
【００８４】
そして、処理規則粒度決定部１１は、ステップＳ５４で登録したパケット処理装置２毎の各処理規則を、対応するパケット処理装置２に通知する（ステップＳ５５）。また、ステップＳ５４で、既存の処理規則を削除している場合には、処理規則粒度決定部１１は、ステップＳ５５で、その処理規則を削除する旨の指示も併せて、パケット処理装置２に送信する。本例では、処理規則粒度決定部１１は、フロー１に対応する既存の処理規則を削除する旨の通知もステップＳ５５で送信する。
【００８５】
各パケット処理装置２の処理規則設定部２０（図７参照）は、通知された処理規則を記憶部２１に記憶させる。また、処理規則設定部２０は、制御装置１からの指示に従い、制御装置１によって指定された処理規則を記憶部２１から削除する。この結果、図１２に示すパケット処理装置２ａの処理規則が、パケット処理装置２ａに記憶される。また、図１２に示すパケット処理装置２ｂの処理規則が、パケット処理装置２ｂに記憶される。また、図１２に示すパケット処理装置２ｃの処理規則が、パケット処理装置２ｃに記憶される。この結果、フロー１のパケットおよびフロー３のパケットは、フロー１，３に対応する処理規則に従って順次、転送され、フロー２のパケットは、フロー２に対応する処理規則に従って順次、転送される。
【００８６】
本実施形態によれば、異なるフローに対応する処理規則において処理方法が同一である場合に、処理規則粒度決定部１１が、その異なるフローに対応する処理規則を集約する。従って、パケット処理装置２が記憶する処理規則の数を削減することができる。
【００８７】
本実施形態では、識別規則にＩＰアドレスを用いる場合を例にして説明したが、識別規則の態様は、ＩＰアドレスを用いる態様に限定されない。例えば、モバイルシステムのトンネル識別子を適用してもよい。識別規則に用いる情報は、複数のフローを包含する識別規則として記述できる情報であればよい。
【００８８】
実施形態２．
第２の実施形態の制御装置１は、第１の実施形態と同様の構成（図１参照）であり、図１を参照して第２の実施形態を説明する。
【００８９】
第２の実施形態では、処理規則粒度決定部１１が、フローのグループを識別するグループ識別子を識別規則として定める。ただし、初段のパケット処理装置２に通知する処理規則内の識別規則は、第１の実施形態での識別規則と同様である。以下の説明では、初段のパケット処理装置２だけでなく、最終段のパケット処理装置２に通知する処理規則内の識別規則も、第１の実施形態での識別規則と同様である場合を例にして説明する。なお、初段のパケット処理装置２とは、端末から直接パケットを受信するパケット処理装置２である。最終段のパケット処理装置２とは、端末に対して直接パケットを転送するパケット処理装置２である。
【００９０】
また、以下の説明では、パケット処理装置２がＬ３（Layer 3 ）スイッチである場合を例にして説明する。Ｌ３スイッチは、パケット転送時にＭＡＣ（Media Access Control）アドレスを用いないので、Ｌ３スイッチで転送されるパケットのＭＡＣアドレスを書き換えても、転送に影響しない。また、書き換えたＭＡＣアドレスを元のＭＡＣアドレスに戻す必要もない。そこで、以下に示す例では、フローのグループを識別する識別規則として、ＭＡＣアドレスを用い、そのＭＡＣアドレスをパケット内の送信元ＭＡＣアドレスとして書き込む場合を例にして説明する。この送信元ＭＡＣアドレスは、フローのグループを識別するために用いられる。
【００９１】
以下、具体例を用いて、制御装置１の動作を説明する。図１３は、制御装置１によって制御されるパケット処理装置２の例を示す模式図である。図１３では、３台のパケット処理装置２ａ，２ｂ，２ｃが存在する場合を例示している。＃記号とともに示している番号は、ポート番号である。
【００９２】
また、図１３に示す例では、パケット処理装置２ａに、端末８ａ，８ｂ，８ｃが接続されている。また、パケット処理装置２ｃに、端末８ｄが接続されている。図１３に示す端末８ａ，８ｂ，８ｃ，８ｄのＩＰアドレスは、それぞれ、図８に示す端末８ａ，８ｂ，８ｃ，８ｄのＩＰアドレスと同じである。
【００９３】
端末８ａから端末８ｄまでのフローをフロー１とする。端末８ｂから端末８ｄまでのフローをフロー２とする。端末８ｃから端末８ｄまでのフローをフロー３とする。フロー１のパケットに対する処理方法と、フロー３のパケットに対する処理方法は同一であるものとする。また、フロー２のパケットに対する処理方法は、フロー１，３のパケットに対する処理方法とは異なるものとする。
【００９４】
また、どのフローがどのグループに属するかは、予め定められている。各フローがどのグループに属するかを示す情報は、予め処理規則粒度決定部１１が保持している。そして、フロー１およびフロー３のグループに対するグループ識別子として、Ｘが予め定められているものとする。また、フロー２のグループに対するグループ識別子として、Ｙが予め定められているものとする。Ｘ，Ｙは、それぞれＭＡＣアドレスとして記述される。
【００９５】
以下、フロー１、フロー２、フロー３の順にフローが発生するものとする。また、初期状態では、各パケット処理装置２の記憶部２１に処理規則が記憶されていないものとする。
【００９６】
最初に、端末８ａが、端末８ｄを宛先としてパケットを送信する。パケット処理装置２ａは、そのパケットを受信する。パケット処理装置２ａのパケット処理部２２は、受信したパケットに対応する処理規則が記憶部２１に記憶されていないので、そのパケットのフロー（フロー１）に対する処理規則の問い合わせを制御装置１に送信する。このとき、パケット処理装置２ａのパケット処理部２２は、そのパケットも制御装置１に送信する。
【００９７】
制御装置１の制御部１０は、パケット処理装置２ａから、処理規則の問い合わせ、およびパケットを受信する。
【００９８】
次に、処理規則粒度決定部１１は、フロー１を識別する識別規則を定める。処理規則粒度決定部１１は、フロー１に対する識別規則として、ＭＡＣアドレス“Ｘ”を定める。ただし、初段のパケット処理装置２ａおよび最終段のパケット処理装置２ｃに通知する処理規則内の識別規則は、第１の実施形態と同様に定められる。すなわち、処理規則粒度決定部１１は、送信元ＩＰアドレス“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせを識別規則とする。
【００９９】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フロー１に対応する処理方法を、フロー１が通過するパケット処理装置２毎に定め、パケット処理装置２毎に処理規則を定める。ただし、フロー１が、既に処理規則が作成されたフローと同一のグループに属するフローである場合、その処理規則をフロー１の処理規則としても用いることによって、異なるフローの処理規則を集約する。本例では、既に処理規則が作成されたフローが存在していない。従って、処理規則粒度決定部１１は、フロー１に対する処理規則を作成する。
【０１００】
パケット処理装置２ａに対して定める処理方法は、「送信元ＭＡＣアドレスをＸに書き換え、ポート＃４から転送」である。すなわち、処理規則粒度決定部１１は、初段のパケット処理装置２ａに対して、送信元ＩＰアドレス“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「送信元ＭＡＣアドレスをＸに書き換え、ポート＃４から転送」という内容の処理方法とを含む処理規則を定める。
【０１０１】
パケット処理装置２ｂに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｂに対して、識別規則“Ｘ”と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【０１０２】
パケット処理装置２ｃに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、最終段のパケット処理装置２ｃに対して、送信元ＩＰアドレス“１７２．２０．１．１”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【０１０３】
次に、処理規則粒度決定部１１は、上記のように定めた処理規則を管理ＤＢ記憶部１２に登録する。この時点で管理ＤＢ記憶部１２に登録されている処理規則を図１４に示す。
【０１０４】
そして、処理規則粒度決定部１１は、上記のように定めた各処理規則を、対応するパケット処理装置２に通知する。ここでは、処理規則粒度決定部１１は、図１４に示すパケット処理装置２ａの処理規則を、パケット処理装置２ａに通知する。同様に、処理規則粒度決定部１１は、図１４に示すパケット処理装置２ｂの処理規則を、パケット処理装置２ｂに通知する。さらに、処理規則粒度決定部１１は、図１４に示すパケット処理装置２ｃの処理規則を、パケット処理装置２ｃに通知する。
【０１０５】
各パケット処理装置２の処理規則設定部２０（図７参照）は、通知された処理規則を記憶部２１に記憶させる。そして、パケット処理部２２は、受信したパケットをその処理規則に従って処理する。パケット処理装置２ａは、端末８ａから受信したフロー１のパケットの送信元ＭＡＣアドレスをＸに書き換え、そのパケットをポート＃４から出力する。そのパケットを受信したパケット処理装置２ｂは、通知された処理規則に従って、そのパケットをポート＃２から出力する。そのパケットを受信したパケット処理装置２ｃは、通知された処理規則に従って、そのパケットをポート＃２から出力する。この結果、フロー１のパケットは、宛先となる端末８ｄに到達する。
【０１０６】
次に、端末８ｂが、端末８ｄを宛先としてパケットを送信する。パケット処理装置２ａは、そのパケットを受信する。パケット処理装置２ａのパケット処理部２２は、受信したパケットに対応する処理規則が記憶部２１に記憶されていないので、そのパケットのフロー（フロー２）に対する処理の問い合わせを制御装置１に送信する。このとき、パケット処理装置２ａのパケット処理部２２は、そのパケットも制御装置１に送信する。
【０１０７】
制御装置１の制御部１０は、パケット処理装置２ａから、処理規則の問い合わせ、およびパケットを受信する。
【０１０８】
次に、処理規則粒度決定部１１は、フロー２を識別する識別規則を定める。処理規則粒度決定部１１は、フロー２に対する識別規則として、ＭＡＣアドレス“Ｙ”を定める。ただし、初段のパケット処理装置２ａおよび最終段のパケット処理装置２ｃに通知する処理規則内の識別規則は、第１の実施形態と同様に定められる。すなわち、処理規則粒度決定部１１は、送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせを識別規則とする。
【０１０９】
次に、処理規則粒度決定部１１は、制御ポリシに基づいて、フロー２に対応する処理方法を、フロー２が通過するパケット処理装置２毎に定め、パケット処理装置２毎に処理規則を定める。ただし、フロー２が、既に処理規則が作成されたフローと同一のグループに属するフローである場合、その処理規則をフロー２の処理規則としても用いることによって、異なるフローの処理規則を集約する。本例では、フロー１の処理規則が既に作成されているが、フロー１のグループと、フロー２のグループは異なる。従って、処理規則粒度決定部１１は、フロー２に対する処理規則を作成する。
【０１１０】
パケット処理装置２ａに対して定める処理方法は、「送信元ＭＡＣアドレスをＹに書き換え、ポート＃４から転送」である。すなわち、処理規則粒度決定部１１は、初段のパケット処理装置２ａに対して、送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「送信元ＭＡＣアドレスをＹに書き換え、ポート＃４から転送」という内容の処理方法とを含む処理規則を定める。
【０１１１】
パケット処理装置２ｂに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、パケット処理装置２ｂに対して、識別規則“Ｙ”と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【０１１２】
パケット処理装置２ｃに対して定める処理方法は、「ポート＃２から転送」である。すなわち、処理規則粒度決定部１１は、最終段のパケット処理装置２ｃに対して、送信元ＩＰアドレス“１７２．２０．１．２”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則と、「ポート＃２から転送」という内容の処理方法とを含む処理規則を定める。
【０１１３】
次に、処理規則粒度決定部１１は、上記のように定めた処理規則を管理ＤＢ記憶部１２に登録する。この時点で管理ＤＢ記憶部１２に登録されている処理規則を図１５に示す。
【０１１４】
そして、処理規則粒度決定部１１は、上記のように定めた各処理規則を、対応するパケット処理装置２に通知する。
【０１１５】
処理規則の通知を受けた各パケット処理装置２の動作は、既に説明した動作と同様である。この結果、図１５に示すパケット処理装置２ａの処理規則が、パケット処理装置２ａに記憶される。また、図１５に示すパケット処理装置２ｂの処理規則が、パケット処理装置２ｂに記憶される。また、図１５に示すパケット処理装置２ｃの処理規則が、パケット処理装置２ｃに記憶される。
【０１１６】
そして、パケット処理装置２ａは、端末８ｂから受信したフロー２のパケットの送信元ＭＡＣアドレスをＹに書き換え、そのパケットをポート＃４から出力する。そのパケットを受信したパケット処理装置２ｂは、通知された処理規則に従って、そのパケットをポート＃２から出力する。そのパケットを受信したパケット処理装置２ｃは、通知された処理規則に従って、そのパケットをポート＃２から出力する。この結果、フロー２のパケットは、宛先となる端末８ｄに到達する。
【０１１７】
次に、端末８ｃが、端末８ｄを宛先としてパケットを送信する。パケット処理装置２ａは、そのパケットを受信する。パケット処理装置２ａのパケット処理部２２は、受信したパケットに対応する処理規則が記憶部２１に記憶されていないので、そのパケットのフロー（フロー３）に対する処理の問い合わせを制御装置１に送信する。このとき、パケット処理装置２ａのパケット処理部２２は、そのパケットも制御装置１に送信する。
【０１１８】
制御装置１の制御部１０は、パケット処理装置２ａから、処理規則の問い合わせ、およびパケットを受信する。
【０１１９】
次に、処理規則粒度決定部１１は、フロー３を識別する識別規則を定める。処理規則粒度決定部１１は、フロー３に対する識別規則として、ＭＡＣアドレス“Ｘ”を定める。ただし、初段のパケット処理装置２ａおよび最終段のパケット処理装置２ｃに通知する処理規則内の識別規則は、第１の実施形態と同様に定められる。すなわち、処理規則粒度決定部１１は、送信元ＩＰアドレス“１７２．２０．１．３”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせを識別規則とする。
【０１２０】
ここで、新たに発生したフロー３は、既に処理規則が作成されたフロー１と同一のグループに属するフローである。従って、処理規則粒度決定部１１は、フロー１の処理規則をフロー３の処理規則としても用いることによって、異なるフロー１，３の処理規則を集約する。
【０１２１】
処理規則粒度決定部１１は、初段および最終段以外のパケット処理装置２ｂの処理規則については変更しない。また、処理規則粒度決定部１１は、初段のパケット処理装置２ａおよび最終段のパケット処理装置２ｃのフロー１に対応する処理規則内の識別規則については、フロー１，３を包含する識別規則に変更する。具体的には、フロー１に対応する処理規則内の識別規則を、送信元ＩＰアドレス“１７２．２０．１．０／３０”および宛先ＩＰアドレス“１７２．２０．２．１”の組み合わせで表される識別規則に変更する。
【０１２２】
処理規則粒度決定部１１は、初段および最終段のパケット処理装置２ａ，２ｃの処理規則の変更（識別規則の変更）を、管理ＤＢ記憶部１２が記憶する処理規則に反映する。この時点で管理ＤＢ記憶部１２に登録されている処理規則を図１６に示す。
【０１２３】
処理規則粒度決定部１１は、初段および最終段以外のパケット処理装置２ｂの処理規則については変更していないので、パケット処理装置２ｂに対しては、処理規則を通知しなくてよい。
【０１２４】
また、処理規則粒度決定部１１は、初段のパケット処理装置２ａおよび最終段のパケット処理装置２ｃに対しては、識別規則を変更した処理規則を通知するとともに、変更前の処理規則を削除する旨の指示を送信する。
【０１２５】
パケット処理装置２ａ，２ｃの処理規則設定部２０は、通知された処理規則を記憶部２１に記憶させるとともに、削除することを指定された処理規則を記憶部２１から削除する。この結果、図１６に示すパケット処理装置２ａの処理規則が、パケット処理装置２ａに記憶される。また、図１６に示すパケット処理装置２ｂの処理規則が、パケット処理装置２ｂに記憶される。また、図１６に示すパケット処理装置２ｃの処理規則が、パケット処理装置２ｃに記憶される。
【０１２６】
そして、パケット処理装置２ａは、端末８ｃから受信したフロー３のパケットの送信元ＭＡＣアドレスをＸに書き換え、そのパケットをポート＃４から出力する。そのパケットを受信したパケット処理装置２ｂは、通知された処理規則に従って、そのパケットをポート＃２から出力する。そのパケットを受信したパケット処理装置２ｃは、通知された処理規則に従って、そのパケットをポート＃２から出力する。この結果、フロー３のパケットは、宛先となる端末８ｄに到達する。このフロー３のパケットの転送態様は、フロー１のパケットの転送態様と同様である。
【０１２７】
本実施形態においても、異なるフローの処理規則を集約するので、パケット処理装置２が記憶する処理規則の数を削減することができる。
【０１２８】
また、送信元ＭＡＣアドレスの書き換えが行われていないパケットを受信する初段のパケット処理装置２ａには、グループ識別子を識別規則とせずに、第１の実施形態と同様の識別規則を含む処理規則が通知される。第１の実施形態と同様の識別規則であっても、複数のフローを包含する識別規則を記述することができるので、処理規則を集約できる。従って、初段のパケット処理装置２においても、記憶する処理規則の数を削減することができる。
【０１２９】
上記の例では、グループ識別子（上記の例では“Ｘ”，“Ｙ”）で、パケットの送信元アドレスを書き換える場合を例示した。パケットにグループ識別子を付加する態様は、この例に限定されない。例えば、グループ識別子をパケット内のベンダ拡張領域に書き込むという内容を含む処理方法を、処理規則粒度決定部１１が定めてもよい。
【０１３０】
また、上記の例では、最終段のパケット処理装置２ｃに通知される処理規則内の識別規則が第１の実施形態と同様である場合を例にして説明した。最終段のパケット処理装置２ｃに通知される処理規則内の識別規則は、グループ識別子で表されていてもよい。
【０１３１】
次に、本発明の概要を説明する。図１７は、本発明の制御装置の概要を示すブロック図である。本発明の制御装置は、フロー識別情報作成手段９１と、処理規則作成手段９２と、集約手段９３と、通知手段９４とを備える。
【０１３２】
フロー識別情報作成手段９１（例えば、ステップＳ５２を実行する処理規則粒度決定部１１）は、フローを識別するためのフロー識別情報（例えば、識別規則）を作成する。
【０１３３】
処理規則作成手段９２（例えば、ステップＳ５３を実行する処理規則粒度決定部１１）は、フローのパケットに対する処理方法を定め、フロー識別情報および処理方法を含む処理規則を作成する。
【０１３４】
集約手段９３（例えば、ステップＳ５３を実行する処理規則粒度決定部１１）は、そのフローの処理規則と、他のフローの処理規則とを集約できる場合に、そのフローの処理規則と、他のフローの処理規則とを集約する。
【０１３５】
通知手段９４（例えば、ステップＳ５５を実行する処理規則粒度決定部１１）は、処理規則をパケット処理装置に通知する。
【０１３６】
そのような構成によって、パケット処理装置が記憶する処理規則の数を削減することができる。
【０１３７】
集約手段９３が、別々のフローの処理規則に含まれる処理方法が同一である場合に、別々のフローの処理規則を集約できると判定する構成であってもよい。
【０１３８】
集約手段９３が、別々のフローの処理規則に含まれる処理方法が同一である場合に、別々のフローの処理規則を集約できると判定し、別々のフローのそれぞれに合致するフロー識別情報を定め、当該フロー情報とその処理方法とを含む処理規則を作成することによって、処理規則を集約する構成であってもよい。
【０１３９】
フロー識別情報作成手段９１が、フローのグループを識別するフロー識別情報を定め、
集約手段９３が、新たに生じたフローが、既に処理規則が作成されたフローと同一のグループに属するフローである場合、その処理規則を、新たに生じたフローの処理規則としても用いることによって、別々のフローの処理規則を集約する構成であってもよい。
【０１４０】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１４１】
この出願は、２０１４年３月１４日に出願された日本特許出願２０１４−０５１３３０を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用の可能性】
【０１４２】
本発明は、パケット処理装置を制御する制御装置に好適に適用される。
【符号の説明】
【０１４３】
１  制御装置
２  パケット処理装置
１０  制御部
１１  処理規則粒度決定部
１２  管理ＤＢ記憶部
【図１】
2015136585.tif 000003
【図２】
2015136585.tif 000004
【図３】
2015136585.tif 000005
【図４】
2015136585.tif 000006
【図５】
2015136585.tif 000007
【図６】
2015136585.tif 000008
【図７】
2015136585.tif 000009
【図８】
2015136585.tif 000010
【図９】
2015136585.tif 000011
【図１０】
2015136585.tif 000012
【図１１】
2015136585.tif 000013
【図１２】
2015136585.tif 000014
【図１３】
2015136585.tif 000015
【図１４】
2015136585.tif 000016
【図１５】
2015136585.tif 000017
【図１６】
2015136585.tif 000018
【図１７】
2015136585.tif 000019
【国際調査報告】
2015136585.tif 000020
2015136585.tif 000021
2015136585.tif 000022
2015136585.tif 000023