(57)【特許請求の範囲】
【請求項１】
パケットを転送する転送装置と前記転送装置におけるパケット処理を検査するフロー検査装置とが接続されているネットワーク検査システムであって、
前記フロー検査装置は、
前記転送装置における転送ルールを定めるフローエントリとフローＩＤとを対応付ける対応表、試験ＩＤに対応する試験パケットのヘッダ情報、を格納するフロー情報管理部と、
検査するフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを保持する試験パケットを生成する試験パケット生成部と、を備え、
前記転送装置は、
ネットワークを介して外部から受信したパケットが前記試験パケットであるか否かを、前記試験パケット識別子を用いて判定する試験パケット判定部と、
受信したパケットが前記ユーザパケットである場合、ヘッダ情報に一致するフローエントリで定められる処理を行う通常パケット処理部と、
前記通常パケット処理部に備わるフローエントリごとに前記試験パケット用のフローエントリが設けられ、受信したパケットが前記試験パケットである場合、ヘッダ情報に一致するフローエントリで定められる処理に加えて当該フローエントリに対応するフローＩＤを追記する処理を行う試験パケット処理部と、
を備えることを特徴とするネットワーク検査システム。
【請求項２】
前記フロー検査装置は、
前記転送装置においてフローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた前記試験パケットを、前記試験結果として受信する試験結果受信部と、
前記試験結果に記載されている試験ＩＤに一致する前記試験パケットのヘッダ情報を前記フロー情報管理部から呼び出し、前記試験結果に記載されているフローＩＤに対応するフローエントリを前記フロー情報管理部から呼び出し、前記試験パケットのヘッダ情報に一致するフローエントリと呼び出したフローエントリが一致している場合に、前記転送装置がヘッダ情報に従って動作していると判定する試験結果判定部をさらに備える、
請求項１に記載のネットワーク検査システム。
【請求項３】
パケットを転送する転送装置に接続されているフロー検査装置であって、
前記転送装置における転送ルールを定めるフローエントリとフローＩＤとを対応付ける対応表、試験ＩＤに対応するヘッダ情報、を格納するフロー情報管理部と、
前記転送装置における転送ルールを定めるフローエントリを複製し、フローエントリで定められた処理に加えて当該フローエントリに対応するフローＩＤを試験パケットに追記する処理を前記転送装置に行わせる試験パケット用のフローエントリを、前記転送装置に生成するフローテーブル変換部と、
検査するフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを記載した試験パケットを生成する試験パケット生成部と、
前記試験パケット生成部で生成された前記試験パケットを受信した前記転送装置から、ヘッダ情報に一致するフローエントリのフローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた当該試験パケットを、前記試験結果として受信する試験結果受信部と、
前記試験結果に記載されている試験ＩＤに一致する試験パケットのヘッダ情報を前記フロー情報管理部から呼び出し、前記試験結果に記載されているフローＩＤに対応するフローエントリを前記フロー情報管理部から呼び出し、前記試験パケットのヘッダ情報に一致するフローエントリと呼び出したフローエントリが一致している場合に、前記転送装置がヘッダ情報に従って動作していると判定する試験結果判定部と、
を備えることを特徴とするフロー検査装置。
【請求項４】
転送装置におけるパケット処理を検査するフロー検査装置と接続されている転送装置であって、
転送ルールを定めるフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを保持する試験パケットを、前記フロー検査装置から受信するフローテーブル側受信部と、
ネットワークを介して外部から受信したパケットが前記試験パケットであるか否かを、前記試験パケット識別子を用いて判定する試験パケット判定部と、
受信したパケットが前記ユーザパケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理を行う通常パケット処理部と、
前記通常パケット処理部に備わるフローエントリごとに試験パケット用のフローエントリが設けられ、受信したパケットが前記試験パケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理に加えて当該フローエントリに対応するフローＩＤを追記する処理を行う試験パケット処理部と、
受信したパケットが前記試験パケットである場合、フローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた当該パケットを、前記試験結果として前記フロー検査装置に送信するフローテーブル側送信部と、
を備えることを特徴とする転送装置。
【請求項５】
ユーザパケットを転送する転送装置におけるパケット処理を検査するフロー検査装置が実行するネットワーク検査方法であって、
前記転送装置における転送ルールを定めるフローエントリを複製し、フローエントリで定められた処理に加えてフローエントリに対応するフローＩＤを試験パケットに追記する処理を前記転送装置に行わせる試験パケット用のフローエントリを、前記転送装置に生成するフローテーブル変換手順と、
検査するフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを記載した試験パケットを生成する試験パケット生成手順と、
前記試験パケット生成手順で生成された試験パケットを受信した前記転送装置から、フローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた試験パケットを、前記試験結果として受信する試験結果受信手順と、
前記転送装置における転送ルールを定めるフローエントリとフローＩＤとを対応付ける対応表、前記試験ＩＤに対応するヘッダ情報、を格納するフロー情報管理部を参照して、前記試験結果に記載されている前記試験ＩＤに一致する試験パケットのヘッダ情報を前記フロー情報管理部から呼び出し、前記試験結果に記載されているフローＩＤに対応するフローエントリを前記フロー情報管理部から呼び出し、前記試験パケットのヘッダ情報に一致するフローエントリと呼び出したフローエントリが一致している場合に、前記転送装置がヘッダ情報に従って動作していると判定する試験結果判定手順と、
を備えることを特徴とするネットワーク検査方法。
【請求項６】
転送装置におけるパケット処理を検査するフロー検査装置と接続されている転送装置が実行するフロー検査方法であって、
転送ルールを定めるフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを保持する試験パケットを、前記フロー検査装置から受信するフローテーブル側受信手順と、
ネットワークを介して外部から受信したパケットが前記試験パケットであるか否かを、前記試験パケット識別子を用いて判定する試験パケット判定手順と、
受信したパケットが前記ユーザパケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理を行う通常パケット処理手順と、
受信したパケットが前記試験パケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理に加えて当該フローエントリに対応するフローＩＤを追記する処理を行う試験パケット処理手順と、
受信したパケットが前記試験パケットである場合、フローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた当該パケットを、前記試験結果として前記フロー検査装置に送信する試験結果送信手順と、
を備えることを特徴とするフロー検査方法。
【請求項７】
コンピュータに請求項５又は６に記載のネットワーク検査方法に備わる各手順を実行させるためのフロー検査プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットのヘッダ情報、入力ポート、出力ポート及び出力ヘッダ情報の組み合わせで転送規則が決定されるフローベースのネットワークにおける、転送装置の動作及び転送装置に設定された転送ルールを検査するネットワーク検査システム、フロー検査装置、ネットワーク検査方法、フロー検査方法、及びフロー検査プログラムに関する。
【背景技術】
【０００２】
ＳＤＮ（Ｓｏｆｔｗａｒｅ−Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ）を実現するための代表的なプロトコルの１つにＯｐｅｎＦｌｏｗがある。ＯｐｅｎＦｌｏｗはデータ転送制御機能部をデータ転送機能部と分離し、その間に統一的でオープンなインタフェースを規定する事により、データ転送機能の柔軟な制御を実現する。ＯｐｅｎＦｌｏｗは通信をエンドツーエンドの“フロー”として捉え、フロー単位で経路制御を行う。
【０００３】
ＯｐｅｎＦｌｏｗはＯＳＩ参照モデルで規定された各レイヤの宛先アドレスに従ってパケット転送を行うのではなく、複数のレイヤに跨がる情報の組み合わせで構成されたマッチ条件に一致したヘッダ情報を持つパケットに対して指定したアクションを実施し転送を行う。
【０００４】
このマッチ条件とアクションの組み合わせを“フローエントリ”と呼ぶ。フローエントリには、マッチフィールド、とアクションフィールドに加えて、カウンタと呼ばれるフロー毎の統計情報が付加される。さらに、上記ＯｐｅｎＦｌｏｗは、マルチテーブルと呼ばれる、フローエントリを格納するフローテーブルを複数用いた多段検索処理機能（パケットパイプライン処理機能）を保持している。
【０００５】
上記ＯｐｅｎＦｌｏｗに代表されるフローベースのパケット処理を行うＳＤＮノードにより構成されたネットワークの正常性を検査するためには、検査したいフローエントリにマッチするヘッダ情報を持つ試験パケットを送信し、相手先ＳＤＮノードへの試験パケット送信の成否、経由したＳＤＮノード情報、各ＳＤＮノード内でマッチしたフローエントリ情報の３つの情報を取得する必要がある。
【０００６】
関連技術では、ネットワーク装置の動作や各装置間の到達性を確認し、ネットワークの正常性を検査するために、Ｅｔｈｅｒｎｅｔ（Ｅｔｈｅｒｎｅｔは登録商標）  ＯＡＭ（Ｏｐｅｒａｔｉｏｎｓ，Ａｄｍｉｎｉｓｔｒａｔｉｏｎ，Ｍａｉｎｔｅｎａｎｃｅ）やＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）プロトコルを利用したｐｉｎｇやｔｒａｃｅｒｏｕｔｅ等が用いられてきた。
【０００７】
しかし、ＳＤＮノードにより形成された仮想ネットワーク内でＥｔｈｅｒｎｅｔ（Ｅｔｈｅｒｎｅｔは登録商標）  ＯＡＭやｐｉｎｇ、ｔｒａｃｅｒｏｕｔｅ等を利用したとしても、各ツールと同じマッチ条件を持つ特定のフローエントリを検査する事しかできず、マッチ条件に異なる条件（異なるＩＰプロトコル番号等）が含まれるフローエントリの正常性を検査する事はできない。
【０００８】
既存研究では、仮想ネットワーク上を流れるユーザパケットを疑似した試験パケットとＯｐｅｎＦｌｏｗコントローラのような制御装置への問い合わせ処理（Ｐａｃｋｅｔ−Ｉｎ）を活用する事により、上記課題に対応する方法が提案されている。以下に、上記既存研究における関連技術を説明する。
【０００９】
一方の関連技術では、試験パケットのＴＴＬ減算処理及びＴＴＬＩｎｖａｌｉｄによるＰａｃｋｅｔ−Ｉｎを活用する事により、指定したＳＤＮノード間の疎通確認と経路情報の取得を可能とする手法を提案している（例えば、非特許文献１、参照。）。
【００１０】
上記の関連技術ではまず、試験パケットとしてＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）パケット（他のＬ４プロトコルがＯｐｅｎＦｌｏｗ  スイッチのフローテーブル内で使用されている場合はそれを利用する）を生成し、検査対象フローエントリにマッチするヘッダ情報を設定する。
【００１１】
この時、マッチ条件に用いられていないヘッダフィールドに試験パケットを識別するための値を格納する。ＴＴＬ領域には２（経路確認の場合は、宛先までのホップ数）を、ペイロード部には検査したい経路情報（送信元ＳＤＮノードや宛先ＳＤＮノードを識別可能な情報）を格納し、Ｐａｃｋｅｔ−Ｏｕｔする。これにより、任意のパケットの到達性と経路情報を取得する事が可能となる。
【００１２】
他方の関連技術では、各ＳＤＮノードにタグ付けを行う事により試験パケットとユーザパケットを区別して処理する事を可能とし、指定したＳＤＮノード間の疎通確認と経路情報の取得を実現している。ＳＤＮノードのタグ付けには、隣接ＳＤＮノードが同一のタグを持たないようグラフ彩色アルゴリズムを活用する（例えば、非特許文献２、参照。）。
【００１３】
制御装置から検査したいＳＤＮノードに試験パケットを送信する際には、試験パケットのヘッダフィールドに、Ｐａｃｋｅｔ−Ｏｕｔ先のＳＤＮノードを示すタグを挿入する。この時、ＳＤＮノードを示すタグは各フローエントリのマッチ条件に利用されていないヘッダフィールド（ＶＬＡＮ  ｐｒｉｏｒｉｔｙ  ｂｉｔ  等）に格納される。Ｐａｃｋｅｔ−Ｏｕｔにより試験パケットを受け取ったＳＤＮノードは、パケットがマッチするフローエントリに従って試験パケットを処理する。
【００１４】
次に試験パケットを受け取った隣接ＳＤＮノードでは、「自身のタグと異なるタグが格納されているパケットの場合はＰａｃｋｅｔ−Ｉｎを行う」というフローエントリ（これは事前に設定しておく）に基づきＰａｃｋｅｔ−Ｉｎを実施する。このような一連の動作により、任意のパケットの到達情報と経路情報を、制御装置を介して取得する事が可能となる。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】大塚純一，近江貴晴，大山誠治，長谷川紗弓，山田洋一，“ＯｐｅｎＦｌｏｗ環境における仮想ネットワーク毎の疎通・経路確認方式の検討，”電子情報通信学会信学技報ＩＣＭ２０１３−６４，ｐｐ．７５−−８０，２０１４．
【非特許文献２】Ｋ．Ａｇａｒｗａｌ，Ｅ．Ｒｏｚｎｅｒ，Ｃ．Ｄｉｘｏｎ，ａｎｄＪ．Ｃａｒｔｅｒ，“ＳＤＮｔｒａｃｅｒｏｕｔｅ：ＴｒａｃｉｎｇＳＤＮＦｏｒｗａｒｄ−ｉｎｇ  ｗｉｔｈｏｕｔ  Ｃｈａｎｇｉｎｇ  Ｎｅｔｗｏｒｋ  Ｂｅｈａｖｉｏｒ，  ”ＡＣＭ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｈｏｔ  ｔｏｐｉｃｓ  ｉｎ  ｓｏｆｔｗａｒｅ  ｄｅｆｉｎｅｄ  ｎｅｔｗｏｒｋｉｎｇ（ＨｏｔＳＤＮ’１４），ｐｐ．１４５−−１５０，２０１４．
【発明の概要】
【発明が解決しようとする課題】
【００１６】
上述に係る関連技術では、ユーザパケットを模擬した試験パケットを生成し、検証したいフローを構成する先頭のＳＤＮノードに向けて送信する事により、フローの正常性確認（任意のヘッダ情報をもつパケットのＳＤＮノード間の疎通確認と経路情報の取得）を実現している。しかし、仮想ネットワークを管理するためには、先に述べた通りこれらの情報に加え各ＳＤＮノード内でパケットがマッチしたフローエントリ情報を取得する事が必要となる。
【００１７】
これは、主に設定作成や設定検証、障害発生時の障害箇所特定等に用いられる。さらに、ＳＤＮノードをネットワークサービスに適用していくためには、様々なユーザトラヒックがネットワーク内に流れている状況下において特定の試験パケットの流れを追跡し、前記情報を取得できる必要がある。
【００１８】
本発明は、各転送装置内で試験パケットがマッチした転送ルール情報をマルチテーブル（パケットパイプライン処理）の仕組みを利用して取得することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、本発明では、ユーザパケットを処理する転送ルールが記されたフローテーブルを複製し、試験パケットの処理を行うための新たなフローテーブルを設ける。その内部の転送ルールのアクションフィールドに、フローＩＤの取得処理を追加する事により、試験パケットがマッチした転送ルール情報をネットワーク管理者が取得する。
【００２０】
具体的には、本発明に係るネットワーク検査システムは、
パケットを転送する転送装置と前記転送装置におけるパケット処理を検査するフロー検査装置とが接続されているネットワーク検査システムであって、
前記フロー検査装置は、
前記転送装置における転送ルールを定めるフローエントリとフローＩＤとを対応付ける対応表、試験ＩＤに対応する試験パケットのヘッダ情報、を格納するフロー情報管理部と、
検査するフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを保持する試験パケットを生成する試験パケット生成部と、を備え、
前記転送装置は、
ネットワークを介して外部から受信したパケットが前記試験パケットであるか否かを、前記試験パケット識別子を用いて判定する試験パケット判定部と、
受信したパケットが前記ユーザパケットである場合、ヘッダ情報に一致するフローエントリで定められる処理を行う通常パケット処理部と、
前記通常パケット処理部に備わるフローエントリごとに前記試験パケット用のフローエントリが設けられ、受信したパケットが前記試験パケットである場合、ヘッダ情報に一致するフローエントリで定められる処理に加えて当該フローエントリに対応するフローＩＤを追記する処理を行う試験パケット処理部と、
を備える。
【００２１】
本発明に係るネットワーク検査システムでは、
前記フロー検査装置は、
前記転送装置においてフローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた前記試験パケットを、前記試験結果として受信する試験結果受信部と、
前記試験結果に記載されている試験ＩＤに一致する前記試験パケットのヘッダ情報を前記フロー情報管理部から呼び出し、前記試験結果に記載されているフローＩＤに対応するフローエントリを前記フロー情報管理部から呼び出し、前記試験パケットのヘッダ情報に一致するフローエントリと呼び出したフローエントリが一致している場合に、前記転送装置がヘッダ情報に従って動作していると判定する試験結果判定部をさらに備えていてもよい。
【００２２】
具体的には、本発明に係るフロー検査装置は、
パケットを転送する転送装置に接続されているフロー検査装置であって、
前記転送装置における転送ルールを定めるフローエントリとフローＩＤとを対応付ける対応表、試験ＩＤに対応するヘッダ情報、を格納するフロー情報管理部と、
前記転送装置における転送ルールを定めるフローエントリを複製し、フローエントリで定められた処理に加えて当該フローエントリに対応するフローＩＤを試験パケットに追記する処理を前記転送装置に行わせる試験パケット用のフローエントリを、前記転送装置に生成するフローテーブル変換部と、
検査するフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを記載した試験パケットを生成する試験パケット生成部と、
前記試験パケット生成部で生成された前記試験パケットを受信した前記転送装置から、ヘッダ情報に一致するフローエントリのフローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた当該試験パケットを、前記試験結果として受信する試験結果受信部と、
前記試験結果に記載されている試験ＩＤに一致する試験パケットのヘッダ情報を前記フロー情報管理部から呼び出し、前記試験結果に記載されているフローＩＤに対応するフローエントリを前記フロー情報管理部から呼び出し、前記試験パケットのヘッダ情報に一致するフローエントリと呼び出したフローエントリが一致している場合に、前記転送装置がヘッダ情報に従って動作していると判定する試験結果判定部と、
を備える。
具体的には、本発明に係る転送装置は、
転送装置におけるパケット処理を検査するフロー検査装置と接続されている転送装置であって、
転送ルールを定めるフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを保持する試験パケットを、前記フロー検査装置から受信するフローテーブル側受信部と、
ネットワークを介して外部から受信したパケットが前記試験パケットであるか否かを、前記試験パケット識別子を用いて判定する試験パケット判定部と、
受信したパケットが前記ユーザパケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理を行う通常パケット処理部と、
前記通常パケット処理部に備わるフローエントリごとに試験パケット用のフローエントリが設けられ、受信したパケットが前記試験パケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理に加えて当該フローエントリに対応するフローＩＤを追記する処理を行う試験パケット処理部と、
受信したパケットが前記試験パケットである場合、フローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた当該パケットを、前記試験結果として前記フロー検査装置に送信するフローテーブル側送信部と、
を備える。
【００２３】
具体的には、本発明に係るネットワーク検査方法は、
ユーザパケットを転送する転送装置におけるパケット処理を検査するフロー検査装置が実行するネットワーク検査方法であって、
前記転送装置における転送ルールを定めるフローエントリを複製し、フローエントリで定められた処理に加えてフローエントリに対応するフローＩＤを試験パケットに追記する処理を前記転送装置に行わせる試験パケット用のフローエントリを、前記転送装置に生成するフローテーブル変換手順と、
検査するフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを記載した試験パケットを生成する試験パケット生成手順と、
前記試験パケット生成手順で生成された試験パケットを受信した前記転送装置から、フローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた試験パケットを、前記試験結果として受信する試験結果受信手順と、
前記転送装置における転送ルールを定めるフローエントリとフローＩＤとを対応付ける対応表、前記試験ＩＤに対応するヘッダ情報、を格納するフロー情報管理部を参照して、前記試験結果に記載されている前記試験ＩＤに一致する試験パケットのヘッダ情報を前記フロー情報管理部から呼び出し、前記試験結果に記載されているフローＩＤに対応するフローエントリを前記フロー情報管理部から呼び出し、前記試験パケットのヘッダ情報に一致するフローエントリと呼び出したフローエントリが一致している場合に、前記転送装置がヘッダ情報に従って動作していると判定する試験結果判定手順と、
を備える。
【００２４】
具体的には、本発明に係るフロー検査方法は、
転送装置におけるパケット処理を検査するフロー検査装置と接続されている転送装置が実行するフロー検査方法であって、
転送ルールを定めるフローエントリに一致するヘッダ情報、試験パケットとユーザパケットを区別するために用いられる試験パケット識別子、及び試験パケットと試験結果の対応付けを行うために用いられる試験ＩＤを保持する試験パケットを、前記フロー検査装置から受信するフローテーブル側受信手順と、
ネットワークを介して外部から受信したパケットが前記試験パケットであるか否かを、前記試験パケット識別子を用いて判定する試験パケット判定手順と、
受信したパケットが前記ユーザパケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理を行う通常パケット処理手順と、
受信したパケットが前記試験パケットである場合、受信した当該パケットに対し、ヘッダ情報に一致するフローエントリで定められる処理に加えて当該フローエントリに対応するフローＩＤを追記する処理を行う試験パケット処理手順と、
受信したパケットが前記試験パケットである場合、フローＩＤが追記されかつヘッダ情報に一致するフローエントリで定められる処理が行われた当該パケットを、前記試験結果として前記フロー検査装置に送信する試験結果送信手順と、
を備えることを特徴とする。
【００２５】
具体的には、本発明に係るフロー検査プログラムは、コンピュータに本開示に係るネットワーク検査方法に備わる各手順を実行させるためのフロー検査プログラムである。
【００２６】
なお、上記各発明は、可能な限り組み合わせることができる。
【発明の効果】
【００２７】
本発明によれば、各転送装置内で試験パケットがマッチした転送ルール情報をマルチテーブルの仕組みを利用して取得することができる。
【図面の簡単な説明】
【００２８】
【図１】本実施形態に係る機器接続構成Ａの構成図の一例を示す。
【図２】本実施形態に係る機器接続構成Ｂの構成図の一例を示す。
【図３】本実施形態に係る機器接続構成Ｃの構成図の一例を示す。
【図４】本実施形態に係る機器接続構成Ｄの構成図の一例を示す。
【図５】本実施形態に係る機器接続構成Ｅの構成図の一例を示す。
【図６】本実施形態に係る機器接続構成Ｆの構成図の一例を示す。
【図７】本実施形態に係る機器接続構成Ｇの構成図の一例を示す。
【図８】本実施形態に係る機器接続構成Ｈの構成図の一例を示す。
【図９】本実施形態に係る機器接続構成Ｉの構成図の一例を示す。
【図１０】本実施形態に係る機器接続構成Ｊの構成図の一例を示す。
【図１１】本実施形態に係る転送装置における試験パケット処理のフローチャートの一例を示す。
【図１２】本実施形態に係る転送装置における試験パケット処理のフローチャートの一例を示す。
【図１３】本実施形態に係る転送装置における試験パケット処理の詳細なフローチャートの一例を示す。
【図１４】本実施形態に係る転送装置における試験パケット処理のフローチャートの一例を示す。
【図１５】本実施形態に係る転送装置における試験パケット処理のフローチャートの一例を示す。
【図１６】本実施形態に係る転送装置における試験パケット処理のフローチャートの一例を示す。
【図１７】本実施形態に係るネットワーク検査システムにおける動作の一例を示す。
【図１８】本実施形態に係るネットワーク検査システムにおける動作の一例を示す。
【図１９】本実施形態に係るネットワーク検査システムにおける動作の一例を示す。
【図２０】本実施形態に係るネットワーク検査システムにおける動作の一例を示す。
【図２１】本実施形態に係るネットワーク検査システムにおける動作の一例を示す。
【図２２】本実施形態に係るネットワーク検査システムにおける動作の一例を示す。
【図２３】本実施形態に係るネットワーク検査システムにおける動作の一例を示す。
【図２４】本実施形態に係る転送ルールの変換の一例を示す。
【図２５】本実施形態に係る転送ルールがマルチテーブルの場合のメタデータへのフローＩＤの格納方法の一例を示す。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。なお、本発明は、以下に示す実施形態に限定されるものではない。これらの実施の例は例示に過ぎず、本発明は当業者の知識に基づいて種々の変更、改良を施した形態で実施することができる。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００３０】
（実施形態１）
１．概要
本実施形態に係るネットワーク検査システムは、図１に示す転送装置１８と、フロー検査装置１１と、を備える。転送装置１８は、ネットワークを介して外部装置として機能するフロー検査装置１１から送信された試験パケットを受信し、パケットのヘッダ情報から転送装置１８内部のフローテーブルが有する転送ルールによってパケット種別を判定し、パケット種別に応じた処理を実施する。試験結果の判定は、フロー検査装置１１において転送装置１８から受信した試験パケットを元に、試験要求に応じて生成された送信前の試験パケットのヘッダ情報と、転送装置１８から受信した試験パケットのヘッダ情報と、転送装置１８内部で処理に利用された（マッチした）フローエントリと、の３つから判断する。
【００３１】
本実施形態に係るネットワーク検査システムでは、試験パケットが各ＳＤＮノード内でマッチしたフローエントリ（以下、転送ルールとする）の情報を取得し、各試験パケットが意図した転送ルールに従って処理しているかどうかを検査するために、フローベース制御を行う転送装置１８、フロー検査装置１１、及びフローテーブル変換部１７から構成される新たな機構を提案する。上述した構成を用いることで、本実施形態に係るネットワーク検査システムでは、転送装置１８から受信した試験パケットに格納された、フローＩＤから転送装置１８内部で試験パケット処理に用いられた転送ルールを導いて、送信前の試験パケットのヘッダ情報（これは試験パケットのペイロードに格納した試験ＩＤから導く）と、転送装置１８から受信した試験パケットのヘッダ情報の３つの情報から、フローの正常性を検査することができる。
【００３２】
フロー検査装置１１では、転送装置１８内のフローテーブル２２の管理とユーザパケットを疑似した試験パケットの生成及び送信、試験結果の受信と判定を行う。フローテーブル変換部１７では、転送装置１８のフローテーブル２２内に試験パケットを識別するための試験パケット判定部２３と、マッチした転送ルール情報を取得するための試験パケット処理部として機能するフロー情報格納処理部２６を設けるために設定予定の転送ルール群に変換を行う。
【００３３】
本発明は、ユーザパケットを処理する転送ルールが記されたフローテーブル２２群を複製して試験パケット処理用の新たなフローテーブル２２群（フロー情報格納処理部２６）を設け、その内部の転送ルールのアクションフィールドに、フローＩＤの取得処理を追加する事により、試験パケットがマッチした転送ルール情報をネットワーク管理者が取得可能となる。
【００３４】
本発明の実現方法としてとり得る構成が複数考えられる。これは、試験パケットの生成や試験結果の取得方法及び、転送装置１８内部に設定予定の転送ルールを書き換えるフローテーブル変換部１７の実装方法が複数パターン考えられる事や、試験パケットがマッチした転送ルール情報の取得方法として転送装置１８内部でのみパケットに付加されるメタデータを利用する方法と、パケットのヘッダフィールドに直接書き込む方法の２つの方法が考えられるためである。以下に、各パターンについての詳細を述べる。
【００３５】
機能接続構成Ａ〜Ｅ（図１〜図５がそれぞれ順に対応する。）は、試験パケットがマッチした転送ルール情報の取得方法として、メタデータを利用する場合の構成を示している。機能接続構成Ａ（図１）では、フロー検査装置１１内部に制御装置１２を設け、試験パケットの送信と試験結果の受信に制御装置１２を利用する。これは、ＯｐｅｎＦｌｏｗのＰａｃｋｅｔ−ＩｎとＰａｃｋｅｔ−Ｏｕｔの機能を利用する事により、実現可能である。
【００３６】
機能接続構成Ｂ（図２）では、制御装置１２とフローテーブル変換部１７をフロー検査装置１１から切り離し、フロー検査装置１１内に試験パケット送信部２０と試験結果受信部１３を設ける事により、フロー検査装置１１が試験パケットの送信と試験結果の受信を担う。また、フローテーブル変換部１７を制御装置１２の上段に設置し、制御装置１２から設定情報が送信される前に転送装置１８に設定予定の転送ルールを変換する。
【００３７】
機能接続構成Ｃ（図３）では、フローテーブル変換部１７を制御装置１２の下段に設置し、制御装置１２から転送装置１８に向けて送信された設定情報をフローテーブル変換部１７で受信し、設定予定の転送ルールに変換を行った後、転送装置１８へ設定する。機能接続構成Ｄ（図４）、機能接続構成Ｅ（図５）では、フロー検査装置１１とは独立した形で試験パケット生成装置３１を新たに設け、試験パケット生成部１５と試験パケット送信部２０をフロー検査装置１１と切り離す。
【００３８】
機能接続構成Ｆ〜Ｊ（図６−図１０）は、試験パケットがマッチした転送ルール情報の取得方法として、パケットのヘッダフィールドを利用する場合の構成を示している。フロー検査装置１１や試験パケット生成部１５等の構成は機能接続構成Ａ〜Ｅ（図１〜図５）と同様であり、機能接続構成Ｆ〜Ｊ（図６〜図１０）がそれぞれ順に対応する。ここで、本発明の構成の要素を以下に説明する。
【００３９】
２．開発技術の構成
（１）機能接続構成−Ａについて
フロー検査装置１１の構成
試験結果判定部１４：転送装置１８で転送後に受信した試験パケットのペイロードに付加されている試験ＩＤから、試験パケット生成部で生成された試験パケットと試験結果の対応付けを行う。また、試験結果判定部１４は、フロー情報管理部１６に保存されているフローテーブル情報から、試験パケットに記されたフローＩＤに一致する転送ルールを呼び出す。試験結果判定部１４は、試験結果（送信時の試験パケットヘッダ情報、受信時の試験パケットヘッダ情報、試験パケットが転送装置１８内でマッチしたフローエントリ情報）とフロー情報管理部１６から呼び出したフローテーブル情報に記載されているポリシーとが一致しているかどうかを比較することで、試験結果が正しいかどうかを判定することができる。
【００４０】
試験パケット生成部１５：フロー情報管理部１６から得た検査対象の転送装置１８のフローテーブル情報を元に、試験したいフローを構成する転送ルール群にマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納するか、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（試験ＩＤ）をペイロードに付加する。
【００４１】
フロー情報管理部１６：各転送装置１８のフローテーブル情報を保存する。フローテーブル情報は、転送ルール群であり、フローテーブル２２に設定されている転送ルールとフローＩＤとの対応表を含む。フローテーブル２２に設定されている転送ルールには、フローテーブル２２のテーブルＩＤが含まれていてもよい。さらに、フロー情報管理部では、試験パケットに格納する試験ＩＤに対応する試験パケットヘッダ情報を保存する。
【００４２】
フローテーブル２２には、試験パケット判定部２３、通常パケット処理部として機能するユーザパケット処理部２４、フロー情報格納処理部２６及び転送処理部２８が含まれる。ユーザパケット処理部２４にはユーザパケット転送ルールが格納され、フロー情報格納処理部２６には試験パケット転送ルールが格納される。ユーザパケット転送ルールは、ユーザパケットを処理するための転送ルールである。試験パケット転送ルールは、ユーザパケット転送ルールの試験を行うための転送ルールである。
【００４３】
フローテーブル変換部１７：フローテーブル２２に設定予定の転送ルールが試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、転送処理部２８の４つの要素で構成されるよう変換し、制御装置１２へ送信する。
【００４４】
フローテーブル変換部１７の有する機能を以下に説明する。
フローテーブル変換部１７では、ユーザパケットの処理だけが記述されたフローテーブルに対して、
・試験パケットかユーザパケットかを判定する機能（試験パケット判定部２３）
・転送ルールの入ったフローテーブルを複製し、複製したフローテーブルには試験パケット受信時に、転送処理に利用したフローＩＤを、メタデータまたは、空きヘッダフィールドに格納する機能（フロー情報格納処理部２６）
・試験パケットの場合は、フロー検査装置１１に試験結果を送信した後に、本来のアクションを実行する機能（次の転送装置１８に転送するなど）（転送処理部２８）
が追加されるように変換処理を行う機能を有する。
【００４５】
制御装置１２：複数の転送装置１８のフローテーブル２２への転送ルールの設定や、試験パケットの送信及び試験結果の受信、転送装置１８との制御情報の送受信を行う。
試験結果受信部１３：試験結果（転送装置１８内でマッチした転送ルールのＩＤ（フローＩＤ）を試験対象の転送装置１８から、制御装置１２を介して受信する。受信した試験結果を試験結果判定部１４へ渡す。
【００４６】
転送装置１８（ＳＤＮノード）の構成
フローテーブル２２
試験パケット判定部２３：フローテーブル側受信部２１を介して受信したパケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定部分に試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態に変換する。試験パケットであれば、フロー情報格納処理部２６へ、ユーザパケットであればユーザパケット処理部２４へ遷移する。
【００４７】
フロー情報格納処理部２６：ユーザパケット処理部２４を複製する事により、フロー情報格納処理部２６が生成される。試験パケット転送ルール２７のアクションフィールドに事前に変更を加えておき、試験パケットがマッチした転送ルールのＩＤをメタデータに格納する。（ユーザパケット処理部２４とフロー情報格納処理部２６はマッチしたフローＩＤをメタデータに格納する処理以外は等価な処理を行う）
【００４８】
転送処理部２８：全ての試験パケットは必ず転送処理部２８を通過する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチしたフローＩＤが格納されたメタデータ情報と共にフロー検査装置１１に向けて送信する。また、次の転送装置１８に向けてフローテーブル側送信部２９を介して試験パケットを送信する。
ユーザパケット処理部２４：全てのユーザパケットをユーザパケット転送ルール２５に沿って処理する。
【００４９】
（２）機能接続構成−Ｂについて
制御装置１２：複数の転送装置１８のフローテーブル２２への転送ルールの設定や、転送装置１８との制御情報の送受信を行う。
フローテーブル変換部１７：フローテーブル２２に設定予定の転送ルールが試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、転送処理部２８の４つの要素で構成されるよう変換し、制御装置１２へ送信する。
【００５０】
フロー検査装置１１
試験結果判定部１４：受信した試験結果のペイロードに付加されている試験ＩＤから、試験パケットと試験結果の対応付けを行う。フロー情報管理部１６に保存されている転送ルール群から試験結果に記されたフローＩＤに一致する転送ルールを呼び出す。試験結果判定部１４は、試験結果（送信時の試験パケットヘッダ情報、受信時の試験パケットヘッダ情報、試験パケットが転送装置１８内でマッチしたフローエントリ情報）とフロー情報管理部１６から呼び出したフローテーブル情報に記載されているポリシーとが一致しているかどうかを比較することで、試験結果が正しいかどうかを判定することができる。
【００５１】
試験パケット生成部１５：フロー情報管理部１６から得た検査対象の転送装置１８のフローテーブル情報を元に、試験したいフローを構成する転送ルール群にマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納するか、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報をペイロードに付加する。生成したパケットは試験パケット送信部２０を介して転送装置１８へ送信される。
【００５２】
フロー情報管理部１６：各転送装置１８に設定されている転送ルールと、フローＩＤの対応表及び、試験パケットに格納する試験ＩＤに対応する試験パケットヘッダ情報を保存する。
試験パケット送信部２０：試験パケット生成部１５で生成された試験パケットを試験対象フローの先頭の転送装置１８へ送信する。
試験結果受信部１３：試験対象の転送装置１８のフローテーブル側送信部２９から送信された試験結果（転送装置１８内でマッチした転送ルールのＩＤと処理後の試験パケット）を受信する。
【００５３】
転送装置１８（ＳＤＮノード）の構成
フローテーブル２２
試験パケット判定部２３：フローテーブル側受信部２１を介して受信したパケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定部分に試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。試験パケットであれば、フロー情報格納処理部２６へ、ユーザパケットであればユーザパケット処理部２４へ遷移する。
フロー情報格納処理部２６：ユーザパケット処理部２４を複製する事により、フロー情報格納処理部２６が生成される。試験パケット転送ルール２７のアクションフィールドに事前に変更を加えておき、試験パケットがマッチした転送ルールのＩＤをメタデータに格納する。（ユーザパケット処理部２４とフロー情報格納処理部２６はマッチしたフローＩＤをメタデータに格納する処理以外は同一の処理を行う）
転送処理部２８：全ての試験パケットは必ず転送処理部２８を通過する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチしたフローＩＤが格納されたメタデータ情報を試験パケットの空きヘッダフィールドに格納してフロー検査装置１１に向けてフローテーブル側送信部２９から送信する。また、次の転送装置１８に向けて試験パケットを送信する。
ユーザパケット処理部２４：全てのユーザパケットをユーザパケット転送ルール２５に沿って処理する。
【００５４】
（３）機能接続構成−Ｃについて
制御装置１２：複数の転送装置１８のフローテーブル２２への転送ルールの設定や、転送装置１８の制御情報の送受信を行う。
フローテーブル変換部１７：制御装置１２から転送装置１８に向けた制御メッセージを受け取り、フローテーブル２２に設定予定の転送ルールが試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、転送処理部２８の４つの要素で構成されるよう変換し、各転送装置１８に送信する。
【００５５】
フロー検査装置１１
試験結果判定部１４：受信した試験結果のペイロードに付加されている試験ＩＤから、試験パケットと試験結果の対応付けを行う。フロー情報管理部１６に保存されている転送ルール群から試験結果に記されたフローＩＤに一致する転送ルールを呼び出す。さらに、試験結果（送信時の試験パケットヘッダ情報、受信時の試験パケットヘッダ情報、試験パケットが転送装置１８内でマッチしたフローエントリ情報）とフロー情報管理部１６から呼び出したフローテーブル情報に記載されているポリシーとが一致しているかどうかを比較することで、試験結果が正しいかどうかを判定することができる。
【００５６】
試験パケット生成部１５：フロー情報管理部１６から得た検査対象の転送装置１８のフローテーブル情報を元に、試験したい転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納するか、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（試験ＩＤ）をペイロードに付加する。
【００５７】
フロー情報管理部１６：各転送装置１８に設定されている転送ルールと、フローＩＤの対応表及び、試験パケットに付加する試験パケット識別子を保存する。
試験パケット送信部２０：試験パケット生成部１５で生成された試験パケットを試験対象の転送装置１８へ送信する。
試験結果受信部１３：試験結果（転送装置１８内でマッチした転送ルールのＩＤと処理後の試験パケット）を試験対象の転送装置１８から受信する。
【００５８】
転送装置１８（ＳＤＮノード）
フローテーブル２２
試験パケット判定部２３：フローテーブル側受信部２１を介して受信したパケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定部分に試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。試験パケットであれば、フロー情報格納処理部２６へ、ユーザパケットであればユーザパケット処理部２６へ遷移する。
【００５９】
フロー情報格納処理部２６：事前に転送ルール内のアクションフィールドに変更を加えておく事により、試験パケットがマッチした転送ルールのＩＤ（フローＩＤ）をメタデータに格納する。
【００６０】
転送処理部２８：全ての試験パケットは必ず転送処理部２８を通過する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチしたフローＩＤが格納されたメタデータ情報を試験パケットの空きヘッダフィールドに格納してフロー検査装置１１に向けてフローテーブル側送信部２９を介して送信する。また、次の転送装置１８に向けて試験パケットを送信する。
ユーザパケット処理部２４：全てのユーザパケットをユーザパケット転送ルール２５に沿って処理する。
【００６１】
（４）機能接続構成−Ｄについて
制御装置１２：複数の転送装置１８のフローテーブル２２への転送ルールの設定や、転送装置１８との制御情報の送受信を行う。
フローテーブル変換部１７：フローテーブル２２に設定予定の転送ルールが試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、転送処理部２８の４つの要素で構成されるよう変換し、制御装置１２へ送信する。
【００６２】
フロー検査装置１１
試験結果判定部１４：受信した試験結果のペイロードに付加されている試験ＩＤから、試験パケットと試験結果の対応付けを行う。フロー情報管理部１６に保存されている転送ルール群から試験結果に記されたフローＩＤに一致する転送ルールを呼び出す。さらに、試験結果（送信時の試験パケットヘッダ情報、受信時の試験パケットヘッダ情報、試験パケットが転送装置１８内でマッチしたフローエントリ情報）とフロー情報管理部１６から呼び出したフローテーブル情報に記載されているポリシーとが一致しているかどうかを比較することで、試験結果が正しいかどうかを判定することができる。
【００６３】
フロー情報管理部１６：各転送装置１８に設定されている転送ルールと、フローＩＤの対応表及び、試験パケットに付加する試験パケット識別子を保存する。
試験結果受信部１３：試験結果（転送装置１８内でマッチした転送ルールのＩＤと処理後の試験パケット）を試験対象の転送装置１８から受信する。
【００６４】
試験パケット生成装置３１
試験パケット生成部１５：フロー情報管理部１６から得た検査対象の転送装置１８のフローテーブル情報を元に、試験したい転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納するか、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（試験ＩＤ）をペイロードに付加する。生成したパケットは試験パケット送信部２０を介して転送装置１８へ送信される。
試験パケット送信部２０：試験パケット生成部１５で生成された試験パケットを試験対象の転送装置１８へ送信する。
【００６５】
転送装置１８（ＳＤＮノード）
フローテーブル２２
試験パケット判定部２３：フローテーブル側受信部２１を介して受信したパケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定部分に試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。試験パケットであれば、フロー情報格納処理部２６へ、ユーザパケットであればユーザパケット処理部２４へ遷移する。
【００６６】
フロー情報格納処理部２６：事前に転送ルール内のアクションフィールドに変更を加えておく事により、試験パケットがマッチした転送ルールのＩＤ（フローＩＤ）
をメタデータに格納する。
【００６７】
転送処理部２８：全ての試験パケットは必ず転送処理部２８を通過する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチしたフローＩＤが格納されたメタデータ情報を試験パケットの空きヘッダフィールドに格納してフロー検査装置１１に向けてフローテーブル側送信部２９を介して送信する。また、次の転送装置１８に向けて試験パケットを送信する。
【００６８】
（５）機能接続構成−Ｅについて
制御装置１２：複数の転送装置１８のフローテーブル２２への転送ルールの設定や、転送装置１８との制御情報の送受信を行う。
フローテーブル変換部１７：制御装置１２から転送装置１８に向けた制御メッセージを受け取り、フローテーブル２２に設定予定の転送ルールが試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、転送処理部２８の４つの要素で構成されるよう変換し、各転送装置１８に送信する。
【００６９】
フロー検査装置１１
試験結果判定部１４：受信した試験結果のペイロードに付加されている試験ＩＤから、試験パケットと試験結果の対応付けを行う。フロー情報管理部１６に保存されている転送ルール群から試験結果に記されたフローＩＤに一致する転送ルールを呼び出す。
さらに、試験結果（送信時の試験パケットヘッダ情報、受信時の試験パケットヘッダ情報、試験パケットが転送装置１８内でマッチしたフローエントリ情報）とフロー情報管理部１６から呼び出したフローテーブル情報に記載されているポリシーとが一致しているかどうかを比較することで、試験結果が正しいかどうかを判定することができる。
フロー情報管理部１６：各転送装置１８に設定されている転送ルールと、フローＩＤの対応表及び、試験パケットに付加する試験パケット識別子を保存する。
試験結果受信部１３：試験結果（転送装置１８内でマッチした転送ルールのＩＤと処理後の試験パケット）を試験対象の転送装置１８から受信する。
【００７０】
試験パケット生成装置３１
試験パケット生成部１５：フロー情報管理部１６から得た検査対象の転送装置１８のフローテーブル情報を元に、試験したい転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納するか、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（試験ＩＤ）をペイロードに付加する。生成したパケットは試験パケット送信部２０を介して転送装置１８へ送信される。
試験パケット送信部２０：試験パケット生成部１５で生成された試験パケットを試験対象の転送装置１８へ送信する。
【００７１】
転送装置１８（ＳＤＮノード）
フローテーブル２２
試験パケット判定部２３：フローテーブル側受信部２１を介して受信したパケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定部分に試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。試験パケットであれば、フロー情報格納処理部２６へ、ユーザパケットであればユーザパケット処理部へ遷移する。
フロー情報格納処理部２６：事前に転送ルール内のアクションフィールドに変更を加えておく事により、試験パケットがマッチした転送ルールのＩＤをメタデータに格納する。
転送処理部２８：全ての試験パケットは必ず転送処理部２８を通過する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチした転送ルールに対応するフローＩＤが格納されたメタデータ情報を試験パケットの空きヘッダフィールドに格納してフロー検査装置１１に向けてフローテーブル側送信部２９を介して送信する。また、次の転送装置１８に向けて試験パケットを送信する。
【００７２】
（６）機能接続構成−Ｆ、Ｇ、Ｈ、Ｉ、Ｊについて
図６〜１０にそれぞれ対応するＦ、Ｇ、Ｈ、Ｉ、Ｊは、先に述べた通り、試験パケットがマッチした転送ルール情報の取得方法として、パケットのヘッダフィールドを利用する場合の構成を示している。試験パケットがマッチした転送ルール情報の取得方法としてメタデータを用いる場合で、かつ試験結果の受信に制御装置１２を介さない場合は、メタデータに保存した転送ルール情報をパケットの空きヘッダフィールドに書き込む必要があるが、試験パケットのヘッダフィールドに直接書き込む場合は、その必要性がない。
【００７３】
このため、転送処理部２８を設ける必要がなく、フロー情報格納処理部２６に転送処理部２８が持っていたその他の機能を集約する事が可能となる。よって、“フロー情報格納処理部２６”以外はＡ〜ＥとＦ〜Ｊはそれぞれ同じ構成をとる。以下、Ａ〜Ｅのフロー情報格納処理部２６の機能を示す。
【００７４】
フロー情報格納処理部２６：事前に転送ルール内のアクションフィールドに変更を加えておく事により、試験パケットがマッチした転送ルールのＩＤ（フローＩＤ）を試験パケットのヘッダフィールドに格納する（ヘッダフィールドはマッチ条件に重複しない箇所を事前に選択）。転送（または破棄）処理の前に、試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、フロー検査装置１１および、次の転送装置１８に向けて試験パケットを送信する（アクションを実行する）。
に向けて送信する。
【００７５】
３．開発技術の動作
転送装置１８における試験パケット処理の流れを図１１−１６に示す。また、試験パケットの流れを図１７−２３に示す。これは、機能接続構成Ａを例に転送装置＃１から転送装置＃３に向けて試験パケットを送信した場合の試験パケットの流れを示す。本発明の動作を実現方法毎に説明する。
【００７６】
（１）機能接続構成−Ａの動作
機能接続構成−Ａの動作を以下に図１１を用いて説明する。本実施形態では、転送装置１８に転送ルールを設定する前に、フロー検査装置１１のフローテーブル変換部１７において転送装置１８のフローテーブル２２に設定予定の転送ルールを試験パケット判定部２３、フロー情報格納処理部２６、転送処理部、ユーザパケット処理部２４により構成される形に変換し、制御装置１２を介して各転送装置１８に設定する。
【００７７】
次に、ネットワーク管理者からの要求を契機に（ステップＳ１０１）を、試験パケット生成部１５からフロー情報管理部１６の管理情報を元に試験対象の転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。
【００７８】
転送装置１８内で試験パケットユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納するか、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（フローＩＤ）をペイロードに付加する。生成したパケットは制御装置１２から最初の宛先となる転送装置１８に送信する。
【００７９】
転送装置１８におけるフローテーブル側受信部２１で受信した試験パケットは、まず試験パケット判定部２３で処理される。試験パケット判定部２３では、受信パケットが試験パケットであるかどうかを判定する（ステップＳ１０２）。試験パケットであれば、ヘッダフィールドの特定フィールドに試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し（ステップＳ１０３）、ユーザパケットと同じ状態にする。なお、試験パケットでない場合は、ユーザパケット処理部２４へ転送される（ステップＳ１１１）。
【００８０】
次に、試験パケットはフロー情報格納処理部２６で処理される（ステップＳ１０４）。フロー情報格納処理部２６にはユーザパケット処理部２４から複製された転送ルールが格納されており、試験パケットはユーザパケットと同様に転送ルールに従いマッチ処理される（ステップＳ１０５）。フロー情報格納処理部２６では試験パケットがマッチした転送ルールのＩＤを取得するために、事前に各転送ルールのアクションフィールドに、フローＩＤをメタデータに書き込むアクションを追加しておく（ステップＳ１０６及び１０７）。
【００８１】
転送ルールが複数テーブルに及ぶ場合はメタデータをテーブル毎に分割し（ステップＳ１０８）、マスク処理する事により全てのテーブルでマッチした転送ルールの情報取得を可能とする。最後に、試験パケットは転送処理部２８で処理される。転送処理部２８は、フローＩＤを格納したメタデータと処理された試験パケットをフローテーブル側送信部２９を介して制御装置１２へ送信する。
【００８２】
試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し（ステップＳ１０９）、マッチした転送ルールに対応するフローＩＤが格納されたメタデータ情報と共に制御装置１２に向けて送信する。また、対応するユーザパケット転送ルールと同様のアクション（転送または破棄）を実行する（ステップＳ１１０）。また、ステップＳ１１１における試験パケット以外のユーザパケットは、試験パケットにおけるステップＳ１０５、１０７、１０８と同様の動作でステップＳ１１２〜１１４の処理が行われる。
【００８３】
試験結果を受け取った試験結果受信部１３は、試験結果判定部１４に受信した試験結果を転送し、受信した試験結果のペイロードに付加されているフローＩＤから試験パケットと試験結果の対応付けを行い、メタデータ内のフローＩＤから転送ルールを導き出す。ネットワーク管理者は、送信した試験パケット、試験パケットがマッチした転送ルール、処理された試験パケットの３つの情報を元に、正常性を評価する。
【００８４】
なお、図１１に示すステップＳ１０１〜１１０は転送装置１８における試験パケット処理の流れ（マッチした転送ルールに対応するフローＩＤをメタデータに書き込む場合）であって、図１２に示すステップＳ２０１〜２１０は試験パケットをカプセル化し、試験パケット識別子の書き込みにメタデータを用いる場合を示す。
【００８５】
（２）機能接続構成−Ｂの動作
転送装置１８に転送ルールを設定する前に、フロー検査装置１１のフローテーブル変換部１７において転送装置１８のフローテーブル２２に設定予定の転送ルールを試験パケット判定部２３、フロー情報格納処理部２６、転送処理部２８、ユーザパケット処理部２４により構成される形に変換し、制御装置１２を介して各転送装置１８に設定する。
【００８６】
次に、ネットワーク管理者からの要求を契機に、試験パケット生成部１５からフロー情報管理部１６の管理情報を元に試験対象の転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納する。
【００８７】
又は、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（試験ＩＤ）をペイロードに付加する。生成したパケットは試験パケット送信部２０から最初の宛先となる転送装置１８に送信する。
【００８８】
転送装置１８におけるフローテーブル側受信部２１で受信した試験パケットは、まず試験パケット判定部２３で処理される。試験パケット判定部２３では、受信パケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定フィールドに試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。
【００８９】
次に、試験パケットはフロー情報格納処理部２６で処理される。フロー情報格納処理部２６にはユーザパケット処理部２４から複製された転送ルールが格納されており、試験パケットはユーザパケットと同様に処理される。
【００９０】
フロー情報格納処理部２６では試験パケットがマッチした転送ルールのＩＤを取得するために、事前に各転送ルールのアクションフィールドに、フローＩＤをメタデータに書き込むアクションを追加しておく。転送ルールが複数テーブルに及ぶ場合はメタデータをテーブル毎に分割し、マスク処理する事により全てのテーブルでマッチした転送ルールの情報取得を可能とする。
【００９１】
最後に、試験パケットは転送処理部２８で処理される。転送処理部２８は、フローＩＤを格納したメタデータと処理された試験パケットをフローテーブル側送信部２９を介してフロー検査装置１１の試験結果受信部１３へ向けて送信する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチしたフローＩＤが格納されたメタデータ情報を試験パケットのヘッダフィールドの空きフィールドに格納し、フロー検査装置１１に向けて送信する。また、アクション（転送または破棄）を実行する。
【００９２】
試験結果を受け取った試験結果受信部１３は、試験結果判定部１４に受信した試験結果を転送し、受信した試験結果のペイロードに付加されている試験パケット識別子から試験パケットと試験結果の対応付けを行い、取得したフローＩＤから転送ルールを導き出す。ネットワーク管理者は、送信した試験パケット、試験パケットがマッチした転送ルール、処理された試験パケットの３つの情報を元に、正常性を評価する。
【００９３】
（３）機能接続構成−Ｃの動作
制御装置１２から転送装置１８に向けた制御メッセージを受け取り、フローテーブル２２に設定予定の転送ルールが試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、転送処理部２８の４つの要素で構成されるよう変換し、各転送装置１８に送信する。
【００９４】
次に、ネットワーク管理者からの要求を契機に、試験パケット生成部１５からフロー情報管理部１６の管理情報を元に試験対象の転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納する。
【００９５】
又は、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（試験ＩＤ）をペイロードに付加する。生成したパケットは試験パケット送信部２０から最初の宛先となる転送装置１８に送信する。
【００９６】
転送装置１８におけるフローテーブル側受信部２１で受信した試験パケットは、まず試験パケット判定部２３で処理される。試験パケット判定部２３では、受信パケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定フィールドに試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。
【００９７】
次に、試験パケットはフロー情報格納処理部２６で処理される。フロー情報格納処理部２６にはユーザパケット処理部２４から複製された転送ルールが格納されており、試験パケットはユーザパケットと同様に処理される。
【００９８】
フロー情報格納処理部２６では試験パケットがマッチした転送ルールのＩＤ（フローＩＤ）を取得するために、事前に各転送ルールのアクションフィールドに、フローＩＤをメタデータに書き込むアクションを追加しておく。転送ルールが複数テーブルに及ぶ場合はメタデータをテーブル毎に分割し、マスク処理する事により全てのテーブルでマッチした転送ルールの情報取得を可能とする。
【００９９】
最後に、試験パケットは転送処理部２８で処理される。転送処理部２８は、フローＩＤを格納したメタデータと処理された試験パケットをフローテーブル側送信部２９を介してフロー検査装置１１の試験結果受信部１３へ向けて送信する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチした転送ルールに対応するフローＩＤが格納されたメタデータ情報を試験パケットのヘッダフィールドの空きフィールドに格納し、フロー検査装置１１に向けて送信する。また、アクション（転送または破棄）を実行する。
【０１００】
試験結果を受け取った試験結果受信部１３は、試験結果判定部１４に受信した試験結果を転送し、受信した試験結果のペイロードに付加されている試験ＩＤから試験パケットと試験結果の対応付けを行い、取得したフローＩＤから転送ルールを導き出す。ネットワーク管理者は、送信した試験パケット、試験パケットがマッチした転送ルール、処理された試験パケットの３つの情報を元に、正常性を評価する。
【０１０１】
（４）機能接続構成−Ｄの動作
転送装置１８に転送ルールを設定する前に、フロー検査装置１１のフローテーブル変換部１７において転送装置１８のフローテーブル２２に設定予定の転送ルールを試験パケット判定部２３、フロー情報格納処理部２６、転送処理部２８、ユーザパケット処理部２４により構成される形に変換し、制御装置１２を介して各転送装置１８に設定する。
【０１０２】
次に、ネットワーク管理者からの要求を契機に、試験パケット生成装置３１の試験パケット生成部１５からフロー情報管理部１６の管理情報を元に試験対象の転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納するか、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報をペイロードに付加する。生成したパケットは試験パケット送信部２０から最初の宛先となる転送装置１８に送信する。
【０１０３】
転送装置１８におけるフローテーブル側受信部２１で受信した試験パケットは、まず試験パケット判定部２３で処理される。試験パケット判定部２３では、受信パケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定フィールドに試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。
【０１０４】
次に、試験パケットはフロー情報格納処理部２６で処理される。フロー情報格納処理部２６にはユーザパケット処理部２４から複製された転送ルールが格納されており、試験パケットはユーザパケットと同様に処理される。
【０１０５】
フロー情報格納処理部２６では試験パケットがマッチした転送ルールのＩＤ（フローＩＤ）を取得するために、事前に各転送ルールのアクションフィールドに、フローＩＤをメタデータに書き込むアクションを追加しておく。転送ルールが複数テーブルに及ぶ場合はメタデータをテーブル毎に分割し、マスク処理する事により全てのテーブルでマッチした転送ルールの情報取得を可能とする。
【０１０６】
最後に、試験パケットは転送処理部２８で処理される。転送処理部２８は、フローＩＤを格納したメタデータと処理された試験パケットをフローテーブル側送信部２９を介してフロー検査装置１１の試験結果受信部１３へ向けて送信する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチした転送ルールに対応するフローＩＤが格納されたメタデータ情報を試験パケットのヘッダフィールドの空きフィールドに格納し、フロー検査装置１１に向けて送信する。また、アクション（転送または破棄）を実行する。
【０１０７】
試験結果を受け取った試験結果受信部１３は、試験結果判定部１４に受信した試験結果を転送し、受信した試験結果のペイロードに付加されている試験ＩＤから試験パケットと試験結果の対応付けを行い、取得したフローＩＤから転送ルールを導き出す。ネットワーク管理者は、送信した試験パケット、試験パケットがマッチした転送ルール、処理された試験パケットの３つの情報を元に、正常性を評価する。
【０１０８】
（５）機能接続構成−Ｅの動作
制御装置１２から転送装置１８に向けた制御メッセージを受け取り、フローテーブル２２に設定予定の転送ルールが試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、転送処理部２８の４つの要素で構成されるよう変換し、各転送装置１８に送信する。
【０１０９】
次に、ネットワーク管理者からの要求を契機に、試験パケット生成装置３１の試験パケット生成部１５からフロー情報管理部１６の管理情報を元に試験対象の転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納する。
【０１１０】
又は、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報をペイロードに付加する。生成したパケットは試験パケット送信部２０から最初の宛先となる転送装置１８に送信する。
【０１１１】
転送装置１８で受信した試験パケットは、まず試験パケット判定部２３で処理される。試験パケット判定部２３では、受信パケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定フィールドに試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。
【０１１２】
次に、試験パケットはフロー情報格納処理部２６で処理される。フロー情報格納処理部２６にはユーザパケット処理部２４から複製された転送ルールが格納されており、試験パケットはユーザパケットと同様に処理される。
【０１１３】
フロー情報格納処理部２６では試験パケットがマッチした転送ルールのＩＤを取得するために、事前に各転送ルールのアクションフィールドに、フローＩＤをメタデータに書き込むアクションを追加しておく。転送ルールが複数テーブルに及ぶ場合はメタデータをテーブル毎に分割し、マスク処理する事により全てのテーブルでマッチした転送ルールの情報取得を可能とする。
【０１１４】
最後に、試験パケットは転送処理部２８で処理される。転送処理部２８は、フローＩＤを格納したメタデータと処理された試験パケットをフローテーブル側送信部２９を介してフロー検査装置１１の試験結果受信部１３へ向けて送信する。試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、マッチした転送ルールに対応するフローＩＤが格納されたメタデータ情報を試験パケットのヘッダフィールドの空きフィールドに格納し、フロー検査装置１１に向けて送信する。また、アクション（転送または破棄）を実行する。
【０１１５】
試験結果を受け取った試験結果受信部１３は、試験結果判定部１４に受信した試験結果を転送し、受信した試験結果のペイロードに付加されている試験ＩＤから試験パケットと試験結果の対応付けを行い、取得したフローＩＤから転送ルールを導き出す。ネットワーク管理者は、送信した試験パケット、試験パケットがマッチした転送ルール、処理された試験パケットの３つの情報を元に、正常性を評価する。
【０１１６】
（６）機能接続構成−Ｆ、Ｇ、Ｈ、Ｉ、Ｊの動作
ここでは、Ｆ−Ｊは、マッチした転送ルールを試験パケットの空きヘッダフィールドに書き込む事で、Ａ−Ｅの転送処理部２８の機能をフロー情報格納処理部２６に集約したものであるため、１つのケースのみ例示することとする。
【０１１７】
転送装置１８に転送ルールを設定する前に、フロー検査装置１１のフローテーブル変換部１７において転送装置１８のフローテーブル２２に設定予定の転送ルールを試験パケット判定部２３、フロー情報格納処理部２６、転送処理部２８、ユーザパケット処理部２４により構成される形に変換し、制御装置１２を介して各転送装置１８に設定する。
【０１１８】
次に、ネットワーク管理者からの要求を契機に、試験パケット生成装置３１の試験パケット生成部１５からフロー情報管理部１６の管理情報を元に試験対象の転送ルールにマッチするヘッダ情報を持つ試験パケットを生成する。転送装置１８内で試験パケットをユーザパケットと区別して処理するために、試験パケットは全ての転送装置１８内でマッチ条件に用いられていないヘッダフィールドに試験パケット識別子を格納する。
【０１１９】
又は、全ての転送装置１８内でマッチ条件に用いられていないプロトコルでカプセル化し、試験パケットを一意に識別するための識別情報（試験ＩＤ）をペイロードに付加する。生成したパケットは制御装置１２（またはフロー検査装置１１の試験パケット送信部２０）から最初の宛先となる転送装置１８に送信する。
【０１２０】
転送装置１８におけるフローテーブル側受信部２１で受信した試験パケットは、まず試験パケット判定部２３で処理される。試験パケット判定部２３では、受信パケットが試験パケットであるかどうかを判定する。試験パケットであれば、ヘッダフィールドの特定フィールドに試験パケット識別子が格納されているか、未使用のプロトコルでカプセル化されている。カプセル化されている場合は、カプセル化を解除し、ユーザパケットと同じ状態にする。
【０１２１】
次に、試験パケットはフロー情報格納処理部２６で処理される。フロー情報格納処理部２６にはユーザパケット処理部２４から複製された転送ルールが格納されており、試験パケットはユーザパケットと同様に処理される。フロー情報格納処理部２６では試験パケットがマッチした転送ルールのＩＤを取得するために、事前に各転送ルールのアクションフィールドに、フローＩＤを特定のヘッダフィールドに書き込むアクションを追加しておく。
【０１２２】
転送ルールが複数テーブルに及ぶ場合は特定のヘッダフィールドをテーブル毎に分割し、マスク処理する事により、全てのテーブルでマッチした転送ルールの情報取得を可能とする。アクションフィールドにパケットの転送または破棄が明示されている場合は、そのアクションが実行される前に、試験パケット判定部２３でカプセル化解除している場合は再度カプセル化し、試験パケットを制御装置１２（またはフロー検査装置１１の試験結果受信部１３）に送信するアクションを追加しておく。
【０１２３】
試験結果を受け取った制御装置１２（または試験結果受信部１３）は、試験結果判定部１４に受信した試験結果を転送し、受信した試験結果のペイロードに付加されている試験パケット識別子から試験パケットと試験結果の対応付けを行い、取得したフローＩＤから転送ルールを導き出す。ネットワーク管理者は、送信した試験パケット、試験パケットがマッチした転送ルール、処理された試験パケットの３つの情報を元に、正常性を評価する。ここで、機能接続構成Ａ〜Ｊのそれぞれの動作は、各機能接続構成毎に上記に説明したが、図１１〜１６における動作方法のいずれかにより動作してもよい。
【０１２４】
具体的な動作方法の説明として図１１を用いて上述したが、試験パケットの識別方法として、マッチ条件に重複しない値をヘッダフィールドに格納する方法をとり、フローＩＤの書き込みにメタデータを利用する場合は図１３に係る試験パケット処理を実行してもよい。マッチした転送ルールに対応するフローＩＤをパケットのヘッダに書き込む場合は図１４に係る試験パケット処理を実行してもよい。
【０１２５】
また、試験パケットをカプセル化し、フローＩＤの書き込みに試験パケットの空きヘッダフィールドを用いる場合は図１５に係る試験パケット処理を実行してもよい。試験パケットの識別方法として、マッチ条件に重複しない値をヘッダフィールドに格納する方法を利用し、フローＩＤの書き込みにも空きヘッダフィールドを用いる場合は図１６に係る試験パケット処理を実行してもよい。
【０１２６】
４．発明によって生じる効果
本稿では、関連技術では得る事のできなかった各転送装置１８内で試験パケットがマッチした転送ルール情報をマルチテーブルの仕組みを利用する事により取得する方法を提案した。
【０１２７】
本発明により、ネットワーク管理者はユーザパケットとは区別して試験パケットの流れを把握する事ができるようになるため、関連技術に比べて仮想ネットワーク内の詳細な状態を検証する事が可能となる。更に、障害が発生した際には、本発明を用いて各ＳＤＮノードにおける試験パケットの処理を、マッチした転送ルール単位で追う事により、障害発生箇所の特定を関連技術よりも迅速に行う事が可能となる。
【０１２８】
また、試験パケット処理部をユーザパケット処理部２４と分離したことにより、ユーザパケット処理のための転送ルールに対して制限（メタデータの専有等）を設けることなく検証を実施する事が可能となり、試験可能なユースケースを拡大した。
【０１２９】
“ユーザパケットを処理する転送ルールを同一筐体内で複製し、試験パケットの処理を実施する”という方法に関しては、ＯｐｅｎＦｌｏｗに留まらず、処理がハードウェアに依存しないソフトウェアで実現されたネットワーク機能であれば、適用が可能であると考える。
【０１３０】
ここで、本実施形態に係るネットワーク検査システムにおいて、フローテーブル側受信部２１と、フローテーブル２２と、試験パケット判定部２３と、ユーザパケット処理部２４と、フロー情報格納処理部２６と、が有する機能を転送プログラムとして転送装置１８が有する記憶部（不図示）に記憶される。また、本実施形態に係るネットワーク検査システムにおいて、制御装置１２と、試験結果受信部１３と、試験結果判定部１４と、試験パケット生成部１５と、フロー情報管理部１６と、フローテーブル変換部１７と、が有する機能をフロー検査プログラムとしてフロー検査装置１１が有する記憶部（不図示）に記憶される。この場合、転送装置１８又はフロー検査装置１１内のＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が、記憶部（不図示）に記憶されたコンピュータプログラムを実行することで、各構成を実現する。
【０１３１】
５．発明のポイント
（１）ＳＤＮの利点（ソフトウェアで記述する事ができるため、ルールの追加や削除、複製が容易）を活かし、フローテーブル２２を複製して検査用のフローテーブル２２（試験パケット転送用ルール）を生成する。
（２）転送装置１８に転送ルールが設定される前に、各転送ルールが、試験パケット判定部２３、フロー情報格納処理部２６、ユーザパケット処理部２４、（転送先判定部）の４つ（３つ）の要素から構成されるよう、フローテーブル変換部１７の機能を活用して変更を行う（図２４）。
（３）ユーザパケット処理部２４内の転送ルールには、試験機能を導入しても、手が加わることがない。（ユーザパケットに対しては不要な処理が一切されない）
（４）試験パケットをユーザパケットと区別して識別するために、試験パケットは管理者が指定したプロトコルを利用してカプセル化する。
（５）カプセル化を利用しない場合は、試験パケットをユーザパケットと区別するために、試験パケットは転送ルールのマッチ条件に指定されていないヘッダフィールドに試験パケット識別子を格納する。
（６）転送ルールを一意に識別するために、新たにフローＩＤを定義する。
（７）試験パケットがマッチした転送ルールの情報（フローＩＤ）を得るために、フロー情報格納処理部２６内の転送ルールには、マッチ条件に利用されていないヘッダフィールドもしくは、メタデータにフローＩＤを格納するアクションを追加する。
（８）試験結果の取得時に制御装置１２を介さない実装で、かつフローテーブル情報の取得にメタデータを利用する場合は、メタデータ情報を試験パケットの空きヘッダフィールドに格納する処理を転送処理部２８で実施する。
（９）転送用ルール群の前段にテーブル（試験パケット判定部２３）を設置し、試験パケットの識別を行う。
（１０）フローＩＤの格納にメタデータを活用し、かつ転送用ルールがマルチテーブルの場合は、メタデータをテーブルの合計数に区切って、各区画をテーブル毎に割り当てる（図２５）。
（１１）転送用ルール群に記述されているアクションのうち、パケットの転送や破棄に関するものは試験結果（取得したフローＩＤと、処理された試験パケット）をフロー検査装置１１に送信した後に実行する。
（１２）ネットワーク内のすべての転送装置１８のフローエントリを取得し、それをもとに検査したいフローにマッチする試験パケットを生成する。
（１３）制御装置１２を介して設定される予定の転送ルールを「事前に書き換えること」により、検証機能を実現することができる。
（１４）送信前の試験パケットの状態、送信後（処理後）の試験パケットの状態、処理に用いられた（マッチした）フローエントリの情報の３つの情報から正常性を確かめることができる。
（１５）ユーザパケット処理用の転送ルール（フローテーブル２２）を複製し、試験パケット処理用のフローテーブル２２を作成することで、メタデータをマッチ条件に用いるようなユースケースも対応可能である。
【産業上の利用可能性】
【０１３２】
本発明は情報通信産業に適用することができる。
【符号の説明】
【０１３３】
１１：フロー検査装置
１２：制御装置
１３：試験結果受信部
１４：試験結果判定部
１５：試験パケット生成部
１６：フロー情報管理部
１７：フローテーブル変換部
１８：転送装置
２０：試験パケット送信部
２１：フローテーブル側受信部
２２：フローテーブル
２３：試験パケット判定部
２４：ユーザパケット処理部
２５：ユーザパケット転送ルール
２６：フロー情報格納処理部
２７：試験パケット転送ルール
２８：転送処理部
２９：フローテーブル側送信部
３１：試験パケット生成装置
【図１】
0006467277.tif 000002
【図２】
0006467277.tif 000003
【図３】
0006467277.tif 000004
【図４】
0006467277.tif 000005
【図５】
0006467277.tif 000006
【図６】
0006467277.tif 000007
【図７】
0006467277.tif 000008
【図８】
0006467277.tif 000009
【図９】
0006467277.tif 000010
【図１０】
0006467277.tif 000011
【図１１】
0006467277.tif 000012
【図１２】
0006467277.tif 000013
【図１３】
0006467277.tif 000014
【図１４】
0006467277.tif 000015
【図１５】
0006467277.tif 000016
【図１６】
0006467277.tif 000017
【図１７】
0006467277.tif 000018
【図１８】
0006467277.tif 000019
【図１９】
0006467277.tif 000020
【図２０】
0006467277.tif 000021
【図２１】
0006467277.tif 000022
【図２２】
0006467277.tif 000023
【図２３】
0006467277.tif 000024
【図２４】
0006467277.tif 000025
【図２５】
0006467277.tif 000026