以下に添付図面を参照して、この発明にかかる通信システム、および生成装置の実施の形態を詳細に説明する。
本実施の形態にかかる通信システムを実現する検出装置、検出方法、および検出プログラムは、ネットワーク内の区間ごとに、区間内のリンクの本数分に、通過パケットに共通する要素をグループ分けする。「通過パケットに共通する要素」とは、例えば、送信元MACアドレスの末尾ビットを当該区間のリンクの本数で剰余演算した値である。そして、検出装置は、損失パケットの「通過パケットに共通する要素」をすべて含むグループでグループ分けされた区間を障害発生区間として検出する。すなわち、ある区間でグループ分けされた「通過パケットに共通する要素」の各々を含むパケットのすべてが損失パケットであるということは、当該パケットが通過すべき当該区間内のいずれかのリンクで障害が発生していることを意味する。これにより、検出装置は、どの区間が障害発生区間であるかを検出することができる。
図1は、検出装置によって実行される障害発生区間の検出内容を示す説明図である。図1に示すネットワークは、検出装置100と、監視装置200と、スイッチSW(SWitch)1と、スイッチSW2と、スイッチSW3と、ストレージ装置ST1と、を含む。
ここで、例として、検出装置100とスイッチSW1との区間は、1本のリンクで接続されている。スイッチSW1とスイッチSW2との区間S1は、1本のリンクで接続されている。スイッチSW2とスイッチSW3との区間S2は、2本のリンクで接続されている。スイッチSW3とストレージ装置ST1との区間S3は、4本のリンクで接続されている。なお、以下では、1つの区間に複数のリンクがある場合、リンクアグリゲーションの状態が確立されているものとする。
検出装置100は、障害発生区間を検出する装置である。まず、検出装置100は、障害発生区間検出処理の起動通知を受け付け、障害発生区間の検出を実行する。検出装置100は、識別情報群のいずれかを含む品質解析用パケット群を送信する。識別情報とは、品質解析用パケットごとに固有の情報であり、各スイッチで適用されている識別情報に対応する情報である。識別情報は、例えば、送信元MACアドレス、送信元IPアドレス、宛先MACアドレス、または宛先IPアドレスが挙げられる。例えば、各スイッチが送信元MACアドレスを適用している場合、識別情報は送信元MACアドレスである。
次に、検出装置100は、識別情報ごとに、送信した品質解析用パケットの数(以下、「送信パケット数」という)を計測し、パケット損失がある品質解析用パケットの数(以下、「損失パケット数」という)を計測する。そして、検出装置100は、送信パケット数と損失パケット数とに基づいて、識別情報ごとにパケット損失があるか否かを判定する。これにより、パケット損失がある識別情報の組み合わせから障害発生区間が検出される。
また、検出装置100は、識別情報として送信元アドレスを採用した場合、自装置で品質解析用パケットの応答を受信できるように、自装置を示す識別子を当該送信元アドレスに変更することもできる。例えば、検出装置100は、当該送信元アドレスを識別情報として有する複数の装置を設け、当該複数の装置に品質解析用パケットに関する送受信を実行させ、当該複数の装置を経由して品質解析用パケットの応答を受信できるようにする。
また、検出装置100は、自装置内に仮想マシンを生成し、当該仮想マシンのアドレスを変更することで、自装置を示す識別子を複数の送信元アドレスに順次変更してもよい。そして、検出装置100は、当該送信元アドレスを自装置内に生成した仮想マシンに設定することで、自装置において品質解析用パケットの応答を受信できるようにする。この場合、検出装置100は、当該送信元アドレスを識別情報として有する複数の装置を設けずに、自装置で品質解析用パケットの応答を受信することができる。
監視装置200は、ネットワークを監視し、ネットワークに障害が発生したことを検知する装置である。具体的には、例えば、監視装置200は、ネットワークに障害が発生したことを検知すると、障害発生区間の検出対象になる経路を特定する。そして、監視装置200は、障害発生区間検出処理の起動通知を検出装置100に送信する。起動通知には、特定した検出対象の経路を示す情報として、例えば、当該経路の始点になる装置のアドレスと終点になる装置のアドレスが含まれてもよいし、当該経路上の各区間のリンクの本数が含まれてもよい。図1の例では、障害発生区間の検出対象になる経路は、検出装置100からストレージ装置ST1までの経路であり、区間S1〜S3を含む経路である。
スイッチSW1〜SW3は、パケットを中継する装置である。例えば、スイッチSW1は、検出装置100とスイッチSW2との間でパケットを中継する。スイッチSW2は、スイッチSW1とスイッチSW3との間でパケットを中継する。スイッチSW2は、区間S2にパケットを通過させる場合、所定の振分ルールに従って、パケットを区間S2のいずれかのリンクに振り分ける。
スイッチSW3は、スイッチSW2とストレージ装置ST1との間でパケットを中継する。スイッチSW3は、区間S2にパケットを通過させる場合、所定の振分ルールに従って、パケットを区間S2のいずれかのリンクに振り分ける。スイッチSW3は、区間S3にパケットを通過させる場合、所定の振分ルールに従って、パケットを区間S3のいずれかのリンクに振り分ける。
ここで、振分ルールとは、或る区間に複数のリンクがある場合に、当該区間を通過させるパケットを複数のリンクのいずれかに振り分けるルールである。これにより、スイッチは、通過するパケットを複数のリンクに分散させ、各リンクの負荷を軽減する。結果として、1本のリンクにパケットが集中してネットワークが輻輳したり、1本のリンクにパケットが集中して負荷がかかり当該リンクに障害が発生しやすくなったりすることを防止することができる。なお、振分ルールは、スイッチの利用者または制作者によって任意に設定される。以下、振り分けルールを例示する。
振分ルールとしては、例えば、複数のリンクがある区間を通過させるパケット内の送信元MACアドレスの末尾ビットを当該区間のリンクの本数で剰余演算した値に対応するリンクに当該パケットを振り分けるルール(以下、「第1の振分ルール」という)がある。なお、送信元MACアドレスの末尾ビットではなく、パケット内の送信元IPアドレスの末尾ビットを用いてもよい。以下では、リンクの本数nで剰余演算した値を、「Modulo(n)」という。
また、振分ルールとしては、例えば、複数のリンクがある区間を通過させるパケット内の宛先MACアドレスの末尾ビットをリンクの本数で剰余演算した値に対応するリンクに当該パケットを振り分けるルール(以下、「第2の振分ルール」という)がある。なお、宛先MACアドレスの末尾ビットではなく、パケット内の宛先IPアドレスの末尾ビットを用いてもよい。
また、振分ルールとしては、例えば、複数のリンクがある区間を通過させるパケット内の送信元MACアドレスと宛先MACアドレスの末尾ビットの排他的論理和をリンクの本数で剰余演算した値に対応するリンクに当該パケットを振り分けるルール(以下、「第3の振分ルール」という)がある。なお、送信元MACアドレスと宛先MACアドレスの末尾ビットの排他的論理和ではなく、パケット内の送信元IPアドレスと宛先IPアドレスの末尾ビットの排他的論理和を用いてもよい。
ここで、区間S2で障害が発生した場合を例に挙げて、検出装置100により実行される障害発生区間検出処理の内容について説明する。なお、障害発生区間検出処理には、各スイッチSW1〜SW3が採用しうる複数種類の振分ルールの各々に対応する複数種類の障害発生区間検出処理がある。
そのため、検出装置100は、例えば、各スイッチSW1〜SW3が第1の振分ルールを採用している場合には、第1の振分ルールに応じた障害発生区間検出処理を実行する。第1の振分ルールに応じた障害発生区間検出処理によれば、検出装置100は、各スイッチSW1〜SW3が第1の振分ルールを採用している場合に、障害発生区間を検出することができるようになる。図1の例は、検出装置100により第1の振分ルールに応じた障害発生区間検出処理が実行される場合の例である。
また、検出装置100は、各スイッチSW1〜SW3が第2の振分ルールを採用している場合には、第2の振分ルールに応じた障害発生区間検出処理を実行する。第2の振分ルールに応じた障害発生区間検出処理によれば、検出装置100は、各スイッチSW1〜SW3が第2の振分ルールを採用している場合に、障害発生区間を検出することができるようになる。
また、検出装置100は、各スイッチSW1〜SW3が第3の振分ルールを採用している場合には、第3の振分ルールに応じた障害発生区間検出処理を実行してもよい。第3の振分ルールに応じた障害発生区間検出処理によれば、検出装置100は、各スイッチSW1〜SW3が第3の振分ルールを採用している場合に、障害発生区間を検出することができるようになる。
検出装置100は、各スイッチSW1〜SW3が採用している振分ルールを把握していれば、当該振分ルールを用いた障害発生区間検出処理を実行すればよい。一方、検出装置100は、各スイッチSW1〜SW3が採用している振分ルールを把握していない場合、上述した第1〜第3の振分ルールの各々に応じた障害発生区間検出処理を、順に実行して、障害発生区間の検出を試行してもよい。
(1)まず、検出装置100は、監視装置200から障害発生区間検出処理の起動通知を受信すると、品質解析用パケット群を送信して、障害発生区間の検出対象になる経路上の各区間S1〜S3の品質を解析する。
このとき、検出装置100は、第1の振分ルールに従った場合に、障害発生区間の検出対象になる経路上のそれぞれのリンクを、少なくとも1つの品質解析用パケットが通過するようにする。これにより、検出装置100は、障害発生区間の検出対象になる経路上の各区間S1〜S3のそれぞれのリンクの品質を解析することができるようになる。
検出装置100は、具体的には、例えば、障害発生区間の検出対象になる経路上の各区間S1〜S3のリンクの本数を取得する。各区間S1〜S3のリンクの本数は、例えば、各スイッチから取得される。また、各区間S1〜S3のリンクの本数は、起動通知に含まれていてもよい。そして、検出装置100は、取得した各区間S1〜S3のリンクの本数の中から、最大のリンクの本数を特定する。
検出装置100は、取得した最大のリンクの本数から、第1の振分ルールに従った場合に、リンクの本数が最大の区間の各リンクに少なくとも1つの品質解析用パケットが振り分けられるように、品質解析用パケットに含むべき送信元MACアドレスを特定する。これにより、検出装置100は、第1の振分ルールに従った場合に、障害発生区間の検出対象になる経路上のそれぞれのリンクを、少なくとも1つの品質解析用パケットが通過するようにする。
図1の例では、検出装置100は、区間S3のリンクの本数「4」が最大のリンクの本数であると特定する。次に、検出装置100は、第1の振分ルールに従った場合に、リンクの本数が最大の区間S3の各リンクに品質解析用パケットが振り分けられるように、品質解析用パケットに含むべき送信元MACアドレスを特定する。
上記の場合、最大のリンクの本数が「4」であるため、検出装置100は、第1の振分ルールに従って、末尾ビットのModulo(4)が「0〜3」となる4種類の送信元MACアドレスを特定する。図1の例では、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」を、末尾ビットのModulo(4)が「0〜3」のそれぞれとなる4種類の送信元MACアドレスとして特定する。
そして、検出装置100は、特定した送信元MACアドレスの各々を含む品質解析用パケット群を送信する。図1の例では、検出装置100は、特定した4種類の送信元MACアドレスの各々を含む品質解析用パケット群を生成する。検出装置100は、具体的には、例えば、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のそれぞれを送信元MACアドレスとして含む品質解析用パケット群を生成する。次に、検出装置100は、生成した品質解析用パケットを、ストレージ装置ST1に送信する。
そして、検出装置100は、品質解析用パケット群を送信した結果、送信元MACアドレスごとにパケット損失があるか否かを判定する。検出装置100は、具体的には、例えば、送信した品質解析用パケットに対するストレージ装置ST1からの応答を待ち、一定時間内に応答を受信できなかった場合に、損失パケットとしてカウントして、品質解析結果格納テーブル400に格納する。なお、品質解析結果格納テーブル400については、図4を用いて後述する。
これにより、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のうち、いずれの送信元MACアドレスが品質解析用パケットに含まれる場合にパケット損失があるかを判定することができる。そして、検出装置100は、パケット損失がある送信元MACアドレスの組み合わせを特定することができる。
(2)また、検出装置100は、第1の振分ルールと各区間S1〜S3のリンクの本数とに応じて、品質解析用パケット群の各パケットに含まれる送信元MACアドレスをグループ分けする。検出装置100は、具体的には、例えば、第1の振分ルールに従って各区間S1〜S3の各リンクに品質解析用パケット群が振り分けられる場合に、各リンクに振り分けられる品質解析用パケット内の送信元MACアドレスのグループを特定する。そして、検出装置100は、特定したグループを各区間に対応付けて、経路管理テーブル300に保持する。なお、経路管理テーブル300については、図3を用いて後述する。
図1の例では、第1の振分ルールにより区間S1の1本のリンクには、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケット群が振り分けられる。そのため、検出装置100は、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のグループを、経路管理テーブル300に保持する。
図1の例では、第1の振分ルールにより区間S2の2本のリンクの一方のリンクには、送信元MACアドレス「aa:bb:cc:dd:ee:00」および「aa:bb:cc:dd:ee:02」の各々を含む品質解析用パケットが振り分けられる。また、区間S2の2本のリンクの他方のリンクには、「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケットが振り分けられる。
そのため、検出装置100は、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」および「aa:bb:cc:dd:ee:02」のグループを保持する。また、検出装置100は、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:03」のグループを保持する。
図1の例では、第1の振分ルールにより区間S3の4本のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:00」を含む品質解析用パケットが振り分けられる。また、区間S3の4本のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:01」を含む品質解析用パケットが振り分けられる。また、区間S3の4本のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:02」を含む品質解析用パケットが振り分けられる。また、区間S3の4本のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:03」を含む品質解析用パケットが振り分けられる。
そのため、検出装置100は、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」のグループを保持する。また、検出装置100は、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」のグループを保持する。また、検出装置100は、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:02」のグループを保持する。また、検出装置100は、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:03」のグループを保持する。
これにより、検出装置100は、或る区間のいずれかのリンクで障害が発生した場合に、当該リンクに振り分けられ得る品質解析用パケット内の送信元MACアドレスのグループは、当該区間に対応付けられたグループのいずれかであると特定することができる。結果として、検出装置100は、障害が発生したリンクに振り分けられて障害が発生したリンクを通過することで、パケット損失を生じ得る品質解析用パケットの送信元MACアドレスのグループを特定することができる。
検出装置100は、例えば、区間S2のリンクで障害が発生した場合に、当該リンクに振り分けられ得る品質解析用パケット内の送信元MACアドレスのグループは、区間S2に対応付けられた上述した2つのグループのうちのいずれかであると特定することができる。そして、検出装置100は、区間S2のリンクで障害が発生した場合には、いずれかのグループの送信元MACアドレスを含む品質解析用パケットがパケット損失を生じることを特定することができる。
このように、検出装置100は、或る区間のリンクで障害が発生した場合、当該区間に対応付けられたいずれかのグループの送信元MACアドレスを含む品質解析用パケットが当該リンクに振り分けられ得ることは把握している。しかし、検出装置100は、具体的に、どのグループの送信元MACアドレスを含む品質解析用パケットが当該リンクに振り分けられるかは把握していない。
(3)そして、検出装置100は、(1)で特定した送信元MACアドレスごとのパケット損失の有無と(2)で保持した各区間S1〜S3に対応付けられた送信元MACアドレスのグループとから、障害発生区間を検出する。検出装置100は、具体的には、例えば、品質解析結果格納テーブル400からパケット損失がある送信元MACアドレスの組み合わせを特定する。
次に、検出装置100は、各区間S1〜S3に対応付けられた送信元MACアドレスのグループの中から、特定したパケット損失がある送信元MACアドレスの組み合わせに該当するグループを特定する。そして、検出装置100は、障害発生区間として、特定したグループに対応付けて保持された区間を検出する。
図1の例では、送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケットでパケット損失があったものとする。パケット損失があった送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:03」の組み合わせは、区間S2に対応付けられたグループに該当する。そのため、検出装置100は、障害発生区間として、区間S2を検出する。
これにより、検出装置100は、各区間S1〜S3のどの区間が障害発生区間であるかを検出することができる。また、検出装置100は、検出装置100のディスプレイや監視装置200に対して障害発生区間を示す情報を出力し、検出装置100または監視装置200の利用者(例えばネットワーク管理者)に障害発生区間を示す情報を通知してもよい。これにより、ネットワーク管理者は、障害発生区間を知ることができ、ネットワークの保守を実行することができるようになる。
なお、(2)で説明したように、検出装置100は、障害発生区間のどのリンクにどのグループの送信元MACアドレスを含む品質解析用パケットが振り分けられているかは把握していない。そのため、検出装置100は、上述した処理により障害発生区間を検出しているが、障害発生区間のどのリンクが障害発生原因かは検出していない。
ここで、検出装置100は、例えば、或る区間から障害発生原因のリンクを検出する従来技術を用いて、検出された障害発生区間から障害発生原因のリンクを検出する処理をさらに実行してもよい。また、検出装置100からの出力により障害発生区間を知ったネットワーク管理者が、障害発生区間を検査して障害発生原因のリンクを検出してもよい。
(検出装置100のハードウェア構成例)
図2は、検出装置100のハードウェア構成例を示すブロック図である。図2において、検出装置100は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、I/F(Interface)204と、を備えている。また、各構成部は、バス200によってそれぞれ接続されている。
CPU201は、検出装置100全体の制御を司る。ROM202は、ブートプログラムや検出プログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。RAM203は、図3を用いて後述する経路管理テーブル300と図4を用いて後述する品質解析結果格納テーブル400とを記憶している。
I/F204は、ネットワーク210に接続され、このネットワーク210内の他の装置に接続される。他の装置とは、例えば、ストレージ装置ST1、レイヤ2スイッチまたはレイヤ3スイッチである。そして、I/F204は、ネットワーク210と内部のインタフェースを司り、外部装置からのデータの入出力を制御する。
(経路管理テーブル300の記憶内容)
次に、図3を用いて、経路管理テーブル300の記憶内容について説明する。経路管理テーブル300は、検出装置100が有するテーブルであり、経路情報を記憶する。経路情報は、ネットワーク210の障害発生区間の検出対象になる経路に関する情報であり、当該経路上の各区間のリンクの本数や各区間に対応する送信元MACアドレスのグループを含む。なお、経路管理テーブル300は、ROM202やRAM203などの記憶装置によって実現される。
図3は、経路管理テーブル300の記憶内容の一例を示す説明図である。図3に示すように、経路管理テーブル300は、区間番号項目のそれぞれに対応付けて、リンクの本数項目と、識別子グループ項目と、を有し、ネットワーク210の障害発生区間の検出対象になる経路上の区間ごとにレコードを構成する。
区間番号項目には、ネットワーク210上の区間を特定する番号が記憶される。リンクの本数項目には、区間番号項目から特定される区間に存在するリンクの本数が記憶される。識別子グループ項目には、グループ分けされた送信元MACアドレスのグループが記憶される。なお、識別子グループ項目には、グループ分けされた宛先MACアドレスのグループが記憶されてもよい。
(品質解析結果格納テーブル400の記憶内容)
図4は、品質解析結果格納テーブル400の記憶内容の一例を示す説明図である。品質解析結果格納テーブル400は、検出装置100が有するテーブルであり、品質解析用パケットの送信結果と品質解析結果とを記憶する。送信結果は、品質解析用パケットの送信パケット数と損失パケット数である。品質解析結果は、品質解析用パケットを送信した結果、パケット損失があったか否かを示す情報である。なお、品質解析結果格納テーブル400は、ROM202やRAM203などの記憶装置によって実現される。
図4に示すように、品質解析結果格納テーブル400は、Modulo(n)項目のそれぞれに対応付けて、送信パケット数項目と、損失パケット数項目と、解析結果項目と、を有し、送信元MACアドレスのModulo(n)ごとにレコードを構成する。なお、Modulo(n)とは送信元MACアドレスをnで剰余演算した値を示す。nは、障害発生区間の検出対象になる経路上の各区間のリンクの本数の中で、最大のリンクの本数である。
Modulo(n)項目には、品質解析用パケット内の送信元MACアドレスのModulo(n)が記憶される。なお、Modulo(n)項目には、品質解析用パケット内の宛先MACアドレスのModulo(n)が記憶されてもよい。送信パケット数項目には、Modulo(n)項目の値に対応する送信元MACアドレスを含む品質解析用パケットの数が記憶される。損失パケット数項目には、Modulo(n)項目の値に対応する送信元MACアドレスを含む品質解析用パケットについて、パケット損失があった数が記憶される。
解析結果項目には、送信パケット数と損失パケット数とから解析された品質解析結果が記憶される。品質解析結果は、Modulo(n)項目の値に対応する送信元識別子を含む品質解析用パケットに関して、パケット損失があるか否かを示す。図4の例では、解析結果項目には、パケット損失がない場合に「○」が表記され、パケット損失がある場合に「×」が表記されている。なお、検出装置100は、例えば、損失パケット数が閾値以上の場合に、パケット損失があるとしてもよいし、送信パケット数に対する損失パケット数の割合が閾値以上の場合にパケット損失があるとしてもよい。
ここで、検出装置100は、パケット損失が顧客へ与える影響が大きいサービス(例えば、音声通信)では、パケット損失があるか否かを判定する閾値を低く設定してもよい。また、検出装置100は、パケット損失が顧客へ与える影響が小さいサービス(例えば、WEB閲覧)では、パケット損失があるか否かを判定する閾値を高く設定してもよい。なお、図4では、送信パケット数と損失パケット数とからパケット損失があるか否かを判定したが、損失パケット数からパケット損失があるか否かを判定してもよい。
(監視装置200のハードウェア構成例)
次に、監視装置200のハードウェア構成例について説明する。監視装置200のハードウェア構成は、例えば、図2を用いて説明した検出装置100のハードウェア構成と同様のため説明を省略する。なお、以下では、検出装置100と監視装置200とが別の装置であるとして説明を行うが、これに限らない。例えば、検出装置100と監視装置200とが同一の装置であってもよい。
(検出装置100の機能的構成例)
図5は、検出装置100の機能的構成例を示すブロック図である。検出装置100は、受付部501と、生成部502と、記憶部503と、送信部504と、判定部505と、検出部506と、出力部507と、を含む構成である。受付部501と生成部502と送信部504〜出力部507とは、具体的には、例えば、図2に示したROM202、RAM203などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F204により、その機能を実現する。
ここで、検出装置100は、図1に示したように、パケット損失がある識別情報の組み合わせから障害発生区間を検出してもよいし、また、パケット損失がある識別情報の数から障害発生区間を検出してもよい。なお、パケット損失がある識別情報の組み合わせから障害発生区間を検出する具体例については、図8および図9においても後述する。以下では、まず、検出装置100がパケット損失がある識別情報の組み合わせから障害発生区間を検出する場合について説明する。
受付部501は、障害発生区間検出処理の起動通知を受け付ける。ここで、起動通知は、障害発生区間検出処理の実行を要求する通知であってもよいし、障害発生区間検出処理を実行する仮想マシンの起動を要求する通知であってもよい。また、起動通知は、例えば、監視装置200がネットワークの障害を検知した場合に、監視装置200から送信される。起動通知は、検出装置100の利用者によりネットワークの障害があると判断された場合に、検出装置100の利用者から入力されてもよい。
障害発生区間の検出対象になる経路を示す情報や当該経路上の各区間のリンクの本数を検出装置100で取得しない場合は、起動通知には、例えば、障害発生区間の検出対象になる経路を示す情報や当該経路上の各区間のリンクの本数を示す情報が含まれてもよい。この場合、障害発生区間の検出対象になる経路を示す情報や当該経路上の各区間のリンクの本数は、例えば、監視装置200により取得される。
障害発生区間の検出に使用される品質解析用パケットに含むべき識別情報を検出装置100で生成しない場合は、起動通知には、例えば、障害発生区間検出処理において送信される品質解析用パケットに含むべき識別情報が含まれてもよい。また、起動通知には、例えば、障害発生区間検出処理において品質解析用パケットを送信すべき宛先を示す識別情報が含まれてもよい。この場合、品質解析用パケットに含むべき識別情報や品質解析用パケットを送信すべき宛先を示す識別情報は、例えば、監視装置200により生成される。
障害発生区間の検出に使用されるグループ分け情報を検出装置100で生成しない場合は、起動通知には、グループ分け情報が含まれてもよい。起動通知には、具体的には、例えば、宛先への経路上の区間群の各区間について、各区間が有するリンクの本数のうち最大本数分の固有な識別情報を区間が有するリンクの本数と最大本数分の固有な識別情報に共通する要素とによりグループ分けしたグループ分け情報が含まれていてもよい。この場合、グループ分け情報は、例えば、監視装置200により生成される。
グループ分け情報とは、所定の振分ルールに従って各区間の各リンクに品質解析用パケット群が振り分けられる場合に、各リンクに振り分けられる品質解析用パケット内の識別情報のグループを、各区間に対応付けた情報である。グループ分け情報とは、具体的には、例えば、複数のスイッチのそれぞれが備える出力ポートのそれぞれについて、スイッチングされるデータが有すべき1または複数の識別情報を要素として含む識別情報の集合である。ここで、複数のスイッチとは、障害発生区間上のスイッチである。換言すれば、グループ分け情報は、各区間のいずれかのリンクで障害が発生した場合に、どの識別情報を含む品質解析用パケットが、障害の影響を受けてパケット損失を生じるのかを示す情報である。
ここで、識別情報は、各スイッチが採用しうる振分ルールに対応する情報である。識別情報は、例えば、送信元MACアドレス、または送信元IPアドレスのいずれかに含まれる値である。例えば、各スイッチが第1の振分ルールを採用している場合、検出装置100は、送信元MACアドレスに含まれる値を識別情報として採用することにより、障害発生区間を検出することができるようになる。共通する要素とは、例えば、識別情報のModulo(n)である。
また、起動通知には、具体的には、例えば、複数の宛先へ振り分ける経路上の区間群の各区間について、各区間が有するリンクの本数のうち最大本数分の固有な識別情報を区間が有するリンクの本数と最大本数分の固有な識別情報に共通する要素とによりグループ分けしたグループ分け情報が含まれていてもよい。
ここで、識別情報は、各スイッチで適用されている識別情報に対応する情報である。識別情報は、例えば、宛先MACアドレス、宛先IPアドレス、宛先MACアドレスと送信元MACアドレスの排他的論理和、または宛先IPアドレスと送信元IPアドレスの排他的論理和のいずれかに含まれる値である。例えば、各スイッチが第2の振分ルールを採用している場合、検出装置100は、宛先MACアドレスに含まれる値を識別情報として採用することにより、障害発生区間を検出することができるようになる。例えば、各スイッチが第3の振分ルールを採用している場合、検出装置100は、宛先MACアドレスと送信元MACアドレスの排他的論理和に含まれる値を識別情報として採用することにより、障害発生区間を検出することができるようになる。
受付部501は、具体的には、例えば、監視装置200から障害発生区間検出処理の起動通知を受信することで、起動通知を受け付ける。また、受付部501は、検出装置100の利用者から起動通知の入力を受け付けてもよい。これにより、受付部501は、障害発生区間検出処理を開始するトリガを受け付けることができる。また、受付部501は、障害発生区間検出処理に使用される情報を受け付けることができる。なお、受け付けられた起動通知は、RAM203に記憶される。なお、起動通知にグループ分け情報が含まれる場合、当該グループ分け情報は記憶部503に記憶される。
生成部502は、受付部501によって受け付けられた起動通知にグループ分け情報が含まれていない場合、グループ分け情報を生成する。これにより、生成部502は、障害発生区間の検出に使用される情報を生成することができる。
記憶部503は、グループ分け情報を記憶する。記憶部503は、具体的には、例えば、予めグループ分け情報を記憶していてもよいし、生成部502によって生成されたグループ分け情報を記憶してもよいし、受付部501によって受け付けられたグループ分け情報を記憶してもよい。なお、記憶部503は、具体的には、例えば、図3に示した経路管理テーブル300の識別子グループ項目により実現される。
送信部504は、宛先への経路上の区間群の各区間が有するリンクの本数のうち最大本数分の固有な識別情報のいずれかの識別情報を各パケットが含むパケット群を、宛先に送信する。ここで、識別情報は、図1で上述したように各スイッチで適用されている識別情報に対応する情報であり、例えば、送信元MACアドレス、または送信元IPアドレスのいずれかに含まれる値である。パケット群は、例えば、品質解析用パケット群である。品質解析用パケットは、例えば、pingであって、応答の有無によってパケット損失の有無を解析するパケットである。また、送信部504は、識別情報を最大本数分用意することにより、所定の振分ルールに従った場合に、障害発生区間の検出対象になる経路上のそれぞれのリンクを、少なくとも1つのパケットが通過するようにすることができる。
送信部504は、具体的には、例えば、複数の宛先へ振り分ける経路上の区間群の各区間が有するリンクの本数のうち最大本数分の固有な送信元MACアドレスを各品質解析用パケットが含む品質解析用パケット群を生成する。そして、送信部504は、生成した品質解析用パケット群を宛先に送信する。送信部504は、より具体的には、例えば、検出装置100内で仮想マシンを起動し、仮想マシンを示す識別情報を最大本数分の固有な送信元MACアドレスのそれぞれに変更する。そして、送信部504は、仮想マシンを示す識別情報を変更するごとに、変更後の識別情報を含む品質解析用パケットを送信する。
これにより、送信部504は、送信元MACアドレスごとに異なるリンクを通過させて宛先に品質解析用パケットを送信することができる。また、送信部504は、自装置内に仮想マシンを生成し、当該仮想マシンのアドレスを変更することで、自装置を示す識別子を複数の送信元アドレスに順次変更することができるようになる。また、送信部504は、仮想マシンを示す識別情報を変更することで、品質解析用パケット内の送信元MACアドレスを変更しても、検出装置100で当該品質解析用パケットに対する応答を受信できるようにすることができる。
また、送信部504は、最大本数分の固有な識別情報の各々に対応する宛先に、対応する識別情報を有するパケットを送信してもよい。この場合、識別情報は、例えば、宛先MACアドレス、宛先IPアドレス、宛先MACアドレスと送信元MACアドレスの排他的論理和、または宛先IPアドレスと送信元IPアドレスの排他的論理和のいずれかに含まれる値である。
送信部504は、具体的には、例えば、最大本数分の固有な宛先MACアドレスを各品質解析用パケットが含む品質解析用パケット群を生成し、生成した品質解析用パケット群を、それぞれの品質解析用パケット内の宛先MACアドレスが示す宛先に送信する。これにより、送信部504は、宛先MACアドレスごとに異なるリンクを通過させて宛先に品質解析用パケットを送信することができる。
判定部505は、送信部504によって送信された結果、各識別情報に対してパケット損失があるか否かを判定する。判定部505は、具体的には、例えば、送信に対する応答が得られなかった送信データに含まれる識別情報の集合と一致する識別情報の集合が記憶部503に記憶されているか否かを判定する。ここで、送信データとは、送信部504によって送信された品質解析用パケット群である。そして、判定部505は、記憶部503に記憶されていると判定された場合に、記憶部503に記憶された一致する識別情報の集合に対応付けられたスイッチにおいて異常があると判定する。
判定部505は、より具体的には、例えば、品質解析用パケット群のうち、一定時間内に応答を受信できなかった品質解析用パケットの数を識別情報ごとに損失パケット数として計測する。そして、判定部505は、識別情報ごとの送信パケット数と損失パケット数とから、識別情報ごとにパケット損失があるか否かを解析し、解析結果を品質解析結果格納テーブル400に保存する。そして、判定部505は、パケット損失がある識別情報があると判定された場合、パケット損失がある識別情報に関するスイッチに異常があると判定する。これにより、判定部505は、検出部506にパケット損失がある識別情報のグループを特定することができる。
検出部506は、判定部505によって異常があると判定されたスイッチから送信データが送信された区間を検出する。検出部506は、具体的には、例えば、判定部505によって損失ありと判定された識別情報の組み合わせと同一の識別情報群のグループを有する区間を、グループ分け情報の中から検出する。検出部506は、具体的には、例えば、経路管理テーブル300の識別子グループ項目の中から、パケット損失ありと判定された識別情報の組み合わせに該当するグループを含む項目を検出し、当該項目に対応する区間番号項目から区間番号を検出する。
例えば、検出部506は、損失ありと判定された送信元MACアドレスのグループが「aa:bb:cc:dd:ee:00」であれば、経路管理テーブル300において、当該グループを含む識別子グループ項目に対応する区間番号「S3」を検出する。これにより、検出部506は、パケット損失の原因となっている区間を示す情報を検出することができる。
出力部507は、検出部506によって検出された検出結果を出力する。出力部507は、具体的には、例えば、検出部506によって検出された区間を示す情報を監視装置200に送信する。また、出力部507は、具体的には、例えば、検出部506によって検出された区間を示す情報を自装置のディスプレイに出力してもよい。これにより、出力部507は、ネットワーク210の管理者に障害が発生した区間を通知することができる。
また、送信部504は、実際のスイッチが採用している振分ルールが把握できず、或る振分ルールに対応する識別情報を用いて障害発生区間が検出できなかった場合、他の振分ルールに対応する識別情報を用いて障害発生区間の検出を試行し直してもよい。
送信部504は、例えば、識別情報に送信元アドレスに含まれる値を設定したパケット群を送信した結果、検出部506によって検出されなかった場合、識別情報をパケットの宛先アドレスに含まれる値に変更して送信してもよい。ここで、送信元アドレスとは、例えば、送信元MACアドレス、または送信元IPアドレスである。また、送信部504は、識別情報に送信元アドレスに含まれる値を設定したパケット群を送信した結果、検出部506によって検出されなかった場合、識別情報をパケットの送信元アドレスと宛先アドレスとの排他的論理和に含まれる値に変更して送信してもよい。ここで、宛先アドレスとは、例えば、宛先MACアドレス、または宛先IPアドレスである。
また、送信部504は、例えば、識別情報に宛先アドレスに含まれる値を設定したパケット群を送信した結果、検出部506によって検出されなかった場合、識別情報をパケットの送信元アドレスに含まれる値に変更して送信してもよい。また、送信部504は、識別情報に宛先アドレスに含まれる値を設定したパケット群を送信した結果、検出部506によって検出されなかった場合、パケットの送信元アドレスと宛先アドレスとの排他的論理和に含まれる値に変更して送信してもよい。
また、送信部504は、識別情報に送信元アドレスと宛先アドレスとの排他的論理和に含まれる値を設定したパケット群を送信した結果、検出部506によって検出されなかった場合、識別情報をパケットの宛先アドレスに含まれる値に変更して送信してもよい。また、送信部504は、識別情報に送信元アドレスと宛先アドレスとの排他的論理和に含まれる値を設定したパケット群を送信した結果、検出部506によって検出されなかった場合、パケットの送信元に含まれる値に変更して送信してもよい。これにより、送信部504は、実際のスイッチが採用している振分ルールが把握できず、或る振分ルールを用いても障害発生区間が検出できなかった場合、他の振分ルールを用いて再び障害発生区間の検出を試行することができる。
次に、検出装置100が、パケット損失がある識別情報の数から障害発生区間を検出する場合について説明する。なお、パケット損失がある識別情報の数から障害発生区間を検出する具体例については、図10を用いて後述する。以下では、送信部504と、出力部507との機能は、パケット損失がある識別情報の組み合わせから障害発生区間を検出する場合と同様であるため、ここでは説明を省略する。
受付部501は、パケット損失がある識別情報の組み合わせから障害発生区間を検出する場合と同様に、起動通知を受け付ける。ただし、起動通知には、パケット損失がある識別情報の数から障害発生区間を検出するために使用されるグループ分け情報が含まれていてもよい。例えば、起動通知には、宛先への経路上の区間群の各区間について、各区間が有するリンクの本数のうち最大本数分の固有な識別情報を区間が有するリンクの本数と最大本数分の固有な識別情報に共通する要素とによりグループ分けしたグループ内の識別情報数を示すグループ分け情報が含まれていてもよい。
上述した識別情報数を示すグループ分け情報は、所定の振分ルールに従って各区間の各リンクに品質解析用パケット群が振り分けられる場合に、各リンクに振り分けられる品質解析用パケットの数を、各区間に対応付けた情報である。グループ分け情報は、具体的には、例えば、複数のスイッチのそれぞれが備える出力ポートのそれぞれについて、スイッチングされるデータが有すべき1または複数の識別情報を要素として含む識別情報の集合内の要素の数である。換言すれば、グループ分け情報は、各区間のいずれかのリンクで障害が発生した場合に、障害の影響を受けてパケット損失を生じる品質解析用パケットがいくつあるのかを示す情報である。ここで、識別情報は、例えば、送信元MACアドレス、または送信元IPアドレスのいずれかに含まれる値である。
また、起動通知には、複数の宛先へ振り分ける経路上の区間群の各区間について、各区間が有するリンクの本数のうち最大本数分の固有な識別情報を区間が有するリンクの本数と最大本数分の固有な識別情報に共通する要素とによりグループ分けしたグループ内の識別情報数を示すグループ分け情報が含まれていてもよい。ここで、識別情報は、例えば、宛先MACアドレス、宛先IPアドレス、宛先MACアドレスと送信元MACアドレスの排他的論理和、または宛先IPアドレスと送信元IPアドレスの排他的論理和のいずれかに含まれる値である。
生成部502は、受付部501によって受け付けられた起動通知に、上述した識別情報数を示すグループ分け情報が含まれていない場合、上述した識別情報数を示すグループ分け情報を生成する。これにより、生成部502は、障害発生区間の検出に使用される情報を生成することができる。
記憶部503は、上述した識別情報数を示すグループ分け情報を記憶する。記憶部503は、具体的には、例えば、上述した識別情報数を示すグループ分け情報を予め記憶していてもよいし、生成部502によって生成された識別情報数を示すグループ分け情報を記憶してもよいし、受付部501によって受け付けられた識別情報数を示すグループ分け情報を記憶してもよい。なお、記憶部503は、具体的には、例えば、図3に示した経路管理テーブル300の識別子グループ項目により実現される。
判定部505は、送信部504によって送信された結果、各識別情報に対してパケット損失があるか否かを判定する。判定部505は、具体的には、例えば、送信データに含まれる識別情報の集合内の要素の数と一致する数が前記記憶部503に記憶されているか否かを判定する。そして、判定部505は、記憶部503に記憶されていると判定された場合に、記憶部503に記憶された一致する識別情報の集合に対応付けられたスイッチにおいて異常があると判定する。
判定部505は、より具体的には、例えば、品質解析用パケット群のうち、一定時間内に応答を受信できなかった品質解析用パケットの数を識別情報ごとに損失パケット数として計測する。そして、判定部505は、識別情報ごとの送信パケット数と損失パケット数とから、識別情報ごとにパケット損失があるか否かを解析し、解析結果を品質解析結果格納テーブル400に保存する。そして、判定部505は、パケット損失がある識別情報があると判定された場合、パケット損失がある識別情報に関するスイッチに異常があると判定する。これにより、判定部505は、検出部506にパケット損失がある識別情報のグループを特定することができる。
検出部506は、判定部505によって異常があると判定されたスイッチから送信データが送信された区間を検出する。検出部506は、具体的には、例えば、判定部505によって損失ありと判定された識別情報の数と同一の識別情報数を有する区間を、グループ分け情報の中から検出する。これにより、検出部506は、パケット損失の原因となっている区間を示す情報を検出することができる。
なお、上述したように、送信部504の機能は、自装置内で起動した仮想マシンにより実現されてもよい。同様に、受付部501と生成部502と判定部505〜出力部507との機能も、自装置内で起動した仮想マシンにより実現されてもよい。
(監視装置200の機能的構成例)
次に、図6を用いて、監視装置200の機能的構成例について説明する。
図6は、監視装置200の機能的構成例を示すブロック図である。監視装置200は、検知部601と、特定部602と、取得部603と、生成部604と、送信部605と、を含む構成である。検知部601〜送信部605は、具体的には、例えば、図2に示したROM202、RAM203などの記憶装置に記憶されたプログラムをCPU201に実行させることにより、または、I/F204により、その機能を実現する。
検知部601は、ネットワーク210内の障害を検知する。検知部601は、具体的には、例えば、検出装置100によってストレージ装置ST1へ送信されたパケットに対する応答が検出装置100によって受信できなかった旨の通知を、検出装置100から受信することで、ネットワーク210内の障害を検知する。また、検知部601は、具体的には、例えば、ネットワーク210を流れるパケット群をキャプチャし、シーケンス番号に抜けがあったことを検知することで、ネットワーク210内の障害を検知してもよい。これにより、監視装置200は、障害発生区間検出処理の起動通知を検出装置100に送信するトリガを得ることができる。
特定部602は、検知部601によって検知された障害に基づいて、ネットワーク210の中から、ネットワーク210内のコンピュータから宛先への経路を特定する。特定部602は、具体的には、例えば、検知部601によって受信された通知から、検出装置100から応答が受信できなかった宛先までの経路を特定する。また、特定部602は、検知部601によって検知された抜けがあったシーケンス番号の直前または直後のシーケンス番号を含むパケットから、送信元になるコンピュータから宛先までの経路を特定してもよい。これにより、特定部602は、障害発生区間の検出対象になる経路を特定することができる。
また、特定部602は、検知部601によって検知された障害に基づいて、ネットワーク210の中から、ネットワーク210内のコンピュータから複数の宛先へ振り分ける経路を特定する。特定部602は、具体的には、例えば、検知部601によって受信された通知から、検出装置100から応答が受信できなかった宛先までの経路を特定し、当該経路の一部と重複する複数の宛先への経路を特定する。また、特定部602は、検知部601によって検知された抜けがあったシーケンス番号の直前または直後のシーケンス番号を含むパケットから、送信元になるコンピュータから宛先までの経路を特定し、当該経路の一部と重複する複数の宛先への経路を特定してもよい。これにより、特定部602は、障害発生区間の検出対象になる経路を特定することができる。
取得部603は、ネットワーク210のトポロジ情報を取得する。取得部603は、具体的には、例えば、特定部602によって特定された経路上のスイッチSWからトポロジ情報を取得し、経路上の各区間のリンクの本数を取得する。これにより、取得部603は、検出装置100によって障害発生区間検出処理に使用される情報を取得することができる。
生成部604は、特定部602によって特定されたコンピュータから宛先への経路上の区間群の各区間について、各区間が有するリンクの本数のうち最大本数分の固有な識別情報を区間が有するリンクの本数と最大本数分の固有な識別情報に共通する要素とによりグループ分けしたグループ分け情報を生成する。グループ分け情報とは、特定部602によって特定されたコンピュータから宛先への経路上の複数のスイッチのそれぞれが備える出力ポートのそれぞれについて、スイッチングされるデータが有すべき1または複数の識別情報を要素として含む識別情報の集合である。グループ分け情報とは、例えば、図3に示した経路管理テーブル300の経路情報である。ここで、識別情報とは、例えば、送信元MACアドレス、送信元IPアドレス、宛先MACアドレス、または宛先IPアドレスのいずれかに含まれる値である。また、識別情報は、宛先MACアドレスと送信元MACアドレスの排他的論理和、または宛先IPアドレスと送信元IPアドレスの排他的論理和のいずれかに含まれる値であってもよい。これにより、生成部604は、検出装置100によって障害発生区間の検出に使用するグループ分け情報を生成することができる。
生成部604は、特定部602によって特定されたコンピュータから複数の宛先へ振り分ける経路上の区間群の各区間について、各区間が有するリンクの本数のうち最大本数分の固有な識別情報を区間が有するリンクの本数と最大本数分の固有な識別情報に共通する要素とによりグループ分けしたグループ分け情報を生成する。グループ分け情報とは、特定部602によって特定されたコンピュータから複数の宛先へ振り分ける経路上の複数のスイッチのそれぞれが備える出力ポートのそれぞれについて、スイッチングされるデータが有すべき1または複数の識別情報を要素として含む識別情報の集合である。グループ分け情報とは、例えば、図3に示した経路管理テーブル300の経路情報である。これにより、生成部604は、検出装置100によって障害発生区間の検出に使用するグループ分け情報を生成することができる。
送信部605は、生成部604によって生成されたグループ分け情報をコンピュータに送信する。送信部605は、具体的には、例えば、グループ分け情報が検出装置100で生成されない場合には、生成部604によって生成されたグループ分け情報を含む障害発生区間検出処理の起動通知を検出装置100に送信する。これにより、送信部605は、起動通知の送信により検出装置100に障害発生区間検出処理を実行させるとともに、障害発生区間検出処理に使用するグループ分け情報を検出装置100に送信し、検出装置100でグループ分け情報を生成しなくても障害発生区間検出処理を実行することができるようにする。
また、障害発生区間の検出対象になる経路を示す情報や当該経路上の各区間のリンクの本数が検出装置100で取得されない場合は、起動通知には、例えば、障害発生区間の検出対象になる経路を示す情報や当該経路上の各区間のリンクの本数を示す情報が含まれてもよい。この場合、障害発生区間の検出対象になる経路を示す情報や当該経路上の各区間のリンクの本数は、監視装置200により取得される。これにより、送信部605は、障害発生区間検出処理に使用する障害発生区間の検出対象になる経路を示す情報や当該経路上の各区間のリンクの本数を検出装置100に送信し、検出装置100で当該経路を示す情報や各区間のリンクの本数を取得しなくて済むようにする。
また、障害発生区間の検出に使用される品質解析用パケットに含むべき識別情報を検出装置100で生成しない場合は、起動通知には、例えば、障害発生区間検出処理において送信される品質解析用パケットに含むべき識別情報が含まれてもよい。この場合、品質解析用パケットに含むべき識別情報や品質解析用パケットを送信すべき宛先を示す識別情報は、監視装置200により生成される。また、起動通知には、例えば、障害発生区間検出処理において品質解析用パケットを送信すべき宛先を示す識別情報が含まれてもよい。これにより、送信部605は、障害発生区間の検出に使用される品質解析用パケットに含むべき識別情報を検出装置100に送信し、検出装置100で識別情報を生成しなくても品質解析用パケットを送信することができるようにする。
(検出装置起動処理の具体例)
次に、図7を用いて、監視装置200によってネットワーク210の障害が検知された場合に実行される検出装置起動処理の具体例について説明する。
図7は、検出装置起動処理の具体例を示す説明図である。(1)まず、監視装置200は、ネットワーク210の障害を検知する。具体的には、例えば、監視装置200は、検出装置100によってストレージ装置ST1へ送信されたパケットに対する応答が検出装置100によって受信できなかった旨の通知を、検出装置100から受信する。
(2)次に、監視装置200は、受信した通知から、障害発生区間の検出対象になる経路として、検出装置100からストレージ装置ST1までの経路を採用する。そして、監視装置200は、SNMPを用いて、検出対象になる経路上の各スイッチからMIB(Management Information Base)を取得することで、ネットワーク210のトポロジ情報を得る。
具体的には、監視装置200は、MIBとして、LLDP(Link Layer Discovery Protocol)やCDP(Cisco Discovery Protocol)を収集し、各スイッチの各ポートがどのスイッチのどのポートと接続されているかを収集してトポロジ情報を取得する。図7では、例えば、スイッチSW1のポート2とスイッチSW2のポート2とが接続されている。
これにより、監視装置200は、検出対象になる経路上の各スイッチの接続関係と検出対象になる経路上の各区間のリンクの本数との情報を含むトポロジ情報を取得することができる。ここで、監視装置200は、検出対象になる経路上の各区間のリンクの本数を保持する。
なお、SNMPとは、UDP/IPベースのネットワーク監視・ネットワーク管理を行うためのプロトコルである。SNMPは、ネットワーク機器に対して、状態監視やトラフィック監視を行ったり、リンクの切断の指示を行ったりするために使用するプロトコルである。ここでは、ネットワーク210のトポロジ情報を監視装置200が取得する場合について説明したが、監視装置200がネットワーク210のトポロジ情報を予め保持していてもよい。
(3)そして、監視装置200は、障害発生区間検出処理の起動通知を検出装置100へ送信する。起動通知には、例えば、監視装置200によって取得された検出対象になる経路上の各スイッチSWの接続関係と検出対象になる経路上の各区間のリンクの本数との情報を含むトポロジ情報が含まれる。
また、監視装置200は、障害発生区間検出処理において、検出装置100によって送信される品質解析用パケットに含むべき送信元識別子や宛先識別子を特定してもよい。そして、起動通知には、監視装置200によって特定された送信元識別子や宛先識別子が含まれてもよい。
(障害発生区間検出処理の具体例1)
次に、図8および図9を用いて、検出装置100によって実行される障害発生区間検出処理の具体例1について説明する。具体例1は、図1を用いて説明したパケット損失がある識別情報の組み合わせから障害発生区間を検出する例である。
図8および図9は、検出装置100によって実行される障害発生区間検出処理の具体例1を示す説明図である。なお、図1で説明した箇所と同様の箇所についての説明は省略する。まず、図8を用いて、区間S1で障害が発生した場合を例に挙げて、検出装置100により実行される障害発生区間検出処理の内容について説明する。
(1)検出装置100は、図1と同様に、各区間S1〜S3のリンクの本数の中から、最大のリンクの本数を特定する。そして、検出装置100は、第1の振分ルールに従った場合に、リンクの本数が最大の区間S3の各リンクに品質解析用パケットが振り分けられるように、品質解析用パケットに含むべき送信元MACアドレスを特定する。
図8の例では、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」を、末尾ビットのModulo(4)が「0〜3」のそれぞれとなる4種類の送信元MACアドレスとして特定する。そして、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のそれぞれを送信元MACアドレスとして含む品質解析用パケット群を生成する。
次に、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケット群を、ストレージ装置ST1へ送信する。そして、検出装置100は、送信した品質解析用パケットに対するストレージ装置ST1からの応答を待ち、一定時間内に応答を受信できなかった場合に、損失パケットとしてカウントして、品質解析結果格納テーブル400に格納する。
これにより、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のうち、いずれの送信元MACアドレスが品質解析用パケットに含まれる場合にパケット損失があるかを判定することができる。そして、検出装置100は、パケット損失がある送信元MACアドレスの組み合わせを特定することができる。
(2)また、検出装置100は、図1と同様に、第1の振分ルールと各区間S1〜S3のリンクの本数とに応じて、品質解析用パケット群の各パケットに含まれる送信元MACアドレスをグループ分けして、経路管理テーブル300に保持する。
図8の例では、検出装置100は、図1と同様に、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のグループを保持する。
また、検出装置100は、図1と同様に、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」および「aa:bb:cc:dd:ee:02」のグループを保持する。また、検出装置100は、図1と同様に、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:03」のグループを保持する。
また、検出装置100は、図1と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」のグループを保持する。また、検出装置100は、図1と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」のグループを保持する。また、検出装置100は、図1と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:02」のグループを保持する。また、検出装置100は、図1と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:03」のグループを保持する。
(3)そして、検出装置100は、(1)で特定した送信元MACアドレスごとのパケット損失の有無と(2)で保持した各区間S1〜S3に対応付けられた送信元MACアドレスのグループとから障害発生区間を検出する。
図8の例では、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケットでパケット損失があったものとする。パケット損失があった送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の組み合わせは、区間S1に対応付けられたグループに該当する。そのため、検出装置100は、障害発生区間として、区間S1を検出する。
次に、図9を用いて、区間S3で障害が発生した場合を例に挙げて、検出装置100により実行される障害発生区間検出処理の内容について説明する。
(1)まず、検出装置100は、図8と同様に、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」を、末尾ビットのModulo(4)が「0〜3」のそれぞれとなる4種類の送信元MACアドレスとして特定する。そして、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を送信元MACアドレスとして含む品質解析用パケット群を生成する。
次に、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケット群を、ストレージ装置ST1へ送信する。そして、検出装置100は、送信した品質解析用パケットに対するストレージ装置ST1からの応答を待ち、一定時間内に応答を受信できなかった場合に、損失パケットとしてカウントして、品質解析結果格納テーブル400に格納する。
これにより、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のうち、いずれの送信元MACアドレスが品質解析用パケットに含まれる場合にパケット損失があるかを判定することができる。そして、検出装置100は、パケット損失がある送信元MACアドレスの組み合わせを特定することができる。
(2)また、検出装置100は、図8と同様に、第1の振分ルールと各区間S1〜S3のリンクの本数とに応じて、品質解析用パケット群の各パケットに含まれる送信元MACアドレスをグループ分けして、経路管理テーブル300に保持する。図9の例では、検出装置100は、図8と同様に、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のグループを保持する。
また、検出装置100は、図8と同様に、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」および「aa:bb:cc:dd:ee:02」のグループを保持する。また、検出装置100は、図8と同様に、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:03」のグループを保持する。
また、検出装置100は、図8と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」のグループを保持する。また、検出装置100は、図8と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」のグループを保持する。また、検出装置100は、図8と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:02」のグループを保持する。また、検出装置100は、図8と同様に、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:03」のグループを保持する。
(3)そして、検出装置100は、(1)で特定した送信元MACアドレスごとのパケット損失の有無と(2)で保持した各区間S1〜S3に対応付けられた送信元MACアドレスのグループとから障害発生区間を検出する。
図9の例では、送信元MACアドレス「aa:bb:cc:dd:ee:01」を含む品質解析用パケットでパケット損失があったものとする。パケット損失がある送信元MACアドレス「aa:bb:cc:dd:ee:01」は、区間S3に対応付けられたグループに該当する。そのため、検出装置100は、障害発生区間として、区間S3を検出する。
なお、区間S2で障害が発生した場合に、検出装置100により実行される障害発生区間検出処理の内容については、図1を用いて説明した内容と同様であるため、ここでは説明を省略する。これにより、検出装置100は、各区間S1〜S3のどの区間が障害発生区間であるかを検出することができる。
(障害発生区間検出処理の具体例2)
次に、図10を用いて、検出装置100によって実行される障害発生区間検出処理の具体例2について説明する。具体例1は、パケット損失がある送信元MACアドレスの組み合わせから障害発生区間を検出する例である。これに対し、具体例2は、図5を用いて説明したパケット損失がある送信元MACアドレスの数から障害発生区間を検出する例である。
図10は、検出装置100によって実行される障害発生区間検出処理の具体例2を示す説明図である。なお、図1で説明した箇所と同様の箇所についての説明は省略する。ここで、区間S1で障害が発生した場合を例に挙げて、検出装置100により実行される障害発生区間検出処理の内容について説明する。
(1)まず、検出装置100は、図1と同様に、各区間S1〜S3のリンクの本数の中から、最大のリンクの本数を特定する。そして、検出装置100は、第1の振分ルールに従った場合に、リンクの本数が最大の区間S3の各リンクに品質解析用パケットが振り分けられるように、品質解析用パケットに含むべき送信元MACアドレスを特定する。
図10の例では、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」を、末尾ビットのModulo(4)が「0〜3」のそれぞれとなる4種類の送信元MACアドレスとして特定する。そして、検出装置100は、具体的には、例えば、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のそれぞれを送信元MACアドレスとして含む品質解析用パケット群を生成する。
次に、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケット群を、ストレージ装置ST1へ送信する。そして、検出装置100は、送信した品質解析用パケットに対するストレージ装置ST1からの応答を待ち、一定時間内に応答を受信できなかった場合に、損失パケットとしてカウントして、品質解析結果格納テーブル400に格納する。
これにより、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」のうち、いずれの送信元MACアドレスが品質解析用パケットに含まれる場合にパケット損失があるかを判定することができる。そして、検出装置100は、パケット損失がある送信元MACアドレスの数を特定することができる。
(2)また、検出装置100は、第1の振分ルールと各区間S1〜S3のリンクの本数とに応じて、品質解析用パケット群の各パケットに含まれる送信元MACアドレスをグループ分けし、グループ内の送信元MACアドレスの数を特定する。そして、検出装置100は、経路管理テーブル300の識別子グループ項目の代わりに識別子の数を記憶する識別子数項目を設け、特定した数を各区間S1〜S3に対応付けて、経路管理テーブル300に保持する。
図1と同様に、第1の振分ルールにより区間S1のリンクには、4つの送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケット群が振り分けられる。そのため、検出装置100は、区間S1に対応付けて、送信元MACアドレスの数「4」を保持する。
また、第1の振分ルールにより区間S2のリンクの一方には、2つの送信元MACアドレス「aa:bb:cc:dd:ee:00」および「aa:bb:cc:dd:ee:02」の各々を含む品質解析用パケット群が振り分けられる。また、区間S2のリンクの他方には、2つの送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケット群が振り分けられる。そのため、検出装置100は、区間S2に対応付けて、送信元MACアドレスの数「2」を保持する。
また、第1の振分ルールにより区間S3のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:00」を含む品質解析用パケットが振り分けられる。また、区間S3のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:01」を含む品質解析用パケットが振り分けられる。また、区間S3のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:02」を含む品質解析用パケットが振り分けられる。また、区間S3のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:03」を含む品質解析用パケットが振り分けられる。そのため、検出装置100は、区間S3に対応付けて、送信元MACアドレスの数「1」を保持する。
(3)そして、検出装置100は、(1)で特定した送信元MACアドレスごとのパケット損失の有無と(2)で保持した各区間S1〜S3に対応付けられた送信元MACアドレスの数とから、障害発生区間を検出する。
検出装置100は、具体的には、例えば、品質解析結果格納テーブル400からパケット損失がある送信元MACアドレスの数を特定する。次に、検出装置100は、各区間S1〜S3に対応付けられた送信元MACアドレスの数の中から、特定したパケット損失がある送信元MACアドレスの数に該当する数を特定する。そして、検出装置100は、障害発生区間として、特定した数に対応付けて保持された区間を検出する。
図10の例では、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケットでパケット損失があったものとする。パケット損失があった送信元MACアドレスは「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:03」であり、パケット損失がある送信元MACアドレスの数は「4」である。そのため、検出装置100は、障害発生区間として、該当する数「4」に対応付けられた区間S1を検出する。これにより、検出装置100は、各区間S1〜S3のどの区間が障害発生区間であるかを検出することができる。
ここで、具体例1および具体例2では各区間S1〜S3のリンクの本数が2の累乗であるがこれに限らない。また、具体例1および具体例2では各区間S1〜S3のリンクの本数がストレージ装置ST1へ向かうにつれて増加するがこれに限らない。例えば、具体例3に示すように、各区間S1〜S3のリンクの本数が3本や5本であってもよいし、各区間S1〜S3のリンクの本数がストレージ装置ST1に向かうにつれて減少してもよい。
(障害発生区間検出処理の具体例3)
次に、図11を用いて、検出装置100によって実行される障害発生区間検出処理の具体例3について説明する。具体例3は、各区間S1〜S3のリンクの本数が5本と3本と1本とであり、各区間S1〜S3のリンクの本数がストレージ装置ST1に向かうにつれて減少している場合の例である。
図11は、検出装置100によって実行される障害発生区間検出処理の具体例3を示す説明図である。なお、図1で説明した箇所と同様の箇所についての説明は省略する。ここで、区間S2で障害が発生した場合を例に挙げて、検出装置100により実行される障害発生区間検出処理の内容について説明する。
(1)まず、検出装置100は、監視装置200から障害発生区間検出処理の起動通知を受信すると、品質解析用パケット群を送信して、障害発生区間の検出対象になる経路上の各区間S1〜S3の品質を解析する。
検出装置100は、具体的には、例えば、障害発生区間の検出対象になる経路上の各区間S1〜S3のリンクの本数を取得する。各区間S1〜S3のリンクの本数は、例えば、各スイッチから取得する。また、各区間S1〜S3のリンクの本数は、起動通知に含まれていてもよい。
次に、検出装置100は、取得した各区間S1〜S3のリンクの本数の中から、最大のリンクの本数を特定する。図11の例では、検出装置100は、区間S3のリンクの本数「5」が最大のリンクの本数であると特定する。次に、検出装置100は、第1の振分ルールに従った場合に、リンクの本数が最大の区間S3の各リンクに品質解析用パケットが振り分けられるように、品質解析用パケットに含むべき送信元MACアドレスを特定する。
上記の場合、最大のリンクの本数が「5」であるため、検出装置100は、第1の振分ルールに従って、末尾ビットのModulo(5)が「0〜4」のそれぞれとなる5種類の送信元MACアドレスを特定する。図11の例では、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:04」を、末尾ビットのModulo(5)が「0〜4」のそれぞれとなる5種類の送信元MACアドレスとして特定する。
そして、検出装置100は、特定した5種類の送信元MACアドレスの各々を含む品質解析用パケット群を生成する。検出装置100は、具体的には、例えば、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:04」のそれぞれを送信元MACアドレスとして含む品質解析用パケット群を生成する。
次に、検出装置100は、生成した品質解析用パケットを、ストレージ装置ST1に送信する。検出装置100は、具体的には、例えば、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:04」の各々を含む品質解析用パケット群を、ストレージ装置ST1へ送信する。
そして、検出装置100は、品質解析用パケット群を送信した結果、送信元MACアドレスごとにパケット損失があるか否かを判定する。検出装置100は、具体的には、例えば、送信した品質解析用パケットに対するストレージ装置ST1からの応答を待ち、一定時間内に応答を受信できなかった場合に、損失パケットとしてカウントして、品質解析結果格納テーブル400に格納する。
これにより、検出装置100は、「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:04」のうち、いずれの送信元MACアドレスが品質解析用パケットに含まれる場合にパケット損失があるかを判定することができる。そして、検出装置100は、パケット損失がある送信元MACアドレスの組み合わせを特定することができる。
(2)また、検出装置100は、第1の振分ルールと各区間S1〜S3のリンクの本数とに応じて、品質解析用パケット群の各パケットに含まれる送信元MACアドレスをグループ分けする。検出装置100は、具体的には、例えば、第1の振分ルールに従って各区間S1〜S3の各リンクに品質解析用パケット群が振り分けられる場合に、各リンクに振り分けられる品質解析用パケット内の送信元MACアドレスのグループを特定する。そして、検出装置100は、特定したグループを各区間に対応付けて、経路管理テーブル300に保持する。
図11の例では、第1の振分ルールにより区間S1のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:00」を含む品質解析用パケットが振り分けられる。また、区間S1のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:01」を含む品質解析用パケットが振り分けられる。また、区間S1のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:02」を含む品質解析用パケットが振り分けられる。また、区間S1のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:03」を含む品質解析用パケットが振り分けられる。また、区間S1のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:04」を含む品質解析用パケットが振り分けられる。
そのため、検出装置100は、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」のグループを保持する。また、検出装置100は、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」のグループを保持する。また、検出装置100は、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:02」のグループを保持する。また、検出装置100は、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:03」のグループを保持する。また、検出装置100は、区間S1に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:04」のグループを保持する。
図11の例では、第1の振分ルールにより区間S2のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:00」および「aa:bb:cc:dd:ee:03」の各々を含む品質解析用パケットが振り分けられる。また、区間S2のリンクのいずれかには、送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:04」の各々を含む品質解析用パケットが振り分けられる。また、区間S2のリンクのいずれかには、「aa:bb:cc:dd:ee:02」を含む品質解析用パケットが振り分けられる。
そのため、検出装置100は、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」および「aa:bb:cc:dd:ee:03」のグループを保持する。また、検出装置100は、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:04」のグループを保持する。また、検出装置100は、区間S2に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:02」のグループを保持する。
図11の例では、第1の振分ルールにより区間S3のリンクには、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:04」の各々を含む品質解析用パケットが振り分けられる。そのため、検出装置100は、区間S3に対応付けて、送信元MACアドレス「aa:bb:cc:dd:ee:00」〜「aa:bb:cc:dd:ee:04」のグループを保持する。
(3)そして、検出装置100は、(1)で特定した送信元MACアドレスごとのパケット損失の有無と(2)で保持した各区間S1〜S3に対応付けられた送信元MACアドレスのグループとから、障害発生区間を検出する。
具体的には、例えば、品質解析結果格納テーブル400からパケット損失がある送信元MACアドレスの組み合わせを特定する。次に、検出装置100は、各区間S1〜S3に対応付けられた送信元MACアドレスのグループの中から、特定したパケット損失がある送信元MACアドレスの組み合わせに該当するグループを特定する。そして、検出装置100は、特定したグループに対応付けられた区間を障害発生区間として検出する。
図11の例では、パケット損失がある送信元MACアドレス「aa:bb:cc:dd:ee:01」および「aa:bb:cc:dd:ee:04」の組み合わせは、区間S2に対応付けられたグループに該当する。そのため、検出装置100は、区間S2を障害発生区間として検出する。これにより、検出装置100は、各区間S1〜S3のどの区間が障害発生区間であるかを検出することができる。
(障害発生区間検出処理の具体例4)
次に、図12および図13を用いて、検出装置100によって実行される障害発生区間検出処理の具体例4について説明する。具体例1〜具体例3は、品質解析用パケット内の送信元MACアドレスを用いて障害発生区間を検出した。これに対し、具体例4は、品質解析用パケット内の宛先MACアドレスを用いて障害発生区間を検出する。これにより、検出装置100は、第2の振分ルールを各スイッチSW1〜SW3が採用している場合に、障害発生区間を検出することができるようになる。
図12および図13は、検出装置100によって実行される障害発生区間検出処理の具体例4を示す説明図である。なお、図1で説明した箇所と同様の箇所についての説明は省略する。
図12および図13に示すネットワーク210は、検出装置100と、監視装置200と、スイッチSW1と、スイッチSW2と、スイッチSW3と、ストレージ装置ST1と、ストレージ装置ST2と、を含む。ここで、スイッチSW3とストレージ装置ST2との区間S4は、4本のリンクで接続されている。
ストレージ装置ST1のMACアドレスは、「vv:ww:xx:yy:zz:00」である。ストレージ装置ST2のMACアドレスは、「vv:ww:xx:yy:zz:01」である。図12および図13の例では、障害発生区間の検出対象になる経路は、検出装置100からストレージ装置ST1までの経路のうち、区間S1,S2を含む経路であるとする。
まず、図12を用いて、区間S2で障害が発生した場合を例に挙げて、検出装置100により実行される障害発生区間検出処理の内容について説明する。
(1)まず、検出装置100は、監視装置200から障害発生区間検出処理の起動通知を受信すると、品質解析用パケット群を送信して、障害発生区間の検出対象になる経路上の各区間S1,S2の品質を解析する。
そのために、まず、検出装置100は、各区間S1,S2のリンクの本数を取得する。各区間S1,S2のリンクの本数は、例えば、各スイッチから取得する。また、各区間S1,S2のリンクの本数は、起動通知に含まれていてもよい。
次に、検出装置100は、取得した各区間S1,S2のリンクの本数の中から、最大のリンクの本数を特定する。図12の例では、検出装置100は、区間S2のリンクの本数「2」が最大のリンクの本数であると特定する。次に、検出装置100は、第2の振分ルールに従った場合に、リンクの本数が最大の区間S2の各リンクに品質解析用パケットが振り分けられるように、品質解析用パケットに含むべき宛先MACアドレスを特定する。
上記の場合、最大のリンクの本数が「2」であるため、検出装置100は、第2の振分ルールに従って、末尾ビットのModulo(2)が「0または1」となる2種類の宛先MACアドレスを特定する。図12の例では、検出装置100は、「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」を、末尾ビットのModulo(2)が「0または1」となる2種類の宛先MACアドレスとして特定する。
そして、検出装置100は、特定した2種類の宛先MACアドレスの各々を含む品質解析用パケット群を生成する。検出装置100は、具体的には、例えば、「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」のそれぞれを宛先MACアドレスとして含む品質解析用パケット群を生成する。次に、検出装置100は、生成した品質解析用パケットを、ストレージ装置ST1およびST2に送信する。
そして、検出装置100は、品質解析用パケット群を送信した結果、宛先MACアドレスごとにパケット損失があるか否かを判定する。検出装置100は、具体的には、例えば、送信した品質解析用パケットに対するストレージ装置ST1およびST2からの応答を待ち、一定時間内に応答を受信できなかった場合に、損失パケットとしてカウントして、品質解析結果格納テーブル400に格納する。
これにより、検出装置100は、「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」のうち、いずれの宛先MACアドレスが品質解析用パケットに含まれる場合にパケット損失があるかを判定することができる。そして、検出装置100は、パケット損失がある宛先MACアドレスの組み合わせを特定することができる。
(2)また、検出装置100は、第2の振分ルールと各区間S1,S2のリンクの本数とに応じて、品質解析用パケット群の各パケットに含まれる宛先MACアドレスをグループ分けする。検出装置100は、具体的には、例えば、第2の振分ルールに従って各区間S1,S2の各リンクに品質解析用パケット群が振り分けられる場合に、各リンクに振り分けられる品質解析用パケット内の宛先MACアドレスのグループを特定する。そして、検出装置100は、特定したグループを各区間に対応付けて、経路管理テーブル300に保持する。
図12の例では、第2の振分ルールにより、区間S1の1本のリンクには、宛先MACアドレス「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」の各々を含む品質解析用パケットが振り分けられる。そのため、検出装置100は、区間S1に対応付けて、宛先MACアドレス「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」のグループを保持する。
図12の例では、第2の振分ルールにより、区間S2の2本のリンクの一方には、宛先MACアドレス「vv:ww:xx:yy:zz:00」を含む品質解析用パケットが振り分けられる。また、区間S2の2本のリンクの他方には、「vv:ww:xx:yy:zz:01」を含む品質解析用パケットが振り分けられる。そのため、検出装置100は、区間S2に対応付けて、宛先MACアドレス「vv:ww:xx:yy:zz:00」のグループを保持する。また、検出装置100は、区間S2に対応付けて、宛先MACアドレス「vv:ww:xx:yy:zz:01」のグループを保持する。
(3)そして、検出装置100は、(1)で特定した宛先MACアドレスごとのパケット損失の有無と(2)で保持した各区間S1,S2に対応付けられた宛先MACアドレスのグループとから、障害発生区間を検出する。
検出装置100は、具体的には、例えば、品質解析結果格納テーブル400からパケット損失がある宛先MACアドレスの組み合わせを特定する。次に、検出装置100は、各区間S1,S2に対応付けられた宛先MACアドレスのグループの中から、特定したパケット損失がある宛先MACアドレスの組み合わせに該当するグループを特定する。そして、検出装置100は、障害発生区間として、特定したグループに対応付けて保持された区間を検出する。
図12の例では、宛先MACアドレス「vv:ww:xx:yy:zz:00」を含む品質解析用パケットでパケット損失があったものとする。パケット損失があった宛先MACアドレス「vv:ww:xx:yy:zz:00」は、区間S2に対応付けられたグループに該当する。そのため、検出装置100は、障害発生区間として、区間S2を検出する。これにより、検出装置100は、各区間S1,S2のどの区間が障害発生区間であるかを検出することができる。
次に、図13を用いて、区間S1で障害が発生した場合を例に挙げて、検出装置100により実行される障害発生区間検出処理の内容について説明する。
(1)まず、検出装置100は、監視装置200から障害発生区間検出処理の起動通知を受信すると、品質解析用パケット群を送信して、障害発生区間の検出対象になる経路上の各区間S1,S2の品質を解析する。
検出装置100は、具体的には、例えば、図12と同様に、「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」を、末尾ビットのModulo(2)が「0または1」となる2種類の宛先MACアドレスとして特定する。そして、検出装置100は、「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」のそれぞれを宛先MACアドレスとして含む品質解析用パケット群を生成する。次に、検出装置100は、生成した品質解析用パケットを、ストレージ装置ST1およびST2に送信する。
そして、検出装置100は、送信した品質解析用パケットに対するストレージ装置ST1およびST2からの応答を待ち、一定時間内に応答を受信できなかった場合に、損失パケットとしてカウントして、品質解析結果格納テーブル400に格納する。
これにより、検出装置100は、「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」のうち、いずれの宛先MACアドレスが品質解析用パケットに含まれる場合にパケット損失があるかを判定することができる。そして、検出装置100は、パケット損失がある宛先MACアドレスの組み合わせを特定することができる。
(2)また、検出装置100は、図12と同様に、第2の振分ルールと各区間S1,S2のリンクの本数とに応じて、品質解析用パケット群の各パケットに含まれる宛先MACアドレスをグループ分けする。そして、検出装置100は、グループ分けされたグループを各区間に対応付けて、経路管理テーブル300に保持する。
図13の例では、検出装置100は、区間S1に対応付けて、宛先MACアドレス「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」のグループを保持する。また、検出装置100は、区間S2に対応付けて、宛先MACアドレス「vv:ww:xx:yy:zz:00」のグループを保持する。また、検出装置100は、区間S2に対応付けて、宛先MACアドレス「vv:ww:xx:yy:zz:01」のグループを保持する。
(3)そして、検出装置100は、(1)で特定した宛先MACアドレスごとのパケット損失の有無と(2)で保持した各区間S1,S2に対応付けられた宛先MACアドレスのグループとから、障害発生区間を検出する。
図13の例では、宛先MACアドレス「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」の各々を含む品質解析用パケットでパケット損失があったものとする。パケット損失があった宛先MACアドレス「vv:ww:xx:yy:zz:00」と「vv:ww:xx:yy:zz:01」の組み合わせは、区間S1に対応付けられたグループに該当する。そのため、検出装置100は、障害発生区間として、区間S1を検出する。これにより、検出装置100は、各区間S1,S2のどの区間が障害発生区間であるかを検出することができる。
(検出装置起動処理の詳細な処理手順)
次に、図14を用いて、監視装置200によって実行される検出装置起動処理の詳細な処理手順について説明する。図14に処理手順を示す検出装置起動処理は、図7に示した監視装置200によって実行された検出装置起動処理に対応する。
図14は、監視装置200によって実行される検出装置起動処理の詳細な処理手順を示すフローチャートである。図14において、まず、監視装置200は、ネットワークの障害を検知したか否かを判定する(ステップS1401)。ここで、障害を検知していない場合(ステップS1401:No)、監視装置200は、ステップS1401に戻り、障害の検知を待つ。
一方、障害を検知した場合(ステップS1401:Yes)、監視装置200は、ネットワーク210の各スイッチからトポロジ情報を取得する(ステップS1402)。次に、監視装置200は、検出装置100を起動する起動通知の送信先を決定する(ステップS1403)。
そして、監視装置200は、検出対象の経路上の各区間のリンクの本数のうち、最大のリンクの本数を特定する(ステップS1404)。次に、監視装置200は、特定した最大のリンクの本数から、障害発生区間検出処理に使用される宛先MACアドレス群および送信元MACアドレス群を特定する(ステップS1405)。
そして、監視装置200は、送信先に検出装置100の起動通知を送信する(ステップS1406)。起動通知には、最大のリンクの本数、宛先MACアドレス群および送信元MACアドレス群が含まれている。
次に、監視装置200は、検出結果を受信したか否かを判定する(ステップS1407)。ここで、検出結果を受信していない場合(ステップS1407:No)、監視装置200は、ステップS1407に戻り、検出結果の受信を待つ。
一方、検出結果を受信した場合(ステップS1407:Yes)、監視装置200は、検出結果を出力し(ステップS1408)、検出装置起動処理を終了する。これにより、監視装置200は、検出装置100に障害発生区間検出処理の起動のトリガを与えることができる。また、監視装置200は、検出装置100によって障害発生区間検出処理に使用されるトポロジ情報を検出装置100に送信することができる。
結果として、監視装置200は、監視装置200の利用者(例えば、ネットワーク210の管理者)に、障害発生区間を通知することができる。そして、ネットワーク210の管理者は、通知された障害発生区間を参照して、ネットワーク210の保守を行うことができる。この際、ネットワーク210の管理者は、誤って正常な区間を交換しなくて済む。そして、ネットワーク210の保守に要する時間を短縮できる。
(障害発生区間検出処理の詳細な処理手順)
次に、図15〜図17を用いて、検出装置100によって実行される障害発生区間検出処理の詳細な処理手順について説明する。図15〜図17に処理手順を示す障害発生区間検出処理は、図8および図9に示した検出装置100によって実行された処理と、図12および図13に示した検出装置100によって実行された処理と、を含む。
まず、図15〜図17に処理手順を示す障害発生区間検出処理では、図8および図9に示した障害発生区間検出処理が検出装置100によって実行される。そして、図8および図9に示した障害発生区間検出処理により検出できなかった場合には、図12および図13に示した障害発生区間検出処理が検出装置100によって実行される。
図15〜図17は、検出装置100によって実行される障害発生区間検出処理の詳細な処理手順を示すフローチャートである。図15において、まず、検出装置100は、起動通知を受けたか否かを判定する(ステップS1501)。ここで、起動通知を受けていない場合(ステップS1501:No)、検出装置100は、ステップS1501に戻り、起動通知を受けるのを待つ。
一方、起動通知を受けると(ステップS1501:Yes)、検出装置100は、検出対象の経路上の各区間のリンクの本数を取得する(ステップS1502)。次に、検出装置100は、検出対象の経路上の各区間のリンクの本数のうち、最大のリンクの本数を特定する(ステップS1503)。
そして、検出装置100は、所定の振分ルールを用いた場合に、各区間において各リンクに振り分けられる識別情報のグループを特定する(ステップS1504)。識別情報とは、送信元MACアドレスおよび宛先MACアドレスである。次に、検出装置100は、図16のステップS1601に移行する。
図16において、検出装置100は、起動通知に含まれていた宛先MACアドレス群および送信元MACアドレス群の中から宛先MACアドレスおよび未選択の送信元MACアドレスを選択し、選択した宛先MACアドレスおよび未選択の送信元MACアドレスを、自装置に設定する(ステップS1601)。次に、検出装置100は、設定した宛先MACアドレスおよび送信元MACアドレスを含む品質解析用パケットを送信する(ステップS1602)。そして、検出装置100は、品質解析結果を品質解析結果格納テーブル400に格納する(ステップS1603)。
次に、検出装置100は、未選択の送信元MACアドレスがあるか否かを判定する(ステップS1604)。ここで、未選択の送信元MACアドレスがある場合(ステップS1604:Yes)、検出装置100は、ステップS1601に戻る。
一方、未選択の送信元MACアドレスがない場合(ステップS1604:No)、検出装置100は、品質解析結果格納テーブル400を参照して、パケット損失がある送信元MACアドレスの組み合わせを特定する(ステップS1605)。次に、検出装置100は、ステップS1503で特定した識別情報のグループとステップS1605で特定した送信元MACアドレスの組み合わせとから、障害発生区間を検出する(ステップS1606)。
そして、検出装置100は、障害発生区間が検出できたか否かを判定する(ステップS1607)。ここで、検出できた場合(ステップS1607:Yes)、検出装置100は、検出した障害発生区間を出力して(ステップS1608)、障害発生区間検出処理を終了する。一方、検出できない場合(ステップS1607:No)、検出装置100は、図17のステップS1701に移行する。
図17において、検出装置100は、起動通知に含まれていた宛先MACアドレス群および送信元MACアドレス群の中から未選択の宛先MACアドレスおよび送信元MACアドレスを選択し、選択した未選択の宛先MACアドレスおよび送信元MACアドレスを、自装置に設定する(ステップS1701)。次に、検出装置100は、設定した宛先MACアドレスおよび送信元MACアドレスを含む品質解析用パケットを送信する(ステップS1702)。そして、検出装置100は、品質解析結果を品質解析結果格納テーブル400に格納する(ステップS1703)。
次に、検出装置100は、未選択の宛先MACアドレスがあるか否かを判定する(ステップS1704)。ここで、未選択の宛先MACアドレスがある場合(ステップS1704:Yes)、検出装置100は、ステップS1701に戻る。
一方、未選択の宛先MACアドレスがない場合(ステップS1704:No)、検出装置100は、品質解析結果格納テーブル400を参照して、パケット損失がある宛先MACアドレスの組み合わせを特定する(ステップS1705)。次に、検出装置100は、ステップS1504で特定した識別情報のグループとステップS1705で特定した宛先MACアドレスの組み合わせとから、障害発生区間を検出する(ステップS1706)。
そして、検出装置100は、障害発生区間が検出できたか否かを判定する(ステップS1707)。ここで、検出できた場合(ステップS1707:Yes)、検出装置100は、検出した障害発生区間を出力して(ステップS1708)、障害発生区間検出処理を終了する。
一方、検出できない場合(ステップS1707:No)、検出装置100は、検出に失敗したことを出力して(ステップS1709)、障害発生区間検出処理を終了する。これにより、検出装置100は、障害発生区間を検出することができる。
以上説明したように、検出装置100は、各々、異なる識別情報を含む品質解析用パケット群を送信し、識別情報ごとにパケット損失があるか否かを判定する。次に、検出装置100は、各区間に対応付けられた各区間で障害が発生した場合にパケット損失が生じる識別情報のグループの中から、パケット損失があると判定された識別情報の組み合わせに該当するグループを検出する。そして、検出装置100は、検出したグループに対応する区間を、障害発生区間として検出する。検出装置100は、検出した障害発生区間を出力する。
これにより、検出装置100は、障害発生区間を検出することができ、検出した障害発生区間を出力することができる。検出装置100は、障害発生区間を、自装置のディスプレイに出力してもよいし、監視装置200に送信してもよい。結果として、検出装置100の利用者または監視装置200の利用者になりうるネットワーク210の管理者は、出力された障害発生区間を参照して、ネットワーク210の保守を行うことができる。この際、ネットワーク210の管理者は、誤って正常なリンクを交換しなくて済む。そして、ネットワーク210の保守に要する時間を短縮できる。
また、検出装置100は、識別情報に、送信元アドレスに含まれる値、宛先アドレスに含まれる値、または送信元アドレスと宛先アドレスの排他的論理和に含まれる値を採用する。これにより、検出装置100は、第1〜第3の振分ルールのそれぞれに応じた識別情報を採用して、障害発生区間を検出することができる。
また、検出装置100は、障害発生区間が検出できなかった場合、未済用の他の値を採用して再び障害発生区間の検出を行う。これにより、検出装置100は、実際のスイッチが採用している振分ルールが不明であっても、第1〜第3の振分ルールのそれぞれに応じた識別情報を総当たりで採用して、障害発生区間を検出することができる。
また、従来では、障害発生区間を検出するネットワークトモグラフィの技術があった。しかしながら、ネットワークトモグラフィの技術では、障害が発生したと判定された複数の経路の重ね合わせにより障害発生区間を検出するため、1つの経路上に複数区間がある場合、いずれの区間が障害発生区間かを検出することができなかった。一方、本実施の形態にかかる検出装置100は、1つの経路上の複数区間のいずれが障害発生区間かを検出することができる。
また、ネットワークトモグラフィの技術は、パケットの通過した経路をルーティングプロトコルを用いて把握する必要があるため、ルーティングプロトコルに対応していないレイヤ2のスイッチを含むネットワークには適用できなかった。しかし、本実施の形態にかかる検出装置100は、ルーティングプロトコルを用いずに、障害発生区間を検出することができるため、レイヤ2のスイッチを含むネットワークにも適用することができる。
ここで、従来では、障害発生区間の検出のために、コンピュータによって、各スイッチのトラフィック監視を行う従来技術があった。具体的には、従来技術にかかるコンピュータは、各スイッチのインタフェースごとに損失パケットに関するMIBのカウンタを収集して障害発生区間を検出する。
しかしながら、各スイッチのインタフェースごとにMIBのカウンタを収集する場合、MIBのカウンタは差分を計算しなければならないため、従来技術にかかるコンピュータは、定常的にMIBを収集する。そのため、従来技術にかかるコンピュータは、MIBの収集に失敗すると障害発生リンクを検出できない。
一方、本実施の形態にかかる検出装置100は、定常的にMIBを収集することなく、ネットワーク210のトポロジ情報の取得時にMIBを収集するのみである。よって、検出装置100は、MIBの収集にかかる時間を削減し、MIBの収集による通信路の圧迫を回避することができる。
なお、本実施の形態で説明した検出方法および生成方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本検出プログラムおよび本生成プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本検出プログラムおよび本生成プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)アドレスに応じて受信データを中継送信する先の送信ポートを切り替える複数のスイッチを備えた通信システムにおいて、
前記複数のスイッチのそれぞれが備える出力ポートのそれぞれについて、スイッチングされるデータが有すべき1または複数のアドレスを要素として含むアドレスの集合を対応するスイッチに対応付けて記憶する記憶部と、
送信に対する応答が得られなかった送信データに含まれるアドレスの集合と一致するアドレスの集合が前記記憶部に記憶されている場合に、該記憶部に記憶された該一致するアドレスの集合に対応付けられたスイッチにおいて異常があると判定する判定部と、
を備えることを特徴とする通信システム。
(付記2)前記記憶部は、
前記アドレスの集合内の要素の数を前記対応するスイッチに対応付けて記憶し、
前記判定部は、
前記送信データに含まれるアドレスの集合内の要素の数と一致する数が前記記憶部に記憶されている場合に、該記憶部に記憶された該一致する数に対応付けられたスイッチにおいて異常があると判定することを特徴とする付記1に記載の通信システム。
(付記3)前記アドレスの集合のいずれかのアドレスを各パケットが含むパケット群を、1または複数の宛先に送信する送信部を備えることを特徴とする付記1または2に記載の通信システム。
(付記4)前記判定部によって異常があると判定されたスイッチから前記送信データが送信された区間を検出する検出部と、
前記検出部によって検出された検出結果を出力する出力部と、
を備えることを特徴とする付記1〜3のいずれか一つに記載の通信システム。
(付記5)前記1または複数のアドレスは、前記データの送信元アドレスを含むことを特徴とする付記1〜4のいずれか一つに記載の通信システム。
(付記6)前記1または複数のアドレスは、前記データの宛先アドレスを含むことを特徴とする付記1〜5のいずれか一つに記載の通信システム。
(付記7)ネットワーク内の障害を検知する検知部と、
前記検知部によって検知された障害に基づいて、前記ネットワークの中から、前記ネットワーク内のコンピュータから宛先への経路を特定する特定部と、
前記特定部によって特定された前記コンピュータから前記宛先への経路上の複数のスイッチのそれぞれが備える出力ポートのそれぞれについて、スイッチングされるデータが有すべき1または複数のアドレスを要素として含むアドレスの集合を生成する生成部と、
前記生成部によって生成されたアドレスの集合を前記コンピュータに送信する送信部と、
を備えることを特徴とする生成装置。
(付記8)ネットワーク内の障害を検知する検知部と、
前記検知部によって検知された障害に基づいて、前記ネットワークの中から、前記ネットワーク内のコンピュータから複数の宛先へ振り分ける経路を特定する特定部と、
前記特定部によって特定された前記コンピュータから前記複数の宛先へ振り分ける経路上の複数のスイッチのそれぞれが備える出力ポートのそれぞれについて、スイッチングされるデータが有すべき1または複数のアドレスを要素として含むアドレスの集合を生成する生成部と、
前記生成部によって生成されたアドレスの集合を前記コンピュータに送信する送信部と、
を備えることを特徴とする生成装置。