(57)【要約】  集中制御型ネットワークにおいて、通信ノードへの処理規則の設定が無駄となる可能性を減ずる制御装置を提供する。制御装置は、複数の通信ノードから選択した通信ノードに対し、パケットを処理するための処理規則を設定する処理規則設定部を備える。処理規則設定部は、選択した通信ノードに対し処理規則を設定できたことに応じて、複数の通信ノードのうち選択した通信ノード以外の通信ノードに対し、処理規則を設定する。
2014104278.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信ノードから選択した通信ノードに対し、パケットを処理するための処理規則を設定する処理規則設定部を備え、
前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定する、制御装置。
【請求項２】
前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードから、前記処理規則を設定する通信ノードを再度選択する請求項１の制御装置。
【請求項３】
前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定しない請求項１又は２の制御装置。
【請求項４】
前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち、すでに前記処理規則を設定した通信ノードから、前記設定した処理規則を削除する請求項３の制御装置。
【請求項５】
前記処理規則設定部は、パケットの転送経路に含まれる複数の通信ノードから選択した通信ノードに対し、前記処理規則を設定する請求項１乃至４のいずれか一項に記載の制御装置。
【請求項６】
前記パケットの転送経路を計算する経路計算部をさらに備え、
前記経路計算部は、前記処理規則設定部が前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記パケットの転送経路を再度計算する請求項３乃至５のいずれか一項に記載の制御装置。
【請求項７】
前記処理規則設定部は、優先度に基づいて、前記複数の通信ノードから、前記処理規則を設定する通信ノードを選択する請求項５又は６の制御装置。
【請求項８】
前記優先度は、前記複数の通信ノードのうち、前記転送経路の両端に位置する通信ノードに対して、前記両端に位置する通信ノード以外の通信ノードよりも、高く与えられる請求項７の制御装置。
【請求項９】
前記処理規則設定部は、前記複数の通信ノードから、無作為に、前記処理規則を設定する通信ノードを選択する請求項１乃至６のいずれか一項に記載の制御装置。
【請求項１０】
前記処理規則設定部は、前記選択した通信ノードに対応する前記処理規則を生成できないことに応じて、前記選択された通信ノードに対し前記処理規則を設定しない請求項１乃至９のいずれか一項に記載の制御装置。
【請求項１１】
前記処理規則設定部は、前記複数の通信ノード間の少なくとも１つにリンクが存在しないことに応じて、前記選択された通信ノードに対して、前記処理規則の設定を行わない請求項１乃至１０のいずれか一項に記載の制御装置。
【請求項１２】
前記処理規則設定部は、前記複数の通信ノードの少なくとも１つを含む複数のグループから選択したグループに含まれる通信ノードに対して、前記処理規則を並列に設定する請求項１乃至１１のいずれか一項に記載の制御装置。
【請求項１３】
前記処理規則設定部は、仮想回線を終端する２つの通信ノードから選択したいずれかの通信ノードに前記処理規則を設定できたことに応じて、前記仮想回線を終端する他の通信ノードに対して前記処理規則を設定する請求項１乃至４のいずれか一項に記載の制御装置。
【請求項１４】
前記処理規則設定部は、前記仮想回線に収容されるパケットを転送する通信ノードが存在する場合に、前記仮想回線を終端する通信ノードに対して前記処理規則を設定する請求項１３の制御装置。
【請求項１５】
前記仮想回線に収容されるパケットを転送する通信ノードの存在の有無を検証する転送経路検証部をさらに備え、
前記処理規則設定部は、前記仮想回線に収容されるパケットを転送する通信ノードの有無を前記転送経路検証部に問い合わせることで得られた結果に応じて、前記仮想回線を終端する通信ノードに対して前記処理規則を設定するか否かを決定する請求項１４の制御装置。
【請求項１６】
前記処理規則設定部は、冗長化された複数の通信ノードから現用系の通信ノードを選択し、前記現用系の通信ノードに対して前記処理規則を設定できたことに応じて、前記冗長化された複数の通信ノードのうち待機系の通信ノードに対して、前記処理規則を設定する請求項１乃至４のいずれか一項に記載の制御装置。
【請求項１７】
複数の通信ノードから、パケットを処理するための処理規則を設定する通信ノードを選択する工程と、
前記選択した通信ノードに対して前記処理規則を設定する工程と、
を含み、
前記処理規則を設定する工程は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定する、制御装置の制御方法。
【請求項１８】
前記処理規則を設定する工程は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードから、前記処理規則を設定する通信ノードを再度選択する請求項１７の制御装置の制御方法。
【請求項１９】
前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち、すでに前記処理規則を設定した通信ノードから、前記設定した処理規則を削除する工程をさらに含む請求項１７又は１８の制御装置の制御方法。
【請求項２０】
前記処理規則を設定する工程が前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記パケットの転送経路を再度計算する工程をさらに含む請求項１７乃至１９のいずれか一項に記載の制御装置の制御方法。
【請求項２１】
前記通信ノードを選択する工程は、
優先度に基づいて、前記複数の通信ノードから、前記処理規則を設定する通信ノードを選択する請求項１７乃至２０のいずれか一項に記載の制御装置の制御方法。
【請求項２２】
前記処理規則を設定する工程は、
前記選択された通信ノードに対応する前記処理規則を生成できないことに応じて、前記選択された通信ノードに対して前記処理規則の設定を行わない請求項１７乃至２１のいずれか一項に記載の制御装置の制御方法。
【請求項２３】
前記処理規則を設定する工程は、
前記複数の通信ノード間の少なくとも１つにリンクが存在しないことに応じて、前記選択された通信ノードに対して、前記処理規則の設定を行わない請求項１７乃至２２のいずれか一項に記載の制御装置の制御方法。
【請求項２４】
前記処理規則を設定する工程は、
仮想回線を終端する２つの通信ノードから選択したいずれかの通信ノードに前記処理規則を設定できたことに応じて、前記仮想回線を終端する他の通信ノードに対して前記処理規則を設定する請求項１７乃至２０のいずれか一項に記載の制御装置の制御方法。
【請求項２５】
前記処理規則を設定する工程は、
前記仮想回線に収容されるパケットを転送する通信ノードが存在する場合に、前記仮想回線を終端する通信ノードに対して前記処理規則を設定する請求項２４の制御装置の制御方法。
【請求項２６】
前記仮想回線に収容されるパケットを転送する通信ノードの存在の有無を検証する転送経路検証工程をさらに含み、
前記処理規則を設定する工程は、前記転送経路検証工程における検証結果に応じて、前記仮想回線を終端する通信ノードに対して前記処理規則を設定するか否かを決定する請求項２５の制御装置の制御方法。
【請求項２７】
前記処理規則を設定する工程は、
冗長化された複数の通信ノードから現用系の通信ノードを選択し、前記現用系の通信ノードに対して前記処理規則を設定できたことに応じて、前記冗長化された複数の通信ノードのうち待機系の通信ノードに対して、前記処理規則を設定する請求項１７乃至２０のいずれか一項に記載の制御装置の制御方法。
【請求項２８】
複数の通信ノードから、パケットを処理するための処理規則を設定する通信ノードを選択する処理と、
前記選択した通信ノードに対して前記処理規則を設定する処理と、
を制御装置を制御するコンピュータに実行させるプログラムであって、
前記処理規則を設定する処理は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定するプログラム。
【請求項２９】
前記処理規則を設定する処理は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードから、前記処理規則を設定する通信ノードを再度選択する請求項２８のプログラム。
【請求項３０】
前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち、すでに前記処理規則を設定した通信ノードから、前記設定した処理規則を削除する処理をさらに実行させる請求項２８又は２９のプログラム。
【請求項３１】
前記処理規則を設定する処理が前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記パケットの転送経路を再度計算する処理をさらに実行させる請求項２８乃至３０のいずれか一項に記載のプログラム。
【請求項３２】
前記通信ノードを選択する処理は、
優先度に基づいて、前記複数の通信ノードから、前記処理規則を設定する通信ノードを選択する請求項２８乃至３１のいずれか一項に記載のプログラム。
【請求項３３】
前記処理規則を設定する処理は、
前記選択された通信ノードに対応する前記処理規則を生成できないことに応じて、前記選択された通信ノードに対して前記処理規則の設定を行わない請求項２８乃至３２のいずれか一項に記載のプログラム。
【請求項３４】
前記処理規則を設定する処理は、
前記複数の通信ノード間の少なくとも１つにリンクが存在しないことに応じて、前記選択された通信ノードに対して、前記処理規則の設定を行わない請求項２８乃至３３のいずれか一項に記載のプログラム。
【請求項３５】
前記処理規則を設定する処理は、
仮想回線を終端する２つの通信ノードから選択したいずれかの通信ノードに前記処理規則を設定できたことに応じて、前記仮想回線を終端する他の通信ノードに対して前記処理規則を設定する請求項２８乃至３２のいずれか一項に記載のプログラム。
【請求項３６】
前記処理規則を設定する処理は、
前記仮想回線に収容されるパケットを転送する通信ノードが存在する場合に、前記仮想回線を終端する通信ノードに対して前記処理規則を設定する請求項３５のプログラム。
【請求項３７】
前記仮想回線に収容されるパケットを転送する通信ノードの存在の有無を検証する転送経路検証処理をさらに含み、
前記処理規則を設定する処理は、前記転送経路検証処理における検証結果に応じて、前記仮想回線を終端する通信ノードに対して前記処理規則を設定するか否かを決定する請求項３６のプログラム。
【請求項３８】
前記処理規則を設定する処理は、
冗長化された複数の通信ノードから現用系の通信ノードを選択し、前記現用系の通信ノードに対して前記処理規則を設定できたことに応じて、前記冗長化された複数の通信ノードのうち待機系の通信ノードに対して、前記処理規則を設定する請求項２８乃至３２のいずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願についての記載）
本発明は、日本国特許出願：特願２０１２−２８８３７７号（２０１２年１２月２８日出願）の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。【０００２】
本発明は、制御装置、制御装置の制御方法及びプログラムに関する。特に、ネットワークを集中制御する制御装置、制御装置の制御方法及びプログラムに関する。
【背景技術】
【０００３】
近年、オープンフロー（ＯｐｅｎＦｌｏｗ）という技術が提案されている（非特許文献１、２参照）。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献２に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件（Ｍａｔｃｈ  Ｆｉｅｌｄｓ）と、フロー統計情報（Ｃｏｕｎｔｅｒｓ）と、処理内容を定義したインストラクション（Ｉｎｓｔｒｕｃｔｉｏｎｓ）と、の組が定義される（非特許文献２の「４．１  Ｆｌｏｗ  Ｔａｂｌｅ」の項参照）。【０００４】
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件（非特許文献２の「４．３  Ｍａｔｃｈ  Ｆｉｅｌｄｓ」参照）を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報（カウンタ）を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容（指定ポートからのパケット送信、フラッディング、廃棄等）を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、"ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ"、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年１１月２７日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】"ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ"  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２４（２０１２）年１１月２７日検索］、インターネット〈URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
なお、上記先行技術文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者らによってなされたものである。【０００７】
上述のように、制御装置により集中管理されたネットワークにおいては、制御装置（例えば、オープンフローコントローラ）から通信ノード（例えば、オープンフロースイッチ）に対して処理規則を設定することで、パケット転送を実現する。その際、制御装置が、複数の通信ノードのそれぞれに対して、処理規則の設定を並列して（一括して）行うと、場合によっては通信ノードへの処理規則の設定が無駄になる可能性がある。【０００８】
例えば、図１５を参照すると、制御装置２００は、通信端末２０１から通信端末２０２へパケット転送を実現するために、通信ノード２０３〜２０５に対して処理規則を設定する必要がある。通信ノード２０３〜２０５に対する処理規則の設定を並列に行った際に、例えば、通信ノード２０５に対する処理規則の設定が失敗すると、通信ノード２０３や通信ノード２０４への処理規則の設定が無駄となる可能性がある。制御装置から通信ノードへの処理規則の設定には、制御装置自身のリソースや、ネットワーク資源の利用が必要なため、通信ノードへの処理規則の設定が無駄となる事態は回避するのが望ましい。【０００９】
そこで、本発明の目的は、集中制御型ネットワークにおいて、通信ノードへの処理規則の設定が無駄となる可能性を減ずることに寄与する制御装置、制御装置の制御方法及びプログラム、を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１の視点によれば、複数の通信ノードから選択した通信ノードに対し、パケットを処理するための処理規則を設定する処理規則設定部を備え、前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定する制御装置が提供される。【００１１】
本発明の第２の視点によれば、複数の通信ノードから、パケットを処理するための処理規則を設定する通信ノードを選択する工程と、前記選択した通信ノードに対して前記処理規則を設定する工程と、を含み、前記処理規則を設定する工程は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定する制御装置の制御方法が提供される。【００１２】
なお、本方法は、ネットワークを集中制御する制御装置という、特定の機械に結びつけられている。【００１３】
本発明の第３の視点によれば、複数の通信ノードから、パケットを処理するための処理規則を設定する通信ノードを選択する処理と、前記選択した通信ノードに対して前記処理規則を設定する処理と、を制御装置を制御するコンピュータに実行させるプログラムであって、前記処理規則を設定する処理は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定するプログラムが提供される。【００１４】
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント（ｎｏｎ−ｔｒａｎｓｉｅｎｔ）なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１５】
本発明の各視点によれば、集中制御型ネットワークにおいて、通信ノードへの処理規則の設定が無駄となる可能性を減ずることに寄与する制御装置、制御装置の制御方法及びプログラム、が提供される。
【図面の簡単な説明】
【００１６】
【図１】一実施形態の概要を説明するための図である。
【図２】第１の実施形態に係る通信システムの一例を示す図である。
【図３】通信ノード１０の内部構成の一例を示すブロック図である。
【図４】制御装置２０の内部構成の一例を示すブロック図である。
【図５】制御装置２０の動作の一例を説明するためのシーケンス図である。
【図６】パケット転送経路の設定に係る処理の順序の一例を説明するための図である。
【図７】制御装置２０の動作の別の一例を説明するためのシーケンス図である。
【図８】第２の実施形態に係る制御装置２０ａが用いる優先度の一例を示す図である。
【図９】第３の実施形態に係る制御装置２０ｂの動作の一例を説明するためのシーケンス図である。
【図１０】第４の実施形態に係る通信システムの一例を示す図である。
【図１１】制御装置２０ｃの内部構成の一例を示すブロック図である。
【図１２】制御装置２０ｃの動作の一例を説明するためのシーケンス図である。
【図１３】制御装置２０ｃの動作の別の一例を説明するためのシーケンス図である。
【図１４】第５の実施形態に係る通信システムの一例を示す図である。
【図１５】処理規則の設定を並列して行う場合の問題を説明するための図である。
【発明を実施するための形態】
【００１７】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、この概要の記載はなんらの限定を意図するものではない。
【００１８】
上述のように、制御装置が制御する複数の通信ノードに対し、処理規則の設定を並列に実行すると、既に設定した処理規則が無駄になる可能性がある。そのため、集中制御型ネットワークにおいて、通信ノードへの処理規則の設定が無駄となる可能性を減ずる制御装置が望まれる。
【００１９】
そこで、一例として図１に示す制御装置１００を提供する。制御装置１００は、複数の通信ノードから選択した通信ノードに対し、パケットを処理するための処理規則を設定する処理規則設定部１０１を備える。処理規則設定部１０１は、選択した通信ノードに対し処理規則を設定できたことに応じて、複数の通信ノードのうち選択した通信ノード以外の通信ノードに対し、処理規則を設定する。
【００２０】
制御装置１００は、複数の通信ノードに対し、処理規則の設定を並列に行わない。制御装置１００は、複数の通信ノードから、少なくとも１以上の通信ノードを選択し、選択された通信ノードに対して処理規則を設定する。さらに、制御装置１００は、選択された通信ノードに処理規則が正常に設定できたことを確認したことに応じて、処理規則の設定が完了していない通信ノードを選択し、処理規則を設定する。その結果、通信ノードに対する処理規則の設定に失敗した場合には、以降の処理を中断でき、通信ノードへの処理規則の設定が無駄となる可能性を減ずることができる。
【００２１】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００２２】
［第１の実施形態］
第１の実施形態について、図面を用いてより詳細に説明する。
【００２３】
図２は、第１の実施形態に係る通信システムの一例を示す図である。図２を参照すると、ネットワーク間の接続を実現する通信ノード１０−１〜１０−４と、通信ノード１０−１〜１０−４から構成されるネットワークを制御する制御装置２０と、通信端末３０−１及び３０−２と、を含む構成が示されている。例えば、制御装置２０はオープンフローコントローラに相当し、通信ノード１０−１〜１０−４はオープンフロースイッチに相当する。なお、以降の説明において、通信ノード１０−１〜１０−４を特に区別する必要のないときは「通信ノード１０」と表記する。
【００２４】
図３は、通信ノード１０の内部構成の一例を示すブロック図である。通信ノード１０は、通信部１１と、テーブル管理部１２と、テーブルデータベース（テーブルＤＢ）１３と、転送処理部１４と、オーバーレイ設定部１５と、を含んで構成されている。
【００２５】
通信部１１は、通信ノード１０に処理規則を設定する制御装置２０との通信を実現する手段である。通信部１１は、例えば、非特許文献２のオープンフロープロトコルを用いて制御装置２０と通信する。但し、通信部１１と制御装置２０との通信プロトコルは、オープンフロープロトコルに限定されるものではない。
【００２６】
また、通信部１１は、制御装置２０からの処理規則の設定を正常に受け付けることができない場合には、各種のエラーコードを含むエラーメッセージを制御装置２０に送信する。例えば、通信ノード１０の負荷が高く、処理規則を受け付けることができない場合や、処理規則を格納するデータベースのリソースが不足する場合などに、エラーメッセージが送信される。
【００２７】
テーブル管理部１２は、テーブルＤＢ１３に記憶されているテーブルを管理する手段である。より具体的には、テーブル管理部１２は、制御装置２０から指示された処理規則をテーブルＤＢ１３に登録し、転送処理部１４から新規パケットを受信したことを通知されると、制御装置２０に対し、処理規則の設定を要求する。また、テーブル管理部１２は、各テーブルに格納された処理規則の失効条件が成立する場合に当該処理規則を削除又は失効させる処理を行う。
【００２８】
テーブルＤＢ１３は、転送処理部１４が受信パケットの処理を行う際に参照するテーブルを１つ以上格納可能なデータベースによって構成される。
【００２９】
転送処理部１４は、テーブル検索部１４１と、アクション実行部１４２と、を含んで構成される。テーブル検索部１４１は、テーブルＤＢ１３に格納されたテーブルから、受信パケットに適合するマッチフィールドを持つ処理規則を検索する手段である。アクション実行部１４２は、テーブル検索部１４１にて検索された処理規則のインストラクションフィールドに示す処理内容に従ってパケット処理を行う手段である。また、転送処理部１４は、受信パケットに適合するマッチフィールドを持つ処理規則が見つからなかった場合は、その旨をテーブル管理部１２に通知する。
【００３０】
テーブル管理部１２は、受信パケットに対応する処理規則が存在しない場合、通信部１１を介して制御装置２０に対し、処理規則の設定を要求する。さらに、転送処理部１４は、パケット処理に応じて、テーブルＤＢ１３に登録されている統計情報を更新する。
【００３１】
オーバーレイ設定部１５は、通信部１１を介して制御装置２０から、オーバーレイネットワークの形成に係る指示を受け付けると、当該指示に従ってオーバーレイネットワークを形成するためのデバイス設定を行う。例えば、通信ノード１０が、仮想回線の設定が可能なパケットトランスポートノードとしての機能を備える場合には、オーバーレイ設定部１５は、指示されたラベルで受信パケットをカプセル化するデバイス設定を行う。
【００３２】
図４は、制御装置２０の内部構成の一例を示すブロック図である。制御装置２０は、ネットワーク構成管理部２１と、ネットワーク構成データベース（ネットワーク構成ＤＢ）２２と、制御メッセージ処理部２３と、経路計算部２４と、ネットワーク経路データベース（ネットワーク経路ＤＢ）２５と、処理規則設定部２６と、通信ノード１０と通信を行うノード通信部２７と、を含んで構成される。
【００３３】
ネットワーク構成管理部２１は、制御装置２０が制御対象とする通信システムのネットワーク構成を管理する。より具体的には、ネットワーク構成管理部２１は、通信ノード１０−１〜１０−４間のリンクに関する情報や、接続ポートに関する情報を管理する。ネットワーク構成管理部２１は、通信ノード１０に問い合わせることで、これらの情報を入手してもよいし、ネットワーク管理者が情報を入力してもよい。ネットワーク構成管理部２１は、制御対象とするネットワークの構成に関する情報を、ネットワーク構成ＤＢ２２に登録する。
【００３４】
制御メッセージ処理部２３は、通信ノード１０から受信した制御メッセージを解析して、制御装置２０内の該当する処理手段に制御メッセージを引き渡す。制御メッセージ処理部２３は、例えば、処理規則の設定を要求する制御メッセージを受け付ければ、経路計算部２４に引き渡し、エラーメッセージを受信すれば、処理規則設定部２６にエラーメッセージを引き渡す。
【００３５】
経路計算部２４は、ネットワーク構成ＤＢ２２に格納されているネットワーク構成に基づいて、通信ノード１０におけるパケットの転送経路を計算する。経路計算部２４は、計算したネットワーク経路をネットワーク経路ＤＢ２５に登録する。なお、本実施形態においては、経路計算部２４が制御装置２０に含まれる場合について説明するが、パケットの転送経路に係る計算を制御装置２０の内部で行うことを限定する趣旨ではない。例えば、ネットワーク管理者がパケットの転送経路を予め計算し、制御装置２０に入力する場合には、パケットの転送経路を計算する経路計算部２４は不要である。あるいは、制御装置２０と通信可能な装置であって、パケット転送経路の計算を行う機能を有する装置を配置し、制御装置２０から当該装置にパケット転送経路の計算を依頼し、パケット転送経路を受領するような形態であってもよい。
【００３６】
処理規則設定部２６は、通信ノード１０に設定する処理規則の管理を行う。より具体的には、経路計算部２４にて計算されたパケットの転送経路に基づき、通信ノード１０に設定する処理規則を生成すると共に、生成した処理規則を通信ノード１０−１〜１０−４に設定する。その際、処理規則設定部２６は、通信ノード１０−１〜１０−４に対して、並列に処理規則を設定するのではなく、処理規則の設定を行う通信ノードを、順次、選択し、選択した通信ノードに対して処理規則を設定する。
【００３７】
なお、図４に示す制御装置２０の各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、後述する各処理を実行させるコンピュータプログラムにより実現することもできる。
【００３８】
続いて、制御装置２０の動作について図面を参照して説明する。なお、図５は例示であり、制御装置２０の動作は図５のシーケンスに限定されない。図５は、制御装置２０の動作の一例を説明するためのシーケンス図である。ここでは、図２に示す通信端末３０−１から通信端末３０−２に向けたパケットの転送を実現する際の制御装置２０の動作について説明する。その際、通信ノード１０−１〜１０−４の間のリンクは図２に示すとおり形成されているものとする。
【００３９】
図５に示す制御装置２０の動作を開始する契機は、ネットワークの運用の開始時におけるネットワーク管理者からの指示であってもよいし、通信ノード１０から処理規則の設定要求を受けた場合であってもよい。
【００４０】
ステップＳ０１において、経路計算部２４は、通信端末３０−１が送信するパケットの転送経路として、通信ノード１０−１、１０−２及び１０−３を経由する経路を、転送経路として計算する。計算された転送経路は、ネットワーク経路ＤＢ２５に登録される。
【００４１】
ステップＳ０２において、処理規則設定部２６は、ネットワーク経路ＤＢ２５に記憶された転送経路に基づいて、処理規則を設定する通信ノード１０を決定する。その際、処理規則設定部２６は、通信ノード１０−１〜１０−３の中から、通信ノードを選択することで、処理規則を設定する通信ノードを定める。本実施形態に係る制御装置２０は、処理規則が設定されるべき通信ノードから無作為に、特定の通信ノードを選択し、処理規則を設定する通信ノードに定める。処理規則設定部２６は、初めに、通信ノード１０−１〜１０−３の中から、通信ノード１０−３を、処理規則を設定すべき通信ノードと定めたものとする。処理規則設定部２６は、処理規則を設定すべき通信ノードが定まると、当該通信ノードに対する処理規則の生成を開始する。
【００４２】
ステップＳ０３において、処理規則設定部２６は、前ステップで定められた通信ノードに設定する処理規則の生成に成功したか否かを判定する。処理規則の生成に失敗する場合には種々の原因が考えられるが、一例として、制御装置２０内のリソース不足等が挙げられる。
【００４３】
処理規則の生成に失敗すれば（ステップＳ０３、Ｎｏ分岐）、図５に示す処理を終了する。つまり、通信ノード１０−３に対する処理規則の生成に失敗すれば、他の通信ノード１０−１及び１０−２に対する処理規則の生成、及びその設定は行われない。
【００４４】
処理規則の生成に成功すれば（ステップＳ０３、Ｙｅｓ分岐）、処理規則設定部２６は、ステップＳ０２で定められた通信ノードに対して、制御メッセージ処理部２３及びノード通信部２７を介して、処理規則の設定を試みる（ステップＳ０４）。
【００４５】
ステップＳ０５において、処理規則設定部２６は、前ステップにおける処理規則の設定が成功したか否か（処理規則が正常に設定されたか否か）を判定する。処理規則設定部２６は、例えば、通信ノード１０からエラーメッセージを受信した場合に、処理規則の設定に失敗したと判断する。
【００４６】
処理規則の設定に失敗している場合には（ステップＳ０５、Ｎｏ分岐）、図５に示す処理を終了する。この場合においても、通信ノード１０−３に対する処理規則の設定に失敗すれば、他の通信ノード１０−１及び１０−２に対する処理規則の生成、及びその設定は行われない。
【００４７】
処理規則の設定に成功した場合には（ステップＳ０５、Ｙｅｓ分岐）、処理規則設定部２６は、パケットの転送経路を実現するために処理規則の設定が必要な通信ノード１０の全てに対して、処理規則の設定が終了したか否かを判定する（ステップＳ０６）。例えば、通信ノード１０−３に対する処理規則の設定が完了し、通信ノード１０−１及び１０−２に対する処理規則の設定を試みていない場合（ステップＳ０６、Ｎｏ分岐）には、これらの通信ノードに対する処理規則を設定する（ステップＳ０２に遷移する）。一方、処理規則設定部２６は、全ての通信ノード１０に対して、処理規則の設定が完了している場合（ステップＳ０６、Ｙｅｓ分岐）には、図５に示す処理を終了する（パケットの転送経路の設定処理が正常に終了する）。
【００４８】
以上のように、制御装置２０は、複数の通信ノードから処理規則を設定する通信ノードを選択し、選択した通信ノードに対する処理規則の設定ができたことに応じて、処理規則の設定の終了していない通信ノードから、処理規則を設定する通信ノードを再度選択する。さらに、再度選択された通信ノードに対して、処理規則の設定を試みる。即ち、制御装置２０は、複数の通信ノードから処理規則を設定する通信ノードを選択し、選択した通信ノードに対する処理規則の設定が失敗したことに応じて、処理規則の設定を試みていない通信ノードに対して、処理規則の設定を行わない。
【００４９】
図６は、パケット転送経路の設定に係る処理の順序の一例を説明するための図である。上述したように、制御装置２０では、それぞれの通信ノードに設定する処理規則の生成に成功しなければ、それ以降の処理（例えば、図５のステップＳ０４以降の処理）を行わない。さらに、制御装置２０は、それぞれの通信ノードに対する処理規則の設定に成功しなければ、他の通信ノードに設定する処理規則に関する処理（例えば、図５のステップＳ０２以降の処理）を行わない。即ち、制御装置２０は、パケットの転送経路を実現するため、各通信ノードに対して処理規則を設定する際には、図６に示すようなツリー構造（木構造）に従った処理を行う。
【００５０】
図６を参照すると、通信ノード１０−３に対する処理規則の生成が成功しなければ、通信ノード１０−３に対して処理規則を設定する処理を行わない。また、通信ノード１０−３の処理規則に関する処理が成功しなければ、通信ノード１０−２の処理規則に関する処理を行わない。さらに、通信ノード１０−１の処理規則に関する処理が成功しなければ、通信端末３０−１から通信端末３０−２に向けたパケット転送経路の設定処理は完了しない。
【００５１】
なお、本実施形態に係る制御装置２０では、複数の通信ノードから１の通信ノードを選択して、処理規則の生成及び設定を行うことを説明した。しかし、処理規則を設定する通信ノードに関する決定を限定する趣旨ではない。例えば、パケットの転送経路が９個の通信ノードにより形成される場合を考える。この場合、９個の通信ノードを、それぞれ３つのグループに振り分ける。より具体的には、それぞれのグループには、３個の通信ノードが含まれるように９個の通信ノードを振り分ける。その上で、３つのグループから無作為に処理規則の設定を行うグループを選択し、選択されたグループに含まれる通信ノードに対して、並列して処理規則の生成及び設定を行ってもよい。このように、複数の通信ノードを、少なくとも１つの通信ノードを含む複数のグループに振り分け、振り分けたグループの中から選択されたグループに含まれる通信ノードに対して、処理規則を並列に設定してもよい。
【００５２】
また、本実施形態においては、選択した通信ノードに対する処理規則の設定に失敗すれば、その後、特段の処理を行わず、図５に示すパケット転送経路の設定処理を終了する場合について説明した。しかし、選択した通信ノードに対する処理規則の設定に失敗したことに応じた対応を行うこともできる。
【００５３】
図７は、制御装置２０の動作の別の一例を説明するためのシーケンス図である。図７を参照すると、図５に示す処理に対してステップＳ０７に係る処理が追加されている。
【００５４】
ステップＳ０７において、処理規則設定部２６は、既に処理規則の設定が終了した通信ノードが存在すれば、当該通信ノードに対して設定した処理規則を削除する。即ち、パケットの転送経路を構成する全ての通信ノードに対して処理規則が正常に設定されなければ、各通信ノードに対して個別に設定した処理規則は無駄であり、このような処理規則は削除されるのが望ましいためである。また、無駄な処理規則を削除することで、通信ノードのリソースを開放することができる（リソースを効率的に使用できる）。
【００５５】
また、経路計算部２４は、ステップＳ０７を経由してステップＳ０１に遷移した場合には、パケットの転送経路を再度計算するのが望ましい。即ち、選択した通信ノードに対して処理規則の設定が失敗するのであれば、初めに計算したパケットの転送経路を用いてパケット転送することはできないので、新たなパケットの転送経路の確立を模索する。
【００５６】
本実施形態に係る制御装置２０では、複数の通信ノードに対して並列に処理規則を設定する場合と比較して、既に設定された処理規則が無駄となる可能性が減少する。通信ノードに対する処理規則の設定が成功したことを確認した後に、他の通信ノードに対して処理規則の設定を行うためである。
【００５７】
［第２の実施形態］
続いて、第２の実施形態について図面を参照して詳細に説明する。
【００５８】
なお、本実施形態に係る制御装置２０ａの内部構成は、第１の実施形態に係る制御装置２０の内部構成と相違する点は存在しないので、制御装置２０ａに関する図４に相当する説明を省略する。また、制御装置２０と制御装置２０ａの動作は、図５のステップＳ０２における処理が異なるので、図５のステップＳ０２に相当する処理の説明を行い、他の処理に関する説明を省略する。
【００５９】
制御装置２０では、処理規則を設定すべき複数の通信ノードの中から、順次、処理規則に関する処理を実行する通信ノードを決定する。一方、本実施形態に係る制御装置２０ａでは、予め定めた優先度に従って、処理規則に関する処理を実行する通信ノードを選択する（通信ノードを決定する）。
【００６０】
図８は、制御装置２０ａが用いる優先度の一例を示す図である。図８を参照すると、複数の通信ノードを、それぞれ、出口ノード、入口ノード、経由ノードの種別に振り分け、各種別に対して優先度を与える。
【００６１】
出口ノードとは、制御対象とするネットワークから他のネットワーク等にパケットが転送される際の出口となるノードである。例えば、図２において、通信端末３０−１から通信端末３０−２に向けたパケット転送の場合には、通信ノード１０−３が出口ノードに相当する。入口ノードとは、他のネットワーク等から最初にパケットを受け付けるノードである。例えば、上述の例では、通信ノード１０−１が入口ノードに相当する。経由ノードとは、パケット転送経路を実現するために必要な通信ノードであって、出口ノード及び入口ノードのいずれでもないノードが該当する。例えば、上述の例では、通信ノード１０−２が経由ノードに相当する。
【００６２】
制御装置２０ａでは、これらの通信ノードの種別に対して、予め優先度を与え、優先度の高い通信ノードから順に、処理規則の生成及び設定を行う。
【００６３】
図８を参照すると、出口ノードに対して最も高い優先度が与えられているので、通信ノード１０−３の処理規則に関する処理が最初に実行される。続いて、入口ノードに対して経由ノードよりも高い優先度が与えられているので、通信ノード１０−１の処理規則に関する処理が実行される。最後に、経由ノードに相当する通信ノード１０−２の処理規則に関する処理が実行される。
【００６４】
図８に示す優先度はあくまでも例示であって、優先度の決定を限定する趣旨ではない。例えば、出口ノードと入口ノードの優先度が逆であってもよい。あるいは、出口ノード及び入口ノードに対して、同等の優先度を与え（但し、経由ノードよりは高い優先度を与える）、出口ノード及び入口ノードに対して、並列に処理規則の生成及び設定を行ってもよい。
【００６５】
ここで、パケットの転送経路の両端に位置する出口ノードや入口ノードは、処理するパケット量が経由ノードよりも多いことが予想される。すると、これら転送経路の両端に位置するノードにおける負荷が、経由ノードにおける負荷より高く、処理規則の設定に失敗する可能性が高いと考えることができる。経由ノードの処理規則を最初に設定した後に、出口ノードや入口ノードに対する処理規則の設定に失敗してしまうと、経由ノードに対する処理規則の設定が無駄となる。そのため、本実施形態に係る制御装置２０ａでは、処理規則の設定に失敗した場合には、他の通信ノードへの処理規則が無駄となる可能性が高い通信ノードに対して、高い優先度を与え、この優先度に従って処理規則の生成及び設定を行う通信ノードを決定する。その結果、より一層、既に設定された処理規則が無駄となる可能性を減ずることができる。
【００６６】
［第３の実施形態］
続いて、第３の実施形態について図面を参照して詳細に説明する。
【００６７】
なお、本実施形態に係る制御装置２０ｂの内部構成は、制御装置２０及び２０ａの内部構成と相違する点は存在しないので、制御装置２０ｂに関する図４に相当する説明を省略する。
【００６８】
第１及び第２の実施形態においては、処理規則を設定すべき通信ノード間には、既にリンクが形成されているものとして説明した。しかし、実際には、通信ノード間おいて、必要なリンクが形成されているとは限らない。例えば、図２において、通信ノード１０−１〜１０−３の間のリンクは既に形成されているが、通信ノード１０−２及び１０−３の間のリンクが形成されていない場合も想定できる。
【００６９】
そこで、本実施形態に係る制御装置２０ｂでは、通信ノードに関する処理規則の生成及び設定を行う前に、必要なリンクが形成されているか否かを判定する。判定した結果、リンクを形成することができなければ、通信ノードに対する処理規則の設定を行わない。
【００７０】
図９は、制御装置２０ｂの動作の一例を説明するためのシーケンス図である。ここでは、図２に示す通信端末３０−１から通信端末３０−２に向けたパケットの転送を実現する際の制御装置２０の動作について説明する。その際、通信ノード１０−２と通信ノード１０−３の間のリンクは形成されていないものとする。
【００７１】
制御装置２０ｂは、パケットの転送経路の計算（ステップＳ０１）を行った後に、ステップＳ１１〜Ｓ１３に係る処理を実行する。
【００７２】
ステップＳ１１において、経路計算部２４は、転送経路を実現するリンクが存在するか否かを判定する。より具体的には、経路計算部２４は、ネットワーク構成ＤＢ２２にアクセスし、パケットの転送経路に含まれる通信ノード間の少なくとも１つにリンクが形成されているかを確認する。
【００７３】
リンクが形成されていれば（ステップＳ１１、Ｙｅｓ分岐）、図５を用いて説明したステップＳ０２以降の処理が実行される。
【００７４】
リンクが形成されていなければ（ステップＳ１１、Ｎｏ分岐）、経路計算部２４は、リンクが欠如した通信ノード間にリンクの形成が可能か否かを判定する（ステップＳ１２）。例えば、通信ノード１０−２において通信ノード１０−３との間にリンクを形成するためのリソースが不足する等の場合には、通信ノード間にリンクは形成できないと判断される。リンクが形成できない場合には、図９に示す処理を終了する。
【００７５】
リンクの形成ができる場合（ステップＳ１２、Ｙｅｓ分岐）には、経路計算部２４は、ノード通信部２７を介して、通信ノード１０−２及び１０−３に対してリンク形成の指示を行う。その際、経路計算部２４は、処理規則設定部２６に対して、パケットの転送経路を生成した旨を通知する。通知を受けた処理規則設定部２６は、図５を用いて説明したステップＳ０２以降の処理を実行する。
【００７６】
以上のように、本実施形態に係る制御装置２０ｂでは、通信ノードに対する処理規則の生成及び設定に先立ち、通信ノード間にリンクが形成されているか否かを判定する。通信ノード間にリンクが形成できない場合には、通信ノードに対する処理規則の生成及び設定を実行しないので、通信ノードに対して無駄な処理規則を設定することがない。即ち、設定された処理規則が無駄となる可能性を減ずることができる。
【００７７】
［第４の実施形態］
続いて、第４の実施形態について図面を参照して詳細に説明する。
【００７８】
上述の第１乃至第３の実施形態においては、パケットの転送経路に基づいて処理規則を生成し、パケットの転送経路に含まれる通信ノードに処理規則を設定する。しかし、パケットの転送経路に基づかずに、通信ノードに対して処理規則を設定する場合もある。そのような場合においても、複数の通信ノードに対して処理規則の設定を並列して行うと、既に設定された処理規則が無駄となる可能性がある。
【００７９】
本実施形態においては、パケットの転送経路に基づかずに、複数の通信ノードに対して処理規則を設定する一例として、ネットワーク上に仮想回線（トンネル）を形成し、通信ノード間をトンネリングする場合について説明する。
【００８０】
図１０は、本実施形態に係る通信システムの一例を示す図である。図１０を参照すると、ネットワーク上に形成された仮想回線を終端するエンドポイント４０−１及び４０−２と、通信ノード５０−１〜５０−３と、少なくともエンドポイント４０−１及び４０−２を制御する制御装置２０ｃと、を含む構成が示されている。なお、以降の説明において、エンドポイント４０−１及び４０−２を特に区別する必要のないときは「エンドポイント４０」と表記する。同様に、通信ノード５０−１〜５０−３を特に区別する必要のないときは「通信ノード５０」と表記する。
【００８１】
エンドポイント４０は、ネットワーク上に形成された仮想回線を終端する通信ノードである。より具体的には、エンドポイント４０は、ＭＰＬＳ−ＴＰ（Multi Protocol Label Switching-Transport Profile）をサポートしており、エンドポイント４０−１及び４０−２の間に仮想回線を形成する。その際、パケットの送信側となるエンドポイント４０は、パケット転送の際に、受信パケットを、ＭＰＬＳラベルを用いてカプセル化する。カプセル化された受信パケットを受け取った受信側のエンドポイント４０は、ＭＰＬＳラベルを用いてパケットのカプセル化を解除する（デカプセル化する）。なお、本実施形態において、エンドポイント４０がサポートするトンネリング技術はＭＰＬＳ−ＴＳとして説明するが、トンネリング技術をＭＰＬＳ−ＴＳに限定する趣旨ではない。エンドポイント４０は、他のプロトコルを用いて、ネットワークの仮想回線を終端してもよい。
【００８２】
通信ノード５０−１〜５０−３は、エンドポイント４０がカプセル化したパケットを転送する通信ノードである。通信ノード５０−１〜５０−３は、制御装置２０ｃの制御対象となる通信ノードでもよいし、制御の対象から外れた通信ノードであってもよい。
【００８３】
図１１は、制御装置２０ｃの内部構成の一例を示すブロック図である。なお、図１１において図４と同一構成要素には、同一の符号を表し、その説明を省略する。
【００８４】
図４に示す制御装置２０と図１１に示す制御装置２０ｃの相違点は、経路計算部２４に代えて転送経路検証部２８を備える点と、処理規則設定部２６の動作が異なる点と、ネットワーク経路ＤＢ２５を必要としない点である。
【００８５】
処理規則設定部２６は、ネットワーク管理者が図１０には図示しない通信端末等を使用して、エンドポイント４０−１及び４０−２の間に仮想回線の形成に係る指示を受け付けた場合に、エンドポイント４０−１及び４０−２に対し、当該指示を受けた仮想回線を実現する処理規則を設定する。より具体的には、処理規則設定部２６は、エンドポイント４０−１及び４０−２に対して、パケットをカプセル化又はデカプセル化する際に用いるＭＰＬＳラベルを設定する。
【００８６】
転送経路検証部２８は、エンドポイント４０−１及び４０−２の間に仮想回線を形成する際に、カプセル化されたパケットを転送する通信ノード（リソース）の存在の有無を検証する手段である。転送経路検証部２８は、処理規則設定部２６から問い合わせを受けると、仮想回線に収容されるパケットを転送する通信ノードの有無を検証し、検証結果を処理規則設定部２６に応答する。なお、転送経路検証部２８は、ネットワーク構成管理部２１がエンドポイント４０及び通信ノード５０から収集した情報を記憶するネットワーク構成ＤＢ２２にアクセスすることで、情報が収集された範囲のネットワークトポロジを算出する。さらに、転送経路検証部２８は算出したネットワークトポロジに基づいて、処理規則設定部２６からの問い合わせに応答する。
【００８７】
例えば、図１０に示すネットワークには、エンドポイント４０においてカプセル化されたパケットを転送するための通信ノード５０−１及び５０−２（又は、通信ノード５０−３）が存在するため、転送経路検証部２８は、処理規則設定部２６からの問い合わせに対して、エンドポイント４０−１及び４０−２の間にはカプセル化されたパケットを転送するための通信ノードが存在する旨の応答を行う。一方、例えば、通信ノード５０−１及び５０−３が図１０に示すネットワークに存在しなければ、カプセル化されたパケットを転送するための通信ノードが存在しない旨の応答を行う。
【００８８】
なお、転送経路検証部２８は、処理規則設定部２６の問い合わせを受けた際に、カプセル化されたパケットを転送する通信ノードの有無を検証している（仮想回線に収容されるパケットを転送する通信ノードの有無を確認している）。しかし、転送経路検証部２８は、予め、このような通信ノードの有無に関する検証をしておいてもよい。
【００８９】
図１２は、制御装置２０ｃの動作の一例を説明するためのシーケンス図である。ここでは、図１０に示すエンドポイント４０−１及び４０−２の間に仮想回線を形成する際の制御装置２０ｃの動作について説明する。
【００９０】
ステップＳ２１において、処理規則設定部２６は、ネットワーク管理者がノード通信部２７を介して入力する情報等に基づいて、ネットワーク上に形成される仮想回線のエンドポイントを決定する。例えば、図１０に示すネットワークにおいては、エンドポイント４０−１及び４０−２が、処理規則を設定すべきエンドポイントとして選択される。
【００９１】
ステップＳ２２において、処理規則設定部２６は、前ステップで選択されたエンドポイントのうち、処理規則を設定するエンドポイントを決定する。その際、処理規則設定部２６は、両端のエンドポイントのうちいずれか一方を、優先的に処理規則を設定するエンドポイントとして決定する。例えば、図１０においては、処理規則設定部２６は、エンドポイント４０−１を、優先的に処理規則を設定するエンドポイントとして定める。但し、優先的に処理規則を設定するエンドポイントを送信側のエンドポイントに限定する趣旨ではなく、受信側のエンドポイントに対して優先的に処理規則を設定するように決定してもよい。処理規則設定部２６は、処理規則を設定すべきエンドポイントが定まると、当該エンドポイントに設定する処理規則の生成を開始する。
【００９２】
ステップＳ２３において、処理規則設定部２６は、前ステップで定められたエンドポイントに設定する処理規則の生成に成功したか否かを判定する。
【００９３】
処理規則の生成に失敗すれば（ステップＳ２３、Ｎｏ分岐）、図１２に示す処理を終了する。例えば、優先的に処理規則を設定するエンドポイントして定めたエンドポイント４０−１に対する処理規則の生成に失敗すれば、他方のエンドポイント４０−２に設定する処理規則の生成、及びその設定は行われない。
【００９４】
処理規則の生成に成功すれば（ステップＳ２３、Ｙｅｓ分岐）、処理規則設定部２６は、ステップＳ２２で定められたエンドポイントに対して、制御メッセージ処理部２３及びノード通信部２７を介して、処理規則の設定を試みる（ステップＳ２４）。
【００９５】
ステップＳ２５において、処理規則設定部２６は、カプセル化されたパケットを転送する通信ノードの有無を確認する（リソースが確保できているか否かを確認する）。より具体的には、処理規則設定部２６は、転送経路検証部２８に対して、２つのエンドポイント４０の間にパケットを転送する通信ノードが存在するか否かを問い合わせる。問い合わせを受けた転送経路検証部２８は、仮想回線に収容されるパケットを転送する通信ノードの有無を検証し、検証結果を処理規則設定部２６に応答する。
【００９６】
リソースが確保できていない（通信ノードが存在しない）場合には（ステップＳ２５、Ｎｏ分岐）、処理規則設定部２６は、既に処理規則の設定が終了したエンドポイントに対して設定した処理規則を削除する（ステップＳ２７）。即ち、カプセル化されたパケットを転送する通信ノードが存在しなければ、エンドポイントに設定した処理規則は無駄であり、このような処理規則は削除されるべきだからである。処理規則の削除が完了すれば、図１２に示す処理を終了する。
【００９７】
リソースが確保できていれば（ステップＳ２５、Ｙｅｓ分岐）、処理規則設定部２６は、ステップＳ２４における処理規則の設定が成功したか否か（処理規則が正常に設定されたか否か）を判定する（ステップＳ２６）。
【００９８】
処理規則の設定に失敗している場合には（ステップＳ２６、Ｎｏ分岐）、既に設定した処理規則を削除（ステップＳ２７）した後に、図１２に示す処理を終了する。例えば、優先的に処理規則を設定するエンドポイント４０−１に対する処理規則の設定に失敗すれば、残るエンドポイント４０−２に対する処理規則の生成、及びその設定は行われない。
【００９９】
処理規則の設定に成功した場合には（ステップＳ２６、Ｙｅｓ分岐）、処理規則設定部２６は、ネットワーク上に仮想回線を形成するために処理規則の設定が必要なエンドポイントの全てに対して、処理規則の設定が終了したか否かを判定する（ステップＳ２８）。例えば、エンドポイント４０−１に対する処理規則の設定が完了し、エンドポイント４０−２に対する処理規則の設定が完了していない場合（ステップＳ２８、Ｎｏ分岐）には、エンドポイント４０−２に対する処理規則を設定する（ステップＳ２２に遷移する）。一方、処理規則設定部２６は、エンドポイント４０−２に対しても処理規則の設定が完了している場合（ステップＳ２８、Ｙｅｓ分岐）には、図１２に示す処理を終了する（エンドポイントへの処理規則の設定処理が正常に終了する）。
【０１００】
なお、図１２に示す制御装置２０ｃの動作は例示であって、図１２に示す各処理の実行順序を限定する趣旨ではない。例えば、エンドポイントに対して処理規則を設定する前に、当該エンドポイントによりカプセル化されるパケットを転送する通信ノードが存在するか否かを検証してもよい。
【０１０１】
図１３は、制御装置２０ｃの動作の別の一例を説明するためのシーケンス図である。図１２示すシーケンス図と図１３に示すシーケンス図の相違点は、図１２のステップＳ２５において実行していたリソース確保に関する確認を、図１３のステップＳ３０において行っている点と、リソースの確保ができない場合の処理規則の削除に関する処理が存在しない点である。
【０１０２】
図１３に示すように、ネットワーク上に形成される仮想回線のエンドポイントが決定した後（ステップＳ２１の直後）に、カプセル化されたパケットを転送する通信ノードが存在するか否かを検証することで、エンドポイントに対して設定された処理規則が無駄になることを防止できる。カプセル化されたパケットを転送する通信ノードが存在しなければ、エンドポイントに対する処理規則の設定が成功するか否かに関わらず、当該設定された処理規則は無駄となるためである。また、このような通信ノードの有無を最初に検証することにより、既に設定した処理規則を削除する処理が不要となる。
【０１０３】
また、制御装置２０ｃと通信可能な装置であって、仮想回線に収容されるパケットを転送する通信ノードの有無を検証する機能を有する装置を配置し、制御装置２０ｃから当該装置にリソースの確保に関する問い合わせを行い、検証結果を受領するような形態であってもよい。
【０１０４】
以上のように、制御装置２０ｃは、ネットワーク上に仮想回線を形成するエンドポイントに対し、優先順位を定めて処理規則を設定する。即ち、先に処理規則の設定を試みたエンドポイントにおいて処理規則の設定に失敗すれば、残るエンドポイントに対して処理規則を設定しない。その結果、両端のエンドポイントに対して並列して処理規則を設定する場合と比較して、エンドポイントへの処理規則の設定が無駄となる可能性を減ずることができる。さらに、制御装置２０ｃでは、カプセル化されたパケットを転送する通信ノードが存在するか否かを検証しつつ、エンドポイントに対して処理規則の設定を行う。即ち、カプセル化されたパケットを転送する通信ノードが存在しなければ、仮想回線を終端するエンドポイントに対して処理規則を設定したとしても、このような処理規則は無駄になってしまう。しかし、制御装置２０ｃのように、通信ノードの有無に関する検証を合わせて行うことで、エンドポイントへの処理規則の設定が無駄となる可能性を、より一層、減ずることができる。
【０１０５】
［第５の実施形態］
続いて、第５の実施形態について図面を参照して詳細に説明する。
【０１０６】
本実施形態においては、パケットの転送経路に基づかずに、複数の通信ノードに対して処理規則を設定する一例として、冗長化された通信ノードに対して処理規則を設定する場合について説明する。
【０１０７】
ネットワークの信頼性及び可用性を向上させる目的で、通信ノードを冗長化することがある。つまり、冗長機能を備える通信ノードを複数用いることで、通信ノードを冗長化することができる。例えば、２つの冗長化された通信ノードが存在する場合に、これらの通信ノードのうち１つは現用系の通信ノードとして動作させ、他の通信ノードは待機系の通信ノードとして動作させる。現用系の通信ノードにおいて障害が発生すると、現用系の通信ノードと待機系の通信ノードが入れ替わることで、ネットワークの信頼性等を高めることができる。
【０１０８】
ここで、制御装置は、これら冗長化された通信ノードに対して同一の処理規則を設定する必要がある。その際、制御装置から、複数の冗長化された通信ノードに対して並列に処理規則の設定を行うと、設定された処理規則が無駄となることがある。そのため、本実施形態に係る制御装置２０ｄでは、冗長化された通信ノードに対して同じ処理規則を設定する際に、優先順位を設けて冗長化された通信ノードに対して処理規則を設定する。
【０１０９】
図１４は、本実施形態に係る通信システムの一例を示す図である。図１４を参照すると、制御装置２０ｄは冗長化された複数の通信ノード６０−１及び６０−２を制御する。なお、以降の説明において、通信ノード６０−１と６０−２を特に区別する必要のないときは「通信ノード６０」と表記する。
【０１１０】
２つの通信ノード６０は、それぞれ、冗長化プロトコルにより冗長化され、例えば、サーバ７０−１と７０−２の間で送受信されるパケットを転送する。なお、２つの通信ノード６０に接続する装置は、サーバに限られず、どのような装置であってもよい。さらに、通信ノード６０−１が現用系の通信ノードとして動作し、通信ノード６０−２が待機系の通信ノードとして動作している。
【０１１１】
上述のように、制御装置２０ｄは、冗長化された通信ノード６０に対して処理規則を設定する際には、同一の処理規則を設定する必要がある。その際、制御装置２０ｄは、通信ノード６０−１及び６０−２に対して並列して処理規則を設定するのではなく、現用系の通信ノードに対して優先的に処理規則を設定する。例えば、図１４に示すネットワークにおいて、現用系の通信ノード６０−１に対する処理規則の設定に成功したことに応じて、待機系の通信ノード６０−２に対して処理規則を設定する。一方、現用系の通信ノード６０−１に対する処理規則の設定に失敗すれば、待機系の通信ノード６０−２に対する処理規則の設定を行わない。待機系の通信ノード６０−２に対する処理規則の設定が意味を持つのは、現用系の通信ノード６０−１に対する処理規則の設定が成功した場合だからである。
【０１１２】
なお、冗長化された通信ノードに対して処理規則を設定する際に、現用系の通信ノードに対して優先的に処理規則を設定するのは、制御装置２０ｄから現用系の通信ノードと待機系の通信ノードの切り替えを指示できないことを前提とするためである。制御装置２０ｄから現用系と待機系の通信ノードを切り替えることができる場合には、処理規則の設定に成功した通信ノードを現用系に切り替えることで、既に設定された処理規則を有効活用することもできる。
【０１１３】
以上のように、制御装置２０ｄは、冗長化された通信ノードに対して同一の処理規則を設定する場合には、現用系の通信ノードに対して優先的に処理規則の設定を行う。即ち、制御装置２０ｄは、現用系の通信ノードに対する処理規則の設定に失敗した場合には、待機系の通信ノードに対して処理規則を設定しない。その結果、処理規則の設定が無駄となる可能性を減ずることができる。
【０１１４】
上記の実施形態の一部又は全部は、以下のようにも記載され得るが、以下には限られない。
【０１１５】
［形態１］
上記第１の視点に係る制御装置のとおりである。
【０１１６】
［形態２］
前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードから、前記処理規則を設定する通信ノードを再度選択する形態１の制御装置。
【０１１７】
［形態３］
前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードに対し、前記処理規則を設定しない形態１又は２の制御装置。
【０１１８】
［形態４］
前記処理規則設定部は、前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち、すでに前記処理規則を設定した通信ノードから、前記設定した処理規則を削除する形態３の制御装置。
【０１１９】
［形態５］
前記処理規則設定部は、パケットの転送経路に含まれる複数の通信ノードから選択した通信ノードに対し、前記処理規則を設定する形態１乃至４のいずれか一に記載の制御装置。
【０１２０】
［形態６］
前記パケットの転送経路を計算する経路計算部をさらに備え、
前記経路計算部は、前記処理規則設定部が前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記パケットの転送経路を再度計算する形態３乃至５のいずれか一に記載の制御装置。
【０１２１】
［形態７］
前記処理規則設定部は、優先度に基づいて、前記複数の通信ノードから、前記処理規則を設定する通信ノードを選択する形態５又は６の制御装置。
【０１２２】
［形態８］
前記優先度は、前記複数の通信ノードのうち、前記転送経路の両端に位置する通信ノードに対して、前記両端に位置する通信ノード以外の通信ノードよりも、高く与えられる形態７の制御装置。
【０１２３】
［形態９］
前記処理規則設定部は、前記複数の通信ノードから、無作為に、前記処理規則を設定する通信ノードを選択する形態１乃至６のいずれか一に記載の制御装置。
【０１２４】
［形態１０］
前記処理規則設定部は、前記選択した通信ノードに対応する前記処理規則を生成できないことに応じて、前記選択された通信ノードに対し前記処理規則を設定しない形態１乃至９のいずれか一に記載の制御装置。
【０１２５】
［形態１１］
前記処理規則設定部は、前記複数の通信ノード間の少なくとも１つにリンクが存在しないことに応じて、前記選択された通信ノードに対して、前記処理規則の設定を行わない形態１乃至１０のいずれか一に記載の制御装置。
【０１２６】
［形態１２］
前記処理規則設定部は、前記複数の通信ノードの少なくとも１つを含む複数のグループから選択したグループに含まれる通信ノードに対して、前記処理規則を並列に設定する形態１乃至１１のいずれか一に記載の制御装置。
【０１２７】
［形態１３］
前記処理規則設定部は、仮想回線を終端する２つの通信ノードから選択したいずれかの通信ノードに前記処理規則を設定できたことに応じて、前記仮想回線を終端する他の通信ノードに対して前記処理規則を設定する形態１乃至４のいずれか一に記載の制御装置。
【０１２８】
［形態１４］
前記処理規則設定部は、前記仮想回線に収容されるパケットを転送する通信ノードが存在する場合に、前記仮想回線を終端する通信ノードに対して前記処理規則を設定する形態１３の制御装置。
【０１２９】
［形態１５］
前記仮想回線に収容されるパケットを転送する通信ノードの存在の有無を検証する転送経路検証部をさらに備え、
前記処理規則設定部は、前記仮想回線に収容されるパケットを転送する通信ノードの有無を前記転送経路検証部に問い合わせることで得られた結果に応じて、前記仮想回線を終端する通信ノードに対して前記処理規則を設定するか否かを決定する形態１４の制御装置。
【０１３０】
［形態１６］
前記処理規則設定部は、冗長化された複数の通信ノードから現用系の通信ノードを選択し、前記現用系の通信ノードに対して前記処理規則を設定できたことに応じて、前記冗長化された複数の通信ノードのうち待機系の通信ノードに対して、前記処理規則を設定する形態１乃至４のいずれか一に記載の制御装置。
【０１３１】
［形態１７］
上記第２の視点に係る制御装置の制御方法のとおりである。
【０１３２】
［形態１８］
前記処理規則を設定する工程は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードから、前記処理規則を設定する通信ノードを再度選択する形態１７の制御装置の制御方法。
【０１３３】
［形態１９］
前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち、すでに前記処理規則を設定した通信ノードから、前記設定した処理規則を削除する工程をさらに含む形態１７又は１８の制御装置の制御方法。
【０１３４】
［形態２０］
前記処理規則を設定する工程が前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記パケットの転送経路を再度計算する工程をさらに含む形態１７乃至１９のいずれか一に記載の制御装置の制御方法。
【０１３５】
［形態２１］
前記通信ノードを選択する工程は、
優先度に基づいて、前記複数の通信ノードから、前記処理規則を設定する通信ノードを選択する形態１７乃至２０のいずれか一に記載の制御装置の制御方法。
【０１３６】
［形態２２］
前記処理規則を設定する工程は、
前記選択された通信ノードに対応する前記処理規則を生成できないことに応じて、前記選択された通信ノードに対して前記処理規則の設定を行わない形態１７乃至２１のいずれか一に記載の制御装置の制御方法。
【０１３７】
［形態２３］
前記処理規則を設定する工程は、
前記複数の通信ノード間の少なくとも１つにリンクが存在しないことに応じて、前記選択された通信ノードに対して、前記処理規則の設定を行わない形態１７乃至２２のいずれか一に記載の制御装置の制御方法。
【０１３８】
［形態２４］
前記処理規則を設定する工程は、
仮想回線を終端する２つの通信ノードから選択したいずれかの通信ノードに前記処理規則を設定できたことに応じて、前記仮想回線を終端する他の通信ノードに対して前記処理規則を設定する形態１７乃至２０のいずれか一に記載の制御装置の制御方法。
【０１３９】
［形態２５］
前記処理規則を設定する工程は、
前記仮想回線に収容されるパケットを転送する通信ノードが存在する場合に、前記仮想回線を終端する通信ノードに対して前記処理規則を設定する形態２４の制御装置の制御方法。
【０１４０】
［形態２６］
前記仮想回線に収容されるパケットを転送する通信ノードの存在の有無を検証する転送経路検証工程をさらに含み、
前記処理規則を設定する工程は、前記転送経路検証工程における検証結果に応じて、前記仮想回線を終端する通信ノードに対して前記処理規則を設定するか否かを決定する形態２５の制御装置の制御方法。
【０１４１】
［形態２７］
前記処理規則を設定する工程は、
冗長化された複数の通信ノードから現用系の通信ノードを選択し、前記現用系の通信ノードに対して前記処理規則を設定できたことに応じて、前記冗長化された複数の通信ノードのうち待機系の通信ノードに対して、前記処理規則を設定する形態１７乃至２０のいずれか一に記載の制御装置の制御方法。
【０１４２】
［形態２８］
上記第３の視点に係るプログラムのとおりである。
【０１４３】
［形態２９］
前記処理規則を設定する処理は、前記選択した通信ノードに対し前記処理規則を設定できたことに応じて、前記複数の通信ノードのうち前記選択した通信ノード以外の通信ノードから、前記処理規則を設定する通信ノードを再度選択する形態２８のプログラム。
【０１４４】
［形態３０］
前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記複数の通信ノードのうち、すでに前記処理規則を設定した通信ノードから、前記設定した処理規則を削除する処理をさらに実行させる形態２８又は２９のプログラム。
【０１４５】
［形態３１］
前記処理規則を設定する処理が前記選択した通信ノードに対し前記処理規則を設定できないことに応じて、前記パケットの転送経路を再度計算する処理をさらに実行させる形態２８乃至３０のいずれか一に記載のプログラム。
【０１４６】
［形態３２］
前記通信ノードを選択する処理は、
優先度に基づいて、前記複数の通信ノードから、前記処理規則を設定する通信ノードを選択する形態２８乃至３１のいずれか一に記載のプログラム。
【０１４７】
［形態３３］
前記処理規則を設定する処理は、
前記選択された通信ノードに対応する前記処理規則を生成できないことに応じて、前記選択された通信ノードに対して前記処理規則の設定を行わない形態２８乃至３２のいずれか一に記載のプログラム。
【０１４８】
［形態３４］
前記処理規則を設定する処理は、
前記複数の通信ノード間の少なくとも１つにリンクが存在しないことに応じて、前記選択された通信ノードに対して、前記処理規則の設定を行わない形態２８乃至３３のいずれか一に記載のプログラム。
【０１４９】
［形態３５］
前記処理規則を設定する処理は、
仮想回線を終端する２つの通信ノードから選択したいずれかの通信ノードに前記処理規則を設定できたことに応じて、前記仮想回線を終端する他の通信ノードに対して前記処理規則を設定する形態２８乃至３２のいずれか一に記載のプログラム。
【０１５０】
［形態３６］
前記処理規則を設定する処理は、
前記仮想回線に収容されるパケットを転送する通信ノードが存在する場合に、前記仮想回線を終端する通信ノードに対して前記処理規則を設定する形態３５のプログラム。
【０１５１】
［形態３７］
前記仮想回線に収容されるパケットを転送する通信ノードの存在の有無を検証する転送経路検証処理をさらに含み、
前記処理規則を設定する処理は、前記転送経路検証処理における検証結果に応じて、前記仮想回線を終端する通信ノードに対して前記処理規則を設定するか否かを決定する形態３６のプログラム。
【０１５２】
［形態３８］
前記処理規則を設定する処理は、
冗長化された複数の通信ノードから現用系の通信ノードを選択し、前記現用系の通信ノードに対して前記処理規則を設定できたことに応じて、前記冗長化された複数の通信ノードのうち待機系の通信ノードに対して、前記処理規則を設定する形態２８乃至３２のいずれか一に記載のプログラム。
【０１５３】
なお、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【０１５４】
１０、１０−１〜１０−４、５０、５０−１〜５０−３、６０、６０−１、６０−２、２０３〜２０５  通信ノード
１１  通信部
１２  テーブル管理部
１３  テーブルデータベース（テーブルＤＢ）
１４  転送処理部
１５  オーバーレイ設定部
２０、２０ａ、２０ｂ、２０ｃ、２０ｄ、１００、２００  制御装置
２１  ネットワーク構成管理部
２２  ネットワーク構成データベース（ネットワーク構成ＤＢ）
２３  制御メッセージ処理部
２４  経路計算部
２５  ネットワーク経路データベース（ネットワーク経路ＤＢ）
２６、１０１  処理規則設定部
２７  ノード通信部
２８  転送経路検証部
３０−１、３０−２、２０１、２０２  通信端末
４０、４０−１、４０−２  エンドポイント
７０−１、７０−２  サーバ
１４１  テーブル検索部
１４２  アクション実行部
【図１】
2014104278.tif 000003
【図２】
2014104278.tif 000004
【図３】
2014104278.tif 000005
【図４】
2014104278.tif 000006
【図５】
2014104278.tif 000007
【図６】
2014104278.tif 000008
【図７】
2014104278.tif 000009
【図８】
2014104278.tif 000010
【図９】
2014104278.tif 000011
【図１０】
2014104278.tif 000012
【図１１】
2014104278.tif 000013
【図１２】
2014104278.tif 000014
【図１３】
2014104278.tif 000015
【図１４】
2014104278.tif 000016
【図１５】
2014104278.tif 000017
【国際調査報告】
2014104278.tif 000018
2014104278.tif 000019
2014104278.tif 000020
2014104278.tif 000021