(57)【特許請求の範囲】
【請求項１】
物理ネットワークで接続され、複数の物理機器で構築された仮想ネットワークを管理する管理サーバとして、前記物理ネットワークに接続されたコンピュータを機能させる管理サーバプログラムであって、
前記管理サーバは、
前記仮想ネットワークとして、仮想ＬＡＮ技術を含む複数種類の仮想化技術によって定義された、仮想ＬＡＮを含む複数種類の仮想リソースが接続されて構成される仮想ネットワークの定義情報を受け取り、
前記仮想ＬＡＮを含む複数種類の仮想リソースのノードを、前記物理機器に設定された機器設定情報から特定し、前記仮想リソースのノードを定義した機器設定情報とノードタイプを格納するノードパターン管理テーブルと、
前記複数の仮想リソースのノードと、ノードを接続するためのエッジが接続可能かどうかを示すエッジの接続ノードタイプを示す情報を格納するエッジパターン管理テーブルと、を保持し、
前記ノードパターン管理テーブルと前記エッジパターン管理テーブルとを参照し、
ノードパターン管理テーブルのノードタイプとエッジパターン管理テーブルの接続ノードタイプに基づきエッジでノードを接続可能かどうか判定し、
接続可能なノードとエッジを用いて前記仮想ネットワークの論理トポロジ情報を生成することを特徴とする管理サーバプログラム。
【請求項２】
請求項１に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記管理サーバプログラムが機能させる前記管理サーバにおいて、
前記物理機器として、物理サーバ機器と物理ネットワーク機器のいずれか一方または両方を対象とし、
前記仮想化技術は、前記仮想ＬＡＮ技術に加え、仮想インタフェース技術、仮想ルータ技術、仮想サーバ技術のいずれか一つ以上を含み、
対象とする前記仮想ネットワークにおいて、前記仮想リソースは、前記仮想サーバ技術によって前記物理サーバ機器内で論理的に生成しネットワーク機能を付与することで実現されるか、もしくは、前記物理ネットワーク機器内で論理的に生成されるものを含むことを特徴とする管理サーバプログラム。
【請求項３】
請求項２に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
対象とする前記仮想ネットワークの
前記仮想インタフェース技術、前記仮想ルータ技術、前記仮想サーバ技術のいずれかによって生成される仮想リソースのノードの情報は、さらに、仮想リソースのノードを保有する物理機器の識別子を含むことを特徴とする管理サーバプログラム。
【請求項４】
請求項１から３のいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記論理トポロジ情報として、前記ノードと前記エッジとを用いたグラフを生成し、
前記グラフを表示させることを特徴とする管理サーバプログラム。
【請求項５】
請求項３から４のいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記仮想リソースのノード間の関係の種類をエッジタイプとし、
前記エッジタイプは、仮想ＬＡＮと仮想インタフェース間の関係、仮想インタフェースと仮想ルータ間の関係、仮想ルータ間の関係、のいずれかを表すことを特徴とする管理サーバプログラム。
【請求項６】
請求項１から５のいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて
前記物理ネットワークは、物理ＬＡＮ、物理インタフェース、物理ルータのいずれか一つ以上の種類の物理リソースを含み、
一つの前記物理リソースを、前記仮想リソースにおいて該当する前記ノードタイプの一つのノードとして管理することを特徴とする管理サーバプログラム。
【請求項７】
請求項１から６のいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
対象とする前記仮想ネットワークにおいて、
前記設定パターンは、さらに、仮想ネットワークインタフェース技術により生成される仮想リソースのノードの情報と、生成される仮想リソースのノードに設定されるIPアドレスの対応関係を保持し、
前記仮想リソースの種類における当該仮想リソースのノードを識別する識別子は、ノードタイプが仮想インタフェースの場合は、抽出されたパラメータのうちIPアドレスを含み、
前記管理サーバは、前記設定パターンに基づいて、抽出済みの仮想インタフェースを表す仮想リソースのノードに設定されるIPアドレス情報を抽出し管理することを特徴とする管理サーバプログラム。
【請求項８】
請求項１から７のいずれか一に記載の管理サーバプログラムが機能させる前記管理サーバにおいて、
前記物理機器に設定された機器設定情報を、当該物理機器から取得することを特徴とする管理サーバプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される主題は仮想ネットワーク、構成管理サーバ及び構成管理方法に、関する。
【背景技術】
【０００２】
近年、コンピュータネットワーキングの技術分野において、複数の仮想化技術を組み合わせて使用することで、様々な構成をとれる複雑な仮想ネットワークを構築できるようになった。
【０００３】
仮想化技術は、Ｌ２（Ｌａｙｅｒ  ２）レイヤのものやＬ３（Ｌａｙｅｒ  ３）レイヤのものを含む。Ｌ２レイヤの仮想化技術は、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）のような仮想ＬＡＮ(Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ)技術、ＶＬＡＮインタフェースやサブインタフェースのような仮想インタフェース技術を含む。また、Ｌ３レイヤの仮想化技術は、ＶＲＦ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｉｎｇ  ａｎｄ  Ｆｏｒｗａｒｄｉｎｇ）やＶＲ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒ）のような仮想ルータ技術を含む。
【０００４】
仮想ＬＡＮ技術や仮想インタフェース技術を用いることで、例えば、オフィスネットワークにおいて、物理的な制約に縛られずに、仮想ネットワークの構築と構成変更が容易にできるようになった。また、前記技術に加えて仮想ルータ技術も組み合わせることで、例えば、データセンタネットワークやキャリアネットワークにおいては、様々なネットワーク構成を持つ顧客ネットワークを仮想化し、単一の物理ネットワークの上に集約できるようになった。
【０００５】
しかしながら、仮想ネットワークが複雑な構成をとれるようになった結果、仮想ネットワークの論理構成（論理トポロジ）を把握することが困難になっている。ネットワークを構成する物理機器はそれぞれ、各々の物理機器の中にあたかも複数の仮想機器が存在するように機能し、また、仮想機器同士が仮想的なリンクによって自由に接続されるようになった。その結果、目視できる物理的な結線状態を見るだけでは、仮想ネットワークの論理トポロジを把握できなくなっている。これに対して、機器への設定情報（すなわち、コンフィグ）を調べることにより仮想ネットワークの論理トポロジを把握しようとしても、複雑な仮想ネットワークでは膨大な項目の設定情報が機器群に設定されており、仮想ネットワークの全体的な論理トポロジを把握するのが困難になっている。
【０００６】
従来より仮想ネットワークの論理トポロジ把握において採られてきた方法とその問題は次のとおりである。ひとつ目は、仮想ネットワークの論理トポロジを管理台帳に記載し保持する方法である。この手法における問題は、台帳変更を介さない臨時的な設定変更などが重なると、台帳に記載されている情報と、機器に実際に設定されている内容が、必ずしも一致しなくなる点である。ふたつ目の方法は、前述の問題点に対して採られる方法であり、機器の設定情報を手作業で解釈し、論理トポロジ図を描く方法である。しかしながら、複雑な仮想ネットワークでは、先にも説明したように膨大な項目が機器に設定されるため、この方法は、ヒューマンエラーを起こす恐れがあり、また、多大な時間を要するため非現実的である。
【０００７】
従来の方法が抱える問題を解決するためには、機器の設定情報（コンフィグ）を自動的に解析し、仮想ネットワークの論理トポロジ情報を自動生成することが課題となる。機器のコンフィグを解析することができれば、仮想ネットワークの論理トポロジを把握でき、この解析を自動化することで、ヒューマンエラーを削減しつつ作業時間をも削減できる。
【０００８】
この課題に対して、仮想ネットワークにおける論理トポロジ情報を自動生成する従来技術が、ある。
【０００９】
特許文献１では、Ｌ３の仮想化技術である仮想ルータ間の情報交換の関係を自動的に生成する。この技術は、ＭＰＬＳ（Ｍｕｌｔｉ  Ｐｒｏｔｏｃｏｌ  Ｌａｂｅｌ  Ｓｗｉｔｃｈｉｎｇ）ネットワークのＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）サービスにおいて用いられる。この技術を用いると、ＭＰＬＳルータのＶＲＦの設定情報を基に、複数の顧客サイトそれぞれの仮想ルータ間の経路交換関係を把握できる。
【００１０】
特許文献２では、Ｌ２の仮想化技術であるＶＬＡＮのトポロジ情報を自動生成する。この技術は、スイッチやルータからなるネットワーク環境において機器に設定されているコンフィグ情報から、ＶＬＡＮインタフェースに関する設定情報を用いて、複数のＶＬＡＮから構成される論理トポロジの情報を生成する（段落００４７〜００５６、図６、７）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許第７，５９３，３５２号明細書
【特許文献２】特開２００９−１９４６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
これら従来技術の問題は、複数の仮想化技術を用いたネットワーク環境において、仮想ネットワークの論理トポロジ情報を生成できないことである。
【００１３】
特許文献１が開示する技術は、対象機器がＶＰＮを実現するためのルータのみであり、仮想ルータのトポロジ情報を生成できるものの、仮想ＬＡＮに関するトポロジ情報を生成できない。オフィスネットワークやデータセンタネットワークでは、仮想ＬＡＮは一般的に利用される技術であるが、本技術ではその論理トポロジを把握できない点が問題である。
【００１４】
特許文献２が開示する技術は、対象機器がＶＬＡＮを実現するスイッチあるいはルータのみであり、仮想ルータ技術を用いた環境では、仮想ネットワークの論理トポロジを正しく把握できない点が問題である。また、論理トポロジを生成するために生成プログラム内部で持つべき情報が開示されていない。
【００１５】
したがって、特許文献１および特許文献２では、仮想ＬＡＮ、仮想インタフェース、仮想ルータ技術などを組み合わせて構成される複雑な仮想ネットワーク環境において、その論理トポロジ情報を生成できないという問題がある。複数の仮想化技術を用いる仮想ネットワークは、単一の仮想化技術を用いる場合に比べて、管理すべき情報や対応付けるべき情報が複雑であり、前記の問題点は、従来技術の単純な拡張では容易には解決できない。
【課題を解決するための手段】
【００１６】
本明細書で開示されるのは、複数の仮想化技術を用いて構築される仮想ネットワークの論理トポロジ情報を自動生成する技術である。複数の仮想化技術とは、仮想ＬＡＮ技術、仮想インタフェース技術、仮想ルータ技術のいずれか一つ以上を含む。
【００１７】
開示される第一の態様は、
サーバ機器、ストレージ機器、ネットワーク機器を含む物理機器がネットワークで接続された情報処理システム上に構築された、複数種の仮想化技術によって構成された複数種の仮想リソースを含む仮想ネットワークの論理トポロジの構成管理方法であって、
複数の仮想化技術により生成された複数の仮想リソースのいずれかを特定するための設定パターンと、
複数の仮想リソース間の接続関係のいずれかを特定するための接続パターンと、を保持するステップと、
設定パターンと接続パターンとに基づき、物理機器に設定された設定情報から、複数の仮想リソースと複数の仮想リソースとの間の接続情報を抽出するステップと、
抽出した接続情報に基づき、仮想ネットワークの論理トポロジ情報を生成するステップと、を備えることを特徴とする。
【００１８】
上記論理トポロジの構成管理方法は、さらに、
仮想ネットワークを構成する複数物理機器の設定情報の収集に用いる情報を、複数の物理機器毎に管理するステップと、
管理する情報を用いて物理機器の設定情報を収集するステップと、を備えてもよい。
【００１９】
上記論理トポロジの構成管理方法は、さらに、
生成した論理トポロジ情報を可視化するステップと、
管理要求に応じて、可視化した論理トポロジを構成する仮想リソース情報または仮想リソース間の接続情報の一部を追加あるいは削除するステップを備えてもよい。
【００２０】
上記論理トポロジの構成管理方法は、さらに、
物理機器に設定された設定情報から、設定パターン情報と接続パターン情報に基づき、仮想リソース情報を識別するためのパラメータを抽出するステップを備えてもよい。
【００２１】
上記論理トポロジの構成管理方法において、
仮想リソース情報は、仮想リソースの種類を示す情報と、仮想リソースを保有する物理機器の識別子と、仮想リソースの種類における当該仮想リソースを識別する識別子と、を含み、
仮想リソース間の接続情報は、接続対象となる２つの仮想リソース情報を含むものであってもよい。
【００２２】
上記仮想リソース情報がノードに対応付けられ、上記仮想リソースの接続情報がエッジに対応付けられる場合、上記論理トポロジの構成管理方法は、さらに、
物理機器に設定された設定情報から、設定パターン情報に基づいて、ノードを生成するステップと、
物理機器に設定された設定情報から、接続パターン情報に基づいて、エッジを生成するステップと、
仮想ネットワークの論理トポロジに対応するノードとエッジからなるグラフを生成するステップと、を備えてよい。
【００２３】
上記論理トポロジの構成管理方法において、
設定パターン情報に対して仮想リソースの種類を表すノードタイプが対応づけられ、
接続パターン情報に対して仮想リソースの接続関係の種類を表すエッジタイプが対応づけられ、
論理トポロジは少なくとも３種類のノードタイプと、少なくとも３種類のエッジタイプを含み、
生成するノードを表すノード情報は、ノードを一意に識別するためのノード識別子と、ノードタイプと、物理機器識別子と、ノードタイプ内の識別子と、を含み、
生成するエッジを現すエッジ情報は、エッジタイプと、当該エッジが接続する２つのノードのノード情報識別子と、を含むものであってもよい。
【００２４】
なお、上記情報処理システムが管理サーバを備え、当該管理サーバが、上記論理トポロジの構成管理方法を実施してもよい。
【００２５】
上記各態様は、例えば、仮想化技術を用いて構築される情報処理システムに応用可能である。
【発明の効果】
【００２６】
複数種類の仮想化技術を用いて構築される仮想ネットワークにおいて、論理トポロジの作成を容易化できる。
【図面の簡単な説明】
【００２７】
【図１】実施の形態におけるシステム構成例を示す図である。
【図２】実施の形態における管理サーバ１０９の構成例である。
【図３】ネットワーク機器管理テーブル２０４の構成例である。
【図４】ノードパターン管理テーブル２４１ａの構成例である。
【図５】エッジパターン管理テーブル２４２ａの構成例である。
【図６】ノード管理テーブル２４３の構成例である。
【図７】エッジ管理テーブル２４４の構成例である。
【図８】ノード生成部２３４の構成例である。
【図９】エッジ生成部２３５の構成例である。
【図１０】論理トポロジ生成フローを例示する図である。
【図１１】コンフィグ単体の解析処理Ｓ１００３のフローを例示する図である。
【図１２】単一ノード生成・登録処理Ｓ１１０５のフローを例示する図である。
【図１３】単一エッジ生成・登録処理Ｓ１１１０のフローを例示する図である。
【図１４】論理トポロジの例を示す図である。
【図１５】論理トポロジ管理画面の例を示す図である。
【図１６】管理サーバ１０９の装置構成を例示する図である。
【発明を実施するための形態】
【００２８】
一実施例を、データセンタにおけるネットワークシステムにおける論理トポロジ生成を例にとって説明する。なお、データセンタネットワークはあくまでも適用箇所の一形態であり、適用先には複数のデータセンタにまたがったネットワーク、キャリアネットワーク、オフィスネットワーク、あるいは、キャンパスネットワークなどを含む。
【００２９】
図１は、本実施形態におけるシステム構成の例を示す図である。
【００３０】
データセンタ１００は、ネットワーク１０１を介して、適宜のＩＣＴサービスを提供するためのシステムを構成する。そのシステムの構成要素になりうる機器として、ファイアウォール１０２、ロードバランサ１０３、Ｌ３スイッチ１０４、Ｌ２スイッチ１０５ａ、１０５ｂのようなネットワーク機器に加えて、サーバ１０６ａ、１０６ｂ、１０６ｃ、１０６ｄといったサーバ機器、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）スイッチ１０７ａ、１０７ｂのようなＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）スイッチ機器、ストレージ１０８ａ、１０８ｂなどのストレージ機器を含む。これら機器を全て用いてシステムを構成する必要はなく、適宜の種類の機器を適宜の個数だけ用いて、適宜のＩＣＴサービスを提供するためのシステムを構成すればよい。また、このシステムには、管理サーバ１０９が接続される。管理サーバ１０９はコンソール１１０と接続している。
【００３１】
ファイアウォール１０２、ロードバランサ１０３、Ｌ３スイッチ１０４、Ｌ２スイッチ１０５ａ、１０５ｂのようなネットワーク機器は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を構築し、サーバ１０６ａ〜１０６ｄにネットワーク接続性を提供するとともに、サーバが送受信するパケットを制御する。これらネットワーク機器はサーバと接続し、また、管理サーバ１０９やデータセンタ１００の外部のネットワークとも接続してもよい。ＬＡＮ内通信をするためのプロトコルはＥｔｈｅｒｎｅｔ（登録商標）を含み、ＬＡＮ間通信をするためのプロトコルはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を含む。そして、これらネットワーク機器は、ＶＬＡＮのような仮想ＬＡＮ技術、ＶＬＡＮインタフェースやサブインタフェースのような仮想インタフェース技術、ＶＲＦやＶＲのような仮想ルータ技術を有し、物理的なネットワークの上に仮想的なネットワークを構成する。
【００３２】
サーバ１０６ａ〜１０６ｄのようなサーバ機器は、適宜のＩＣＴサービスを行うためのアプリケーションを実行する。これらサーバ機器は、前述のネットワーク機器を介して相互に接続し、また、データセンタ１００の外部に接続する。また、後述のように、ＦＣスイッチ１０７ａ、１０７ｂを介して、ストレージ機器１０８ａ、１０８ｂにアクセスする。それぞれのサーバ機器は、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）やＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）あるいはＣＮＡ（Ｃｏｎｖｅｒｇｅｄ  Ｎｅｔｗｏｒｋ  Ａｄａｐｔｅｒ）を搭載し、ＬＡＮおよびＳＡＮにアクセスする。サーバ機器には、ＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）技術あるいはＬＰＡＲ（Ｌｏｇｉｃａｌ  Ｐａｒｔｉｔｉｏｎｉｎｇ）技術によって、複数の仮想サーバ（ＶＭ）が生成されていてもよい。この場合、ＶＭは仮想的なインタフェースであるｖＮＩＣ(Ｖｉｒｔｕａｌ  Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ)、ｖＨＢＡ（Ｖｉｒｔｕａｌ  Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）や仮想ＣＮＡを生成し、これらの仮想的なインタフェースにより、ネットワーク機器あるいはストレージ機器にアクセスする。
【００３３】
ＦＣスイッチ１０７ａ、１０７ｂのようなＳＡＮスイッチ機器は、ＳＡＮを構成し、サーバ１０６ａ〜１０６ｄからのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）要求をストレージ１０８ａ、１０８ｂに転送し、ストレージ１０８から読み出したＩ／Ｏデータをサーバ１０６ａ〜１０６ｄに転送する。ＳＡＮ内通信およびＳＡＮ間通信をするためのプロトコルは、ＦＣ、ＦＣＩＰ（ＦＣ  ｏｖｅｒ  ＩＰ）、ＦＣｏＥ（ＦＣ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）やｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）を含む。また、これらＳＡＮスイッチ機器は、Ｚｏｎｉｎｇ、ＮＰＩＶ（Ｎ  Ｐｏｒｔ＿ＩＤ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）、ＶＳＡＮ（Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋｉｎｇ）のような仮想化技術を備えている。これ以外の仮想化技術を備えていてもよい。
【００３４】
ストレージ１０８ａ、１０８ｂのようストレージ機器は、前述のＳＡＮを介して、サーバ１０６ａ〜１０６ｄに外部記憶領域を提供する。ストレージ機器１０８は、ストレージにアクセスする物理ポートを仮想化するためのＮＰＩＶ、物理ストレージに構成された論理ヴォリュームであるＬＵ（Ｌｏｇｉｃａｌ Ｕｎｉｔ）を含む。ストレージ１０８は、ストレージのポートと、ＬＵおよびサーバを対応付けるＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）マスキングなどの機能を備えていてもよい。
【００３５】
管理サーバ１０９は、システム内の機器がそれぞれ保有するコンフィグを収集し、収集したコンフィグを用いて、データセンタ１００の複数機器が構築する仮想ネットワークの全体あるいは一部の論理トポロジ情報を生成する。生成した論理トポロジ情報を可視化し、コンソール１１０の画面に表示する。
【００３６】
なお、上記のシステムの構成機器（ファイアウォールやロードバランサなど）の機能は、ハードウェアによって提供されてもよく、また、ソフトウェアによって提供されてもよい。
【００３７】
図２は、管理サーバ１０９の構成例を示す図である。
【００３８】
管理サーバ１０９は、構成要素として、コンフィグ収集部２０１、トポロジ視覚化部２０２、管理要求受付部２０３、ネットワーク機器管理テーブル２０４、生成トポロジＤＢ２０５、論理トポロジ生成部２０６を有する。
【００３９】
コンフィグ収集部２０１は、データセンタ１００内のネットワーク機器からコンフィグを収集する。コンフィグ収集部２０１の構成要素には、ネットワーク機器情報登録部２１１とコンフィグ収集部２１２を含む。ネットワーク機器情報登録部２１１は、データセンタ１００内のネットワーク機器からコンフィグを収集する上で必要な情報を、後述するネットワーク機器管理テーブル２０４に対して追加または削除する。
【００４０】
コンフィグ収集部２１２は、ネットワーク機器管理テーブル２０４のネットワーク機器情報を参照し、データセンタ１００内の各ネットワーク機器からコンフィグを収集する。収集したコンフィグは、例えば、管理サーバ１０９内にコンフィグファイルとして保存され、保存したファイル名の一覧がネットワーク機器管理テーブル２０４に保持される。なお、このコンフィグ収集部２１２は必須ではなく、管理サーバ１０９がコンフィグを解析できればいずれの方法でもよい。例えば、管理者が手動でコンフィグを収集し、管理サーバ１０９内にコンフィグファイルとして保存してもよい。
【００４１】
トポロジ視覚化部２０２は、生成トポロジＤＢ２０５内のトポロジ情報を可視化し、ＧＵＩ表示制御部２２１を用いて、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）画面に論理トポロジを出力する。
【００４２】
管理要求受付部２０３は、論理トポロジ情報の生成に関する処理要求をオペレータから受け付け、各機能部に処理の実行を命令する。オペレータが要求する処理は、例えば、コンフィグの収集、収集したコンフィグに基づく論理トポロジ情報の生成、生成した論理トポロジの視覚化である。この例において、それぞれの処理に対応する機能部は、コンフィグ収集部２０１、論理トポロジ生成部２０６、トポロジ視覚化部２０２である。また、他にも、オペレータが要求する処理は、例えば、ノードパターンやエッジパターンの登録がある。この例においては、論理トポロジ生成部２０６を介して、ノードパターン登録部２３２ないしエッジパターン登録部２３３が呼び出される。
【００４３】
ネットワーク機器管理テーブル２０４は、ネットワーク機器からコンフィグを収集する上で必要な情報を保持する。その情報とは、機器の識別子、機種、ＩＰアドレス、ログイン名、パスワードなどを含む。ネットワーク機器管理テーブル２０４の詳細は図３において説明する。
【００４４】
生成トポロジＤＢ２０５は、論理トポロジ生成部２０６が生成した論理トポロジ情報を保持する。
【００４５】
論理トポロジ生成部２０６は、コンフィグ収集部２０１が収集したコンフィグファイルを解析し、仮想ネットワークの論理トポロジ情報をノードとエッジからなるグラフ構造として生成し、生成トポロジＤＢ２０５に保存する。
【００４６】
論理トポロジ生成部２０６は、構成要素として、論理トポロジ生成・管理テーブル２３１、ノードパターン登録部２３２、エッジパターン登録部２３３、ノード生成部２３４、エッジ生成部２３５、論理トポロジ構築部２３６を含む。
【００４７】
論理トポロジ生成・管理テーブル２３１は、コンフィグからノードとエッジを生成するための情報を管理し、生成したノードとエッジを管理するものであり、ひとつまたは複数のノードパターン管理テーブル２４１ａ、２４１ｂ、２４１ｃ、ひとつまたは複数のエッジパターン管理テーブル２４２ａ、２４２ｂ、２４２ｃ、ノード管理テーブル２４３、エッジ管理テーブル２４４を含む。コンフィグからノードを生成する際に、ノードパターン管理テーブル２４１ａ〜２４１ｃが参照され、エッジを生成する際にエッジパターン管理テーブル２４２ａ〜２４２ｃが参照される。生成されたノードとエッジはそれぞれ、ノード管理テーブル２４３、エッジ管理テーブル２４４に保存される。
【００４８】
ノードパターン登録部２３２は、コンフィグのノードパターンをノードパターン管理テーブル２４１に登録する。例えば、新しい機種の機器をデータセンタに導入した際に、管理者はこの機器に対応するノードパターンを新規入力する。新規入力されるノードパターンは、管理要求受付部２０３、論理トポロジ生成部２０６を介してノードパターン登録部２３２に入力され、ノードパターン登録部２３２はこの新規ノードパターンを新規のノードパターン管理テーブル２４１ｄとして生成する。
【００４９】
なお、ノードパターンとは、コンフィグにおける各種仮想化技術の仮想リソースの生成を示す設定コマンドの設定パターンである。設定パターンの詳細は、図４において説明する。
【００５０】
また、前述の仮想リソースとは、仮想化技術によって生成される仮想的なインスタンスであり、仮想ネットワークの論理トポロジの構成要素となるインスタンスのことである。仮想リソースは、例えば、仮想ＬＡＮのインスタンス、仮想インタフェースのインスタンス、仮想ルータのインスタンスを含む。
【００５１】
エッジパターン登録部２３３は、コンフィグのエッジパターンをエッジパターン管理テーブル２４２に登録する。例えば、新しい機種の機器をデータセンタに導入した際に、利用者はこの機器に対応するエッジパターンを新規入力する。新規入力されるエッジパターンは、管理要求受付部２０３、論理トポロジ生成部２０６を介してエッジパターン登録部２３３に入力され、ノードパターン登録部２３２はこの新規エッジパターンを新規のエッジパターン管理テーブル２４２ｄとして生成する。
【００５２】
なお、エッジパターンとは、コンフィグにおける各種仮想化技術の仮想リソース間の接続を示す設定コマンドのパターンである。この設定コマンドのパターンの詳細は、図５において説明する。
【００５３】
また、仮想リソース間の接続とは、論理トポロジを構成する前述の仮想リソース間の論理的な結線のことである。仮想リソース間の接続は、例えば、ＶＬＡＮとＶＬＡＮインタフェースの接続、ＶＬＡＮインタフェースとＶＲＦの接続を含む。
【００５４】
ノード生成部２３４は、ノードパターン管理テーブル２４１に基づいて、機器のコンフィグのうち、仮想リソースの生成に該当するコマンドを抽出し、抽出したコマンドを含む情報に基づいて、前記の仮想リソースに対応するノードを生成する。生成ノードは、ノード管理テーブル２４３に保存される。ノード生成部２３４の詳細は図８において説明する。
【００５５】
エッジ生成部２３５は、エッジパターン管理テーブル２４２に基づいて、機器のコンフィグのうち、仮想リソース間の接続に該当するコマンドを抽出し、抽出したコマンドを含む情報に基づいて、前記の仮想リソース間の接続に対応するエッジを生成する。生成エッジは、エッジ管理テーブル２４４に保存される。エッジ生成部２３５の詳細は図９において説明する。
【００５６】
論理トポロジ構築部２３６は、ノード管理テーブル２４３とエッジ管理テーブル２４４の内容に基づいて、データセンタ１００の仮想ネットワークの論理トポロジ情報を生成し、生成トポロジＤＢ２０５に保存する。このＤＢに保存するトポロジ情報の形式は、隣接行列、接続行列、隣接リスト、接続リストなど適宜の形式でよい。本実施の形態では隣接リストの形式を利用する。
【００５７】
ノードパターン管理テーブル２４１ａ〜２４１ｃは、コンフィグにおける各種仮想化技術の仮想リソースの生成を示す設定パターンを、ノードタイプに対応付けて保持する。仮想リソースの生成の例には、仮想インタフェースのインスタンスの新規生成、仮想ルータのインスタンスの新規生成があげられる。なお、これらテーブルは、機器の機種ごとに用意される。例えば、機種ａａａのノードパターンは２４１ａである。ノードパターン管理テーブル２４１ａの詳細は図４において説明する。
【００５８】
エッジパターン管理テーブル２４２ａ〜２４２ｃは、コンフィグにおける各種仮想化技術の仮想リソース間の接続を示す接続パターンを保持する。仮想リソース間の接続の例には、仮想ＬＡＮのインスタンスと仮想インタフェースとのインスタンスの論理的な結線や、仮想インタフェースのインスタンスと仮想ルータのインスタンスとの論理的な結線があげられる。このテーブルは、機器の機種ごとに用意される。例えば、機種ａａａのエッジパターンは２４２ａである。エッジパターン管理テーブル２４２ａの詳細は図５において説明する。
【００５９】
ノード管理テーブル２４３は、コンフィグから生成されるノードを管理するテーブルである。ノード管理テーブル２４３の詳細は図６において説明する。
【００６０】
エッジ管理テーブル２４４は、コンフィグから生成されるエッジをに管理するテーブルである。エッジ管理テーブル２４４の詳細は図７において説明する。
【００６１】
図３は、ネットワーク機器管理テーブル２０４の構成例である。
【００６２】
ネットワーク機器管理テーブル２０４は、データセンタ１００内のネットワーク機器からコンフィグを収集する際に用いる情報を管理する。管理対象情報として、機器識別子３０１、機種３０２、ＩＰアドレス３０３、ユーザ名３０４、パスワード３０５、コンフィグのファイル名３０６がある。機器識別子３０１は、個々のネットワーク機器を、ネットワーク全体から一意に特定するための識別子である。機種３０２、ＩＰアドレス３０３、ユーザ名３０４、パスワード３０５は、ネットワーク機器にリモートログインし、コンフィグを収集するために必要な情報である。ファイル名３０６は、収集したコンフィグを保存する時のファイル名である。ネットワーク機器管理テーブル２０４は、これ以外の情報も適宜保持してもよい。
【００６３】
図４は、ノードパターン管理テーブル２４１ａの構成例を示す。
【００６４】
ノードパターン管理テーブル２４１ａは、機種ａａａについて、ノードタイプ４０１と仮想リソースの生成に関する設定パターン４０２とを対応付けた設定パターンを管理する。
【００６５】
ノードタイプとは、仮想リソースの種類を表す。例えば、ノードＮ１は仮想ＬＡＮに関する仮想リソース、ノードＮ２は仮想インタフェースに関する仮想リソース、ノードＮ３は仮想ルータに関する仮想リソースである。
【００６６】
例えば、設定パターン４１１は仮想ＬＡＮ技術のひとつであるＶＬＡＮ（ノードＮ１）の仮想リソースの生成、設定パターン４１２は仮想インタフェース技術のひとつであるＶＬＡＮインタフェース（ノードＮ２）の仮想リソースの生成、設定パターン４１３は仮想ルータ技術のひとつであるＶＲＦ（ノードＮ３）の仮想リソースの生成に関する設定パターンである。コンフィグの中でこれら設定パターンにマッチする箇所が見つかると、対応するノードタイプのノードが生成される。
【００６７】
設定パターン４０２の各セルに記載されている内容について説明する。セル内の最初の行は、ある項目の設定を開始することを意味し、最後の行はこの項目に関する設定を終了することを意味する。例えば、ＶＬＡＮインタフェースの設定パターン４１２においては、“ｉｎｔｅｒｆａｃｅ  ｖｌａｎ  ＜ｉｄ＞”の行が、あるＶＬＡＮインタフェースの設定を開始することを意味し、最後の“！”の行が、この設定に関する記述の最後の行であることを意味する。この開始から終了までの間には、設定パターン４０２に示されていない文字列が存在してもよい。例えば、設定パターン４１２に記載の“ｉｐ  ａｄｄｒｅｓｓ”の行は必須ではない。設定パターンがしたがうべき条件は、後述するノード生成処理において、ノードのタイプとタイプ内識別子を判別できることである。タイプ内識別子とは、あるコンフィグのあるノードタイプにおいてノードを一意に特定するための識別子（コンフィグに記載の仮想リソースの識別子）である。ノードパターン管理テーブル２４１ａの例においては、設定パターン中に＜ｉｄ＞と示されている箇所が、タイプ内識別子に該当する。例えば、ＶＬＡＮ（ノードＮ１）の設定パターン４１１であれば、ＶＬＡＮ番号に該当する箇所＜ｉｄ＞が、ノードタイプＮ１のタイプ内識別子である。
【００６８】
また、上記で説明したノードパターン管理テーブル２４１ａの構成は必須ではなく、適宜の構成をとってもよい。ノードパターン管理テーブルがしたがうべき条件は、ノードを生成する処理において、コンフィグからノードに関する設定パターンを判別し、ノード識別子を抽出できることである。したがって、例えば、ノードパターン管理テーブル２４１ａ〜２４１ｃそれぞれに機種ａａａ、ｂｂｂ、ｃｃｃを割り当てるのではなく、ひとつのテーブルにおいて、列４０２に機種ａａａ、別の列に機種ｂｂｂ、また別の列に機種ｃｃｃの設定パターンを保持するといった構成をとってもよい。
【００６９】
図５は、エッジパターン管理テーブル２４２ａの構成例を示す。
【００７０】
エッジパターン管理テーブル２４２ａは、機種ａａａについて、エッジタイプ５０１、接続ノードタイプ５０２、仮想リソース間の接続に関する接続パターン５０３を管理する。
【００７１】
エッジタイプ５０１とは、仮想リソースの接続関係の種類を表す。例えば、エッジＥ１は仮想ＬＡＮと仮想インタフェースそれぞれの仮想リソース間の接続、エッジＥ２は仮想インタフェースと仮想ルータそれぞれの仮想リソース間の接続、エッジＥ３は仮想ルータの２つの仮想リソース間の接続である。このように、各エッジタイプは、エッジが接続する２つのノードのノードタイプ（接続ノードタイプ５０２）にも対応付けられる。
【００７２】
この例において、接続パターン５１１はＶＬＡＮ（ノードＮ１）の仮想リソースとＶＬＡＮインタフェース（ノードＮ２）の仮想リソースを接続するエッジＥ１、接続パターン５１２はＶＬＡＮインタフェース（ノードＮ２）の仮想リソースとＶＲＦ（ノードＮ３）の仮想リソースを接続するエッジＥ２、接続パターン５１３はＶＲＦ（ノードＮ３）の２つの仮想リソースを接続するエッジ３に関する接続パターンである。コンフィグの中でこれら接続パターンにマッチする箇所が見つかると、対応するエッジが生成される。
【００７３】
接続パターン５０３の各セルに記載されている内容について説明する。セル内の最初の行は、ある項目の設定を開始することを意味し、最後の行はこの項目に関する設定を終了することを意味する。例えば、接続パターン５１１において“ｉｎｔｅｒｆａｃｅ  ｖｌａｎ”から始まる行が最初の行であり、“！”の行が最後の行である。なお、この開始から終了までの間には、接続パターンの例に示されていない文字列が存在してもよい。
【００７４】
例えば、接続パターン５１１に記載の“ｉｐ  ａｄｄｒｅｓｓ”の行は必須ではない。また、接続パターン５１３は、“ｒｏｕｔｅ−ｍａｐ”の行から始まり“！”の行で終わるブロックと、“ｖｒｆ  ｄｅｆｉｎｉｔｉｏｎ”の行から始まり“！”で終わるブロックの、複数のブロックからなる。両ブロックは＜ｎａｍｅ＞と示される文字列によって相互に対応付けられる。両ブロック間にはこのエッジに関係しない文字列が存在してもよい。
【００７５】
接続パターンがしたがうべき条件は、後述するエッジ生成処理において、エッジのタイプと、エッジの両端に接続される２ノードのタイプ内識別子を判別できることである。タイプ内識別子は、前述の通り、ある機器内のあるノードタイプに関してノードを一意に特定するための識別子であり、この例では、接続パターン中に＜ｉｄ１＞、＜ｉｄ２＞と示されている箇所である。
【００７６】
具体的には、エッジＥ２の接続パターン５１２であれば、ＶＬＡＮインタフェース番号に該当する箇所＜ｉｄ１＞が片方のノードのタイプ内識別子であり、ＶＲＦ番号に該当する箇所＜ｉｄ２＞が他方のノードのタイプ内識別子である。なお、エッジＥ１の接続パターン５１１のように、両者のノードのタイプ内識別子が同じ箇所＜ｉｄ＞に示される場合もある。
【００７７】
なお、上記で説明したエッジパターン管理テーブル２４２ａの構成は必須ではなく、適宜の構成をとってもよい。エッジパターン管理テーブルがしたがうべき条件は、エッジを生成する処理において、コンフィグからエッジに関する接続パターンを判別し、エッジ識別子を抽出できることである。したがって、例えば、エッジパターン管理テーブル２４２ａ〜２４２ｃそれぞれに機種ａａａ、ｂｂｂ、ｃｃｃを割り当てるのではなく、ひとつのテーブルにおいて、列５０３に機種ａａａ、別の列に機種ｂｂｂ、また別の列に機種ｃｃｃの接続パターンを保持するといった構成をとってもよい。
【００７８】
図６は、ノード管理テーブル２４３の構成例を示す。
【００７９】
ノード管理テーブル２４３は、コンフィグの設定パターンに基づいて生成されたノードを一元的に管理する。各ノードは、仮想ネットワーク全体で一意に特定できるノード識別子６０１を有する。ノードの要素には、ノードタイプ４０１、ノードが存在する物理機器の識別子６０３、タイプ内識別子６０４を含む。
【００８０】
行６１１は仮想ＬＡＮ番号（ノードＮ１のタイプ内識別子）が１０の仮想ＬＡＮ（ノードＮ１）が存在することを意味し、行６１２は機器ＳＷ１において仮想インタフェース番号（ノードＮ２のタイプ内識別子）が１０の仮想インタフェース（ノードＮ２）が存在することを意味し、行６１３は機器ＦＷにおいて仮想ルータ番号（ノードＮ３のタイプ内識別子）が１の仮想ルータ（ノードＮ３）が存在することを意味する。
【００８１】
なお、上記で説明したノード管理テーブル２４３の構成は必須ではなく、適宜の構成をとってもよい。このほかのテーブル構成方法としては、例えば、ノードタイプごとにテーブルを分ける方法や、機器ごとにテーブルを分ける方法をとってもよい。ノード管理テーブル２４３がしたがうべき条件は、各機器の各ノードタイプのノードを一元的に管理できることである。
【００８２】
図７は、エッジ管理テーブル２４４の構成例を示す。
【００８３】
エッジ管理テーブル２４４は、コンフィグの接続パターンに基づいて生成されたエッジに係るエッジ情報を一元的に管理する。各エッジは、仮想ネットワーク全体で一意に特定できるエッジ識別子７０１を有し、エッジ情報の要素として、エッジタイプ７０２と、エッジの両端に接続されるノードのノード識別子６０１−１、６０１−２を含む。なお、エッジ管理テーブル２４４において、エッジタイプ７０２は必ずしも必要ではなく、特定の２ノードが接続されることを意味する必要最低限の情報さえあればよい。
【００８４】
なお、上記で説明したエッジ管理テーブル２４４の構成は必須ではなく、エッジを管理できる適宜の構成をとってもよい。このほかのテーブル構成方法としては、例えば、エッジタイプごとにテーブルを分ける方法をとってもよい。
【００８５】
図８は、ノード生成部２３４の構成例を示す図である。
【００８６】
ノード生成部２３４は、構成要素として、ノードパターンテーブル呼出部８０１、ノードパターン抽出部８０２、ノードパラメータ抽出部８０３、ノード情報生成部８０４、ノード識別子生成部８０５、ノード情報登録部８０６を含む。
【００８７】
ノードパターン呼出部８０１は、コンフィグ解析対象の機器の機種に対応するノードパターン管理テーブル２４１を呼び出す。機種情報はネットワーク機器管理テーブル２０４から特定する。ノードパターン呼出部８０１は、管理者からのトポロジ情報生成要求をトリガとして、管理要求受付部２０３と論理トポロジ生成部２０６を介して実行される。
【００８８】
ノードパターン抽出部８０２は、呼び出したノードパターン管理テーブル２４１に記載の設定パターンにしたがって、コンフィグからノードに関する設定コマンドを抽出する。
【００８９】
ノードパラメータ抽出部８０３は、抽出した設定コマンドそれぞれについて、ノードのタイプ内識別子を抽出する。
【００９０】
ノード情報生成部８０４は、ノードのノードタイプ、タイプ内識別子、機器識別子を要素とするノードを生成する。
【００９１】
ノード識別子生成部８０５は、生成したノードを一意に特定するための識別子を生成する。
【００９２】
ノード情報登録部８０６は、生成したノードをノード管理テーブル２４３に追加する。
【００９３】
図９は、エッジ生成部２３５の構成例を示す図である。
【００９４】
エッジ生成部２３５は、構成要素として、エッジパターンテーブル呼出部９０１、エッジパターン抽出部９０２、エッジパラメータ抽出部９０３、エッジ情報生成部９０４、ノード検索部９０５、エッジ識別子生成部９０６、エッジ情報登録部９０７を含む。
【００９５】
エッジパターンテーブル呼出部９０１は、解析対象コンフィグの機器の機種に対応する、エッジパターン管理テーブル２４２を呼び出す。機種情報はネットワーク機器管理テーブル２０４から特定する。
【００９６】
エッジパターン抽出部９０２は、呼び出したエッジパターン管理テーブルに基づいて、コンフィグからエッジに関する接続コマンドを抽出する。
【００９７】
エッジパラメータ抽出部９０３は、抽出した接続コマンドからそれぞれについて、エッジによって接続される２ノードのタイプ内識別子を抽出する。
【００９８】
エッジ情報生成部９０４は、エッジが接続する２ノードの情報（ノードの要素には、抽出したタイプ内識別子、機器識別子、ノードタイプを有する）を生成する。
【００９９】
ノード検索部９０５は、ノード管理テーブル２４３から、前記２ノードの情報に基づき、前記２ノードを検索し、それら２ノードのノード識別子を返す。この２つのノード識別子が、生成するエッジの要素に含まれる。
【０１００】
エッジ識別子生成部９０６は、生成したエッジを一意に特定するための識別子を生成する。
【０１０１】
エッジ情報登録部９０７は、生成したエッジをエッジ管理テーブル２４４に追加する。
【０１０２】
図１０は、論理トポロジ情報生成フローを示す図である。
【０１０３】
コンフィグ収集部２０１は、ネットワーク機器管理テーブル２０４の情報に基づいて、各ネットワーク機器からコンフィグを収集する（Ｓ１００１）。コンフィグの収集に使用する方法は、ｔｅｌｎｅｔ、ＴＦＴＰ（Ｔｒｉｖｉａｌ  Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＮＥＴＣＯＮＦ（Ｎｅｔｗｏｒｋ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）、あるいはＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）などを含む。
【０１０４】
次に、各機器から収集したコンフィグそれぞれについて、コンフィグ単体の解析処理を行う（Ｓ１００３）。処理Ｓ１００３は個々のコンフィグについてひとつまたは複数のノードとエッジを生成する処理を行う。詳細は図１１において説明する。
【０１０５】
全てのコンフィグを解析し、全てのノードとエッジを生成した後に、論理トポロジ構築部２３６は、ノード管理テーブル２４３とエッジ管理テーブル２４４の要素を単一のグラフとして統合し、生成トポロジＤＢ２０５に保存する（Ｓ１００５）。
【０１０６】
最後に、ＧＵＩ表示制御部２２１は、生成トポロジＤＢ２０５内の論理トポロジを可視化し、コンソール１１０に表示する（Ｓ１００６）。なお、ＧＵＩ表示制御部２２１は、生成した論理トポロジの中で、特定のノードやエッジを追加または削除するといった操作を行ってもよい。
【０１０７】
図１１は、コンフィグ単体の解析処理Ｓ１００３のフローを示す図である。
【０１０８】
最初に、解析対象のコンフィグのファイル名３０６に基づいて、ネットワーク機器管理テーブル２０４から、コンフィグに対応する機器識別子３０１と機種３０２を特定する（Ｓ１１０１）。
【０１０９】
次に、ノード生成の処理に移る。
【０１１０】
ノードパターンテーブル呼出部８０１は、ネットワーク機器管理テーブル２０４から特定した機種に対応するノードパターン管理テーブル２４１を特定する（Ｓ１１０２）。
【０１１１】
この特定したテーブルに基づいて、ノードパターン抽出部８０２は、コンフィグの中から、ノードパターン４０２に該当するコマンドを抽出し、抽出したコマンドに該当するノードタイプ４０１も判別する（Ｓ１１０３）。
【０１１２】
そして、抽出したコマンドそれぞれについて、単一ノードの生成処理と登録処理を行う（Ｓ１１０５）。この処理では、ひとつの抽出コマンドに対応するノードを生成し、ノード管理テーブル２４３に登録する。この処理の詳細は図１２において説明する。
【０１１３】
ノード生成処理を完了した後は、エッジ生成処理に移る。
【０１１４】
エッジパターンテーブル呼出部９０１は、解析対象のコンフィグに関して、ネットワーク機器管理テーブル２０４から取得した機種に対応するノードパターン管理テーブル２４１を特定する（Ｓ１１０７）。
【０１１５】
この特定したテーブルに基づいて、エッジパターン抽出部９０２は、コンフィグの中から、接続パターン５０３に該当するコマンドを抽出し、抽出したコマンドに該当するエッジタイプ５０１と、このエッジに接続される２つのノードのノードタイプ５０２も判別する（Ｓ１１０８）。
【０１１６】
そして、抽出したコマンドそれぞれについて、単一エッジの生成処理と登録処理を行う（Ｓ１１１０）。この処理では、抽出したコマンドに対応するエッジを生成し、エッジ管理テーブル２４４に登録する。この処理の詳細は図１３において説明する。
【０１１７】
なお、本実施例においては、コンフィグにおいてノードパターンにマッチしたコマンドを全て抽出した後に、それぞれのコマンドについてノード生成処理を行っているが、この順序は必須ではない。すなわち、コマンドをひとつ抽出する度に、この抽出コマンドに関してノード生成処理を行うなどの適宜の方法をとってもよい。
【０１１８】
エッジパターン抽出処理とエッジ処理の順序についても、同様に必須ではない。すなわち、エッジパターンにマッチするコマンドをひとつ抽出する度に、この抽出コマンドに関してエッジ生成処理を行うなどの適宜の方法をとってもよい。
【０１１９】
また、本実施例においては、ノード生成処理の後にエッジ生成処理を行っているが、この順序も必須ではなく、両者の処理を並行に行っても構わない。すなわち、コンフィグを解析しつつ、ノードとエッジに関するパターンに関して並行マッチング処理を行い、見つかったパターンに関連するノードとエッジを適宜生成してもよい。エッジを生成する際に、エッジの両端に結ばれるノードが既に生成済みであるような条件さえ満たしていれば、いかなる順序で個々のノードとエッジを生成してもよい。
【０１２０】
図１２は、単一ノード生成・登録処理Ｓ１１０５の処理フローを示す図である。この処理は、抽出したコマンドに対応するノードを生成し、ノード管理テーブル２４３に登録する。そのために以下のような処理を行う。
【０１２１】
最初に、ノードパラメータ抽出部８０３が、抽出コマンドからタイプ内識別子を特定する（Ｓ１２０１）。具体的には、ステップＳ１１０３で抽出したひとつのコマンドについて、ステップＳ１１０３で判別されたノードタイプと、ノードパターン管理テーブル２４１の設定パターン４０２にしたがって、ノードのタイプ内識別子を特定する。
【０１２２】
次に、ノード情報生成部８０４が、ノードを新規生成する（Ｓ１２０２）。新規生成ノードが持つべき要素は３つあり、それらはノードタイプ（ステップＳ１１０３で判別）、タイプ内識別子（ステップＳ１２０１で特定）、機器識別子（Ｓ１１０１で特定）である。なお、ノードタイプがＮ１（仮想ＬＡＮ技術の仮想リソース）の場合は、例外的に機器識別子は付与しない（あるいは機器識別子にｎ／ａなどの固定文字列を入力する）。
【０１２３】
そして、生成したノードと同じ要素を持つノードが、ノード管理テーブル２４３に既に存在しているかどうかを確認する（Ｓ１２０３）。存在していなければ以下の処理（Ｓ１２０４〜Ｓ１２０６）を行い、存在していれば以下の処理を行わず単一ノード生成・登録処理Ｓ１１０５は終了する。
【０１２４】
ノード識別子生成部８０５は、新規生成したノードに対するノード識別子を生成する（Ｓ１２０４）。本実施例においては、ノード識別子を整数とし、ノード管理テーブル２４３に存在するノードのノード識別子のうち、最大のものに１を足した値を、新規生成ノードのノード識別子とする。なお、ノード識別子は他の方法によって決定されてもよい。ノード識別子の書式や生成規則がしたがうべき条件は、各ノードがネットワーク全体で一意に特定できることである。
【０１２５】
ノード情報生成部８０４は、前記のノード識別子を新規生成ノードに付与する（Ｓ１２０５）。
【０１２６】
ノード情報登録部８０６は、ノード識別が付与された新規生成ノードを、ノード管理テーブル２４３に追加する（Ｓ１２０６）。
【０１２７】
以上が、単一ノード生成・登録処理である。
【０１２８】
図１３は、単一エッジ生成・登録処理Ｓ１１１０を示す図である。この処理は、抽出したコマンドに対応するエッジを生成し、エッジ管理テーブル２４４に登録する。そのために、以下のような処理を行う。
【０１２９】
最初に、エッジパラメータ抽出部９０３は、エッジが接続する２ノードのタイプ内識別子を、抽出コマンドから特定する（Ｓ１３０１）。具体的には、ステップＳ１１０９で抽出したひとつのコマンドについて、ステップＳ１１０８で判別されたエッジタイプ、エッジが接続する２つのノードのノードタイプと、エッジパターン管理テーブル２４２の接続パターン５０３にしたがって、エッジが接続する２ノードのタイプ内識別子を特定する。
【０１３０】
次に、エッジ情報生成部９０４が、エッジに接続される２ノードのノード情報を生成する（Ｓ１３０２）。ノードが持つべき要素は３つあり、それらはノードタイプ（ステップＳ１１０８で判別）、タイプ内識別子（ステップＳ１３０１で特定）、機器識別子（Ｓ１１０１で特定）である。なお、ノードタイプがＮ１（仮想ＬＡＮの仮想リソース）の場合は、例外的に機器識別子は付与しない（あるいは機器識別子にｎ／ａなどの固定文字列を入力する）。
【０１３１】
そして、ノード検索部９０５は、Ｓ１１０３で生成した２ノードと同じ要素を持つノードを、ノード管理テーブル２４３から検索する（Ｓ１３０３）。ノード検索部９０５は、この検索によりヒットした２つのノードのノード識別子を、エッジ情報生成部９０４に渡す。
【０１３２】
エッジ情報生成部９０４は、エッジを新規生成する（Ｓ１３０４）。エッジに持たせる要素は、エッジタイプと、エッジが接続する２ノードのノード識別子である。
【０１３３】
エッジ識別子生成部９０６は、新規生成したエッジに対するエッジ識別子を生成する（Ｓ１３０５）。実施例においては、エッジ識別子を整数とし、エッジ管理テーブル２４４に存在するエッジのエッジ識別子のうち、最大のものに１を足した値を、新規生成エッジのエッジ識別子とする。なお、エッジ識別子は他の方法によって決定されてもよい。エッジ識別子の書式や生成規則がしたがうべき条件は、各エッジがネットワーク全体で一意に特定できることである。
【０１３４】
エッジ情報生成部９０４は、前記のエッジ識別を新規生成エッジに付与する（Ｓ１０３５）。
【０１３５】
エッジ情報登録部９０７は、エッジ識別が付与された新規生成エッジを、エッジ管理テーブル２４４に追加する（Ｓ１３０６）。
【０１３６】
以上が、単一エッジ生成・登録処理のフローである。
【０１３７】
図１４は、これまでに説明したトポロジ生成処理によって生成されるトポロジの例を示す図である。
【０１３８】
コンフィグにより生成されたノードはＮ１４０１〜Ｎ１４０７であり、生成されたエッジはＥ１４１１〜Ｅ１４１５である。ノードＮ１はＮ１４０１、Ｎ１４１５であり、ノードＮ２はＮ１４０２、Ｎ１４０６であり、ノードＮ３はＮ１４０３、Ｎ１４０４である。エッジＥ１はＥ１４１１、Ｅ１４１５であり、ノードタイプＮ１とＮ２のノードを接続している。エッジＥ２はＥ１４１２、Ｅ１４１４であり、ノードタイプＮ２とＮ３のノードを接続している。エッジＥ３はＥ１４１３であり、ノードタイプＮ３の２ノードを接続している。
【０１３９】
図１５は、トポロジ生成画面の例である。
【０１４０】
トポロジ生成画面１５０１は、コンソール１１０に表示される。トポロジ生成画面１５０１は、例えば、トポロジ表示タブ１５０２とパターン一覧タブ１５０３を含む。
【０１４１】
トポロジ表示タブ１５０２内では、トポロジを表示するための一連の項目を表示する。このタブは、生成トポロジ表示エリア１５１１と機器一覧表示エリア１５１２を含む。
【０１４２】
パターン一覧タブ１５０３では、ネットワーク機器の各機種に対応するノードパターン管理テーブル２４１、エッジパターン管理テーブル２４２を表示する。この画面上では、例えば、新規機種についてのノードパターン管理テーブルやエッジパターン管理テーブルを追加する。
【０１４３】
生成トポロジ表示エリア１５１１では、視覚化した論理トポロジ情報１５２１を表示する。なお、表示したトポロジのノードとエッジを追加または削除するといった表示制御を行うボタン１５２２〜１５２５を含んでもよい。また、視覚化にあたっては、仮想インタフェース（ノードＮ２）の表示を省略し、仮想ＬＡＮ（ノードＮ１）と仮想ルータ（ノードＮ３）を直接接続する表現方法で表示するなど、適宜の方法をとってもよい。
【０１４４】
機器一覧表示エリア１５１２では、ネットワーク機器一覧１５３１を表示する。また、このタブの中では、ネットワーク機器一覧１５３１に機器情報を登録するためのボタン１５３２、ネットワーク機器からのコンフィグ収集を実行するためのボタン１５３３、収集したコンフィグからの論理トポロジ情報の生成を実行するためのボタン１５３４、生成したトポロジを画面上に表示するためのボタン１５３５を有する。
【０１４５】
図１６に、管理サーバ１０９の装置構成の例を示す。管理サーバ１０９は、ＣＰＵ１６０１、メモリ１６０２、補助記憶装置１６０３を備える一般的な計算機を用いて実現することができる。さらに、各装置を構成するそれぞれの機能は、ＣＰＵが補助記憶装置に格納されているプログラムを実行することにより、上記計算機上に具現化される。各プログラムは、あらかじめ、上記計算機内の補助記憶装置１６０３に格納されていてもよい。あるいは、各プログラムは、必要なときにＬＡＮインタフェース１６０４やメディアインタフェース１６０５を経由して上記計算機が利用可能な媒体を介し、他の装置から上記記憶装置に導入されてもよい。媒体とは、たとえば、通信媒体（すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号）、またはメディアインタフェース１６０５に着脱可能な外部記憶媒体１６０７を指す。なお、管理サーバ１０９は、入出力装置１６０６を介して管理サーバを操作するコンソール１１０に接続してもよい。
【０１４６】
本実施の形態によると、複数の仮想化技術を用いて構築される仮想ネットワークにおいて、論理トポロジを迅速かつ正確に把握できる。また、生成したトポロジ情報を視覚化することにより、論理トポロジ図作成における個々人のスキルの差を解消でき、論理トポロジ図の品質を一定に保てる。また、論理トポロジの視覚化によって、コンフィグの正しさを直感的に検証できるようになる。
【０１４７】
本実施例においては、３種類のノードをＮ１、Ｎ２、Ｎ３を定義し、それぞれのタイプ内識別子として、仮想ＬＡＮ識別子、仮想インタフェース識別子、仮想ルータ識別子を付与した。一方、データセンタ１００に構築されるシステムの構成によっては、以下のように、ノードに情報を追加しても有用である。すなわち、ノード管理テーブル２４３を以下のように拡張する方法も有用である。
【０１４８】
まず、仮想的でない物理的な機能要素を含める方法である。この方法では、例えば、物理ＬＡＮの識別子として仮想ＬＡＮの０番（仮想ＬＡＮとして設定できない番号）を割り当てる、あるいは、物理ルータの識別子として仮想ルータ番号の０番を割り当てるなどのように、物理的なリソースを仮想リソースのひとつとしてみなす。この方法は、例えば、仮想ＬＡＮに加えて物理ＬＡＮ、仮想インタフェースに加えて物理インタフェース、仮想ルータに加えて物理ルータも、ネットワーク通信のためのリソースとして機能するシステムにおいて有用である。
【０１４９】
次に、仮想ＬＡＮにＩＰセグメント情報を付加する方法である。この方法では、ひとつのＶＬＡＮが複数のＩＰセグメントを持ち、ＶＬＡＮ内においてもルーティングをする場合などに有効である。この場合では、Ｎ１のタイプ内識別子として、仮想ＬＡＮ番号に加えて、仮想ＬＡＮのＩＰセグメント情報を付加し、Ｎ２のタイプ内識別子として、仮想インタフェース番号に加えて、インタフェースのＩＰアドレスを付加する。ＩＰセグメントの情報はコンフィグに記載されているため、この情報を抽出するようにノードパターン管理テーブル２４１を拡張するだけでよい。
【０１５０】
そして、ＬＡＮの物理的な結線情報を加味する方法である。この方法では、新たにノード、エッジの体系を定義しなおす必要があり、それらはノードＮ１、Ｎ２、Ｎ３、エッジＥ０、Ｅ１、Ｅ２、Ｅ３である。ノードＮ１は物理インタフェースを表し、ノードＮ２、Ｎ３は実施例と同様に、それぞれ、仮想インタフェース、仮想ルータである。エッジＥ０は物理インタフェース間が物理リンクで接続されていることを意味し、エッジＥ１は物理インタフェースと仮想インタフェースとの設定関係を意味し、エッジＥ２、Ｅ３は実施例と同様である。再定義するノードタイプＮ１が持つべき要素は３つあり、それらはノードタイプ、機器識別子と、タイプ内識別子として物理インタフェース識別子と仮想ＬＡＮ識別子のペアである。２つの物理機器がリンクで結ばれている場合は、ふたつのノードＮ１がエッジＥ０で結ばれる。物理インタフェースに仮想ＬＡＮが割り当てられている場合は、ノードＮ１とＮ２をエッジＥ０で結ぶ。この方法は、物理結線情報が入手できる場合に、仮想ＬＡＮの詳細なトポロジを把握する際に有用である。
【０１５１】
最後に、サーバ、ストレージの情報を含める方法である。サーバおよびストレージも、本実施例で定義したノードＮ１、Ｎ２、Ｎ３、エッジＥ１、Ｅ２、Ｅ３を用いて表現できる。サーバ機器に関する情報として、ＶＭはノードＮ３、ｖＮＩＣ、ｖＨＢＡはノードＮ２に対応する。ストレージ機器やＳＡＮスイッチ機器に関する情報として、ＬＵおよびＶＳＡＮがノードＮ３、ＶＳＡＮインタフェースやＮＰＩＶによって生成される仮想インタフェースがノードＮ２、Ｚｏｎｉｎｇによって生成されるゾーンがノードＮ１に対応する。これら機能要素の関連付けは、同様にエッジとして表現される。また、本実施例で定義したノードＮ１、Ｎ２、Ｎ３、エッジＥ１、Ｅ２、Ｅ３とは異なるノードとエッジを定義し、それぞれのノードとエッジをサーバ、ストレージの仮想化技術に対応させてもよい。
【０１５２】
ネットワーク機器のコンフィグは、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）で収集されるＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）でもよい。この方法をとる場合、ネットワーク機器管理テーブル２０４に必要な情報は、ＳＮＭＰのコミュニティ名などである。また、ノードパターン管理テーブル２４１、エッジパターン管理テーブル２４２の設定パターンには、ＭＩＢの形式にしたがうように改変する必要がある。
【符号の説明】
【０１５３】
１００  データセンタ
１０１  ネットワーク
１０２  ファイアウォール
１０３  ロードバランサ
１０４  Ｌ３スイッチ
１０５ａ、１０５ｂ  Ｌ２スイッチ
１０６ａ、１０６ｂ、１０６ｃ、１０６ｄ  サーバ
１０７ａ、１０７ｂ  ＦＣスイッチ
１０８ａ、１０８ｂ  ストレージ
１０９  管理サーバ
１１０  コンソール
２０１  コンフィグ収集部
２０２  トポロジ視覚化部
２０３  管理要求受付部
２０４  ネットワーク機器管理テーブル
２０５  生成トポロジＤＢ
２０６  論理トポロジ生成部
２１１  ネットワーク機器情報登録部
２１２  コンフィグ収集部
２２１  ＧＵＩ表示制御部
２３１  論理トポロジ生成・管理テーブル
２３２  ノードパターン登録部
２３３  エッジパターン登録部
２３４  ノード生成部
２３５  エッジ生成部
２３６  論理トポロジ構築部
２４１ａ、２４１ｂ、２４１ｃ  ノードパターン管理テーブル
２４２ａ、２４２ｂ、２４２ｃ  エッジパターン管理テーブル
２４３  ノード管理テーブル
２４４  エッジ管理テーブル
８０１  ノードパターンテーブル呼出部
８０２  ノードパターン抽出部
８０３  ノードパラメータ抽出部
８０４  ノード情報生成部
８０５  ノード識別子生成部
８０６  ノード情報登録部
９０１  エッジパターンテーブル呼出部
９０２  エッジパターン抽出部
９０３  エッジパラメータ抽出部
９０４  エッジ情報生成部
９０５  ノード検索部
９０６  エッジ識別子生成部
９０７  エッジ情報登録部
１５０１  論理トポロジ管理画面
１５０２  トポロジ表示タブ
１５０３  パターン一覧タブ
１５１１  トポロジ表示エリア
１５１２  機器一覧エリア
１５２１  生成トポロジ
１５２２  ノード追加ボタン
１５２３  ノード削除ボタン
１５２４  エッジ追加ボタン
１５２５  エッジ削除ボタン
１５３１  機器一覧
１５３２  機器情報登録ボタン
１５３３  コンフィグ収集実行ボタン
１５３４  解析実行ボタン
１５３５  トポロジ表示実行ボタン
【図１】
0005836042.tif 000002
【図２】
0005836042.tif 000003
【図３】
0005836042.tif 000004
【図４】
0005836042.tif 000005
【図５】
0005836042.tif 000006
【図６】
0005836042.tif 000007
【図７】
0005836042.tif 000008
【図８】
0005836042.tif 000009
【図９】
0005836042.tif 000010
【図１０】
0005836042.tif 000011
【図１１】
0005836042.tif 000012
【図１２】
0005836042.tif 000013
【図１３】
0005836042.tif 000014
【図１４】
0005836042.tif 000015
【図１５】
0005836042.tif 000016
【図１６】
0005836042.tif 000017