(57)【要約】【課題】任意のルールに従ってパケットの転送を行う複数のスイッチからなるネットワークについても経路確認をする。【解決手段】コントローラ制御部２０５は、ＴＴＬを２とするパケットを、コントローラからスイッチに対して送出させる。隣接スイッチ特定部２０６は、コントローラに転送されたパケットの送信元のスイッチを、パケットの転送経路として最後に確認されたスイッチとして特定する。【選択図】図２
2015005926.tif 000002
【特許請求の範囲】
【請求項１】
パケットを受信したときに当該パケットに含まれる転送上限数を１減算し、当該転送上限数が０となった場合にコントローラへ当該パケットを転送する複数のスイッチを備えるネットワークにおいてパケットが転送される経路を確認する経路確認装置であって、
所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定する送出先特定部と、
前記転送上限数を２とするパケットを、前記コントローラから前記スイッチ特定部が特定したスイッチに送出させるコントローラ制御部と、
前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定する隣接スイッチ特定部と
を備えることを特徴とする経路確認装置。
【請求項２】
前記ネットワークにおけるパケットの転送ルールに基づいて、前記始点のスイッチから前記終点のスイッチへ転送される条件を満たすパケットを生成するパケット生成部を備え、
前記コントローラ制御部は、前記パケット生成部が生成したパケットを、前記コントローラから前記スイッチ特定部が特定したスイッチに送出させる
ことを特徴とする請求項１に記載の経路確認装置。
【請求項３】
前記パケット生成部は、前記パケットの宛先となる装置が応答しないパケットを生成する
ことを特徴とする請求項２に記載の経路確認装置。
【請求項４】
前記コントローラ制御部は、前記コントローラが前記送出先特定部が特定したスイッチから、他の通信装置から転送されたパケットを受信した場合に、前回送信したパケットの前記転送上限数に１を加算した値を前記転送上限数とするパケットを、前記コントローラから前記スイッチを宛先として送出させる
ことを特徴とする請求項１から請求項３の何れか１項に記載の経路確認装置。
【請求項５】
パケットに含まれる転送上限数が０となった場合に当該パケットをコントローラへ転送する複数のスイッチを備えるネットワークにおいてパケットが転送される経路を確認する経路確認システムであって、
前記複数のスイッチを、パケットを受信したときに当該パケットに含まれる転送上限数を１減算するように設定する前記コントローラと、
所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定する送出先特定部と、
前記転送上限数を２とするパケットを、前記コントローラから前記スイッチを宛先として送出させるコントローラ制御部と、
前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定する隣接スイッチ特定部と
を備えることを特徴とする経路確認システム。
【請求項６】
パケットを受信したときに当該パケットに含まれる転送上限数を１減算し、当該転送上限数が０となった場合にコントローラへ当該パケットを転送する複数のスイッチを備えるネットワークにおいてパケットが転送される経路を確認する経路確認方法であって、
送出先特定部が、所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定するステップと、
前記転送上限数を２とするパケットを、前記コントローラから前記スイッチを宛先として送出させるステップと、
隣接スイッチ特定部が、前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定するステップと
を有することを特徴とする経路確認方法。
【請求項７】
パケットを受信したときに当該パケットに含まれる転送上限数を１減算し、当該転送上限数が０となった場合にコントローラへ当該パケットを転送する複数のスイッチを備えるネットワークに接続されるコンピュータを、
所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定する送出先特定部、
前記転送上限数を２とするパケットを、前記コントローラから前記スイッチを宛先として送出させるコントローラ制御部、
前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定する隣接スイッチ特定部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のスイッチを備えるネットワークにおいてパケットが転送される経路を確認する経路確認装置、経路確認システム、経路確認方法、及びプログラムに関する。
【背景技術】
【０００２】
ネットワークの正常性の確認や故障発生個所の特定のため、２つの機器を接続する経路を確認する技術が用いられている。例えば、ルータによって構成されるネットワークにおいては、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）パケットのヘッダに格納されるＴＴＬ（Ｔｉｍｅ  Ｔｏ  Ｌｉｖｅ）を利用したｔｒａｃｅｒｏｕｔｅというコマンドにより経路の確認を行うことが一般的である。
【０００３】
ネットワークを構成するルータでは、パケットを転送するたびに、当該パケットのヘッダに格納されるＴＴＬを１つ減算する。そして、ルータは、ＴＴＬが０になった時点でパケットの転送を中止し、ＩＣＭＰ（Ｉｎｔｅｒｎｅｔ  Ｃｏｎｔｒｏｌ  Ｍｅｓｓａｇｅ  Ｐｒｏｔｏｃｏｌ）エラー（Ｔｉｍｅ  Ｅｘｃｅｅｄｅｄ）を送信元宛てに送信する。そこで、ｔｒａｃｅｒｏｕｔｅコマンドを実行すると、ＴＴＬを１に設定したパケットを送信し、以降、ＩＣＭＰエラーが帰ってくる度にＴＴＬを１つ増やしたパケットを送信することで、送信元から宛先までに経由するルータのＩＰアドレスを取得することができる。
【０００４】
また、近年はネットワーク仮想化技術の１つとして、オープンフロー（商標）と呼ばれる技術の仕様の策定が進められている（非特許文献１を参照）。オープンフローを適用したネットワークは、パケットの転送ルールを決定するオープンフローコントローラと、オープンフローコントローラが決定したルールに従って動作する複数のオープンフロースイッチとを備える。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ”、［ｏｎｌｉｎｅ］、Ｔｈｅ  Ｏｐｅｎ  Ｎｅｔｗｏｒｋｉｎｇ  Ｆｏｕｎｄａｔｉｏｎ、［２０１３年２月１３日検索］、インターネット＜ＵＲＬ：ｈｔｔｐｓ：／／ｗｗｗ．ｏｐｅｎｎｅｔｗｏｒｋｉｎｇ．ｏｒｇ／ｉｍａｇｅｓ／ｓｔｏｒｉｅｓ／ｄｏｗｎｌｏａｄｓ／ｓｐｅｃｉｆｉｃａｔｉｏｎ／ｏｐｅｎｆｌｏｗ−ｓｐｅｃ−ｖ１．３．１．ｐｄｆ＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、オープンフローコントローラは、複数のプロトコルの情報の組み合わせを用いて転送ルールを適用することができる。そのため、ｔｒａｃｅｒｏｕｔｅコマンドなど１つのプロトコルに係る情報のみを用いる方法では、オープンフローを適用したネットワークにおいて経路確認をすることができないおそれがある。
また、オープンフローに限られず、複数の情報の組み合わせなど、任意のルールに従ってパケットの転送を行う複数のスイッチからなるネットワークについても同様に、経路確認をすることができないおそれがある。
本発明の目的は、上述した課題を解決する経路確認装置、経路確認システム、経路確認方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、パケットを受信したときに当該パケットに含まれる転送上限数を１減算し、当該転送上限数が０となった場合にコントローラへ当該パケットを転送する複数のスイッチを備えるネットワークにおいてパケットが転送される経路を確認する経路確認装置であって、所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定する送出先特定部と、前記転送上限数を２とするパケットを、前記コントローラから前記スイッチ特定部が特定したスイッチに送出させるコントローラ制御部と、前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定する隣接スイッチ特定部とを備えることを特徴とする経路確認装置である。
【０００８】
また、本発明の第２の態様によれば、本発明の第１の態様において、前記ネットワークにおけるパケットの転送ルールに基づいて、前記始点のスイッチから前記終点のスイッチへ転送される条件を満たすパケットを生成するパケット生成部を備え、前記コントローラ制御部は、前記パケット生成部が生成したパケットを、前記コントローラから前記スイッチ特定部が特定したスイッチに送出させることを特徴としても良い。
【０００９】
また、本発明の第３の態様によれば、本発明の第２の態様において、前記パケット生成部は、前記パケットの宛先となる装置が応答しないパケットを生成することを特徴としても良い。
【００１０】
また、本発明の第４の態様によれば、本発明の第１から第３の何れかの態様において、前記コントローラ制御部は、前記コントローラが前記送出先特定部が特定したスイッチから、他の通信装置から転送されたパケットを受信した場合に、前回送信したパケットの前記転送上限数に１を加算した値を前記転送上限数とするパケットを、前記コントローラから前記スイッチを宛先として送出させることを特徴としても良い。
【００１１】
また、本発明の第５の態様は、パケットに含まれる転送上限数が０となった場合に当該パケットをコントローラへ転送する複数のスイッチを備えるネットワークにおいてパケットが転送される経路を確認する経路確認システムであって、前記複数のスイッチを、パケットを受信したときに当該パケットに含まれる転送上限数を１減算するように設定する前記コントローラと、所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定する送出先特定部と、前記転送上限数を２とするパケットを、前記コントローラから前記スイッチを宛先として送出させるコントローラ制御部と、前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定する隣接スイッチ特定部とを備えることを特徴とする経路確認システムである。
【００１２】
また、本発明の第６の態様は、パケットを受信したときに当該パケットに含まれる転送上限数を１減算し、当該転送上限数が０となった場合にコントローラへ当該パケットを転送する複数のスイッチを備えるネットワークにおいてパケットが転送される経路を確認する経路確認方法であって、送出先特定部が、所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定するステップと、前記転送上限数を２とするパケットを、前記コントローラから前記スイッチを宛先として送出させるステップと、隣接スイッチ特定部が、前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定するステップとを有することを特徴とする経路確認方法である。
【００１３】
また、本発明の第７の態様は、パケットを受信したときに当該パケットに含まれる転送上限数を１減算し、当該転送上限数が０となった場合にコントローラへ当該パケットを転送する複数のスイッチを備えるネットワークに接続されるコンピュータを、所定の始点のスイッチから所定の終点のスイッチまでの経路に設けられるスイッチのうち、前記パケットの転送経路として最後に確認されたスイッチを特定する送出先特定部、前記転送上限数を２とするパケットを、前記コントローラから前記スイッチを宛先として送出させるコントローラ制御部、前記コントローラに転送されたパケットの送信元のスイッチを、前記パケットの転送経路として最後に確認されたスイッチとして特定する隣接スイッチ特定部として機能させるためのプログラムである。
【発明の効果】
【００１４】
本発明によれば、任意のルールに従ってパケットの転送を行う複数のスイッチからなるネットワークについても経路確認をすることができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係る経路確認システムと経路確認対象のネットワークの一例を示す図である。
【図２】第１の実施形態に係る経路確認装置の構成を示す概略ブロック図である。
【図３】第１の実施形態に係る経路確認装置の動作を示すフローチャートである。
【図４】経路確認用のパケットの生成方法を示すフローチャートである。
【図５】第１の実施形態の動作例における転送ルールを示す図である。
【図６】第１の実施形態の動作例において確認結果送信部が送信する経路情報を示す図である。
【図７】第３の実施形態に係る経路確認システムと経路確認対象のネットワークの一例を示す図である。
【図８】第３の実施形態に係る経路確認装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
《第１の実施形態》
以下、図面を参照しながら本発明に関連する実施形態について詳しく説明する。
図１は、第１の実施形態に係る経路確認システムと経路確認対象のネットワークの一例を示す図である。
経路確認対象のネットワークは、複数のスイッチ１０−１〜１０−６（以下、スイッチ１０−１〜１０−６を総称する場合、スイッチ１０という）によって構成される。本実施形態においてネットワークを構成するスイッチ１０は、オープンフロースイッチであって、内部に記憶するフローテーブルに従って、パケットの転送を行う。当該フローテーブルが示す転送ルールにより、仮想ネットワークが構築される。また、スイッチ１０は、受信パケットをコントローラ１００に送信するＰａｃｋｅｔＩｎ機能を有する。なお、ネットワークを構成するスイッチ１０の数は、本実施形態の例に限られない。
【００１７】
なお、本明細書において「パケット」とは、ＩＰによる通信で用いられるパケットに限られず、イーサネット（登録商標）による通信で用いられるフレームや、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）による通信で用いられるセグメントを含む、ヘッダ情報を有するデータを示す。
【００１８】
本実施形態に係る経路確認システムは、コントローラ１００、経路確認装置２００、トポロジ管理装置３００を備える。
本実施形態に係るコントローラ１００は、オープンフローコントローラであって、ネットワークを構成する各スイッチ１０の管理を行う。また、コントローラ１００は、パケットを指定したスイッチ１０から送信させるＰａｃｋｅｔＯｕｔ機能を有する。
経路確認装置２００は、管理者から経路確認対象となる始点のスイッチ１０及び終点のスイッチ１０の入力を受け付け、当該経路の確認処理を実行する。
トポロジ管理装置３００は、スイッチ１０によって構成される仮想ネットワークのトポロジ情報を記憶する。具体的には、トポロジ管理装置３００は、仮想ネットワーク毎に、当該ネットワーク上に設けられるスイッチ１０の識別情報、スイッチ１０の間の接続情報、仮想ネットワークの転送ルール情報を記憶する。
また、トポロジ管理装置３００は、ユーザインタフェースを備えており、経路確認装置２００に対する入出力を行う。
【００１９】
なお、本実施形態において、コントローラ１００と全てのスイッチ１０との間、及び各スイッチ１０の間は、通信装置を介さずに接続されている。つまり、コントローラ１００とスイッチ１０との間に存在する通信装置の数は０である。
【００２０】
次に、経路確認装置２００の動作について説明する。
図２は、第１の実施形態に係る経路確認装置２００の構成を示す概略ブロック図である。
経路確認装置２００は、経路確認要求受信部２０１、試験管理情報記憶部２０２、パケット生成部２０３、送出先特定部２０４、コントローラ制御部２０５、隣接スイッチ特定部２０６、試験結果情報記憶部２０７、確認結果判定部２０８、確認結果送信部２０９を備える。
【００２１】
経路確認要求受信部２０１は、トポロジ管理装置３００から、確認の対象となる経路における転送ルールと、経路確認の対象となる始点のスイッチ１０及び終点のスイッチ１０の識別情報を含む経路確認要求の入力を受け付ける。なお、転送ルールには、具体的にはスイッチ１０に設定可能なタプルの組み合わせからなる情報が含まれる。
【００２２】
試験管理情報記憶部２０２は、経路確認要求の識別情報と、当該経路確認の始点のスイッチ１０及び終点のスイッチ１０の識別情報とを記憶する。
パケット生成部２０３は、経路確認要求受信部２０１が受信した転送ルールに基づいて、経路確認に用いるパケットを生成する。
【００２３】
送出先特定部２０４は、確認対象となる経路に設けられるスイッチ１０のうち、パケットの転送経路として最後に確認されたスイッチ１０を、ＰａｃｋｅｔＯｕｔによるパケットの送出先として特定する。具体的には、経路確認の開始前は、経路確認要求受信部２０１が入力を受け付けた、経路の始点のスイッチ１０を送出先として特定する。また、経路確認の開始後は、隣接スイッチ特定部２０６が特定したスイッチ１０を送出先として特定する。
【００２４】
コントローラ制御部２０５は、パケット生成部２０３が生成したパケットをコントローラ１００に送信し、コントローラ１００に、当該パケットを送出先特定部２０４が特定したスイッチ１０に対してＰａｃｋｅｔＯｕｔにより送出させる。また、コントローラ制御部２０５は、コントローラ１００がスイッチ１０からＰａｃｋｅＩｎにより受信したパケットの情報を、コントローラ１００から受信する。
【００２５】
隣接スイッチ特定部２０６は、コントローラ１００から受信したパケットの情報に基づいて、送出先特定部２０４が特定したスイッチ１０に隣接するスイッチ１０を特定する。
試験結果情報記憶部２０７は、経路確認要求の識別情報と、当該経路について確認した区間の順序と、当該区間におけるスイッチ１０の識別情報とを記憶する。
確認結果判定部２０８は、コントローラ１００から受信したパケットの情報に基づいて、経路の確認が終了したか否かを判定する。
確認結果送信部２０９は、確認結果判定部２０８が、経路の確認が終了したと判定した場合に、試験結果情報記憶部２０７が記憶する情報に基づいて、経路の確認結果をトポロジ管理装置３００に送信する。
【００２６】
次に、本実施形態に係る経路確認装置２００を用いた経路確認方法について説明する。
まず、管理者は、コントローラ１００を介して、受信したパケットのＴＴＬを１減算するよう、各スイッチ１０を設定しておく。この設定により、ＴＴＬが０になったパケットは、当該減算結果を得たスイッチ１０によって、コントローラ１００にＰａｃｋｅｔＩｎにより転送される。なお、本実施形態においてＴＴＬは、転送上限数の一例である。
上記設定が完了すると、管理者は、トポロジ管理装置３００に、確認対象となる始点と終点を入力する。例えば、トポロジ管理装置３００は、各仮想ネットワークを構成するスイッチ１０の一覧をディスプレイに表示し、当該一覧の中から始点と終点の選択を受け付けることができる。
【００２７】
トポロジ管理装置３００は、仮想ネットワークのトポロジ情報に基づいて、入力を受け付けた始点から終点までの経路が属する仮想ネットワークを特定する。次に、トポロジ管理装置３００は、当該仮想ネットワークに関連付けられた転送ルールを特定する。また、トポロジ管理装置３００は、入力を受け付けた始点及び終点の識別情報と、確認対象となる仮想ネットワークの転送ルールを含む経路確認要求を、経路確認装置２００に送信する。
【００２８】
図３は、第１の実施形態に係る経路確認装置２００の動作を示すフローチャートである。
経路確認装置２００の経路確認要求受信部２０１は、トポロジ管理装置３００から確認要求を受信する（ステップＳ１）。次に、経路確認要求受信部２０１は、当該経路確認要求を識別する識別情報を生成する。そして、経路確認要求受信部２０１は、当該経路確認要求の識別情報と、経路確認要求受信部２０１が受信した経路確認要求に含まれる始点のスイッチ１０及び終点のスイッチ１０の識別情報とを、試験管理情報記憶部２０２に記録する（ステップＳ２）。次に、パケット生成部２０３は、経路確認要求受信部２０１が受信した経路確認要求に含まれる転送ルールに基づいて、経路の始点から終点へ転送される条件を満たし、かつパケットの宛先となる装置が応答しないパケットを生成する（ステップＳ３）。
【００２９】
ここで、パケット生成部２０３によるパケットの生成方法について詳細に説明する。
図４は、経路確認用のパケットの生成方法を示すフローチャートである。
まず、パケット生成部２０３は、経路確認要求受信部２０１が受信した経路確認要求に含まれる転送ルールにおいて、プロトコルの指定があるか否かを判定する（ステップＳ１０１）。パケット生成部２０３は、転送ルールにおいてプロトコルの指定がないと判定した場合（ステップＳ１０１：ＮＯ）、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）に従ったパケットを生成する（ステップＳ１０２）。このとき、パケット生成部２０３は、パケットのＴＴＬ値として「２」を指定し、パケットのペイロードに、ステップＳ２で生成した経路確認要求の識別情報を格納させる。
【００３０】
ＵＤＰによれば、パケットの宛先において当該パケットに対する応答を送信する必要がない。これにより、パケットの宛先となる装置において当該パケットがポートスキャンを目的としたものと判定されてしまうことを防ぐことができる。なお、パケット生成部２０３は、当該パケットの宛先ポート番号として、０番ポートを指定する。これにより、パケットの宛先となる装置において使用されていないポートを宛先にすることができるため、パケットの宛先となる装置に影響を与えないようにすることができる。
【００３１】
そして、パケット生成部２０３は、経路確認要求受信部２０１が受信した経路確認要求に含まれる転送ルールに従って、ステップＳ１０２で生成したＵＤＰパケットの上書きを行う（ステップＳ１０３）。例えば、転送ルールにパケットの宛先となる装置のＩＰアドレスが含まれる場合、ＵＤＰパケットの送信先ＩＰアドレスの欄を当該ＩＰアドレスに書き換える。
【００３２】
なお、転送ルールにおいて送信元ＭＡＣアドレスの指定がない場合、パケットの送信元ＭＡＣアドレスとして、コントローラ１００のＭＡＣアドレスを用いる。また、転送ルールにおいて宛先ＭＡＣアドレスの指定がない場合、パケットの宛先ＭＡＣアドレスとして、任意のＭＡＣアドレスを用いる。また、転送ルールにおいて送信元ＩＰアドレスの指定がない場合、パケットの送信元ＩＰアドレスとして、コントローラ１００のＩＰアドレスを用いる。また、転送ルールにおいて宛先ＩＰアドレスの指定がない場合、パケットの宛先ＭＡＣアドレスとして、任意のＩＰアドレス（プライベートアドレス、ブロードキャストアドレス、マルチキャストアドレス、ネットワークアドレスを除く）を用いる。
【００３３】
他方、ステップＳ１０１でパケット生成部２０３が、転送ルールにおいてプロトコルの指定があると判定した場合（ステップＳ１０１：ＹＥＳ）、パケット生成部２０３は、転送ルールにおいて指定されたプロトコルに従ったパケットを生成する（ステップＳ１０４）。このとき、パケット生成部２０３は、パケットのＴＴＬ値として「２」を指定し、パケットのペイロードに、ステップＳ２で生成した経路確認要求の識別情報を格納させる。
【００３４】
次に、パケット生成部２０３は、指定されたプロトコルに応じた判定処理を行う（ステップＳ１０５）。ここでは、指定されたプロトコルがＴＣＰまたはＵＤＰである場合と、指定されたプロトコルがＩＣＭＰである場合の判定処理について説明するが、その他のプロトコルについても判定処理を行う。
【００３５】
指定されたプロトコルがＴＣＰまたはＵＤＰである場合（ステップＳ１０５：ＴＣＰ／ＵＤＰ）、パケット生成部２０３は、転送ルールにおいて宛先ポートの指定があるか否かを判定する（ステップＳ１０６）。宛先ポートの指定がない場合（ステップＳ１０６：ＮＯ）、パケット生成部２０３は、当該パケットの宛先ポート番号として、０番ポートを指定する（ステップＳ１０７）。
【００３６】
他方、宛先ポートの指定がある場合（ステップＳ１０６：ＹＥＳ）、パケット生成部２０３は、当該パケットの宛先ポート番号として、指定されたポート番号を指定し、チェックサム値を不正な値に書き換える（ステップＳ１０８）。これは、パケットの宛先ポート番号が０番でない場合、パケットの宛先となる装置において当該パケットがリクエストとして処理され得るためである。このように、チェックサムによる整合をとれなくすることで、パケットの宛先となる装置において当該パケットを破棄させ、パケットの宛先となる装置に影響を与えないようにすることができる。
【００３７】
また、指定されたプロトコルがＩＣＭＰである場合（ステップＳ１０５：ＩＣＭＰ）、パケット生成部２０３は、転送ルールにおいてタイプ（エコー要求、エコー応答、宛先到達不可能通知など）の指定があるか否かを判定する（ステップＳ１０９）。タイプの指定がない場合（ステップＳ１０９：ＮＯ）、パケット生成部２０３は、当該パケットのタイプとして、「エコー応答」を指定する（ステップＳ１１０）。エコー応答のタイプのＩＣＭＰパケットは、エコー要求リクエストに対するレスポンスとして送信されるものであるため、パケットの宛先となる装置において当該パケットがリクエストを示すものとして扱われず、終点の装置が当該パケットに対して応答することを防ぐことができる。
【００３８】
他方、タイプの指定がある場合（ステップＳ１０９：ＹＥＳ）、パケット生成部２０３は、当該パケットのタイプとして、指定されたポート番号を指定し、チェックサム値を不正な値に書き換える（ステップＳ１０８）。
【００３９】
そして、パケット生成部２０３は、経路確認要求受信部２０１が受信した経路確認要求に含まれる転送ルールに従って、ステップＳ１０３に進み、ステップＳ１０７、Ｓ１０８、Ｓ１１０で生成したパケットの上書きを行う。
【００４０】
上記ステップＳ１０１〜ステップＳ１１０の処理により、パケット生成部２０３は、確認対象の仮想ネットワークにおける始点のスイッチ１０から終点のスイッチ１０へ転送される条件を満たし、かつパケットの宛先となる装置が応答しないパケットを生成することができる。
【００４１】
ステップＳ３において、パケット生成部２０３がパケットを生成すると、送出先特定部２０４は、パケットの転送経路として最後に確認されたスイッチ１０を、ＰａｃｋｅｔＯｕｔによるパケットの送出先として特定する（ステップＳ４）。具体的には、送出先特定部２０４は、既に隣接スイッチ特定部２０６によるスイッチ１０の特定がなされている場合は、隣接スイッチ特定部２０６が特定したスイッチ１０をパケットの送出先として特定する。他方、送出先特定部２０４は、隣接スイッチ特定部２０６によるスイッチ１０の特定がなされていない場合は、経路確認要求に含まれる始点のスイッチ１０をパケットの送出先として特定する。
【００４２】
次に、コントローラ制御部２０５は、コントローラ１００に、パケット生成部２０３が生成したパケットを、送出先特定部２０４が特定したスイッチ１０に対してＰａｃｋｅｔＯｕｔにより送出させる（ステップＳ５）。これにより、コントローラ１００は、ＴＴＬ値が２を示すパケットを、パケットの転送経路として最後に確認されたスイッチ１０に送出する。次に、当該パケットを受信したスイッチ１０は、当該パケットのＴＴＬ値を１減算する。このとき、ＴＴＬ値は１となるため、スイッチ１０は、転送ルールに従って当該パケットを隣接するスイッチ１０に転送する。次に、パケットを受信したスイッチ１０は、当該パケットのＴＴＬ値を１減算する。このとき、ＴＴＬ値は０となるため、当該スイッチ１０は当該パケットをＰａｃｋｅｔＩｎによってコントローラ１００に転送する。
コントローラ１００は、スイッチ１０からパケットを受信すると、当該パケットを経路確認装置２００に転送する。
【００４３】
コントローラ制御部２０５は、ステップＳ５によりコントローラ１００にパケットを送出させると、所定の待機時間の間に、コントローラ１００からパケットを受信したか否かを判定する（ステップＳ６）。コントローラ制御部２０５は、所定の待機時間を超えてもコントローラ１００からパケットを受信できない場合（ステップＳ６：ＮＯ）、パケットのロスが発生したか仮想ネットワークの外部に転送されたと判定する。
【００４４】
他方、コントローラ制御部２０５は、待機時間の間に、コントローラ１００からパケットを受信した場合（ステップＳ６：ＹＥＳ）、隣接スイッチ特定部２０６は、当該パケットの送信元のスイッチ１０を、パケットの転送経路として最後に確認されたスイッチ１０として特定する（ステップＳ７）。
【００４５】
次に、隣接スイッチ特定部２０６は、ステップＳ４で送出先特定部２０４が特定したスイッチ１０とステップＳ７で隣接スイッチ特定部２０６が特定したスイッチ１０との間の区間を示す経路情報として、経路確認要求の識別情報、区間の順序、当該区間におけるスイッチ１０の識別情報を、試験結果情報記憶部２０７に記録する（ステップＳ８）。具体的には、隣接スイッチ特定部２０６は、コントローラ１００が受信したパケットのペイロードに含まれる識別情報と、既に当該識別情報に関連付けられた経路情報の区間の順序のうち最も大きい値に１を加算した値と、ステップＳ４で特定したスイッチ１０とステップＳ７で特定したスイッチ１０の識別情報とを試験結果情報記憶部２０７に記録する。
【００４６】
次に、確認結果判定部２０８は、コントローラ１００が受信したパケットがＰａｃｋｅｔＩｎされた理由がＴＴＬＩｎｖａｌｉｄであるか否かを判定する（ステップＳ９）。確認結果判定部２０８は、スイッチ１０によるＰａｃｋｅｔＩｎの理由がＴＴＬＩｎｖａｌｉｄ以外の理由（例えば、ＮｏＭａｔｃｈＥｎｔｒｙやＡｃｔｉｏｎＣｏｎｔｒｏｌｌｅｒなど）であると判定した場合（ステップＳ９：ＮＯ）、仮想ネットワークにおいて転送ルールに基づく転送ができない個所があると判定する。
他方、確認結果判定部２０８は、スイッチ１０によるＰａｃｋｅｔＩｎの理由がＴＴＬＩｎｖａｌｉｄであると判定した場合（ステップＳ９：ＹＥＳ）、コントローラ１００が受信したパケットのペイロードに含まれる識別情報に関連付けて試験管理情報記憶部２０２が記憶する終点のスイッチ１０が、隣接スイッチ特定部２０６が特定したスイッチ１０と同じであるか否かを判定する（ステップＳ１０）。確認結果判定部２０８は、隣接スイッチ特定部２０６が特定したスイッチ１０が終点のスイッチ１０であると判定した場合（ステップＳ１０：ＹＥＳ）、終点までの経路確認が終了したと判定する。
【００４７】
他方、確認結果判定部２０８は、隣接スイッチ特定部２０６が特定したスイッチ１０が経路の終点となるスイッチ１０でないと判定した場合（ステップＳ１０：ＮＯ）、試験結果情報記憶部２０７が記憶するスイッチ１０とステップＳ７で隣接スイッチ特定部２０６が特定したスイッチ１０とが同じであるか否かを判定する（ステップＳ１１）。確認結果判定部２０８は、試験結果情報記憶部２０７が記憶するスイッチ１０と隣接スイッチ特定部２０６が特定したスイッチ１０とが異なると判定した場合（ステップＳ１１：ＮＯ）、経路の確認が終了していないと判定し、ステップＳ４に戻り、再度コントローラ１００によるＰａｃｋｅｔＯｕｔを試みる。
【００４８】
他方、確認結果判定部２０８は、試験結果情報記憶部２０７が記憶するスイッチ１０と隣接スイッチ特定部２０６が特定したスイッチ１０とが同じであると判定した場合（ステップＳ１１：ＹＥＳ）、仮想ネットワーク内でパケットがループしていると判定する。
【００４９】
確認結果判定部２０８が、ステップＳ６でパケットのロスが発生したか仮想ネットワークの外部に転送されたと判定した場合、ステップＳ９において仮想ネットワークにおいて転送ができない個所があると判定した場合、ステップＳ１０で経路の終点までの確認を終了したと判定した場合、またはステップＳ１１で仮想ネットワーク内でパケットがループしていると判定した場合、確認結果送信部２０９は、試験結果情報記憶部２０７から、ステップＳ２で生成した経路確認要求の識別情報に関連付けられた経路情報を読み出す。そして、確認結果送信部２０９は、当該経路情報と確認を終了した理由とを、トポロジ管理装置３００に送信する（ステップＳ１２）。これにより、トポロジ管理装置３００は、受信した経路情報を、区間の順序の昇順に並べ、さらに確認を終了した理由をディスプレイに表示することで、管理者に経路の確認結果を提示することができる。
【００５０】
次に、第１の実施形態に係る経路確認方法の動作について具体的な例を用いて説明する。
例えば、図１に示すネットワークにおいて、ＩＰアドレスが１９２．１６８．１．０／２４のネットワークに属するＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）（以下、ＳｒｃＰＣという）から、ＩＰアドレスが１９２．１６８．２．０／２４のネットワークに属するＰＣ（以下、ＤｓｔＰＣという）までの経路の確認を行う場合について説明する。なお、本例においては、ＳｒｃＰＣがスイッチ１０−１に接続され、ＤｓｔＰＣがスイッチ１０−４に接続されているものとして説明する。
【００５１】
トポロジ管理装置３００は、管理者からＳｒｃＰＣとＤｓｔＰＣ間の通信を行うための仮想ネットワークを構成するスイッチ１０の中から経路確認を行いたい２つのスイッチ１０−１、１０−４の入力を受け付ける。これにより、トポロジ管理装置３００は、始点となるスイッチ１０及び終点となるスイッチ１０を特定するとともに、トポロジ情報から当該仮想ネットワークの転送ルールを特定する。
【００５２】
図５は、第１の実施形態の動作例における転送ルールを示す図である。
図５によれば、転送ルールの条件として、始点のＩＰアドレスが１９２．１６８．１．０／２４であり、終点のＩＰアドレスが１９２．１６８．２．０／２４であり、プロトコルがＴＣＰであることが指定されている。
【００５３】
つまり、経路確認装置２００の経路確認要求受信部２０１は、トポロジ管理装置３００から転送ルールと、始点となるスイッチ１０であるスイッチ１０−１、終点となるスイッチ１０であるスイッチ１０−４の識別情報を含む経路確認要求を受信する。次に、経路確認要求受信部２０１は、当該経路について、新たな識別情報「要求−１」を生成し、当該識別情報に関連付けて、始点となるスイッチ１０であるスイッチ１０−１、終点となるスイッチ１０であるスイッチ１０−４の識別情報を、試験管理情報記憶部２０２に記録する。
【００５４】
次に、パケット生成部２０３は、上記転送ルールの条件に基づいて、パケットを生成する。上記転送ルールにおいては、プロトコルとしてＴＣＰが指定されており、ポートの指定はない。従って、パケット生成部２０３は、送信元のＩＰアドレスを「１９２．１６８．１．０／２４」内の任意のアドレスとし、宛先のＩＰアドレスを「１９２．１６８．２．０／２４」内の任意のアドレスとし、宛先ポート番号を「０」とし、ＴＴＬを「２」とするＴＣＰパケットを生成する。また、当該パケットのペイロードには、識別情報「要求−１」が格納される。なお、パケット生成部２０３は、パケットサイズ全体が、規定される転送可能なパケットサイズになるようパケットを生成する。イーサネットの最小フレーム長に満たない場合は、パケット生成部２０３は、ＴＣＰのデータ部にパディングを行う。
【００５５】
次に、送出先特定部２０４は、始点となるスイッチ１０であるスイッチ１０−１をＰａｃｋｅｔＯｕｔの送出先に決定する。コントローラ制御部２０５の制御により、コントローラ１００は、パケット生成部２０３が生成したパケットをＰａｃｋｅｔＯｕｔによりスイッチ１０−１に送出する。ＰａｃｋｅｔＯｕｔされたパケットは、スイッチ１０−１に設定された転送ルールに従い、ＴＴＬが１減算され、転送先であるスイッチ１０−２に転送される。当該パケットを受信したスイッチ１０−２も同様にＴＴＬを１減算する。ここで、当該パケットのＴＴＬは「０」となるため、スイッチ１０−２は当該パケットを、ＴＴＬＩｎｖａｌｉｄを理由にコントローラ１００にＰａｃｋｅｔＩｎする。
【００５６】
コントローラ１００がＰａｃｋｅｔＩｎによりパケットを受信すると、隣接スイッチ特定部２０６は、当該パケットの送信元であるスイッチ１０−２を、パケットの転送経路として最後に確認されたスイッチ１０として特定する。これにより、隣接スイッチ特定部２０６は、識別情報「要求−１」、区間の順序「１」、スイッチ１０情報「１０−１→１０−２」を、試験結果情報記憶部２０７に記録する。
【００５７】
ここで、ＰａｃｋｅｔＩｎの理由がＴＴＬＩｎｖａｌｉｄであり、スイッチ１０−２が終点となるスイッチ１０でも試験結果情報記憶部２０７が記憶するスイッチ１０でもないことから、確認結果判定部２０８は、確認を継続すると判定する。
【００５８】
次に、送出先特定部２０４は、隣接スイッチ特定部２０６が特定したスイッチ１０−２をＰａｃｋｅｔＯｕｔの送出先に決定する。コントローラ制御部２０５の制御により、コントローラ１００は、パケット生成部２０３が生成したパケットをＰａｃｋｅｔＯｕｔによりスイッチ１０−２に送出する。ＰａｃｋｅｔＯｕｔされたパケットは、スイッチ１０−２からスイッチ１０−３に転送されると、ＴＴＬが「０」となるためＴＴＬＩｎｖａｌｉｄを理由にコントローラ１００にＰａｃｋｅｔＩｎされる。
【００５９】
コントローラ１００がＰａｃｋｅｔＩｎによりパケットを受信すると、隣接スイッチ特定部２０６は、当該パケットの送信元であるスイッチ１０−３を、パケットの転送経路として最後に確認されたスイッチ１０として特定する。
ここで、ＰａｃｋｅｔＩｎの理由がＴＴＬＩｎｖａｌｉｄであり、スイッチ１０−３が終点となるスイッチ１０でも試験結果情報記憶部２０７が記憶するスイッチ１０でもないことから、確認結果判定部２０８は、確認を継続すると判定する。
【００６０】
次に、送出先特定部２０４は、隣接スイッチ特定部２０６が特定したスイッチ１０−３をＰａｃｋｅｔＯｕｔの送出先に決定する。コントローラ制御部２０５の制御により、コントローラ１００は、パケット生成部２０３が生成したパケットをＰａｃｋｅｔＯｕｔによりスイッチ１０−３に送出する。ＰａｃｋｅｔＯｕｔされたパケットは、スイッチ１０−３からスイッチ１０−４に転送されると、ＴＴＬが「０」となるためＴＴＬＩｎｖａｌｉｄを理由にコントローラ１００にＰａｃｋｅｔＩｎされる。
【００６１】
コントローラ１００がＰａｃｋｅｔＩｎによりパケットを受信すると、隣接スイッチ特定部２０６は、当該パケットの送信元であるスイッチ１０−４を、パケットの転送経路として最後に確認されたスイッチ１０として特定する。
ここで、ＰａｃｋｅｔＩｎの理由がＴＴＬＩｎｖａｌｉｄであり、スイッチ１０−４が終点となるスイッチ１０であることから、確認結果判定部２０８は、確認が終了したと判定する。そして、確認結果送信部２０９は、試験結果情報記憶部２０７が識別情報「要求−１」に関連付けて記憶する経路情報を、トポロジ管理装置３００に送信する。
【００６２】
図６は、第１の実施形態の動作例において確認結果送信部２０９が送信する経路情報を示す図である。
図６に示すように、経路情報を区間の順序ごとに並べると、確認対象の経路においてパケットが、スイッチ１０−１、スイッチ１０−２、スイッチ１０−３、スイッチ１０−４の順に経由することがわかる。
【００６３】
このように、本実施形態によれば、コントローラ１００が、ＴＴＬが「２」のパケットを、パケットの転送経路として最後に確認されたスイッチ１０に送出し、経路確認装置２００が、コントローラ１００に転送されたパケットの送信元のスイッチ１０を、パケットの転送経路として最後に確認されたスイッチ１０として特定する。これにより、経路確認装置２００は、任意のルールに従ってパケットの転送を行う複数のスイッチ１０からなるネットワークについても経路確認をすることができる。
【００６４】
また、本実施形態によれば、ｔｒａｃｅｒｏｕｔｅなど常に始点からパケットを送信することで経路確認を行う方法と比較して、経由する装置数が少ないため、高速に経路の確認を行うことができる。また、経路確認のためのトラフィック量を小さくすることができる。
【００６５】
《第２の実施形態》
第１の実施形態では、経路確認要求受信部２０１が、始点となるスイッチ１０と終点となるスイッチ１０の識別情報を含む経路確認要求を受信する場合について説明したが、第２の実施形態に係る経路確認要求受信部２０１は、終点となるスイッチ１０の識別情報を含まない経路確認要求を受信する。
つまり、第２の実施形態では、経路確認要求受信部２０１は、始点となるスイッチ１０と転送ルールを含む経路確認要求を受信する。
【００６６】
この場合、確認結果判定部２０８は、上述したステップＳ１０に係る、隣接スイッチ特定部２０６が特定したスイッチ１０と終点となるスイッチ１０が同じであるか否かの判定を行わない。これに代えて、確認結果判定部２０８は、ステップＳ６においてパケットが待機時間内に受信できない場合に、パケットが仮想ネットワーク内でロスした、もしくは仮想ネットワークの外に出てしまったと推定し、確認を終了すると判定する。
【００６７】
《第３の実施形態》
図７は、第３の実施形態に係る経路確認システムと経路確認対象のネットワークの一例を示す図である。
経路確認対象のネットワークは、スイッチ１０−１〜１０−４とルータ２０−１とルータ２０−２によって構成される。また、本実施形態に係るコントローラ１００は、ルータ２０−３を介してスイッチ１０−１〜１０−４と接続される。このように、本実施形態においては、コントローラ１００とスイッチ１０との間に通信装置が設けられる。ここで、ルータ２０−１〜２０−３（以下、ルータ２０−１〜２０−３を総称する場合、ルータ２０という）は、通信装置の一例であって良い。つまり、本実施形態に係る経路確認対象のネットワークは、スイッチ１０とルータ２０とから構成される。なお、ネットワークを構成するスイッチ１０及びルータ２０の数は、本実施形態の例に限られない。
【００６８】
図８は、第３の実施形態に係る経路確認装置２００の動作を示すフローチャートである。なお、第１の実施形態と同じ動作をする点については同一の符号を用いて説明する。
経路確認装置２００の経路確認要求受信部２０１は、トポロジ管理装置３００から経路確認要求を受信する（ステップＳ１）。次に、経路確認要求受信部２０１は、当該経路確認要求を識別する識別情報を生成する。そして、経路確認要求受信部２０１は、当該経路確認要求の識別情報と、経路確認要求受信部２０１が受信した経路確認要求に含まれる始点となるスイッチ１０及び終点となるスイッチ１０の識別情報とを、試験管理情報記憶部２０２に記録する（ステップＳ２）。次に、パケット生成部２０３は、経路確認要求受信部２０１が受信した経路確認要求に含まれる転送ルールに基づいて、経路の始点から終点へ転送される条件を満たし、かつパケットの宛先となる装置が応答しないパケットを生成する（ステップＳ３）。
【００６９】
パケット生成部２０３がパケットを生成すると、送出先特定部２０４は、パケットの転送経路として最後に確認されたスイッチ１０を、ＰａｃｋｅｔＯｕｔによるパケットの送出先として特定する（ステップＳ４）。次に、コントローラ制御部２０５は、コントローラ１００に、パケット生成部２０３が生成したパケットを、送出先特定部２０４が特定したスイッチ１０に対してＰａｃｋｅｔＯｕｔにより送出させる（ステップＳ５）。このとき、パケット生成部２０３が生成したパケットはＰａｃｋｅｔＯｕｔ用のパケットに内包される。そのため、コントローラ１００とスイッチ１０との間にルータ２０が設けられていても、パケット生成部２０３が生成したパケットは、ＴＴＬを減少させずに送出先として特定したスイッチ１０まで送り届けられる。
【００７０】
次に、コントローラ制御部２０５は、所定の待機時間の間に、コントローラ１００からパケットを受信したか否かを判定する（ステップＳ６）。コントローラ制御部２０５は、所定の待機時間を超えてもコントローラ１００からパケットを受信できない場合（ステップＳ６：ＮＯ）、パケットのロスが発生したか仮想ネットワークの外部に転送されたと判定する。
【００７１】
他方、コントローラ制御部２０５は、待機時間の間に、コントローラ１００からパケットを受信した場合（ステップＳ６：ＹＥＳ）、受信したパケットがパケット生成部２０３が生成したパケットではなく、Ｔｉｍｅ  Ｅｘｃｅｅｄ  を示すＩＣＭＰパケットであるか否かを判定する（ステップＳ３１）。
コントローラ１００が、Ｔｉｍｅ  Ｅｘｃｅｅｄを示すＩＣＭＰパケットを受信したということは、ステップＳ５で送出したパケットを受信したスイッチ１０が、当該パケットを隣接するルータ２０に送信し、当該ルータ２０において当該パケットのＴＴＬが０になり、このことを示すＩＣＭＰパケットがスイッチ１０に送られたことを示す。つまり、この場合、コントローラ１００は、送出先特定部２０４が特定したスイッチ１０から、他の通信装置から転送されたＩＣＭＰパケットを受信する。
【００７２】
コントローラ制御部２０５は、コントローラ１００が受信したパケットがＴｉｍｅ  Ｅｘｃｅｅｄ  を示すＩＣＭＰパケットであると判定した場合（ステップＳ３１：ＹＥＳ）、コントローラ１００に前回送信させたパケットのＴＴＬに１を加算した値をＴＴＬとするパケットを生成し（ステップＳ３２）、ステップＳ５に戻り、コントローラ１００に当該パケットを同一のスイッチ１０へ送出させる。これにより、前回ＩＣＭＰパケットを送信したルータ２０は、当該パケットを隣接する通信装置に転送するため、当該隣接する通信装置がスイッチ１０である場合には、当該スイッチ１０からコントローラ１００へパケットがＰａｃｋｅｔＩｎされる。他方、当該隣接する通信装置がルータ２０である場合には、当該ルータ２０からＩＣＭＰパケットが送信される。つまり、本実施形態に係る経路確認装置２００は、当該コントローラ１００がスイッチ１０からパケットを受信するまで当該処理を繰り返すことで、スイッチ１０とルータ２０とが混在するネットワークにおける経路を確認することができる。
【００７３】
他方、コントローラ制御部２０５が、コントローラ１００が受信したパケットがパケット生成部２０３が生成したパケットであると判定した場合（ステップＳ３１：ＮＯ）隣接スイッチ特定部２０６は、当該パケットの送信元のスイッチ１０を、パケットの転送経路として最後に確認されたスイッチ１０として特定する（ステップＳ７）。
【００７４】
次に、隣接スイッチ特定部２０６は、ステップＳ４で送出先特定部２０４が特定したスイッチ１０とステップＳ７で隣接スイッチ特定部２０６が特定したスイッチ１０との間の区間を示す経路情報として、経路の識別情報、区間の順序、当該区間におけるスイッチ１０の識別情報を、試験結果情報記憶部２０７に記録する（ステップＳ８）。
【００７５】
次に、確認結果判定部２０８は、コントローラ１００が受信したパケットがＰａｃｋｅｔＩｎされた理由がＴＴＬＩｎｖａｌｉｄであるか否かを判定する（ステップＳ９）。確認結果判定部２０８は、スイッチ１０によるＰａｃｋｅｔＩｎの理由がＴＴＬＩｎｖａｌｉｄ以外の理由であると判定した場合（ステップＳ９：ＮＯ）、仮想ネットワークにおいて転送ができない個所があると判定する。
他方、確認結果判定部２０８は、スイッチ１０によるＰａｃｋｅｔＩｎの理由がＴＴＬＩｎｖａｌｉｄであると判定した場合（ステップＳ９：ＹＥＳ）、コントローラ１００が受信したパケットのペイロードに含まれる識別情報に関連付けて試験管理情報記憶部２０２が記憶する経路の終点となるスイッチ１０が、隣接スイッチ特定部２０６が特定したスイッチ１０と同じであるか否かを判定する（ステップＳ１０）。確認結果判定部２０８は、隣接スイッチ特定部２０６が特定したスイッチ１０が経路の終点となるスイッチ１０であると判定した場合（ステップＳ１０：ＹＥＳ）、経路の終点までの確認を終了したと判定する。
【００７６】
他方、確認結果判定部２０８は、隣接スイッチ特定部２０６が特定したスイッチ１０が経路の終点となるスイッチ１０でないと判定した場合（ステップＳ１０：ＮＯ）、試験結果情報記憶部２０７が記憶するスイッチ１０とステップＳ７で隣接スイッチ特定部２０６が特定したスイッチ１０とが同じであるか否かを判定する（ステップＳ１１）。確認結果判定部２０８は、試験結果情報記憶部２０７が記憶するスイッチ１０と隣接スイッチ特定部２０６が特定したスイッチ１０とが異なると判定した場合（ステップＳ１１：ＮＯ）、経路の確認が終了していないと判定し、ステップＳ４に戻り、再度コントローラ１００によるＰａｃｋｅｔＯｕｔを試みる。
【００７７】
他方、確認結果判定部２０８は、試験結果情報記憶部２０７に記憶されているスイッチ１０と隣接スイッチ特定部２０６が特定したスイッチ１０とが同じであると判定した場合（ステップＳ１１：ＹＥＳ）、仮想ネットワーク内でパケットがループしていると判定する。
【００７８】
確認結果判定部２０８が、ステップＳ６でパケットのロスが発生したか仮想ネットワークの外部に転送されたと判定した場合、ステップＳ９において仮想ネットワークにおいて転送ができない個所があると判定した場合、ステップＳ１０で経路の終点までの確認を終了したと判定した場合、またはステップＳ１１で仮想ネットワーク内でパケットがループしていると判定した場合、確認結果送信部２０９は、試験結果情報記憶部２０７から、ステップＳ２で生成した経路確認要求の識別情報に関連付けられた経路情報を読み出す。そして、確認結果送信部２０９は、当該経路情報と確認を終了した理由とを、トポロジ管理装置３００に送信する（ステップＳ１２）。
【００７９】
このように、本実施形態によれば、コントローラ１００は、他の通信装置から転送されたパケットをスイッチ１０から受信した場合に、前回送信したパケットのＴＴＬに１を加算した値をＴＴＬとするパケットを、前回送信したスイッチ１０に対して送出する。これにより、確認対象となるネットワークにおいてスイッチ１０と他の通信装置とが混在する場合にも、適切に経路の確認を行うことができる。
【００８０】
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、上述した実施形態では、スイッチ１０の例としてオープンフロースイッチを用い、コントローラ１００の例としてオープンフローコントローラを用いる場合について説明したが、これに限られない。つまり、コントローラ１００が各スイッチ１０と接続され、スイッチ１０が任意のルールに従ってパケットを転送するものであれば、スイッチ１０及びコントローラ１００は、オープンフロー以外のプロトコルに従って動作するものであって良い。
【００８１】
また、上述した実施形態では、１対１の通信形態において経路の確認を行う場合について説明したが、これに限られず、マルチキャスト通信や、ラウンドロビンネットワークについても経路の確認を行うことができる。
【００８２】
例えば、マルチキャストのように分岐点が含まれる仮想ネットワークにおいては、分岐点に対してＰａｃｋｅｔＯｕｔしたパケットが、複数のスイッチ１０からＰａｃｋｅｔＩｎされることとなる。この場合、経路確認装置２００は、ＰａｃｋｅｔＩｎされたパケットの送信元のスイッチ１０それぞれに対し、上述したステップＳ４〜Ｓ１２の処理を行うことで、マルチキャストのすべての経路について、経路確認を行うことができる。
【００８３】
また例えば、ラウンドロビンのように、パケットの振分点が含まれる仮想ネットワークにおいては、経路確認装置２００は、上述したステップＳ１〜Ｓ１２の処理を、振分の周期より十分に多い回数実行することで、ラウンドロビンに係るすべての経路について、経路確認を行うことができる。
なお、トポロジ管理装置３００において振分点及び振分の周期が予め分かっている場合、当該振分点に対して、上述したステップＳ４〜Ｓ１２の処理を、振分の周期に相当する回数実行することで、効率よく経路確認を行うことができる。
【００８４】
また、上述した実施形態では、経路確認システムがコントローラ１００と経路確認装置２００とトポロジ管理装置３００とを備える場合について説明したが、これに限られない。例えば、コントローラ１００と経路確認装置２００とが一体に設けられる構成であっても良いし、経路確認装置２００とトポロジ管理装置３００とが一体に設けられる構成であっても良い。また、経路確認装置２００がインタフェースを備える場合、経路確認システムは、トポロジ管理装置３００を必ずしも設けなくても良い。
【００８５】
なお、上述の経路確認装置２００は内部に、コンピュータシステムを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等の一時的でない有形の媒体をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００８６】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００８７】
１０…スイッチ  ２０…ルータ  １００…コントローラ  ２００…経路確認装置  ２０１…経路確認要求受信部  ２０２…試験管理情報記憶部  ２０３…パケット生成部  ２０４…送出先特定部  ２０５…コントローラ制御部  ２０６…隣接スイッチ特定部  ２０７…試験結果情報記憶部  ２０８…確認結果判定部  ２０９…確認結果送信部  ３００…トポロジ管理装置
【図１】
2015005926.tif 000003
【図２】
2015005926.tif 000004
【図３】
2015005926.tif 000005
【図４】
2015005926.tif 000006
【図５】
2015005926.tif 000007
【図６】
2015005926.tif 000008
【図７】
2015005926.tif 000009
【図８】
2015005926.tif 000010