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