(57)【要約】【課題】スイッチ、物理マシンおよび仮想マシンを含むネットワークトポロジであって、物理マシンと仮想マシンとを区別して表したネットワークトポロジを生成することができるネットワークトポロジ生成システムを提供する。【解決手段】ネットワークトポロジ補正手段は、スイッチのインタフェースの接続先となる第１のネットワークトポロジ要素を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となる第２のネットワークトポロジ要素を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となる第３のネットワークトポロジ要素を特定し、当該第３のネットワークトポロジ要素とスイッチとが一致することを条件に第３のネットワークトポロジ要素とスイッチとの間のリンクを削除する。【選択図】図１９
2014045437.tif 000002
【特許請求の範囲】
【請求項１】
物理マシンまたは仮想マシンであるノード、およびスイッチから、ノードであるかスイッチであるかの種別と、当該ノードまたはスイッチのインタフェースの識別情報と、当該インタフェース自身に割り当てられたアドレスとを取得するとともに、スイッチから、当該スイッチのインタフェース毎に、インタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを取得し、物理マシンに該当するノードから、当該ノードのインタフェース毎に、インタフェースの接続先となっている仮想マシンに該当するノードのインタフェースのアドレスを取得する情報取得手段と、
スイッチのインタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを参照して、スイッチと他のノードまたはスイッチとのリンクを作成し、ノードのインタフェースの接続先となっているノードのインタフェースのアドレスを参照して、ノード間のリンクであって、前記接続先となっているノードを終点とするリンクを作成することによって、ノードおよびスイッチを要素として含むネットワークトポロジを生成するネットワークトポロジ生成手段と、
スイッチのインタフェースの接続先となるネットワークトポロジの要素である第１のネットワークトポロジ要素を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第２のネットワークトポロジ要素を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第３のネットワークトポロジ要素を特定し、当該第３のネットワークトポロジ要素と前記スイッチとが一致することを条件に前記第３のネットワークトポロジ要素と前記スイッチとの間のリンクを削除することによって、スイッチと、仮想マシンに該当するノードとのリンクを削除するネットワークトポロジ補正手段とを備える
ことを特徴とするネットワークトポロジ生成システム。
【請求項２】
仮想マシンとサービスとの対応関係を示す情報に基づいて、ネットワークトポロジ内の仮想マシンに該当するノードに、当該仮想マシンに対応するサービスを対応付けるサービス情報追加手段を備える
請求項１に記載のネットワークトポロジ生成システム。
【請求項３】
ネットワークトポロジ補正手段によってリンクが削除された後のネットワークトポロジを表示する出力部を備える
請求項１または請求項２に記載のネットワークトポロジ生成システム。
【請求項４】
物理マシンまたは仮想マシンであるノード、およびスイッチから、ノードであるかスイッチであるかの種別と、当該ノードまたはスイッチのインタフェースの識別情報と、当該インタフェース自身に割り当てられたアドレスとを取得するとともに、スイッチから、当該スイッチのインタフェース毎に、インタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを取得し、物理マシンに該当するノードから、当該ノードのインタフェース毎に、インタフェースの接続先となっている仮想マシンに該当するノードのインタフェースのアドレスを取得し、
スイッチのインタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを参照して、スイッチと他のノードまたはスイッチとのリンクを作成し、ノードのインタフェースの接続先となっているノードのインタフェースのアドレスを参照して、ノード間のリンクであって、前記接続先となっているノードを終点とするリンクを作成することによって、ノードおよびスイッチを要素として含むネットワークトポロジを生成し、
スイッチのインタフェースの接続先となるネットワークトポロジの要素である第１のネットワークトポロジ要素を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第２のネットワークトポロジ要素を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第３のネットワークトポロジ要素を特定し、当該第３のネットワークトポロジ要素と前記スイッチとが一致することを条件に前記第３のネットワークトポロジ要素と前記スイッチとの間のリンクを削除することによって、スイッチと、仮想マシンに該当するノードとのリンクを削除する
ことを特徴とするネットワークトポロジ生成方法。
【請求項５】
仮想マシンとサービスとの対応関係を示す情報に基づいて、ネットワークトポロジ内の仮想マシンに該当するノードに、当該仮想マシンに対応するサービスを対応付ける
請求項４に記載のネットワークトポロジ生成方法。
【請求項６】
コンピュータに、
物理マシンまたは仮想マシンであるノード、およびスイッチから、ノードであるかスイッチであるかの種別と、当該ノードまたはスイッチのインタフェースの識別情報と、当該インタフェース自身に割り当てられたアドレスとを取得するとともに、スイッチから、当該スイッチのインタフェース毎に、インタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを取得し、物理マシンに該当するノードから、当該ノードのインタフェース毎に、インタフェースの接続先となっている仮想マシンに該当するノードのインタフェースのアドレスを取得する情報取得処理、
スイッチのインタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを参照して、スイッチと他のノードまたはスイッチとのリンクを作成し、ノードのインタフェースの接続先となっているノードのインタフェースのアドレスを参照して、ノード間のリンクであって、前記接続先となっているノードを終点とするリンクを作成することによって、ノードおよびスイッチを要素として含むネットワークトポロジを生成するネットワークトポロジ生成処理、および、
スイッチのインタフェースの接続先となるネットワークトポロジの要素である第１のネットワークトポロジ要素を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第２のネットワークトポロジ要素を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第３のネットワークトポロジ要素を特定し、当該第３のネットワークトポロジ要素と前記スイッチとが一致することを条件に前記第３のネットワークトポロジ要素と前記スイッチとの間のリンクを削除することによって、スイッチと、仮想マシンに該当するノードとのリンクを削除するネットワークトポロジ補正処理
を実行させるためのネットワークトポロジ生成プログラム。
【請求項７】
コンピュータに、
仮想マシンとサービスとの対応関係を示す情報に基づいて、ネットワークトポロジ内の仮想マシンに該当するノードに、当該仮想マシンに対応するサービスを対応付けるサービス情報追加処理を実行させる
請求項６に記載のネットワークトポロジ生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークトポロジ生成システム、ネットワークトポロジ生成方法およびネットワークトポロジ生成プログラムに関し、特に、スイッチ、物理マシンおよび仮想マシンを含むネットワークトポロジを生成するネットワークトポロジ生成システム、ネットワークトポロジ生成方法およびネットワークトポロジ生成プログラムに関する。
【背景技術】
【０００２】
物理マシンに故障が発生した場合、どのようなサービスに影響があるかを把握できるように、サービスに用いるシステムを管理することが好ましい。このような管理を行うため、サービスに用いるシステムの構成情報をＣＭＤＢ（Configuration Management Database ）として保持しておく場合がある。なお、ここで、サービスとは、複数のマシンによって実現される業務を意味する。
【０００３】
また、上記のような管理を実現するために、サービスに用いるシステムのネットワークトポロジを作成することが考えられる。ネットワークトポロジに関連する技術は、種々提案されている（例えば、特許文献１〜４参照）。
【０００４】
特許文献１に記載されたネットワークトポロジの作成方法では、管理機能付スイッチングハブに収集され格納されたフィルタリングデータベースを参照し、そのフィルタリングデータベースの値に基づき、管理機能付スイッチングハブの各ポートに属する端末の物理アドレスと、そのポート番号との組を取得する。そして、下位の管理機能付スイッチングハブの複数ポートに所属している物理アドレスが、上記の管理機能付スイッチングハブの単一のポートに所属している場合、下位の管理機能付スイッチングハブが上位の管理機能付スイッチングハブに接続されていると判断する。
【０００５】
特許文献２には、ゲスト・オペレーティング・システムに対して現在割り当てられている、サブセットのホスト・リソースのトポロジについて、ゲスト・オペレーティング・システムに知らせることが記載されている。
【０００６】
特許文献３には、ネットワーク管理装置が、ルーティングテーブルを参照して、業務ＬＡＮが接続されたネットワークに対してブロードキャストｐｉｎｇを送信するようにルータを操作することが記載されている。そして、そのｐｉｎｇがスイッチを経由した時点で、その送信元のルータのＭＡＣアドレスと、スイッチからルータに接続される接続ポートのポート番号とが対応付けられることが記載されている。
【０００７】
特許文献４には、ハブのポートを通して端末にアクセスしたＰＣ（パーソナルコンピュータ）の物理アドレスを、各ハブのポート毎に集計し、あるポートについて物理アドレスの数が単数であれば、その物理アドレスをそのハブのポートのＰＣの物理アドレスとして確定することが記載されている。
【０００８】
特許文献５には、ＭＡＣアドレスのみによって管理されているレイヤ２ネットワーク装置に関して、ＴＴＬ（Time To Live）を利用してポートトポロジを導出する方法が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００２−１９０８１９号公報（第１頁）
【特許文献２】特開２００６−１７８９３３号公報（段落００４０）
【特許文献３】特開２００７−２２８３８２号公報（段落００３０，００３１）
【特許文献４】特開平８−１９１３２６号公報（第１頁）
【特許文献５】特開２００８−１７２４４９号公報（第１頁）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
サービスに用いるシステムをＣＭＤＢによって管理する場合、時間が経過するにつれて、ＣＭＤＢの内容と実際のシステムの構成との間に乖離が生じることがあり、物理マシンに故障が発生した場合、どのようなサービスに影響があるかを十分に把握できないことがある。
【００１１】
そのため、サービスに用いるシステムのネットワークトポロジを作成することが好ましい。前述のように、特許文献４に記載の技術では、あるポートについて集計した物理アドレスの数が単数である場合に、その物理アドレスをそのポートに接続されたＰＣの物理アドレスとして確定する。しかし、特許文献４に記載の技術では、仮想マシンを考慮していない。そのため、特許文献４に記載の技術では、ＰＣとハブに関するネットワークトポロジを作成することはできるが、仮想マシンを含むネットワークトポロジを作成することはできない。物理マシン上で動作する仮想マシンもアドレスを有する。従って、ポートに物理マシンが接続され、その物理マシン上で仮想マシンが動作している場合、そのポートに関して複数のアドレスが集計されるので、特許文献４に記載の技術では、そのポートに何が接続されているのかを確定できない。
【００１２】
一般に、ネットワークトポロジの作成において、ＭＡＣアドレス（Media Access Control Address）が用いられる。また、スイッチは、物理マシンを介して仮想マシンと通信を行うことができる。そして、ポート単位に、そのポートに接続された物理マシンおよび仮想マシンのＭＡＣアドレス一覧を保持する。しかし、ＭＡＣアドレスの情報のみで物理マシンと仮想マシンとを区別することはできない。そのため、スイッチ、物理マシンおよび仮想マシンを含むネットワークトポロジを作成することは困難であった。
【００１３】
そこで、本発明は、スイッチ、物理マシンおよび仮想マシンを含むネットワークトポロジであって、物理マシンと仮想マシンとを区別して表したネットワークトポロジを生成することができるネットワークトポロジ生成システム、ネットワークトポロジ生成方法およびネットワークトポロジ生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明によるネットワークトポロジ生成システムは、物理マシンまたは仮想マシンであるノード、およびスイッチから、ノードであるかスイッチであるかの種別と、当該ノードまたはスイッチのインタフェースの識別情報と、当該インタフェース自身に割り当てられたアドレスとを取得するとともに、スイッチから、当該スイッチのインタフェース毎に、インタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを取得し、物理マシンに該当するノードから、当該ノードのインタフェース毎に、インタフェースの接続先となっている仮想マシンに該当するノードのインタフェースのアドレスを取得する情報取得手段と、スイッチのインタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを参照して、スイッチと他のノードまたはスイッチとのリンクを作成し、ノードのインタフェースの接続先となっているノードのインタフェースのアドレスを参照して、ノード間のリンクであって、接続先となっているノードを終点とするリンクを作成することによって、ノードおよびスイッチを要素として含むネットワークトポロジを生成するネットワークトポロジ生成手段と、スイッチのインタフェースの接続先となるネットワークトポロジの要素である第１のネットワークトポロジ要素を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第２のネットワークトポロジ要素を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第３のネットワークトポロジ要素を特定し、当該第３のネットワークトポロジ要素とスイッチとが一致することを条件に第３のネットワークトポロジ要素とスイッチとの間のリンクを削除することによって、スイッチと、仮想マシンに該当するノードとのリンクを削除するネットワークトポロジ補正手段とを備えることを特徴とする。
【００１５】
また、本発明によるネットワークトポロジ生成方法は、物理マシンまたは仮想マシンであるノード、およびスイッチから、ノードであるかスイッチであるかの種別と、当該ノードまたはスイッチのインタフェースの識別情報と、当該インタフェース自身に割り当てられたアドレスとを取得するとともに、スイッチから、当該スイッチのインタフェース毎に、インタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを取得し、物理マシンに該当するノードから、当該ノードのインタフェース毎に、インタフェースの接続先となっている仮想マシンに該当するノードのインタフェースのアドレスを取得し、スイッチのインタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを参照して、スイッチと他のノードまたはスイッチとのリンクを作成し、ノードのインタフェースの接続先となっているノードのインタフェースのアドレスを参照して、ノード間のリンクであって、接続先となっているノードを終点とするリンクを作成することによって、ノードおよびスイッチを要素として含むネットワークトポロジを生成し、スイッチのインタフェースの接続先となるネットワークトポロジの要素である第１のネットワークトポロジ要素を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第２のネットワークトポロジ要素を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第３のネットワークトポロジ要素を特定し、当該第３のネットワークトポロジ要素とスイッチとが一致することを条件に第３のネットワークトポロジ要素とスイッチとの間のリンクを削除することによって、スイッチと、仮想マシンに該当するノードとのリンクを削除することを特徴とする。
【００１６】
また、本発明によるネットワークトポロジ生成プログラムは、コンピュータに、物理マシンまたは仮想マシンであるノード、およびスイッチから、ノードであるかスイッチであるかの種別と、当該ノードまたはスイッチのインタフェースの識別情報と、当該インタフェース自身に割り当てられたアドレスとを取得するとともに、スイッチから、当該スイッチのインタフェース毎に、インタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを取得し、物理マシンに該当するノードから、当該ノードのインタフェース毎に、インタフェースの接続先となっている仮想マシンに該当するノードのインタフェースのアドレスを取得する情報取得処理、スイッチのインタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを参照して、スイッチと他のノードまたはスイッチとのリンクを作成し、ノードのインタフェースの接続先となっているノードのインタフェースのアドレスを参照して、ノード間のリンクであって、接続先となっているノードを終点とするリンクを作成することによって、ノードおよびスイッチを要素として含むネットワークトポロジを生成するネットワークトポロジ生成処理、および、スイッチのインタフェースの接続先となるネットワークトポロジの要素である第１のネットワークトポロジ要素を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第２のネットワークトポロジ要素を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第３のネットワークトポロジ要素を特定し、当該第３のネットワークトポロジ要素とスイッチとが一致することを条件に第３のネットワークトポロジ要素とスイッチとの間のリンクを削除することによって、スイッチと、仮想マシンに該当するノードとのリンクを削除するネットワークトポロジ補正処理を実行させることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、スイッチ、物理マシンおよび仮想マシンを含むネットワークトポロジであって、物理マシンと仮想マシンとを区別して表したネットワークトポロジを生成することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明のネットワークトポロジ生成システムの構成例を示すブロック図である。
【図２】接続情報記憶部が初期状態で記憶するＩＰアドレスの例を示す説明図である。
【図３】認証情報記憶部が記憶する情報の例を示す説明図である。
【図４】ＩＰアドレスにプロトコルおよびユーザ名が追加された状態の例を示す説明図である。
【図５】１つのネットワークトポロジ要素から取得した情報の例を示す模式図である。
【図６】図５に示す情報の具体例を示す説明図である。
【図７】図５に示す情報の具体例を示す説明図である。
【図８】サービス情報記憶部が記憶する情報の例を模式的に示す説明図である。
【図９】サービス情報追加部によって情報が追加されたネットワークトポロジの例を示す説明図である。
【図１０】本発明の処理経過の例を示すフローチャートである。
【図１１】ステップＳ３の処理経過の例を示すフローチャートである。
【図１２】ステップＳ３の処理経過の例を示すフローチャートである。
【図１３】ステップＳ１４の結果得られたリンクの例を示す説明図である。
【図１４】ステップＳ１８〜Ｓ２１のループ処理により追加されたノード間のリンクの例を示す説明図である。
【図１５】ステップＳ４の処理経過の例を示すフローチャートである。
【図１６】ステップＳ４の処理経過の例を示すフローチャートである。
【図１７】Ｓ，Ｘ，Ｙ，Ｚおよび削除されるリンクを示す説明図である。
【図１８】ステップＳ４後のネットワークトポロジの例を示す説明図である。
【図１９】本発明のネットワークトポロジ生成システムの最小構成の例を示すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態を図面を参照して説明する。
【００２０】
まず、本実施形態における用語について説明する。
「ネットワークトポロジ要素」とは、ネットワークトポロジの要素となるスイッチおよびノードを意味する。
【００２１】
また、「ノード」とは、スイッチに接続されている物理マシンまたは仮想マシンである。従って、ノードには、物理マシンに該当するノードと、仮想マシンに該当するノードとがある。
【００２２】
ネットワークトポロジ要素は、それぞれ、他のネットワークトポロジ要素とのインタフェースを備え、そのインタフェース毎にアドレスを有する。例えば、ネットワークトポロジ要素がスイッチである場合、スイッチは、インタフェースとしてポートを有し、ポート毎にアドレスを有する。また、ネットワークトポロジ要素がノードである場合、ノードは、インタフェースとしてネットワークデバイスを有し、ネットワークデバイス毎にアドレスを有する。本実施形態では、ネットワークトポロジ要素の各インタフェース（スイッチにおけるポート、ノードにおけるネットワークデバイス）に割り当てられるアドレスがＭＡＣアドレスである場合を例にして説明するが、各インタフェースに割り当てられるアドレスはＭＡＣアドレスに限定されない。例えば、ＷＷＰＮ（World Wide Port Name）アドレスであってもよい。
【００２３】
また、スイッチ自体や各ノード自体には、ポートやネットワークデバイスに割り当てられるＭＡＣアドレスとは別に、ＩＰアドレスが割り当てられている。本実施形態では、個々のネットワークトポロジ要素（スイッチ、ノード）の識別情報としてＩＰアドレスを利用する場合を例にして説明する。
【００２４】
スイッチは、複数のポートを有し、ポート毎に、ポートの接続先のノードのインタフェースのＭＡＣアドレスを保持している。
【００２５】
物理マシンに該当するノードおよび仮想マシンに該当するノードは、複数のネットワークデバイスを含んでいる。
【００２６】
そして、物理マシンに該当するノードは、自身のネットワークデバイスの接続先となっている、仮想マシンに該当するノードのネットワークデバイスのＭＡＣアドレスを保持している。
【００２７】
また、物理マシンは、複数の仮想マシンを起動することができるマシンである。物理マシンの例として、例えば、Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）等のＯＳ（Operating System）が動作するマシンが挙げられる。以下、物理マシンをＰＭ（Physical Machine）と記す場合がある。
【００２８】
仮想マシンは、物理マシン上で動作するゲストＯＳである。以下、仮想マシンをＶＭ（Virtual Machine）と記す場合がある。
【００２９】
次に、本発明のネットワークトポロジ生成システムの構成例について説明する。図１は、本発明のネットワークトポロジ生成システムの構成例を示すブロック図である。図１では、ネットワークトポロジ生成システムとともに、スイッチ３１、物理マシン（ＰＭ）４１〜４ｎ、仮想マシン（ＶＭ）５１〜５ｎおよび仮想マシン（ＶＭ）６１〜６ｎも図示している。これらのスイッチ、物理マシンおよび仮想マシンは、サービスの提供に用いられるシステムに含まれるネットワークトポロジ要素である。なお、スイッチの台数は１台に限定されない。また、仮想マシンの数、および、物理マシンの数も、それぞれ限定されない。
【００３０】
本実施形態のネットワークトポロジ生成システム１は、要素検出部２と、情報取得部３と、ネットワークトポロジ生成部４と、ネットワークトポロジ補正部５と、サービス情報追加部６と、認証情報記憶部７と、接続情報記憶部８と、要素情報記憶部９と、サービス情報記憶部１０と、出力部１１とを備える。
【００３１】
接続情報記憶部８は、ネットワークトポロジ要素の識別情報となり得る全てのＩＰアドレスを予め記憶する。例えば、図１に例示する構成の場合、スイッチ３１をルートとするネットワーク（サブネット）のＩＰアドレスをそれぞれ記憶する。これらのＩＰアドレスの中には、使用されていないＩＰアドレス（すなわち、対応するネットワークトポロジ要素が存在しないＩＰアドレス）が含まれていてもよい。図２は、接続情報記憶部８が初期状態で記憶するＩＰアドレスの例を示す。これらのＩＰアドレスは、予め管理者が接続情報記憶部８に記憶させておけばよい。接続情報記憶部８が記憶しているＩＰアドレスのうち、ネットワークトポロジ要素に割り当てられているＩＰアドレスに関しては、そのネットワークトポロジ要素にアクセスする際のプロトコルやユーザ名等が要素検出部２によって追加される。
【００３２】
認証情報記憶部７は、いずれかのネットワークトポロジ要素にアクセスするために必要な情報を予め全て保持する。図３は、認証情報記憶部７が記憶する情報の例を示す説明図である。図３に示す例では、プロトコル、ユーザ名およびパスワードの組み合わせ（レコードと記す。）を複数記憶する。これらの情報は、予め管理者が認証情報記憶部７に記憶させておけばよい。また、プロトコル、ユーザ名およびパスワードの組み合わせが、どのネットワークトポロジ要素に対応するかに関しては、認証情報記憶部７に記憶させておかなくてよい。
【００３３】
要素検出部２は、アクセス可能なネットワークトポロジ要素を検出する。具体的には、要素検出部２は、接続情報記憶部８に記憶されているＩＰアドレスを選択する。そして、要素検出部２は、選択したＩＰアドレスに対してｐｉｎｇを実行し、応答があれば、認証情報記憶部７に記憶された１番目のレコード（プロトコル、ユーザ名およびパスワードの組み合わせ）でログインできるか否かを判定する。ログインできなければ、要素検出部２は、認証情報記憶部７に記憶された次のレコードを用いて、同様の判定を行う。以降、同様の処理を繰り返し、ログインできた場合には、選択したＩＰアドレスに対応づけて、ログインに用いたプロトコルおよびユーザ名を接続情報記憶部８に記憶させる。ＩＰアドレスにプロトコルおよびユーザ名が追加された状態の例を図４に示す。また、要素検出部２は、そのＩＰアドレスと、ログインに用いたパスワードも対応付ける。要素検出部２は、このパスワードもＩＰアドレスに対応させて接続情報記憶部８に記憶させてもよい。このことは、選択したＩＰアドレスによって識別されるネットワークトポロジ要素（スイッチまたはノード）を検出したことを意味する。そして、以降、ＩＰアドレスに対応づけられたプロトコル、ユーザ名、パスワードを用いて、そのＩＰアドレスのネットワークトポロジ要素にログインし、そのネットワークトポロジ要素を取得することが可能となる。
【００３４】
要素検出部２は、他のＩＰアドレスも順次選択し、同様の処理を行う。ｐｉｎｇに対する応答がなかったＩＰアドレスに関しては、そのＩＰアドレスを持つネットワークトポロジ要素が存在しないことになる。
【００３５】
情報取得部３は、要素検出部２によって検出されたネットワークトポロジ要素にログインし、そのネットワークトポロジ要素がノードであるかスイッチであるかの種別の情報を取得する。例えば、情報取得部３は、ノードしか正常に応答しないコマンドをネットワークトポロジ要素に送信し、正常な応答があれば、そのネットワークトポロジ要素はノードであると判定し、正常な応答がなければ、そのネットワークトポロジ要素はスイッチであると判定すればよい。また、例えば、情報取得部３は、スイッチしか正常に応答しないコマンドをネットワークトポロジ要素に送信し、正常な応答があれば、そのネットワークトポロジ要素はスイッチであると判定し、正常な応答がなければ、そのネットワークトポロジ要素はノードであると判定すればよい。
【００３６】
さらに、情報取得部３は、要素検出部２によって検出されたネットワークトポロジ要素に対して、そのネットワークトポロジ要素が有するインタフェースの識別情報とそのインタフェースに割り当てられたＭＡＣアドレスの組のリストを要求する。そして、情報取得部３は、ネットワークトポロジ要素から、そのネットワークトポロジ要素が有するインタフェースの識別情報とＭＡＣアドレスとの組のリストを取得する。ネットワークトポロジ要素がスイッチである場合、情報取得部３は、ポートの識別情報およびそのポートのＭＡＣアドレスの組のリストを取得する。また、ネットワークトポロジ要素がノードである場合、情報取得部３は、ネットワークデバイスの識別情報およびそのネットワークデバイスのＭＡＣアドレスの組のリストを取得する。
【００３７】
さらに、情報取得部３は、要素検出部２によって検出されたネットワークトポロジ要素に対して、そのネットワークトポロジ要素が有するインタフェース毎に、インタフェースの識別情報と、そのインタフェースの接続先となっているネットワークトポロジ要素のインタフェースのＭＡＣアドレスのリストを要求する。そして、情報取得部３は、ネットワークトポロジ要素のインタフェース毎に、インタフェースの識別情報と、そのインタフェースの接続先となっているネットワークトポロジ要素のインタフェースのＭＡＣアドレスのリストを取得する。
【００３８】
スイッチは、ポート毎に、ポートの識別情報と、そのポートの接続先となるノードまたはスイッチのインタフェースのＭＡＣアドレスとの組のリストを保持している。よって、スイッチは、情報取得部３からの要求に応じて、ポートの識別情報と接続先のノードまたはスイッチのインタフェースのＭＡＣアドレスとの組のリストをポート毎に情報取得部３に送り、情報取得部３は、その情報を取得すればよい。
【００３９】
また、物理マシンに該当するノードは、ネットワークデバイス毎に、ネットワークデバイスの識別情報と、そのネットワークデバイスの接続先となる仮想マシンに該当するノードのネットワークデバイスのＭＡＣアドレスとの組のリストを保持している。よって、物理マシンに該当するノードは、情報取得部３からの要求に応じて、ネットワークデバイスの識別情報と接続先のノード（仮想マシンに該当するノード）のネットワークデバイスのＭＡＣアドレスとの組のリストを、ネットワークデバイス毎に情報取得部３に送り、情報取得部３は、その情報を取得すればよい。
【００４０】
なお、仮想マシンに該当するノードは、ネットワークデバイスの識別情報と、そのネットワークデバイスの接続先のＭＡＣアドレスとの組を情報取得部３に返さない。従って、情報取得部３は、仮想マシンに該当するノードに関しては、インタフェースの識別情報と、そのインタフェースの接続先となっているネットワークトポロジ要素のインタフェースのＭＡＣアドレスとの組のリストを取得することはない。
【００４１】
すなわち、情報取得部３は、スイッチから、ポート毎に、ポートの接続先となっているノードまたはスイッチのインタフェースのＭＡＣアドレスを取得し、物理マシンに該当するノードから、ネットワークデバイス毎に、ネットワークデバイスの接続先となっている仮想マシンに該当するノードのネットワークデバイスのＭＡＣアドレスを取得することになる。
【００４２】
情報取得部３は、要素検出部２によって検出されたネットワークトポロジ要素毎に、ネットワークトポロジ要素から取得した情報を要素情報記憶部９に記憶させる。図５は、１つのネットワークトポロジ要素から取得した情報の例を示す模式図である。図５に示す１行目は、ネットワークトポロジ要素の種別である。図５に示す２行目は、ネットワークトポロジ要素自身のＩＰアドレスである。図５に示す３行目は、ネットワークトポロジ要素が有するインタフェースの識別情報とそのインタフェースに割り当てられたＭＡＣアドレスの組のリストである。図５に示す４行目以降は、ネットワークトポロジ要素が有するインタフェースの識別情報と、そのインタフェースの接続先のＭＡＣアドレスの組のリストである。図５に示す情報の具体例を図６および図７に示す。
【００４３】
図６は、スイッチから取得した情報の例を示す。図６に示す１行目は、ネットワークトポロジ要素の種別がスイッチであることを表している。また、２行目は、そのスイッチのＩＰアドレスが“192.168.0.1”であることを表している。また、図６に示す３行目では、例えば、スイッチにおいて、“GigabitEather0/0/1”というポートの識別情報と、そのポート自身のＭＡＣアドレス“100000000001”を示している。また、他のポートに関しても、ポートの識別情報とポート自身のＭＡＣアドレスとの組を同様の形式で示している。さらに、図６に示す４行目以降では、例えば、“GigabitEather0/0/1”というポートの識別情報と、そのポートの接続先のＭＡＣアドレス“200000000001”との組を示している。ポートの識別情報とそのポートの接続先のＭＡＣアドレスの別の組に関しても、同様の形式で示している。
【００４４】
図７は、ノードから取得した情報の例を示す。図７に示す１行目は、ネットワークトポロジ要素の種別がノードであることを表している。また、２行目は、そのノードのＩＰアドレスが“192.168.0.2”であることを表している。また、図７に示す３行目では、例えば、ノードにおいて、“eth0”というネットワークデバイスの識別情報と、そのネットワークデバイス自身のＭＡＣアドレス“200000000001”を示している。また、他のネットワークデバイスに関しても、ネットワークデバイスの識別情報とネットワークデバイス自身のＭＡＣアドレスとの組を同様の形式で示している。さらに、図７に示す４行目では、例えば、“vnet0”というネットワークデバイスの識別情報と、そのネットワークデバイスの接続先のＭＡＣアドレス“300000000001”との組を示している。このような組が他にもある場合、４行目と同様の形式で示せばよい。物理マシンに該当するノードから取得した情報において、図７に示す４行目以降に相当する情報は、物理マシンのネットワークデバイスの接続先となる、仮想マシンに該当するノードのネットワークデバイスのＭＡＣアドレスを示す。
【００４５】
また、仮想マシンに該当するノードから取得した情報に関しては、図７に示す４行目以降に相当する情報が含まれない。これは、前述のように、仮想マシンに該当するノードが、ネットワークデバイスの識別情報と、そのネットワークデバイスの接続先のＭＡＣアドレスとの組のリストを情報取得部３に返さないためである。
【００４６】
情報取得部３は、ネットワークトポロジ要素から取得した情報（図６、図７に例示する情報）をそれぞれ要素情報記憶部９に記憶させる。
【００４７】
ネットワークトポロジ生成部４は、検出されたネットワークトポロジ要素毎に要素情報記憶部９に記憶された情報（図６、図７に例示する情報）を参照し、ネットワークトポロジ要素間のリンクを作成することによって、ネットワークトポロジを生成する。ネットワークトポロジの生成動作については、後述する。
【００４８】
スイッチは、物理マシンを介して仮想マシンと通信を行うことができる。そのため、物理マシン上で仮想マシンが起動している場合、スイッチのポートの接続先として、その物理マシンのネットワークデバイスのＭＡＣアドレスと、仮想マシンのネットワークデバイスのＭＡＣアドレスとが存在することになる。この場合、ネットワークトポロジ生成部４によって生成されたネットワークトポロジでは、スイッチの１つのポートに、物理マシンに該当するノードと、仮想マシンに該当するノードの双方が接続されているように表される。
【００４９】
ネットワークトポロジ補正部５は、ネットワークトポロジにおいて、スイッチの１つのポートに、物理マシンに該当するノードと、仮想マシンに該当するノードの双方が接続されているように表されている場合、スイッチと、仮想マシンに該当するノードとの間のリンクを削除することによって、ネットワークトポロジを補正する。この結果、ネットワークトポロジにおいて、物理マシンはスイッチとの間にリンクを有するが、仮想マシンはスイッチとの間にリンクを有さない。従って、スイッチとの間にリンクが存在しているか否かによって、物理マシンに該当するノードと、仮想マシンに該当するノードとを区別したネットワークトポロジが得られる。ネットワークトポロジ補正部５によるリンク削除動作については後述する。
【００５０】
サービス情報記憶部１０は、サービス提供者と、サービスと、クラスタと、仮想マシンを識別するためのアドレス（ＩＰアドレス）との対応関係を記憶する。図８は、サービス情報記憶部１０が記憶する情報の例を模式的に示す説明図である。
【００５１】
図８に示すように、サービス提供者と、そのサービス提供者が提供するサービスとが対応付けられる。例えば、図８では、サービス提供者１がサービス１１，１２を提供していることを表している。
【００５２】
また、サービス毎に、そのサービスで用いるクラスタが対応付けられる。クラスタとは、サービスに含まれる機能の集合である。クラスタの例として、例えば、Ｗｅｂ層機能、アプリケーション層機能、ＤＢ層機能の集合（Ｗｅｂ三層）等が挙げられる。図８では、例えば、サービス１１にクラスタ１１〜１３が対応付けられている。
【００５３】
また、クラスタ毎に、クラスタで用いる各仮想マシンの識別情報となるアドレス（本例では、ＩＰアドレス）の集合が対応付けられる。図８では、例えば、クラスタ１１に、アドレス１１，アドレス１２，・・・が対応付けられている。
【００５４】
なお、サービス情報記憶部１０は、少なくとも、サービスと、そのサービスの提供に用いる仮想マシンの識別情報（ＩＰアドレス）との対応関係を示す情報を記憶していればよい。
【００５５】
サービス情報追加部６は、サービス情報記憶部１０に記憶された情報（例えば、図８に例示する情報）を参照して、ネットワークトポロジ内の仮想マシンに該当するノードに対して、その仮想マシンに対応するサービスの情報を追加する処理を行う。サービス情報追加部６は、サービスを識別するアイコンを作成し、仮想マシンに該当するノードにそのアイコンを関連づけてもよい。
【００５６】
サービス情報追加部６は、サービスの情報だけでなく、クラスタや、サービス提供者の情報も合わせて追加してよい。例えば、サービス情報追加部６は、クラスタを識別するアイコンを作成し、仮想マシンに該当するノードにそのアイコンを関連づけてもよい。そして、クラスタを表すアイコンに、対応するサービスのアイコンを関連付けてもよい。さらに、サービス提供を識別するアイコンを作成し、サービスを表すアイコンに、対応するサービス提供者のアイコンを関連付けてもよい。
【００５７】
サービス情報追加部６によって情報が追加されたネットワークトポロジの例を図９に示す。図９に示す部分Ａは、ネットワークトポロジ補正部５までの処理によって得られたネットワークポトロジを表している。図９に示す部分Ｂは、サービス情報追加部６によって追加された情報を表している。
【００５８】
出力部１１は、例えば、ディスプレイ装置であり、サービス情報追加部６によってサービス等の情報が追加されたネットワークトポロジ（図９に例示するネットワークトポロジ）を表示する。
【００５９】
要素検出部２、情報取得部３，ネットワークトポロジ生成部４、ネットワークトポロジ補正部５、サービス情報追加部６は、例えば、ネットワークトポロジ生成プログラムに従って動作するコンピュータのＣＰＵによって実現される。この場合、ＣＰＵが、例えば、コンピュータ読み取り可能な記録媒体からネットワークトポロジ生成プログラムを読み込み、そのプログラムに従って、要素検出部２、情報取得部３，ネットワークトポロジ生成部４、ネットワークトポロジ補正部５およびサービス情報追加部６として動作すればよい。また、要素検出部２、情報取得部３，ネットワークトポロジ生成部４、ネットワークトポロジ補正部５およびサービス情報追加部６がそれぞれ別々のハードウェアで実現されていてもよい。
【００６０】
また、認証情報記憶部７、接続情報記憶部８、要素情報記憶部９およびサービス情報記憶部１０は、例えば記憶装置によって実現される。あるいは、各記憶部７〜１０が、データベースサーバ等によって実現されてもよい。
【００６１】
次に、動作について説明する。図１０は、本発明の処理経過の例を示すフローチャートである。
【００６２】
要素検出部２は、アクセス可能なネットワークトポロジ要素（スイッチ、ノード）を検出する（ステップＳ１）。ステップＳ１において、要素検出部２は、検出したネットワークトポロジ要素のＩＰアドレスに対して、アクセス時に用いるプロトコル、ユーザ名、パスワードを対応付ける。ステップＳ１の動作（要素検出部２の動作）については、既に説明したので、ここでは説明を省略する。ステップＳ１の結果、ＩＰアドレスに対応づけられたプロトコル、ユーザ名、パスワードを用いて、そのＩＰアドレスのネットワークトポロジ要素にログインし、そのネットワークトポロジ要素の情報を取得することが可能となる。
【００６３】
次に、情報取得部３は、ステップＳ１で検出された各ネットワークトポロジ要素にログインし、そのネットワークトポロジ要素から情報を取得する（ステップＳ２）。
【００６４】
具体的には、情報取得部３は、ログインしたネットワークトポロジ要素がノードであるかスイッチであるかの種別の情報を取得する。
【００６５】
さらに、情報取得部３は、ログインしたネットワークトポロジ要素に対して、そのネットワークトポロジ要素が有するインタフェースの識別情報とそのインタフェースに割り当てられたＭＡＣアドレスの組のリストを要求し、そのリストを取得する。
【００６６】
さらに、情報取得部３は、ログインしたネットワークトポロジ要素に対して、そのネットワークトポロジ要素が有するインタフェース毎に、インタフェースの識別情報と、そのインタフェースの接続先となっているネットワークトポロジ要素のインタフェースのＭＡＣアドレスのリストを要求し、そのリストを取得する。
【００６７】
ネットワークトポロジ要素がスイッチである場合、スイッチのインタフェース（ポート）の識別情報と、そのポートの接続先となっているノードまたはスイッチのインタフェースのＭＡＣアドレスの組のリストが得られる。
【００６８】
また、ネットワークトポロジ要素が物理マシンに該当するノードである場合、そのノードのインタフェース（ネットワークデバイス）の識別情報と、そのネットワークデバイスの接続先となっている仮想マシンに該当するノードのインタフェースのＭＡＣアドレスの組のリストが得られる。
【００６９】
また、ネットワークトポロジ要素が仮想マシンに該当するノードである場合、そのノードに関しては、インタフェースの識別情報とその接続先のＭＡＣアドレスの組のリストは得られない。
【００７０】
以下、１つのネットワークから取得した情報のまとまりを、要素情報と記す。
【００７１】
情報取得部３は、ネットワークトポロジ要素毎に要素情報を要素情報記憶部９に記憶させる。本実施形態では、情報取得部３が、図５（より具体的には図６や図７）に例示した形式で、要素情報を記憶させる場合を例にして説明する。また、図５ないし図７に示す例において、４行目以降に示す情報（ネットワークトポロジ要素のインタフェースの識別情報と、その接続先のＭＡＣアドレスの組のリスト）を、以下、連係情報と記す。ただし、仮想マシンに該当するノードの要素情報には、連係情報は含まれない。また、図６や図７は例示であり、情報取得部３は、要素情報を他の形式で要素情報記憶部９に記憶させてもよい。
【００７２】
ステップＳ２の後、ネットワークトポロジ生成部４は、ステップＳ２で取得された情報に基づいて、ネットワークトポロジ要素間のリンクを作成することによって、ネットワークトポロジを生成する（ステップＳ３）。
【００７３】
図１１および図１２は、ステップＳ３の処理経過の例を示すフローチャートである。ステップＳ３において、ネットワークトポロジ生成部４は、種別がスイッチである要素情報を選択する（ステップＳ１１）。この要素情報に対応するスイッチは、ステップＳ１４で作成されるリンクの一端となる。
【００７４】
次に、ネットワークトポロジ生成部４は、その要素情報（スイッチの要素情報）から、未だ選択されていないポートの識別情報を選択する（ステップＳ１２）。例えば、図６に例示する要素情報を選択している場合、３行目のポートの識別情報のうち、未選択の識別情報を選択する。
【００７５】
続いて、ネットワークトポロジ生成部４は、ステップＳ１２で選択したポートの識別情報と組になるＭＡＣアドレスを、選択している要素情報内の連係情報から全て抽出する（ステップＳ１３）。例えば、図６に例示する要素情報を選択しているとし、ステップＳ１２でポートの識別情報“GigabitEather0/0/1”を選択したとする。この場合、要素情報内の連係情報（ここでは、図６の４行目以降）から、“GigabitEather0/0/1”と組になるＭＡＣアドレス“200000000001”，“200000000002”，“200000000003”を抽出する。
【００７６】
続いて、ネットワークトポロジ生成部４は、ステップＳ１３で抽出したＭＡＣアドレスが割り当てられたインタフェースを持つネットワークトポロジ要素（ノードまたはスイッチ）の要素情報を全て特定し、ステップＳ１２で選択した識別情報が示すポートと、ステップＳ１３で抽出したＭＡＣアドレスが割り当てられたインタフェースとの間にリンクを作成する（ステップＳ１４）。上記の例では、ＭＡＣアドレスとして“200000000001”が割り当てられたインタフェースを持つネットワークトポロジ要素の要素情報（例えば、図７に例示する要素情報）を特定し、ステップＳ１２で選択した“GigabitEather0/0/1”が示すポートと、図７に示す要素情報が表すノードのインタフェースのうち、“200000000001”が割り当てられたインタフェースとの間にリンクを作成する。ステップＳ１３で抽出した他のＭＡＣアドレスに関しても同様の処理を行う。ステップＳ１３で抽出したＭＡＣアドレスが割り当てられたインタフェースを持つネットワークトポロジ要素を特定することで、リンクの一端となるネットワークトポロジ要素が定まる。
【００７７】
ネットワークトポロジ生成部４は、ステップＳ１４で作成するリンクに関しては、リンクの方向を定めなくてよい。
【００７８】
図１３は、ステップＳ１４の結果得られたリンクの例を示す説明図である。なお、図１３では、ネットワークトポロジ要素の名称を便宜的に、“switch01”，“ND01”，“ND02”，“ND03”と示しているが、ネットワークトポロジ要素はＩＰアドレスで識別される。
【００７９】
図１３に示す例では、“switch01”の“Port1”と、“ND01”の“Dev1 ”との間にリンク１が作成され、“switch01”の“Port1”と、“ND02”の“Dev2 ”との間にリンク７１が作成され、“switch01”の“Port1”と、“ND03”の“Dev2 ”との間にリンク７２が作成されている。なお、ノードの要素情報自体から、そのノードが仮想マシンか物理マシンかを判定できないため、“ND01”，“ND02”，“ND03”がそれぞれ仮想マシンか物理マシンかについてはこの時点では判定できない。
【００８０】
ステップＳ１４の後、ネットワークトポロジ生成部４は、ステップＳ１１で選択したスイッチの要素情報内に、未選択のポートの識別情報があるか否かを判定する（ステップＳ１５）。未選択のポートの識別情報があれば（ステップＳ１５におけるＹｅｓ）、ネットワークトポロジ生成部４は、ステップＳ１２以降の処理を繰り返す。ステップＳ１２〜Ｓ１５のループ処理を繰り返すことによって、スイッチの各ポートについてリンクが作成される。例えば、図１３に示す例において、“switch01”の“Port2 ”, “Port3 ”に関しても、“Port1 ”と同様にリンクが作成されていく。
【００８１】
また、未選択のポートの識別情報がなくなった場合（ステップＳ１５におけるＮｏ）、ネットワークトポロジ生成部４は、未選択のスイッチの要素情報があるか否かを判定する（ステップＳ１６）。未選択のスイッチの要素情報があれば（ステップＳ１６におけるＹｅｓ）、ネットワークトポロジ生成部４は、ステップＳ１１以降の処理を繰り返す。未選択のスイッチの要素情報がなくなった場合（ステップＳ１６におけるＮｏ）、ステップＳ１７に移行する。この時点で、スイッチの各ポートと、他のノードのインタフェースとの間のリンクは全て作成されていることになる。このリンクには、方向が定められていなくてよい。
【００８２】
ステップＳ１７では、ネットワークトポロジ生成部４は、種別がノードである要素情報を選択する（ステップＳ１７）。この要素情報に対応するノードは、ステップＳ２０で作成されるリンクの一端となる。
【００８３】
次に、ネットワークトポロジ生成部４は、その要素情報（ノードの要素情報）から、未だ選択されていないネットワークデバイスの識別情報を選択する（ステップＳ１８）。例えば、図７に例示する要素情報を選択している場合、３行目のネットワークデバイスの識別情報のうち、未選択の識別情報を選択する。
【００８４】
続いて、ネットワークトポロジ生成部４は、ステップＳ１８で選択したネットワークデバイスの識別情報と組になるＭＡＣアドレスを、選択している要素情報内の連係情報から全て抽出する（ステップＳ１９）。例えば、図７に例示する要素情報を選択しているとし、ステップＳ１８でネットワークデバイスの識別情報“vnet0 ” を選択したとする。この場合、要素情報内の連係情報（ここでは、図７の４行目以降）から、“vnet0 ”と組になるＭＡＣアドレス“300000000001”を抽出する。
【００８５】
続いて、ネットワークトポロジ生成部４は、ステップＳ１９で抽出したＭＡＣアドレスが割り当てられたインタフェースを持つノードの要素情報を特定し、ステップＳ１８で選択した識別情報が示すネットワークデバイスと、ステップＳ１９で抽出したＭＡＣアドレスが割り当てられたインタフェースとの間にリンクを作成する（ステップＳ２０）。上記の例では、ＭＡＣアドレスとして“300000000001”が割り当てられたインタフェースを持つノードの要素情報を特定し、ステップＳ１８で選択した“vnet0 ”が示すネットワークデバイスと、そのノードのインタフェースのうち、“300000000001”が割り当てられたインタフェースとの間にリンクを作成する。ステップＳ１９で抽出した他のＭＡＣアドレスに関しても同様の処理を行う。ステップＳ１９で抽出したＭＡＣアドレスが割り当てられたインタフェースを持つノードを特定することで、リンクの一端となるノードが定まる。
【００８６】
ネットワークトポロジ生成部４は、ステップＳ２０で作成するリンクに関しては、リンクの方向を定める。具体的には、ネットワークトポロジ生成部４は、ステップＳ１９で抽出したＭＡＣアドレスが割り当てられたインタフェースを持つノードを、リンクの終点とする。従って、ネットワークトポロジ生成部４は、ステップＳ１７で選択した要素情報に対応するノードを、リンクの始点とする。
【００８７】
なお、ステップＳ１７で選択した要素情報に連係情報が存在しない場合、ネットワークトポロジ生成部４は、ステップＳ１９，Ｓ２０の処理を行わない。そして、仮想マシンに該当するノードには、連係情報は含まれない。従って、ステップＳ２０において、仮想マシンに該当するノードを始点とするリンクが作成されることはない。そして、ステップＳ２０では、物理マシンに該当するノードを始点とするリンクが作成される。
【００８８】
ステップＳ２０の後、ネットワークトポロジ生成部４は、ステップＳ１７で選択したノードの要素情報内に、未選択のネットワークデバイスの識別情報があるか否かを判定する（ステップＳ２１）。未選択のネットワークデバイスの識別情報があれば（ステップＳ２１におけるＹｅｓ）、ネットワークトポロジ生成部４は、ステップＳ１８以降の処理を繰り返す。未選択のネットワークデバイスの識別情報がなくなった場合（ステップＳ２１におけるＮｏ）、ネットワークトポロジ生成部４は、未選択のノードの要素情報があるか否かを判定する（ステップＳ２２）。未選択のノードの要素情報があれば（ステップＳ２２におけるＹｅｓ）、ネットワークトポロジ生成部４は、ステップＳ１７以降の処理を繰り返す。未選択のノードの要素情報がなくなった場合（ステップＳ２２におけるＮｏ）、ステップＳ３の処理を終了する。
【００８９】
ステップＳ１７〜Ｓ２２のループ処理を繰り返すことによって、物理マシンに該当するノードを始点とするノード間のリンクが作成される。図１４は、図１３に示す状態の後、ステップＳ１８〜Ｓ２１のループ処理により追加されたノード間のリンクの例を示している。図１４に示す例では、“ND01”の“Dev2 ”と“ND02”の“Dev1 ”との間にリンク４が作成され、“ND01”の“Dev3 ”と“ND03”の“Dev1 ”との間にリンク５が作成されている。図１４に示すリンク４，５は、それぞれ“ND01”を始点とするリンクである。
【００９０】
ステップＳ３の後、ネットワークトポロジ補正部５は、ネットワークトポロジにおいて、スイッチの１つのポートに、物理マシンに該当するノードと、仮想マシンに該当するノードの双方が接続されているように表されている場合、スイッチと、仮想マシンに該当するノードとの間のリンクを削除することによって、ネットワークトポロジを補正する（ステップＳ４、図１０参照。）。
【００９１】
図１５および図１６は、ステップＳ４の処理経過の例を示すフローチャートである。ステップＳ４において、ネットワークトポロジ補正部５は、ステップＳ３で生成されたネットワークトポロジに含まれるスイッチのうち、後述のステップＳ３２で未だ選択されていないスイッチがあるか否かを判定する（ステップＳ３１）。
【００９２】
未選択のスイッチがある場合（ステップＳ３１のＹｅｓ）、ネットワークトポロジ補正部５は、未選択のスイッチを選択する（ステップＳ３２）。ステップＳ３２で選択したスイッチをＳとする。
【００９３】
次に、ネットワークトポロジ補正部５は、スイッチＳと他のネットワークトポロジ要素とのリンクのうち、ステップＳ３４で未だ選択されていないリンクがあるか否かを判定する（ステップＳ３３）。未選択のリンクがなければ（ステップＳ３３のＮｏ）、ステップＳ３１以降の処理を繰り返す。
【００９４】
未選択のリンクがあれば（ステップＳ３３のＹｅｓ）、ネットワークトポロジ補正部５は、スイッチＳと他のネットワークトポロジ要素とのリンクのうち未選択のリンクを選択し、さらにそのリンク先のネットワークトポロジ要素を選択する（ステップＳ３４）。ステップＳ３４で選択したネットワークトポロジ要素をＸとする。スイッチと他のネットワークトポロジ要素との間のリンクには方向が定められていなくてよいので、ステップＳ３３，Ｓ３４において、リンクの方向は考慮しなくてよい。
【００９５】
次に、ネットワークトポロジ補正部５は、ネットワークトポロジ要素Ｘの種別を判定する（ステップＳ３５）。ネットワークトポロジ要素Ｘの種別がスイッチである場合、ステップＳ３３以降の処理を繰り返す。
【００９６】
ネットワークトポロジ要素Ｘの種別がノードである場合、ネットワークトポロジ補正部５は、ネットワークトポロジ要素Ｘ（ここではノードＸ）とスイッチＳとの間のリンク以外のリンクであって、ノードＸを始点とし他のネットワークトポロジ要素を終点とするリンクの中から、ステップＳ３７で未だ選択されていないリンクがあるか否かを判定する（ステップＳ３６）。未選択のリンクがなければ（ステップＳ３６のＮｏ）、ステップＳ３３以降の処理を繰り返す。
【００９７】
未選択のリンクがあれば（ステップＳ３６のＹｅｓ）、ネットワークトポロジ補正部５は、ノードＸとスイッチＳとの間のリンク以外のリンクであって、ノードＸを始点とし他のネットワークトポロジ要素を終点とするリンクの中から、未選択のリンクを選択する。そして、ネットワークトポロジ補正部５は、そのリンク先のネットワークトポロジ要素（すなわち、選択したリンクの終点）を選択する（ステップＳ３７）。ステップＳ３７で選択したネットワークトポロジ要素をＹとする。
【００９８】
次に、ネットワークトポロジ補正部５は、ネットワークトポロジ要素Ｙの種別を判定する（ステップＳ３８）。ネットワークトポロジ要素Ｙの種別がスイッチである場合、ステップＳ３６以降の処理を繰り返す。
【００９９】
ネットワークトポロジ要素Ｙの種別がノードである場合、ネットワークトポロジ補正部５は、ネットワークトポロジ要素Ｙ（ここではノードＹ）と他のネットワークトポロジ要素との間のリンクであって、ノードＹとノードＸとの間のリンク以外のリンクのうち、ステップＳ４０で未だ選択されていないリンクがあるか否かを判定する（ステップＳ３９）。未選択のリンクがなければ（ステップＳ３９のＮｏ）、ステップＳ３６以降の処理を繰り返す。
【０１００】
未選択のリンクがあれば（ステップＳ３９のＹｅｓ）、ネットワークトポロジ補正部５は、ノードＹと他のネットワークトポロジ要素との間のリンクであって、ノードＹとノードＸとの間のリンク以外のリンクの中から、未選択のリンクを選択する。そして、ネットワークトポロジ補正部５は、そのリンク先のネットワークトポロジ要素を選択する（ステップＳ４０）。ステップＳ４０で選択したネットワークトポロジ要素をＺとする。ステップＳ３９，Ｓ４０では、リンクの方向は考慮しなくてよい。
【０１０１】
次に、ネットワークトポロジ補正部５は、スイッチＳとネットワークトポロジ要素Ｚとが一致しているか否かを判定する（ステップＳ４１）。一致していなければ（ステップＳ４１のＮｏ）、ステップＳ３９以降の処理を繰り返す。
【０１０２】
スイッチＳとネットワークトポロジ要素Ｚとが一致していれば（ステップＳ４１のＹｅｓ）、ネットワークトポロジ補正部５は、ノードＹと、ネットワークトポロジ要素Ｚ（すなわちスイッチＳ）との間のリンクを削除する（ステップＳ４２）。ステップＳ４２の後、ステップＳ３９以降の処理を繰り返す。
【０１０３】
ネットワークトポロジ補正部５は、ステップＳ３１〜Ｓ４２の処理を繰り返し、ステップＳ３１で、未選択のスイッチがなくなったと判定した場合（ステップＳ３１のＮｏ）、ステップＳ４の処理を終了する。
【０１０４】
図１７は、上記のＳ，Ｘ，Ｙ，Ｚおよび削除されるリンクを示す説明図である。図１７に示すＳ，Ｘ，Ｙ，Ｚには、以下の関係がある。ノードＸ，Ｙには、いずれもスイッチＳとの間にリンクが作成されている。また、ノードＸ，Ｙの間には、ノードＸを始点とし、ノードＹを終点とするリンクが作成されている。ノードＹからのリンク先（ただし、Ｘ以外とする）がＺである。ステップＳ３１〜Ｓ４２（図１５および図１６参照）の処理では、ＺがスイッチＳと一致する場合に、スイッチＳとノードＹとの間のリンクを削除する処理を実現している。図１７に示す例においても、ＺはＳと一致しているため、Ｓ，Ｙ間のリンクは削除される。
【０１０５】
スイッチの同一ポートのリンク先として複数のノードが存在する場合、１つのノードが物理マシンに該当し、他のノードは仮想マシンに該当する。そして、物理マシンに該当するノードは、ノード間のリンクの始点となるが、仮想マシンに該当するノードは、ノード間のリンクの始点とはならず、終点となる。従って、図１７に示す関係が成立している場合、ノードＸは物理マシンに該当するノードであり、ノードＹは仮想マシンに該当するノードである。よって、ステップＳ４２の処理でリンクを削除するということは、スイッチと仮想マシンとの間のリンクを削除するということを意味する。従って、ステップＳ４（ステップＳ３１〜Ｓ４２）の処理を行うことによって、スイッチと仮想マシンとの間に作成された各リンクを削除することができる。
【０１０６】
図１４を例にして説明すると、“switch01”がスイッチＳおよびネットワークトポロジ要素Ｚに該当し、“ND01”がノードＸに該当する。そして、“ND02”，“ND03”はいずれもノードＹに該当する。従って、“switch01”と“ND02”との間のリンク７１と、“switch01”と“ND03”との間のリンク７２は、それぞれステップＳ４の処理で削除される。
【０１０７】
また、図１４では、“switch01”の“Port2 ”，“Port3 ”に関するリンクの図示を省略しているが、“Port2 ”，“Port3 ”についても、仮想マシンに該当するノードとの間のリンクは削除される。ステップＳ４後のネットワークトポロジの例を図１８に示す。図１８に示すネットワークトポロジでは、スイッチとの間にリンクを有しているノード“ND01”，“ND02”，“ND06”が物理マシンに該当するノードであり、スイッチとの間にリンクを有していないノード“ND02”，“ND03”，“ND05”，“ND07”が仮想マシンに該当するノードである。本発明のステップＳ４後のネットワークトポロジでは、物理マシンと仮想マシンとを区別して表すことができる。なお、図１８ではノード間のリンクの方向の図示を省略している。
【０１０８】
ステップＳ４の後、サービス情報追加部６は、サービス情報記憶部１０に記憶された情報（図１０に例示する情報）を用いて、ステップＳ４における補正後のネットワークトポロジ内の仮想マシンに該当するノードに、サービスの情報を対応付け、その結果を出力部１１に表示させる（ステップＳ５）。サービス情報記憶部１０は、サービス提供者と、サービスと、クラスタと、仮想マシンのＩＰアドレス（識別情報）との対応関係を記憶している。また、仮想マシンに該当するノードの要素情報にも、その仮想マシンに該当するノードの識別情報としてＩＰアドレスが含まれている。従って、例えば、あるＩＰアドレスを持つ仮想マシンに該当するノードに対して、そのＩＰアドレスに関連付けられているサービスのアイコンを対応付ければよい。
【０１０９】
また、既に説明したように、サービス情報追加部６は、クラスタを識別するアイコンを作成し、仮想マシンに該当するノードにそのアイコンを関連づけてもよい。そして、クラスタを表すアイコンに、対応するサービスのアイコンを関連付けてもよい。さらに、サービス提供を識別するアイコンを作成し、サービスを表すアイコンに、対応するサービス提供者のアイコンを関連付けてもよい。
【０１１０】
この結果、図９に例示するネットワークトポロジが得られる。サービス情報追加部６は、このように、ステップＳ５でサービス等の情報が追加されたネットワークトポロジを出力部１１に表示させる。なお、図９では、スイッチ、物理マシンおよび仮想マシンを簡略化して示しているが、図１８に例示するようにＭＡＣアドレス等の情報も含めたネットワークトポロジを表示してもよい。
【０１１１】
上記のように、本実施形態によれば、物理マシンと仮想マシンとを区別して表したネットワークトポロジを生成することができる。そして、このようなネットワークトポロジを利用することで、物理マシンに故障が発生した場合、どのサービスに影響があるかを把握しやすくすることができる。
【０１１２】
また、本実施形態では、ステップＳ５において、仮想マシンに該当するノードに、サービス情報記憶部１０で定められているサービスの情報を対応づける。従って、物理マシンに故障が発生した場合、どのサービスに影響があるかを一層把握しやすくすることができる。
【０１１３】
なお、上記の実施形態のステップＳ４で処理を終了してもよい。この場合、ネットワークトポロジ補正部５が、ステップＳ４の結果得られたネットワークトポロジを出力部１１に表示させればよい。この場合、サービスの情報が追加されていないネットワークトポロジが表示される。また、この場合、ネットワークトポロジ生成システム１は、サービス情報追加部６およびサービス情報記憶部１０を備えていなくてもよい。そして、ステップＳ５を省略してもよい。
【０１１４】
また、ネットワークトポロジ要素にアクセスするための情報（例えば、プロトコル、ユーザ名、パスワード）がネットワークトポロジ要素毎に既知である場合には、ステップＳ１の処理を省略してよい。この場合、ネットワークトポロジ生成システム１は、要素検出部２を備えていなくてよい。
【０１１５】
次に、本発明の最小構成の例を説明する。図１９は、本発明のネットワークトポロジ生成システムの最小構成の例を示すブロック図である。本発明のネットワークトポロジ生成システムは、情報取得部３と、ネットワークトポロジ生成部４と、ネットワークトポロジ補正部５とを備える。
【０１１６】
情報取得部３は、物理マシンまたは仮想マシンであるノード、およびスイッチから、ノードであるかスイッチであるかの種別と、当該ノードまたはスイッチのインタフェースの識別情報と、当該インタフェース自身に割り当てられたアドレスとを取得するとともに、スイッチから、当該スイッチのインタフェース毎に、インタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを取得し、物理マシンに該当するノードから、当該ノードのインタフェース毎に、インタフェースの接続先となっている仮想マシンに該当するノードのインタフェースのアドレスを取得する。
【０１１７】
ネットワークトポロジ生成部４は、スイッチのインタフェースの接続先となっているノードまたはスイッチのインタフェースのアドレスを参照して、スイッチと他のノードまたはスイッチとのリンクを作成し、ノードのインタフェースの接続先となっているノードのインタフェースのアドレスを参照して、ノード間のリンクであって、接続先となっているノードを終点とするリンクを作成することによって、ノードおよびスイッチを要素として含むネットワークトポロジを生成する。
【０１１８】
ネットワークトポロジ補正部５は、スイッチのインタフェースの接続先となるネットワークトポロジの要素である第１のネットワークトポロジ要素（例えば、Ｘ）を特定し、当該第１のネットワークトポロジ要素を始点とするリンクに基づいて当該第１のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第２のネットワークトポロジ要素（例えば、Ｙ）を特定し、さらに、当該第２のネットワークトポロジ要素のインタフェースの接続先となるネットワークトポロジの要素である第３のネットワークトポロジ要素（例えば、Ｚ）を特定し、当該第３のネットワークトポロジ要素とスイッチとが一致することを条件に第３のネットワークトポロジ要素とスイッチとの間のリンクを削除することによって、スイッチと、仮想マシンに該当するノードとのリンクを削除する。
【０１１９】
そのような構成によって、スイッチとノードとのリンクおよびノード間のリンクを作成した上で、仮想マシンに該当するノードとスイッチとの間のリンクを削除する。従って、ネットワークトポロジにおいて、スイッチとの間にリンクを有する物理マシンに該当するノードと、スイッチとの間にリンクを有さない仮想マシンに該当するノードとを区別することができる。
【０１２０】
また、仮想マシンとサービスとの対応関係を示す情報に基づいて、ネットワークトポロジ内の仮想マシンに該当するノードに、当該仮想マシンに対応するサービスを対応付けるサービス情報追加部を備えていてもよい。
【０１２１】
また、ネットワークトポロジ補正部５によってリンクが削除された後のネットワークトポロジを表示する出力部を備えていてもよい。
【産業上の利用可能性】
【０１２２】
本発明は、スイッチ、物理マシンおよび仮想マシンを含むネットワークトポロジの生成に好適に適用される。
【符号の説明】
【０１２３】
１  ネットワークトポロジ生成システム
２  要素検出部
３  情報取得部
４  ネットワークトポロジ生成部
５  ネットワークトポロジ補正部
６  サービス情報追加部
７  認証情報記憶部
８  接続情報記憶部
９  要素情報記憶部
１０  サービス情報記憶部
１１  出力部
【図１】
2014045437.tif 000003
【図２】
2014045437.tif 000004
【図３】
2014045437.tif 000005
【図４】
2014045437.tif 000006
【図５】
2014045437.tif 000007
【図６】
2014045437.tif 000008
【図７】
2014045437.tif 000009
【図８】
2014045437.tif 000010
【図９】
2014045437.tif 000011
【図１０】
2014045437.tif 000012
【図１１】
2014045437.tif 000013
【図１２】
2014045437.tif 000014
【図１３】
2014045437.tif 000015
【図１４】
2014045437.tif 000016
【図１５】
2014045437.tif 000017
【図１６】
2014045437.tif 000018
【図１７】
2014045437.tif 000019
【図１８】
2014045437.tif 000020
【図１９】
2014045437.tif 000021