(57)【要約】【課題】単体のプロトコルルールに従わない転送を行うネットワークにおいても、効率的に通信の検査を行うことを可能とする技術を提供する。【解決手段】パケットの転送を行うネットワークを構成するパケット転送装置において、前記パケットの転送処理を行うパケット転送処理手段を備え、検査制御装置から受信する情報に基づき、前記パケット転送処理手段の前又は後に、検査用パケット処理手段を追加し、前記検査用パケット処理手段は、検査用パケットに対し、当該検査用パケット処理手段に設定された処理を行い、当該処理に応じて前記検査制御装置に通知を行うように構成する。【選択図】図８
2014236388.tif 000002
【特許請求の範囲】
【請求項１】
パケットの転送を行うネットワークを構成するパケット転送装置であって、
前記パケットの転送処理を行うパケット転送処理手段を備え、
検査制御装置から受信する情報に基づき、前記パケット転送処理手段の前又は後に、検査用パケット処理手段を追加し、
前記検査用パケット処理手段は、検査用パケットに対し、当該検査用パケット処理手段に設定された処理を行い、当該処理に応じて前記検査制御装置に通知を行う、
ことを特徴とするパケット転送装置。
【請求項２】
前記パケット転送処理手段は、入力されたパケットに対する処理規則のリストを備え、前記検査用パケット処理手段は、当該リストの先頭部分又は最後部分に検査用パケットに対する処理規則を追加することにより追加される
ことを特徴とする請求項１に記載のパケット転送装置。
【請求項３】
前記処理規則のリストは、多段構成のテーブルとして構成され、前記検査用パケット処理手段は、当該多段構成のテーブルの先頭部分又は最後部分に、検査用パケットに対する処理規則を含むテーブルを追加することにより追加される
ことを特徴とする請求項２に記載のパケット転送装置。
【請求項４】
前記処理規則のリストは、それぞれがマッチ条件とアクションを含む１つ又は複数のエントリとして構成され、前記検査用パケット処理手段は、当該１つ又は複数のエントリの先頭部分又は最後部分に、検査用パケットに対するアクションを含むエントリを追加することにより追加される
ことを特徴とする請求項２に記載のパケット転送装置。
【請求項５】
前記処理規則のリストは、マッチ条件と１つ又は複数のアクションを含むエントリにおける当該１つ又は複数のアクションとして構成され、前記検査用パケット処理手段は、当該１つ又は複数のアクションの先頭部分又は最後部分に、検査用パケットに対するアクションを追加することにより追加される
ことを特徴とする請求項２に記載のパケット転送装置。
【請求項６】
前記検査制御装置から受信する情報に基づき、前記処理規則のリストの中に検査用パケットに対する処理規則を追加することにより、前記パケット転送装置内の検査を行うための走査用パケット処理手段が追加される
ことを特徴とする請求項２ないし５のうちいずれか１項に記載のパケット転送装置。
【請求項７】
前記検査用パケット処理手段が前記パケット転送処理手段の前に追加される場合において、当該検査用パケット処理手段に設定される処理は、検査用パケットを前記パケット転送処理手段に転送することであり、前記検査用パケット処理手段が前記パケット転送処理手段の後に追加される場合において、当該検査用パケット処理手段に設定される処理は、検査用パケットを所定のポートから出力することである
ことを特徴とする請求項１ないし６のうちいずれか１項に記載のパケット転送装置。
【請求項８】
前記パケット転送装置が前記所定のポートによりパケットの宛先となるユーザ装置に接続される場合には、前記検査用パケット処理手段に設定される処理は、検査用パケットを前記所定のポートから出力することを含まない
ことを特徴とする請求項７に記載のパケット転送装置。
【請求項９】
パケットの転送を行うネットワークを構成するパケット転送装置における検査方法であって、
前記パケット転送装置は、前記パケットの転送処理を行うパケット転送処理手段を備え、
検査制御装置から受信する情報に基づき、前記パケット転送処理手段の前又は後に、検査用パケット処理手段を追加するステップと、
前記検査用パケット処理手段が、検査用パケットに対し、当該検査用パケット処理手段に設定された処理を行い、当該処理に応じて前記検査制御装置に通知を行うステップと
を備えることを特徴とする検査方法。
【請求項１０】
コンピュータを、請求項１ないし８のうちいずれか１項に記載のパケット転送装置における各手段として機能させるためのプログラム。
【請求項１１】
パケットを転送するネットワークを構成するパケット転送装置に対する検査制御を行う検査制御装置であって、
前記パケット転送装置は、入力されたパケットに対する処理規則のリストに基づきパケット転送処理を行うパケット転送処理手段を備え、
前記パケット転送装置に対し、検査用パケットの処理規則を含む情報を送信することにより、前記パケット転送装置に検査用パケット処理手段を追加させる手段と、
前記パケット転送装置に検査用パケットを注入する手段と、
前記検査用パケットを受信した前記検査用パケット処理手段により出力される情報を取得する手段と、
前記取得した情報に基づいて、前記ネットワークの正常性を判定する判定手段と
を備えることを特徴とする検査制御装置。
【請求項１２】
前記判定手段は、前記ネットワークの構成情報を格納する運用制御装置から当該構成情報を取得し、当該構成情報と、前記取得した情報に基づく構成情報とを比較することにより、前記ネットワークの正常性を判定する
ことを特徴とする請求項１１に記載の検査制御装置。
【請求項１３】
パケットを転送するネットワークを構成するパケット転送装置に対する検査制御を行う検査制御装置が実行する検査制御方法であって、
前記パケット転送装置は、入力されたパケットに対する処理規則のリストに基づきパケット転送処理を行うパケット転送処理手段を備え、
前記パケット転送装置に対し、検査用パケットの処理規則を含む情報を送信することにより、前記パケット転送装置に検査用パケット処理手段を追加させるステップと、
前記パケット転送装置に検査用パケットを注入するステップと、
前記検査用パケットを受信した前記検査用パケット処理手段により出力される情報を取得するステップと、
前記取得した情報に基づいて、前記ネットワークの正常性を判定する判定ステップと
を備えることを特徴とする検査制御方法。
【請求項１４】
コンピュータを、請求項１１又は１２に記載の検査制御装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットの転送を行うパケット転送装置からなるネットワークの正常性を検査する技術に関連するものである。
【背景技術】
【０００２】
近年、ＯｐｅｎＦｌｏｗと呼ばれる技術が普及してきている。ＯｐｅｎＦｌｏｗでは、コントローラが網内に置かれた複数のＯｐｅｎＦｌｏｗスイッチ（ＯＦＳ）にフローテーブルを設定することによって、Ｅｎｄ−Ｅｎｄでのユーザ通信路（パス）を作成している。
【０００３】
ＯＦＳは、自身にデータパケットが入力されると、パケットの任意かつ複数のフィールドを参照し、フローテーブル内のエントリに記載された命令に従って、パケット転送や書き換え操作を行う。
【０００４】
ＯｐｅｎＦｌｏｗでは、フローテーブル内のエントリを適宜設定することで、例えば、ＮＷオペレータのポリシーに従って転送先を自由に変えたり、フィールド自体を追加したり、フィールドの値を自由に書き換えたりすることができる。更に、フローテーブルを１つのＯＦＳ中に複数個用意して、それらを連続的に参照させて処理を行うこと（パイプライン処理と呼ぶ）も可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−０３６８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば上記ＯｐｅｎＦｌｏｗのように、単体のプロトコルルールに従わない転送を行うネットワークにおいて、Ｅｎｄ−Ｅｎｄでの通信がＮＧである場合、従来からあるプロトコル標準のＯＡＭ機能のみでは十分な切り分けを行うことができないという問題がある。従って、通信ＮＧが発生した場合、例えば各中継ノードの設定内容をひとつずつ確認する必要があり、非効率である。
【０００７】
本発明は上記の点に鑑みてなされたものであり、単体のプロトコルルールに従わない転送を行うネットワークにおいても、効率的に通信の検査を行うことを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決するために、本発明は、パケットの転送を行うネットワークを構成するパケット転送装置であって、
前記パケットの転送処理を行うパケット転送処理手段を備え、
検査制御装置から受信する情報に基づき、前記パケット転送処理手段の前又は後に、検査用パケット処理手段を追加し、
前記検査用パケット処理手段は、検査用パケットに対し、当該検査用パケット処理手段に設定された処理を行い、当該処理に応じて前記検査制御装置に通知を行うことを特徴とするパケット転送装置として構成される。
【０００９】
前記パケット転送処理手段は、入力されたパケットに対する処理規則のリストを備え、前記検査用パケット処理手段は、当該リストの先頭部分又は最後部分に検査用パケットに対する処理規則を追加することにより追加されるようにしてもよい。
【００１０】
前記処理規則のリストは、例えば多段構成のテーブルとして構成され、前記検査用パケット処理手段は、当該多段構成のテーブルの先頭部分又は最後部分に、検査用パケットに対する処理規則を含むテーブルを追加することにより追加されるようにしてもよい。
【００１１】
前記処理規則のリストは、それぞれがマッチ条件とアクションを含む１つ又は複数のエントリとして構成されてもよく、前記検査用パケット処理手段は、当該１つ又は複数のエントリの先頭部分又は最後部分に、検査用パケットに対するアクションを含むエントリを追加することにより追加されるようにしてもよい。
【００１２】
また、前記処理規則のリストは、マッチ条件と１つ又は複数のアクションを含むエントリにおける当該１つ又は複数のアクションとして構成されてもよく、前記検査用パケット処理手段は、当該１つ又は複数のアクションの先頭部分又は最後部分に、検査用パケットに対するアクションを追加することにより追加されるようにしてもよい。
【００１３】
また、前記検査制御装置から受信する情報に基づき、前記処理規則のリストの中に検査用パケットに対する処理規則を追加することにより、前記パケット転送装置内の検査を行うための走査用パケット処理手段が追加されるようにしてもよい。
【００１４】
前記検査用パケット処理手段が前記パケット転送処理手段の前に追加される場合において、当該検査用パケット処理手段に設定される処理は、例えば検査用パケットを前記パケット転送処理手段に転送することであり、前記検査用パケット処理手段が前記パケット転送処理手段の後に追加される場合において、当該検査用パケット処理手段に設定される処理は、例えば検査用パケットを所定のポートから出力することである。
【００１５】
また、前記パケット転送装置が前記所定のポートによりパケットの宛先となるユーザ装置に接続される場合には、前記検査用パケット処理手段に設定される処理は、検査用パケットを前記所定のポートから出力することを含まないこととしてもよい。
【００１６】
また、本発明は、パケットを転送するネットワークを構成するパケット転送装置に対する検査制御を行う検査制御装置であって、
前記パケット転送装置は、入力されたパケットに対する処理規則のリストに基づきパケット転送処理を行うパケット転送処理手段を備え、
前記パケット転送装置に対し、検査用パケットの処理規則を含む情報を送信することにより、前記パケット転送装置に検査用パケット処理手段を追加させる手段と、
前記パケット転送装置に検査用パケットを注入する手段と、
前記検査用パケットを受信した前記検査用パケット処理手段により出力される情報を取得する手段と、
前記取得した情報に基づいて、前記ネットワークの正常性を判定する判定手段とを備えることを特徴とする検査制御装置として構成することもできる。
【００１７】
前記判定手段は、前記ネットワークの構成情報を格納する運用制御装置から当該構成情報を取得し、当該構成情報と、前記取得した情報に基づく構成情報とを比較することにより、前記ネットワークの正常性を判定するように構成してもよい。
【発明の効果】
【００１８】
本発明によれば、単体のプロトコルルールに従わない転送を行うネットワークにおいても、効率的に通信の検査を行うことを可能とする技術を提供される。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態に係る通信システムの全体構成図である。
【図２】本実施の形態の動作概要を示す図である。
【図３】本実施の形態の動作概要を示す図である。
【図４】パケット転送装置１００の機能構成図である。
【図５】パケット転送装置１００の構成例を示す図である。
【図６】パケット転送装置１００の構成例を示す図である。
【図７】パケット転送装置１００の構成例を示す図である。
【図８】検査を行う場合のパケット転送装置１００の機能構成図である。
【図９】検査制御装置１０の機能構成図である。
【図１０】本実施の形態の通信システムの動作の流れを示すフローチャートである。
【図１１】検査対象パスを指定し、検査用パケットのヘッダ情報を把握する処理を示す図である。
【図１２】ユーザデータをキャプチャする処理を示す図である。
【図１３】検査用に予約テーブルを追加する処理を示す図である。
【図１４】検査パケットを注入する処理、及び検査用パケット取得の処理を示す図である。
【図１５】カウンタ値を取得する処理を示す図である。
【図１６】パケット転送装置２が被疑装置であることを示す図である。
【図１７】パケット転送装置内の絞り込みを行う場合におけるパケット転送装置１００の機能構成図である。
【図１８】パケット転送装置内の絞り込みを行う場合におけるパケット転送装置１００の機能構成図である。
【図１９】テーブルの飛び越えを説明するための図である。
【図２０】パケット転送装置１００の基本的な構成を示す図である。
【図２１】パケット転送装置１００においてパケット転送処理部を処理規則のリストとした図である。
【図２２】変形例１のパケット転送装置１００を示す図である。
【図２３】変形例２のパケット転送装置１００を示す図である。
【図２４】変形例２のテーブルの例を示す図である。
【図２５】変形例３のパケット転送装置１００を示す図である。
【図２６】基本例及び変形例をまとめて示した図である。
【図２７】本発明をＯｐｅｎＦｌｏｗで実装した場合の例（パケット転送装置１，２に対応）を示す図である。
【図２８】本発明をＯｐｅｎＦｌｏｗで実装した場合の例（パケット転送装置３に対応）を示す図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下で説明する実施の形態は一例に過ぎず、本発明が適用される実施の形態は、以下の実施の形態に限られるわけではない。例えば、以下の実施の形態では、本発明をＯｐｅｎＦｌｏｗ技術に適用する場合について説明しているが、本発明の適用先はＯｐｅｎＦｌｏｗ技術に限られることはなく、種々の通信方式に適用可能である。
【００２１】
（課題の説明）
本発明の実施の形態を説明するにあたり、まず、ＯｐｅｎＦｌｏｗにおける課題についてより詳細に説明しておく。
【００２２】
ユーザ通信が通るＥｎｄ−Ｅｎｄフロー（主信号通信パスに相当）は、全てのＯｐｅｎＦｌｏｗスイッチ（ＯＦＳ）に対してフローテーブル設定が正常に行われることで完成するが、通常、ＯＦＳの装置ごとに書き込まれているフローテーブルの内容は異なる。従って、もしも、何らかの通信異常に直面した時には、経路中に存在する各ＯＦＳのフローテーブルが、意図したとおりに設定されているかを、オペレータが確認する必要が生じる。
【００２３】
一般的に、ユーザのＥｎｄ−Ｅｎｄ通信に何かしら問題があったとき、その原因の診断／切り分けには、対象となる通信プロトコル（Ｄ−Ｐｌａｎｅ）に備えられた標準的な障害管理機能やツールセット（ＯＡＭ機能）を使うことが多い。このような機能として、例えば、ＩＰ−Ｐｉｎｇ／ｔｒａｃｅｒｏｕｔｅ（ＩＰの場合）、Ｙ．１７３１／８０２．１ａｇ  ＬｏｏｐＢａｃｋ／ＬｉｎｋＴｒａｃｅ  （Ｅｔｈｅｒｎｅｔ（登録商標）の場合）、ＬＳＰ−ｐｉｎｇ／ｔｒａｃｅ（ＭＰＬＳの場合）等がある。
【００２４】
しかし、ＯｐｅｎＦｌｏｗの標準規格には、現在のところ、Ｄ−Ｐｌａｎｅに対するＯＡＭ機能についての標準的な技術は存在しない。ＯｐｅｎＦｌｏｗでは、ＯＦＳが、Ｄ−Ｐｌａｎｅパケット中の様々なフィールドを自由に参照し、必ずしも単体のプロトコルのルールに従わない転送をする。従って、上記の各種プロトコル別に備わっているＯＡＭ機能は、そのままでは使用することはできない。
【００２５】
例えば、ＯｐｅｎＦｌｏｗスイッチのネットワーク空間の外側に、ＩＰに対応した従来のユーザ端末が接続されていて、通信事業者がＥｎｄ−ＥｎｄでのＩＰの通信到達性を提供している場合を考える。この環境では、ユーザ端末からＩＰ−Ｐｉｎｇを発行すれば、リモートにある端末と接続しているかどうかは判定できる。しかし、Ｐｉｎｇ応答がなかったとき、そこからの切り分けは困難である。この場合は次のステップとして、どの中継ＯｐｅｎＦｌｏｗスイッチで問題が生じているのかを切り分ける必要が出てくるが、ＩＰ−ｔｒａｃｅｒｏｕｔｅは役に立たない（ＯｐｅｎＦｌｏｗはＩＰに従った転送ルールを持っていないためＴＴＬが減算されていないこともありえるし、ＩＰヘッダがＥｔｅｈｅｒヘッダに置き換わっているということもある）。
【００２６】
上記のように、ＯｐｅｎＦｌｏｗでは、ＯＦＳが様々なプロトコルフィールドを自由に参照し、必ずしも従来のプロトコルのルールに従わない転送をすることから、従来のプロトコル標準のＤ−Ｐｌａｎｅ  ＯＡＭ機能（例ＩＰ−Ｐｉｎｇなど）のみでは、障害の確認・解析を適切に行うことができず、現状では、例えばＯＦＳに１台ずつログインしてフローテーブルの中身を順を追って表示確認するといった作業が必要であり、確認作業に時間がかかる。
【００２７】
本実施の形態では、上記のように非効率な作業を行うことなく、フローテーブルの中身が正しいか、また、フローテーブルが、コントローラが意図した通りに正しくＯＦＳに入っていて、転送設定へと反映されているか否か等を、効率よく確認することを可能とする技術が提供される。
【００２８】
（システム構成、動作概要）
図１に、本実施の形態に係る通信システムの全体構成図を示す。図１に示すように、本実施の形態に係る通信システムは、複数のパケット転送装置から構成される中継ネットワーク、検査制御装置１０、及び運用制御装置２０を含む。本例では、図示の便宜上、中継ネットワークに含まれるパケット転送装置として、３つのパケット転送装置１、２、３が示されている。Ｉｎｇｒｅｓｓのパケット転送装置１には、送信元ユーザ装置３０がＵＮＩを介して接続され、Ｅｇｒｅｓｓのパケット転送装置３には宛先ユーザ装置４０がＵＮＩを介して接続されている。検査制御装置１０、運用制御装置２０はそれぞれ管理用ネットワーク等を介して各パケット転送装置と通信可能であるが、図１では、検査制御装置１０と各パケット転送装置が接続された（通信可能である）状態が示されている。
【００２９】
検査制御装置１０と運用制御装置２０との間も通信可能に接続されている。なお、例えば検査制御装置１０の機能を運用制御装置２０内に備える等、検査制御装置１０と運用制御装置２０とが１つの装置として構成されていてもよい。
【００３０】
図１に示す通信システムにおけるパスの検査時の動作概要を図２、図３を参照して説明する。ここでは、運用制御装置２０から各パケット転送装置への指示に基づき、送信元ユーザ装置３０から宛先ユーザ装置４０への通信を収容するために、パケット転送装置１からパケット転送装置３までのパス（ネットワーク）を作成したこととし、当該パスが実際に疎通しているかどうかを検査制御装置１０が確認する動作例を説明する。
【００３１】
ステップ１）検査用命令の追加、検査用パケットの生成（図２）
本例では、ＶＬＡＮ−ＶＩＤ１００を検査用フラグとし、各パケット転送装置に対しＶＬＡＮ−ＶＩＤ１００のパケットを受信したら検査制御装置１０に通知する命令を書き込む。後述するように、本実施の形態において、この命令は、テーブル内のエントリとして実現される。また、検査制御装置１０は、検査対象のパスを流れるパケットであって、ＶＬＡＮ−ＶＩＤ１００を含むパケットを生成する。
【００３２】
ステップ２）検査用パケットの注入、通知（図３）
検査制御装置１０は、生成した検査用パケットをパケット転送装置１に注入する。当該パケットに対し、検査対象パスに対応して各パケット転送装置に設定されている規則に従い転送処理が行われるが、本実施の形態においては、各パケット中継装置は、ステップ１で設定された命令に従って、ＶＬＡＮ−ＶＩＤ１００のパケットが到着したら、到着したことを検査制御装置１０に通知して、次のパケット転送装置への転送処理を行う。
【００３３】
ステップ３）結果出力、検査用命令の削除
検査制御装置１０は、各パケット転送装置から受信する通知に基づいて、所望の結果が得られたかどうかを示す情報を出力する。例えば、運用制御装置２０から取得する情報に基づいて、検査対象パスがパケット転送装置１〜３を通るパスであることを把握しており、もしも、ある特定のパケット転送装置及びそれ以降のパケット中継装置から通知を受けなかった場合に、当該特定のパケット転送装置に何かしらの不具合があることを示す情報を出力する。この場合、例えば、後述する方法で、当該パケット転送装置内で障害の切り分けを行うことが可能である。その後、検査制御装置１０は、各パケット転送装置において検査に使用した命令を削除する。
【００３４】
以下、各装置の構成、及び動作をより詳細に説明する。
【００３５】
（装置構成）
＜パケット転送装置について＞
本実施の形態における中継ネットワークを構成する各パケット転送装置は、ＯｐｅｎＦｌｏｗスイッチの技術を用いて構成している。まず、図４を参照して、中継ネットワークを構成する各パケット転送装置として使用されるパケット転送装置１００の基本的な機能構成を説明する。
【００３６】
図４に示すように、パケット転送装置１００は、複数のテーブル（フローテーブル）を備える。
【００３７】
パケット転送装置１００内の各テーブルには、複数のエントリが記述されている。各エントリには、パケットのフィールドに対する「マッチ条件」と、当該フィールドがマッチ条件に合致した時（ヒットした時）の処理内容である「インストラクション」（１つ又は複数のアクション）が含まれる。インストラクションの内容によってフィールド書き換えや転送先が決定される。
【００３８】
例えば、図４に示す例のように、「マッチ条件」が「"ＩＰ宛先アドレスが○であり"、かつ、"ＴＣＰポート番号が８０番"」である場合に、当該テーブルに入力されたパケットの該当フィールドにおいて「"ＩＰ宛先アドレスが○であり"、かつ、"ＴＣＰポート番号が８０番"」に合致した場合、「インストラクション」で指定された処理（アクション）、つまり、「"ＶＬＡＮタグ１００番をセット"、かつ"出力ポート番号を＃１０番に指定"かつ"次のテーブルへ遷移"」という処理がパケットに対してなされる。
【００３９】
また、マッチ条件とインストラクションのセット（＝エントリ）には、優先度（priority)が付与されており、同一テーブル中のエントリ（マッチ条件）の検索は優先度の高い順に行われる。なお、異なるエントリが同一の優先度を持っていてもよい。もしも優先度が同点であってマッチするエントリが複数あった場合は、何らかのアルゴリズムで択一選択が行われる。
【００４０】
また、上記の例のように明示的なインストラクションによって、あるいは、マッチが見つからなかった場合の処理として、別のテーブルへの遷移を行うことができる。テーブルには番号が付与されており、本実施の形態では、テーブルは番号の昇順に遷移するものとし、入力パケットは最初に配置されたテーブルから検索される。
【００４１】
基本的に、パケット転送装置１００における各テーブルの内容は、作成しようとしているパスの接続構成等に応じて、運用制御装置２０から適宜設定や書き換えがなされる。このように、ユーザ通信を実現するためのパスを構成するために、運用制御装置２０から適宜設定や書き換えが行われるテーブルを通常テーブルと呼ぶ。
【００４２】
本実施の形態において、上述した機能構成を持つパケット転送装置１００の実現方法は特定の方法に限定されない。例えば、図５に示すように、パケット転送処理部１１０と、テーブル格納部１２０を備えた構成とすることができる。この構成では、テーブル格納部１２０に各テーブル（データ）が格納されている。パケット転送処理部１１０は、入力ポートからパケットを受信すると、テーブル格納部１２０に格納されたテーブルを順次参照することにより、図４を参照して説明した処理と同様に「マッチ条件」と「インストラクション」に基づく処理をテーブル毎に実行し、最後のテーブルにおける「インストラクション」に基づいて、パケットを出力ポートから出力する。テーブル格納部１２０に格納されるテーブルは、図４に示すように実際に複数（多段）に分けられ、番号付けされたテーブルであってもよいし、複数テーブルの内容を含む１つのテーブルであってもよい。
【００４３】
図５の構成において、パケット転送処理部１１０を専用のハードウェア回路で実現し、データ格納部１２０をメモリ等の記憶装置で実現することができる。また、図５に示す装置を、通信ＩＦを備えるコンピュータで実現することもできる。その場合、パケット転送処理部１１０の動作を、当該コンピュータにプログラムを動作させることで実現することができる。この場合のプログラムは、例えば、テーブル格納部１２０に格納されたテーブルに記述されたエントリの内容に従って、パケットを処理する動作に対応するプログラムになる。
【００４４】
また、図５に示すパケット転送装置１００は、それぞれが１つのテーブルに対応する複数のパケット転送処理部を備えるものとしてもよい。つまり、図６に示すように、あるテーブルとパケット転送処理部１１０とが１つのサブ要素のパケット転送処理部に対応し、別のテーブルとパケット転送処理部１１０とが別のサブ要素のパケット転送処理部に対応するということである。例えば、テーブルｎにより構成されるサブ要素のパケット転送処理部は、テーブルｎ＋１により構成されるパケット転送処理部よりも前に備えられていることになる。
【００４５】
また、例えば、テーブル格納部１２０にテーブルが追加された場合、サブ要素のパケット転送処理部が追加されたことになる。なお、後述する予約テーブルが追加される前の通常テーブルに対応するパケット転送処理部の集合をパケット転送処理手段と称することができる。
【００４６】
また、図５、図６のような構成以外にも、図４に示す構成の各テーブルがパケット転送機能を備える構成としてもよい。つまり、図７に示すように、パケット転送装置１００を、パケットを受信して「マッチ条件」と「インストラクション」に基づく処理を行うパケット転送処理部を複数備えた構成としてもよい。図７に示す１つのパケット転送処理部が、図４に示す１つのテーブルに対応する。図７に示す各パケット転送処理部は、例えば、複数のエントリ（＝テーブル）を格納する記憶手段と、エントリに従って、入力されたパケットの転送処理を行うパケット転送手段を備える。図７に示す各パケット転送処理部は、例えばハードウェア回路で実現してよい。また、図７に示すパケット転送装置１００をコンピュータで実現し、各パケット転送処理部をソフトウェアモジュールとしてもよい。ソフトウェアモジュールとすることで、必要に応じて、パケット転送処理部を付加したり削除したりすることができる。なお、当該ソフトウェアモジュールは、ＣＰＵとメモリ等のハードウェアに、プログラムを実行させることにより実現される機能部である。また、図６に示すパケット転送処理部の集合をパケット転送処理手段と称してもよい。
【００４７】
上述したように、本実施の形態に係るパケット転送装置１００は、通信機能を持つコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、パケット転送装置１００における各機能部は、コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００４８】
以下では、図４に示した記述方法でパケット転送装置の構成、及び処理を説明するが、その実現方法は、図５、図６に示した構成でもよいし、図７に示した構成でもよいし、その他の構成でもよい。
【００４９】
図８に、図１に示した本実施の形態の各パケット転送装置が検査を行う場合における各パケット転送装置に相当するパケット転送装置１００の機能構成を示す。図８に示すように、パケット転送装置１００内において、最前段に「入力用予約テーブル」を設け、最後段に「出力用予約テーブル」を設ける。各予約テーブルは検査制御装置１０からしか操作（設定、変更、削除等）ができないように、パケット転送装置１００において書き込みがガードされている。
【００５０】
本実施の形態では、このような予約テーブルを設けることで、その他の通常のテーブルを一切操作せずに検査を可能としている。
【００５１】
図８に示すように、各予約テーブルには、予め定めた検査用フィールドが存在する場合に、検査制御装置１０にパケットを出力することを含むインストラクションが記述された最高優先のエントリが設定されている。すなわち、図８に示す例において、入力用予約テーブルには、パケットに検査用フィールドが存在する場合に、次のテーブルに遷移し、かつ、検査制御装置１０にパケットを出力（コピー出力）することを示すエントリが最高優先（priority=0)で記述されている。また、出力用予約テーブルには、検査用フィールドが存在し、出力ポート指示情報が１番である場合に、パケットをポート１番に出力し、かつ、検査制御装置１０にパケットを出力することを示すエントリが最高優先（priority=0)で記述されている。
【００５２】
「検査用フィールドが存在する」とは、例えば、パケット内の所定の場所に所定のビット値が存在することであるが、検査用パケットの判別方法はこのような方法に限られるわけではない。また、「出力ポート指示情報」とは、図８においての通常テーブル（テーブル０〜Ｎ）をパイプライン処理されていく過程で、どこかで何らかの手段で出力ポートの番号が決まった時、後段のテーブルにその値の情報を引き継ぐために参照される値（装置内部のみで使われる値）である。
【００５３】
図８に示す入力用予約テーブルは、次の優先度のエントリとして、「検査用フィールドが存在する」にマッチしない通常のパケットを次のテーブルに遷移させるエントリを含む。また、出力用予約テーブルは、次の優先度のエントリとして、出力ポート指示情報が１番である場合に、パケットをポート１番に出力させるエントリを含む。このようにすることで、検査用パケットでない通常のパケットについては通常通りの処理を行うことを可能としている。
【００５４】
図５に示すような実現方式の場合、入力用予約テーブル及び出力用予約テーブルをテーブル格納部１２０に追加で格納することで、図８に示す機能を実現できる。すなわち、追加で格納されたテーブルと、パケット転送処理部１１０により、１つのサブ要素のパケット転送処理部が追加される。予約テーブルの追加により追加されるパケット転送処理部を、検査用パケット処理部と称してもよい。
【００５５】
また、図７に示す実現方式の場合、多段で構成されたパケット転送処理部の最前段に、入力用予約テーブルの内容に対応するロジックで処理を行うパケット転送処理部を追加し、多段で構成されたパケット転送処理部の最後段に、出力用予約テーブルの内容に対応するロジックで処理を行うパケット転送処理部を備えることで、図７に示す機能を実現できる。
【００５６】
当該追加されるパケット転送処理部を検査用パケット処理部と称してもよい。また、当該検査用パケット処理部は、検査制御装置１０から受信するテーブル情報に基づいて、当該テーブル情報を参照して処理を行うように構成されたプログラムモジュール（オブジェクト等）が生成（追加）されることで実現される。パケット転送装置１００は、検査制御装置１０から受信するテーブル情報に基づいて、当該テーブル情報を参照して処理を行うように構成されたプログラムモジュールを追加する機能を備えている。
【００５７】
上述したように、本実施の形態に係るパケット転送装置は、パケットの転送を行うネットワークを構成するパケット転送装置であって、前記パケットの転送処理を行うパケット転送処理部を備え、検査制御装置１０から受信する情報に基づき、前記パケット転送処理部の前又は後に、検査用パケット処理部を追加し、当該検査用パケット処理部は、検査用パケットを受信した場合に、前記検査制御装置１０に通知を行うとともに、検査用パケットに対し、当該検査用パケット処理部に設定された処理（次テーブルに遷移等）を行う。
【００５８】
また、前記パケット転送処理部は、入力されたパケットに対する処理規則のリストを備え、前記検査用パケット処理部は、当該リストの先頭部分又は最後部分に検査用パケットに対する処理規則を追加することにより追加される。また、前記処理規則のリストは、多段構成のテーブルとして構成され、前記検査用パケット処理部は、当該多段構成のテーブルの先頭部分又は最後部分に、検査用パケットに対する処理規則を含むテーブルを追加することにより追加される。
【００５９】
＜運用制御装置、検査制御装置について＞
本実施の形態に係る運用制御装置２０はデータベースを有し、当該データベースには、中継ネットワークにおけるパケット転送装置の接続構成（物理トポロジ）、各パス（フロー）の始点、終点、経路等を含む構成情報（どのパケット転送装置のどのポートを通るかを示す情報）、帯域等の情報、各パケット転送装置におけるテーブル及びテーブル内のエントリの内容等が格納されている。検査制御装置１０は、運用制御装置２０にアクセスすることにより、当該データベースから所望の情報を取得できるものとする。また、運用制御装置２０は、各パケット転送装置の通常テーブルにおけるエントリの追加・削除・管理を行う機能を備える。
【００６０】
次に検査制御装置１０について説明する。図９は、検査制御装置１０の機能構成図である。図９に示すように、検査制御装置１０は、操作ＩＦ部１１、検査用パケット作成処理部１２、検査用パケット注入部１３、検査用命令設定部１４、検査用情報取得部１５、障害判定部１６を備える。
【００６１】
操作ＩＦ部１１は、オペレータが検査制御装置１１に操作情報を入力したり、検査制御装置１１から出力される情報の表示を行う等の機能を備え、例えば、情報表示手段（ディスプレイ等）、情報入力手段（キーボード等）を含む。また、操作ＩＦ部１１は、オペレータが遠隔端末からネットワークを介して操作を行う場合のインターフェースであってもよく、その場合、例えば操作ＩＦ部１１は、Ｗｅｂサーバ機能を備え、Ｗｅｂ画面を上記遠隔端末に提供し、オペレータはＷｅｂ画面上で命令を入力したり、障害判定結果等を見ることができる。
【００６２】
検査用パケット作成処理部１２は、後述する方法で検査用パケットを作成する。検査用パケット注入部１３は、操作ＩＦ部１１からの指示に基づき、検査対象のパスが通る指示されたパケット転送装置の入力ポートから当該パケット転送装置に検査用パケットを注入する。検査用命令設定部１４は、各パケット検査装置に対する予約テーブルや走査テーブルの追加、削除、変更等を行う。また、検査用命令設定部１４は、一旦追加された予約テーブルや走査テーブル内のエントリの追加、削除、変更等を行うこともできる。
【００６３】
また、後述するように、予約テーブルを用いずに、通常テーブル内に、検査用エントリを設ける構成を採用する場合、検査用命令設定部１４は、当該検査用エントリの追加、削除、変更等を行うこともできる。また、エントリ内に、検査用アクションを設ける構成を採用する場合、検査用命令設定部１４は、当該検査用アクションの追加、削除、変更等を行うこともできる。
【００６４】
検査用情報取得部１５は、各パケット転送装置から検査用エントリの命令に基づいて出力された検査用パケット等の情報を受信し、検査用パケット等を障害判定部１６に渡す。また、パケット転送装置は、検査用エントリの設定によって、検査用パケットそのものを検査制御装置１０に出力しないこととすることもでき、その場合、検査用情報取得部１５は、例えば、パケット転送装置から、検査用パケットが予約テーブルを通過した回数を示すカウンタ値等を取得することができる。
【００６５】
障害判定部１６は、検査用情報取得部１５から渡される情報に基づいて、障害の有無を判定し、出力する機能を有する。例えば、障害判定部１６は、検査用情報取得部１５から渡される情報により把握されるパスの接続状態（構成情報）と、運用制御装置２０から取得する検査対象パスの正しい経路情報等（構成情報）とを比較することにより、実際のパスが正しく接続されているかどうか等を判定し、結果を操作ＩＦ部１１から出力する。
【００６６】
なお、検査用パケット作成処理部１２は、検査制御装置１０内に存在しなくてもよく、例えば、検査用パケット作成処理部１２を別の装置を用いて実現してもよい。
【００６７】
本実施の形態に係る検査制御装置１０は、検査制御装置１０として使用するコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、検査制御装置１０における各機能部は、コンピュータに内蔵されるＣＰＵやメモリ、ハードディスクなどのハードウェア資源を用いて、各部で実施される処理に対応するプログラムを実行することによって実現することが可能である。上記プログラムは、コンピュータが読み取り可能な記録媒体（可搬メモリ等）に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
【００６８】
また、上記プログラム（アプリケーション）を、運用制御装置２０で実行させることにより、運用制御装置２０が検査制御装置１０の機能を持つこととしてもよい。
【００６９】
（基本動作詳細）
以下、図１０に示す手順に沿って、これまでに説明したパケット転送装置、及び検査制御装置１０により行われる検査用パケットの作成から障害判定までの基本動作を説明する。説明において図１１〜図１６を適宜参照する。以下の各ステップ番号は図１０に示すステップ番号に対応する。
【００７０】
ステップ１０１〜１０３では検査用パケットの作成を行う。本実施の形態において想定している、パケット内の任意の情報を参照してパケット転送を行う中継ネットワークにおいて、パケットを流すことでユーザ通信パスの正常性検査を行うためには、当該パケットはユーザ装置から出力され転送されるパケットとできるだけ同一である必要がある。そこで、以下のステップ１０１〜１０３のようにして検査用パケットを作成している。ただし、ステップ１０１〜１０３のようにして検査用パケットを作成することは一例に過ぎない。検査用パケットの作成はどのような方法を用いて行ってもよい。
【００７１】
＜ステップ１０１：検査対象パスを指定＞
まず、検査制御装置１０において、オペレータが、操作用ＩＦを用いて、どのパス（ユーザ回線やフロー）を検査するかを入力する（図１１の（１））。入力される情報は、例えば、当該パスを識別できる名前、番号等である（これらをパスＩＤと呼ぶ）。パスＩＤは検査用パケット作成処理部１２と障害判定部１６に通知される。検査用パケット作成処理部１２は、指定された検査対象パスに対応する検査用パケットを生成する。具体的には以下のとおりである。
【００７２】
本実施の形態では、検査用パケット作成処理部１２は、パケット転送装置１における、検査対象パスＩｎｇｒｅｓｓポート（ＵＮＩ）に関するテーブルのエントリを参照することで、検査対象のパスでパケット転送を行うために使用されるパケットのヘッダ情報を取得する（図１１の（２））。もしくは、検査制御装置１０は、パスＩＤを指定することで、運用制御装置１０から上記テーブルの情報を取得して、ヘッダ情報を抽出してもよい。
【００７３】
＜ステップ１０２：ユーザデータをキャプチャ＞
次に、検査制御装置１０における検査用パケット作成処理部１２が、検査対象パスのユーザデータをサンプリングキャプチャし（図１２の（１）、（２））、検査用パケットのペイロード部分を作成する。なお、サンプリングキャプチャせずに、オペレータ（キャリア）がペイロード部分を作成してもよい。なお、キャプチャ方法として、例えばｓＦｌｏｗ等の技術を用いることができる。
【００７４】
＜ステップ１０３：検査用パケット作成＞
検査制御装置１０における検査用パケット作成処理部１２は、ステップ１０１で確認したヘッダ情報とステップ１０２で作成したペイロードとから検査用パケットを作成する。なお、検査用パケット作成処理部１２自体がパケット生成機能を持ってもよいし、検査制御装置１０の外部にパケットジェネレータモジュールを備え、当該パケットジェネレータモジュールに対してパケット作成要求を行い、作成されたパケットを検査制御装置１０が受け取ることとしてもよい。
【００７５】
検査用パケットには、検査用パケットを通常パケットと区別するための、何らかの識別情報が付加される。識別情報はユーザ通信で使っていない領域範囲において検査用パケット作成処理部１２が任意に指定してもよいし、オペレータが手動で指定してもよい。ただし、ここで決められた識別情報のパケット内の記述領域の情報及び識別情報の値は、予約テーブル（及び後述する走査テーブル）における検査用パケットの判別条件に反映される。
【００７６】
識別情報を記述する領域としては、例えば、ＩＰのＴｙｐｅ  ｏｆ  Ｓｅｒｖｉｃｅフィールド、Ｅｔｈｅｒｎｅｔ（登録商標）の宛先ＭＡＣアドレスフィールド、ＶＬＡＮ−ＶＩＤフィールド、Ｃｌａｓｓ  ｏｆ  Ｓｅｒｖｉｃｅフィールド等がある。これらのフィールドの中の任意のビット値であってもよいし、複数の異なるビットやフィールドの組み合わせ条件でもよい。
【００７７】
＜ステップ１０４：検査用に予約テーブルを追加＞
続いて、検査制御装置１０の検査用命令設定部１４は、操作ＩＦ部１１から受信するオペレータからの指示内容に基づいて、入力用予約テーブルと出力用予約テーブルを作成し、パケット転送装置１〜３のそれぞれに、入力用予約テーブルと出力用予約テーブルを設定する（図１３）。各予約テーブルには、検査用パケットであることを判定するマッチ条件と、マッチした場合におけるインストラクション（アクションを実行する命令等）が記述されている。当該インストラクションには、検査用パケット及び／又はその他の情報を検査制御装置１０に送信することが含まれている。
【００７８】
これにより、各パケット転送装置は、図８に示したように、最前段に入力用予約テーブルを備え、最後段に出力用予約テーブルを備えた構成になる。つまり、各パケット転送装置において、検査用パケット処理手段が追加される。
【００７９】
なお、ステップ１０４は、検査の度に行わなくてもよい。例えば、１回だけネットワーク上のパケット転送装置に予約テーブル（検査用パケット処理手段）を追加しておき、それを固定的に用いることとしてもよい。
【００８０】
＜ステップ１０５：検査用パケットを注入＞
検査制御装置１０の検査用パケット注入部１３は、検査用パケット作成処理部１２により作成された検査用パケットをパケット転送装置１に注入する（図１４）。なお、本例では、中継ネットワークにおける入力から出力までを検査することを想定しているために、Ｉｎｇｒｅｓｓのパケット転送装置１に検査用パケットを注入しているが、検査用パケットは、検査の目的に応じて、任意のパケット転送装置から注入してよい。
【００８１】
検査用パケットの注入にはＰａｃｋｅｔ−Ｏｕｔメッセージを使用することができる。ＯｐｅｎＦｌｏｗのＰａｃｋｅｔ−ｏｕｔメッセージ規格では、実際に入力したポートをあたかも別のポートとみなして処理させることができる（入力ポート情報付与）。従って、図１４に示すように、検査用パケットを入力させる物理的なポートが、検査対象パスの入力ポート（ＵＮＩポート）とは別ポートであったとしても、ＵＮＩポートの情報を付与することで、ユーザ通信になりきった検査用パケット注入を行うことができる。もちろん、このような技術を使用せずに、ＵＮＩポートから直接に検査用パケットを入力してもよい。
【００８２】
本例では、宛先ユーザ装置４０への出力を行う最後のパケット転送装置３だけは、例外的に、出力用予約テーブル内での検査パケットの処理については、ＵＮＩへの転送は行わないこととしている。こうすることで、検査用パケットを宛先ユーザ装置側に出力させることなく網内テストを実現できる。
【００８３】
＜ステップ１０６：検査用情報取得＞
パケット転送装置１において、通常用途のテーブル（つまり検査対象）が正常に機能していれば、検査用パケットはパケット転送装置２に転送され、検査制御装置１０側へ検査用パケットが出力されるはずである。パケット転送装置２からパケット転送装置３への転送についても同様である。検査制御装置１０は、例えば、ＯｐｅｎＦｌｏｗのＰａｃｋｅｔ−Ｉｎメッセージを利用して、検査用パケットを受け取ることができる。
【００８４】
もし、いずれかのパケット転送装置において何らかの異常があった場合は、検査用パケットは下流に届かず、検査制御装置１０に向けて検査用パケットが出力されないことになる。図１４に示す例では、各パケット転送装置における入力側、出力側ともに検査用パケットが出力されている。各パケット転送装置における入力側から出力される検査用パケットには、パケット転送装置を識別する情報と入力されたポートを識別する情報（どのパケット転送装置のどのポートから入力されたかを示す情報）が付加され、各パケット転送装置における出力側から出力される検査用パケットには、パケット転送装置を識別する情報と出力されるポートを識別する情報（どのパケット転送装置のどのポートから出力されるかを示す情報）が付加されてもよい。また、入力側と出力側のそれぞれにおいて、テーブルを識別する情報（入力用予約テーブルであることを示すＩＤ、出力用予約テーブルであることを示すＩＤ）が付加されてもよい。
【００８５】
検査制御装置１０の検査用情報取得部１５は、上記のようにして出力される検査用パケット及び付加情報等を取得し、取得した情報を障害判定部１６に渡す。
【００８６】
また、本実施の形態のパケット転送装置では、統計情報カウンタがエントリ毎に用意されており、検査用のエントリにマッチして、検査用パケットが予約テーブルを通過すれば、当該カウンタがカウントアップされる。検査制御装置１０の検査用情報取得部１５は、検査用パケットを取得することに加えて、もしくは検査用パケットを取得することに代えて、図１５に示すように当該カウンタの値を各パケット転送装置から取得することとしてもよい。
【００８７】
なお、ステップ１０５においてどれだけの量の検査用パケットを注入するかは、例えば、操作部ＩＦ部１１を介してオペレータが検査用パケット注入部１３に対して指定を行うことで任意に設定できる。また、ステップ１０６においてどのようなデータを取得するか（パケット転送装置にどのようなデータを出力させるか）は、例えば、操作部ＩＦ部１１を介してオペレータが検査用命令設定部１３に対して指定を行うことで、検査用命令設定部１３から各パケット転送装置に対して指定することができる。
【００８８】
＜ステップ１０７：障害判定、結果出力＞
本実施の形態では、検査制御装置１０の障害判定部１６が、検査用情報取得部１５から渡される検査用パケット等の情報に基づいて、検査対象パスが正常か否かを判定する。例えば、事前に与えられた期待する経路に沿わないパケット転送装置／ポートから検査用パケットが上がってきたり、検査用パケット自体が一定時間内で上がってこなかった個所をエラーと判断する、などの判定を行う。
【００８９】
また、例えば、障害判定部１６は、運用制御装置２０から検査対象パスの正しい経路情報（どのパケット転送装置のどのポートを経由するかの情報）を取得し、メモリ等に保持しておく。そして、障害判定部１６は、検査用情報取得部１５から渡される検査用パケット及び付加情報から、検査用パケットが通過する経路情報（どのパケット転送装置のどのポートを経由するかの情報）を作成し、当該経路情報と上記メモリに保持しておいた正しい経路情報とを比較し、これらが一致するか否かでパスが正常であるか否かを判定する。一致すれば正常であることを示す情報を操作ＩＦ部１１から出力し、一致しなければ、異常であることを示す情報と、異常と推定されるパケット転送装置（例えば、検査用パケット出力が最初に停止しているパケット転送装置）や、異常と推定される伝送区間の情報とを操作ＩＦ部１１から出力する。
【００９０】
ここで、前述したカウンタ値を用いることで、例えば、あるポイントでのカウンタ値を所定の閾値と比較することで、カウンタ値が所定の閾値以下であれば、検査用パケットを受信していたとしても、当該ポイントは異常であるといった判断を行うことができる。
【００９１】
なお、障害判定部１６が判断を行わない構成としてもよい。例えば、障害判定部１６を備えずに、検査用情報取得部１５が、各パケット転送装置から受信する検査用情報（検査用パケット、付加情報、カウンタ値等）に基づいて、パスの接続状態を示す画像情報を作成し、それを操作ＩＦ部１１から出力する構成としてもよい。この場合、例えば、正しいパス構成を知っているオペレータが当該画像を見ることで、パスの異常があるかどうかを判断できる。
【００９２】
図１４に示す例の場合、全てのパケット転送装置の入力側、及び出力側から正常に検査用パケットが出力されており、障害判定部１６は、パスは正常であることを示す情報を出力する。
【００９３】
図１６に示す例の場合、パケット転送装置２の出力側、及びそれ以降のポイントから検査用パケットが出力されていない。この場合、障害判定部１６は、パケット転送装置２内に異常があると判断し、その旨を出力する。
【００９４】
本実施の形態に係る技術は、インサービス、及びアウトオブサービス双方における検査に使用することが可能である。
【００９５】
アウトオブサービス検査は、ユーザ装置間のトラヒック導通がされていない状態の検査であり、パスの開通前に行われる。このとき、パケット転送装置には転送設定が入っている状態であるが、ユーザ装置に繋がるＵＮＩがｏｆｆ（ｄｏｗｎ）になっている状態であり、これからそれを本当にｏｎ（ｕｐ）にしてよいかどうかを検査するものである。インサービス検査は、パスの開通後、ユーザ装置間でトラヒック導通がされている最中に行う検査であり、ユーザトラヒックと区別する形で検査をする。
【００９６】
（被疑パケット転送装置内の絞り込みについて）
本実施の形態では、図１６に示すような場合に、被疑となったパケット転送装置内部において、以下で説明するように、走査テーブルを任意の場所に差し込むことで異常のあるテーブルを切り分ける（範囲を絞り込む）ことが可能である。
【００９７】
図１７は、パケット転送装置１００に走査テーブルを差し込んだ構成を示す図である。このような走査テーブルの生成及びパケット転送装置への設定（差し込み）は、オペレータからの指示（どの装置におけるどのテーブルの間に差し込むか等の指示）に基づいて、検査制御装置１０の検査用命令設定部１５が実行する。すなわち、パケット転送装置１００は、検査制御装置１０の検査用命令設定部１５から走査テーブルの情報を受信することで、パケット転送装置１００内の検査を行うための走査用パケット処理手段を追加する。図１７に例として示されているように、走査用テーブルの中には、入力用予約テーブルと同様に、最優先のエントリとして、入力された検査用パケット中に検査用フィールドを発見（マッチ）すると、検査制御装置１０にデータをコピー転送し、次のテーブルへ遷移させるインストラクションが記述されている。検査制御装置１０にデータをコピー転送する際には、テーブルの識別情報が付加されてよい。
【００９８】
これにより、図示するように検査範囲を設定でき、例えば図１７の状態で、検査制御装置１０における障害判定部１６が、入力予約テーブルのポイントと、走査テーブルのポイントの両方から正常に検査用パケットのデータを受信し、出力用予約テーブルのポイントからはデータを受信しない場合には、障害判定部１６は、走査テーブルと出力用予約テーブルとの間に異常があると判定できる。
【００９９】
パケット転送装置１００は、内部のテーブル管理の機能として、走査用テーブルと通常用途テーブルとの間で順番調整を行う機能を備えてもよい。例えば検査制御装置１０が、当該検査テーブルを通常テーブルｍと通常テーブルｍ＋１（ｍ：任意）の間に差し込もうとした場合は、パケット転送装置１００は、テーブルｍの次が自動的にこの走査テーブルになるように調整する。例えば、ＯｐｅｎＦｌｏｗを使って実現する一例としては、パケット転送装置１００の内部ではテーブル１０、２０、３０…のような番号付けで管理しておきながら、検査制御装置１０には、これらのテーブル番号をテーブル１、２、３、…と見せておき、ｍ＝２の直後に走査用テーブルを差し込む場合に、内部的に走査用テーブルをテーブル２５とする、といった実装が可能である。
【０１００】
図１７のように１つの走査テーブルを差し込むことで切り分けを行ってもよいし、図１８に示すように、２つの走査テーブルを差し込むことで、入力〜出力間を決めた絞り込み検査を実現することも可能である。検査制御装置１０は、検査用情報取得部１５がパケット転送装置から受信する検査用パケット等の情報に基づいて、走査テーブルを挟む位置を適宜変化させながら、どの個所（テーブル）に問題があるかを判定することができる。
【０１０１】
なお、上記の図１７、図１８に示したように、パケット転送装置１００からの検査用パケット等の取得状況に応じて、走査テーブルを差し込む位置を変えて異常箇所を探索する手法では、各パケット転送装置１００において、エントリ検索を行うテーブルの飛び越えを禁止する運用を行うことが望ましい。
【０１０２】
テーブルの飛び越えを許可している場合、図１９に示すように、走査テーブルをジャンプし、走査テーブルの箇所から検査用パケットが出力されず、検査制御装置１０が、図１９に示す検査範囲に異常があると誤って判断する場合が発生する可能性があるからである。
【０１０３】
ただし、例えば、検査制御装置１０が、運用制御装置２０のデータベースから、該当パケット転送装置におけるテーブルとエントリの情報を取得し、図１９に示すようにテーブル０からテーブルｍ＋１へのジャンプが規定されていることを把握した後に、走査テーブルを差し込む位置を判断する（例：テーブルｍ＋１の後に置く）ようにすれば、テーブルの飛び越えを禁止する運用を行う必要はなく、いかなる場合でも走査テーブルにより切り分けを適切に行うことが可能になる。
【０１０４】
また、本実施の形態では、予約テーブルとして入力用予約テーブルと出力用予約テーブルを各パケット転送装置に設定することとしているが、どちらか一方だけでもよい。どちらか一方だけでも、異常のある可能性があるパケット転送装置を特定可能である。
【０１０５】
また、本実施の形態では、通常テーブルとは別に、予約テーブルを備える構成としているが、通常テーブルの中に、これまでに説明した予約テーブルに記述したエントリを記載することで、検査のための構成を実現することも可能である。
【０１０６】
本実施の形態における多段構成のテーブルのことを、入力されたパケットに対する処理規則のリストと称してもよい。また、エントリの集合のことを、入力されたパケットに対する処理規則のリストと称してもよい。
【０１０７】
（他の構成例等）
これまでに図５〜図８等で説明したように、本実施の形態におけるパケット転送装置１００の基本的な構成は図２０に示すとおりであり、１つ又は複数のパケット転送処理部の前後（どちらか１つでもよい、以下同様）に検査用パケット処理部を備えた構成である。これまでに説明した例では、各パケット転送処理部及び検査用パケット処理部はテーブルにより構成されているが、各パケット転送処理部はテーブルに限られず、何らかの処理規則に基づいて構成されればよい。すなわち、図２０に示す１つ又は複数のパケット転送処理部を処理規則のリストから構成することができる（図２１）。
【０１０８】
処理規則、すなわちパケット転送処理部がテーブルから構成される例（これを基本例と呼ぶ）はこれまでに説明したとおりであるが、パケット転送処理部は、エントリ内のアクションから構成されてもよいし（変形例１）、テーブル内のエントリから構成されてもよい（変形例２）。また、パケット転送処理部が、パケット処理装置（スイッチ等）であってもよい（変形例３）。以下、これら変形例１〜３について説明する。
【０１０９】
＜変形例１＞
変形例１のパケット転送装置１００は、図２２に示すように、テーブル内の１つのエントリに着目して、各パケット転送処理部をエントリ内のアクションとし、１つ又は複数のアクション（処理規則のリスト）の前後に検査用パケット処理部としての検査用アクションを備える構成とする。つまり、処理規則のリストが、マッチ条件と１つ又は複数のアクションを含むエントリにおける当該１つ又は複数のアクションとして構成され、検査用パケット処理部が、当該１つ又は複数のアクションの先頭部分又は最後部分に、検査用パケットに対するアクションを追加することにより追加されるものである。
【０１１０】
図２２に示すパケット転送装置１００は、１つのエントリに対応するものであるが、当該パケット転送装置１００は、当該エントリ以外のエントリ、及びこれらのエントリからなるテーブルに対応するパケット処理部を含んでよい。以下、図２２に示す構成をより具体的に説明する。
【０１１１】
本実施の形態で使用しているＯｐｅｎＦｌｏｗでは、書かれているアクション順に実行するＡｐｐｌｙ−Ａｃｔｉｏｎｓという命令がある。Ｅｎｔｒｙ  Ｘにおける例を以下に示す。
（例）Ｅｎｔｒｙ  Ｘ
ｐｒｉｏｒｉｔｙ＝１００，ｍａｔｃｈ＝ｉｎｐｏｒｔ：１，ｅｔｈ＿ｄｓｔ：Ａ，ｖｌａｎ＿ｖｉｄ：Ｍ，
ａｐｐｌｙ＿ａｃｔｉｏｎｓ＝ｐｏｐ＿ｖｌａｎ，ｅｔｈ＿ｓｒｃ：Ｂ，ｏｕｔｐｕｔ：２
上記例では、あるパケットがポート１から入り（ｉｎｐｏｒｔ：１）、Ｅｔｈｅｒヘッダの宛先アドレスがＡ（ｅｔｈ＿ｄｓｔ：Ａ）、ＶＬＡＮタグのＩＤがＭ（ｖｌａｎ＿ｖｉｄ：Ｍ）である場合（ｍａｔｃｈ部）、ＶＬＡＮタグを除去（ｐｏｐ＿ｖｌａｎ）、Ｅｔｈｅｒヘッダの送信元アドレスをＢに変更（ｅｔｈ＿ｓｒｃ：Ｂ）、ポート２へ出力（ｏｕｔｐｕｔ：２）というアクションを順に実行する（ａｐｐｌｙ＿ａｃｔｉｏｎｓ部）。
【０１１２】
このａｐｐｌｙ＿ａｃｔｉｏｎｓ部が正常に動作しているかを検査するために、下記のようにアクションのリストの前後に検査制御装置１０へパケットを送信する検査用アクション（ｏｕｔｐｕｔ：Ｃｏｎｔｒｏｌｌｅｒ）を挿入する。
【０１１３】
（例）Ｅｎｔｒｙ  Ｘ
ｐｒｉｏｒｉｔｙ＝１００，ｍａｔｃｈ＝ｉｎｐｏｒｔ：１，ｅｔｈ＿ｄｓｔ：Ａ，ｖｌａｎ＿ｖｉｄ：Ｍ，
ａｐｐｌｙ＿ａｃｔｉｏｎｓ＝ｏｕｔｐｕｔ：Ｃｏｎｔｒｏｌｌｅｒ，ｐｏｐ＿ｖｌａｎ，ｅｔｈ＿ｓｒｃ：Ｂ，ｏｕｔｐｕｔ：２，ｏｕｔｐｕｔ：Ｃｏｎｔｒｏｌｌｅｒ
上記の例では、検査用アクションの前側により「元のａｐｐｌｙ＿ａｃｔｉｏｎｓが実行される前のパケットの姿」がわかり、後側により「元のａｐｐｌｙ＿ａｃｔｉｏｎが実行された後のパケットの姿」がわかる。前側が実行され後側が実行されない場合、元のａｐｐｌｙ＿ａｃｔｉｏｎｓの中のいずれかのａｃｔｉｏｎに不具合が生じたと判断することが可能である。
【０１１４】
また、この検査用アクションが実行されたということはそもそも「あるパケットがＥｎｔｒｙ  Ｘのｍａｔｃｈ部にヒットしＥｎｔｒｙ  Ｘに到着した」と判断することが可能である。そのため、ａｐｐｌｙ＿ａｃｔｉｏｎｓが正常に機能するかという検査だけでなく、「このＥｎｔｒｙにパケットが到着するか、または正常に動作するかを検査したい」という目的にも有用である。
【０１１５】
前述したように、検査用パケット処理部は、どちらか片方のみに備えることでよいが、上記のように、検査用パケット処理部として検査用アクションを設ける場合でも、どちらか片方のみで十分に機能する。
【０１１６】
検査用アクションは、上記の例のように直接にＥｎｔｒｙ  Ｘに書き込むことでもよいし、ｐｒｉｏｒｉｔｙを１００よりも上の値（高い優先度）にしＥｎｔｒｙ  Ｘ'として新たなＥｎｔｒｙとして作成することでもよい。なお、新たなＥｎｔｒｙとして作成することは、下記の変形例２に該当する。
【０１１７】
＜変形例２＞
変形例２のパケット転送装置１００は、図２３に示すように、１つのテーブルに着目して、各パケット転送処理部をテーブル内のエントリとし、１つ又は複数のエントリ（処理規則のリスト）の前後に検査用パケット処理部としての検査用エントリを備える構成とする。つまり、処理規則のリストが、それぞれがマッチ条件とアクションを含む１つ又は複数のエントリとして構成され、検査用パケット処理部が、当該１つ又は複数のエントリの先頭部分又は最後部分に、検査用パケットに対するアクションを含むエントリを追加することにより追加されるものである。
【０１１８】
図２３に示すパケット転送装置１００は、１つのテーブルに対応するものであるが、当該パケット転送装置１００は、当該テーブル以外のテーブルに対応するパケット処理部を含んでよい。検査用エントリを備えるテーブルの例を図２４に示す。
【０１１９】
図２４に示す例では、検査用エントリ（前）にヒットすれば、別のテーブルからこのテーブルに検査用パケットが到着したことがわかり、検査用エントリ（後）にヒットすれば、別のテーブルからこのテーブルに、検査用ｆｉｅｌｄが書き換えられ、かつ、Ｅｎｔｒｙ  １〜Ｘのどのエントリにもヒットしていない（処理されない）パケットが到着したことがわかる。すなわち、検査用エントリ（後）にヒットすれば、このテーブルの前で処理しているテーブルで処理が失敗していることがわかる。
【０１２０】
＜変形例３＞
変形例３のパケット転送装置１００（複数装置からなるシステム）は、図２５に示すように、各パケット転送処理部をパケット処理装置とし、１つ又は複数のパケット処理装置の前後に検査用パケット処理部としての検査用パケット処理装置を備える構成とする。
【０１２１】
各パケット処理装置は、スイッチ、ルータ等の既存ネットワーク装置でよく、ＯｐｅｎＦｌｏｗに対応していなくてもよい。検査用パケット処理装置についても、これまでに説明したように、所定のマッチ条件に基づいて、パケットを検査制御装置１０に送信できる機能を備えるパケット処理装置であれば、ＯｐｅｎＦｌｏｗに対応していなくてもよい。
【０１２２】
本変形例は、スイッチ等のパケット処理装置を検査用パケット処理装置で挟むものであり、パケット処理装置には手を加えず、ブラックボックスとして検査することができる。
【０１２３】
上記の各変形例、及び前述した基本例（予約テーブルを用いるもの）をまとめたものを図２６に示す。なお、各例において、基本例での走査テーブルと同様に、処理規則のリストの中に検査用の処理規則を挿入することで、絞り込みの検査を行うことも可能である。
【０１２４】
また、各例において、テーブルの場合と同様に、検査用パケット処理部がパケット転送処理部（処理規則のリスト）の前に追加される場合において、当該検査用パケット処理部に設定される処理は、例えば、検査用パケットをパケット転送処理部に転送することであり、検査用パケット処理部がパケット転送処理部の後に追加される場合において、当該検査用パケット処理部に設定される処理は、例えば、検査用パケットを所定のポートから出力することとすることができる。パケット転送装置１００が前記所定のポートによりパケットの宛先となるユーザ装置に接続される場合には、検査用パケット処理部に設定される処理は、検査用パケットを前記所定のポートから出力することを含まないこととしてもよい。
【０１２５】
（具体例）
図２７に、パケット転送装置１、２に相当するテーブルの構成の具体例を示し、図２８に、パケット転送装置３に相当するテーブルの具体例を示す。基本的には、これまでに説明した入力用予約テーブル及び出力用予約テーブルと同様の入力用予約テーブル及び出力用予約テーブルが示されているが、図２７、図２８ではより具体的に記載されている。
【０１２６】
図２７、図２８では、実施のＯｐｅｎＦｌｏｗの仕様に合わせて、Ｐｒｉｏｒｉｔｙ値が高いほど、高優先であるとしている。また、図２７、図２８には、メタデータ（ｍｅｔａｄａｔａ）の記載があるが、これは、前述した「出力ポート指示情報」のように、後段のテーブルにその値の情報を引き継ぐために参照される値であり、装置内部のみで使われる値である。また、図中の「ＯＡＭ  ｆｉｅｌｄ」は、図７等に示した「検査用ｆｉｅｌｄが存在している」に該当する。図中の「通常データは空撃ち」は、通常データはそのまま後段の通常テーブルへ遷移させることを意味する。
【０１２７】
（他の適用例）
本実施の形態では、パケット転送装置としてＯｐｅｎＦｌｏｗスイッチを使用することを想定しているが、本発明は通信方式に拠らずに適用可能である。
【０１２８】
例えば、Ｌ２スイッチやＬ３（ＩＰ）ルータ、あるいはファイヤーウォール装置などにおいて、入力パケットに任意の条件マッチ／転送先の指定ができる機能（例：ポリシーベースルーティング技術）を使用してＥｎｄ−Ｅｎｄのパスを作成している場合は、これまでに説明したように、検査用パケットのマッチ条件及び検査制御装置１０への転送命令を設定することで、これまでに説明したパス検査と同様のパス検査を行うことが可能である。
【０１２９】
（実施の形態のまとめ、効果等）
以上説明したように、本実施の形態におけるパケット転送装置では、通常用テーブル等のパケット転送処理部に加えて、検査用パケットの識別と検査制御装置１０へのパケット情報送信を行う機能を持つ入力用予約テーブル及び／又は出力用予約テーブル等の検査用パケット処理部を設けることとした。更に、パケット転送装置内で、任意のテーブル等の範囲を絞り込んでの調査を行うことを可能とする走査用テーブル等の走査用パケット処理部を設けることを可能とした。
【０１３０】
また、検査制御装置１０には、検査用パケット作成機能、検査用パケットをパケット転送装置に注入する機能、予約テーブルや走査テーブルを操作する機能、パケット転送装置から受信する検査用パケットの情報等に基づいて、障害の有無を判定し、結果を出力する機能を備えることとした。
【０１３１】
このような本実施の形態に係る技術によれば、転送途中でパケットのフィールドを任意に書き換えてしまうようなＯｐｅｎＦｌｏｗネットワークであっても、ユーザデータと全く同じ通信路および処理テーブルを通る形で、Ｄ−Ｐｌａｎｅの検査が汎用的に可能になるという効果を奏する。
【０１３２】
ユーザ端末間で行う従来のＯＡＭ技術（ＩＰ−Ｐｉｎｇ等）と本実施の形態に係る技術とを比較した場合、最終段でＥｇｒｅｓｓのＵＮＩ（ユーザ方向）に試験（検査用）パケットを出さずに済み、余計なトラヒックを出さず、網内部に留められるという効果もある。
【０１３３】
また、予約テーブルを用いる実施の形態では、通常のテーブルを書き換えたり、通常のテーブルに対する操作を行うことなく、検査を実現可能である。従って、検査の際に、実際のユーザデータの流れを制御している通信のテーブルエントリ等を修正／破損してしまう危険性がない、という効果も奏する。
【０１３４】
また、本実施の形態によれば、走査テーブル等の機能を追加で用いることで、被疑のあるパケット転送装置の中において、どのテーブルに異常があるかまでをも詳細に切り分けすることが可能になる。
【０１３５】
更に、本実施の形態では、検査用パケットとして、ユーザが流すパケットとほぼ同一（検査ビットだけを除く）のデータを流入させることができる。すなわち、従来の技術のようにＯＡＭ機能専用のパケットフォーマットでないため、ユーザの実態の通信になりきった、より忠実な試験を行うことが可能となり、正確な切り分けを行うことができるという効果も奏する。
【０１３６】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【０１３７】
１０  検査制御装置
１１  操作ＩＦ部
１２  検査用パケット作成処理部
１３  検査用パケット注入部
１４  検査用命令設定部
１５  検査用情報取得部
１６  障害判定部
２０  運用制御装置
１〜３、１００  パケット転送装置
３０  送信元ユーザ装置
４０  宛先ユーザ装置
【図１】
2014236388.tif 000003
【図２】
2014236388.tif 000004
【図３】
2014236388.tif 000005
【図４】
2014236388.tif 000006
【図５】
2014236388.tif 000007
【図６】
2014236388.tif 000008
【図７】
2014236388.tif 000009
【図８】
2014236388.tif 000010
【図９】
2014236388.tif 000011
【図１０】
2014236388.tif 000012
【図１１】
2014236388.tif 000013
【図１２】
2014236388.tif 000014
【図１３】
2014236388.tif 000015
【図１４】
2014236388.tif 000016
【図１５】
2014236388.tif 000017
【図１６】
2014236388.tif 000018
【図１７】
2014236388.tif 000019
【図１８】
2014236388.tif 000020
【図１９】
2014236388.tif 000021
【図２０】
2014236388.tif 000022
【図２１】
2014236388.tif 000023
【図２２】
2014236388.tif 000024
【図２３】
2014236388.tif 000025
【図２４】
2014236388.tif 000026
【図２５】
2014236388.tif 000027
【図２６】
2014236388.tif 000028
【図２７】
2014236388.tif 000029
【図２８】
2014236388.tif 000030