(57)【要約】 【課題】集中制御型のネットワークと接続する外部ネットワークに余計な負荷を掛けずに、外部ネットワーク側のループの発生を検出する。【解決手段】制御装置は、制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録するパケット記録部と、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記パケット記録部に記録されたパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定する判定部と、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施するループ抑止部と、を備える。【選択図】図１
2016092756.tif 000002
【特許請求の範囲】
【請求項１】
制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録するパケット記録部と、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記パケット記録部に記録されたパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定する判定部と、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施するループ抑止部と、
を備えた制御装置。
【請求項２】
前記ループ抑止部は、前記所定のループ抑止措置として、前記外部ネットワークを経由したパケットの流入点となる通信装置に対し、同一の特徴を持つ受信パケットの破棄を指示する請求項１の制御装置。
【請求項３】
前記ループ抑止部は、前記所定のループ抑止措置として、前記外部ネットワークを経由したパケットの流入点となる通信装置からの転送パケットを破棄する請求項１又は２の制御装置。
【請求項４】
前記パケット記録部は、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴とともに当該パケットを受信した時間情報を記録し、
前記判定部は、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記パケット記録部に記録されたパケットの特徴とが一致するか否かと、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットを受信した時間と前記パケット記録部に記録された時間との差が所定の閾値未満である場合に、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定する請求項１から３いずれか一の制御装置。
【請求項５】
前記パケット記録部は、前記パケットの特徴として、前記制御対象のネットワークに流入したパケットのパケットヘッダから求めたハッシュ値を記録し、
前記判定部は、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットのパケットヘッダから求めたハッシュ値と、前記パケット記録部に記録されたハッシュ値とを用いて、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであるか否かを判定する請求項１から４いずれか一の制御装置。
【請求項６】
前記パケット記録部は、前記制御対象のネットワークを用いて構成された仮想ネットワーク毎に、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録できるよう構成され、
前記判定部は、前記仮想ネットワーク毎に、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであるか否かを判定する請求項１から５いずれか一の制御装置。
【請求項７】
さらに、前記制御対象のネットワーク上に配置された通信装置からの要求を処理する要求処理部を備え、
前記要求処理部を介して、前記通信装置から、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットに関する情報を受け取る請求項１から６いずれか一の制御装置。
【請求項８】
制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録するパケット記録部と、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記パケット記録部に記録されたパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定する判定部と、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施するループ抑止部と、
を備えた制御装置と、
前記制御装置に対する受信パケットに関する情報の送信と、前記制御装置からの指示に従ったパケットの処理とを行う通信装置群と、
を含む通信システム。
【請求項９】
制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録するステップと、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記記録したパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定するステップと、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施するステップと、
を含むループ抑止方法。
【請求項１０】
制御対象のネットワークを制御する制御装置を構成するコンピュータに、
制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録する処理と、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記記録したパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定する処理と、
前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施する処理と、
を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、通信システム、ループ抑止方法及びプログラムに関し、特に、外部ネットワークが接続されているネットワークを制御対象とする制御装置、通信システム、ループ抑止方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１に、複数の通信装置の振る舞いを制御することで通信を実現する制御装置を用いて仮想ネットワークを構成する発明が開示されている。非特許文献１、２は、特許文献１においても触れられているオープンフローのホワイトペーパーと、スペックである。
【０００３】
オープンフローに代表される集中制御型のネットワークでは、制御装置は、配下の通信装置からの通知等を元に、新規通信を検出する。制御装置は、新規通信を許可する場合、通信元から通信先に到る経路上の通信装置等の関連する通信装置に対し、パケットの転送先等を指示する。以降、前記指示を受けた通信装置は、制御装置からの指示に従い、パケットの転送等を行う（特許文献１の段落０００４参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１１／０４３４１６号
【非特許文献】
【０００５】
【非特許文献１】Ｎｉｃｋ  ＭｃＫｅｏｗｎほか７名、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”、［ｏｎｌｉｎｅ］、［平成２６（２０１４）年１０月２２日検索］、インターネット〈URL: http://archive.openflow.org/documents/openflow-wp-latest.pdf〉
【非特許文献２】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”  Ｖｅｒｓｉｏｎ  １．１．０  Ｉｍｐｌｅｍｅｎｔｅｄ  （Ｗｉｒｅ  Ｐｒｏｔｏｃｏｌ  ０ｘ０２）、［ｏｎｌｉｎｅ］、［平成２６（２０１４）年１０月２２日検索］、インターネット〈URL: http://archive.openflow.org/documents/openflow-spec-v1.1.0.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
以下の分析は、本発明によって与えられたものである。上記したオープンフローに代表される集中制御型のネットワークでは、制御装置がすべての通信を管理することを建前としている。従って、ネットワーク内のフレーム／パケット（非特許文献１、２の表現に合わせ「パケット」で統一する。）のループを検出する方法は、様々に検討可能である。
【０００７】
しかしながら、集中制御型のネットワークの制御装置といえども、ネットワーク外部については情報を収集することができない。このため、ある通信装置から外部ネットワークに送出したパケットが当該外部ネットワークを経由してループして戻ってきたものだとしても、当該パケットの入力ポートが異なる等すれば、新規通信発生として取り扱ってしまう可能性がある。
【０００８】
この種のループを検出するには、ある通信装置から外部ネットワークに向けて、ループ検出用のパケットを送信させて、そのパケットが制御対象のネットワークに戻ってくるか否かにより判断する方法が考えられる。しかしながら、この方法では、外部ネットワークに余計な負荷をかけてしまうという問題点がある。
【０００９】
本発明は、集中制御型のネットワークと接続する外部ネットワークに余計な負荷を掛けずに、外部ネットワーク側のループの発生を検出し、対策を講ずる方法の豊富化に貢献できる制御装置、通信システム、ループ抑止方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の視点によれば、制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録するパケット記録部と、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記パケット記録部に記録されたパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定する判定部と、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施するループ抑止部と、を備えた制御装置が提供される。
【００１１】
第２の視点によれば、上記した制御装置と、前記制御装置に対する受信パケットに関する情報の送信と前記制御装置からの指示に従ったパケットの処理とを行う通信装置群とを含む通信システムが提供される。
【００１２】
第３の視点によれば、制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録するステップと、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記記録したパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定するステップと、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施するステップと、を含むループ抑止方法が提供される。本方法は、外部ネットワークが接続されているネットワークを制御する制御装置という、特定の機械に結びつけられている。
【００１３】
第４の視点によれば、制御対象のネットワークを制御する制御装置を構成するコンピュータに、制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録する処理と、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記記録したパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定する処理と、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定した場合、所定のループ抑止措置を実施する処理と、を実行させるコンピュータプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な（非トランジエントな）記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１４】
本発明によれば、集中制御型のネットワークと接続する外部ネットワークに余計な負荷を掛けずに、外部ネットワーク側のループの発生を検出し、対策を講ずる方法の豊富化に貢献することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の構成を示す図である。
【図２】本発明の第１の実施形態の通信システムの構成を示す図である。
【図３】本発明の第１の実施形態のオープンフローコントローラ（ＯＦＣ）の構成を示す図である。
【図４】本発明の第１の実施形態のオープンフローコントローラ（ＯＦＣ）のパケット記録部に記録される情報の一例を示す図である。
【図５】本発明の第１の実施形態のオープンフローコントローラ（ＯＦＣ）のパケット記録部に保持される情報を説明するための図である。
【図６】本発明の第１の実施形態のオープンフローコントローラ（ＯＦＣ）の動作を説明するための流れ図である。
【図７】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）が新規パケットを受信した際の動作を説明するための図である。
【図８】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）から新規パケットの受信通知を受けたオープンフローコントローラ（ＯＦＣ）の動作を説明するための図である。
【図９】本発明の第１の実施形態のオープンフローコントローラ（ＯＦＣ）からパケット送出指示を受けたオープンフロースイッチ（ＯＦＳ）の動作を説明するための図である。
【図１０】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）がループしたパケットを受信した際の動作を説明するための図である。
【図１１】本発明の第１の実施形態のオープンフロースイッチ（ＯＦＳ）からループしたパケットの受信通知を受けたオープンフローコントローラ（ＯＦＣ）の動作を説明するための図である。
【図１２】本発明の第２の実施形態のオープンフローコントローラ（ＯＦＣ）のパケット記録部に保持される情報を説明するための図である。
【図１３】本発明の第３の実施形態のオープンフローコントローラ（ＯＦＣ）の構成を示す図である。
【発明を実施するための形態】
【００１６】
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
【００１７】
本発明は、その一実施形態において図１に示すように、パケット記録部１２０と、判定部１３０と、ループ抑止部１４０と、を備えた制御装置１００にて実現できる。
【００１８】
パケット記録部１２０は、制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録する。パケット記録部１２０が、制御対象のネットワークに流入した外部ネットワーク宛てのパケットを受け取る仕組みとしては、図１に示すように、ネットワークに配置された第１の通信装置２００Ａから受信パケットに関する通知を受け取る仕組みを採用できる。
【００１９】
判定部１３０は、前記記録後に制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記パケット記録部１２０に記録されたパケットの特徴とを照合して、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが再び制御対象のネットワークに流入したか否かを判定する。
【００２０】
ループ抑止部１４０は、前記判定部１３０において、前記記録後に受信した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定された場合、所定のループ抑止措置を実施する。
【００２１】
以上のように本発明によれば、外部ネットワークへ送出したパケットが外部ネットワークを経由して再び流入したことを検出し、以降流入するパケットの破棄等の必要な措置を講ずることが可能となる。また、前記所定のループ抑止措置としては、パケットの破棄に限られない。例えば、送信元となっている端末のユーザやループが生じているネットワークの管理者等に、ループが発生していることを通知してもよい。また、送信元を悪意のあるユーザであると見做して、通信装置との接続を切断したり、通信装置へのアクセスを禁止すること等も考えられる。
【００２２】
［第１の実施形態］
続いて、本発明の第１の実施形態について図面を参照して詳細に説明する。図２は、本発明の第１の実施形態の通信システムの構成を示す図である。図２を参照すると、オープンフロースイッチ（以下、「ＯＦＳ」）２０Ａ、２０Ｂを介して、オープンフローネットワーク４０と、外部ネットワークとが接続された構成が示されている。
【００２３】
オープンフローコントローラ（以下「ＯＦＣ」）１０は、上記した制御装置に相当し、オープンフローチャネル（オープンフロー制御用のチャネル）３０Ａ、３０Ｂを介して、ＯＦＳ２０ＡやＯＦＳ２０Ｂを制御する装置である。なお、図２の例では、２台のＯＦＳ２０Ａ、２０Ｂのみが示されているが、ＯＦＳの数に制限はない。ＯＦＣ１０は、オープンフローネットワーク４０に配置されたＯＦＳを制御することで、オープンフローネットワーク４０を介して通信を実現する。
【００２４】
ＯＦＳ２０Ａ、２０Ｂは、上記した第１、第２の通信装置に相当し、ＯＦＣ１０からの指示に従って、受信パケットの転送や指定パケットの送出を行う機器である。具体的には、ＯＦＳは、パケットを受信すると、ＯＦＣ１０から設定されるフローエントの中から受信パケットに適合するマッチ条件を持つフローエントリを検索し、そのフローエントリに従って処理（他のＯＦＳやＯＦＣ１０へのパケット転送、ヘッダ書き換え、パケット破棄等）を行う。
【００２５】
また、以下の説明では、図２に示すように、少なくともＯＦＳ２０Ａのポート２１ＡとＯＦＳ２０Ｂのポート２１Ｂが、外部ネットワークと接続しているものとする。本実施形態では、ポート２１Ａ又はポート２１Ｂのいずれかから外部ネットワークへ送出されたパケットが、オープンフローネットワーク４０に戻ってくることをループとして検出する。
【００２６】
外部ネットワークは図示した１つだけでなくともよく、１つ以上のＯＦＳが他の外部ネットワークと接続されて、当該他の外部ネットワークへ送出したパケットがオープンフローネットワーク４０に戻ってくることをループとして検出してもよい。また、外部ネットワークが、ＯＦＳ２０Ａ、２０Ｂ含むＯＦＳと接続する別の外部ネットワークと接続されていてもよい。この場合も送出したパケットがオープンフローネットワーク４０に戻ってくるタイプのループが発生しうる。
【００２７】
図３は、本実施形態のＯＦＣ１０の構成を示す図である。図３を参照すると、要求処理部（ＯＦＣ機能部）１１と、パケット記録部１２と、判定部１３と、ループ抑止部１４とを備えた構成が示されている。
【００２８】
要求処理部（ＯＦＣ機能部）１１は、非特許文献１、２のオープンフローコントローラに相当するＯＦＳを制御する手段である。具体的には、要求処理部（ＯＦＣ機能部）１１は、あるＯＦＳから、受信パケットに関する情報を含んだフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を受けると、当該受信パケットの転送経路を計算する。前記転送経路の計算が完了すると、要求処理部（ＯＦＣ機能部）１１は、転送経路上のＯＦＳに設定するフローエントリを作成して、前記転送経路上のＯＦＳに前記作成したフローエントリを設定する。さらに、要求処理部（ＯＦＣ機能部）１１は、ＯＦＳに対し、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の送信契機となったパケットの出力を指示する。なお、パケットの出力を指示するＯＦＳは、前記転送経路の終点に位置するＯＦＳであってもよいし、その他前記転送経路上のＯＦＳであってもよい（例えば、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の送信元のＯＦＳに、バッファした受信パケットの出力を指示してもよい）。なお、パケットの出力指示には、非特許文献２に規定されているＰａｃｋｅｔ−Ｏｕｔメッセージを用いることができる。
【００２９】
なお、ＯＦＳがＯＦＣ１０にフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信する仕組みは、非特許文献１、２と同様の手法を採ることができる。具体的には、要求処理部（ＯＦＣ機能部）１１が予めＯＦＳに、未知のパケット受信時にＯＦＣ１０にフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を送信させるフローエントリを設定したり、ＯＦＳの未知パケット受信時にＯＦＣ１０にフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を行うことをデフォルト動作として規定しておけばよい。
【００３０】
また、要求処理部（ＯＦＣ機能部）１１は、ＯＦＳから、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を受信した場合、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報をパケット記録部１２及び判定部１３に渡す。
【００３１】
パケット記録部１２は、要求処理部（ＯＦＣ機能部）１１から受け取ったフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に基づいて、オープンフローネットワーク４０に流入したパケットの特徴を所定期間分乃至所定回数分記録（キャッシュ）する。
【００３２】
図４、図５は、パケット記録部１２に記録される情報の一例を示す図である。図４の例では、受信パケットの宛先ＭＡＣアドレス、送信元ＭＡＣアドレス及び（イーサネット（登録商標））タイプフィールドの情報（イーサネットヘッダに相当）が記録対象となっている。以下の説明では、図５に示すように、パケットヘッダから抽出された情報がパケット記録部１２に記録されて、以降の受信パケットとの照合対象として使用されるものとして説明する。
【００３３】
また、図５の例では、各エントリに記録時刻（キャッシュ時刻）が付与されている。同一特徴のパケットを受信した場合であっても、相当の期間が経過している場合には、ループの発生ではなく、同一機器や同一のユーザ間で再び通信が発生したとみなすべきである。一方、相当期間が経過していない場合には、ループの発生が疑われる。本実施形態では、パケット記録部１２に記録される各エントリに記録時刻（キャッシュ時刻）を、同一特徴のパケットを受信した際のループ判定に使用する。
【００３４】
判定部１３は、要求処理部（ＯＦＣ機能部）１１からフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報を受け取ると、パケット記録部１２を参照し、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報に適合するエントリがあるか否かを確認する。前記確認の結果、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報に適合するエントリが存在した場合、判定部１３は、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信時刻と前記エントリの記録時刻（キャッシュ時刻）との差が所定の時間内であるか否かを確認する。フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信時刻と前記エントリの記録時刻（キャッシュ時刻）との差が所定の時間内である場合、判定部１３は、外部ネットワークを経由して届いたループパケットであると判定し、ループ抑止部１４に、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報を渡す。
【００３５】
ループ抑止部１４は、判定部１３からフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報を受け取ると、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信契機となったパケットの破棄を指示するフローエントリを作成し、要求処理部（ＯＦＣ機能部）１１に該当するＯＦＳへの設定と、同一フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の破棄を要請する。
【００３６】
なお、図１、２に示した制御装置１００乃至ＯＦＣ１０の各部（処理手段）は、これらの装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。また、図１、２はあくまで制御装置１００乃至ＯＦＣ１０の機能を、機能ブロックにより表したものに過ぎない。例えば、要求処理部１１、パケット記録部１２、判定部１３及びループ抑止部１４のいずれか２以上を統合した構成とすることも可能であり、例えば、パケット記録部１２が判定処理を行ってもよいし、要求処理部１１や判定部１３がループ抑止処理を行ってもよい。
【００３７】
続いて、本実施形態の動作について図面を参照して詳細に説明する。図６は、本実施形態のＯＦＣの動作を説明するための流れ図である。以下、ＯＦＳ２０Ａがあるパケットを受信した後、そのパケットがＯＦＳ２０Ｂ及び外部ネットワークを経由して再びＯＦＳ２０Ａにて受信された例を挙げて説明する。
【００３８】
まずＯＦＳ２０Ａがポート２１Ａで新規通信に属するパケットを受信したものとする。図６、図７に示すように、ＯＦＳ２０Ａは、当該パケット又は当該パケットから抽出した情報を用いて、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を生成し、ＯＦＣ１０に送信する（図７のステップＳ１１）。
【００３９】
ＯＦＣ１０は、ＯＦＳ２０Ａからフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を受信すると（図６のステップＳ１１）、パケット記録部１２を参照し、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報に適合するエントリがあるか否かを確認する（ステップＳ２１）。ここでは、パケット記録部１２に該当するエントリは存在しない（ステップＳ２１のＮｏ）。このため、ＯＦＣ１０は、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報から、図４に示す情報を抽出し、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信時刻とともにパケット記録部１２に登録する（ステップＳ１２）。
【００４０】
その後、ＯＦＣ１０は、図８に示すように、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に基づいて、ＯＦＳ２０Ａが受信したパケットの経路計算、フローエントリの作成、設定を行う。ここでは、ＯＦＳ２０ＡからＯＦＳ２０Ｂを経由し、エッジＯＦＳであるＯＦＳ２０Ｂのポート２１Ｂから出力する経路が計算されたものとする。本実施形態のＯＦＣ１０は、前記フローエントリの設定とは別に、ＯＦＳ２０Ｂに対し、ＯＦＳ２０Ａが受信したパケットをポート２１Ｂから送出するよう指示する（ステップＳ１３）。これにより、ＯＦＳ２０Ａが受信したパケットの宛先への転送が行われる。
【００４１】
ＯＦＳ２０Ｂは、図９に示すように、前記ＯＦＣ１０からの指示に従い、ポート２１Ｂから外部ネットワークに向けてパケットを送出する。以上のように、初めてオープンフローネットワーク４０に入力したパケットの特徴が、パケット記録部１２に記録（キャッシュ）される。なお、パケット記録部１２に記録（キャッシュ）への記録対象とするパケットは、オープンフローネットワーク４０を通過するパケット（外部ネットワーク宛てのパケット）に限定しても良い（例えば、ＯＦＳ２０Ｂ経由で外部ネットワークに送出され、外部ネットワークの接続端末やサーバを宛先とするパケット等）。
【００４２】
ここで、図１０に示すように、ＯＦＳ２０Ｂが送出したパケットがループして、再び、ＯＦＳ２０Ａにて受信されたものとする。ＯＦＳ２０Ａは、ループしたパケットに対応するフローエントリを検索するが、上記ステップＳ１３で設定されたフローエントリのマッチ条件とマッチしない場合（例えば、マッチ条件に含まれる入力ポートが異なる場合）、ＯＦＣ１０に対して、再びフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を行う。その他、上記ステップＳ１３で設定されたフローエントリにおいて、ＯＦＣ１０への転送が指示されているようなパケットの場合も、ＯＦＳ２０Ａは、ループしたパケットの受信を契機に、ＯＦＣ１０にフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を行う（図１０のステップＳ１１−２）。
【００４３】
ＯＦＣ１０は、ＯＦＳ２０Ａからフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を受信すると（ステップＳ１１）、パケット記録部１２を参照し、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）に含まれる情報に適合するエントリがあるか否かを確認する（ステップＳ２１）。ここでは、パケット記録部１２に該当するエントリは存在するため、ＯＦＣ１０は、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信時刻と、パケット記録部１２に登録されているエントリの記録時刻（キャッシュ時刻）との差を計算する（ステップＳ２２）。前記計算の結果、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信時刻と、パケット記録部１２に登録されているエントリの記録時刻（キャッシュ時刻）との差が所定の閾値Ｔ未満である場合、ループしたパケットであると判定する（ステップＳ２２のＹｅｓ）。一方、フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信時刻と、パケット記録部１２に記録されているエントリの記録時刻（キャッシュ時刻）との差が所定の閾値Ｔ以上の場合、ステップＳ１２に進み、パケット記録部１２の該当エントリの再記録又は記録時刻（キャッシュ時刻）の更新が行われる。
【００４４】
前記閾値Ｔは、例えば、１秒未満とすることができる。例えば、ＯＦＳ２０Ａに接続する機器からＡＲＰ  Ｒｅｑｕｅｓｔメッセージを送信し、ＯＦＳ２０Ｂを介して転送が行われたが、外部ネットワーク上に該当ノードが存在せずにＡＲＰ  Ｒｅｐｌｙメッセージが返信されない場合がある。この場合、ＯＦＳ２０Ａは、１秒間隔で数フレームのＡＲＰ  Ｒｅｑｕｅｓｔメッセージの送信をリトライすると、同一メッセージが１秒間隔で送信されることになる。これをループ発生と判断しないためには、前記閾値Ｔとして１秒を設定することができる。もちろん、前記閾値は１秒に限られるものではなく、想定される通信内容に応じて決定される。また例えば、ＡＲＰ  Ｒｅｑｕｅｓｔメッセージについては１秒とし、その他パケットについては数秒とする等、パケット種別に応じて閾値を変更してもよい。
【００４５】
フローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）にかかるパケットが、ループしたパケットであると判定した場合、ＯＦＣ１０は、図１１に示すように、今後の同一パケットの受信を回避するために、ＯＦＳに対して該当パケットの破棄を指示するループ抑止用のフローエントリを設定する（ステップＳ２３）。このループ抑止用のフローエントリの設定先としては、ＯＦＳ２０Ａのほか、いくつかのパターンが考えられる。例えば、ＯＦＳ２０Ａの特定のポートのみからループパケットが入力している場合は、ＯＦＳ２０Ａに対して、当該ポートから入力する該当パケットを破棄するフローエントリを設定すればよい。さらに、ＯＦＳ２０Ａ以外にも、外部ネットワークとの接続点となるＯＦＳがあり、ループパケットが流入する可能性がある場合には、これらのＯＦＳにも該当パケットの破棄を指示するフローエントリを設定することができる。
【００４６】
また、前記ループ抑止用のフローエントリには、有効期限（タイムアウト値）を設定し、所定時間が経過すると、ＯＦＳが削除するようにすることが望ましい（非特許文献２のアイドルタイムアウトやハードタイムアウトによるフローエントリの削除）。このようにすることで、外部ネットワークの異常終了後の正常な通信まで破棄されてしまう事態を抑止することができる。
【００４７】
前記ループ抑止用のフローエントリの設定指示後、ＯＦＣ１０は、同一パケットの受信を契機とするフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を破棄する。このように処理を停止することにより、ＯＦＳ２０Ａでループ抑止用のフローエントリの登録が完了するまでの間のフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）の受信による、ＯＦＳ２０Ｂへのパケットの送信指示の発行とさらなるループの発生を抑止することが可能となる。
【００４８】
以上のように、本実施形態によれば、オープンフローネットワーク４０を通過したパケットが再びオープンフローネットワーク４０に戻ってきたようなタイプのループの発生を検出し、必要なループ抑止措置を採ることが可能となる。
【００４９】
また、上記した説明からも明らかなとおり、本実施形態は、外部ネットワークに余計な負荷をかけずに、ループ検出を行うことを可能とする。その理由は、ループ検出用のパケット等を送出せずに、ユーザパケットを利用して、ループ検出をなしうる構成を採用したことにある。
【００５０】
［第２の実施形態］
上記した実施形態では、オープンフローネットワーク４０については詳説しなかったが、ＯＦＣ１０がオープンフローネットワーク４０を論理分割（スライス）して複数の仮想ネットワークを提供しているような場合には、以下のように変形して実施することができる。
【００５１】
例えば、ＯＦＣ１０が複数の仮想ネットワークを提供している場合、初回のフローエントリの設定要求（Ｐａｃｋｅｔ−Ｉｎメッセージ）を受けて、ＯＦＣ１０がＯＦＳ２０Ｂに対しパケットを送出した場合を考える。この場合、ＯＦＳ２０Ｂから送出されたパケットが、次回に同じ仮想ネットワークに入力した場合のみループ発生として扱い、異なる仮想ネットワークに入力した場合はループ発生として扱わないこともできる。
【００５２】
このようにすることで、仮想ネットワーク毎にループの発生を検出し、必要なループ抑止装置を講ずることが可能となる。なお、ＯＦＣ１０が同一仮想ネットワークのループパケットであるか否かを判定する仕組みとしては、図５に例示したテーブルを仮想ネットワーク毎に複数設けたり、図１２に示すように、図５に例示したテーブルに仮想ネットワークを識別するため識別情報のフィールドを追加すればよい。例えば、図１２に示すように、仮想ネットワークの識別情報フィールドを設け、照合対象に仮想ネットワークの識別情報（仮想ＮＷ＿ＩＤ）を加えることで、仮想ネットワーク毎のループ発生有無の判断が可能となる。
【００５３】
［第３の実施形態］
上記した実施形態では、イーサネットヘッダを用いてループパケットであるか否かを判断するものとして説明したが、その他ヘッダ情報を用いて判断するよう構成することも可能である。さらに、比較対象のデータサイズが大きい場合には、図１３に示すように、パケット記録部１２と、判定部１３とにそれぞれ比較対象のデータのハッシュ値を計算するハッシュ計算部１２ａ、１３ａを設けて、ハッシュ値による照合を行うようにすることもできる。このようにすることで、照合処理の速度低下を抑止することが可能となる。
【００５４】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、メッセージの表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【００５５】
最後に、本発明の好ましい形態を要約する。
［第１の形態］
（上記第１の視点による制御装置参照）
［第２の形態］
第１の形態の制御装置において、
前記ループ抑止部は、前記所定のループ抑止措置として、前記外部ネットワークを経由したパケットの流入点となる通信装置に対し、同一の特徴を持つ受信パケットの破棄を指示する制御装置。
［第３の形態］
第１又は第２の形態の制御装置において、
前記ループ抑止部は、前記所定のループ抑止措置として、前記外部ネットワークを経由したパケットの流入点となる通信装置からの転送パケットを破棄する制御装置。
［第４の形態］
第１から第３いずれか一の形態の制御装置において、
前記パケット記録部は、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴とともに当該パケットを受信した時間情報を記録し、
前記判定部は、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴と前記パケット記録部に記録されたパケットの特徴とが一致するか否かと、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットを受信した時間と前記パケット記録部に記録された時間との差が所定の閾値未満である場合に、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであると判定する
制御装置。
［第５の形態］
第１から第４いずれか一の形態の制御装置において、
前記パケット記録部は、前記パケットの特徴として、前記制御対象のネットワークに流入したパケットのパケットヘッダから求めたハッシュ値を記録し、
前記判定部は、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットのパケットヘッダから求めたハッシュ値と、前記パケット記録部に記録されたハッシュ値とを用いて、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであるか否かを判定する制御装置。
［第６の形態］
第１から第５いずれか一の形態の制御装置において、
前記パケット記録部は、前記制御対象のネットワークを用いて構成された仮想ネットワーク毎に、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットの特徴を記録できるよう構成され、
前記判定部は、前記仮想ネットワーク毎に、前記記録後に前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットが、前記外部ネットワークを経由して再び流入したパケットであるか否かを判定する制御装置。
［第７の形態］
第１から第６いずれか一の形態の制御装置において、
さらに、前記制御対象のネットワーク上に配置された通信装置からの要求を処理する要求処理部を備え、
前記要求処理部を介して、前記通信装置から、前記制御対象のネットワークに流入した外部ネットワーク宛てのパケットに関する情報を受け取る制御装置。
［第８の形態］
（上記第２の視点による通信システム参照）
［第９の形態］
（上記第３の視点によるループ抑止方法参照）
［第１０の形態］
（上記第４の視点によるコンピュータプログラム参照）
なお、上記第８〜第１０の形態は、第１の形態と同様に、第２〜第７の形態に展開することが可能である。
【００５６】
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【００５７】
１０  オープンフローコントローラ（ＯＦＣ）
１１  要求処理部（ＯＦＣ機能部）
１２  パケット記録部
１２ａ、１３ａ  ハッシュ計算部
１３  判定部
１４  ループ抑止部
２０Ａ、２０Ｂ  オープンフロースイッチ（ＯＦＳ）
２１Ａ、２１Ｂ  ポート
３０Ａ、３０Ｂ  オープンフローチャネル
４０  オープンフローネットワーク
１００  制御装置
１２０  パケット記録部
１３０  判定部
１４０  ループ抑止部
２００Ａ、２００Ｂ  通信装置
【図１】
2016092756.tif 000003
【図２】
2016092756.tif 000004
【図３】
2016092756.tif 000005
【図４】
2016092756.tif 000006
【図５】
2016092756.tif 000007
【図６】
2016092756.tif 000008
【図７】
2016092756.tif 000009
【図８】
2016092756.tif 000010
【図９】
2016092756.tif 000011
【図１０】
2016092756.tif 000012
【図１１】
2016092756.tif 000013
【図１２】
2016092756.tif 000014
【図１３】
2016092756.tif 000015