以下、図面を参照しながら、実施の形態を説明する。
(実施の形態1)
<概要>
まず、図1に示すネットワーク構成例を用いて、実施の形態1の概要を説明する。
ネットワーク構成調査装置10は、ネットワークの構成及び当該ネットワークに接続されている機器を調査し、その調査結果を、機器情報ファイル103(図2参照)として出力する。図1に示すネットワーク構成の場合、ネットワーク構成調査装置10は、Router1、Gateway1、Client1(自装置10)、Server1、Printer1、Printer2、Gateway2、Router2、及び、Client3(PC)の各機器名、及び、機器に設定されているIPアドレス(以下単に「アドレス」と呼ぶ)を含む機器情報ファイル103(図2参照)を出力する。以下、詳細に説明する。なお、図1にはインテリジェントHUB(以下「HUB」と呼ぶ)が記載されていないが、ネットワーク上にはHUBが配置されていてもよい。
<構成>
次に、図2を用いて、ネットワーク構成調査装置の構成を説明する。ネットワーク構成調査装置10は、ファイル読み込み部20と、PING調査部21と、機器調査部22と、機器情報ファイル生成部23と、アドレス調査範囲設定ファイル101と、PING調査テーブル300と、追加機器テーブル102と、機器情報テーブル200とを備え、機器情報ファイル103を出力する。
機器情報テーブル200は、図3に示すように、機器の名称である機器名201と、機器名201の機器の種別である機器種別202と、機器名201の機器に設定されているアドレス203と、機器名201の機器がSNMPのポーリングに対応しているか否かを示すポーリング204と、機器名201の機器がSNMPのトラップに対応しているか否かを示すトラップ205と、を含むレコードを管理する。なお、追加機器テーブル102も、機器情報テーブル200と同じ構成である。
ファイル読み込み部20は、下記の機器情報ファイル103を、機器情報テーブル200に読み込む。
PING調査部21は、アドレス調査範囲設定ファイル101に予め設定されている各セグメント(図1参照)の範囲内のアドレスに対してPINGを送信し、PING応答(ICMP)を返してきたアドレスを、PING調査テーブル300に登録する。なお、PING調査部21の処理の詳細は、後に図4のフローチャートを用いて説明する。また、PING調査テーブル300の詳細は、後に実施の形態2で図6を用いて説明する(図6参照)。
機器調査部22は、PING調査テーブル300に登録されたアドレス301の機器の種別を特定する。また、機器調査部22は、前回の機器情報ファイルには記録されていない機器を新たに検出した場合、その新たに検出した機器を、追加機器テーブル102に登録する。なお、機器調査部22の処理の詳細は、後に図4のフローチャートを用いて説明する。
機器情報ファイル生成部23は、機器情報テーブル200及び追加機器テーブル102に登録されている機器情報を合わせて機器情報ファイル103として出力する。
<フローチャート>
次に、図4のフローチャートを用いて、機器情報ファイル103を出力するまでの処理の流れを説明する。
まず、ファイル読み込み部20は、前回の機器情報ファイル103を機器情報テーブル200に読み込む(ST100)。
次に、PING調査部21は、アドレス調査範囲設定ファイル101に予め設定されている各セグメント範囲内のアドレスに対して、ICMPに係るエコー要求(PING要求)を送信する(ST101)。このとき、PING調査部21は、ST101に要する処理時間を短縮するために、マルチスレッド処理で各アドレスに対してエコー要求を送信する。
次に、PING調査部21は、ST101でPINGを送信した各アドレスについて、下記のST102からST110の処理(以下「LOOP1」と呼ぶ)を実行する。なお、LOOP1の説明において、処理対象のアドレスを「対象アドレス」と呼ぶ。
PING調査部21は、対象アドレスからICMPに係るエコー応答があったか否かを判定する(ST102)。ST102の判定結果が「NO」の場合、PING調査部21は、処理を次回のLOOP1に進める。
ST102の判定結果が「YES」の場合、機器調査部(SNMPマネージャ)22は、対象アドレスに対して、MIB(Management Information Base)ツリーにおける機器情報に対応するOID(ObjectID)を指定して、SNMPに従うGetRequestメッセージを送信する(ST103)。
次に、機器調査部22は、ST103のGetRequestメッセージに対して対象アドレスの機器から返された機器情報を用いて、対象アドレスの機器(「対象機器」と呼ぶ)の種別を判定する(ST104)。なお、機器情報には、機器情報テーブル200の項目201乃至205に対応する情報が含まれている。
(A1)以下、機器調査部22が、機器情報の受信に成功し、当該機器情報によるST104の判定結果が「ルータ、プリンタ又はHUB」の場合について説明する。
機器調査部22は、対象機器が、機器情報テーブル200に未登録であるか(つまり、新たに検出された機器であるか)否かを判定する(ST105)。ST105の判定結果が「NO」の場合、機器調査部22は、処理を次回のLOOP1に進める。ST105の判定結果が「YES」の場合、機器調査部22は、対象機器の機器情報を追加機器テーブル102に追加し(ST106)、処理を次回のLOOP1に進める。
(A2)以下、機器調査部22が、機器情報の受信に失敗、又は、受信した機器情報によるST104の判定結果が「不明」である場合について説明する。
機器調査部22は、対象アドレスに対して、エージェント向けの機器情報の取得コマンドを送信する(ST107)。ここで、エージェントは、PCで稼働する所定のプログラムであって、当該機器情報の取得コマンドを受信した場合、自己のPCが保持する各種情報を返す。次に、機器調査部22は、ST107で送信したエージェント向け取得コマンドに対する応答情報を用いて、対象機器の種別を判定する(ST108)。
(B1)以下、機器調査部22が、エージェント向け取得コマンドに対する応答情報の受信に成功し、当該応答情報によるST108の判定結果が「サーバ又はクライアント」である場合について説明する。
機器調査部22は、対象機器が、機器情報テーブル200に未登録であるか(つまり、新たに検出された機器であるか)否かを判定する(ST109)。ST109の判定結果が「NO」の場合、機器調査部22は、処理を次回のLOOP1に進める。ST109の判定結果が「YES」の場合、機器調査部22は、対象機器の機器情報を、追加機器テーブル102に追加し(ST110)、処理を次回のLOOP1に進める。
(B2)以下、機器調査部22が、エージェント向け取得コマンドに対する応答情報の受信に失敗、又は、受信した応答情報によるST108の判定結果が「不明」である場合について説明する。この場合、機器調査部22は、処理を次回のLOOP1に進める。
LOOP1の処理が全て完了した後、機器情報ファイル生成部23は、追加機器テーブル102にレコードが登録されているか否かを判定する(ST111)。ST111の判定結果が「NO」の場合、機器情報ファイル生成部23は、機器情報テーブル200の内容を、機器情報ファイル103として出力し(ST113)、本処理を終了する。ST111の判定結果が「YES」の場合、機器情報ファイル生成部23は、追加機器テーブル102のレコードを、機器情報テーブル200に追加してから(ST112)、機器情報テーブル200の内容を、機器情報ファイル103として出力し(ST113)、本処理を終了する。
<効果>
上記の処理により、ネットワーク構成調査装置10は、ネットワークに接続されている機器を自動的に検出し、その検出した機器の各種情報(機器名201、機器種別202、アドレス203等)を、機器情報ファイル103に出力することができる。
(実施の形態2)
<概要>
実施の形態2では、実施の形態1で説明した処理により出力された機器情報ファイル103を用いて、ネットワークの構成を調査し、ネットワーク構成情報ファイルを出力する。具体的には、図1に示すネットワーク構成の場合、ネットワーク構成調査装置10は、Router1の上位がインターネットに接続しており、Router1の下位にGateway1が接続されており、Gateway1の下位にClient1、Server1、Printer1、Printer2、Gateway2、Router2が接続されており、Gateway2の下位にClient2が接続されており、Router2の下位にClinent3が接続されている、ことを示すネットワーク構成情報ファイルを出力する。以下、詳細に説明する。なお、図1にはHUBが記載されていないが、ネットワーク上にはHUBが配置されていてもよい。
ネットワーク構成調査装置10は、図5に示すように、図2に示す機能20、21、22、23及びデータ101、102、103、200、300に加えて、ネットワーク調査部32と、HUB調査部33と、ネットワーク構成情報生成部34と、GW情報テーブル340と、ルータ情報テーブル360と、HUB情報テーブル380と、監視対象機器テーブル400と、非監視対象機器テーブル420とを備え、ネットワーク構成情報ファイル500を出力する。まず、各データ300、320、340、380、400、420、500について説明し、次に、各機能32、33、34ついて説明する。
<データ>
次に、図6を用いて、PING調査テーブル300について説明する。PING調査テーブル300は、エコー応答を返してきたアドレス301と、アドレス301の機器が監視対象か否かを示す監視対象フラグ302と、アドレス301の機器のMACアドレス303と、を含むレコードを管理する。監視対象フラグ302は、例えば、「0」が監視対象、「1」が非監視対象、「2」が監視対象のGWであることを示す。
次に、図7を用いて、ルーティング情報テーブル320について説明する。ルーティング情報テーブル320は、宛先321と、宛先321に対するサブネットマスク322と、宛先321におけるGWアドレス323と、GWアドレス323に係る処理が確定したか否かを示すGW確定フラグ324と、を含むレコードを管理する。GW確定フラグ324は、例えば、「0」が未確定、「1」が確定済みであることを示す。
次に、図8を用いて、GW情報テーブル340を説明する。GW情報テーブル340は、GWの機器名341と、機器名341のGWに設定されている1又は2以上のアドレス342a、342bと、を含むレコードを管理する。GW情報テーブル340は、後述のルータ情報テーブル360を作成する際に用いられる。
次に、図9を用いて、ルータ情報テーブル360を説明する。ルータ情報テーブル360は、ルータの機器名361と、機器名361のルータアドレス362と、機器名361に設定されている上位アドレス363及び下位アドレス364と、機器名361に対する処理を完了したか否かを示す完了フラグ365と、を含むレコードを管理する。
次に、図10を用いて、HUB情報テーブル380を説明する。HUB情報テーブル380は、HUBポート番号381と、HUBポート番号381に接続されている機器のMACアドレス382と、MACアドレス382を有する機器の機器名383と、を含むレコードを管理する。なお、HUB情報テーブル380は、HUB毎に生成される。
次に、図11を用いて、監視対象機器テーブル400を説明する。監視対象機器テーブル400は、監視対象である機器の機器名401と、機器名401の機器の機器種別402と、機器名401の機器のアドレス403と、機器名401の機器のネットワーク構成上における起点404と、機器名401の機器の電源状態405と、を含むレコードを管理する。起点404には、機器名又はインターネット等が登録される。
次に、図12を用いて、非監視対象機器テーブル420を説明する。非監視対象機器テーブル420は、非監視対象である機器の機器名421と、機器名421の機器の機器種別422と、機器名421の機器のアドレス423と、機器名421の機器のネットワーク構成上における起点424と、機器名421の機器の電源状態425と、を含むレコードを管理する。起点424には、機器名又はインターネットが登録される。
次に、図13を用いて、ネットワーク構成情報ファイル500を説明する。ネットワーク構成情報ファイル500は、監視対象機器テーブル400及び非監視対象機器テーブル420のレコードを結合してファイルに出力したものである。したがって、ネットワーク構成情報ファイル500の各項目501乃至505は、監視対象機器テーブル400(又は非監視対象機器テーブル420)の各項目401乃至405(又は421乃至425)と同じである。
<機能>
機器調査部22は、PING調査テーブル300のアドレス301の機器が監視対象であるか否か、及び、当該機器のMACアドレスを調査し、PING調査テーブル300に登録する。なお、機器調査部22の処理の詳細は、後に図14乃至21(主に図14)のフローチャートを用いて説明する。
ネットワーク調査部32は、ルーティング情報テーブル320、GW情報テーブル340、及びルータ情報テーブル360を用いてネットワーク構成に関する調査を行い、その調査結果を、監視対象機器テーブル400及び非監視対象機器テーブル420に登録する。なお、ネットワーク調査部32の処理の詳細は、後に図14乃至21のフローチャートを用いて説明する。
HUB調査部33は、ネットワークに接続されているインテリジェントHUBにSNMPメッセージ等で問い合わせて、当該HUBに接続されている各機器の調査を行い、その調査結果(HUBポート番号、MACアドレス等)を、HUB情報テーブル380に登録する。そして、HUB調査部33は、HUB情報テーブル380の内容を用いて、監視/非監視対象機器テーブル400、420の起点404、323をHUBにする機器を特定する。なお、HUB調査部33の処理の詳細は、後に図14乃至21(主に図20)のフローチャートを用いて説明する。
ネットワーク構成情報生成部34は、監視対象機器テーブル400及び非監視対象機器テーブル420の両方のレコードを結合し、ネットワーク構成情報ファイル500に出力する。なお、ネットワーク構成情報生成部34の処理の詳細は、後に図14乃至21(主に図21)のフローチャートを用いて説明する。
<フローチャート>
以下、図14乃至21のフローチャートを用いて、ネットワーク構成情報ファイルを出力するまでの処理の流れを説明する。
まず、図14に示す処理について説明する。
ファイル読み込み部20は、機器情報ファイル103(図2参照)に記録されている機器のうち、監視対象機器の情報を、監視対象機器テーブル400に読み込み、非監視対象機器(例えば、機器種別がGW又は不明の機器)の情報を、非監視対象機器テーブル420に読み込む(ST301)。
次に、ファイル読み込み部20は、機器情報ファイル103に記録されている機器のうち、機器種別「ルータ」の機器名及びアドレスを、ルータ情報テーブル360に読み込む(ST302)。
次に、PING調査部21は、アドレス調査範囲設定ファイル101(図2参照)に予め設定されている各セグメント範囲内のアドレスに対して、エコー要求(PING要求)を送信する(ST303)。このとき、PING調査部21は、ST303に要する処理時間を短縮するために、マルチスレッド処理で各アドレスに対してエコー要求を送信する。
次に、PING調査部21は、エコー応答を返してきたアドレスを、PING調査テーブル300に登録する(ST304)。このとき、機器調査部22は、PING調査テーブル300において、アドレス301の機器が監視対象である場合、監視対象フラグ302に「0」を、アドレス301の機器が非監視対象である場合、監視対象フラグ302に「1」を登録する。
次に、ネットワーク構成調査装置10は、PING調査テーブル300に登録された各アドレス301に対して、以下のST305からST310の処理(「LOOP2」と呼ぶ)を実行する。なお、LOOP2の説明において、PING調査テーブル300の処理対象のアドレス301を「対象アドレス」と呼ぶ。
次に、機器調査部22は、対象アドレスの機器のMACアドレスを調査し、PING調査テーブル300に登録する(ST305)。
次に、ネットワーク調査部32は、対象アドレスの機器(「対象機器」と呼ぶ)が監視対象であり、かつ、対象機器の機器種別が「PC」であるか否かを判定する(ST306)。ST306の判定結果が「NO」の場合、ネットワーク調査部32は、処理を次回のLOOP2に進める。
ST306の判定結果が「YES」の場合、ネットワーク調査部32は、エージェント向けのルーティング情報の取得コマンドを、対象機器(つまりPC)に送信する(ST307)。
ネットワーク調査部32は、ST307の取得コマンドに対する応答の受信に成功したか否かを判定する(ST308)。
ST308の判定結果が「YES」の場合、ネットワーク調査部32は、その応答によって取得したルーティング情報の内容を、ルーティング情報テーブル320の宛先321、サブネットマスク322、GWアドレス323に登録する。また、ネットワーク調査部32は、GW確定フラグ324に「0」を登録する(ST309)。そして、ネットワーク調査部32は、処理を次回のLOOP2に進める。
ST308の判定結果が「NO」の場合、ネットワーク調査部32は、対象機器の情報を、監視対象機器テーブル400の機器名401、機器種別402、アドレス403に登録する。また、ネットワーク調査部32は、電源状態405に「OFF」を登録する(ST310)。そして、ネットワーク調査部32は、処理を次回のLOOP2に進める。
LOOP2の処理が全て完了した後、ネットワーク調査部32は、非監視対象機器テーブル420から、PING調査テーブル300に未登録であるアドレス423のレコードを削除する(ST311)。そして、ネットワーク構成調査装置10は、処理を図15に示す「A」に進める。
次に、図15を用いて、図14の処理の続きを説明する。
ネットワーク調査部32は、ルーティング情報テーブル320に登録されている各レコードに対して、以下のST321からST3341の処理(「LOOP3」と呼ぶ)を実行する。なお、LOOP3の説明において、ルーティング情報テーブル320の処理対象のレコードを「対象レコード」と呼ぶ。
ネットワーク調査部32は、対象レコードの宛先321が「0.0.0.0」であるか否かを判定する(ST321)。
(C1)以下、ST321の判定結果が「YES」の場合の処理を説明する。
ネットワーク調査部32は、対象レコードのGWアドレス323が、自己のネットワーク構成調査装置10と同じセグメントに属しているか否かを判定する(ST322)。ST322の判定結果が「NO」の場合、ネットワーク調査部32は、ルーティング情報テーブル320から対象レコードを削除し(ST323)、処理をST340へ進める。
ST322の判定結果が「YES」の場合、ネットワーク調査部32は、ルータ情報テーブル360の機器名361及び下位アドレス364に対して、それぞれ、対象レコードのGWアドレス323に対応する機器名、及び、GWアドレス323を登録する。また、ネットワーク調査部32は、対象レコードのGWアドレス323と同一であるPING調査テーブル300のアドレス301を特定し、その特定したアドレス301に対応付けられている監視対象フラグ302を「2」に変更する。また、ネットワーク調査部32は、対象レコードのGW確定フラグ324を「1」に変更する(ST324)。そして、ネットワーク調査部32は、処理をST340へ進める。
(C2)以下、ST321の判定結果が「NO」の場合の処理を説明する。
ネットワーク調査部32は、ルーティング情報テーブル320において、宛先321が対象レコードの宛先321と同じセグメントであり、かつ、GW確定フラグ324が「0」である他のレコードが存在する場合、当該他のレコード及び対象レコード(「同一セグメントのレコード」と呼ぶ)のGW確定フラグ324を「1」に変更する(ST331)。
次に、ネットワーク調査部32は、同一セグメントのレコードが、ルータ情報テーブル360に登録されているか否かを判定する(ST332)。ST332の判定結果が「YES」の場合、ネットワーク調査部32は、処理を次回のLOOP3に進める。
ST332の判定結果が「NO」の場合、ネットワーク調査部32は、ルータ情報テーブル360の機器名361に、対象レコードのGWアドレス323の機器名を登録する。また、ネットワーク調査部32は、対象レコードのGWアドレス323に一致するPING調査テーブル300のアドレス301を特定し、その特定したアドレス301に対応付けられている監視対象フラグを「2」に変更する。また、ネットワーク調査部32は、対象レコードのGWアドレス323の機器名及びGWアドレス323を、GW情報テーブル340の機器名341及びアドレス342に登録する(ST333)。そして、ネットワーク調査部32は、処理をST340へ進める。
(C3)以下、ST340以降の処理を説明する。
ネットワーク調査部32は、対象レコードのGWアドレス323が、PING調査テーブル300のアドレス301に存在するか否かを判定する(ST340)。ST340の判定結果が「YES」の場合、ネットワーク調査部32は、処理を次回のLOOP3に進める。
ST340の判定結果が「NO」の場合、ネットワーク調査部32は、対象レコードのGWアドレス323に対応する機器名、当該機器名の機器の機器種別、及びGWアドレス323を、非監視対象機器テーブル420の機器名421、機器種別422、及びアドレス423に登録する(ST341)。そして、ネットワーク調査部32は、処理を次回のLOOP3に進める。
LOOP3の処理が全て完了した後、ネットワーク調査部32は、処理を図16に示す「B」に進める。
次に、図16を用いて、図15の処理の続きを説明する。
ネットワーク調査部32は、ルーティング情報テーブル320におけるGW確定フラグ324が「0」のGWアドレス323の中に、PING調査テーブル300のアドレス301と一致するものが存在するか否かを判定する(ST361)。ST361の判定結果が「NO」の場合、ネットワーク調査部32は、処理をST371へ進める。
ST361の判定結果が「YES」の場合、ネットワーク調査部32は、ST361で一致したGWアドレス323の機器名を、ルータ情報テーブル360の機器名361に登録する。また、ネットワーク調査部32は、PING調査テーブル300において、ST361で一致したアドレス301に対応付けられている監視対象フラグを「2」に変更する。また、ネットワーク調査部32は、ST361で一致したGWアドレス323を、GW情報テーブル340のST361で一致したGWアドレス323の機器名341に対応付けられているアドレス342に登録する。また、ネットワーク調査部32は、ルーティング情報テーブル320において、ST361で一致したGWアドレス323に対応付けられているGW確定フラグ324を「1」に変更する(ST362)。そして、ネットワーク調査部32は、処理をST371へ進める。
以下、ST371以降の処理を説明する。
ネットワーク調査部32は、ルーティング情報テーブル320におけるGW確定フラグ324が「0」の宛先321の中に、PING調査テーブル300のアドレス301とセグメントが一致するものが存在するか否かを判定する(ST371)。ST371の判定結果が「NO」の場合、ネットワーク調査部32は、処理を図17に示す「C」へ進める。
ST371の判定結果が「YES」の場合、ネットワーク調査部32は、ST371で一致した宛先321に対応付けられているGWアドレス323の機器名を、ルータ情報テーブル360の機器名361に登録する。また、ネットワーク調査部32は、ST371で一致した宛先321に対応付けられているGWアドレス323の機器名、及び、GWアドレス323を、GW情報テーブル340の機器名341及びアドレス342に登録する。また、ネットワーク調査部32は、ルーティング情報テーブル320において、ST371で一致した宛先321に対応付けられているGW確定フラグ324を「1」に変更する(ST372)。そして、ネットワーク調査部32は、処理を図17に示す「C」へ進める。
次に、図17を用いて、図16の処理の続きを説明する。
ネットワーク調査部32は、ルータ情報テーブル360において、ルータアドレス362が、自己のネットワーク構成調査装置10と同じセグメントに属している各レコードについて、以下のST401からST412の処理(「LOOP4」と呼ぶ)を実行する。なお、LOOP4の説明において、ルータ情報テーブル360の処理対象のレコードを「対象レコード」と呼ぶ。
ネットワーク調査部32は、対象レコードの完了フラグ365が「0」であるか否かを判定する(ST401)。ST401の判定結果が「NO」の場合、ネットワーク調査部32は、処理を次回のLOOP4に進める。ST401の判定結果が「YES」の場合、ネットワーク調査部32は、対象レコードの機器名361が「ルータ」であるか否かを判定する(ST402)。
(D1)以下、ST402の判定結果が「YES」の場合を説明する。
ネットワーク調査部32は、SNMPコマンドを用いて、対象レコードのルータ(「対象ルータ」と呼ぶ)の情報を取得する(ST403)。ルータ情報には、少なくとも、対象ルータの各ネットワークインタフェースに設定されているアドレスが含まれている。
次に、ネットワーク調査部32は、ST403で取得したルータ情報に基づいて、対象ルータにインターネット側のアドレスが設定されているか否かを判定する(ST404)。例えば、ネットワーク調査部32は、図22に示すアドレス以外が設定されている場合、インターネット側のアドレスが設定されていると判定する。
ST404の判定結果が「YES」の場合、ネットワーク調査部32は、対象レコードにおいて、上位アドレス363に「Internet」を、下位アドレス364にルータアドレス362を、完了フラグ365に「1」を登録する(ST405)。そして、ネットワーク調査部32は、処理を次回のLOOP4に進める。
ST404の判定結果が「NO」の場合、ネットワーク調査部32は、対象レコードにおいて、上位アドレス363にルータアドレス362を、下位アドレス364に、ルータ情報に含まれる他セグメント側のルータアドレスを、完了フラグ365に「1」を登録する(ST406)。
次に、ネットワーク調査部32は、PING調査テーブル300及び非監視対象機器テーブル420から、アドレス423が、他セグメント側のルータアドレスと一致するレコードを削除する(ST407)。
次に、ネットワーク調査部32は、ルータ情報テーブル360に、他セグメント側のルータアドレスと同じセグメントに属するルータのレコードが存在するか否かを判定する(ST413)。ST413の判定結果が「YES」の場合、ネットワーク調査部32は、ST408で同じセグメントに属していると判定したレコードについて、ST401からの処理を実行する。ST413の判定結果が「NO」の場合、ネットワーク調査部32は、処理を次回のLOOP4へ進める。
(D2)以下、ST402の判定結果が「NO」の場合を説明する。
ネットワーク調査部32は、GW情報テーブル340にレコードが存在するか否かを判定する(ST411)。ST411の判定結果が「NO」の場合、ネットワーク調査部32は、処理を次回のLOOP4へ進める。
ST411の判定結果が「YES」の場合、ネットワーク調査部32は、GW情報テーブル340から、ネットワーク構成調査装置10のデフォルトGWアドレスと同じセグメントに属するアドレス342を特定し、その特定したアドレス342を対象レコードの上位アドレス363に登録する。また、ネットワーク構成調査装置10は、GW情報テーブル340において、上記で特定したアドレスに対応付けられている他方のアドレスを、対象レコードの下位アドレス364に登録する。また、ネットワーク調査部32は、対象レコードの完了フラグ365を「1」に変更する。また、ネットワーク調査部32は、上記の上位アドレス363を、非監視対象機器テーブル420の対応する機器名421のアドレス423に登録する。そして、ネットワーク調査部32は、処理を上記のST413へ進める(ST412)。
LOOP4の処理が全て完了した後、ネットワーク調査部32は、処理を図18に示す「D」に進める。
次に、図18を用いて、図17の処理の続きを説明する。
ネットワーク調査部32は、ルータ情報テーブル360において、完了フラグ365が「0」かつ機器名361が「GW」の各レコードについて、下記のST421からST431の処理(「LOOP5」と呼ぶ)を実行する。なお、LOOP5の説明において、ルータ情報テーブル360における処理対象のレコードを「対象レコード」と呼ぶ。また、ルータ情報テーブル360における対象レコードの機器名361を、対象機器名361と呼ぶ。
ネットワーク調査部32は、ルータ情報テーブル360に、完了フラグ365「0」かつ機器名365「ルータ」のレコードが存在するか否かを判定する(ST421)。
(E1)以下、ST421の判定結果が「YES」の場合を説明する。
ネットワーク調査部32は、ST421でルータの機器名361を、対象レコードの上位アドレス361に登録する。また、ネットワーク調査部32は、GW情報テーブル340の対象機器名361と同じ機器名341のアドレス342を、対象レコードの下位アドレス364に登録する。また、ネットワーク調査部32は、対象レコードの完了フラグ365を「1」に変更する。また、ネットワーク調査部32は、非監視対象機器テーブル420において、対象機器名361と同じ機器名421に対応付けられているアドレス423に、下位アドレス364を登録する(ST422)。そして、ネットワーク調査部32は、処理を次回のLOOP5に進める。
(E2)以下、ST421の判定結果が「NO」の場合を説明する。
ネットワーク調査部32は、対象機器名361と同じGW情報テーブル340の機器名341を特定し、その特定した機器名341に対応付けられているアドレス342を、下位アドレス364に登録する。また、ネットワーク調査部32は、対象レコードの完了フラグ365を「1」に変更する。また、ネットワーク調査部32は、対象機器名361と同じ非監視対象機器テーブル420の機器名421を特定し、その特定した機器名421に対応付けられているアドレス423に、下位アドレス364を登録する(ST423)。そして、ネットワーク調査部32は、処理を次回のLOOP5に進める。
LOOP5の処理が全て完了した後、ネットワーク調査部32は、ルータ情報テーブル360の完了フラグ365が「0」かつ機器名361が「ルータ」である各レコードについて、下記のST431の処理(「LOOP6」と呼ぶ)を実行する。なお、LOOP6の説明において、ルータ情報テーブル360における処理対象のレコードを「対象レコード」と呼ぶ。
ネットワーク調査部32は、対象レコードの上位アドレス363に「Internet」を登録する。また、ネットワーク調査部32は、対象レコードの下位アドレス364に、対象レコードのルータアドレス362を登録する。また、ネットワーク調査部32は、対象レコードの完了フラグ365を「1」に変更する(ST431)。そして、ネットワーク調査部32は、処理を次回のLOOP6に進める。
LOOP6の処理が全て完了した後、ネットワーク調査部32は、処理を図19に示す「E」へ進める。
次に、図19を用いて、図18の処理の続きを説明する。
ネットワーク調査部32は、監視対象機器テーブル400及び非監視対象機器テーブル420の各レコードについて、以下のST501からST531の処理(「LOOP7」と呼ぶ)を実行する。なお、LOOP7の説明において、監視対象機器テーブル400及び非監視対象機器テーブル420における処理対象のレコードを「対象レコード」と呼ぶ。また、対象レコードの機器名401、421を「対象機器名」と呼ぶ。
ネットワーク調査部32は、対象レコードの機器種別402、422から、対象レコードの機器の種別を判定する(ST501)。
(F1)以下、ST501の判定結果が「ルータ」の場合について説明する。
ネットワーク調査部32は、ルータ情報テーブル360において対象機器名401、421と同じ機器名361に対応付けられている上位アドレス363が、「Internet」であるか否かを判定する(ST502)。
ST502の判定結果が「YES」の場合、ネットワーク調査部32は、対象レコードの起点404に「Internet」を登録する(ST503)。そして、ネットワーク調査部32は、処理を次回のLOOP7に進める。
ST502の判定結果が「NO」の場合、ネットワーク調査部32は、ルータ情報テーブル360から、対象機器名401、421と機器名361が一致し、かつ、対象機器名401、421のアドレス403、423とセグメントが同じ下位アドレス364を特定する。そして、ネットワーク調査部32は、その特定した下位アドレス364を、対象レコードの起点404に登録する(ST504)。そして、ネットワーク調査部32は、処理を次回のLOOP7に進める。
(F2)以下、ST501の判定結果が「PC、プリンタ又はHUB」の場合について説明する。
ネットワーク調査部32は、ルータ情報テーブル360から、対象機器名401、421のアドレス403、423とセグメントが同じ下位アドレス364を特定する。そして、ネットワーク調査部32は、その特定した下位アドレス364を、対象レコードの起点404に登録する(ST511)。そして、ネットワーク調査部32は、処理を次回のLOOP7に進める。
(F3)以下、ST501の判定結果が「GW」の場合について説明する。
ネットワーク調査部32は、ルータ情報テーブル360の対象機器名401、402と同じ機器名361のレコードにおいて、上位アドレス363が未登録の場合、対象レコードの起点404に「Internet」を登録し、上位アドレス363がルータの機器名である場合、対象レコードの起点404に当該ルータの機器名を登録する。それ以外の場合、ネットワーク調査部32は、ルータ情報テーブル360から、上位アドレス363とセグメントが同じである下位アドレス364を特定し、その特定した下位アドレス364を、対象レコードの起点404に登録する(ST521)。そして、ネットワーク調査部32は、処理を次回のLOOP7に進める。
以下、ST501の判定結果が「その他(不明)」の場合について説明する。
ネットワーク調査部32は、ルータ情報テーブル360から、対象機器名401、421のアドレス403、423とセグメントが同じ下位アドレス364を特定できた場合、その特定した下位アドレス364を、対象レコードの起点404に登録する。
一方、上記の特定ができなかった場合、ネットワーク調査部32は、ルーティング情報テーブル320から、対象機器名401、421のアドレス403、423とセグメントが同じ宛先321を特定し、非監視対象機器テーブル420から、その特定した宛先321と一致するアドレス423に対応付けられている機器名421を特定する。そして、ネットワーク調査部32は、その特定した機器名421を、対象レコードの起点404に登録する(ST531)。そして、ネットワーク調査部32は、処理を次回のLOOP7に進める。
LOOP7の処理が全て完了した後、ネットワーク構成調査装置10は、処理を図20に示す「F」に進める。
次に、図20を用いて、図19の処理の続きを説明する。
HUB調査部33は、ネットワーク上の各インテリジェントHUBについて、下記のST601からST603の処理(「LOOP8」と呼ぶ)を実行する。なお、LOOP8の説明において、処理対象のインテリジェントHUBを「対象HUB」と呼ぶ。
HUB調査部33は、対象HUBから、各HUBポート番号、及び、そのHUBポート番号に接続されている機器のMACアドレスを取得し、HUB情報テーブル380のHUBポート番号381及びMACアドレス382に登録する(ST601)。
次に、HUB調査部33は、MACアドレス382と一致するPING調査テーブル300のMACアドレス303を特定し、その特定したMACアドレス303に対応付けられているアドレス301を特定する。そして、HUB調査部33は、その特定したアドレス301と一致する監視/非監視対象機器テーブル400、420のアドレス403、423を特定し、その特定したアドレス403、423に対応付けられている機器名401、421を特定する。そして、HUB調査部33は、その特定した機器名401、421を、HUB情報テーブル380の機器名383に登録する(ST602)。
次に、HUB調査部33は、HUB情報テーブル380から、対象HUBに対する起点404の機器と同じ機器名383のレコードを削除する。また、HUB調査部33は、その削除したレコードのHUBポート番号381と同じHUBポート番号381の他のレコードを、HUB情報テーブル380から削除する(ST603)。そして、HUB調査部33は、処理を次回のLOOP8へ進める。
LOOP8の処理が全て完了した後、HUB調査部33は、HUBが複数存在しているか否かを判定する(ST610)。
ST610の判定結果が「NO」の場合、HUB調査部33は、監視/非監視対象機器テーブル400の機器名401、421が、HUB情報テーブル380の機器名383と一致するレコードの起点404、424を、「HUB」とする。そして、HUB調査部33は、処理を図21の「G」に進める(ST611)。
ST610の判定結果が「YES」の場合、HUB調査部33は、各HUB情報テーブル380について、登録されているレコードの多い順に、下記のST612の処理(「LOOP9」と呼ぶ)を実行する。なお、LOOP9の説明において、処理対象のHUB情報テーブル380を「対象HUB情報テーブル」と呼ぶ。
HUB調査部33は、監視/非監視対象機器テーブル400、420の機器名401、421が、対象HUB情報テーブル380の機器名383と一致するレコードの起点を、当該対象HUB情報テーブルに対応する「HUB」とする。そして、HUB調査部33は、処理を次回のLOOP9に進める(ST612)。
LOOP9の処理が全て完了した後、ネットワーク構成調査装置10は、処理を図21の「G」に進める。
次に、図21を用いて、図20の処理の続きを説明する。
ネットワーク構成情報生成部34は、監視/非監視対象機器テーブル400、420のすべてのレコードにおいて、起点404、424が登録されているか否かを判定する(ST621)。
ST621の判定結果が「NO」の場合、ネットワーク構成情報生成部34は、エラー応答を出力して(ST640)、本処理を終了する。
ST621の判定結果が「YES」の場合、ネットワーク構成情報生成部34は、機器情報ファイル103と、監視対象機器テーブル400との間で、存在する機器が異なっているか否かを判定する(ST622)。
ST622の判定結果が「YES」の場合、ネットワーク構成情報生成部34は、更新フラグを「0」とし(ST623)、処理をST630へ進める。
ST622の判定結果が「NO」の場合、ネットワーク構成情報生成部34は、前回のネットワーク構成情報ファイル500と比較して、監視対象機器テーブル400の何れかの機器の電源状態405に変化があったか、又は、非監視対象機器テーブル420において不明な機器の追加又は削除があったか否かを判定する(ST624)。
ST624の判定結果が「YES」の場合、ネットワーク構成情報生成部34は、更新フラグを「1」とし(ST625)、処理をST630へ進める。
ST624の判定結果が「NO」の場合、ネットワーク構成調査装置10は、処理をST631へ進める。
以下、ST630以降の処理について説明する。
ネットワーク構成情報生成部34は、ST623又はST625の更新フラグと、監視対象機器テーブル400及び非監視対象機器テーブル420を、ネットワーク構成情報ファイル500として出力する(ST630)。
次に、ネットワーク構成情報生成部34は、正常応答を出力して(ST631)、本処理を終了する。
<効果>
上記の処理により、ネットワーク構成調査装置10は、ネットワークに接続されている機器に関するネットワーク構成を自動的に検出し、その検出したネットワーク構成に係る情報(機器名401、421、機器種別402、422、アドレス403、424、起点404、424)を、ネットワーク構成情報500に出力することができる。
また、ネットワーク構成調査装置10は、上記のように、エージェント及び/又はインテリジェントHUB等と連携してネットワーク構成に関する情報を収集することにより、セグメントを跨ぐネットワーク構成情報を、比較的短時間で生成することができる。
以上、本発明に係る実施形態について図面を参照して詳述してきたが、上述した装置10の機能は、コンピュータプログラムにより実現され得る。
図23は、装置10の機能をプログラムにより実現するコンピュータのハードウェア構成を示す図である。このコンピュータ1100は、キーボードやマウス、タッチパッドなどの入力装置1101、ディスプレイやスピーカーなどの出力装置1102、CPU(Central Processing Unit)1103、ROM(Read Only Memory)1104、RAM(Random Access Memory)1105、ハードディスク装置やSSD(Solid State Drive)などの記憶装置1106、DVD−ROM(Digital Versatile Disk Read Only Memory)やUSB(Universal Serial Bus)メモリなどの記録媒体から情報を読み取る読取装置1107、ネットワークを介して通信を行う送受信装置1108を備え、各部はバス1109により接続される。
そして、読取装置1107は、上記装置10の機能を実現するためのプログラムを記録した記録媒体からそのプログラムを読み取り、記憶装置1106に記憶させる。あるいは、送受信装置1108が、ネットワークに接続されたサーバ装置と通信を行い、サーバ装置からダウンロードした上記各装置の機能を実現するためのプログラムを記憶装置1106に記憶させる。
そして、CPU1103が、記憶装置1106に記憶されたプログラムをRAM1105にコピーし、そのプログラムに含まれる命令をRAM1105から順次読み出して実行することにより、上記装置10の機能が実現される。