図1は、実施形態にかかる経路確認処理の例を説明する図である。図1に示すネットワークには、機器A〜機器Hが含まれている。また、機器間の接続や端末と機器の間の接続は図1に示す通りであり、図1の実線、破線および一点鎖線のいずれも機器間のリンクか端末と機器の間のリンクを示すものとする。機器間のリンクの各々には、そのリンクを経由するフレームの情報を取得するためのセンサ(センサ1〜センサ11)が設置されている。ここで、機器A〜機器Hのいずれもデータリンク層で用いられるプロトコルに基づいて通信を中継する機器であり、IP(Internet Protocol)アドレスを割り当てられていないものとする。一方、端末1〜端末8や監視サーバ20には、IPアドレスが割り当てられている。
図1に示すネットワークで、端末1と端末5が通信しており、端末1から端末5へフレームが送信されているとする。監視サーバ20は、ネットワーク中の機器での障害の発生状況、機器間のリンクでの障害の発生状況、および、各リンクを通過したフレームの情報を、ネットワーク中のセンサや機器から取得する。監視サーバ20は、得られた情報を用いて、フレームが通過した経路を特定する。以下の説明では、フレームの送信元から宛先に至る経路のうち、データリンク層で用いられるプロトコルに基づいて通信を中継する機器で形成されているネットワークに含まれている部分を「疎通経路」と記載することがある。図1の例では、端末1から端末5に送信されたフレームの疎通経路は、図1中の一点鎖線で示すように、機器A―機器H―機器G―機器F―機器Eの経路である。なお、疎通経路は、処理対象のヘッダ情報を含むフレームがセンサによって検知されたリンクを、機器の接続関係を満たすようにつなげることによって求められる。
次に、監視サーバ20は、疎通経路の始点の機器と終点の機器を特定する。ここで、疎通経路の始点は、疎通経路に含まれている機器のうちで、フレームの送信元までの転送回数が最小の機器である。同様に、疎通経路の終点は、疎通経路に含まれている機器のうちで、フレームの宛先までの転送回数が最小の機器である。図1の例では、フレームの送信元の端末1は機器Aに接続されているので、機器Aが疎通経路の始点となる。同様に、フレームの宛先である端末5が機器Eに接続されているので、機器Eが疎通経路の終点となる。
疎通経路の始点および終点を特定すると、監視サーバ20は、ネットワーク中のリンクや機器での障害の発生状況に基づいて、疎通経路の始点から終点に至る最短経路を計算する。図1の例では、破線で示すように、機器A―機器G―機器F―機器Eの経路、機器A―機器B―機器F―機器Eの経路、および、機器A―機器B―機器C―機器Eの経路の3つが最短経路として計算されている。
監視サーバ20は、計算した最短経路と現在のフレームの疎通経路を比較する。図1の例では、フレームの疎通経路は機器A―機器H―機器G―機器F―機器Eであるので、フレームの疎通経路は最短経路のいずれとも異なる。監視サーバ20は、フレームの疎通経路と最短経路の比較結果を出力する。例えば、監視サーバ20は、図1に示す情報を、監視サーバ20が備えるディスプレイに表示しても良い。また、監視サーバ20は、図1に示す情報を、ネットワークの管理を行うオペレータの端末などの予め指定された装置に送信しても良い。
図1の例では、フレームの疎通経路が最短経路と異なっているという比較結果が出力される。このため、オペレータは、監視サーバ20からの出力に基づいて、疎通経路と最短経路が一致しているかを効率的に判定することができる。このように、実施形態にかかる経路確認処理によると、疎通経路と最短経路が一致しているかの判定が効率的になる。
<装置構成>
図2は、監視サーバ20の構成の例を説明する図である。検知装置20は、通信部21、制御部30、および、記憶部40を備える。通信部21は、送信部22と受信部23を備える。送信部22は、ネットワーク中の機器やセンサなどの他の装置にフレームを送信する。受信部23は、ネットワーク中の機器やセンサなどの他の装置からフレームを受信する。
記憶部40は、トラフィック情報テーブル41、接続関係テーブル42、および、障害情報テーブル43を記憶し、オプションとして、転送テーブル44をさらに記憶できる。トラフィック情報テーブル41は、各リンクを通過するフレームの情報を記憶する。接続関係テーブル42は、ネットワーク中の各機器の各ポートの接続先を特定する情報を記憶する。障害情報テーブル43は、ネットワーク中のリンク、機器、または、センサで発生した障害の情報を記録する。転送テーブル44は、ネットワーク中の機器に、受信フレームのヘッダ情報に対応付けて転送先のポートが設定されている機器が含まれている場合に使用される。転送テーブル44は、受信フレームのヘッダ情報に対応付けて転送先のポートが設定されている機器の情報、および、その機器での受信フレームのヘッダ情報と転送先の対応付けを記録する。トラフィック情報テーブル41、接続関係テーブル42、障害情報テーブル43、および、転送テーブル44の例は後述する。
制御部30は、取得部31、特定部32、経路算出部33、および、比較処理部34を備える。取得部31は、ネットワーク中のセンサから、そのセンサが設置されているリンクを通過したフレームの情報を取得する。さらに、取得部31は、各リンクや機器での障害の発生状況に関する情報も取得する。取得部31は、取得した情報を用いて、適宜、トラフィック情報テーブル41および障害情報テーブル43を更新できる。特定部32は、トラフィック情報テーブル41、接続関係テーブル42、障害情報テーブル43を用いて、現在のフレームの転送に使用されている疎通経路を特定する。特定部32は、さらに、疎通経路の始点と終点も特定する。
経路算出部33は、接続関係テーブル42と障害情報テーブル43を用いて、フレーム転送の最短経路を特定する。以下の説明では、最短経路は、フレームの転送に使用可能な経路のうち、コストが最小の経路であるとする。なお、実装に応じて、最短経路は、ホップ数やメトリック数を用いて決定されてもよい。監視サーバ20が転送テーブル44を保持している場合、経路算出部33は、最短経路の算出の際に、接続関係テーブル42、障害情報テーブル43、および、転送テーブル44を用いる。比較処理部34は、特定部32で特定された疎通経路と、経路算出部33が計算した最短経路を比較し、比較結果を出力するための処理を行う。比較結果の出力は、例えば、オペレータの端末などの、予め決められた装置への比較結果の送信であってもよい。また、比較処理部34は、監視サーバ20が備えるディスプレイなどの出力装置104(図3)などに比較結果を出力するための処理を行っても良い。
図3は、監視サーバ20のハードウェア構成の例を説明する図である。監視サーバ20は、プロセッサ101、メモリ102、バス105、ネットワークインタフェース109を備える。さらに、監視サーバ20は、入力装置103、出力装置104、記憶装置106、可搬記憶媒体駆動装置107の1つ以上を有していても良い。監視サーバ20は、任意の情報処理装置によって実現され得る。例えば、監視サーバ20は、コンピュータ、サーバ装置などによって実現され得る。
プロセッサ101は、任意の処理回路であり、例えば、Central Processing Unit(CPU)とすることができる。プロセッサ101は、制御部30として動作する。プロセッサ101は、例えば、メモリ102や記憶装置106に記憶されたプログラムを実行することができる。メモリ102は、プロセッサ101の動作により得られたデータや、プロセッサ101の処理に用いられるデータを、適宜、記憶する。記憶装置106は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ101などに提供する。メモリ102や記憶装置106は、監視サーバ20において、記憶部40として動作する。ネットワークインタフェース109は、監視サーバ20が他の装置と通信するための処理を行う。すなわち、ネットワークインタフェース109は、通信部21として動作する。
バス105は、プロセッサ101、メモリ102、入力装置103、出力装置104、記憶装置106、可搬記憶媒体駆動装置107、ネットワークインタフェース109を、相互にデータの送受信が可能になるように接続する。入力装置103は、キーボード、マウス、マイク、カメラなど、情報の入力に使用される任意の装置であり、出力装置104は、ディスプレイなど、データの出力に使用される任意の装置である。可搬記憶媒体駆動装置107は、メモリ102や記憶装置106のデータを可搬記憶媒体108に出力することができ、また、可搬記憶媒体108からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体108は、Compact Disc Recordable(CD−R)やDigital Versatile Disk Recordable(DVD−R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。
<第1の実施形態>
以下、ネットワーク中のいずれの機器でも受信フレームのヘッダ情報に対応付けて転送先のポートが設定されていない場合について、経路確認処理を詳しく説明する。以下、監視サーバ20が保持するテーブルの例とそれらのテーブルの更新処理、疎通経路と最短経路の比較処理に分けて説明する。なお、いずれの機器でもフレームの転送先が設定されていないため、第1の実施形態では監視サーバ20は転送テーブル44を保持していなくても良い。
(1)監視サーバ20が保持するテーブルの例とテーブルの更新処理の例
以下の説明では、端末1にIPアドレス=192.168.0.1/24が割り当てられており、端末5にIPアドレス=192.168.2.1/24が割り当てられているとする。
図4は、ネットワークの例を説明する図である。図4のネットワークは、図1と同様に、IPアドレスを割り当てられていない機器A〜機器HとIPアドレスを割り当てられている端末1〜端末8および監視サーバ20を含む。図4に示す機器中の数字を含む四角形はポートを表わしており、四角形の中に書かれた数字はポート番号を表わしているものとする。以下の説明では、ポート番号は、Poという文字列に続けて記載する。例えば、機器AのポートPo1は機器BのポートPo3に接続されており、機器AのポートPo2は機器GのポートPo4に接続されている。他の機器についても同様に接続関係が特定され得る。例えば、機器HのポートPo2は端末8に接続され、機器HのポートPo3は監視サーバ20に接続されている。
図5は、接続関係テーブル42の例を説明する図である。接続関係テーブル42は、機器、ポート、接続先、コスト、設置センサを記憶する。接続先は、そのエントリに情報が記録されている機器のポートが接続されている端末や機器のポートを示す情報である。コストは、そのエントリのポートの接続先が他の機器のポートである場合、そのエントリのポートと接続先のポートの間のリンクについて計算されたコスト値である。なお、コスト値の計算は、適宜、任意の既知の方法を用いて監視サーバ20の取得部31で行われる。設置センサは、そのエントリのポートの接続先が他の機器のポートである場合、そのエントリのポートと接続先のポートの間のリンクを通過するフレームの情報を取得するために設置されているセンサである。
例えば、接続関係テーブル42の1番目のエントリには、機器AのポートPo1が機器BのポートPo3に接続されていることと、機器AのポートPo1と機器BのポートPo3の間のリンクにセンサ1が設置されていることが記録されている。さらに、機器AのポートPo1と機器BのポートPo3の間のリンクのコスト値は1である。2番目のエントリには、機器AのポートPo2が機器GのポートPo4に接続されていることと、機器AのポートPo2と機器GのポートPo4の間のリンクにセンサ5が設置されていることが記録されている。さらに、機器AのポートPo2と機器GのポートPo4の間のリンクのコスト値が1であることが記録されている。3番目のエントリには、機器AのポートPo3が機器HのポートPo4に接続されていることと、機器AのポートPo3と機器HのポートPo4の間のリンクにセンサ4が設置されていることが記録されている。さらに、機器AのポートPo3と機器HのポートPo4の間のリンクのコスト値が10であることが記録されている。4番目のエントリには、機器AのポートPo4が端末1に接続されていることが記録されている。機器A以外の機器についても、接続関係テーブル42から同様に、各ポートの接続先、リンクのコスト値、リンクに設置されたセンサが特定され得る。なお、接続関係テーブル42に記録されている情報のうち、コスト値以外の情報は、図4に図示されている。
図6は、センサから通知される情報の例を説明する図である。各センサは、そのセンサが設置されたリンクを通過したフレームのヘッダ情報を取得して集計すると共に、定期的に図6に示すような情報を監視サーバ20に通知する。センサから通知される情報には、通知時刻とセンサが特定したフレームの種類ごとの情報が含まれる。ここで、各センサは、フレーム中のヘッダ情報が同一である場合、同じ種類のフレームと判定するものとする。各フレームの情報は、レイヤ2〜レイヤ4の処理で使用され得る情報、および、その種類のフレームの通信レートである。図6の例では、フレームの種類ごとに、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号が含まれている。さらに、各フレームのVLAN(Virtual Local Area Network)番号、COS(Class of Service)値、DSCP(Differentiated Services Code Point)値、プロトコル番号もフレームの情報としてセンサから監視サーバ20に報告される。
例えば、図6の例では、フレーム1について、送信元IPアドレス=192.168.0.1/24(端末1)であり、かつ、宛先IPアドレス=192.168.2.1/24(端末5)であることが監視サーバ20に報告される。さらに、フレーム1について、送信元ポート番号=xxx、宛先ポート番号=yyy、VLAN番号=zz、COS値=aa、DSCP値=ab、プロトコル番号=acであることも、監視サーバ20に通知される。さらに、フレーム1の通信レートが100Mbpsであることも監視サーバ20に通知される。
同様に、フレーム2について、送信元IPアドレス=192.168.0.5/24、送信元ポート番号=xx、宛先IPアドレス=192.168.2.10/24、宛先ポート番号=xyであることが監視サーバ20に報告される。さらに、フレーム2について、VLAN番号=zy、COS値=ac、DSCP値=aa、プロトコル番号=cdであることも、監視サーバ20に通知される。さらに、フレーム2の通信レートが110Mbpsであることも監視サーバ20に通知される。他のフレームについても同様に監視サーバ20への通知が行われる。
図7は、トラフィック情報テーブル41の例を説明する図である。トラフィック情報テーブル41は、ネットワーク中のリンクごとに、そのリンクを通過したフレームの情報を記録している。図7の例では、フレームの情報は、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、VLAN番号、COS値、DSCP値、プロトコル番号である。なお、トラフィック情報テーブル41に含まれるフレームに関する情報は、センサから通知される情報と同じである。従って、図7は、センサから監視サーバ20に通知される情報が図6に示すとおりである場合のトラフィック情報テーブル41の例である。
例えば、図6に示す情報を含む制御フレームが、機器Aと機器Gの間のリンクに設置されたセンサ5から監視サーバ20に送信されたとする。すると、監視サーバ20の取得部31は、受信部23を介して通知された情報を含む制御フレームを取得し、制御フレーム中の情報を図7の1番目のテーブルに示すように記録する。取得部31は他のセンサから監視サーバ20に送信されたフレームについても同様に処理する。例えば、機器Gと機器Fの間のリンクに設置されたセンサ10から監視サーバ20に送信された情報は、図7の2番目のテーブルに示すように記録される。機器Fと機器Eの間のリンクに設置されたセンサ11から監視サーバ20に送信された情報は、図7の2番目のテーブルに示すように記録される。その他のリンクに設置されたセンサから通知された情報についても、同様にトラフィック情報テーブル41に記録される。
図8は、障害情報テーブル43の例を説明する図である。障害情報テーブル43は、機器のポートの状態やセンサの状態を記録している。例えば、障害情報テーブル43の1番目のエントリは、機器AのポートPo01を介した通信が可能である(Link UP)ことを示している。一方、2番目のエントリは、機器AのポートPo02を介した通信ができない状態である(Down)ことを示している。図8の例では、機器AのポートPo3、Po4と機器BのポートPo1〜Po4はいずれも通信可能な状態である。障害情報テーブル43の下から3番目のエントリは、センサ1が正常に動作していることを示す。同様に、下から2番目のエントリは、センサ2が正常の動作していることを示す。
監視サーバ20の取得部31は、ネットワーク中の機器やセンサから送信された障害の発生を知らせる制御フレームも取得し得る。ここで、機器から通知される障害には、リンクの障害、機器自身の障害の発生、接続先の機器での障害の発生などが含まれる。一方、センサから通知される障害には、そのセンサが設置されているリンクの障害、および、センサ自身の障害の発生などが含まれる。取得部31は、障害の発生に関する情報を含む制御フレームを受信すると、制御フレームに含まれている情報を用いて、障害情報テーブル43を更新する。
(2)疎通経路と最短経路の比較処理の例
以下の説明では、一例として、送信元IPアドレスと宛先IPアドレスの組み合わせごとに経路が決定される場合を説明する。この場合、送信元IPアドレスと宛先IPアドレスの組み合わせごとに、疎通経路と最短経路が求められる。この例では、監視サーバ20は、図5に示す接続関係テーブル42と図7に示すトラフィック情報テーブル41を有しているとする。
図9は、フレームの疎通経路の求め方の例を説明する図である。特定部32は、処理対象のフレームの種類を選択すると、処理対象のフレームの送信元IPアドレスと宛先IPアドレスを処理対象として特定する。さらに、特定部32は、トラフィック情報テーブル41から、処理対象の送信元IPアドレスと宛先IPアドレスの組み合わせを含むフレームが通過するリンクを通過リンクとして特定する(ステップS1)。例えば、送信元IPアドレス=192.168.0.1/24(端末1)、および、宛先IPアドレス=192.168.2.1/24(端末5)が処理対象として選択されたとする。この場合、特定部32は、送信元IPアドレス=192.168.0.1/24および宛先IPアドレス=192.168.2.1/24を含むエントリをトラフィック情報テーブル41から通過リンクとして特定する。この例では、図7中の機器A―機器Gのリンクのテーブルの1番目のエントリ、機器G―機器Fのリンクのテーブルの1番目のエントリ、機器F―機器Eのリンクのテーブルの1番目のエントリの3つに処理対象のフレームの情報が含まれている。そこで、特定部32は、機器A―機器Gのリンク、機器G―機器Fのリンク、および、機器F―機器Eのリンクを通過リンクとして特定する。
特定部32は、ネットワーク中に障害が発生しているセンサ(異常センサ)があるかを判定する(ステップS2)。異常センサが無い場合、特定部32は、特定した各リンクの始点と終点を用いて、通過リンクを接続順に並べる(ステップS2でNo、ステップS5)。特定部32は、得られた経路をフレームの疎通経路とする(ステップS8)。
例えば、監視サーバ20が記憶している障害情報テーブル43には、いずれのセンサの異常も記録されていないとする。すると、特定部32は、ステップS1の処理で特定した各通過リンクの始点と終点の各々の装置について、フレームの送信側の機器として動作しているかとフレームの受信側の機器として動作しているかを判定する。機器A―機器Gのリンクでは、機器Aがフレームの送信側の機器であり、機器Gがフレームの受信側の機器である。機器G―機器Fのリンクでは、機器Gがフレームの送信側の機器であり、機器Fがフレームの受信側の機器である。機器F―機器Eのリンクでは、機器Fがフレームの送信側の機器であり、機器Eがフレームの受信側の機器である。すなわち、各機器は処理対象のフレームについて、以下のように動作している。
フレームの送信側の機器としてのみ動作 :機器A
フレームの送信側および受信側の両方として動作:機器G、機器F
フレームの受信側の機器としてのみ動作 :機器E
そこで、特定部32は、フレームの送信側としてのみ動作する機器が疎通経路の始点、フレームの受信側としてのみ動作する機器が疎通経路の終点、フレームの送信側および受信側の両方として動作する機器が疎通経路の中間の機器であると判定する。特定部32は、判定結果を満たすように、各リンクの始点と終点をつなげて通過リンクを並べることで、疎通経路を特定する。この例では、通過リンクを、機器A―機器G、機器G―機器F、機器F―機器Eの順に並べると、機器A―機器G―機器F―機器Eの経路が疎通経路として得られる。
一方、ステップS2で異常センサがあると判定されたとする(ステップS2でYes)。この場合、異常センサが監視サーバ20と正常に通信できないことにより、異常センサが設置されたリンクを通過したフレームの情報が監視サーバ20に通知されない可能性がある。このため、特定部32は、異常センサが設置されたリンクをフレームが通過していると仮定すると通過リンクを全て含む1つの経路が得られる場合、異常センサが設置されたリンクを含めて疎通経路を特定するための処理をする。そこで、特定部32は、異常センサが設置されたリンクの始点を含むリンクを通過リンクとして特定しているかを判定する(ステップS3)。異常センサが設置されたリンクの始点を含むリンクを通過リンクとして特定していない場合、特定部32は、異常センサが設置されたリンクをフレームが通過している可能性がないと判定する(ステップS3でNo)。そこで、特定部32は、ステップS5、S8の処理を行うことにより疎通経路を決定する。
異常センサが設置されたリンクの始点を含むリンクを通過リンクとして特定している場合、異常センサが設置されたリンクをフレームが通過している可能性がある(ステップS3でYes)。そこで、特定部32は、異常センサが設置されたリンクの終点を含むリンクを通過リンクとして特定しているかを判定する(ステップS4)。異常センサが設置されたリンクの終点を含むリンクを通過リンクとして特定していない場合、特定部32は、異常センサが設置されたリンクをフレームが通過している可能性がないと判定する(ステップS4でNo)。そこで、特定部32は、ステップS5、S8の処理を行うことにより疎通経路を決定する。
次に、異常センサが設置されたリンクの始点を含むリンクと、異常センサが設置されたリンクの終点を含むリンクの両方を通過リンクとして特定している場合(ステップS3でYes、ステップS4でYes)について説明する。この場合、特定部32は、異常センサが設置されたリンクをフレームが通過していると判定する。そこで、特定部32は、異常センサの設置されたリンクを通過リンクに追加する(ステップS6)。特定部32は、特定した通過リンクと追加したリンクを、各リンクの始点と終点を用いて接続順に並べ、得られた経路をフレームの疎通経路とする(ステップS7、S8)。ステップS7での疎通経路の求め方は、ステップS5の説明に関連して説明した処理と同様である。なお、ステップS4でYesと判定された場合の処理は、異常なセンサが設置されたリンクの情報が欠落しているために通過リンクから1つの連続した経路が特定されない場合の救済措置に当たる。
例えば、センサ10が異常センサである場合、機器G―機器Fのリンクを経由しているフレームの情報は監視サーバ20に通知されない。このため、機器G―機器Fのリンクを経由しているフレームについての情報は、トラフィック情報テーブル41から欠落する。この状態で、機器A―機器Gのリンクと機器F―機器Eのリンクが通過リンクとして特定されたとする。この場合、特定部32は、異常センサが設置されているリンク(機器G―機器F)の始点となる機器(機器G)が機器A―機器Gのリンクに含まれていると判定する。さらに、特定部32は、異常センサが設置されているリンク(機器G―機器F)の終点となる機器(機器F)が機器F―機器Eのリンクに含まれていると判定する。そこで、特定部32は、機器G―機器Fのリンクのリンクを通過リンクに追加した上で疎通経路を求める。この例では、機器G―機器Fのリンクの追加により、機器A―機器G―機器F―機器Eの経路が疎通経路として得られる。
ここで、異常センサが経路の最初または最後のリンクに設置されている場合には、ステップS2かステップS3のいずれかでNoと判定されるため、通過リンクとして特定されたリンクから経路が求められる。例えば、センサ5が異常センサである場合、機器A―機器Gのリンクを経由しているフレームの情報が欠落するため、機器G―機器Fのリンクと機器F―機器Eのリンクが通過リンクとなる。従って、疎通経路は機器G―機器F―機器Eと判定される。また、疎通経路の始点は機器Gとなり、疎通経路の終点は機器Eとなる。この場合は、異常センサが設置されたリンクを除いた経路について、疎通経路と最適経路の比較が行われることになる。異常センサが経路の最後のリンクに設置されている場合も同様に処理される。
従って、フレームの転送に使用されている経路中のリンクの一部が、センサでの異常の発生により通過リンクに含まれていなくても、通過リンクとして特定されたリンクを含む疎通経路が求められる。このため、後述するように、疎通経路の始点から終点までの経路について、最短経路を通っているかが判定される。最短経路と比較される対象が図9を参照しながら説明したような処理で求められた疎通経路であるため、疎通経路はフレームの転送経路のうちでデータリンク層のプロトコルに基づいて動作する機器のネットワークに含まれる部分の全てでなくても良い。このため、監視サーバ20は、ネットワークに接続する全ての端末の情報を保持していなくても良い。従って、監視サーバ20のオペレータの処理負担は、監視サーバ20に端末の情報が登録される場合に比べて軽減される。
なお、図9は、疎通経路の求め方の一例であり、実装に応じて処理手順が変更され得る。例えば、ステップS3とステップS4の処理の順序は任意に変更され得る。また、ステップS2を省略して、ステップS3、S4の処理が行われても良い。
図10は、監視サーバ20で行われる処理の例を説明する図である。図10の処理は、図9を参照しながら記載した疎通経路の特定も含む。図10では、変数nと定数Nが用いられる。定数Nは処理対象とする経路の数であり、変数nは処理を行った経路の数を計数するために使用される。
特定部32は、トラフィック情報から、フレームが疎通している端末の組み合わせを特定する(ステップS21)。なお、この処理は、フレームの送信元IPアドレスと宛先IPアドレスの組み合わせを特定することに相当する。特定部32は、変数nを1に設定する(ステップS22)。特定部32は、n番目の組み合わせを処理対象として選択する(ステップS23)。特定部32は、n番目の組み合わせの端末間の疎通経路を特定する(ステップS24)。なお、ステップS24で行われる処理の詳細は、図9を参照しながら説明したとおりである。さらに、特定部32は、得られた疎通経路と変数nの値を、経路算出部33と比較処理部34に通知する。
経路算出部33は、ネットワーク中に障害が発生しているかを判定する(ステップS25)。ネットワーク中に障害が発生していない場合、経路算出部33は、特定した疎通経路の始点と終点を結ぶ最短経路を計算する(ステップS25でNo、ステップS26)。ステップS26において、経路算出部33は、始点として特定した機器に接続されているリンクの各々について、転送可能な機器の候補をたどり、転送可能な機器の候補からもその候補に接続されているリンクから可能な転送先を求める。この処理を繰り返すことにより、得られる全ての経路から、疎通経路の終点の機器に到達する経路を選択する。その後、疎通経路の終点の機器に到達する経路間でコスト値を比較することにより、コスト値が相対的に小さい経路を最短経路とする。
例えば、疎通経路の始点が機器Aであり、疎通経路の終点が機器Eであるとする。すると、経路算出部33は、機器Aから到達可能な転送先として、機器B、機器G、および、機器Hを特定する。なお、転送先の特定の際に、経路算出部33は接続関係テーブル42を使用できる。その後、経路算出部33は、機器A―機器Bの経路では、到達可能な転送先として、機器Cおよび機器Fを特定する。経路算出部33は、機器A―機器B―機器Cの経路では、到達可能な転送先として、機器Dおよび機器Eを特定する。すると、経路算出部33は、機器A―機器B―機器C―機器Eを、機器Aから機器Eに到達可能な経路とする。また、経路算出部33は、機器A―機器B―機器C―機器Dの経路でも、機器Eへの転送が可能であることから、機器A―機器B―機器C―機器D―機器Eも機器Aから機器Eに到達可能な経路とする。機器Aからの転送先が機器B以外の機器である場合についても、同様の処理を行うことにより、経路算出部33は、機器Aから機器Eに到達可能な全ての経路を計算する。機器Aから機器Eに到達可能な全ての経路を計算した後、各経路のコスト値の総和を比較することにより、相対的にコスト値の総和の小さな経路を最短経路とする。なお、各リンクのコスト値も接続関係テーブル42から特定される。
経路算出部33は、ネットワーク中に障害が発生している場合、特定した疎通経路の始点と終点を結び、かつ、障害の発生箇所を含まない最短の経路を計算する(ステップS25でYes、ステップS27)。ステップS27での処理の際に、経路算出部33は、接続関係テーブル42に記録されているリンクのうち、障害情報テーブル43に障害情報が含まれているポートを転送先の候補から除外する。障害情報テーブル43に障害情報が含まれているポートを転送先の候補から除外していること以外は、最短経路を求める際の経路算出部33の処理はステップS26と同様である。すなわち、経路算出部33は、疎通経路の始点の機器および終点の機器の情報と、ネットワーク中の機器での障害の発生状況を示す障害情報テーブル43とに基づいて、疎通経路の始点の機器から終点の機器に至る最短経路を特定している。
比較処理部34は、ステップS26またはステップS27で計算された最短経路の情報を取得し、疎通経路と比較する。この処理により、比較処理部34は、最短経路での通信が行われているかを判定する(ステップS28)。ステップS28の処理では、最短経路と疎通経路が一致するかが判定される。最短経路と疎通経路が一致しない場合、比較処理部34は、最短経路での通信が行われていないと判定する。(ステップS28でNo)。すると、比較処理部34は、n番目の組み合わせについて最短経路と疎通経路が異なることを通知する画面を出力する(ステップS29)。なお、最短経路と疎通経路が異なることを通知する画面は、実装に応じて変更され得る。例えば、最短経路と疎通経路が異なることを通知する画面は、図1に示すように、最短経路と疎通経路の両方を図示した画面であっても良い。また、最短経路と疎通経路が異なることを通知する画面は、最短経路と疎通経路の各々に含まれる機器の名称を羅列していても良い。
その後、比較処理部34は、変数nを1つインクリメントし、得られた変数nを定数Nと比較する(ステップS30、S31)。得られた変数nが定数Nを超えていない場合、全ての組み合わせについての処理が行われていない(ステップS31でNo)。そこで、比較処理部34は変数nを特定部32に通知し、特定部32はステップS24以降の処理を開始する。
一方、疎通経路が最短経路と一致する場合、比較処理部34は、最短経路での通信が行われていると判定する(ステップS28でYes)。なお、複数の最短経路が計算されている場合、最短経路のいずれかと疎通経路が一致すると、最短経路での通信が行われていると判定される。最短経路での通信が行われている場合、ステップS30以降の処理が行われる。
(2a)疎通経路と最短経路が一致する場合の処理の例
図11は、フレームが最短経路を経由している場合の例を説明する図である。この例では、ネットワーク中のいずれの装置にも障害が発生していないものとする。図11の例では、機器Aが疎通経路の始点であり、機器Eが疎通経路の終点である。また、疎通経路と最短経路は以下の通りである。
疎通経路 :機器A―機器G―機器F―機器E
最短経路_1:機器A―機器B―機器C―機器E
最短経路_2:機器A―機器B―機器F―機器E
最短経路_3:機器A―機器G―機器F―機器E
比較処理部34は、疎通経路を最短経路_1〜最短経路_3と比較することにより、疎通経路が最短経路_1〜最短経路_3のいずれかと一致するかを判定する。図11の例では、疎通経路は最短経路_3と一致している。
図10には図示されていないが、疎通経路が最短経路のいずれかと一致する場合、比較処理部34は、疎通経路が最短経路と一致していることを示す通知を出力しても良い。疎通経路が最短経路と一致していることを示す通知として、例えば、比較処理部34は、監視サーバ20に備えられたディスプレイに図11に示す図を表示する処理を行っても良い。また、比較処理部34は、疎通経路が最短経路と一致していることを示す任意の形式の通知を、オペレータが使用する端末等に送信するための処理を行っても良い。
(2b)疎通経路と最短経路が一致しない場合の処理の例
次に、ネットワーク中に障害が発生したことに起因して、疎通経路が最短経路と一致しなくなる場合の例を説明する。
例えば、図11に示すような通信が行われているときに、機器A―機器Gのリンクに障害が発生したとする。障害の発生により、機器Aは、端末1から端末5に送信されるフレームの転送先を機器Gから機器Hに変更したとする。このため、端末1から端末5に送信されるフレームの疎通経路は、機器A―機器G―機器F―機器Eから機器A―機器H―機器G―機器F―機器Eに更新されたとする。なお、この時点では、監視サーバ20は、端末1から端末5に送信されるフレームの疎通経路が変更されていることを認識していない。
その後、各センサはそのセンサが設置されているリンクを通過したフレームの情報を監視サーバ20に通知する。このため、監視サーバ20では、取得部31の処理により、トラフィック情報テーブル41が更新される。
センサ5は、機器A―機器Gのリンクでの障害の発生を検出すると、監視サーバ20に障害の発生を通知する。すると、取得部31は、設置センサ=センサ5をキーとして接続関係テーブル42(図5)を検索することにより、障害が発生しているリンクの始点と終点を特定する。この例では、センサ5は、機器AのポートPo2と機器GのポートPo4を結ぶリンクに設置されている。そこで、取得部31は、機器AのポートPo2と機器GのポートPo4を結ぶリンクで障害が発生していると判定する。取得部31は、障害情報テーブル43中の機器AのポートPo2のエントリ、および、機器GのポートPo4のエントリのいずれについても、状態をLink UPからDownに更新する。すなわち、取得部31は、障害が発生しているリンクの始点のポートと終点のポートの各々について、障害の発生を障害情報テーブル43に記録する。取得部31の処理により、障害情報テーブル43は図8に示すように更新されたとする。
その後、特定部32は、端末1から端末5に送信されるフレームについて、トラフィック情報テーブル41中の情報を用いて疎通経路を求めたとする。疎通経路を求めるときの処理は、図9を参照しながら説明したとおりである。特定部32は、端末1から端末5に送信されるフレームの疎通経路として、機器A―機器H―機器G―機器F―機器Eを特定したとする。従って、疎通経路の始点として機器Aが特定され、疎通経路の終点として機器Eが特定されている。
経路算出部33は、疎通経路の始点と終点を用いて最短経路を求める。この例では、機器A―機器Gのリンクに障害が発生しているので、経路算出部33は、機器Aから可能な転送先として、機器Bと機器Hを特定する。その後の最短経路を求める際の処理は、図10を参照しながら説明した処理と同様である。経路算出部33が求めた最短経路と特定部32が求めた疎通経路は以下の通りであるとする。
疎通経路 :機器A―機器H―機器G―機器F―機器E
最短経路_1:機器A―機器B―機器C―機器E
最短経路_2:機器A―機器B―機器F―機器E
図12は、フレームが最短経路を経由していない場合の例を説明する図である。最短経路_1と最短経路_2を、図12に破線で示す。疎通経路は図12の一点鎖線に示すとおりである。なお、疎通経路は、処理対象のフレームの通過をセンサが検知したリンクをつなげた経路である。さらに、図12には、機器A―機器Gのリンクに障害が発生していることも示されている。
比較処理部34は、疎通経路を最短経路_1および最短経路_2と比較することにより、疎通経路がいずれかの最短経路と一致するかを判定する。図11の例では、疎通経路はいずれの最短経路とも一致しない。そこで、比較処理部34は、疎通経路が最短経路と一致していないことを示す通知を出力する。疎通経路が最短経路と一致しないことを示す通知として、例えば、比較処理部34は、監視サーバ20に備えられたディスプレイに図12に示す図を表示する処理を行っても良い。また、比較処理部34は、疎通経路が最短経路と一致していないことを示す任意の形式の通知を、オペレータが使用する端末等に送信するための処理を行っても良い。
図9〜図12を参照しながら、処理対象の送信元IPアドレスと宛先IPアドレスの組み合わせごとに経路が決定される場合について説明したが、フレームのヘッダ中のアドレス情報と他の情報の組み合わせで経路が決定されても良い。すなわち、フレームの情報としてトラフィック情報テーブル41(図7)に記録されている情報のうち、時刻と通信レート以外の情報の任意の組み合わせを用いて経路の振り分けが行われても良い。例えば、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、および、宛先ポート番号の組み合わせごとに経路が決定されてもよい。フレームのヘッダ中のアドレス情報と他の情報の組み合わせで経路が決定される場合も、フレームの疎通経路の求め方、最短経路の求め方、疎通経路と最短経路の比較処理、および、比較結果の出力などは、図9〜図12を参照しながら説明した処理と同様である。
以上説明したように、フレームの疎通経路が最短経路と異なっている場合、疎通経路と最短経路の比較結果が監視サーバ20やオペレータが使用する端末に出力される。このため、オペレータは、監視サーバ20からの出力に基づいて、疎通経路と最短経路が一致しているかを効率的に判定することができる。従って、第1の実施形態にかかる経路確認処理によると、オペレータは、疎通経路と最短経路が一致しているかを効率的に判定できる。
疎通経路と最短経路が一致しているかを効率的に判定することにより、オペレータは、疎通経路と最短経路を一致させるための処理を行うことができる。疎通経路と最短経路が一致していない状況下でネットワーク中に障害が発生した場合、最短経路と迂回経路の交点にフレームが転送されていない可能性がある。例えば、最短経路と迂回経路の交点を疎通経路が含まないケースでは、最短経路と迂回経路の交点にフレームが転送されていない。この場合、迂回経路を計算したとしても、迂回経路にフレームが転送されないので、障害の発生による通信の途絶を回避できなくなる可能性がある。疎通経路と最短経路が一致していないことを発見したオペレータは、疎通経路を最短経路に一致させることにより、ネットワーク中に障害が発生した場合に、障害箇所を迂回した経路の計算結果を用いても通信に失敗する可能性を小さくできる。
<第2の実施形態>
第2の実施形態では、受信フレームのヘッダ情報に対応付けて転送先のポートが設定されている機器がネットワーク中に含まれている場合について説明する。監視サーバ20が保持するテーブルやテーブルの更新処理は、第1の実施形態と同様である。第2の実施形態では、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、および、宛先ポート番号の組み合わせごとに経路が決定されている場合を例とする。なお、第2の実施形態でも、図4に示すネットワークで通信が行われるものとする。第2の実施形態では、監視サーバ20は転送テーブル44を保持する。
図13は、転送テーブル44の例を説明する図である。転送テーブル44は、機器、送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号、および、転送先ポートの情報を含む。機器は、そのエントリの転送条件が設定されている機器を特定する情報である。フレームの転送先は、経路の設定に使用されるヘッダ情報の組み合わせに応じて設定される。従って、各エントリ中の送信元IPアドレス、送信元ポート番号、宛先IPアドレス、および、宛先ポート番号の組み合わせは、転送先を設定するフレームの特定に使用される。各エントリの転送先ポートの欄は、そのエントリ中の条件を満たすフレームについて、そのエントリの機器での転送先のポートの情報を記録する。
例えば、図13の1番目のエントリは、機器Bでの設定の情報である。機器Bには、送信元IPアドレス=192.168.0.1/24、送信元ポート番号=1030、宛先IPアドレス=192.168.2.1/24、宛先ポート番号=80であるフレームをポートPo2に転送する設定が行われている。同様に、2番目のエントリによると、機器Gは、送信元IPアドレス=192.168.0.1/24、送信元ポート番号=1030、宛先IPアドレス=192.168.2.1/24、宛先ポート番号=80のフレームをポートPo1に転送する。さらに、3番目のエントリによると、機器Fは、送信元IPアドレス=192.168.0.1/24、送信元ポート番号=1030、宛先IPアドレス=192.168.2.1/24、宛先ポート番号=80のフレームをポートPo1に転送する。
なお、図13は一例である。経路の決定に使用する条件の組み合わせに応じて、転送テーブル44に記録される情報は変更され得る。また、図13の例では1種類のフレームについての転送先のポートの情報が記録されているが、転送テーブル44には、各機器での設定状況に応じて、任意の数の種類のフレームについての転送設定に関する情報が記録され得る。
図14は、最短経路の計算例とフレームの疎通経路の例を説明する図である。以下の例では、機器B、機器F、および、機器Gにおいて図13を参照しながら説明した転送設定が行われているが、機器A、機器C〜機器E、および、機器Hでは転送先の設定が行われていないものとする。図14では、転送先の設定が行われているポートのポート番号を、四角形の中に書かれた数字で表わす。
例えば、端末1(192.168.0.1/24)が端末5(192.168.2.1/24)に、送信元ポート番号=1030かつ宛先ポート番号=80のフレームを送信したとする。この場合も、各センサから監視サーバ20に通知された情報に基づいて、図7に示すトラフィック情報テーブル41が得られたとする。すると、特定部32は、トラフィック情報テーブル41に基づいて、第1の実施形態と同様の処理により、機器A―機器G―機器F―機器Eという疎通経路を特定する。
経路算出部33は、転送テーブル44に転送先ポートが設定されている機器については、転送先を転送テーブル44に従って限定した上で、疎通経路の始点の機器から終点の機器に向けて可能な転送先をたどっていくことにより、転送可能な経路を計算する。図14の例では、疎通経路の始点が機器Aであり、疎通経路の終点が機器Eである。すると、経路算出部33は、機器Aについて転送テーブル44(図13)を参照する。転送テーブル44には機器Aについてのエントリがないので、経路算出部33は、機器Aに接続している全ての機器(機器B、機器G、機器H)の各々にフレームが転送された場合について転送経路を求める。
経路算出部33は、機器A―機器Bのリンクを含む経路での可能な転送先を決定するために、転送テーブル44を参照する。転送テーブル44によると、機器Bでは処理対象のフレームの転送先ポートがポートPo2に設定されている。また、機器BのポートPo2は機器Fに接続されている。このため、処理対象のフレームは、機器A―機器B―機器Fの順に転送される。経路算出部33は機器Fからの転送先を決定するために、転送テーブル44を参照する。転送テーブル44によると、機器Fでは処理対象のフレームの転送先ポートがポートPo1に設定されている。また、機器FのポートPo1は機器Eに接続されている。さらに、機器Eは疎通経路の終点である。このため、経路算出部33は、機器A―機器Bのリンクを含む経路として、機器A―機器B―機器F―機器Eを求める。
機器A―機器Gのリンクを含む経路にも同様の処理が行われる。転送テーブル44によると、機器Gでは処理対象のフレームの転送先ポートがポートPo1に設定されており、機器GのポートPo1は機器Fに設定されている。また、機器Fでは処理対象のフレームの転送先ポートがポートPo1に設定されており、機器FのポートPo1は疎通経路の終点である機器Eに設定されている。このため、経路算出部33は、機器A―機器Gのリンクを含む経路として、機器A―機器G―機器F―機器Eを求める。
機器A―機器Hと含む経路についても同様の処理が行われる。このため、経路算出部33は、機器A―機器Hのリンクを含む経路として、機器A―機器H―機器G―機器F―機器Eを求める。
経路算出部33は、計算した3つの経路の各々について、経路全体でのコスト値を計算し、得られたコスト値が相対的に小さい経路を最短経路とする。機器A―機器H―機器G―機器F―機器Eの経路は他の2つの経路に比べてコスト値が大きく、機器A―機器H―機器G―機器F―機器E以外の経路のコスト値が同じであるとする。すると、図14に示すように、疎通経路と最短経路は以下のようになる。
疎通経路 :機器A―機器G―機器F―機器E
最短経路_1:機器A―機器B―機器F―機器E
最短経路_2:機器A―機器G―機器F―機器E
比較処理部34での処理は第1の実施形態と同様である。従って、図14の例では、疎通経路が最短経路_2と一致していると判定する。なお、疎通経路がいずれの最短経路とも一致しない場合、比較処理部34は、第1の実施形態と同様に、疎通経路が最短経路と一致していないことを示す情報を出力するための処理を行う。
第2の実施形態では、フレームの転送先が転送テーブル44によって設定されているので、第1の実施形態に比べて、経路算出部33が計算する経路の総数が少なくてすむ。このため、第2の実施形態では、第1の実施形態に比べて監視サーバ20の処理負荷が低減される。さらに、第2の実施形態でも、第1の実施形態と同様に、フレームの疎通経路が最短経路と異なっている場合、疎通経路と最短経路の比較結果が比較処理部34から出力される。このため、第2の実施形態にかかる経路確認処理においても、第1の実施形態と同様に、疎通経路と最短経路が一致しているかを効率的に判定できる。このため、疎通経路と最短経路が一致していないことを発見したオペレータは、疎通経路を最短経路に一致させるための処理を行うことができる。従って、ネットワーク中に障害が発生した場合に、最短経路と迂回経路の交点にフレームが転送されていないことに起因して迂回経路を用いた通信の途絶の回避に失敗する可能性を小さくできる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
以上の説明で示したテーブル中の情報は一例であり、これらの情報も実装に応じて変更され得る。例えば、トラフィック情報テーブル41、接続関係テーブル42、障害情報テーブル43、転送テーブル44のいずれにおいても、情報要素は実装に応じて変更され得る。
疎通経路と最短経路が一致していないことを発見したオペレータが疎通経路を最短経路に一致させるための処理として、任意の方法が使用され得る。
以上の説明では、最短経路の選択の際にコスト値が用いられているが、経路算出部33は、コスト値以外の指標を用いて最短経路の選択を行っても良い。例えば、経路算出部33は、メトリック値やホップ値を用いて最短経路を求めても良い。