(57)【要約】【課題】ネットワークの接続情報を取得し、ネットワーク構成を検出する。【解決手段】ネットワークの接続関係を、所定のネットワーク機器をルートノードとする木構造として取得する方法であり、各ネットワーク機器からその機器が有するポートと各ポートの先に接続されているネットワーク機器に関する情報を取得する工程と、木構造において任意の部分木の大きさは当該部分木を含む上流の部分木の大きさよりも小さいことを利用してネットワークの接続関係を決定する解析工程と含む。解析工程では、下流側ポートの先に接続されている機器のうち、下流側機器数が最大のものをその下流側ポートに直接接続されていると決定する処理を繰り返して、上流側から構成を決定していくことが好適である。【選択図】図５
2010097273.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワーク機器からなるネットワークの接続関係を、所定のネットワーク機器をルートノードとする木構造として取得するネットワーク構成情報取得方法であって、
それぞれのネットワーク機器から、そのネットワーク機器が有するポートと、各ポートの先に接続されているネットワーク機器とに関する情報を取得するポート情報取得工程と、
木構造において任意の部分木の大きさは当該部分木を含む上流の部分木の大きさよりも小さいことを利用してネットワークの接続関係を決定するネットワーク構成解析工程と
を含むことを特徴とするネットワーク構成情報取得方法。
【請求項２】
前記ルートノードがその先に接続されているポートを上流側ポート、その他のポートを下流側ポートと定義したときに、
前記ネットワーク構成解析工程は、
接続関係が既に決定されたネットワーク機器の下流側ポートの先に接続されているネットワーク機器のうち下流側機器数が最も多いものを、前記接続関係が決定されたネットワーク機器の下流側ポートに直接接続されているネットワーク機器であると判断して接続関係を決定する工程を、前記ルートノードを最初に接続関係が決定されたネットワーク機器として繰り返し実行する
ことを特徴とする請求項１に記載のネットワーク構成情報取得方法。
【請求項３】
接続関係が既に決定されたネットワーク機器が複数の下流側ポートを有する場合に、少なくとも２個以上の下流側ポートについて、下流側の接続関係の決定を並列して実行する
ことを特徴とする請求項２に記載のネットワーク構成情報取得方法。
【請求項４】
前記ルートノードがその先に接続されているポートを上流側ポート、その他のポートを下流側ポートと定義したときに、
前記ネットワーク構成解析工程は、
前記ルートノードを特定した後に、
前記ルートノード以外のネットワーク機器について、下流側機器数が多いネットワーク機器から順番に、上流側ポートの接続される機器を特定して接続関係を決定していく
ことを特徴とする請求項１に記載のネットワーク構成情報取得方法。
【請求項５】
前記ルートノードがその先に接続されているポートを上流側ポート、その他のポートを下流側ポートとしたときに、
前記ネットワーク構成解析工程は、
前記複数のネットワーク機器のうち、下流側ポートを持たないネットワーク機器をエッジノードとして特定し、
エッジノード以外のネットワーク機器について、下流側機器数が少ないネットワーク機器から順番に、下流側ポートに直接接続される機器を特定して接続関係を決定していく
ことを特徴とする請求項１に記載のネットワーク構成情報取得方法。
【請求項６】
前記ルートノードがその先に接続されているポートを上流側ポート、その他のポートを下流側ポートとしたときに、
前記ネットワーク構成解析工程は、
前記複数のネットワーク機器のうち、下流側ポートを持たないネットワーク機器をエッジノードとして接続関係を決定した後に、
接続関係が決定されたネットワーク機器以外のネットワーク機器を対象に、下流側機器が全て既に接続関係が決定されたネットワーク機器であるネットワーク機器を探し、そのネットワーク機器についての接続関係を決定する工程を、繰り返し実行する
ことを特徴とする請求項１に記載のネットワーク構成情報取得方法。
【請求項７】
前記ネットワーク機器はＬ２スイッチであり、
各Ｌ２スイッチが有するポートとの各ポートの先に接続されているＬ２スイッチに関する情報は、ＳＮＭＰによって取得される
ことを特徴とする請求項１〜６のいずれかに記載のネットワーク構成情報取得方法。
【請求項８】
複数のネットワーク機器からなるネットワークの構成を、所定のネットワーク機器をルートノードとする木構造として取得するネットワーク構成情報取得装置であって、
それぞれのネットワーク機器から、そのネットワーク機器が有するポートと、各ポートの先に接続されているネットワーク機器とに関する情報を取得するポート情報取得手段と、
木構造において任意の部分木の大きさは当該部分木を含む上流の部分木の大きさよりも小さいことを利用してネットワークの接続関係を決定するネットワーク構成解析手段と
を有することを特徴とするネットワーク構成情報取得装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、既存ネットワークの接続関係を解析する技術に関する。
【背景技術】
【０００２】
近年のコンピュータネットワークは大規模化しており、数十、数百のネットワーク機器が接続されている。このようなコンピュータネットワークを的確に管理するためには、最新のネットワーク構成を管理者が把握している必要がある。
【０００３】
ネットワーク構成を管理するための最も原始的な方法は、ネットワーク構成図を手作業で作成し、ネットワーク構成に変更を加えるたびに構成図の方も更新する方法である。この方法は、構成図の更新が煩わしいだけでなく、構成図の更新を忘れた場合に最新の構成が把握できないといった問題や、現在の構成図が最新の構成を正しく反映しているか確認できないといった問題がある。
【０００４】
そこで、ネットワークの構成を自動的に取得できることが望まれる。このようなネットワーク構成を自動的に取得する技術はいくつか提案されている。
【特許文献１】特開２００４−８６７２９号公報
【特許文献２】特開２００３−１２４９３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、現状のネットワークの接続情報の取得は不正確であるという問題がある。そこで、本発明は、ネットワークの接続情報を正確に取得することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、複数のネットワーク機器からなるネットワークの接続関係を、所定のネットワーク機器をルートノードとする木構造として決定するネットワーク構成情報取得方法である。本発明は、木構造においては、任意の部分木の大きさはその部分木を含む上流の部分木の大きさよりも小さいことを利用してネットワークの構成を決定することを特徴とする。
【０００７】
本発明に係るネットワーク構成情報取得方法では、大別して、木構造の上流側から順に接続関係を決定していく方法と、下流側から順に接続関係を決定していく方法の２通りの方法を採用することができる。
【０００８】
なお、本明細書においては、「上流」「下流」の語を次の意味で用いる。すなわち、所定のネットワーク機器を木構造におけるルートノードとして、そのルートノードが接続されている方向を「上流」、ルートノードが接続されていない方向（すなわち、エッジノードの方向）を「下流」と定義する。また、ネットワーク機器が有するポートに関して、ルートノードがその先に接続されているポートを「上流側ポート」、その他のポートを「下流側ポート」と称する。
【０００９】
本発明の第１態様は、木構造の上流側から順番に接続関係を決定する。まず、全てのネットワーク機器から、各機器が有するポートと、各ポートの先に接続されているネットワーク機器に関する情報を取得する。なお、「ポートの先に接続されている」というのは、ポートに直接接続されている場合と、他のネットワーク機器を介して接続されている場合
の両方を含むものとする。
【００１０】
そして、次のようにして上流側のネットワーク機器から順に接続関係を決定する。初めに、ルートノードを接続関係が決定されたネットワーク機器として扱う。これ以降は、接続関係が既に決定されたネットワーク機器が備える下流側ポート（以下、着目ポートと呼ぶ）の先に接続されているネットワーク機器のうち、下流側ポートの先に接続されている機器（以下、下流側機器と呼ぶ）の数が最も多い機器を、当該着目ポートに直接接続されているネットワーク機器であると判断するという処理を繰り返し実行する。つまり、上流側から着目ポートに直接接続されているネットワーク機器はどれであるかを決定していく。この繰り返し処理によって、全てのネットワーク機器の接続関係を決定できる。
【００１１】
なお、どのような順序で着目ポートを選択していくかは任意である。深さ優先や幅優先など種々の方法を採用可能である。また、接続関係が決定されたネットワーク機器が複数の下流側ポートを有する場合、それぞれのポートについて並列に（同時に）接続関係の決定処理を実行することも好適である。
【００１２】
本態様では、木構造において任意の部分木の大きさはそれを含む部分木の大きさよりも小さいこと、逆に言うと、任意の部分木の大きさはその部分木に含まれる部分木よりも大きいことを利用している。本態様では、この原理を応用して、接続関係が決定されていないネットワーク機器のうち、自らをルートとする部分木の大きさが最も大きいものが、それらの機器のうちで最も上流側に位置することを利用している。
【００１３】
本態様に係るネットワーク構成情報取得方法によれば、複数のネットワーク機器からなるネットワークの接続関係を、確実に木構造として決定することが可能となる。また、上流側から決定することで、複数のポートについて処理を並列して行うことが可能であるため、処理を高速に行うことも可能である。
【００１４】
本発明の第２態様は、第１態様と同様に木構造の上流側から順番に接続関係を決定する。本態様では、第１態様と同様に各ネットワーク機器のポートに関する情報を取得した後、下流側機器の数が多い機器から順番に、その上流側ポートに直接接続される機器を特定して接続関係を決定していく。接続関係が未決定の機器のうち下流側機器数が最大のものは、接続関係が決定済みの機器の下流側ポートに上流側ポートが直接接続されるものであるため、その接続関係を決定できる。
【００１５】
本態様では、部分木の大きさはそれを含む上流側の部分木の大きさよりも小さいことの応用として、ルートノードの下流側機器数が最も多いということを利用している。つまり、上流側からネットワーク構成（木構造）を決定していく際に、接続関係が未決定な機器から構成される木構造（複数の木構造となる場合はそのいずれか）のルートノードは、下流側機器が最も多い機器であるということを利用している。本態様に係るネットワーク構成情報作成方法によっても、複数のネットワーク機器からなるネットワークの接続関係を、確実に木構造として決定することが可能となる。
【００１６】
本発明の第３態様は、木構造の下流側から順番に接続関係を決定する。第１，２態様と同様に各ネットワーク機器のポートに関する情報を取得した後、次のようにして下流側のネットワーク機器から順に接続関係を決定する。初めに、下流側ポートを持たないネットワーク機器をエッジノード（リーフノード）として特定する。この後は、エッジノード以外を対象に、下流側機器数が少ないネットワーク機器から順番に、その下流側ポートに直接接続されている機器を特定して接続関係を決定していく。
【００１７】
ここで、ネットワーク機器の下流側ポートに直接接続されると決定されたネットワーク
機器を接続関係決定済みの機器としていくと、処理対象のネットワーク機器の各下流側ポートの先に接続されているネットワーク機器のうち、接続関係が未決定なネットワーク機器は１つのみとなる。したがって、そのネットワーク機器を当該処理対象のスイッチの下流側ポートに直接接続されているネットワーク機器として特定することができる。
【００１８】
あるいは、処理対象のネットワーク機器の各下流側ポートの先に接続されているネットワーク機器のうち、その下流側機器数が最も多いネットワーク機器を、当該下流側ポートに直接接続されているものとして決定することもできる。
【００１９】
本態様によっても、部分木の大きさはそれを含む上流側の木の大きさよりも小さいことを利用して、複数のネットワーク機器からなるネットワークの接続関係を、確実に木構造として決定することが可能となる。
【００２０】
本発明の第４態様は、第３態様と同様に木構造の下流側から順番に接続関係を決定する。第１〜３態様と同様に各ネットワーク機器のポートに関する情報を取得した後、次のようにして下流側のネットワーク機器から順に接続関係を決定する。初めに、下流側ポートを持たないネットワーク機器をエッジノード（リーフノード）として接続関係を決定する。この後は、接続関係がまだ決定されていないネットワーク機器を対象に、下流側機器が全て接続関係が決定されたネットワーク機器であるようなネットワーク機器を探し、そのネットワーク機器についての接続関係を決定する。この処理を繰り返すことで、全てのネットワーク機器の接続関係を決定することができる。
【００２１】
本態様では、部分木の大きさはそれを含む上流側の木の大きさよりも小さいことの応用として、エッジに近いノードほど下流側機器の数が少ないことを利用している。本態様に係るネットワーク構成情報取得方法によっても、複数のネットワーク機器からなるネットワークの接続関係を、確実に木構造して決定することが可能となる。
【００２２】
なお、本発明は、上記処理の少なくとも一部を有するネットワーク構成情報取得方法として捉えることができる。また、本発明は、上記処理の少なくとも一部を実行するネットワーク構成情報取得装置、または、かかる方法を実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【発明の効果】
【００２３】
本発明によれば、ネットワークの接続情報を正確に取得することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【００２５】
（第１実施形態）
本実施形態では、複数のＬ２スイッチから構成されるネットワークの物理的接続関係を取得する方法（ネットワーク構成情報取得方法）と、その処理を実行する管理用端末（ネットワーク構成情報取得装置）の構成を説明する。Ｌ２スイッチからなるネットワークはループを含まないため、図１に示すように、任意のスイッチをルート（根）ノードとする木構造として表せる。図１では、管理用端末１が直接接続されているスイッチＡをルートノードとしているが、どのスイッチをルートノードとしても構わない。
【００２６】
ここで、管理用端末１はＳＮＭＰマネージャとしての機能し、各スイッチはＳＮＭＰエージェントとして機能する。各スイッチは、ＭＡＣ（Media Access Control）アドレスとポートの組み合わせを公開するために、ＢＲＩＤＧＥ−ＭＩＢ（ＲＦＣ１４９３）のｄｏ
ｔ１ｄＴｐＦｄｂＰｏｒｔを実装しているものとする。
【００２７】
〈全体概要〉
管理用端末１は、各スイッチからポート接続に関する情報を取得しそれを解析することで、ネットワークの構成（物理的接続）を図１に示すような木構造として取得する。
【００２８】
図２は、管理用端末１の機能構成を示すブロック図である。図２に示すように、管理用端末１は、ポート情報取得部１１とポート情報テーブル１２とネットワーク構成解析部１３を有する。これらの各機能部は、補助記憶装置に格納された各種のプログラムが主記憶装置にロードされてＣＰＵによって実行されることにより実現されている。ただし、一部または全部の機能部が専用のハードウェアによって実現されても構わない。
【００２９】
各機能部の働きを図３のフローチャートを参照して説明する。図３は、ネットワーク構成情報取得処理全体の概要を表すフローチャートである。まず、初期処理（Ｓ１）として、ポート情報取得部１１は、各スイッチのＩＰアドレスを取得する。各スイッチのＩＰアドレスは種々の方法により取得できる。たとえば、各スイッチのＩＰアドレスを設定情報として外部から入力する構成としても良い。あるいは、ＩＰアドレスの範囲指定を受けて、それらのアドレスに対してＰｉｎｇを投げて応答が得られたアドレスを、スイッチのＩＰアドレスとして取得しても良い。
【００３０】
また、初期処理として、各スイッチの学習テーブル（ＦＤＢ）に他のスイッチに関する情報を登録するために、管理用端末が各スイッチとの間で通信を行う。ただし、Ｐｉｎｇを利用して機器の検出を行っている場合には改めて通信を行う必要はない。これにより、各スイッチは自ノードよりも下流側のスイッチを送信先とする通信を中継することになるので、下流側の全てのスイッチに関する情報が学習テーブルに登録されることになる。一方、上流側の機器については、管理用端末のみが学習テーブルに登録される。
【００３１】
次に、ポート情報取得部１１は各スイッチのポート情報を取得してポート情報テーブル１２に格納する（Ｓ２）。ここで、スイッチのポート情報とは、各スイッチ（のＭＡＣアドレス）がどのポートの先に接続されているかという情報である。この情報は、各スイッチの学習テーブル（ＦＤＢ）から取得可能である。より具体的には、各スイッチに対して、その他のスイッチのＭＡＣアドレスがどのポートの先に接続されているかを、ＢＲＩＤＧＥ−ＭＩＢのｄｏｔ１ｄＴｐＦｄｂＰｏｒｔを利用して取得すればよい。なお、各スイッチのＭＡＣアドレスは、ＡＲＰ（Address Resolution Protocol）テーブルを参照する
ことで得られる。
【００３２】
また、ポート情報取得部１１は、管理用端末１が各スイッチのどのポートの先に接続されているかを上記と同様にして求める。本実施形態では管理用端末１が直接接続されているスイッチをルートノードと定義しているので、管理用端末１がポートの先に接続されているか否かによって、そのポートが上流側ポートであるか、下流側ポートであるか判断可能である。
【００３３】
このようにして作成されるポート情報テーブル１２の例を図４に示す。図４に示しているデータの内容は、図１に示されるネットワーク構成に対応したものである。ポート情報テーブル１２は、各スイッチＡ〜Ｌが備えるポートの先にどのスイッチが接続されているかを格納している。なお、図４の中で、ＭＴとあるのは管理用端末１を示している。したがって、この管理用端末１（ＭＴ）が接続されているポートが上流側ポートとして認識される。
【００３４】
以上のように、ポート情報テーブル１２には、各スイッチのポートの先にどのスイッチ
が接続されるか格納されることになる。ただし、下流側ポートに関する情報は全て正しく反映されるものの、上流側ポートに関する情報は全て反映されるとは限らない。図４では、上流側ポートには管理用端末に関する情報のみが登録されている状況を示している。
【００３５】
ポート情報テーブル１２において上流側ポートに関する情報が完全に反映されないのは、各スイッチの学習テーブル（ＦＤＢ）に、自身よりも下流側のスイッチに関する情報は完全に登録されているが、上流側のスイッチについては完全に登録されているとは限らないからである。たとえば、スイッチＡの学習テーブルにスイッチＢの情報が登録されるためには、スイッチＢを送信先または送信元とする通信をスイッチＡが中継する必要がある。ここで、スイッチＢがスイッチＡよりも下流側であれば、管理用端末がスイッチＢと通信することでその通信がスイッチＡを介することになるので、スイッチＡの学習テーブルにスイッチＢに関する情報が登録される。初期処理として管理用端末はネットワーク内の機器を探索するために全てのスイッチと通信しているので、各スイッチは自身より下流側に位置する全てのスイッチについてそれを送信先とする通信を中継している。したがって、この通信により各スイッチに下流側の全てのスイッチが登録されることになる。これに対して、管理用端末と各スイッチとの間で通信しても、各スイッチは自身よりも上流側にあるスイッチを送信先または送信元とする通信を中継することはないので、上流側ポートについての学習テーブルは完全なものとは限らない。
【００３６】
もっとも、上流側のスイッチを送信先または送信元とする通信を下流側のスイッチを中継していた場合には、上流側ポートに関する情報を取得することができる。したがって、たとえば、ポート情報テーブル１２を作成する際に、エッジノード（最下流のスイッチ）を制御して、そのスイッチの全ての上流側のスイッチと通信を行わせれば、上流側ポートに関する情報も完全に登録されたポート情報テーブル１２を作成することができる。ただし、以下では、ポート情報テーブル１２は上流側ポートに関する情報は不完全であるとして説明する。
【００３７】
〈ネットワーク構成解析処理〉
ポート情報テーブル１２が作成された後に、ネットワーク構成解析部１３がポート情報テーブル１２を解析してネットワークの構成情報を取得する（Ｓ３）。このネットワーク構成解析処理のより詳細な内容を、図５のフローチャートを参照しつつ説明する。
【００３８】
まず、ポート情報テーブル１２から、ルートノードがどのスイッチであるかを決定する（Ｓ１１）。ルートノードは下流側ポートに接続されている機器の数が最も多いスイッチとして特定できる。本実施形態では、ルートノードが最初に接続関係が決定されたスイッチである。
【００３９】
次に、接続関係が決定済みのスイッチに、どの機器が接続するか未決定の下流側ポートがあるか判断する（Ｓ１２）。接続機器が未決定の下流側ポートがある場合（Ｓ１２−ＹＥＳ）には、以下の手順で各下流側ポートに直接接続されているスイッチを決定する。
【００４０】
まず、接続機器が未決定の下流側ポートのうちから１つのポートを選択する（Ｓ１３）。以下では、このポートのことを処理対象ポートという。接続機器が未決定の下流側ポートが複数ある場合は、任意のポートを選択して良い。次に、処理対象ポートの下流に接続されているスイッチのうち、自身の下流側ポートに接続されているスイッチの数が最も多いスイッチを選択する（Ｓ１４）。このようにして選択されたスイッチを、処理対象ポートに直接接続しているスイッチであると決定する（Ｓ１５）。これは以下の理由による。まず、処理対象ポートの下流側に接続されているスイッチは、処理対象ポートに直接接続されているスイッチをルートノードとする部分木として表せる。そして、この部分木の大きさは、その中に含まれる部分木の大きさよりも大きい。したがって、下流側のスイッチ
数が最も多いものが、この部分木のルートノードすなわち処理対象ポートに直接接続されるスイッチであると判断できる。
【００４１】
上記のステップＳ１３〜Ｓ１５の処理を、接続機器が未決定のポートが無くなるまで繰り返し実行する。接続機器が未決定の下流側ポートが無くなった時点（Ｓ１２−ＮＯ）で処理が終了し、ネットワーク構成情報が木構造として得られる。
【００４２】
〈動作例〉
図１に示すネットワークを例に、本実施形態におけるネットワーク構成解析処理の具体的な動作例を説明する。図１のネットワークに対応するポート情報テーブル１２は図４に示されているので、図４も参照しながら説明する。
【００４３】
まず、ポート情報テーブル１２を参照して、下流側ポートに接続されている機器の数が最も多いスイッチＡを、ルートノードとして決定する（Ｓ１１）。この例では、以降の物理接続関係の決定を、木構造の深さを優先して決定する。
【００４４】
スイッチＡのポートＰ２には、スイッチＢ，Ｅ，Ｆが接続されており、各スイッチの下流側機器数はそれぞれ、２，０，０である。したがって、スイッチＡのポートＰ２に直接接続されるスイッチは、下流側機器数が最も多いスイッチＢであると決定する。
【００４５】
スイッチＢにはポートＰ２，Ｐ３の２つの下流側ポートがある。スイッチＢのポートＰ２に接続される機器はスイッチＥの１つだけであるので、スイッチＢのポートＰ２にはスイッチＥが直接接続されることが分かる。スイッチＥは下流側ポートを持たない。スイッチＢのポートＰ３に接続される機器はスイッチＦの１つだけであるので、スイッチＢのポートＰ３にはスイッチＦが直接接続されることが分かる。スイッチＦは下流側ポートを持たない。
【００４６】
スイッチＡのポートＰ３にはスイッチＣ，Ｇが接続されており、各スイッチの下流側機器数はそれぞれ、１，０である。したがって、スイッチＡのポートＰ３に直接接続されるスイッチは、下流側機器が最も多いスイッチＣであると決定する。スイッチＣのポートＰ２に接続される機器はスイッチＧの１つだけであるので、スイッチＣのポートＰ２にはスイッチＧが直接接続されることが分かる。スイッチＧは下流側ポートを持たない。
【００４７】
スイッチＡのポートＰ４にはスイッチＤ，Ｈ，Ｊ，Ｋ，Ｌが接続されており、各スイッチの下流側機器数はそれぞれ、４，０，２，０，０である。したがって、スイッチＡのポートＰ４に直接接続されるスイッチは、下流側機器数が最も多いスイッチＤであると決定する。
【００４８】
スイッチＤにはポートＰ２，Ｐ３の２つの下流側ポートがある。スイッチＤのポートＰ２に接続される機器はスイッチＨの１つだけであるので、スイッチＤのポートＰ２にはスイッチＨが直接接続されることが分かる。スイッチＤのポートＰ３には、スイッチＪ，Ｋ，Ｌが接続されており、各スイッチの下流側機器数はそれぞれ、２，０，０である。したがって、スイッチＤのポートＰ３に直接接続されるスイッチは、下流側機器数が最も多いスイッチＪであると決定する。
【００４９】
スイッチＪにはポートＰ２，Ｐ３の２つの下流側ポートがある。スイッチＪのポートＰ２に接続される機器はスイッチＫの１つだけであるので、スイッチＪのポートＰ２にはスイッチＫが直接接続されることが分かる。スイッチＫは下流側ポートを持たない。スイッチＪのポートＰ３に接続される機器はスイッチＬの１つだけであるので、スイッチＪのポートＰ３にはスイッチＬが直接接続されることが分かる。スイッチＬは下流側ポートを持
たない。
【００５０】
以上により、全てのポートに関して直接接続されるスイッチが決定され、ネットワークの物理的接続を木構造として取得する処理が完了する。
【００５１】
〈変形例〉
上記の例では、各ポートについて深さ優先で直接接続される機器を決定しているが、どの順序で接続機器を決定していっても構わない。たとえば、幅優先で（すなわち、スイッチＢ，Ｃ，Ｄ、・・・の順で）接続機器を決定していっても構わない。
【００５２】
なお、１つのスイッチが複数の下流側ポートを備える場合、各ポートについて独立してネットワーク構成を決定することができる。たとえば、スイッチＡはポートＰ２，Ｐ３，Ｐ４の下流側ポートを有しており、それ以降の物理接続はこれらのポートの先にある部分木として独立して求めることができる。したがって、各ポートごとに並列化処理が可能である。
【００５３】
（第２実施形態）
本実施形態では、第１実施形態と同様に上流側からネットワークの物理的接続関係を取得する。基本的な構成は第１実施形態と同様であり、図３のフローチャートにおけるステップＳ３のネットワーク構成解析処理の内容が異なるだけである。図６に本実施形態におけるネットワーク構成解析処理Ｓ３の詳細なフローチャートを示す。以下、図６を参照して本実施形態におけるネットワーク構成解析処理を説明する。
【００５４】
まず、ポート情報テーブル１２から、ルートノードがどのスイッチであるかを決定する（Ｓ２１）。ルートノードは下流側ポートに接続されている機器の数が最も多いスイッチとして特定できる。本実施形態では、ルートノードが最初に接続関係が決定されたスイッチである。
【００５５】
次に、各スイッチの下流側ポートの先に接続されている機器の数（下流側ポートが複数ある場合は、全ポートについての合計）を求める（Ｓ２２）。そして、接続関係が未決定のスイッチがあるか判定し（Ｓ２３）、未決定のスイッチがある間は以下の処理を繰り返す。
【００５６】
まず、接続関係が未決定のスイッチのうち、下流側機器数が最大のスイッチを選択する（Ｓ２４）。そして、選択されたスイッチの接続関係を決定する（Ｓ２５）。この接続関係の決定は、選択されたスイッチの上流側ポートに直接接続されるスイッチを決定することにより行われる。このスイッチは、接続関係が決定済みのスイッチのうち、選択されたスイッチがその先に接続されているポートを有するスイッチとして決定することができる。そのようなポートを有するスイッチが複数ある場合には、そのポートの先に接続されている機器の数が最も少ないスイッチを、選択されたスイッチの上流側ポートに直接接続すると判断する。部分木の大きさはその部分木を含む部分木の大きさよりも小さいことから、このように判断可能である。
【００５７】
この処理を全てのスイッチの接続関係が定まるまで行うことで、ネットワーク構成を木構造として取得することができる。
【００５８】
〈動作例〉
図１に示すネットワークを例に、本実施形態におけるネットワーク構成解析処理の具体的な動作例を説明する。図１のネットワークに対応するポート情報テーブル１２は図４に示されているので、図４も参照しながら説明する。
【００５９】
まず、ポート情報テーブル１２を参照して、下流側ポートに接続されている機器の数が最も多いスイッチＡを、ルートノードとして決定する（Ｓ２１）。次に、各スイッチについて下流側ポートに接続されている機器の数を求める（Ｓ２２）。下流側機器数が多い順に記載すると、Ｄが４個、Ｂ，Ｊが２個、Ｃが１個、Ｅ，Ｆ，Ｇ，Ｈ，Ｋ，Ｌが０個である。
【００６０】
これらのスイッチのうち、まず下流側機器数が最も多いスイッチＤについて接続関係を決定する。接続関係が決定済みのスイッチはＡだけであり、ＡのポートＰ４にスイッチＤが接続されていることがポート情報テーブル１２から分かる。したがって、スイッチＤの上流側ポートに直接接続されるスイッチはＡ（ポートＰ４）であると決定する。
【００６１】
次に下流側機器数が多いスイッチＢ，Ｊについて接続関係を決定する。ＢとＪの２つのうちどちらを先に処理しても構わない。ここでは、Ｂを先に処理するものとする。接続関係が決定済みのスイッチＡ，Ｄのうち、スイッチＢを下流側に持つのはスイッチＡのポートＰ２だけであることがポート情報テーブル１２から分かる。したがって、スイッチＢの上流側ポートに直接接続されるスイッチはＡ（ポートＰ２）であると決定する。接続関係が決定済みのスイッチＡ，Ｂ，Ｄのうち、スイッチＪを下流側に持つのはスイッチＡのポートＰ４とスイッチＤのポートＰ３であることがポート情報テーブル１２から分かる。そして、スイッチＡのポートＰ４の先に接続されている機器数は３個であるのに対し、スイッチＤのポートＰ３の先に接続されている機器数は２個である。したがって、スイッチＤの方がより下流側に位置するものであり、スイッチＪの上流側ポートに直接接続されるスイッチはＤ（ポートＰ３）であると決定する。
【００６２】
次に下流側機器数が多いスイッチＣについて接続関係を決定する。接続関係が決定済みのスイッチＡ，Ｂ，Ｄ，Ｊのうち、スイッチＣを下流側に持つのはスイッチＡのポートＰ３のみである。したがって、スイッチＣの上流側ポートに直接接続されるスイッチはＡ（ポートＰ３）であると決定する。
【００６３】
次に下流側機器数が多いスイッチＥ，Ｆ，Ｇ，Ｈ，Ｋ，Ｌについて接続関係を決定する。これらのスイッチをどの順序で処理しても構わない。ここでは、Ｅ，Ｆ，Ｇ，Ｈ，Ｋ，Ｌの順番で処理するものとする。接続関係が決定済みのスイッチのうちスイッチＥが下流側に接続されているのは、スイッチＡのポートＰ２とスイッチＢのポートＰ２である。このうち接続機器数が少ないポートは、スイッチＢのポートＰ２であるので、スイッチＥの上流側ポートに直接接続されるスイッチはＢ（ポートＰ２）であると決定する。その他のスイッチについても同様の処理を行うことで、スイッチＦ，Ｇ，Ｈ，Ｋ，Ｌの上流側ポートに直接接続されるスイッチはそれぞれ、Ｂ（Ｐ３），Ｃ（Ｐ２），Ｄ（Ｐ２），Ｊ（Ｐ２），Ｊ（Ｐ３）であると決定される。
【００６４】
以上により、全てのスイッチについて接続関係が決定され、ネットワークの物理的接続を木構造として取得する処理が完了する。
【００６５】
（第３実施形態）
本実施形態では、第１，２実施形態とは逆に、下流側からネットワークの物理的接続関係を取得する。基本的な構成は第１，２実施形態と同様であり、図３のフローチャートにおけるステップＳ３のネットワーク構成解析処理の内容が異なるだけである。図７に本実施形態におけるネットワーク構成解析処理Ｓ３の詳細なフローチャートを示す。以下、図７を参照して本実施形態におけるネットワーク構成解析処理を説明する。
【００６６】
まず、ポート情報テーブル１２から、エッジノードを決定する（Ｓ３１）。下流側ポー
トを持たないスイッチを、エッジノードとして決定することができる。次に、各スイッチ（エッジノード以外でよい）について、下流側ポートの先に接続される機器の数を求める（Ｓ３２）。そして、エッジノード以外のスイッチについて、下流側機器数少ない順番を、各スイッチの処理順序として決定する（Ｓ３３）。なお、下流側機器数が同じスイッチがある場合は、それらのスイッチについては任意の順序で処理して良い。
【００６７】
以下、未処理のスイッチがある間（Ｓ３４−ＹＥＳ）、ステップＳ３３で決定した処理順序にしたがって、接続関係を決定していく。まず、次の処理順序のスイッチ（処理対象スイッチ）を選択し（Ｓ３５）、そのスイッチの下流側ポートに直接接続されるスイッチを決定する（Ｓ３６）。これは処理対象スイッチの下流側に接続されるスイッチのうち、接続関係が未決定のもの（後述する接続済みリストに追加されていないもの）として特定可能である。初めは、下流側機器数が最も少ないスイッチの下流側ポートにはエッジノードのみが現れるので、そのエッジノードを下流側ポートに直接接続されるスイッチとして決定する。次に、処理対象スイッチの下流側ポートに直接接続されると判断されたスイッチを、接続済みリストに追加する。このようにすることで、次以降の処理対象スイッチについて下流側ポートに直接接続されるスイッチを決定する（Ｓ３６）際に、下流側機器のうち接続済みリストに追加されていないものが１つだけとなり、それを下流側ポートに直接接続されるスイッチとして決定可能となる。
【００６８】
この処理をステップＳ３３で決定した順序で全てのスイッチに対して実行することで、ネットワークの物理的接続が木構造として得られる。
【００６９】
〈動作例〉
図１に示すネットワークを例に、本実施形態におけるネットワーク構成解析処理の具体的な動作例を説明する。図１のネットワークに対応するポート情報テーブル１２は図４に示されているので、図４も参照しながら説明する。
【００７０】
まず、ポート情報テーブル１２を参照して、下流側ポートを持たないスイッチを、エッジノードとして決定する（Ｓ３１）。ここでは、スイッチＥ，Ｆ，Ｇ，Ｈ，Ｋ，Ｌの６個のスイッチがエッジノードであることが分かる。
【００７１】
次に、各スイッチ（エッジノード以外）の下流側機器数を求める（Ｓ３２）。下流側機器数が少ない順に記載すると、Ｃが１個、Ｂ，Ｊが２個、Ｄが４個、Ａが１０個である。以下の処理をおこなうスイッチの順序を、この下流側機器数が少ない順として決定する（Ｓ３３）。すなわち、処理順序を、Ｃ，Ｂ，Ｊ，Ｄ，Ａの順序として決定する。
【００７２】
まず、スイッチＣが処理対象のスイッチとして選択される。スイッチＣの下流側ポートＰ２には、エッジノードであるスイッチＧのみが接続されていることが、ポート情報テーブル１２から分かる。したがって、スイッチＣの下流側ポートＰ２に直接接続されるスイッチはＧであると決定する。ここで、スイッチＧは接続関係が決定されたので、接続済みリストに追加する。
【００７３】
次に、スイッチＢが処理対象のスイッチとして選択される。スイッチＢの下流側ポートＰ２，Ｐ３には、それぞれエッジノードであるスイッチＥ，Ｆが接続されていることが、ポート情報テーブル１２から分かる（なお、このとき、接続済みリストに追加されているスイッチは除外するが、スイッチＥ，Ｆは接続済みリストに追加されていないので関係ない）。したがって、スイッチＢの下流側ポートＰ２，Ｐ３に直接接続されるスイッチはそれぞれＥ，Ｆであると決定する。ここで、スイッチＥ，Ｆは接続関係が決定されたので、接続済みリストに追加する。この時点で接続済みリストはＥ，Ｆ，Ｇである。
【００７４】
次に、スイッチＪが処理対象のスイッチとして選択される。スイッチＪの下流側ポートＰ２，Ｐ３には、それぞれエッジノードであるスイッチＫ，Ｌが接続されていることが、ポート情報テーブル１２から分かる（なお、このとき、接続済みリストに追加されているスイッチは除外するが、スイッチＫ，Ｌは接続済みリストに追加されていないので関係ない）。したがって、スイッチＪの下流側ポートＰ２，Ｐ３に直接接続されるスイッチは、それぞれスイッチＫ，Ｌであると決定する。ここで、スイッチＫ，Ｌは接続関係が決定されたので、接続済みリストに追加する。この時点で接続済みリストはＥ，Ｆ，Ｇ，Ｋ，Ｌである。
【００７５】
次に、スイッチＤが処理対象のスイッチとして選択される。スイッチＤの下流側ポートＰ２にはエッジノードであるスイッチＨが接続され，下流側ポートＰ３にはスイッチＪ，Ｋ，Ｌが接続されていることが、ポート情報テーブル１２から分かる。ここで、接続関係が決定済みのスイッチ（接続済みリストに追加されているスイッチ）は除外（無視）するので、スイッチＤの下流側ポートＰ２，Ｐ３に直接接続されるスイッチは、それぞれスイッチＨ，Ｊであると決定する。ここで、スイッチＨ，Ｊは接続関係が決定されたので、接続済みリストに追加する。この時点で接続済みリストはＥ，Ｆ，Ｇ，Ｈ，Ｊ，Ｋ，Ｌである。
【００７６】
最後に、スイッチＡが処理対象のスイッチとして選択される。スイッチＡの下流側ポートＰ２にはスイッチＢ，Ｅ，Ｆが接続され、下流側ポートＰ３にはスイッチＣ，Ｇが接続され、下流側ポートＰ４にはスイッチＤ，Ｈ，Ｊ，Ｋ，Ｌが接続されていることが、ポート情報テーブル１２から分かる。ここで、接続関係が決定済みのスイッチ（接続済みリストに追加されているスイッチ）は除外（無視）するので、スイッチＡの下流側ポートＰ２，Ｐ３，Ｐ４に直接接続されるスイッチは、それぞれスイッチＢ，Ｃ，Ｄであると決定する。
【００７７】
以上により、全てのスイッチについて接続関係が決定され、ネットワークの物理的接続を木構造として取得する処理が完了する。
【００７８】
（第４実施形態）
本実施形態では、第３実施形態と同様に下流側からネットワークの物理的接続関係を取得する。基本的な構成は第１〜３実施形態と同様であり、図３のフローチャートにおけるステップＳ３のネットワーク構成解析処理の内容が異なるだけである。図８に本実施形態におけるネットワーク構成解析処理Ｓ３の詳細なフローチャートを示す。以下、図８を参照して本実施形態におけるネットワーク構成解析処理を説明する。
【００７９】
まず、ポート情報テーブル１２から、下流側ポートがないスイッチをエッジノードとして接続関係を決定する（Ｓ４１）。そして、接続関係が未決定のスイッチがある間（Ｓ４２−ＹＥＳ）、以下の処理を繰り返す。
【００８０】
まず、ポート情報テーブル１２を参照して、下流側機器として既に接続関係が決定されたスイッチのみを有するスイッチを選択する（Ｓ４３）。そして、このようなスイッチの下流側ポートに直接接続されるスイッチを特定して、接続関係を決定する（Ｓ４４）。なお、既に接続関係が決定されたスイッチのみを下流側機器として有するスイッチが複数がある場合には、全てについてこの処理を行う。下流側ポートに直接接続されるスイッチは、下流側機器の中から、そのスイッチの下流側機器数が最も多いものとして決定することができる。あるいは、ステップＳ４２〜Ｓ４４の処理ループにおいて直近のループで接続関係が決定されたスイッチを、下流側ポートに直接接続されるスイッチとして決定しても良い。
【００８１】
以上の処理を、全てのスイッチの接続関係が定まるまで行うことで、全てのスイッチのネットワーク構成を木構造として取得することができる。
【００８２】
〈動作例〉
図１に示すネットワークを例に、本実施形態におけるネットワーク構成解析処理の具体的な動作例を説明する。図１のネットワークに対応するポート情報テーブル１２は図４に示されているので、図４も参照しながら説明する。
【００８３】
まず、ポート情報テーブル１２を参照して、下流側ポートを持たないスイッチを、エッジノードとして接続関係を決定する（Ｓ４１）。ここでは、スイッチＥ，Ｆ，Ｇ，Ｈ，Ｋ，Ｌの６個のスイッチがエッジノードであることが分かる。
【００８４】
次に、接続関係が決定していないスイッチ（エッジノード以外のスイッチ）について、下流側ポートに接続されているスイッチの全てが接続関係決定済みのスイッチであるものを探す（Ｓ４３）。この段階で該当するのは、スイッチＢ，Ｃ，Ｊの３つである。次に、これらのスイッチの下流側ポートに直接接続されているスイッチの特定を行う。ポート情報テーブル１２を参照すると、スイッチＢの下流側ポートＰ２，Ｐ３にはそれぞれ、スイッチＥ，Ｆのみが接続されていることから、スイッチＢの下流側ポートＰ２にはスイッチＥが、下流側ポートＰ３はスイッチＦが接続されていると分かる。同様に、スイッチＣの下流側ポートＰ２にはスイッチＧが接続されていると分かり、スイッチＪの下流側ポートＰ２，Ｐ３にはそれぞれスイッチＫ，Ｌが接続されていると分かる。以上により、スイッチＢ，Ｃ，Ｊの接続関係が新たに決定される。
【００８５】
ここまでの処理では、まだ全てのスイッチについて接続関係が決定されていないので、ステップＳ４２〜４４の処理ループを繰り返す。この段階で、接続関係が未決定なスイッチはＡ，Ｄである。これらのうち、下流側ポートに接続されているスイッチの全てが接続関係決定済みのスイッチであるものは、スイッチＤである。そこで、スイッチＤの下流側ポートに直接接続されているスイッチの特定を行う。スイッチＤの下流側ポートＰ２に接続されているスイッチはＨのみなので、下流側ポートＰ２に直接接続されるスイッチはＨであると決定できる。下流側ポートＰ３に接続されているスイッチはＪ，Ｋ，Ｌの３つがある。この場合、最近の処理ループで接続関係が決定されたスイッチＪを下流側ポートＰ３に直接接続されているスイッチとして決定する。なお、各スイッチＪ，Ｋ，Ｌの下流側機器数を求めて、下流側機器数が最も多いものを下流側ポートＰ３に直接接続されるスイッチとしても構わない。以上により、スイッチＤの接続関係が新たに決定される。
【００８６】
ここまでの処理では、まだ全てのスイッチについて接続関係が決定されていないので、ステップＳ４２〜４４の処理ループを繰り返す。この段階で接続関係が未決定なスイッチはＡである。スイッチＡの下流側ポートに接続されている機器は全て接続関係決定済みであるため、スイッチＡの下流側ポートに直接接続されているスイッチの特定を行う。下流側ポートＰ２に関しては、スイッチＢ，Ｅ，Ｆが接続されているが、これらのうち最近の処理ループで接続関係が決定されたスイッチＢを、このポートの直接接続されていると決定する。下流側ポートＰ３に関しても同様に、スイッチＣ，ＤのうちスイッチＣが直接接続されていると決定する。下流側ポートＰ４に関しても、スイッチＤ，Ｈ，Ｊ，Ｋ，ＬのうちスイッチＤがこのポートに直接接続されていると決定する。
【００８７】
以上により、全てのスイッチについて接続関係が決定され、ネットワークの物理的接続を木構造として取得する処理が完了する。
【００８８】
（その他）
上記の実施形態の説明では、管理用端末１が各スイッチのポートに関する情報を取得す
る際に、ＢＲＩＤＧＥ−ＭＩＢ（ＲＦＣ１４９３）のｄｏｔ１ｄＴｐＦｄｂＰｏｒｔを利用しているが、各スイッチの各ポートの先にどのスイッチが接続されているか分かればどのような方法によってポート関する情報を取得しても構わない。たとえば独自のｐｒｉｖａｔｅ  ＭＩＢを利用しても良い。また、ＳＮＭＰ以外の機構を利用して、管理用端末１が各スイッチからポートに関する情報を取得するように実装しても良い。
【００８９】
上記の説明では、各スイッチからポートに関する情報を取得できることを前提として説明した。もし、一部のスイッチがＳＮＭＰに対応していなかったりＢＲＩＤＧＥ−ＭＩＤを実装していなかったりなどの理由によりポート情報を取得できない場合は、そのスイッチは管理用端末から検知できない。上記実施形態の方法では、このようなスイッチ（管理外スイッチと呼ぶ）に接続されているスイッチが２つのみである場合には、これら２つのスイッチが直接接続されているものとして判断される。一方、図９（Ａ）に示すように管理外スイッチに３つ以上のスイッチが接続されている場合、図９（Ｂ）に示すように同一ポートに複数のスイッチが接続されているように見える。このような部分が存在した場合には、複数のスイッチが接続されているように見えるポートに管理外スイッチが（１つまたは複数個）接続されており、管理外スイッチに他のスイッチが接続されていると判断できる。
【００９０】
また、上記の実施形態において構成を取得するネットワークにＶＬＡＮが設定されている場合は、管理用端末が属するＶＬＡＮ（管理用ＶＬＡＮ）以外の接続についてはその物理接続を決定できない。つまり、あるＶＬＡＮが管理用ＶＬＡＮとは別の物理接続を利用している場合については、それらの構成は決定できない。ただし、全てのＶＬＡＮがタグで管理用ＶＬＡＮと同じ物理接続を利用している場合には、問題なくネットワークの構成を決定することができる。また、実際に通信に利用されていない物理接続（たとえば、ＳＴＰでｂｌｏｃｋｉｎｇになっていたり、冗長化のためのバックアップ経路など）も検出できない。
【００９１】
上記の説明ではネットワークを構成する機器がＬ２スイッチである例を説明したが、本発明はＬ２ネットワークの構成のみを検出の対象とするものではない。すなわち、木構造として表せるようなネットワークであれば、任意の機器から構成されるネットワークの構成を取得することが可能である。
【図面の簡単な説明】
【００９２】
【図１】Ｌ２スイッチから構成されるネットワークを木構造で表した図である。
【図２】管理用端末の機能ブロックを表す図である。
【図３】ネットワーク構成情報取得処理の全体概要を表すフローチャートである。
【図４】ポート情報テーブルの構造を示す図であり、図１のネットワーク構成に対応したデータが示されている。
【図５】第１実施形態におけるネットワーク構成解析処理の詳細なフローチャートである。
【図６】第２実施形態におけるネットワーク構成解析処理の詳細なフローチャートである。
【図７】第３実施形態におけるネットワーク構成解析処理の詳細なフローチャートである。
【図８】第４実施形態におけるネットワーク構成解析処理の詳細なフローチャートである。
【図９】管理外スイッチが含まれるネットワーク（Ａ）と、このようなネットワークの構成を解析した結果（Ｂ）を表した図である。
【符号の説明】
【００９３】
Ａ〜Ｌ  Ｌ２スイッチ
１    管理用端末
１１  ポート情報取得部
１２  ポート情報テーブル
１３  ネットワーク構成解析部
【図１】
2010097273.tif 000003
【図２】
2010097273.tif 000004
【図３】
2010097273.tif 000005
【図４】
2010097273.tif 000006
【図５】
2010097273.tif 000007
【図６】
2010097273.tif 000008
【図７】
2010097273.tif 000009
【図８】
2010097273.tif 000010
【図９】
2010097273.tif 000011