(57)【要約】【課題】仮想通信装置と物理通信装置とを有するネットワークにおいても、経路の特定を行うことができる【解決手段】仮想経路特定部１０４が、フローテーブルに基づいて経路の探索対象となる２つの機器を接続する仮想経路を特定し、Ｌ３経路特定部１０６が、仮想経路において隣接する２つのＬ３装置の間の経路を探索するｔｒａｃｅｒｏｕｔｅコマンドを発行することで、２つの仮想通信装置を接続する物理経路を特定する。【選択図】図２
2015012317.tif 000002
【特許請求の範囲】
【請求項１】
パケットの条件と当該条件を満たすパケットの処理内容とを関連付けたテーブルに従ってパケットを処理する仮想通信装置と、２つの機器の間の経路を調査する経路調査コマンドを受け付ける物理通信装置とを有するネットワークにおいて経路の特定を行う経路特定装置であって、
前記テーブルに基づいて経路の探索対象となる２つの機器を接続する仮想通信装置からなる経路である仮想経路を特定する仮想経路特定部と、
前記仮想経路特定部が特定した仮想経路において隣接する２つの前記仮想通信装置の第１の仮想通信装置から第２の仮想通信装置へ経路調査コマンドを発行することで、前記第１の仮想通信装置と前記第２の仮想通信装置を接続する物理通信装置からなる経路である物理経路を特定する物理経路特定部と
を備えることを特徴とする経路特定装置。
【請求項２】
前記物理経路特定部は、前記物理経路において隣接する２つの物理通信装置の第１の物理通信装置から第２の物理通信装置へ経路調査コマンドを発行することで、前記第１の物理通信装置と前記第２の物理通信装置の間の物理経路を特定する
ことを特徴とする請求項１に記載の経路特定装置。
【請求項３】
前記仮想経路特定部は、前記２つの機器のうち第１の機器から第２の機器へ向かう仮想経路と、前記第２の機器から前記第１の機器へ向かう仮想経路を特定する
ことを特徴とする請求項１または請求項２に記載の経路特定装置。
【請求項４】
前記仮想通信装置の識別情報を前記仮想経路をパケットが通過する順に格納する仮想経路リストを生成する仮想経路リスト生成部と、
前記物理通信装置の識別情報を前記物理経路をパケットが通過する順に格納する物理経路リストを生成する物理経路リスト生成部と、
前記仮想経路リストに格納された仮想通信装置の識別情報を前記仮想経路をパケットが通過する順に読み出し、読み出した仮想通信装置が前記物理経路リストに始点として格納されていない場合は、当該仮想通信装置の識別情報を出力し、読み出した仮想通信装置が前記物理経路リストに始点として格納されている場合は、当該仮想通信装置を始点とする物理経路リストに格納された物理通信装置の識別情報を前記物理経路をパケットが通過する順に出力する経路出力部と
を備えることを特徴とする請求項１から請求項３のいずれか１項に記載の経路特定装置。
【請求項５】
前記物理経路特定部は、前記第１の仮想通信装置から前記第２の仮想通信装置へ経路調査コマンドを発行したときに、当該物理経路の一部を特定できない場合、前記第２の仮想通信装置から前記第１の仮想通信装置へ経路調査コマンドを発行して、残りの前記物理経路を特定する
ことを特徴とする請求項１から請求項４のいずれか１項に記載の経路特定装置。
【請求項６】
前記物理経路特定部は、前記第１の仮想通信装置から前記第２の仮想通信装置へ向かう物理経路を調査する第１の経路調査コマンドを発行したときに、当該物理経路の一部を特定できない場合、前記第２の仮想通信装置から前記第１の仮想通信装置へ向かう物理経路を調査する第２の経路調査コマンドを発行して残りの前記物理経路を特定し、
前記物理経路リスト生成部は、前記第１の経路調査コマンドにより特定した物理経路を、当該第１の経路調査コマンドによって発行されるパケットが通過した順に前記物理経路リストに格納し、前記第２の経路調査コマンドにより特定した物理経路を、当該第２の経路調査コマンドによって発行されるパケットが通過した順の逆順に前記物理経路リストに格納する
ことを特徴とする請求項４に記載の経路特定装置。
【請求項７】
前記物理経路リスト生成部は、前記物理経路リストの、前記第１の経路調査コマンドにより特定した物理経路と前記第２の経路調査コマンドにより特定した物理経路との間に、障害を示す情報を格納する
ことを特徴とする請求項６に記載の経路特定装置。
【請求項８】
パケットの条件と当該条件を満たすパケットの処理内容とを関連付けたテーブルに従ってパケットを処理する仮想通信装置と、２つの機器の間の経路を調査する経路調査コマンドを受け付ける物理通信装置とを有するネットワークにおける経路特定方法であって、
前記テーブルに基づいて経路の探索対象となる２つの機器を接続する仮想通信装置からなる経路である仮想経路を特定するステップと、
前記仮想経路において隣接する２つの前記仮想通信装置の第１の仮想通信装置から第２の仮想通信装置へ経路調査コマンドを発行することで、前記第１の仮想通信装置と前記第２の仮想通信装置を接続する物理通信装置からなる経路である物理経路を特定するステップと
を有することを特徴とする経路特定方法。
【請求項９】
パケットの条件と当該条件を満たすパケットの処理内容とを関連付けたテーブルに従ってパケットを処理する仮想通信装置と、２つの機器の間の経路を調査する経路調査コマンドを受け付ける物理通信装置とを有するネットワークに接続されるコンピュータを、
前記テーブルに基づいて経路の探索対象となる２つの機器を接続する仮想通信装置からなる経路である仮想経路を特定する仮想経路特定部、
前記仮想経路特定部が特定した仮想経路において隣接する２つの前記仮想通信装置の第１の仮想通信装置から第２の仮想通信装置へ経路調査コマンドを発行することで、前記第１の仮想通信装置と前記第２の仮想通信装置を接続する物理通信装置からなる経路である物理経路を特定する物理経路特定部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ仮想化技術と、Ｌ３、Ｌ２レイヤネットワークを含む仮想ネットワーク技術が導入された環境において、複数レイヤを跨いだノード間通信経路取得手法に関する。
【背景技術】
【０００２】
ネットワークにおいて、２つの機器を接続する経路を特定する技術は、ネットワークの正常性確認や故障発生個所の特定のために必要とされている（例えば、特許文献１、特許文献２、特許文献３を参照）。
【０００３】
特許文献１には、Ｌ２レイヤのパス経路を特定する技術が開示されている。また、特許文献２には、監視対象のネットワークを流れるパケットに含まれる情報に基づいて、パケットが疎通する経路を推定し、ネットワークの各経路についてパケットの疎通の有無を判断する技術が開示されている。また、特許文献３には、監視対象のネットワークにおける経路の情報と、ネットワークの構成要素に生じるイベントの通知との関連性を分析する技術が開示されている。
【０００４】
システムを構成するコンピュータのリソースを有効に活用するため、サーバ仮想化技術やネットワーク仮想化技術が導入されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１７１７５６号公報
【特許文献２】特開２０１１−０１９００１号公報
【特許文献３】特開２００７−２３５８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、ネットワーク仮想化技術が導入された仮想ネットワークを構成する仮想通信装置は、物理ネットワークにおいて経路探索に用いていたｔｒａｃｅｒｏｕｔｅやｌｉｎｋｔｒａｃｅなどの経路調査コマンドを用いた経路構成装置の情報を取得することができないため、特許文献１〜３に示すような経路の特定をすることができないという問題がある。
本発明の目的は、上述した課題を解決する経路特定装置、経路特定方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、パケットの条件と当該条件を満たすパケットの処理内容とを関連付けたテーブルに従ってパケットを処理する仮想通信装置と、２つの機器の間の経路を調査する経路調査コマンドを受け付ける物理通信装置とを有するネットワークにおいて経路の特定を行う経路特定装置であって、前記テーブルに基づいて経路の探索対象となる２つの機器を接続する仮想通信装置からなる経路である仮想経路を特定する仮想経路特定部と、前記仮想経路特定部が特定した仮想経路において隣接する２つの前記仮想通信装置の第１の仮想通信装置から第２の仮想通信装置へ経路調査コマンドを発行することで、前記第１の仮想通信装置と前記第２の仮想通信装置を接続する物理通信装置からなる経路である物理経路を特定する物理経路特定部とを備えることを特徴とする経路特定装置である。
【０００８】
また、本発明の第２の態様によれば、本発明の第１の態様において、前記物理経路特定部は、前記物理経路において隣接する２つの物理通信装置の第１の物理通信装置から第２の物理通信装置へ経路調査コマンドを発行することで、前記第１の物理通信装置と前記第２の物理通信装置の間の物理経路を特定することを特徴としても良い。
【０００９】
また、本発明の第３の態様によれば、本発明の第１または第２の態様において、前記仮想経路特定部は、前記２つの機器のうち第１の機器から第２の機器へ向かう仮想経路と、前記第２の機器から前記第１の機器へ向かう仮想経路を特定することを特徴としても良い。
【００１０】
また、本発明の第４の態様によれば、本発明の第１から第３の何れかの態様において、前記仮想通信装置の識別情報を前記仮想経路をパケットが通過する順に格納する仮想経路リストを生成する仮想経路リスト生成部と、前記物理通信装置の識別情報を前記物理経路をパケットが通過する順に格納する物理経路リストを生成する物理経路リスト生成部と、前記仮想経路リストに格納された仮想通信装置の識別情報を前記仮想経路をパケットが通過する順に読み出し、読み出した仮想通信装置が前記物理経路リストに始点として格納されていない場合は、当該仮想通信装置の識別情報を出力し、読み出した仮想通信装置が前記物理経路リストに始点として格納されている場合は、当該仮想通信装置を始点とする物理経路リストに格納された物理通信装置の識別情報を前記物理経路をパケットが通過する順に出力する経路出力部とを備えることを特徴としても良い。
【００１１】
また、本発明の第５の態様によれば、本発明の第１から第４の何れかの態様において、前記物理経路特定部は、前記第１の仮想通信装置から前記第２の仮想通信装置へ経路調査コマンドを発行したときに、当該物理経路の一部を特定できない場合、前記第２の仮想通信装置から前記第１の仮想通信装置へ経路調査コマンドを発行して、残りの前記物理経路を特定することを特徴としても良い。
【００１２】
また、本発明の第６の態様によれば、本発明の第４の態様において、前記物理経路特定部は、前記第１の仮想通信装置から前記第２の仮想通信装置へ向かう物理経路を調査する第１の経路調査コマンドを発行したときに、当該物理経路の一部を特定できない場合、前記第２の仮想通信装置から前記第１の仮想通信装置へ向かう物理経路を調査する第２の経路調査コマンドを発行して残りの前記物理経路を特定し、前記物理経路リスト生成部は、前記第１の経路調査コマンドにより特定した物理経路を、当該第１の経路調査コマンドによって発行されるパケットが通過した順に前記物理経路リストに格納し、前記第２の経路調査コマンドにより特定した物理経路を、当該第２の経路調査コマンドによって発行されるパケットが通過した順の逆順に前記物理経路リストに格納することを特徴としても良い。
【００１３】
また、本発明の第７の態様によれば、本発明の第６の態様において、前記物理経路リスト生成部は、前記物理経路リストの、前記第１の経路調査コマンドにより特定した物理経路と前記第２の経路調査コマンドにより特定した物理経路との間に、障害を示す情報を格納することを特徴としても良い。
【００１４】
また、本発明の第８の態様は、パケットの条件と当該条件を満たすパケットの処理内容とを関連付けたテーブルに従ってパケットを処理する仮想通信装置と、２つの機器の間の経路を調査する経路調査コマンドを受け付ける物理通信装置とを有するネットワークにおける経路特定方法であって、前記テーブルに基づいて経路の探索対象となる２つの機器を接続する仮想通信装置からなる経路である仮想経路を特定するステップと、前記仮想経路において隣接する２つの前記仮想通信装置の第１の仮想通信装置から第２の仮想通信装置へ経路調査コマンドを発行することで、前記第１の仮想通信装置と前記第２の仮想通信装置を接続する物理通信装置からなる経路である物理経路を特定するステップとを有することを特徴とする経路特定方法である。
【００１５】
また、本発明の第９の態様は、パケットの条件と当該条件を満たすパケットの処理内容とを関連付けたテーブルに従ってパケットを処理する仮想通信装置と、２つの機器の間の経路を調査する経路調査コマンドを受け付ける物理通信装置とを有するネットワークに接続されるコンピュータを、前記テーブルに基づいて経路の探索対象となる２つの機器を接続する仮想通信装置からなる経路である仮想経路を特定する仮想経路特定部、前記仮想経路特定部が特定した仮想経路において隣接する２つの前記仮想通信装置の第１の仮想通信装置から第２の仮想通信装置へ経路調査コマンドを発行することで、前記第１の仮想通信装置と前記第２の仮想通信装置を接続する物理通信装置からなる経路である物理経路を特定する物理経路特定部として機能させるためのプログラムである。
【発明の効果】
【００１６】
本発明によれば、仮想通信装置と物理通信装置とを有するネットワークにおいて経路の特定を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】経路特定対象となるネットワークを含む通信システムの構成の一例を示す概略図である。
【図２】一実施形態に係る経路特定装置の構成を示す概略ブロック図である。
【図３】マスタ記憶部が記憶する情報の例を示す図である。
【図４】ノード間接続リストの例を示す図である。
【図５】仮想経路リストの例を示す図である。
【図６】Ｌ３経路リストの例を示す図である。
【図７】Ｌ２経路リストの例を示す図である。
【図８】一実施形態に係る経路特定装置の概略動作を示すフローチャートである。
【図９】仮想マシン特定処理における経路特定装置の動作を示すフローチャートである。
【図１０】仮想経路特定処理における経路特定装置の動作を示すフローチャートである。
【図１１】Ｌ３経路特定処理における経路特定装置の動作を示すフローチャートである。
【図１２】Ｌ２経路特定処理における経路特定装置の動作を示すフローチャートである。
【図１３】経路情報生成処理における経路特定装置の動作を示すフローチャートである。
【図１４】保守端末が表示する経路情報の例を示す図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照しながら本発明に関連する実施形態について詳しく説明する。
図１は、経路特定対象となるネットワークを含む通信システム１の構成の一例を示す概略図である。
通信システム１は、Ｌ２装置２−１〜２−ＬやＬ３装置３−２〜３−Ｍなどの複数の物理通信装置、複数の仮想化装置４−１〜４−Ｎ、仮想ネットワークコントローラ５、経路特定装置６、保守端末７を備える。なお、以降Ｌ２装置２−１〜２−Ｌを総称してＬ２装置２といい、Ｌ３装置３−２〜３−Ｍを総称してＬ３装置３といい、仮想化装置４−１〜４−Ｎを総称して仮想化装置４という。
ここで、Ｌ３とは、ＯＳＩ参照モデルの第３層（Ｌａｙｅｒ  ３）であるネットワーク層を示し、Ｌ３装置３の例としては、Ｌ３スイッチやルータなどが挙げられる。また、Ｌ２とは、ＯＳＩ参照モデルの第２層（Ｌａｙｅｒ  ２）であるデータリンク層を示し、Ｌ２装置２の例としては、Ｌ２スイッチやブリッジなどが挙げられる。Ｌ２装置２は、例えば、イーサネット（登録商標）などのＬ２プロトコルを用いて通信の制御を行う。また、Ｌ３装置３は、Ｌ２プロトコルに加え、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などのＬ３プロトコルを用いて通信の制御を行う。
【００１９】
仮想化装置４は、所定のプログラムを実行することにより、仮想スイッチＶＳＷ（ＶＳＷ：Ｖｉｒｔｕａｌ  Ｓｗｉｔｃｈ）を備える。また、仮想化装置４は、仮想スイッチＶＳＷに加えて仮想マシンＶＭ（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を備えていても良い。なお、Ｌ２装置２、Ｌ３装置３及び仮想スイッチＶＳＷは、それぞれ経路特定装置６による経路特定対象となるネットワークであるサービス網を構築する。また、仮想スイッチＶＳＷ間は、ＧＲＥ（Ｇｅｎｅｒｉｃ  Ｒｏｕｔｉｎｇ  Ｅｎｃａｐｓｕｌａｔｉｏｎ）トンネルにより接続されており、その設定情報は仮想化装置４に保持されている。
【００２０】
仮想ネットワークコントローラ５は、仮想スイッチＶＳＷのルーティング設定を格納するフローテーブルを記憶する。なお、仮想化装置４が備える仮想スイッチＶＳＷは、仮想ネットワークコントローラ５からフローテーブルを取得し、当該フローテーブルに従ってパケットの中継処理を行う。つまり、仮想化装置４は、仮想通信装置の一例であって良い。なお、仮想化装置４は、Ｌ２プロトコル、Ｌ３プロトコルに加え、仮想ネットワークに係るプロトコルを用いて通信の制御を行う。また、仮想マシンＶＭ及び仮想スイッチＶＳＷは、仮想ネットワークに係るプロトコルに基づいて通信を行う。仮想ネットワークに係るプロトコルの例としては、オープンフロープロトコルなどが挙げられる。
【００２１】
経路特定装置６は、任意の２つの仮想マシンＶＭの間を接続するサービス網上の経路を特定する。
保守端末７は、経路特定装置６のユーザインタフェースを備える。具体的には、保守端末７は、経路特定対象となる２つの仮想マシンＶＭの情報の入力を受け付け、経路特定装置６に出力する。また、経路特定装置６から特定した経路を示す経路情報の入力を受け付け、ディスプレイに表示することで保守者に提示する。
【００２２】
なお、仮想ネットワークコントローラ５、経路特定装置６及び保守端末７は、サービス網とは別に設けられた保守網を介して、Ｌ２装置２、Ｌ３装置３及び仮想化装置４と接続される。
【００２３】
図２は、一実施形態に係る経路特定装置６の構成を示す概略ブロック図である。
経路特定装置６は、マスタ記憶部１０１、通信部１０２、仮想マシン情報特定部１０３、仮想経路特定部１０４、仮想経路リスト生成部１０５、Ｌ３経路特定部１０６、Ｌ３経路リスト生成部１０７、Ｌ２経路特定部１０８、Ｌ２経路リスト生成部１０９、経路リスト記憶部１１０、経路出力部１１１を備える。なお、Ｌ３経路特定部１０６及びＬ２経路特定部１０８は、物理経路特定部の一例であって良い。また、Ｌ３経路リスト生成部１０７及びＬ２経路リスト生成部１０９は、物理経路リスト生成部の一例であって良い。
【００２４】
図３は、マスタ記憶部１０１が記憶する情報の例を示す図である。
マスタ記憶部１０１は、仮想マシン情報テーブル、仮想化装置情報テーブル、仮想スイッチ情報テーブル、Ｌ３装置情報テーブル、Ｌ２装置情報テーブル、ＩＦ（Ｉｎｔｅｒｆａｃｅ）情報テーブル、ＩＦ−装置関連情報テーブル、を記憶する。
仮想マシン情報テーブルは、仮想マシンＶＭのホスト名、保守網のＩＰアドレス、ＳＳＨ（Ｓｅｃｕｒｅ  Ｓｈｅｌｌ）キー、名称を関連付けて格納する。
仮想化装置情報テーブルは、仮想化装置４のホスト名と保守網のＩＰアドレスを関連付けて格納する。
仮想スイッチ情報テーブルは、仮想スイッチＶＳＷのホスト名と保守網のＩＰアドレスを関連付けて格納する。
Ｌ３装置情報テーブルは、Ｌ３装置３のホスト名と保守網のＩＰアドレスを関連付けて格納する。
Ｌ２装置情報テーブルは、Ｌ２装置２のホスト名と保守網のＩＰアドレスを関連付けて格納する。
ＩＦ情報テーブルは、仮想ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）や物理ＮＩＣなどのネットワークインタフェースのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、サービス網のＩＰアドレス、ＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレス、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）ＩＤ、トンネルＩＤを関連付けて格納する。
ＩＦ−装置関連情報テーブルは、各種装置のホスト名と当該装置に所属するネットワークインタフェースのＩＤとを関連付けて格納する。なお、各種装置とネットワークインタフェースは一対一に対応して設けられる。
【００２５】
通信部１０２は、サービス網または保守網を介して他の装置と通信を行う。
仮想マシン情報特定部１０３は、通信部１０２を介して保守端末７から経路特定対象となる２つの仮想マシンＶＭのサービス網のＩＰアドレスの入力を受け付け、当該２つの仮想マシンＶＭの一方を送信元とし、他方を送信先とする情報を格納するノード間接続リストを生成する。このとき、仮想マシン情報特定部１０３は、２つの仮想マシンＶＭのうち第１の仮想マシンＶＭから第２の仮想マシンＶＭへ向かう経路（以下、往路という）と、第２の仮想マシンＶＭから第１の仮想マシンＶＭへ向かう経路（以下、復路という）のそれぞれについて、ノード間接続リストを生成する。なお、当該２つの仮想マシンＶＭは、２つの機器の一例であって良い。なお、本実施形態では、仮想マシン情報特定部１０３が２つの仮想マシンＶＭのＩＰアドレスの入力を受け付ける場合について説明するが、仮想マシンＶＭを特定する情報であれば、ＩＰアドレス以外の情報の入力を受け付けても良い。例えば、仮想マシン情報特定部１０３は、ＭＡＣアドレスやホスト名の入力を受け付けても良い。
【００２６】
図４は、ノード間接続リストの例を示す図である。
ノード間接続リストは、往路と復路とのそれぞれの経路について、当該経路の識別番号である経路番号、当該経路の始点、当該経路の終点、及び当該経路が導通するか否かを示すステータスを関連付けたリストである。
【００２７】
仮想経路特定部１０４は、通信部１０２を介して仮想ネットワークコントローラ５からフローテーブルを取得し、当該フローテーブルに基づいて、仮想マシン情報特定部１０３が入力を受け付けた情報が示す仮想マシンＶＭを接続する、仮想マシンＶＭと仮想スイッチＶＳＷ、または隣接する２つの仮想スイッチＶＳＷからなる経路である仮想経路を往路及び復路について特定する。
仮想経路リスト生成部１０５は、仮想経路特定部１０４が特定した仮想経路を、パケットが通過する順に格納する仮想経路リストを生成する。
【００２８】
図５は、仮想経路リストの例を示す図である。
仮想経路リストは、仮想経路ごとに、当該仮想経路の識別番号である仮想経路番号、当該仮想経路が属する経路を示す経路番号、当該仮想経路の始点、当該仮想経路の終点、及び当該仮想経路が導通するか否かを示すステータスを関連付けたリストである。
【００２９】
Ｌ３経路特定部１０６は、ｔｒａｃｅｒｏｕｔｅコマンドを用いて、仮想経路特定部１０４が特定した仮想経路において隣接する２つの仮想スイッチＶＳＷについて、当該仮想スイッチＶＳＷを備える仮想化装置４間をＬ３プロトコルで接続する、仮想化装置４とＬ３装置３、または隣接する２つのＬ３装置３からなる経路であるＬ３経路を特定する。なお、ｔｒａｃｅｒｏｕｔｅコマンドは、経路調査コマンドの一例であって良い。また、Ｌ３経路は、物理経路の一例であって良い。
Ｌ３経路リスト生成部１０７は、Ｌ３経路特定部１０６が特定したＬ３経路を、パケットが通過する順に格納するＬ３経路リストを生成する。なお、Ｌ３経路リストは、物理経路リストの一例であって良い。
【００３０】
図６は、Ｌ３経路リストの例を示す図である。
Ｌ３経路リストは、Ｌ３経路ごとに、当該Ｌ３経路の識別番号であるＬ３経路番号、当該Ｌ３経路が属する仮想経路を示す仮想経路番号、当該Ｌ３経路の始点、当該Ｌ３経路の終点、及び当該Ｌ３経路が導通するか否かを示すステータスを関連付けたリストである。
【００３１】
Ｌ２経路特定部１０８は、ｌｉｎｋｔｒａｃｅコマンドを用いて、Ｌ３経路特定部１０６が特定したＬ３経路において隣接する２つの装置の間をＬ２プロトコルで接続する、隣接する２つの装置からなる経路であるＬ２経路を特定する。なお、ｌｉｎｋｔｒａｃｅコマンドは、経路調査コマンドの一例であって良い。また、Ｌ２経路は、物理経路の一例であって良い。
Ｌ２経路リスト生成部１０９は、Ｌ２経路特定部１０８が特定したＬ２経路を、パケットが通過する順に格納するＬ２経路リストを生成する。なお、Ｌ２経路リストは、物理経路リストの一例であって良い。
【００３２】
図７は、Ｌ２経路リストの例を示す図である。
Ｌ２経路リストは、Ｌ２経路ごとに、当該Ｌ２経路の識別番号であるＬ２経路番号、当該Ｌ２経路が属するＬ３経路を示すＬ３経路番号、当該Ｌ２経路の始点、当該Ｌ２経路の終点、及び当該Ｌ２経路が導通するか否かを示すステータスを関連付けたリストである。
【００３３】
経路リスト記憶部１１０は、ノード間接続リスト、仮想経路リスト、Ｌ３経路リスト、及びＬ２経路リストを記憶する。
経路出力部１１１は、経路リスト記憶部１１０が記憶するリストに基づいて、２つの仮想マシンＶＭの間を接続する往路及び復路についての経路を示す経路情報を、通信部１０２を介して保守端末７に出力する。
【００３４】
次に、本実施形態に係る経路特定装置６を用いた経路特定方法について説明する。
図８は、一実施形態に係る経路特定装置６の概略動作を示すフローチャートである。
まず、経路特定装置６は、保守端末７から経路探索対象となる２つの仮想マシンＶＭの情報の入力を受け付け、往路及び復路のノード間接続リストを生成する仮想マシン特定処理を実行する（ステップＳ１）。次に、経路特定装置６は、２つの仮想マシンＶＭの間を接続する仮想経路を特定し、仮想経路リストを生成する仮想経路特定処理を実行する（ステップＳ２）。次に、経路特定装置６は、特定した仮想経路において隣接する２つの仮想スイッチＶＳＷの間を接続するＬ３経路を特定し、Ｌ３経路リストを生成するＬ３経路特定処理を実行する（ステップＳ３）。次に、経路特定装置６は、特定したＬ３経路において隣接する２つのＬ３装置３の間を接続するＬ２経路を特定し、Ｌ２経路リストを生成するＬ２経路特定処理を実行する（ステップＳ４）。そして、経路特定装置６は、生成したリストに基づいて、２つの仮想マシンＶＭを接続する経路を示す経路情報を生成し、保守端末７に出力する経路情報生成処理を実行する（ステップＳ５）。
【００３５】
次に、上述したステップＳ１の仮想マシン特定処理について説明する。
図９は、仮想マシン特定処理における経路特定装置６の動作を示すフローチャートである。
まず、仮想マシン情報特定部１０３は、保守端末７から保守者が入力した経路特定対象となる第１の仮想マシンＶＭ及び第２の仮想マシンＶＭのサービス網のＩＰアドレスの入力を受け付ける（ステップＳ１０１）。次に、仮想マシン情報特定部１０３は、マスタ記憶部１０１のＩＦ情報テーブルから入力を受け付けたサービス網のＩＰアドレスに関連付けられたインターフェースＩＤを特定し、ＩＦ−装置関連情報テーブルから当該インターフェースＩＤに関連付けられたホスト名を特定する（ステップＳ１０２）。そして、仮想マシン情報特定部１０３は、特定したホスト名を用いて、始点を第１の仮想マシンＶＭとして終点を第２の仮想マシンＶＭとする往路のノード間接続リストと、始点を第２の仮想マシンＶＭとして終点を第１の仮想マシンＶＭとする復路のノード間接続リストとを生成する（ステップＳ１０３）。そして、仮想マシン情報特定部１０３は、生成したノード間接続リストを経路リスト記憶部１１０に記録し（ステップＳ１０４）、仮想マシン特定処理を終了する。
【００３６】
例えば、第１の仮想マシンＶＭのホスト名が「ＶＭ＿１」であり、第１の仮想マシンＶＭのホスト名が「ＶＭ＿２」である場合、仮想マシン情報特定部１０３は、図４に示すように、経路番号が「１」、始点が「ＶＭ＿１」、終点が「ＶＭ＿２」を示す往路を示すノード間接続リストと、経路番号が「２」、始点が「ＶＭ＿２」、終点が「ＶＭ＿１」を示す復路を示すノード間接続リストとを生成する。
【００３７】
次に、上述したステップＳ２の仮想経路特定処理について説明する。
図１０は、仮想経路特定処理における経路特定装置６の動作を示すフローチャートである。
まず、仮想経路特定部１０４は、通信部１０２を介して仮想ネットワークコントローラ５からフローテーブルを取得する（ステップＳ２０１）。フローテーブルは、フローごとに、当該フローに該当するパケットの条件を示すヘッダフィールド、当該フローに該当するパケットの処理内容及び出力先のポート番号の指定を示すアクション、当該フローに該当するパケットの統計情報の取得設定を示す統計情報を、格納する。
【００３８】
次に、仮想経路特定部１０４は、経路リスト記憶部１１０が記憶するノード間接続リストから経路番号の順にノード間接続情報を１つずつ選択し、選択したノード間接続情報について、以下に示すステップＳ２０３〜２１１の処理を実行する（ステップＳ２０２）。
まず、仮想経路特定部１０４は、選択したノード間接続情報の始点の仮想マシンＶＭから終点の仮想マシンＶＭへ送信するパケットが該当するフローを、フローテーブルに基づいて特定する（ステップＳ２０３）。具体的には、フローテーブルに基づいて、始点の仮想マシンＶＭのＩＰアドレスを送信元（ｓｒｃ）とし、終点の仮想マシンＶＭのＩＰアドレスを送信先（ｄｓｔ）とするフローを抽出する。これにより、始点の仮想マシンＶＭに隣接する仮想スイッチＶＳＷのフローを特定することができる。なお、始点の仮想マシンＶＭと当該仮想マシンＶＭに隣接する仮想スイッチＶＳＷは、同一の仮想化装置４に備えられる。
【００３９】
次に、仮想経路特定部１０４は、特定したフローのアクションが示す出力先のポート番号を特定する。次に、仮想経路特定部１０４は、通信部１０２を介して、ステップＳ２０３で特定したフローの仮想スイッチＶＳＷが動作する仮想化装置４からＧＲＥトンネルの設定情報を取得し、当該設定情報から特定したポート番号に関連付けられたＧＲＥトンネルを特定する。そして、仮想経路特定部１０４は、特定したＧＲＥトンネルからローカルＩＰアドレス及びリモートＩＰアドレスを取得する（ステップＳ２０４）。なお、ＧＲＥトンネルが示すローカルＩＰアドレス及びリモートＩＰアドレスは、仮想化装置４の物理ＩＰアドレスを示す。
【００４０】
このとき、仮想経路リスト生成部１０５は、当該ＧＲＥトンネルが示す仮想経路を示すエントリを、仮想経路リストに追加する。具体的には、仮想経路リスト生成部１０５は、新たなエントリの経路番号をステップＳ２０２で特定したノード間接続リストの経路番号とする。また、仮想経路リスト生成部１０５は、新たなエントリの仮想経路番号を「１」とする。仮想経路リスト生成部１０５は、新たなエントリの始点を、ステップＳ２０２で特定したノード間接続リストの始点の仮想マシンＶＭのホスト名とする。また、仮想経路リスト生成部１０５は、新たなエントリの終点を、ステップＳ２０４で特定したローカルＩＰアドレスが示す仮想化装置４が備える仮想スイッチＶＳＷのホスト名とする。
【００４１】
次に、仮想経路特定部１０４は、終点の仮想マシンＶＭについて、上述したステップＳ２０３、Ｓ２０４の処理を実行し、終点の仮想マシンＶＭに隣接する仮想スイッチＶＳＷのフローが示すＧＲＥトンネルが示すローカルＩＰアドレスを特定することで、終点の仮想マシンＶＭを備える仮想化装置４のＩＰアドレスを特定する（ステップＳ２０５）。
【００４２】
次に、仮想経路特定部１０４は、ステップＳ２０４で特定したリモートＩＰアドレスとステップＳ２０５で特定した終点の仮想マシンＶＭを備える仮想化装置４のＩＰアドレスとが一致するか否かを判定する（ステップＳ２０６）。
仮想経路特定部１０４は、始点のＧＲＥトンネルのリモートＩＰアドレスと終点の仮想マシンＶＭを備える仮想化装置４のＩＰアドレスとが一致しないと判定した場合（ステップＳ２０６：ＮＯ）、ステップＳ２０４で特定したローカルＩＰアドレスを送信元とし、第２の仮想マシンＶＭのＩＰアドレスを送信先とするフローを、フローテーブルに基づいて特定する（ステップＳ２０７）。なお、ステップＳ２０４で特定したローカルＩＰアドレスは、始点の仮想マシンＶＭを備える仮想化装置４のＩＰアドレスを示す。
【００４３】
次に、仮想経路特定部１０４は、特定したフローのアクションが示す出力先のポート番号を特定する。次に、仮想経路特定部１０４は、通信部１０２を介して、ステップＳ２０７で特定したフローの仮想スイッチＶＳＷが動作する仮想化装置４からＧＲＥトンネルの設定情報を取得し、当該設定情報から特定したポート番号に関連付けられたＧＲＥトンネルを特定する。そして、仮想経路特定部１０４は、特定したＧＲＥトンネルからローカルＩＰアドレス及びリモートＩＰアドレスを取得する（ステップＳ２０８）。
【００４４】
このとき、仮想経路リスト生成部１０５は、当該ＧＲＥトンネルが示す仮想経路を示すエントリを、仮想経路リストに追加する。具体的には、仮想経路リスト生成部１０５は、新たなエントリの経路番号をステップＳ２０２で特定したノード間接続リストの経路番号とする。また、仮想経路リスト生成部１０５は、新たなエントリの仮想経路番号を、仮想経路リストの最後のエントリの仮想経路番号に１を加算した値とする。また、仮想経路リスト生成部１０５は、新たなエントリの始点を、ステップＳ２０８で特定したローカルＩＰアドレスが示す仮想化装置４が備える仮想スイッチＶＳＷのホスト名とする。また、仮想経路リスト生成部１０５は、新たなエントリの終点をステップＳ２０８で特定したリモートＩＰアドレスが示す仮想化装置４が備える仮想スイッチＶＳＷのホスト名とする。
【００４５】
次に、仮想経路特定部１０４は、ステップＳ２０８で特定したリモートＩＰアドレスとステップＳ２０５で特定した終点の仮想マシンＶＭを備える仮想化装置４のＩＰアドレスとが一致するか否かを判定する（ステップＳ２０９）。
仮想経路特定部１０４は、ＧＲＥトンネルのリモートＩＰアドレスと終点の仮想マシンＶＭを備える仮想化装置４のＩＰアドレスとが一致しないと判定した場合（ステップＳ２０９：ＮＯ）、ステップＳ２０７に戻り、さらに隣接する仮想化装置４を特定する。
【００４６】
他方、ステップＳ２０６またはステップＳ２０９において、リモートＩＰアドレスと終点の仮想マシンＶＭを備える仮想化装置４のＩＰアドレスとが一致すると判定した場合（ステップＳ２０６：ＹＥＳ／ステップＳ２０９：ＹＥＳ）、仮想経路リスト生成部１０５は、当該ＧＲＥトンネルが示す仮想経路を示すエントリを、仮想経路リストに追加し、生成した仮想経路リストを経路リスト記憶部１１０に記録する（ステップＳ２１０）。具体的には、仮想経路リスト生成部１０５は、新たなエントリの経路番号をステップＳ２０２で特定したノード間接続リストの経路番号とする。また、仮想経路リスト生成部１０５は、新たなエントリの仮想経路番号を、仮想経路リストの最後のエントリの仮想経路番号に１を加算した値とする。また、仮想経路リスト生成部１０５は、新たなエントリの始点を、ＧＲＥトンネルのローカルＩＰアドレスが示す仮想化装置４が備える仮想スイッチＶＳＷのホスト名とする。また、仮想経路リスト生成部１０５は、新たなエントリの終点をステップＳ２０２で特定したノード間接続リストの終点の仮想マシンＶＭのホスト名とする。
【００４７】
上述したステップＳ２０３〜ステップＳ２１０の処理を、ノード間接続情報の往路と復路のそれぞれについて実行すると、仮想経路特定部１０４は、仮想経路特定処理を終了する。これにより、経路リスト記憶部１１０には、仮想マシンＶＭの間を接続する仮想化装置４からなる仮想経路の情報を示す仮想経路リストが記録される。仮想化装置４は、Ｌ３プロトコル及びＬ２プロトコルを用いて通信を制御するため、経路調査コマンドを用いた物理経路の特定を行うことができる。
【００４８】
次に、上述したステップＳ３のＬ３経路特定処理について説明する。
図１１は、Ｌ３経路特定処理における経路特定装置６の動作を示すフローチャートである。
まず、Ｌ３経路特定部１０６は、経路リスト記憶部１１０が記憶する仮想経路リストから仮想経路番号の順に仮想経路を１つずつ選択し、選択した仮想経路情報について、以下に示すステップＳ３０２〜Ｓ３１０の処理を実行する（ステップＳ３０１）。
まず、Ｌ３経路特定部１０６は、選択した仮想経路情報の始点の装置及び終点の装置が仮想化装置４であるか否かを判定する（ステップＳ３０２）。Ｌ３経路特定部１０６は、選択した仮想経路情報の始点の装置または終点の装置の少なくとも一方が仮想マシンＶＭであると判定した場合（ステップＳ３０２：ＮＯ）、ステップＳ３０１に戻り、次の仮想経路を選択する。
【００４９】
他方、Ｌ３経路特定部１０６は、選択した仮想経路情報の始点の装置及び終点の装置がいずれも仮想化装置４であると判定した場合（ステップＳ３０２：ＹＥＳ）、始点の仮想化装置４から終点の仮想化装置４へｔｒａｃｅｒｏｕｔｅコマンドを発行する（ステップＳ３０３）。具体的には、Ｌ３経路特定部１０６は、始点の仮想化装置４の保守網側のＩＰアドレスから、通信部１０２を介してＳＳＨによりリモート接続を行い、ＳＳＨを介してｔｒａｃｅｒｏｕｔｅコマンドを実行させる。これにより、Ｌ３経路特定部１０６は、始点の仮想化装置４と終点の仮想化装置４との間のＬ３経路を構成するＬ３装置３のＩＰアドレスを取得することができる。
【００５０】
次に、Ｌ３経路リスト生成部１０７は、ステップＳ３０３のｔｒａｃｅｒｏｕｔｅコマンドの結果として得られたＬ３装置３のＩＰアドレスに基づいて、Ｌ３経路リストを生成する（ステップＳ３０４）。具体的には、以下の手順で生成する。
【００５１】
まず、Ｌ３経路リスト生成部１０７は、Ｌ３経路リストに、次に示す情報を格納した新たなエントリを生成する。当該エントリの仮想経路番号は、ステップＳ３０１で選択した仮想経路情報の仮想経路番号とする。また、当該エントリのＬ３経路番号は、「１」とする。また、当該エントリの始点は、ステップＳ３０１で選択した仮想経路情報の始点の仮想化装置４のホスト名とする。また、当該エントリの終点は、ｔｒａｃｅｒｏｕｔｅコマンドの結果として得られたホップ数が「１」のＩＰアドレスが示すＬ３装置３のホスト名とする。また、当該エントリのステータスは、「ＯＫ」とする。
【００５２】
次に、Ｌ３経路リスト生成部１０７は、ホップ数が「２」以降のＩＰアドレスを順次読み出し、読み出したＩＰアドレスごとに、次に示す情報を格納した新たなエントリを生成する。当該エントリの仮想経路番号は、ステップＳ３０１で選択した仮想経路情報の仮想経路番号とする。当該エントリのＬ３経路番号は、Ｌ３経路リストの最後のエントリのＬ３経路番号に１を加算した値とする。当該エントリの始点は、Ｌ３経路リストの最後のエントリの終点のＬ３装置３のホスト名とする。当該エントリの終点は、読み出したＩＰアドレスが示す装置のホスト名とする。当該エントリのステータスは「ＯＫ」とする。
つまり、ステップＳ３０４では、パケットが通過する順にＬ３経路番号が増加するように、エントリを生成する。
【００５３】
Ｌ３経路リスト生成部１０７がＬ３経路リストを生成すると、Ｌ３経路特定部１０６は、Ｌ３経路リストの最後のエントリの終点が示す装置のホスト名が、ステップＳ３０１で選択した仮想経路情報の終点の仮想化装置４のホスト名と同じであるか否かを判定する（ステップＳ３０５）。
【００５４】
Ｌ３経路特定部１０６が、Ｌ３経路リストの最後のエントリの終点のホスト名が、仮想経路リストの終点の仮想化装置４のホスト名と同じであると判定した場合（ステップＳ３０５：ＹＥＳ）、Ｌ３経路リスト生成部１０７は、生成したＬ３経路リストを経路リスト記憶部１１０に記録する（ステップＳ３０６）。
【００５５】
他方、Ｌ３経路リストの最後のエントリの終点のホスト名が、仮想経路リストの終点の仮想化装置４のホスト名と異なる場合（ステップＳ３０５：ＮＯ）、障害などの原因により、Ｌ３経路の一部を特定できないことを示している。そこで、Ｌ３経路リスト生成部１０７は、Ｌ３経路リストに障害発生を示すエントリを追加する（ステップＳ３０７）。具体的には、Ｌ３経路リスト生成部１０７は、新たなエントリの仮想経路番号をステップＳ３０１で選択した仮想経路情報の仮想経路番号とする。また、Ｌ３経路リスト生成部１０７は、新たなエントリのＬ３経路番号を、Ｌ３経路リストの最後のエントリのＬ３経路番号に１を加算した値とする。また、Ｌ３経路リスト生成部１０７は、新たなエントリの始点を、Ｌ３経路リストの最後のエントリの終点のＬ３装置３のホスト名とする。また、Ｌ３経路リスト生成部１０７は、新たなエントリの終点を空欄とする。また、Ｌ３経路リスト生成部１０７は、新たなエントリのステータスを「ＮＧ」とする。
【００５６】
次に、Ｌ３経路特定部１０６は、ステップＳ３０１で選択した仮想経路情報の終点の仮想化装置４から始点の仮想化装置４へｔｒａｃｅｒｏｕｔｅコマンドを発行する（ステップＳ３０８）。具体的には、Ｌ３経路特定部１０６は、終点の仮想化装置４の保守網側のＩＰアドレスから、通信部１０２を介してＳＳＨによりリモート接続を行い、ＳＳＨを介してｔｒａｃｅｒｏｕｔｅコマンドを実行させる。これにより、Ｌ３経路特定部１０６は、残りのＬ３経路を特定することができる。
【００５７】
次に、Ｌ３経路リスト生成部１０７は、ステップＳ３０３のｔｒａｃｅｒｏｕｔｅコマンドの結果として得られたＬ３装置３のＩＰアドレスに基づいて、Ｌ３経路リストのエントリを追加する（ステップＳ３０９）。具体的には、以下の手順で追加のエントリを生成する。
【００５８】
まず、Ｌ３経路リスト生成部１０７は、Ｌ３経路リストの新たなエントリとして、次に示す情報を格納するエントリを生成する。当該エントリの仮想経路番号は、ステップＳ３０１で選択した仮想経路情報の仮想経路番号とする。当該エントリのＬ３経路番号は、「９９９９」とする。当該エントリの始点は、ｔｒａｃｅｒｏｕｔｅコマンドの結果として得られたホップ数が「１」のＩＰアドレスが示すＬ３装置３のホスト名とする。当該エントリの終点は、ステップＳ３０１で選択した仮想経路情報の終点の仮想化装置４のホスト名とする。当該エントリのステータスは、「ＯＫ」とする。
【００５９】
次に、Ｌ３経路リスト生成部１０７は、ホップ数が「２」以降のＩＰアドレスを順次読み出し、読み出したＩＰアドレスごとに、次に示す情報を格納するエントリを生成する。当該エントリの仮想経路番号は、ステップＳ３０１で選択した仮想経路情報の仮想経路番号とする。当該エントリのＬ３経路番号は、ステータスをＮＧとするエントリの次のエントリのＬ３経路番号から１を減算した値とする。当該エントリの始点は、読み出したＩＰアドレスが示す装置のホスト名とする。当該エントリの終点は、ステータスをＮＧとするエントリの次のエントリの始点のＬ３装置３のホスト名とする。当該エントリのステータスは「ＯＫ」とする。
【００６０】
つまり、ステップＳ３０９では、パケットが通過する順の逆順にＬ３経路番号が増加するように、エントリを生成する。また、これにより、ステップＳ３０３のｔｒａｃｅｒｏｕｔｅにより特定したＬ３経路とステップＳ３０８のｔｒａｃｅｒｏｕｔｅにより特定したＬ３経路との間に、ステータス「ＮＧ」を示すエントリが格納されることとなる。なお、ステップＳ３０３のｔｒａｃｅｒｏｕｔｅは、第１の経路調査コマンドの一例であって良いし、ステップＳ３０８のｔｒａｃｅｒｏｕｔｅは、第２の経路調査コマンドの一例であって良い。また、ステータス「ＮＧ」を示すエントリは、障害を示す情報の一例であって良い。
【００６１】
これにより、Ｌ３リスト生成部は、Ｌ３経路に障害が発生していたとしても、Ｌ３経路番号の昇順にエントリをたどることで、経路を把握することができるＬ３経路テーブルを生成することができる。
【００６２】
そして、Ｌ３リスト生成部は、生成したＬ３経路リストを経路リスト記憶部１１０に記録する（ステップＳ３１０）。
上述したステップＳ３０２〜ステップＳ３１０の処理を、仮想経路情報のそれぞれについて実行すると、Ｌ３経路特定部１０６は、Ｌ３経路特定処理を終了する。これにより、経路リスト記憶部１１０には、仮想化装置４の間を接続するＬ３経路の情報を示すＬ３経路リストが記録される。
【００６３】
次に、上述したステップＳ４のＬ２経路特定処理について説明する。
図１２は、Ｌ２経路特定処理における経路特定装置６の動作を示すフローチャートである。
まず、Ｌ２経路特定部１０８は、経路リスト記憶部１１０が記憶するＬ３経路リストからＬ３経路番号の順にＬ３経路情報を１つずつ選択し、選択したＬ３経路情報について、以下に示すステップＳ４０２〜Ｓ４０９の処理を実行する（ステップＳ４０１）。
まず、Ｌ２経路特定部１０８は、始点の装置から終点の装置へｌｉｎｋｔｒａｃｅコマンドを発行する（ステップＳ４０２）。具体的には、Ｌ３経路特定部１０６は、始点の装置の保守網側のＩＰアドレスから、通信部１０２を介してＳＳＨによりリモート接続を行い、ＳＳＨを介してｌｉｎｋｔｒａｃｅコマンドを実行させる。これにより、Ｌ３経路特定部１０６は、始点の装置と終点の装置との間のＬ２経路を構成するＬ２装置２のＭＡＣアドレスを取得することができる。なお、始点及び終点の装置は、仮想化装置４またはＬ３装置３の何れかである。
【００６４】
次に、Ｌ２経路リスト生成部１０９は、ステップＳ４０２のｌｉｎｋｔｒａｃｅコマンドの結果として得られたＬ２装置２のＭＡＣアドレスに基づいて、Ｌ２経路リストを生成する（ステップＳ４０３）。具体的には、以下の手順で生成する。
【００６５】
まず、Ｌ２経路リスト生成部１０９は、Ｌ２経路リストの新たなエントリとして、次に示す情報を格納するエントリを生成する。当該エントリのＬ３経路番号は、ステップＳ４０１で選択したＬ３経路情報のＬ３経路番号とする。当該エントリのＬ２経路番号は、「１」とする。当該エントリの始点は、ステップＳ４０１で選択したＬ３経路情報の始点の装置のホスト名とする。当該エントリの終点は、ｌｉｎｋｔｒａｃｅコマンドの結果として得られたホップ数が「１」のＭＡＣアドレスが示すＬ２装置２のホスト名とする。当該エントリのステータスは「ＯＫ」とする。
【００６６】
次に、Ｌ２経路リスト生成部１０９は、ホップ数が「２」以降のＭＡＣアドレスを順次読み出し、読み出したＭＡＣアドレスごとに、次に示す情報を格納するエントリを生成する。当該エントリのＬ３経路番号は、ステップＳ４０１で選択したＬ３経路情報のＬ３経路番号とする。当該エントリのＬ２経路番号は、Ｌ２経路リストの最後のエントリのＬ２経路番号に１を加算した値とする。当該エントリの始点は、Ｌ２経路リストの最後のエントリの終点のＬ２装置２のホスト名とする。当該エントリの終点は、読み出したＭＡＣアドレスが示す装置のホスト名とする。当該エントリのステータスは、「ＯＫ」とする。
つまり、ステップＳ４０３では、パケットが通過する順にＬ２経路番号が増加するように、エントリを生成する。
【００６７】
Ｌ２経路リスト生成部１０９がＬ２経路リストを生成すると、Ｌ２経路特定部１０８は、Ｌ２経路リストの最後のエントリの終点が示す装置のホスト名が、ステップＳ４０１で選択したＬ３経路情報の終点の装置のホスト名と同じであるか否かを判定する（ステップＳ４０４）。
【００６８】
Ｌ２経路特定部１０８が、Ｌ２経路リストの最後のエントリの終点のホスト名が、Ｌ３経路リストの終点の装置のホスト名と同じであると判定した場合（ステップＳ４０４：ＹＥＳ）、Ｌ２経路リスト生成部１０９は、生成したＬ２経路リストを経路リスト記憶部１１０に記録する（ステップＳ４０５）。
【００６９】
他方、Ｌ２経路リストの最後のエントリの終点のホスト名が、Ｌ３経路リストの終点の装置のホスト名と異なる場合（ステップＳ４０４：ＮＯ）、障害などの原因により、Ｌ２経路の一部を特定できないことを示している。そこで、Ｌ２経路リスト生成部１０９は、Ｌ２経路リストに障害発生を示すエントリを追加する（ステップＳ４０６）。具体的には、Ｌ２経路リスト生成部１０９は、当該エントリのＬ３経路番号をステップＳ４０１で選択したＬ３経路情報のＬ３経路番号とする。また、Ｌ２経路リスト生成部１０９は、当該エントリのＬ２経路番号を、Ｌ２経路リストの最後のエントリのＬ２経路番号に１を加算した値とする。また、Ｌ２経路リスト生成部１０９は、当該エントリの始点を、Ｌ２経路リストの最後のエントリの終点のＬ２装置２のホスト名とする。また、Ｌ２経路リスト生成部１０９は、当該エントリの終点を空欄とする。また、Ｌ２経路リスト生成部１０９は、当該エントリのステータスをＮＧとする。
【００７０】
次に、Ｌ２経路特定部１０８は、ステップＳ４０１で選択したＬ３経路情報の終点の装置から始点の装置へｌｉｎｋｔｒａｃｅコマンドを発行する（ステップＳ４０７）。具体的には、Ｌ２経路特定部１０８は、終点の装置の保守網側のＩＰアドレスから、通信部１０２を介してＳＳＨによりリモート接続を行い、ＳＳＨを介してｌｉｎｋｔｒａｃｅコマンドを実行させる。これにより、Ｌ２経路特定部１０８は、残りのＬ２経路を特定することができる。
【００７１】
次に、Ｌ２経路リスト生成部１０９は、ステップＳ４０２のｌｉｎｋｔｒａｃｅコマンドの結果として得られたＬ２装置２のＭＡＣアドレスに基づいて、Ｌ２経路リストのエントリを追加する（ステップＳ４０８）。具体的には、以下の手順で追加のエントリを生成する。
【００７２】
まず、Ｌ２経路リスト生成部１０９は、Ｌ２経路リストの新たなエントリとして、次に示す情報を格納するエントリを生成する。当該エントリのＬ３経路番号は、ステップＳ４０１で選択したＬ３経路情報のＬ３経路番号とする。当該エントリのＬ２経路番号は「９９９９」とする。当該エントリの始点は、ｌｉｎｋｔｒａｃｅコマンドの結果として得られたホップ数が「１」のＭＡＣアドレスが示すＬ２装置２のホスト名とする。当該エントリの終点は、ステップＳ４０１で選択したＬ３経路情報の終点の装置のホスト名とする。当該エントリのステータスは「ＯＫ」とする。
【００７３】
次に、Ｌ２経路リスト生成部１０９は、ホップ数が「２」以降のＭＡＣアドレスを順次読み出し、読み出したＭＡＣアドレスごとに、次に示す情報を格納するエントリを生成する。当該エントリのＬ３経路番号は、ステップＳ４０１で選択したＬ３経路情報のＬ３経路番号とする。当該エントリのＬ２経路番号は、ステータスをＮＧとするエントリの次のエントリのＬ２経路番号から１を減算した値とする。当該エントリの始点は、読み出したＭＡＣアドレスが示す装置のホスト名とする。当該エントリの終点は、ステータスをＮＧとするエントリの次のエントリの始点のＬ２装置２のホスト名とする。当該エントリのステータスは「ＯＫ」とする。
【００７４】
つまり、ステップＳ４０８では、パケットが通過する順の逆順にＬ２経路番号が増加するように、エントリを生成する。また、これにより、ステップＳ４０２のｌｉｎｋｔｒａｃｅにより特定したＬ２経路とステップＳ４０７のｌｉｎｋｔｒａｃｅにより特定したＬ２経路との間に、ステータス「ＮＧ」を示すエントリが格納されることとなる。なお、ステップＳ４０２のｌｉｎｋｔｒａｃｅは、第１の経路調査コマンドの一例であって良いし、ステップＳ４０７のｌｉｎｋｔｒａｃｅは、第２の経路調査コマンドの一例であって良い。また、ステータス「ＮＧ」を示すエントリは、障害を示す情報の一例であって良い。
【００７５】
これにより、Ｌ２リスト生成部は、Ｌ２経路に障害が発生していたとしても、Ｌ２経路番号の昇順にエントリをたどることで、経路を把握することができるＬ２経路テーブルを生成することができる。
【００７６】
そして、Ｌ２リスト生成部は、生成したＬ２経路リストを経路リスト記憶部１１０に記録する（ステップＳ４０９）。
上述したステップＳ４０２〜ステップＳ４０９の処理を、Ｌ３経路情報のそれぞれについて実行すると、Ｌ２経路特定部１０８は、Ｌ２経路特定処理を終了する。これにより、経路リスト記憶部１１０には、Ｌ３経路上の装置の間を接続するＬ２経路の情報を示すＬ２経路リストが記録される。
【００７７】
次に、上述したステップＳ５の経路情報生成処理について説明する。
図１３は、経路情報生成処理における経路特定装置６の動作を示すフローチャートである。
まず、経路出力部１１１は、経路情報記憶部が記憶するノード間接続情報から、経路番号の順にノード間接続情報を１つずつ選択し、選択したノード間接続情報について、以下に示すステップＳ５０２〜Ｓ５２０の処理を実行する（ステップＳ５０１）。なお、往路の経路番号は、復路の経路番号より小さいので、経路出力部１１１は、まず往路のノード間接続情報を選択する。
【００７８】
経路出力部１１１は、選択したノード間接続情報の始点ノードを、経路情報に追加する（ステップＳ５０２）。ここで、経路情報とは、ノードが所属するレイヤ（ＳＤＮ（Ｓｏｆｔｗａｒｅ  Ｄｅｆｉｎｅｄ  Ｎｅｔｗｏｒｋ）、Ｌ３、Ｌ２）と、当該ノードのホスト名とを、パケットが通過する順に格納する二次元配列である。つまり、ステップＳ５０２では、経路出力部１１１は、レイヤ名「ＳＤＮ」と当該ノードのホスト名とを、経路情報の先頭に格納する。
【００７９】
次に、経路出力部１１１は、経路情報記憶部が記憶する仮想経路リストから、ステップＳ５０１で選択したノード間接続情報の経路番号に関連付けられた仮想経路情報を抽出する（ステップＳ５０３）。
次に、経路出力部１１１は、ステップＳ５０３で抽出した仮想経路情報から、仮想経路番号の順に仮想経路情報を１つずつ選択し、選択した仮想経路情報について、以下に示すステップＳ５０５〜Ｓ５１９の処理を実行する（ステップＳ５０４）。
【００８０】
経路出力部１１１は、選択した仮想経路情報の始点ノードを、経路情報に追加する（ステップＳ５０５）。ただし、当該始点ノードの情報が経路情報に既に格納されている場合は、追加をせずに、次のステップに進む。なお、ステップＳ５０５では、経路出力部１１１は、レイヤ名「ＳＤＮ」と当該ノードのホスト名とを、経路情報に追加する。
【００８１】
次に、経路出力部１１１は、経路情報記憶部が記憶するＬ３経路リストから、ステップＳ５０４で選択した仮想経路情報の仮想経路番号に関連付けられたＬ３経路情報を抽出する（ステップＳ５０６）。次に、経路出力部１１１は、ステップＳ５０６によって抽出したＬ３経路情報の数が０であるか否かを判定する（ステップＳ５０７）。
【００８２】
経路出力部１１１は、抽出したＬ３経路情報の数が０であると判定した場合（ステップＳ５０７：ＹＥＳ）、ステップＳ５０４で選択した仮想経路情報のステータスがＮＧを示すか否かを判定する（ステップＳ５０８）。経路出力部１１１は、仮想経路情報のステータスがＮＧを示すと判定した場合（ステップＳ５０８：ＹＥＳ）、経路情報にＮＧデータを追加する（ステップＳ５０９）。具体的には、経路出力部１１１は、レイヤ名・ホスト名ともに「※」などＮＧデータを示す記号を経路情報に追加する。ＮＧデータを追加した場合、またはステータスがＯＫを示す場合（ステップＳ５０８：ＮＯ）、ステップＳ５０４に戻り、次の仮想経路情報を選択する。
【００８３】
他方、経路出力部１１１は、抽出したＬ３経路情報の数が１以上であると判定した場合（ステップＳ５０７：ＮＯ）、ステップＳ５０６で抽出したＬ３経路情報から、Ｌ３経路番号の順にＬ３経路情報を１つずつ選択し、選択したＬ３経路情報について、以下に示すステップＳ５１１〜Ｓ５１９の処理を実行する（ステップＳ５１０）。
【００８４】
経路出力部１１１は、選択したＬ３経路情報の始点ノードを、経路情報に追加する（ステップＳ５１１）。ただし、当該始点ノードの情報が経路情報に既に格納されている場合は、追加をせずに、次のステップに進む。なお、ステップＳ５１１では、経路出力部１１１は、レイヤ名「Ｌ３」と当該ノードのホスト名とを、経路情報に追加する。
【００８５】
次に、経路出力部１１１は、経路情報記憶部が記憶するＬ２経路リストから、ステップＳ５１０で選択したＬ３経路情報のＬ３経路番号に関連付けられたＬ２経路情報を抽出する（ステップＳ５１２）。次に、経路出力部１１１は、ステップＳ５１２によって抽出したＬ２経路情報の数が０であるか否かを判定する（ステップＳ５１３）。
【００８６】
経路出力部１１１は、抽出したＬ２経路情報の数が０であると判定した場合（ステップＳ５１３：ＹＥＳ）、ステップＳ５１０で選択したＬ３経路情報のステータスがＮＧを示すか否かを判定する（ステップＳ５１４）。経路出力部１１１は、Ｌ３経路情報のステータスがＮＧを示すと判定した場合（ステップＳ５１４：ＹＥＳ）、経路情報にＮＧデータを追加する（ステップＳ５１５）。ＮＧデータを追加した場合、またはステータスがＯＫを示す場合（ステップＳ５１４：ＮＯ）、ステップＳ５１０に戻り、次の仮想経路情報を選択する。
【００８７】
他方、経路出力部１１１は、抽出したＬ２経路情報の数が１以上であると判定した場合（ステップＳ５１３：ＮＯ）、ステップＳ５１２で抽出したＬ２経路情報から、Ｌ２経路番号の順にＬ２経路情報を１つずつ選択し、選択したＬ２経路情報について、以下に示すステップＳ５１７〜Ｓ５１９の処理を実行する（ステップＳ５１６）。
【００８８】
経路出力部１１１は、選択したＬ２経路情報の始点ノードを、経路情報に追加する（ステップＳ５１７）。ただし、当該始点ノードの情報が経路情報に既に格納されている場合は、追加をせずに、次のステップに進む。なお、ステップＳ５１７では、経路出力部１１１は、レイヤ名「Ｌ２」と当該ノードのホスト名とを、経路情報に追加する。
【００８９】
次に、経路出力部１１１は、ステップＳ５１６で選択したＬ２経路情報のステータスがＮＧを示すか否かを判定する（ステップＳ５１８）。経路出力部１１１は、Ｌ２経路情報のステータスがＮＧを示すと判定した場合（ステップＳ５１８：ＹＥＳ）、経路情報にＮＧデータを追加する（ステップＳ５１９）。ＮＧデータを追加した場合、またはステータスがＯＫを示す場合（ステップＳ５１８：ＮＯ）、ステップＳ５１６に戻り、次の仮想経路情報を選択する。
【００９０】
経路出力部１１１は、上述したステップＳ５１７〜Ｓ５１９の処理を、ステップＳ５１２で抽出したすべてのＬ２経路情報について実行すると、ステップＳ５１０に戻り、次のＬ３経路情報を選択する。
また、経路出力部１１１は、上述したステップＳ５１１〜Ｓ５１９の処理を、ステップＳ５０６で抽出したすべてのＬ３経路情報について実行すると、ステップＳ５０４に戻り、次の仮想経路情報を選択する。
【００９１】
また、経路出力部１１１は、往路のノード間接続情報について、上述したステップＳ５０５〜Ｓ５１９の処理を、ステップＳ５０３で抽出したすべての仮想経路情報について実行すると、ステップＳ５０１で選択したノード間接続情報の終点ノードを経路情報に追加する（ステップＳ５２０）。そして、ステップＳ５０１に戻り、復路のノード間接続情報を選択する。
【００９２】
また、経路出力部１１１は、復路のノード間接続情報について、上述したステップＳ５０２〜ステップＳ５２０の処理を実行すると、生成した経路情報を、通信部１０２を介して保守端末７に出力し（ステップＳ５２１）、経路情報生成処理を終了する。そして、保守端末７は、経路特定装置６から経路情報をディスプレイに表示する。
【００９３】
図１４は、保守端末７が表示する経路情報の例を示す図である。
経路情報は、図１４に示すように、往路と復路のそれぞれについて、パケットが始点の仮想マシンＶＭから終点の仮想マシンＶＭに到達するまでに経由する装置を、パケットが通過する順に表示する。このように、各レイヤのパスを自動的に統合することにより、利用者は、ノード間の経路情報を容易に理解することができる。これにより、利用者は、故障発生時に各レイヤの情報を組み合わせる作業を行うことなく、被疑箇所の絞り込みを行うことができる。
【００９４】
上述したように、本実施形態によれば、仮想経路特定部１０４が、フローテーブルに基づいて経路の探索対象となる２つの機器を接続する仮想経路を特定し、Ｌ３経路特定部１０６が、仮想経路において隣接する２つのＬ３装置３の間の経路を探索するｔｒａｃｅｒｏｕｔｅコマンドを発行することで、２つの仮想通信装置を接続する物理経路を特定する。これにより、経路特定装置６は、仮想通信装置と物理通信装置とを有するネットワークにおいても、経路の特定を行うことができる。
【００９５】
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
例えば、本実施形態では、マスタ記憶部１０１が、ＩＦ情報テーブルと、ＩＦ−装置関連情報テーブルと、各種装置情報テーブルとを別個に備え、それぞれの関係に基づいて情報を特定する場合について説明したが、これに限られない。例えば、各種装置情報テーブルがＩＦ情報テーブルの各要素を含んで構成され、各種装置情報テーブルを参照することで、各種装置のサービス網のＩＰアドレスやＭＡＣアドレスを特定できるような構成であっても良い。また、マスタ記憶部１０１は、経路特定装置６の外部に設けられていても良い。
【００９６】
また、本実施形態では、経路特定装置６と保守端末７とを別個に備える場合について説明したが、これに限られず、経路特定装置６がユーザインタフェースを備える場合、保守端末７を備えない構成であっても良い。また、本実施形態では、仮想ネットワークコントローラ５と経路特定装置６とを別個に備える場合について説明したが、これに限られず、仮想ネットワークコントローラ５が経路特定装置６の機能を含む構成であっても良い。
【００９７】
上述の経路特定装置６は、内部にコンピュータを有している。そして、上述した各処理部の動作は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００９８】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【符号の説明】
【００９９】
１…通信システム  ２…Ｌ２装置  ３…Ｌ３装置  ４…仮想化装置  ５…仮想ネットワークコントローラ  ６…経路特定装置  ７…保守端末  １０１…マスタ記憶部  １０２…通信部  １０３…仮想マシン情報特定部  １０４…仮想経路特定部  １０５…仮想経路リスト生成部  １０６…Ｌ３経路特定部  １０７…Ｌ３経路リスト生成部  １０８…Ｌ２経路特定部  １０９…Ｌ２経路リスト生成部  １１０…経路リスト記憶部  １１１…経路出力部
【図１】
2015012317.tif 000003
【図２】
2015012317.tif 000004
【図３】
2015012317.tif 000005
【図４】
2015012317.tif 000006
【図５】
2015012317.tif 000007
【図６】
2015012317.tif 000008
【図７】
2015012317.tif 000009
【図８】
2015012317.tif 000010
【図９】
2015012317.tif 000011
【図１０】
2015012317.tif 000012
【図１１】
2015012317.tif 000013
【図１２】
2015012317.tif 000014
【図１３】
2015012317.tif 000015
【図１４】
2015012317.tif 000016