JP2014220645A - 障害判定プログラム、装置、システム、及び方法 - Google Patents

障害判定プログラム、装置、システム、及び方法 Download PDF

Info

Publication number
JP2014220645A
JP2014220645A JP2013098546A JP2013098546A JP2014220645A JP 2014220645 A JP2014220645 A JP 2014220645A JP 2013098546 A JP2013098546 A JP 2013098546A JP 2013098546 A JP2013098546 A JP 2013098546A JP 2014220645 A JP2014220645 A JP 2014220645A
Authority
JP
Japan
Prior art keywords
transfer
information
devices
transmission
switch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013098546A
Other languages
English (en)
Other versions
JP6089940B2 (ja
Inventor
哲也 西
Tetsuya Nishi
哲也 西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013098546A priority Critical patent/JP6089940B2/ja
Priority to US14/253,942 priority patent/US9787533B2/en
Priority to EP14165599.3A priority patent/EP2802113B1/en
Publication of JP2014220645A publication Critical patent/JP2014220645A/ja
Application granted granted Critical
Publication of JP6089940B2 publication Critical patent/JP6089940B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0677Localisation of faults
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Environmental & Geological Engineering (AREA)

Abstract

【課題】パッシブモニタを用いずに転送経路上に障害が発生したか否かを判定する。【解決手段】複数のスイッチ16S1〜16S5の各々に、コントローラを介して接続する監視装置は、スイッチ16S1〜16S5の中で、転送したパケット数を受信できなかったスイッチ16S3がある場合(A)、トポロジ情報(B)から、スイッチ16S3はスイッチ16S1とスイッチ16S5に接続されていることを認識する。そこで、簡素装置は、同じ転送経路F1上の他のスイッチ16S5のパケット総数(1000)(C)を、スイッチ16S3のパケット総数として設定する(1000)(E)。これによりすべての各フロー上の各スイッチのパケット数が分かる。よって、監視装置は、各スイッチのパケット数から各フロー(転送経路)上に障害が発生した否かを判断することができる。【選択図】図12

Description

本発明は、クライアント装置、転送装置、及びサーバ装置の間におけるデータの転送経路上に障害が発生したか否かを判定する技術に関する。
従来、複数のクライアントC1〜C4とサーバS1との間でパケットの通信が複数のオープンフロースイッチOFS1〜OFS5を用いて行われている。このような通信が行われている場合に、例えば、スイッチOFS4とスイッチOFS5との間のリンクに障害が生じた場合には、上記パケットの通信ができない。この場合には、どのリンクで障害が発生しているのかを調べる必要がある。そこで、従来、パッシブモニタを用いてパケットを収集し障害箇所を特定している。
しかし、パッシブモニタを設置する場所によっては、障害を解析することができない場合がある。即ち、図32(A)に示すように、パッシブモニタを、サーバS1とスイッチOFS5との間に設けた場合には、パッシブモニタは、スイッチOFSから全ての転送経路のパケットを受信できる。よって、パッシブモニタは、スイッチOFS4とスイッチOFS5との間の障害を判定することができる。しかし、図32(B)に示すように、パッシブモニタを、クライアントC1とスイッチOFS1との間に設けた場合を考える。スイッチOFS4とスイッチOFS5との間に障害が発生した場合、クライアントC1とスイッチOFS1との間に設けられたパッシブモニタには、スイッチOFS4とスイッチOFS5との間を通過するパケットを受信することができない。よって、この場合には、障害箇所を特定することができない。
このように、パッシブモニタを設置する場所は、障害を解析することができる場合に限定される。
特開2011−146982号公報
しかしながら、パッシブモニタを設置する場所は自由に選択できない。
1つの側面では、本発明は、転送経路上に障害が発生したか否かの判定を行う新たな技術を提供することが目的である。
1つの態様では、サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられる。また、サーバ装置と複数のクライアント装置の各々との間に、各々転送装置が複数個位置する複数の転送経路が存在する。障害判定プログラムは、コンピュータに、複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる。このプログラムにより、コンピュータは、以下の処理を実行する。コンピュータは、接続情報に基づいて、接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から接続情報を受信したか否かを判断する。接続情報は、複数の転送装置の各々から受信した、各転送装置がサーバ装置、複数のクライアント装置、及び複数の転送装置のうちの何れの装置と接続されているかを示す。コンピュータは、非送信転送装置に接続された複数の転送装置から接続情報を受信したと判断した場合に、転送経路特定情報に基づいて、非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定する。転送経路特定情報は、非送信転送装置に接続された複数の転送装置の各々から受信される情報であり、転送装置が位置する転送経路を特定するための情報である。コンピュータは、複数の転送経路の各々を特定転送経路として、特定転送経路毎に、特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、特定転送経路上に障害が発生したか否かを判定する。特定転送経路が前記特定された非送信転送装置転送経路の場合には、非送信転送装置の転送量情報として非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報が用いられて、特定転送経路上に障害が発生したか否かが判定される。
1つの側面として、転送経路上に障害が発生したか否かを判定することができる、という効果を有する。
実施の形態の監視システムを示すブロック図である。 (A)は、監視プログラムを示す図であり、(B)は、監視プロセスを示す図である。 (A)は、トポロジ管理テーブルを示し、(B)は、過去のトポロジ管理テーブルを示し、(C)は、障害リンクの管理テーブルを示す図である。 エッジ情報管理テーブルを示す図である。 フロー情報管理テーブルを示す図である。 フローの状態管理テーブルを示す図である。 (A)は、フローの経路情報テーブル(ノード)を示し、(B)は、フローの経路情報テーブル(出力ポート)を示す図である。 (A)は過去のフローの経路情報テーブル(ノード)を示し、(B)は、過去のフローの経路情報テーブル(出力ポート)を示す図である。 実施の形態の監視処理の一例を示すフローチャートである。 図9のステップ90のフロー状態判定処理の一例を示すフローチャートである。 図9のステップ92の障害箇所特定処理の一例を示すフローチャートである。 1個のスイッチからトポロジ及びフロー情報を収集できなかった場合の処理を説明する図である。 1個のスイッチからトポロジ及びフロー情報を収集できなかった場合の他の処理結果を示す図である。 複数の連続したスイッチでフロー情報が欠落した場合の処理結果を示す図である。 図9のステップ92におけるフロー状態の判定処理の内容を説明する図である。 図9のステップ92の障害箇所特定処理の内容を説明する図である。 サーバ及びクライアント間のフローの一例を示した図である。 図17の監視装置で保持されるトポロジ情報、およびエッジ情報管理テーブルの例を示した図である。 図17の監視装置で保持されるフロー情報管理テーブルの例を示した図である。 フローは全て正常であるが、スイッチOFS3からフロー情報を収集できない場合の例を示す図である。 スイッチOFS3からフロー情報を収集できないと共に、スイッチOFS3、OFS5の間にリンク障害が発生した場合の例を示す図である。 パケット数の最大値と最小値が異なる場合のフロー情報管理テーブルを示す図である。 パケット数の最大値と最小値が異なる場合のフローの状態管理テーブルを示す図である。 スイッチOFS3からフロー情報を収集できないと共に、サーバの過負荷による不通障害が発生した場合の例図である。 パケット数が上り方向と下り方向の値が異なる場合のフロー情報管理テーブルを示す図である。 パケット数が上り方向と下り方向の値が異なる場合のフローの状態管理テーブルを示す図である。 2つのスイッチOFS1とスイッチOFS3からフロー情報が収集できない場合の例を示す図である。 パケット数が上り方向と下り方向の値が異なる場合のフロー情報管理テーブルを示す図である。 パケット数が上り方向と下り方向の値が異なる場合のフローの状態管理テーブルを示す図である。 フロー情報欠落判定前処理の第1の方法の一例を示すフローチャートである。 フロー情報欠落判定前処理の第2の方法の一例を示すフローチャートである。 障害箇所を特定するためパッシブモニタ配置した例を示す図である。
以下、図面を参照して開示の技術の実施の形態の一例を詳細に説明する。
図1には、監視装置10を含む監視システムが示されている。監視装置10は、コントローラ12に接続されている。また、図1には、複数、例えば、4個のクライアント14C1〜14C4と、1つのサーバ18との間に、複数、例えば5個のオープンフロースイッチ(以下、「スイッチ」という)16S1〜16S5が設けられている。スイッチ16S1には、2つのクライアント14C1、14C2が接続されている。スイッチ16S2には、2つのクライアント14C3、C14が接続されている。スイッチ16S1とスイッチ16S2とは、接続されており、スイッチ16S1は、スイッチ16S3、16S4に接続されている。スイッチ16S2は、スイッチ16S3、16S4に接続されている。スイッチ16S3はスイッチ16S4に接続されている。スイッチ16S3、16S4は、スイッチ16S5に接続されている。スイッチ16S5はサーバ18に接続されている。スイッチ16S1〜16S5は、コントローラ12に接続されている。このように、各クライアント14C1〜14C4とサーバ18との間のデータ転送経路には、複数のスイッチが位置する。
上記監視システムは、後述する障害判定システムの一例である。監視装置10は、開示の技術の障害判定装置の一例である。スイッチは、開示の技術の転送装置の一例である。
監視装置10は、CPU(中央処理装置:Central Processing Unit)22、ROM(Read Only Memory)24、及びRAM(Random Access Memory)26が、バス28を介して相互に接続されている。バス28には更に、入力部30、表示部32、メモリ34、及び、インターフェイス36が接続されている。インターフェイス36には、コントローラ12が接続されている。コントローラ12は、後述する指示装置の一例である。
ROM24には、監視プログラムが記憶されている。監視プログラムは、図2(A)に示すように、トポロジ・フロー情報収集実行部60A、フロー情報管理部62A、及びトポロジ管理部64Aを備えている。また監視プログラムは、障害箇所判定部66A、及び障害箇所表示部68Aを備えている。図2(B)に示すように、監視プロセスは、トポロジ・フロー情報収集実行プロセス60B、フロー情報管理プロセス62B、トポロジ管理プロセス64Bを備えている。また、監視プロセスは、障害箇所判定プロセス66B及び障害箇所表示プロセス68Bを備えている。CPU22は、上記プロセス60B〜68Bを実行することにより、上記各部60A〜68Aとして機能する。
監視装置10のメモリ34には後述する種々のテーブル(図3(A)〜図8(B))が設けられている。
スイッチ16S1〜16S5は、同様の構成となっているので、スイッチ16S5の構成を説明し、他のスイッチの説明を省略する。スイッチ16S5は、パケットを転送する転送系160Tと、後述する情報をコントローラ12を介して監視装置10に送信するための制御系160Cとを備えている。制御系160Cは、CPU42、ROM44、RAM46、及びメモリ50を備えている。これらはバス48により相互に接続されている。転送系160Tは、バス48に接続された、ポートP1〜P4を備えている。スイッチ16S5は、ポートP1を介してコントローラ12に接続されている。スイッチ16S5は、ポートP2を介してスイッチ16S3に接続されている。スイッチ16S5は、ポートP4を介してスイッチ16S4に接続されている。スイッチ16S5は、ポートP3を介してサーバ18に接続されている。スイッチ16S5は、スイッチ16S3からのパケットをポートP2で受信し、ポートP3を介してサーバ18に転送する。同様に、サーバ18からのパケットをポートP3で受信し、受信したパケットをポートP2を介してスイッチ16S3に転送する。その他のスイッチ16S1〜16S4も同様にパケットを自機のポートを介して他のスイッチまたはクライアントに転送する。
図3(A)には、トポロジ(リンク情報)管理テーブルが示されている。トポロジ(リンク情報)管理テーブルは、スイッチID、出力ポートID、隣接スイッチID、及び隣接スイッチの入力ポートIDを記憶する。スイッチ16S1〜16S5は、スイッチ間で通信(LLDPプロトコル)する。その通信の際、各スイッチ16S1〜16S5は、自機のID、例えば、スイッチ16S1ではOFS1を送信している。また、各スイッチ16S1〜16S5は、自機のどのポートを介してパケットを転送しているのかを示すために、各ポートのIDを転送先のスイッチに送信している。よって、各スイッチ16S1〜16S5は、自機のどのポートが隣接するスイッチである隣接スイッチのどのポートと接続しているのかが分かる。各スイッチ16S1〜16S5は、これらの情報を保持している。後述するように、監視装置10は、コントローラ12を介して各スイッチに、スイッチID、出力ポートID、隣接スイッチID、及び隣接スイッチの入力ポートIDの情報(第1のトポロジ情報)を送信するように指示する。この指示があると、各スイッチは、これらの情報をコントローラ12を介して、監視装置10に送信する。第1のトポロジ情報を受信した監視装置10は、トポロジ(リンク情報)管理テーブル(図3(A))に、各スイッチ16S1〜16S5から受信した、スイッチID、出力ポートID、隣接スイッチID、及び隣接スイッチの入力ポートIDを記憶する。
図3(B)には、過去(前回の正常時)のトポロジ(リンク情報)管理テーブルが示されている。図3(B)に示すテーブルは、図3(A)のテーブルと構成は同一である。しかし、図3(B)のテーブルは後述する障害がない場合に収集した情報に基づいて第1のトポロジ情報を記憶するテーブルである。
図3(C)には、障害リンクの管理テーブルが示されている。図3(C)の管理テーブルも、図3(A)と同様の構成であるが、後述する障害が生じたリンクに対応するスイッチに関する上記第1のトポロジ情報のみを記憶する。
図4には、エッジ(サーバまたはクライアント)情報管理テーブルが示されている。エッジ情報管理テーブルは、エッジIPアドレス、隣接スイッチID、及び隣接スイッチの接続ポートIDを対応して記憶するためのテーブルである。
図3(A)は、スイッチ間の情報、即ち、各スイッチが、自機のどのポートがどの隣接するスイッチのどのポートと接続しているのかを示す情報(第1のトポロジ情報)を記憶する。一方、図4に示すエッジ情報管理テーブルは、エッジと当該エッジと直接接続しているスイッチとの接続の情報(第2のトポロジ情報)を記憶するためのテーブルである。即ち、エッジには、クライアント14C1〜14C4、及びサーバ18がある。図1に示すように、クライアント14C1はスイッチ16S1に直接接続されている。サーバ18にはスイッチ16S5が直接接続されている。スイッチとクライアント14C1〜14C4またはサーバ18とが通信する際、クライアント14C1〜14C4またはサーバ18は、クライアントまたはサーバ18のIPアドレスを送信する。よって、クライアント14C1〜14C4またはサーバ18に直接接続されているスイッチ16S1、16S2、16S5は、どのクライアント14C1〜14C4またはどのサーバ18と自機のどのポートとが接続されているのかを知ることができる。クライアント14C1〜14C4またはサーバ18に直接接続しているスイッチ16S1、16S2、16S5は、第2のトポロジ情報を保持している。コントローラ12を介して、監視装置10が第2のトポロジ情報を送信するように指示があった場合に、上記スイッチ16S1、16S2、16S5は、第2のトポロジ情報を、コントローラ12を介して、監視装置10に送信する。監視装置10は、第2のトポロジ情報を受信すると、図4に示すエッジ情報管理テーブルに第2のトポロジ情報を記憶する。
上記のように、スイッチ16S1〜16S5は、監視装置10にトポロジ情報(第1のトポロジ情報及び第2のトポロジ情報を含む)を送信する。各スイッチ16S1〜16S5がトポロジ情報を送信して、監視装置10がトポロジ管理テーブル(図3(A))及びエッジ情報管理テーブル(図4)にそれぞれ、第1のトポロジ情報及び第2のトポロジ情報を記憶する。監視装置10は、図3(A)のトポロジ管理テーブル及びエッジ情報管理テーブルの各トポロジ情報に基づいて、クライアント14C1〜14C4、スイッチ16S1〜16S5、及びサーバ18がどのように接続されているのかを把握することができる。即ち、監視装置10は、各スイッチ16S1〜16S5は、各スイッチのどのポートを介して他のスイッチのどのポートに接続されているのかを把握することができる。また、監視装置10は、スイッチ16S1、16S2、16S5のどのポートを介してどのエッジ(クライアントまたはサーバ)に接続されているのかを把握することができる。
トポロジ情報(第1のトポロジ情報及び第2のトポロジ情報を含む)は、開示の技術の接続情報の一例である。
図5には、フロー情報管理テーブルが示されている。上記のようにクライアント14C1〜14C4とサーバ18とはパケットの送受信をしている。即ち、例えば、クライアント14C1から、あるデータをサーバ18に送信する際、クライアント14C1は、データを分割し、分割して得られた各データをパケットとして送信している。各パケットには、その分割されたデータの発信元及び宛先の情報(IPアドレス)と、分割された各データの各々を順に識別するシリアルデータを含むパケット情報が含まれている。また、各スイッチ16S1〜16S5は、パケットを転送した数をカウントしたカウント値(パケット数)を保持している。パケット情報及びカウント値の情報をまとめてフロー情報という。各スイッチ16S1〜16S5は、監視装置10からの送信指示に従って、上記フロー情報を監視装置10に送信する。例えば、スイッチ16S1から複数のフロー情報が送信される。そのフロー情報は、例えば、クライアント14C1とサーバ18との間のパケットのフロー情報である場合もあり、また、クライアント14C2とサーバ18とのパケットの情報の場合もある。フロー情報の各パケット情報には、上記のように、データの発信元及び宛先のIPアドレスが含まれている。よって発信元及び宛先のIPアドレスから、パケット情報を次のように分類することができる。
まず、監視装置10は、各スイッチ16S1〜16S5から受信したパケット情報を、発信元及び宛先が同じパケット情報に分類する。監視装置10は、分類されたパケット情報を送信したスイッチを特定する。監視装置10は、第1のトポロジ情報(スイッチ間の接続情報)と、第2のトポロジ情報(エッジ及びスイッチ間の接続情報)とから、データの転送経路(フロー)を特定する。
監視装置10は、各フローについてフローIDを付与し、各フローについて、フロー上のスイッチから送信された、当該各スイッチが単位時間当たりに出力したパケットの数であるパケット数(カウント値)の最大値及び最小値を抽出する。そして、監視装置10は、フローIDに対応して、発信元IPアドレス、発信先IPアドレス、及びパケット数の最大値及び最小値を、図5に示すフロー情報管理テーブルに記憶する。
IPアドレスは、開示の技術の転送経路特定情報の一例である。パケット数は、開示の技術の転送量情報の一例である。
図6には、フロー情報管理テーブルが示されている。フロー情報管理テーブルは、コネクションID、IPアドレス(片側)、IPアドレス(逆側)を記憶する。また、フロー状態管理テーブルは、送信パケット数、送信パケットの差分値を記憶する。フロー状態管理テーブルは、受信パケット数及び受信パケットの差分値を記憶するためのテーブルである。そして、フロー状態管理テーブルは判定結果を記憶する。
コネクションIDは、あるクライアントからサーバへの第1のフローと、当該サーバから当該クライアントへの第2のフローのように、対応するフロー同士を識別するIDである。即ち、図5に示すフローID=1におけるフローの発信元は、サーバ18であり、宛先はクライアント14C1である。一方、フローID=2のフローの発信元はクライアント14C1であり、宛先はサーバ18である。このような2つのフローIDの各フローは、発信元及び宛先が逆となっているだけで、同じクライアント及びサーバ間のデータの送信を示す。このように、対応するフローを識別するIDがコネクションIDである。図5に示すように、フローID=1及びID=2のフローについてみると、発信元及び宛先は、サーバ18及びクライアント14C1の何れかである。そこで、一方の装置を片側の装置としてそのIPアドレスを、IPアドレス(片側)とし、他方の装置を、片側の装置として、そのIPアドレスを、IPアドレス(逆側)とする。図6に示すように、例えば、コネクションID=1で識別される2つのフロー(フローID=1、2)では、IPアドレス(片側)として、サーバ18のIPアドレス(a,b,c,d)を記憶する。また、IPアドレス(逆側)として、クライアント14C1のIPアドレス(a,b,c,e)を記憶する。このように、片側とは、2つのフローの内の一方であり、逆側とは他方のフローである。一方のフロー、即ち、片側のフローを送信とし、他方のフローを受信とする。図6における送信パケット数は、上記片側のフロー、即ち、サーバ18からクライアント14C1に向うフローであり、受信は、クライアント14C1からサーバ18に向うフローである。上記フローID=1のフロー上の各スイッチから受信したパケット数の内の最大値を送信パケット数に記憶する。同様に、フローID=2のフロー上の各スイッチから受信したパケット数の内の最大値を、受信パケット数に記憶する。
以上を各コネクションIDについて行う。
各パケットコネクションIDにおける2つのフローの各々については、データが予め定められた状態で送受信されている、即ち、正常の場合には、各スイッチにおけるパケット数は同じである。よって、送信パケットの差分値や受信パケットの差分値は0である。図6におけるコネクションID=1で識別される各フローでは、送信パケットの差分値及び受信パケットの差分値は0である。よって、コネクションID=1で識別される各フローのデータの送受信は正常であることが分かる。そこで、正常であることを示す○を、判定結果の欄に記憶する。
コネクションIDkでは、一方のフローは、図5におけるフローID=n−1であり、他方のフローは、フローID=nで識別される。一方のフローにおける送信パケット数は500であるのに対し他方のパケット数(受信パケット数)は1000である。同じクライアントと同じサーバとの間では、単位時間当たりに送受信するパケット数はほぼ等しい、あるいはクライアントからの送信パケット数がサーバからの送信パケット数より多くなる。よって、各コネクションIDにおいては送信パケット数及び受信パケット数は同じ数である場合が正常の場合である。しかし、コネクションIDkにおけるフローID=n−1、nでは、送信パケット数は500であるのに対し、受信パケット数は1000である。受信パケット数は、クライアントからサーバへ送信したパケットの数であるのに対し、送信パケット数は、サーバからクライアントに送信したパケット数である。よって、クライアントからは1000のパケット数のデータを送信しているが、サーバは、500しかデータを送信していない。これは、サーバに大きな負荷がかかり、受信したパケットに応じて同じ数のパケットを送信できない状態である。これも、予め定められた状態、即ち、正常には該当しない。この場合は、異常であるので、判定結果には、異常であることを示す×を記憶する。
更に、図6に示すコネクションID2により識別されるフローID=3及び4の各フローについてみる。サーバからの送信パケット数は500であるのに対し、クライアントからのパケット数は1000である。よって、コネクションIDで識別されるフローID=3、4についても、上記と同様に、サーバに負荷がかかった異常な状態であることが理解される。更に、コネクションID=2における受信パケット数の差分値は0ではなくて、500が記憶されている。これは次のような原因で生ずる。受信パケット数は、一定時間当たりのパケットの数である。各スイッチは、正常な状態でデータを送信していると、各スイッチのパケットの数は等しいので、受信パケットの差分値は0であるはずである。しかし、例えば、何れかのスイッチとそのスイッチと直接接続されている他のスイッチとの間の線が切断された場合には、切断されるまでに例えば500のパケットを送信していたら、上記切断によって残りの500が送信できない。このように、受信パケットの差分値が0でない場合には、当該フロー上のスイッチ間での線が切断されている等の異常が発生したことが認識できる。よって、判定結果に、異常を示す×を記憶する。
図7(A)には、フローの経路情報テーブル(ノード)が示されている。経路情報テーブル(ノード)は、フローID、ノード1、ノード2、ノード3、…を対応して記憶する。図3(A)のテーブルの情報から各スイッチが自機のどのポートで、他のスイッチのどのポートと接続されているのかが分かる。また、図4のエッジ情報管理テーブルから、クライアントまたはサーバに接続されているスイッチでは、自機のどのポートでクライアントまたはサーバと接続しているのかが分かる。更に、図5のフロー情報管理テーブルから、各フローの発信元及び宛先の装置が分かる。加えて、前述したようにパケット情報からどのスイッチがフローIDで識別されるフロー上のスイッチなのかもわかる。以上の情報から、図7(A)の管理情報テーブル(ノード)には、フローIDに対応して、当該フローにおける発信元の装置のIPアドレス、宛先の装置のIPアドレスと、これらの間のデータが転送されるスイッチのIDを記憶する。
図7(B)には、フローの経路情報テーブル(出力ポート)が示されている。フローの経路情報テーブル(出力ポート)は、フローID、ポート1、ポート2、…を対応して記憶する。ポート1は、発信元の装置に接続されているスイッチにおける発信元の装置と接続されているポートを記憶する。ポート2には、1番目のスイッチが2番目のスイッチのどのポートに接続されているのかを示す、2番目のスイッチのポートのIDを記憶する。以下、他のスイッチについてもポートのIDを同様に記憶する。
図7(A)及び図7(B)に示す情報に基づいて監視装置10は、各フローにおいて、発信元から宛先までの装置の間で、各スイッチがどのクライアントまたはどのサーバと自機のどのポートと接続されているのかを把握することができる。また、監視装置10は、各スイッチが他のスイッチのどのポートに接続されているのかの情報が理解できる。
図8(A)及び図8(B)に示すテーブルは、図7(A)及び図7(B)におけるテーブルと同様であるが、図8の各テーブルには、過去(前回の正常時におけるフローの経路情報が記憶される。
次に実施の形態の作用を説明する。
図9には、監視装置10が実行する監視処理の一例が示されている。ステップ72で、トポロジ・フロー情報収集実行部60Aは、一定時間毎にトポロジ情報及びフロー情報を収集する。即ち、トポロジ・フロー情報収集実行部60Aは、コントローラ12に、トポロジ及びフロー情報を送信するように各スイッチに指示する。コントローラ12は、各スイッチ16S1〜16S5に対し上記情報を送信するように指示する。各スイッチ16S1〜16S5は、上記情報を、コントローラ12に送信する。コントローラ12は、受信した情報を監視装置10に送信する。トポロジ管理部64Aは、受信した情報に基づいて、トポロジ管理テーブル(図3(A))及びエッジ情報管理テーブル(図4)を更新する。また、フロー情報管理部62Aは、フロー情報管理テーブル(図5)、図6のフローの状態管理テーブルにおける判定結果以外の欄を更新し、 図7(A)及び図7(B)の各テーブルを更新する。
ステップ74で、フロー情報管理部62Aは、パケットが通過するスイッチ毎にカウンタ情報を保持する。即ち、フロー情報中のパケットのカウント値(パケット数)であるカウンタ情報を保持する。
ステップ75で、フロー情報管理部62Aは、フロー情報が欠落したスイッチがあるのか否かを判断するためのフロー情報欠落判定前処理を実行する。
ステップ75の処理には、2種類の処理がある。第1の処理は図30に示されている。第2の処理は図31に示されている。ステップ75では、何れかの処理を実行する。以下、各々について説明する。
図30を参照して第1の方法を説明する。フロー情報管理部62Aは、ステップ75aで、トポロジ情報及びフロー情報を送信した各スイッチを識別する変数sを0に初期化し、ステップ75bで、変数sを1インクリメントする。
フロー情報管理部62Aは、ステップ75cで、変数sで識別されるスイッチSWsから送信されたトポロジ情報(第1のトポロジ情報)から、当該スイッチSWsが直接接続されている隣接スイッチSWsaのIDを取得する。
ステップ75dで、フロー情報管理部62Aは、隣接スイッチSWsaから上記トポロジ情報及びフロー情報を受信したか否かを判断する。隣接スイッチSWsaから上記トポロジ情報及びフロー情報を受信しなかったと判断された場合には、存在することが推定されるスイッチから情報を受信できなかった場合である。そこで、フロー情報管理部62Aは、ステップ75eで、フロー情報が欠落したスイッチとして、隣接スイッチSWsaのIDを記憶する。ステップ75dの判定結果が肯定判定の場合、及び、ステップ75eの処理が実行された後、フロー情報管理部62Aは、ステップ75fで、変数sが、情報を送信したスイッチの総数Sに等しいか否かを判断する。変数sが総数Sに等しくない場合には、フロー情報が欠落したスイッチが存在する可能性があるので、ステップ75bに戻って、以上の処理(75b〜75f)が実行される。ステップ75fの判定結果が肯定判定の場合には、全てのスイッチについてフロー情報が欠落したスイッチがあるのか否かが判断されたので、ステップ75の処理が終了し、監視処理は、ステップ76に移行される。
次に図31を参照して、第2の方法を説明する。ステップ75gで、フロー情報管理部62Aは、障害リンク管理テーブル(図3(C))中のみに記憶されている各スイッチを識別する変数tを0に初期化し、ステップ75hで、変数tを1インクリメントする。
ステップ75iで、フロー情報管理部62Aは、変数tで識別されるスイッチSWtから上記情報を受信したか否かを判断する。スイッチSWtから上記情報を受信しなかった場合は、フロー情報が欠落したスイッチとしてスイッチtのIDを記憶する。ステップ75iの判定結果が肯定判定の場合、またはステップ75jが実行された後は、ステップ75kで、フロー情報管理部62Aでは、変数tが、障害リンクの管理テーブル中に記憶されたスイッチの総数Tに等しいか否かを判断する。変数tが総数Tに等しくない場合には、障害リンクの管理テーブル中に記憶されたスイッチがフロー情報が欠落したスイッチなのか否かを判断していないスイッチがあるので、ステップ75hに戻って、以上の処理(ステップ75h〜75k)が実行される。ステップ75kの判定結果が肯定判定の場合には、障害リンクの管理テーブル中に記憶されたスイッチ以外の残りのスイッチを識別する変数uを0に初期化し、ステップ75nで、変数uを1インクリメントする。
ステップ75pで、フロー情報管理部62Aは、変数uで識別されるスイッチuのトポロジ情報から、スイッチuに隣接する隣接スイッチSWuaのIDを取得する。ステップ75qでフロー情報管理部62Aは、隣接スイッチSWuaから情報を受信したか否かを判断する。隣接スイッチSWuaから情報を受信しなかった場合は、存在が推定されるスイッチから情報を受信しなかった場合である。そこで、ステップ75rで、フロー情報が欠落したスイッチとして、隣接スイッチSWuaのIDを記憶する。ステップ75qの判定結果が肯定判定の場合またはステップ75rの処理が実行された後は、ステップ75sで、変数uが、残りのスイッチの総数Uに等しいか否かを判断する。変数uが総数Uに等しくない場合には、残りのスイッチにおいてフロー情報が欠落したスイッチが存在しているか否か判断していないスイッチがあるので、ステップ75nに戻って、以上の処理(ステップ75n〜75s)を実行する。
ステップ75sの判定結果が肯定判定の場合には、フロー情報欠落判定前処理が終了し、図9のステップ76に移行される。
ステップ76では、フロー情報管理部62Aは、ステップ75においてフロー情報が欠落したスイッチとして上記IDが記憶されているか否かを判断することにより、フロー情報が欠落したか否かを判断する。ステップ76が否定判定の場合、即ち、フロー情報が欠落していなかったと判断された場合には、監視処理はステップ78に移行される。ステップ78で、今回上記各情報を収集した際、障害が発生していなかったと判断される。このため、今回受信したトポロジ情報から、トポロジ管理部64Aは、図3(B)に示すテーブルを更新し、今回受信したフロー情報から、フロー情報管理部62Aは、図8の各テーブルを更新する。
ステップ76の判定結果が肯定判定の場合には、フロー情報管理部72Aは、連続した複数のスイッチでフロー情報が欠落したか否かを判断する。ここで、連続した複数のスイッチでフロー情報が欠落している場合(ステップ80の判定結果が肯定判定の場合)と欠落していない場合(ステップ80の判定結果が否定判定の場合)について説明する。連続した複数のスイッチでフロー情報が欠落していない場合(ステップ80の判定結果が否定判定の場合)としては、次の第1の場合と第2の場合がある。第1の場合としては、1個のスイッチのみからフロー情報が欠落している場合である。第2の場合としては、複数のスイッチからフロー情報が欠落しているが、当該複数のスイッチ間が接続されているかいないかのどちらなのかを判断できる場合である。
上記第1の場合としては、図12(A)に示すように、例えば、スイッチ16S3からフロー情報を受信できなかったが、スイッチ16S3を挟むスイッチ16S1、S5からフロー情報を受信した場合がある。即ち、スイッチ16S3からフロー情報を受信しなかった場合でも、スイッチ16S1、16S5からのトポロジ情報(図12(B))から、スイッチ16S1、16S5は、スイッチ16S3と接続されていると認識することができる。第2の場合としては、複数のスイッチから上記情報を受信できなかったが、上記トポロジ情報からこれらのスイッチの間が接続されているかいないかのどちらかなのかを判断できる場合である。
一方、連続した複数のスイッチでフロー状態が欠落している場合(ステップ180の判定結果が肯定判定)として、例えば、図14(A)に示すように、スイッチ16S1、16S3から上記情報を受信できなかった場合がある。スイッチ16S5、16S4、16S2からのトポロジ情報に基づいて、スイッチ16S1、16S3の存在が推測される。しかし、スイッチ16S1とスイッチ16S3との間に別のスイッチが存在し、当該別のスイッチからも上記情報が送信されていない場合も考えられる。よって、この場合には、スイッチ16S1とスイッチ16S3とが接続されていると推測することはできない。
ステップ80の処理は、開示の技術の非転送装置に接続された複数の転送装置から接続情報を受信したか否かを判断することの一例であり、開示の技術の推測できるか否かを判断することの一例である。
ステップ80の判定結果が否定判定の場合には、フロー情報管理部62Aは、ステップ82で、欠落した後段のスイッチのカウンタ値を調査し、ステップ84で、欠落した部分のカウンタに後段のスイッチの値を設定する。以下、ステップ82及びステップ84の処理を説明する。
ステップ80の判定結果が否定判定の場合としては、図12(A)に示すように、例えば、スイッチ16S3から上記情報を受信しなかったが、スイッチ16S3を挟むスイッチ16S1、スイッチ16S5から上記情報を受信した場合がある。これは、図12(B)に示すように、トポロジ情報(第1のトポロジ情報)から判断することができる。即ち、スイッチ16S1、スイッチ16S5からのトポロジ情報に基づいて、スイッチ16S5及びスイッチ16S1は、スイッチ16S3に接続されていることが推測することができる。このように、スイッチ16S1、16S3、16S5が連続して接続されていることが推測される。
前述したフローID=1で識別されるフローF1は、クライアント14C1からサーバ18にデータ(パケット)が送信される場合であり、フローID2で識別されるフローF2は、サーバ18からクライアント14C1にデータが送信される場合である。上記のようにスイッチ16S1、16S5からのIPアドレスから、スイッチ16S1、16S5が次のフローに位置することが分かる。即ち、スイッチ16S1、16S5は、フローID=1のフローF1のフローに位置すること、及び、フローID=2のフローF2のフローに位置することが分かる。そこで、ステップ82で、フロー情報管理部62Aは、まず、スイッチ16S1、16S5に挟まれたスイッチ16S3の位置するフローを特定する、上記のようにスイッチ16S3もフローF1、F2に位置することが特定される。よって、各フローF1、F2では、スイッチ16S1、16S3、16S5を経由してパケットが送信されることが理解される。ステップ82におけるスイッチの位置するフローを特定することは、開示の技術の非転送装置転送経路を特定することの一例である。
フローF1において、スイッチ16S3の後段のスイッチは、パケットの送信方向下流側のスイッチ16S5である。フローF2における後段のスイッチは、パケットの送信方向下流側のスイッチ16S1である。そこで、ステップ82では更に、フロー情報管理部62Aは、各フローにおける後段のスイッチカウンタ値を調査する。即ち、フローF1においては、スイッチ16S5の出力パケット数を調査する。フローF1におけるスイッチ16S5の出力パケット数は、図12(D)ウに示すように、1000である。よって、ステップ84では、図12(E)オに示すように、フローF1(フローID=1)における、スイッチ16S3の出力パケット数として1000を設定する。
一方、フローF2(フローID=2)について、ステップ82で、欠落した後段のスイッチであるスイッチ16S1の出力パケット数が調査される。図12(C)イに示すように、フローF2(フローID=2)におけるスイッチ16S1の出力パケット数は1000である。そこで、ステップ84で、図12(E)カに示すように、フロー情報管理部62Aは、フローF2における、スイッチ16S3の出力パケット数として1000を設定する。
図13(A)には、上記情報をスイッチ16S3から受信できなかった場合に加え、スイッチ16S3とスイッチ16S5との間の線が切断された場合が示されている。フローF1及びフローF2におけるパケットの送信は同時に行われている。このようにパケットが送信されている間で、その途中で上記切断が生じた場合を例にとり説明する。フローF1において、スイッチ16S1は、図13(C)アに示すように、1000個のパケットを出力している。即ち、スイッチ16S1は、1000個のパケットを順に送信している。このように、スイッチ16S1及びスイッチ16S5が1000個のパケットを送信している途中で、上記切断が生じたとする。よって、フローF1では、図13(C)アに示すように、スイッチ16S1は、1000個のパケットを出力している。しかし、その途中で上記切断が生じた。よって、スイッチ16S5は、図13(D)ウに示すように、切断が生じる前に受信した500個のパケットをサーバ18に送信している。フローF1における後段のスイッチは、スイッチ16S5である。よって、ステップ82では、フロー情報管理部62Aは、スイッチ16S5の出力パケット数(図13(D)ウ)を調査する。ステップ84で、フロー情報管理部62Aは、図13(E)オに示すように、スイッチ16S3の出力パケット数として500を設定する。一方、フローF2では、クライアントからのパケットが500しか届かないため、図13(D)エに示すように、スイッチ16S5は、500個のパケットを順に送信している。上記切断により、スイッチ16S1は、図13(C)イに示すように、切断が生じる前に受信したパケットをクライアント14C1に送信しており、その数は500である。ステップ82では、フローF2では、後段のスイッチとしてスイッチ16S1の出力パケット数(500(図13(C)イ参照))が調査される。ステップ84で、フロー情報管理部62Aは、図13(E)のカに示すように、フローF2における、スイッチ16S3の出力パケット数として500を設定する。
ステップ80の判定結果が肯定判定の場合には、ステップ86で、フロー情報管理部62Aは、欠落したスイッチのフロー経路情報を補完する。上記のように、ステップ80の判定結果が肯定判定の場合は、例えば、図14(A)に示すように、連続したスイッチ16S1、16S3から上記情報を受信しなかった場合である。この場合は、スイッチ16S1、16S3との間に別のスイッチが存在する可能性もあり、別のスイッチからも上記情報を受信していない場合がある。このような場合には、例えば、クライアント14C1からのパケットが、スイッチ16S1を介して、直接スイッチ16S3〜スイッチ16S5を介してサーバ18に到達する場合がある。また、クライアント14C1からのパケットがスイッチ16S1を介して、スイッチ16S3ではない別のスイッチを介して、スイッチ16S5に到達し、スイッチ16S5からサーバ18に到達する場合もある。よって、この場合には、図7(A)及び図7(B)に示すテーブルを更新することができない。即ち、例えば、フローID2におけるフローでは、スイッチ16S1からスイッチ16S3にパケットが送信されているようになっているが、上記のように、別のスイッチを経由してパケットが送信される場合がある。よって、フローの経路情報テーブル(図7(A)及び図7(B))からでは、監視装置10は、フロー情報が欠落したスイッチの接続の状態を把握することができない。よって、上記のように後段のスイッチのパケット数を選ぶことができない。上記のように、監視装置10のメモリ34には、図8(A)及び図8(B)に示すように、過去(前回の正常時)のフローの経路情報テーブルが設けられている。過去の正常時のフローの経路情報テーブルの、例えば、フローID2における経路を見ると、スイッチ16S1は直接スイッチ16S3と接続されていることが分かる。そこで、ステップ86で、フロー情報管理部62Aは、過去のフローの経路情報テーブル(図8参照)を用いて、上記のように、欠落したスイッチ16S1、16S3の接続の状態を補完する。即ち、接続しているのか否か、接続していなければ、どのスイッチと接続しているのかという接続の状態が補完される。
ステップ88で、フロー情報管理部は、過去のリンク情報を利用したリンクを障害リンク管理テーブルに登録する。上記のように、障害がスイッチ16S1、16S3に生じている。よって、図3(C)の障害リンクの管理テーブルに、スイッチ16S1及びスイッチ16S3における、スイッチID、出力ポートID、隣接スイッチID、及び隣接スイッチの入力ポートIDを記憶する。
以上のように、連続した複数のスイッチでフロー情報が欠落し、フローが分からない場合でも、過去のフロー経路情報に基づいて、欠落したスイッチのフロー経路情報が補完される。よって、欠落したスイッチのフローの後段のスイッチがどのスイッチなのかがわかる。そこで、ステップ82で、フロー情報管理部62Aは、上記のように欠落したスイッチが位置するフローを特定し、当該欠落したスイッチの後段のスイッチのカウンタを調査する。例えば、スイッチフローID2におけるフローでは、後段のスイッチはスイッチ16S5である。よって、スイッチ16S5のカウント値が調査される。ステップ84で、フロー情報管理部62Aは、スイッチ16S1、16S3のカウンタに、スイッチ16S5の出力パケット数を設定する。
ステップ84の処理が終了すると、監視処理はステップ90に移行される。
次に、ステップ90のフロー状態の判定処理を説明する。図10には、フロー状態判定処理の一例が示されている。ステップ102で、フロー情報管理部62Aは、図6に示すコネクションIDに基づいて、全コネクションの検索が終了したか否かを判断する。ステップ102の判定結果が否定判定の場合には、ステップ104で、フロー情報管理部62Aは、フローの状態管理テーブル(図6)から、次の情報を取得する。即ち、送信パケット数、送信パケットの差分値、受信パケット数、受信パケットの差分値である。
ステップ106で、フロー情報管理部62Aは、送信パケットの差分または受信パケットの差分が閾値か否かを判断する。図6におけるコネクションID=2の内容が、図15(A)に示されている。コネクションID=2は、フローF3、F4を識別する。コネクションID=2における片側、即ち、送信は、フローF3に対応し、逆側、即ち、受信はフローF4に対応する。フローF3では、各スイッチから500個のパケットが送信されている。よって、フローF3における送信パケットの差分値は0となる。しかし、フローF4におけるパケット数は、スイッチ16S3は、1000であるのに対し、スイッチ16S4、16S5のパケット数は500である。よって、受信パケットの差分値は500である。この場合には、ステップ106の判定結果が肯定判定となり、フロー状態判定処理は、ステップ112に移行される。ステップ112で、フロー情報管理部62Aは、当該フローF4について異常と判定し、ステップ114で、判定結果として異常を示す×を記憶する。
一方、ステップ106の判定結果が否定判定の場合には、ステップ108で、フロー情報管理部62Aは、送信パケット数−受信パケット数の絶対値が閾値以上か否かを判断する。図6のコネクションIDkは、図15(B)におけるフローFn−1、Fnを識別する。フローFn−1では、各スイッチ16S3、16S4、16S5のパケット数は500であるのに対し、フローFnにおける各スイッチ16S3、16S4、16S5のパケット数は1000である。よって、この場合には、ステップ108の判定結果が肯定判定となり、ステップ112で、フロー情報管理部62Aは、当該フローについて異常と判定し、ステップ114で、コネクションIDkの判定結果の欄に異常であることを示す×を記憶する。
一方、コネクションID1により識別されるフローF1、F2(図15(A))では、各々のフローF1、F2における各スイッチ16S1、16S2、16S5のパケット数は全て1000である。よって、この場合には、ステップ106及びステップ108の判定結果がそれぞれ否定判定となって、ステップ110で、フロー情報管理部62Aは、コネクションID1に対応して、判定結果の欄に、正常であることを示す○を記憶する。
ステップ90の処理は、特定転送経路上に障害が発生したか否かを判定することの一例である。
以上の処理(ステップ72〜90)により、トモグラフィーを用いた障害箇所特定を実行するための情報を全て取得することができる。そこで、ステップ92で、障害箇所判定部66Aは、障害箇所特定処理を実行する。図11には、障害箇所特定処理の一例が示されている。ステップ122で、障害箇所判定部66Aは、未観測の観測ノードがあるか否かを判断する。ここで、観測ノードとは、クライアントまたはサーバである。ステップ122の判定結果が肯定判定の場合には、ステップ124で、障害箇所判定部66Aは、フローのフロー異常判定結果を経由するリンクにマッピングする。即ち、例えば、図16(A)に示すように、観測ノードであるクライアント14C1に対してフローF1がある。フローF1は、図16(B)に示すように、クライアント14C1及びスイッチ16S1の間のリンクL1、スイッチ16S1、16S2間のリンクL2が存在する。また、スイッチ16S2、16S5間のリンクL3、及びスイッチ165とサーバ18との間のリンクL4が存在する。ステップ124で、障害箇所判定部66Aは、フローF1に対応して、各リンクに異常判断結果をマッピングする。例えば、フローF1におけるリンクL3に障害が発生して、当該フローが異常であると判断された場合には、図16(C)に示すように、フローF1に対応してリンクL1、L2、L3、L4に異常を示す×を記憶する。一方、フローF3の観測ノードはクライアント14C4である。このフローF3は、サーバ18とスイッチ16S5との間のリンクL4、スイッチ16S4、16S5の間のリンクL5、スイッチ16S3、16S4の間のリンクL6、及び、クライアント14C4とスイッチ16S3との間のリンクL7を有する。そして、フローF3は、正常であった場合には、フローF3に対応してリンクL1、L5、L6及びL7に対応して、正常であることを示す○を記憶する。
ステップ126で、障害箇所判定部66Aは、未探索のフロー通過リンクがあるか否かを判断する。ステップ126の判定結果が否定判定の場合には、ステップ122に戻り、以上の処理(ステップ122〜126)を実行する。一方、ステップ126の判定結果が肯定判定の場合には、ステップ128で、障害箇所判定部66Aは、未探索のリンクを選択し、上位リンクとする。即ち、これを、図16におけるフローF1を例にとり説明する。ステップ128では、まずリンクL1が上位リンクとして設定される。ステップ130で、障害箇所判定部66Aは、上位リンクが異常か否かを判断する。上記のように、図16(C)に示すように、リンクL1に対応してフローF1では、×が記憶されているので、ステップ130は肯定判定され、障害箇所特定処理はステップ134に移行される。ステップ134で、障害箇所判定部66Aは、下位リンクがあるか否かを判断する。
ここで、下位リンクとは、上位リンク(この場合はリンクL1)と同じフロー上に位置し、障害が生じていないリンクであり、障害が生じているリンクよりもパケットの転送方向下流側のリンク以外のリンクである。フローF1におけるリンクL1には、下位リンクがあるので、ステップ134の判定結果は肯定判定となる。障害箇所特定処理は、ステップ138に移行される。ステップ138で、障害箇所判定部66Aは、下位リンクが全て異常か否かを判断する。フローF1では、下位リンクが全て異常であるので、ステップ138の判定結果が肯定判定となり、障害箇所特定処理はステップ142に移行される。ステップ142で、障害箇所判定部66Aは、下位リンクが2つ以上あるか否かを判断する。下位リンクは、上記のように、上位リンクと同じフロー上に位置し、障害が生じていないリンクであり、障害が生じているリンクよりもパケットの転送方向下流側のリンク以外のリンクであるので、フローF1においてみると、下位リンクは、リンクL2だけである。即ち、上記のようにリンクL3が切断されていると、スイッチ16S2からのパケット数はスイッチ16S1と同じである。しかし、同じフロー上に位置する別のスイッチ16S5のパケット数は0である。よって、この情報からリンクL3が切断されていると判断することができる。このような場合には、リンクL3は下位リンクには該当しない。同様に、リンクL4も下位リンクには該当しない。よって、フローF1では、下位リンクは1つであるので、ステップ142の判定結果は、否定判定となる。
ステップ142の判定結果が否定判定の場合は、当該上位リンクL1は、別のリンクの障害によって異常か否かを結論づけることができない。そこで、ステップ146で、障害箇所判定部66Aは、同じフロー上で上位リンクよりデータ転送下流に別のリンクがあるか否かを判断する。フローF1では、リンクL3、L4があるので、ステップ146が肯定判定される。ステップ146の判定結果が肯定判定の場合には、障害箇所判定部66Aは、ステップ148で、上位リンクの結論を別のリンクの結論に対応づける。ステップ148が実行されると、障害箇所特定処理は、ステップ126に移行される。フローF1についてみると、以上の処理でリンクL1について処理が終了したが、リンクL2〜L4が存在するので、ステップ26が肯定判定となり、ステップ128で、障害箇所判定部66Aは、今度はリンクL2を上位リンクとする。上位リンクl2では、ステップ134が否定判定される。なぜなら、リンクL3は、下位リンクに該当しないからである。この場合には、ステップ136で、障害箇所判定部66Aは、上位リンクL2を異常確率大と判断する。ステップ150で、障害箇所判定部66Aは、他のリンクが対応づけられているか否かを判断する。上記のように、リンクL1では、ステップ148でリンクL2にリンクL1が対応づけられているので、ステップ150の判定結果は肯定判定となる。ステップ152で、障害箇所判定部66Aは、他のリンク、即ち、リンクL1を異常確率大と判断する。これにより、図16(C)に示すように、リンクL1及びリンクL2には、異常確率大を示す大が記憶される。
フローF1においては、次にリンクL3について上記処理が実行される。ステップ128で、リンクL3が上位リンクとされる。リンクL3では、ステップ130の判定結果が肯定判定となり、ステップ134の判定結果は肯定判定となる。なぜなら、リンクL4は正常であるからである。ステップ142では、リンクL3に対しては、下位のリンクがリンクL4だけであるので、ステップ142が否定判定される。ステップ146では、同じフロー中でリンクL3よりデータ転送下流に別のリンクL4が存在するので、ステップ146の判定結果が肯定判定となり、ステップ148で、上位リンクL3の結論を別のリンクL4の結論に対応づける。次に、リンクL4について以上の処理が実行される。リンクL4については、下位リンクが存在しないので、ステップ134の判定結果が否定判定となり、ステップ136で、上位リンクを異常確率大と判断する。ステップ150では、上記のように、リンクL3が対応づけられているので、ステップ150の判定結果が肯定判定となり、ステップ152で、障害箇所判定部66Aは、他のリンクL3を異常確率大と判断する。よって、フローF1に対してリンクL3及びL4に対応して大が記憶される。
次にフローF3について説明する。フローF3におけるリンクL4〜L7は図16(C)に示すように、正常であるので、各々について、ステップ130が否定判定となって、ステップ132で、障害箇所判定部66Aは、上位リンクを正常と判断し、正常であることを示す正常を記憶する。
図16に示す例以外の場合において、ステップ138が否定判定とされる場合もある。この場合には、ステップ140で、障害箇所判定部66Aは、上位リンクを正常と判断して、上位リンクに対応して正常を記憶する。また、別の例では、ステップ142の処理結果が肯定判定の場合がある。この場合には、ステップ144で、障害箇所判定部66Aは、上位リンク異常確率大、下位リンク以下を異常確率小と判断して、各リンクに対応して大小を記憶する。
以上のように、各フローの各リンクについて、異常確率大若しくは小、または正常が記憶されると、ステップ126が否定判定となり、障害箇所特定処理は、ステップ122に移行される。ステップ122の判定結果が否定判定となった場合には、障害箇所特定処理は、ステップ154に移行する。ステップ154で、障害箇所判定部66Aは、各観測ノードを支点とした判断結果をリンク毎に集計する。即ち、図16(C)に示すように、各観測ノード毎に判断結果を集計する。ステップ156で、障害箇所判定部66Aは、未探索のリンクがあるか否かを判断する。未探索のリンクがあると判断された場合には、ステップ158で、障害箇所判定部66Aは、1観測点で正常判断がされているか否かを判断する。例えば、図16(C)に示すように、リンクL4では、異常確率大及び正常が記憶されているので、リンクL4については、ステップ158の判定結果は肯定判定となる。ステップ160で、障害箇所判定部66Aは、本リンクL4を正常と判断して、結論の欄に正常を記憶する。ステップ158の判定結果が否定判定の場合の場合には、ステップ162で、障害箇所判定部66Aは、1観測点以上で異常確率大が判定されているか否かを判断する。例えば、図16(C)に示すように、リンクL2では、1観測点以上で異常確率大が判定されている。よって、ステップ162の判定結果が肯定判定となり、本リンクL2に対しては、異常確率大と結論づけられ、結論の欄に異常確率大を識別する大を記憶する。なお、ステップ162の判定結果が否定判定の場合には、ステップ166で、障害箇所判定部66Aは、本リンクを異常確率小と判断し、異常確率小を識別する小を結論の欄に記憶する。
障害箇所特定処理が終了すると、図9のステップ94で、障害箇所表示部68Aは、障害箇所が見つかったか否かを判断し、障害箇所が見つかったと判断された場合には、ステップ96で、障害箇所特定結果を、表示部32に表示する。なお、障害箇所が見つかったと判断されなかった場合には、障害箇所特定結果は表示されない。
ステップ98で、終了指示があったか否かを判断し、終了指示がユーザから入力された場合には、本監視処理が終了する。
次に、本実施の形態の効果を説明する。
第1に、上記実施の形態では、1つのスイッチからフロー情報が収集できないような場合がある。この場合、監視装置は、トポロジ情報から当該1つのスイッチに接続する他の複数のスイッチを特定し、同じ転送経路上に位置する他のスイッチにおけるパケット数を、当該1つのスイッチのパケット数として設定する。これにより、監視装置は、全てのスイッチにおけるパケット数を把握することができる。よって、監視装置は、各スイッチにおけるパケット数に基づいて、各転送経路上に障害が生じているか否かを判断することができる。よって、監視装置は、各転送経路における障害の有無の組み合わせから、各リンクに障害が生じているか否かを判断することができる。よって、実施の形態は、パッシブモニタを配備することなく、障害箇所を特定することができる、という効果を有する。
第2に、上記実施の形態では、複数の連続したスイッチからフロー情報が収集できない場合がある。この場合、監視装置は、過去において正常にパケットが転送された場合に記憶された各リンクの情報から、当該複数の連続したスイッチ間が接続されているか否かを判断することができる。よって、監視装置は、各スイッチがどのように他の装置と接続されているのかが分かる。そして、複数の連続したスイッチにおけるパケット数として、同じ転送経路上に位置する他のスイッチ当該1つのスイッチのパケット数を設定する。これにより、監視装置は、全てのスイッチにおけるパケット数を把握することができる。よって、監視装置は、各スイッチにおけるパケット数に基づいて、各転送経路上に障害が生じているか否かを判断することができる。よって、監視装置は、各転送経路における障害の有無の組み合わせから、各リンクに障害が生じているか否かを判断することができる。よって、実施の形態は、パッシブモニタを配備することなく、障害箇所を特定することができる、という効果を有する。
第3に、監視装置は、過去にどのスイッチのどのポートと他のどのスイッチのどのポートとの間に障害が生じたのかの情報を、障害リンクの管理テーブルに記憶しておく。スイッチからフロー情報を収集できない場合、監視装置は、まず、障害リンクの管理テーブルを参照して、フロー情報を収集できないスイッチのどのポートが他のどのスイッチのポートと接続しているのかを判断する。スイッチからフロー情報を収集できない場合、過去において障害が生じた可能性が高い。よって、監視装置は、フロー情報を収集できないスイッチのどのポートが他のどのスイッチのどのポートと接続しているのかを、全ての情報を順に取得して判断するよりは、より早く認識することができる。
次に、本実施の形態の変形例を説明する。
第1に、上記実施の形態では、スイッチとしてオープンフロースイッチが用いられているが、オープンフロースイッチではない他のスイッチを用いることができる。
第2に、コントローラを省略して、各スイッチが直接、上記情報を監視装置に入力してもよい。
第3に、パケット数を補完するために後段のスイッチのパケットを調査しているが、前段(パケットの送信方向上流側)のパケットを調査して、パケット数を設定してもよい。即ち、同じフローに位置する何れかのスイッチのパケットを調査して設定してもよい。
次に、実施例を説明する。
図17は、第1の実施例におけるサーバS1からクライアントC1〜C4への各フローF1〜F8の一例を示した図である。サーバS1のIPアドレスを10.25.245.11、クライアントC1〜C4のIPアドレスをそれぞれ、10.25.245.12, 10.25.245.13, 10.25.245.14,10.25.245.15とする。各クライアントC1〜C4とサーバS1が通信を行っているものとする。また、各クライアントC1〜C4とサーバS1との間には、スイッチOFS1〜OFS5を備えている。スイッチOFS1〜OFS5は、他のスイッチOFS1〜スイッチOFS5、各クライアントC1〜C4及びサーバS1と、ポートP1〜P4を介して接続している。P1〜P4における1〜4はポートIDを示す。スイッチOFS1〜OFS5は、コントローラ12を介して、監視装置10に接続されている。
図18は、図17に示した監視装置10で保持されるトポロジ情報(図18(A))、およびエッジ情報管理テーブル(図18(B))の例を示している。図18(A)のトポロジ(リンク情報)管理テーブルは、例えば、スイッチOFS1のポートP3がスイッチOFS3のポートP1に、スイッチOFS1のポートP4がスイッチOFS4のポートP2になど、各スイッチ間の接続リンクに関する情報を保持している。
また、図18(B)のエッジ(サーバ又はクライアント)情報管理テーブルには次の情報が記憶されている。即ち、IPアドレスである10.25.245.11で識別されるサーバS1はスイッチOFS5のポートP3に接続されていることの情報が記憶されている。また、IPアドレスである10.25.245.12により識別されるクライアントC1はスイッチOFS1のポートP1に接続されていることの情報が記憶されている。サーバS1あるいはクライアントC1〜C4と接続されるスイッチOFS1、OFS2、OFS5が、自機のどのポートで、サーバS1あるいはクライアントC1〜C4と接続されるかの情報が記憶されている。
図19は、図17に示した監視装置10で保持されるフロー情報管理テーブルの例を示している。例えば、フローID1として、IPアドレスである10.25.245.11で識別されるサーバS1から、IPアドレスである10.25.245.12で識別されるクライアントC1のフローのパケット数が最大、最小のいずれも1000であったことを示している。また、逆方向(クライアントC1からサーバS1に向う方向)のフローをフローID2、パケット数の最大、最小いずれも1000であることを示している。同様に他のサーバおよびクライアント間のフロー情報も記述される。
ここで、あるフローにおける、上記パケット数の最大と最小の値が異なる(例えばフローID4参照)場合は、異常なフローと判定する。また、上りと下りのフローで値が異なる場合も異常なフローと判定する。
図20は、フローは全て正常であるが、スイッチOFS3のフロー情報が収集できない場合の例を示している。収集したフロー情報からクライアントC1およびクライアントC2の各々からサーバS1のフローにおけるパケットはスイッチOFS1のポートP3から出力されることがわかる。
このスイッチOFS1のポートP3はトポロジ情報(図20(B))から、スイッチOFS3のポートP1に接続されていることがわかるため、次にスイッチOFS3のフロー情報を検索するが、上記のように、フロー情報を得ることができない。
スイッチOFS5の入力ポートP1はスイッチOFS3のポートP4に接続されることがトポロジ情報(図20(B))から把握できる。このため、クライアントC1およびクライアントC2の各々からサーバS1へのフローにおけるパケットは「スイッチOFS1→スイッチOFS3→スイッチOFS5」と経由することが特定できる。
また、スイッチOFS1およびスイッチOFS5のそれぞれのフローのパケット数はいずれも1000であるため、スイッチOFS3のパケットカウントとして1000を設定する。
以上により、スイッチOFS3のフロー情報が収集できなくてもクライアントC1およびクライアントC2からサーバS1へのフローの経路情報を特定し、およびパケット数の値を設定できる。
図21は、図20と同様にスイッチOFS3のフロー情報が収集できない場合において、これに加え、スイッチOFS3とスイッチOFS5の間にリンク障害が発生した場合の例を示している。収集したフロー情報からクライアントC1およびクライアントC2の各々からサーバS1のフローにおけるパケットスイッチOFS1のポートP3から出力されることがわかる。このスイッチOFS1のポートP3はトポロジ情報からスイッチOFS3のポートP1に接続されていることがわかるため、次にスイッチOFS3のフロー情報を検索するが、上記のように、フロー情報を得ることができない。
ここでスイッチOFS5のトポロジ情報(図21(B))からスイッチOFS5のポートP1からパケットが入力されることがわかる。このポートP1はスイッチOFS3のポートP4に接続されることが現在のリンク情報、あるいはリンクダウンが発生しているため現在ではなく過去のリンク情報、あるいは障害リンクの情報から把握できる(図の例では現在のトポロジ情報から探索)。クライアントC1およびクライアントC2の各々からサーバS1へのフローにおけるパケットは「スイッチOFS1→スイッチOFS3→スイッチOFS5」と経由することが特定できる。
ここで、フローID=2で識別されるフローでは、スイッチOFS1の出力パケット数は1000(図21(C))であるが、スイッチOFS5の各フローのパケット数は500(図21(D))である。このため、スイッチOFS3のパケットカウントとして例えばスイッチOFS5の500を設定する。
この場合、図22に示すようにフロー情報管理テーブル(フローID=2参照)のパケット数の最大値と最小値が異なる。このため、図23のフローの状態管理テーブル(コネクションID=1参照)に示すように、受信パケットの差分値が送信パケットの差分値より大きいため、そのフローは上り・下りとも異常なフローと判定する。
以上により、スイッチOFS3のフロー情報が収集できなくてもクライアントC1およびクライアントC2からサーバS1へのフローの経路情報、およびパケットカウントの値を生成でき、障害箇所の特定が可能となる。
図24は、図20と同様にスイッチOFS3のフロー情報が収集できない場合において、これに加え、サーバS1の過負荷による不通障害が発生した場合の動作例を示している。収集したフロー情報からクライアントC1およびクライアントC2の各々からサーバS1へのフローにおけるパケットはスイッチOFS1のポートP3から出力されることがわかる。
このスイッチOFS1のポートP3はトポロジ情報(図24(B))からスイッチOFS3のポートP1に接続されていることがわかるため、次にスイッチOFS3のフロー情報を検索するが、上記のようにフロー情報を得ることができない。
ここで、スイッチOFS5のトポロジ情報(図24(B))から入力ポートP1からパケットが入力されることがわかる。スイッチOFS5の入力ポートP1はスイッチOFS3のポートP4に接続されることが現在のリンク情報、あるいはリンクダウンが発生している。このため現在ではなく過去のリンク情報、あるいは障害リンクの情報から把握できる(図の例では現在のトポロジ情報から探索)。クライアントC1およびクライアントC2各々からサーバS1へのフローにおけるパケットはスイッチOFS1→スイッチOFS3→スイッチOFS5と経由することが特定できる。
図24(C)及び図24(D)のフローID=2、4の欄に示すようにスイッチOFS1およびスイッチOFS5のクライアントC1、C2からサーバS1へのパケットカウントは1000である。しかし、図24(C)及び図24(D)のフローID=1、3の欄に示すように、サーバS1からクライアントC1、C2へのそれぞれのフローのパケットカウントは500である。このため、スイッチOFS3のパケットカウントとして例えばサーバS1からクライアントC1、C2へのパケット数として500、クライアントC1、C2からサーバS1へのパケット数として1000を設定する。
この場合、図25に示すようにフロー情報管理テーブルのパケット数の上り方向と下り方向の値が異なる。このため、図26のフローの状態管理テーブルに示すように、受信パケットに対する送信パケットの数が少ないため、そのフローは上り・下りともサーバS1の過負荷による異常なフローと判定する。
以上により、スイッチOFS3のフロー情報が収集できなくてもクライアントC1およびクライアントC2からサーバS1へのフローの経路情報、およびパケットカウントの値を生成でき、障害箇所特定が可能となる。
図27は、連続した複数のスイッチ、例えば、スイッチOFS1とスイッチOFS3の2つのスイッチからフロー情報が収集できない場合の動作例を示す。また、図24と同様にサーバ障害によるトラフィックの上りと下りの不均衡が発生した場合を用いて説明する。クライアントC1およびクライアントC2はエッジ情報管理テーブル(図27(B))からスイッチOFS1に接続されていることがわかる。
ここでスイッチOFS1のフロー情報が収集できないため、正常に収集できていた過去のフロー経路情報(図27(D))からスイッチOFS1からスイッチOFS3に接続されていることがわかる。なお、トポロジ情報からスイッチOFS1の出力先がスイッチOFS3と特定してもよい。
さらに、スイッチOFS3のフロー情報も収集できないため、再度過去のフロー経路情報(図27(D))を検索し、接続先がスイッチOFS5であることを特定する(トポロジ情報を利用してもよい)。
ここで、パケット数はスイッチOFS5のみでしか収集できない。このため、スイッチOFS1およびスイッチOFS3のパケット数としてスイッチOFS5の値を利用する。即ち、図28に示すように、クライアントからサーバへの値を1000、サーバからクライアントへの値を500と設定する。
この場合、図28に示すようにフロー情報管理テーブルのパケット数上り方向と下り方向の値が異なる。このため、図29のフローの状態管理テーブルに示すように、受信パケットに対する送信パケットの数が少ないため、そのフローは上り・下りとも異常なフローと判定する。
以上により、複数のスイッチのフロー情報が収集できなくてもクライアントC1およびクライアントC2からサーバS1へのフローの経路情報、およびパケットカウントの値を生成でき、障害箇所特定が可能となる。
なお、フロー情報が収集できないスイッチが一つの場合でも図24に示すような過去のフロー情報を利用してフロー情報およびパケットカウントを生成してもよい。
以上説明したように、上記実施例によれば、複数のパッシブモニタを配備することなく、かつ、複数のオープンフロースイッチからフロー情報が収集できないような場合でも障害箇所を特定することが可能となる。
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定された非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
(付記2)
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
(付記3)
前記コンピュータに、
前記推測ができると判断した場合に、前記複数の非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記複数の非送信転送装置の各々が位置する転送経路である非送信転送装置転送経路を特定する処理を実行させる付記2に記載の障害判定プログラム。
(付記4)
前記コンピュータに、
前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第1の装置と当該第1の装置からのデータを受信する第2の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる付記1に記載の障害判定プログラム。
(付記5)
前記コンピュータに、
前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第1の装置と当該第1の装置からのデータを受信する第2の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる付記2又は付記3に記載の障害判定プログラム。
(付記6)
前記コンピュータに、
前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する処理を実行させる付記4に記載の障害判定プログラム。
(付記7)
前記コンピュータに、
前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する処理を実行させる付記5に記載の障害判定プログラム。
(付記8)
前記コンピュータに、
前記特定転送経路上に位置する前記複数の転送装置における前記転送量情報に基づく転送量の差に基づいて、前記特定転送経路上に障害が発生したか否か判断する処理を実行させる付記1〜付記7の何れか1項に記載の障害判定プログラム。
(付記9)
前記クライアント装置から前記サーバへのデータの第1の転送経路と、当該サーバから当該クライアント装置へのデータの第2の転送経路とが対応し、
前記コンピュータに、
前記第1の転送経路上に位置する前記複数の転送装置における前記転送量情報に基づく第1の転送量と、前記第2の転送経路上に位置する前記複数の転送装置における前記転送量情報に基づく第2の転送量との差に基づいて、前記第1の転送経路及び前記第2の転送経路上に障害が発生したか否か判断する処理を実行させる付記1〜付記8の何れか1項に記載の障害判定プログラム。
(付記10)
前記転送装置は、オープンフロースイッチである付記1〜付記9の何れか1項に記載の障害判定プログラム。
(付記11)
前記複数の転送装置の各々は、前記データを転送する転送部と、前記接続情報、前記転送経路特定情報、及び前記転送量情報を含む特定情報を送信する送信部とを備え、
前記複数の転送装置の中の転送装置において、当該転送装置の前記送信部が前記特定情報を送信しないが、当該転送装置の前記転送部が前記データを転送する第1の場合、又は、当該転送装置の前記転送部が前記データを転送しない第2の場合に、当該転送装置が前記非送信転送装置である
付記1〜付記10の何れか1項に記載の障害判定プログラム
(付記12)
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する判断部と、
前記判断部により前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断された場合に、前記受信部により前記非送信転送装置に接続された複数の転送装置の各々から受信された前記転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定する特定部と、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部より前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により前記特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
を含む障害判定装置。
(付記13)
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
前記データが正常に転送された場合に前記受信部により受信された前記特定情報に基づいて判断された、各転送装置が、当該各転送装置が位置する転送経路上に位置するどの転送装置と接続されているかを示す接続情報を、正常接続情報として記憶する記憶部と、
前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する判断部と、
前記判断部により前記推測ができないと判断された場合に、前記記憶部に記憶された前記正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完する補完部と、
前記正常接続情報に基づいて、前記補完部により前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定部と、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部により前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定部により特定された前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
を含む障害判定装置。
(付記14)
前記サーバ装置と、
前記複数のクライアント装置と、
前記複数の転送装置と、
付記12又は付記13に記載の障害判定装置と、
を含む障害発生判定システム。
(付記15)
前記複数の転送装置各々に、前記特定情報を送信するように指示する指示装置を更に備え、
前記複数の転送装置各々は、前記指示装置により前記指示がされた場合に、前記特定情報を送信する
付記14に記載の障害判定システム。
(付記16)
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む障害判定方法。
(付記17)
サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
前記複数の転送装置各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
ことを含む障害判定方法。
10 監視装置
12 コントローラ
14C1〜14C4 クライアント
16S1〜16S5 スイッチ
18 サーバ
図1には、監視装置10を含む監視システムが示されている。監視装置10は、コントローラ12に接続されている。また、図1には、複数、例えば、4個のクライアント14C1〜14C4と、1つのサーバ18との間に、複数、例えば5個のオープンフロースイッチ(以下、「スイッチ」という)16S1〜16S5が設けられている。スイッチ16S1には、2つのクライアント14C1、14C2が接続されている。スイッチ16S2には、2つのクライアント14C3、14C4が接続されている。スイッチ16S1とスイッチ16S2とは、接続されており、スイッチ16S1は、スイッチ16S3、16S4に接続されている。スイッチ16S2は、スイッチ16S3、16S4に接続されている。スイッチ16S3はスイッチ16S4に接続されている。スイッチ16S3、16S4は、スイッチ16S5に接続されている。スイッチ16S5はサーバ18に接続されている。スイッチ16S1〜16S5は、コントローラ12に接続されている。このように、各クライアント14C1〜14C4とサーバ18との間のデータ転送経路には、複数のスイッチが位置する。
図6には、フローの状態管理テーブルが示されている。フローの状態管理テーブルは、コネクションID、IPアドレス(片側)、IPアドレス(逆側)を記憶する。また、フロー状態管理テーブルは、送信パケット数、送信パケットの差分値を記憶する。フロー状態管理テーブルは、受信パケット数及び受信パケットの差分値を記憶するためのテーブルである。そして、フロー状態管理テーブルは判定結果を記憶する。
コネクションIDは、あるクライアントからサーバへの第1のフローと、当該サーバから当該クライアントへの第2のフローのように、対応するフロー同士を識別するIDである。即ち、図5に示すフローID=1におけるフローの発信元は、サーバ18であり、宛先はクライアント14C1である。一方、フローID=2のフローの発信元はクライアント14C1であり、宛先はサーバ18である。このような2つのフローIDの各フローは、発信元及び宛先が逆となっているだけで、同じクライアント及びサーバ間のデータの送信を示す。このように、対応するフローを識別するIDがコネクションIDである。図5に示すように、フローID=1及びID=2のフローについてみると、発信元及び宛先は、サーバ18及びクライアント14C1の何れかである。そこで、一方の装置を片側の装置としてそのIPアドレスを、IPアドレス(片側)とし、他方の装置を、片側の装置として、そのIPアドレスを、IPアドレス(逆側)とする。図6に示すように、例えば、コネクションID=1で識別される2つのフロー(フローID=1、2)では、IPアドレス(片側)として、サーバ18のIPアドレス(a...d)を記憶する。また、IPアドレス(逆側)として、クライアント14C1のIPアドレス(a...e)を記憶する。このように、片側とは、2つのフローの内の一方であり、逆側とは他方のフローである。一方のフロー、即ち、片側のフローを送信とし、他方のフローを受信とする。図6における送信パケット数は、上記片側のフロー、即ち、サーバ18からクライアント14C1に向うフローであり、受信は、クライアント14C1からサーバ18に向うフローである。上記フローID=1のフロー上の各スイッチから受信したパケット数の内の最大値を送信パケット数に記憶する。同様に、フローID=2のフロー上の各スイッチから受信したパケット数の内の最大値を、受信パケット数に記憶する。
以上を各コネクションIDについて行う。
コネクションIDkでは、一方のフローは、図5におけるフローID=n−1であり、他方のフローは、フローID=nで識別される。一方のフローにおける送信パケット数は500であるのに対し他方のパケット数(受信パケット数)は1000である。同じクライアントと同じサーバとの間では、単位時間当たりに送受信するパケット数はほぼ等しい、あるいはクライアントからの送信パケット数がサーバからの送信パケット数より多くなる。よって、各コネクションIDにおいては送信パケット数及び受信パケット数は同じ数である場合が正常の場合である。しかし、コネクションIDkにおけるフローID=n−1、nでは、送信パケット数は500であるのに対し、受信パケット数は1000である。受信パケット数は、クライアントからサーバへ送信したパケットの数であるのに対し、送信パケット数は、サーバからクライアントに送信したパケット数である。よって、クライアントからは1000のパケット数のデータを送信しているが、サーバは、500しかデータを送信していない。これは、サーバに大きな負荷がかかり、受信したパケットに応じて同じ数のパケットを送信できない状態である。これも、予め定められた状態、即ち、正常には該当しない。この場合は、異常であるので、判定結果には、異常であることを示す×を記憶する。
更に、図6に示すコネクションID2により識別されるフローID=3及び4の各フローについてみる。サーバからの送信パケット数は500であるのに対し、クライアントからのパケット数は1000である。よって、コネクションID=2で識別されるフローID=3、4についても、上記と同様に、サーバに負荷がかかった異常な状態であることが理解される。更に、コネクションID=2における受信パケット数の差分値は0ではなくて、500が記憶されている。これは次のような原因で生ずる。受信パケット数は、一定時間当たりのパケットの数である。各スイッチは、正常な状態でデータを送信していると、各スイッチのパケットの数は等しいので、受信パケットの差分値は0であるはずである。しかし、例えば、何れかのスイッチとそのスイッチと直接接続されている他のスイッチとの間の線が切断された場合には、切断されるまでに例えば500のパケットを送信していたら、上記切断によって残りの500が送信できない。このように、受信パケットの差分値が0でない場合には、当該フロー上のスイッチ間での線が切断されている等の異常が発生したことが認識できる。よって、判定結果に、異常を示す×を記憶する。
図7(A)には、フローの経路情報テーブル(ノード)が示されている。経路情報テーブル(ノード)は、フローID、ノード1、ノード2、ノード3、…を対応して記憶する。図3(A)のテーブルの情報から各スイッチが自機のどのポートで、他のスイッチのどのポートと接続されているのかが分かる。また、図4のエッジ情報管理テーブルから、クライアントまたはサーバに接続されているスイッチでは、自機のどのポートでクライアントまたはサーバと接続しているのかが分かる。更に、図5のフロー情報管理テーブルから、各フローの発信元及び宛先の装置が分かる。加えて、前述したようにパケット情報からどのスイッチがフローIDで識別されるフロー上のスイッチなのかもわかる。以上の情報から、図7(A)のフローの経路情報テーブル(ノード)には、フローIDに対応して、当該フローにおける発信元の装置のIPアドレス、宛先の装置のIPアドレスと、これらの間のデータが転送されるスイッチのIDを記憶する。
図7(B)には、フローの経路情報テーブル(出力ポート)が示されている。フローの経路情報テーブル(出力ポート)は、フローID、ポート1、ポート2、…を対応して記憶する。ポート1は、発信元の装置に接続されているスイッチにおける発信元の装置と接続されているポートのポートIDを記憶する。ポート2には、1番目のスイッチが2番目のスイッチのどのポートに接続されているのかを示す、2番目のスイッチのポートのIDを記憶する。以下、他のスイッチについてもポートのIDを同様に記憶する。
ステップ76の判定結果が肯定判定の場合には、フロー情報管理部2Aは、ステップ80で、連続した複数のスイッチでフロー情報が欠落したか否かを判断する。ここで、連続した複数のスイッチでフロー情報が欠落している場合(ステップ80の判定結果が肯定判定の場合)と欠落していない場合(ステップ80の判定結果が否定判定の場合)について説明する。連続した複数のスイッチでフロー情報が欠落していない場合(ステップ80の判定結果が否定判定の場合)としては、次の第1の場合と第2の場合がある。第1の場合としては、1個のスイッチのみからフロー情報が欠落している場合である。第2の場合としては、複数のスイッチからフロー情報が欠落しているが、当該複数のスイッチ間が接続されているかいないかのどちらなのかを判断できる場合である。
上記第1の場合としては、図12(A)に示すように、例えば、スイッチ16S3からフロー情報を受信できなかったが、スイッチ16S3を挟むスイッチ16S1、16S5からフロー情報を受信した場合がある。即ち、スイッチ16S3からフロー情報を受信しなかった場合でも、スイッチ16S1、16S5からのトポロジ情報(図12(B))から、スイッチ16S1、16S5は、スイッチ16S3と接続されていると認識することができる。第2の場合としては、複数のスイッチから上記情報を受信できなかったが、上記トポロジ情報からこれらのスイッチの間が接続されているかいないかのどちらかなのかを判断できる場合である。
一方、連続した複数のスイッチでフロー状態が欠落している場合(ステップ0の判定結果が肯定判定)として、例えば、図14(A)に示すように、スイッチ16S1、16S3から上記情報を受信できなかった場合がある。スイッチ16S5、16S4、16S2からのトポロジ情報に基づいて、スイッチ16S1、16S3の存在が推測される。しかし、スイッチ16S1とスイッチ16S3との間に別のスイッチが存在し、当該別のスイッチからも上記情報が送信されていない場合も考えられる。よって、この場合には、スイッチ16S1とスイッチ16S3とが接続されていると推測することはできない。
ステップ80の処理は、開示の技術の非転送装置に接続された複数の転送装置から接続情報を受信したか否かを判断することの一例であり、開示の技術の推測できるか否かを判断することの一例である。
ステップ80の判定結果が肯定判定の場合には、ステップ86で、フロー情報管理部62Aは、欠落したスイッチのフロー経路情報を補完する。上記のように、ステップ80の判定結果が肯定判定の場合は、例えば、図14(A)に示すように、連続したスイッチ16S1、16S3から上記情報を受信しなかった場合である。この場合は、スイッチ16S1、16S3との間に別のスイッチが存在する可能性もあり、別のスイッチからも上記情報を受信していない場合がある。このような場合には、例えば、クライアント14C1からのパケットが、スイッチ16S1を介して、直接スイッチ16S3〜スイッチ16S5を介してサーバ18に到達する場合がある。また、クライアント14C1からのパケットがスイッチ16S1を介して、スイッチ16S3ではない別のスイッチを介して、スイッチ16S5に到達し、スイッチ16S5からサーバ18に到達する場合もある。よって、この場合には、図7(A)及び図7(B)に示すテーブルを更新することができない。即ち、例えば、フローID2におけるフローでは、スイッチ16S1からスイッチ16S3にパケットが送信されているようになっているが、上記のように、別のスイッチを経由してパケットが送信される場合がある。よって、フローの経路情報テーブル(図7(A)及び図7(B))からでは、監視装置10は、フロー情報が欠落したスイッチの接続の状態を把握することができない。よって、上記のように後段のスイッチのパケット数を選ぶことができない。上記のように、監視装置10のメモリ34には、図8(A)及び図8(B)に示すように、過去(前回の正常時)のフローの経路情報テーブルが設けられている。過去の正常時のフローの経路情報テーブルの、例えば、フローID2における経路を見ると、スイッチ16S1は直接スイッチ16S3と接続されていることが分かる。そこで、ステップ86で、フロー情報管理部62Aは、過去のフローの経路情報テーブル(図8参照)を用いて、上記のように、欠落したスイッチ16S1、16S3の接続の状態を補完する。即ち、接続しているのか否か、接続していなければ、どのスイッチと接続しているのかという接続の状態が補完される。
ステップ88で、フロー情報管理部62Aは、過去のリンク情報を利用したリンクを障害リンク管理テーブルに登録する。上記のように、障害がスイッチ16S1、16S3に生じている。よって、図3(C)の障害リンクの管理テーブルに、スイッチ16S1及びスイッチ16S3における、スイッチID、出力ポートID、隣接スイッチID、及び隣接スイッチの入力ポートIDを記憶する。
以上のように、連続した複数のスイッチでフロー情報が欠落し、フローが分からない場合でも、過去のフロー経路情報に基づいて、欠落したスイッチのフロー経路情報が補完される。よって、欠落したスイッチのフローの後段のスイッチがどのスイッチなのかがわかる。そこで、ステップ82で、フロー情報管理部62Aは、上記のように欠落したスイッチが位置するフローを特定し、当該欠落したスイッチの後段のスイッチのカウンタを調査する。例えば、ローID2におけるフローでは、後段のスイッチはスイッチ16S5である。よって、スイッチ16S5のカウント値が調査される。ステップ84で、フロー情報管理部62Aは、スイッチ16S1、16S3のカウンタに、スイッチ16S5の出力パケット数を設定する。
ステップ106で、フロー情報管理部62Aは、送信パケットの差分または受信パケットの差分が閾値以上か否かを判断する。図6におけるコネクションID=2の内容が、図15(A)に示されている。コネクションID=2は、フローF3、F4を識別する。コネクションID=2における片側、即ち、送信は、フローF3に対応し、逆側、即ち、受信はフローF4に対応する。フローF3では、各スイッチから500個のパケットが送信されている。よって、フローF3における送信パケットの差分値は0となる。しかし、フローF4におけるパケット数は、スイッチ16S3は、1000であるのに対し、スイッチ16S4、16S5のパケット数は500である。よって、受信パケットの差分値は500である。この場合には、ステップ106の判定結果が肯定判定となり、フロー状態判定処理は、ステップ112に移行される。ステップ112で、フロー情報管理部62Aは、当該フローF4について異常と判定し、ステップ114で、判定結果として異常を示す×を記憶する。
以上の処理(ステップ72〜90)により、ネットワークトモグラフィー技術を用いた障害箇所特定を実行するための情報を全て取得することができる。そこで、ステップ92で、障害箇所判定部66Aは、障害箇所特定処理を実行する。図11には、障害箇所特定処理の一例が示されている。ステップ122で、障害箇所判定部66Aは、未観測の観測ノードがあるか否かを判断する。ここで、観測ノードとは、クライアントまたはサーバである。ステップ122の判定結果が肯定判定の場合には、ステップ124で、障害箇所判定部66Aは、フローのフロー異常判定結果を経由するリンクにマッピングする。即ち、例えば、図16(A)に示すように、観測ノードであるクライアント14C1に対してフローF1がある。フローF1は、図16(B)に示すように、クライアント14C1及びスイッチ16S1の間のリンクL1、スイッチ16S1、16S2間のリンクL2が存在する。また、スイッチ16S2、16S5間のリンクL3、及びスイッチ165とサーバ18との間のリンクL4が存在する。ステップ124で、障害箇所判定部66Aは、フローF1に対応して、各リンクに異常判断結果をマッピングする。例えば、フローF1におけるリンクL3に障害が発生して、当該フローが異常であると判断された場合には、図16(C)に示すように、フローF1に対応してリンクL1、L2、L3、L4に異常を示す×を記憶する。一方、フローF3の観測ノードはクライアント14C4である。このフローF3は、サーバ18とスイッチ16S5との間のリンクL4、スイッチ16S4、16S5の間のリンクL5、スイッチ16S3、16S4の間のリンクL6、及び、クライアント14C4とスイッチ16S3との間のリンクL7を有する。そして、フローF3は、正常であった場合には、フローF3に対応してリンクL、L5、L6及びL7に対応して、正常であることを示す○を記憶する。
ステップ142の判定結果が否定判定の場合は、当該上位リンクL1は、別のリンクの障害によって異常か否かを結論づけることができない。そこで、ステップ146で、障害箇所判定部66Aは、同じフロー上で上位リンクよりデータ転送下流に別のリンクがあるか否かを判断する。フローF1では、リンクL3、L4があるので、ステップ146が肯定判定される。ステップ146の判定結果が肯定判定の場合には、障害箇所判定部66Aは、ステップ148で、上位リンクの結論を別のリンクの結論に対応づける。ステップ148が実行されると、障害箇所特定処理は、ステップ126に移行される。フローF1についてみると、以上の処理でリンクL1について処理が終了したが、リンクL2〜L4が存在するので、ステップ26が肯定判定となり、ステップ128で、障害箇所判定部66Aは、今度はリンクL2を上位リンクとする。上位リンクl2では、ステップ134が否定判定される。なぜなら、リンクL3は、下位リンクに該当しないからである。この場合には、ステップ136で、障害箇所判定部66Aは、上位リンクL2を異常確率大と判断する。ステップ150で、障害箇所判定部66Aは、他のリンクが対応づけられているか否かを判断する。上記のように、リンクL1では、ステップ148でリンクL2にリンクL1が対応づけられているので、ステップ150の判定結果は肯定判定となる。ステップ152で、障害箇所判定部66Aは、他のリンク、即ち、リンクL1を異常確率大と判断する。これにより、図16(C)に示すように、リンクL1及びリンクL2には、異常確率大を示す大が記憶される。
以上のように、各フローの各リンクについて、異常確率大若しくは小、または正常が記憶されると、ステップ126が否定判定となり、障害箇所特定処理は、ステップ122に移行される。ステップ122の判定結果が否定判定となった場合には、障害箇所特定処理は、ステップ154に移行する。ステップ154で、障害箇所判定部66Aは、各観測ノードを点とした判断結果をリンク毎に集計する。即ち、図16(C)に示すように、各観測ノード毎に判断結果を集計する。ステップ156で、障害箇所判定部66Aは、未探索のリンクがあるか否かを判断する。未探索のリンクがあると判断された場合には、ステップ158で、障害箇所判定部66Aは、1観測点で正常判断がされているか否かを判断する。例えば、図16(C)に示すように、リンクL4では、異常確率大及び正常が記憶されているので、リンクL4については、ステップ158の判定結果は肯定判定となる。ステップ160で、障害箇所判定部66Aは、本リンクL4を正常と判断して、結論の欄に正常を記憶する。ステップ158の判定結果が否定判定の場合の場合には、ステップ162で、障害箇所判定部66Aは、1観測点以上で異常確率大が判定されているか否かを判断する。例えば、図16(C)に示すように、リンクL2では、1観測点以上で異常確率大が判定されている。よって、ステップ162の判定結果が肯定判定となり、本リンクL2に対しては、異常確率大と結論づけられ、結論の欄に異常確率大を識別する大を記憶する。なお、ステップ162の判定結果が否定判定の場合には、ステップ166で、障害箇所判定部66Aは、本リンクを異常確率小と判断し、異常確率小を識別する小を結論の欄に記憶する。
図18は、図17に示した監視装置10で保持されるトポロジ情報管理テーブル(図18(A))、およびエッジ情報管理テーブル(図18(B))の例を示している。図18(A)のトポロジ(リンク情報)管理テーブルは、例えば、スイッチOFS1のポートP3がスイッチOFS3のポートP1に、スイッチOFS1のポートP4がスイッチOFS4のポートP2になど、各スイッチ間の接続リンクに関する情報を保持している。

Claims (12)

  1. サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
    前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
    前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
    前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定された非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
    ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
  2. サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、コンピュータに、前記複数の転送経路の各々毎に異常の有無を判定することを含む処理を実行させる障害判定プログラムであって、
    前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
    前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
    前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
    前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
    ことを含む処理を前記コンピュータに実行させる障害判定プログラム。
  3. 前記コンピュータに、
    前記推測ができると判断した場合に、前記複数の非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記複数の非送信転送装置の各々が位置する転送経路である非送信転送装置転送経路を特定する処理を実行させる請求項2に記載の障害判定プログラム。
  4. 前記コンピュータに、
    前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第1の装置と当該第1の装置からのデータを受信する第2の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる請求項1に記載の障害判定プログラム。
  5. 前記コンピュータに、
    前記障害が発生したか否かの前記特定転送経路毎の判断結果に基づいて、前記サーバ装置と、前記複数のクライアント装置の各々と、前記複数の転送装置の各々との中の何れかの第1の装置と当該第1の装置からのデータを受信する第2の装置との間の接続部に障害が発生したか否かを判断する処理を更に実行させる請求項2又は請求項3に記載の障害判定プログラム。
  6. 前記コンピュータに、
    前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
    前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する処理を実行させる請求項4に記載の障害判定プログラム。
  7. 前記コンピュータに、
    前記接続部に障害が発生したと判断された場合の前記接続部により接続される装置を示す被接続装置情報を、被接続装置情報記憶部に記憶し、
    前記被接続装置情報記憶部に記憶された前記被接続装置情報に対応する転送装置が前記非送信転送装置か否か判断し、前記被接続装置情報に対応する転送装置が前記非送信転送装置であると判断した場合に、当該判断した非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する処理を実行させる請求項5に記載の障害判定プログラム。
  8. サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
    前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
    前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断する判断部と、
    前記判断部により前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断された場合に、前記受信部により前記非送信転送装置に接続された複数の転送装置の各々から受信された前記転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定する特定部と、
    前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部より前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により前記特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
    を含む障害判定装置。
  9. サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定装置であって、
    前記複数の転送装置の各々から、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報、前記データが転送される転送経路を特定するための転送経路特定情報、前記転送したデータの転送量情報を含む、障害箇所を特定するための特定情報を受信する受信部と、
    前記データが正常に転送された場合に前記受信部により受信された前記特定情報に基づいて判断された、各転送装置が、当該各転送装置が位置する転送経路上に位置するどの転送装置と接続されているかを示す接続情報を、正常接続情報として記憶する記憶部と、
    前記受信部により前記複数の転送装置各々から受信された前記接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断する判断部と、
    前記判断部により前記推測ができないと判断された場合に、前記記憶部に記憶された前記正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完する補完部と、
    前記正常接続情報に基づいて、前記補完部により前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定部と、
    前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記受信部により前記特定転送経路に位置する複数の転送装置から受信された前記転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記特定部により特定された前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定部により特定された前記非送信転送装置転送経路上に位置する他の転送装置から前記受信された前記転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する判定部と、
    を含む障害判定装置。
  10. 前記サーバ装置と、
    前記複数のクライアント装置と、
    前記複数の転送装置と、
    請求項8又は請求項9に記載の障害判定装置と、
    を含む障害発生判定システム。
  11. サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
    前記複数の転送装置の各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置に接続された複数の転送装置から前記接続情報を受信したか否かを判断し、
    前記非送信転送装置に接続された複数の転送装置から前記接続情報を受信したと判断した場合に、前記非送信転送装置に接続された複数の転送装置の各々から受信した、当該転送装置が位置する前記転送経路を特定するための転送経路特定情報に基づいて、前記非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
    前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
    ことを含む障害判定方法。
  12. サーバ装置と複数のクライアント装置の各々との間に、データの転送を行う複数の転送装置が設けられると共に各々前記転送装置が複数個位置する複数の転送経路が存在し、前記複数の転送経路の各々毎に異常の有無を判定する障害判定方法であって、
    前記複数の転送装置各々から受信した、各転送装置が前記サーバ装置、前記複数のクライアント装置、及び前記複数の転送装置のうちの何れの装置と接続されているかを示す接続情報に基づいて、前記接続情報を送信していない転送装置である非送信転送装置が複数存在しかつ当該複数の非送信転送装置間が接続されていると推測できるか否かを判断し、
    前記推測ができないと判断された場合に、前記データが正常に転送された際に記憶部に記憶された、各転送装置が、当該各転送装置が位置する転送経路上に位置する他のどの転送装置と接続されているかを示す接続情報である正常接続情報に基づいて、前記複数の非送信転送装置間の接続情報を補完し、
    前記正常接続情報に基づいて、前記接続情報が補完された前記複数個の非送信転送装置が位置する転送経路である非送信転送装置転送経路を特定し、
    前記複数の転送経路の各々を特定転送経路として、前記特定転送経路毎に、前記特定転送経路に位置する複数の転送装置から受信した、各転送装置が転送したデータの転送量情報に基づいて、前記特定転送経路上に障害が発生したか否かを判定すると共に、前記特定転送経路が前記非送信転送装置転送経路の場合には、前記非送信転送装置の前記転送量情報として前記特定された非送信転送装置転送経路上に位置する他の転送装置から受信した転送量情報を用いて前記特定転送経路上に障害が発生したか否かを判定する
    ことを含む障害判定方法。
JP2013098546A 2013-05-08 2013-05-08 障害判定プログラム、装置、システム、及び方法 Expired - Fee Related JP6089940B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013098546A JP6089940B2 (ja) 2013-05-08 2013-05-08 障害判定プログラム、装置、システム、及び方法
US14/253,942 US9787533B2 (en) 2013-05-08 2014-04-16 Obstruction determination device
EP14165599.3A EP2802113B1 (en) 2013-05-08 2014-04-23 Obstruction determination device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013098546A JP6089940B2 (ja) 2013-05-08 2013-05-08 障害判定プログラム、装置、システム、及び方法

Publications (2)

Publication Number Publication Date
JP2014220645A true JP2014220645A (ja) 2014-11-20
JP6089940B2 JP6089940B2 (ja) 2017-03-08

Family

ID=50771036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013098546A Expired - Fee Related JP6089940B2 (ja) 2013-05-08 2013-05-08 障害判定プログラム、装置、システム、及び方法

Country Status (3)

Country Link
US (1) US9787533B2 (ja)
EP (1) EP2802113B1 (ja)
JP (1) JP6089940B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018522480A (ja) * 2015-08-20 2018-08-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド フロントホールトポロジを探索するための方法および装置
JP2018170639A (ja) * 2017-03-30 2018-11-01 日本電気株式会社 通信解析装置、通信解析方法およびプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030056153A1 (en) * 2001-06-15 2003-03-20 International Business Machines Corporation Method and apparatus for fault location in a loop network
JP2009177658A (ja) * 2008-01-28 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> 経路同定システム
JP2011146982A (ja) * 2010-01-15 2011-07-28 Nec Corp コンピュータシステム、及びコンピュータシステムの監視方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69920893T2 (de) 1999-07-13 2006-03-09 International Business Machines Corp. Berichtigung der Verbindungsbandbreite auf der Basis der Beobachtung der Belegung der Ressourcen des Netzes
US6816456B1 (en) * 2000-02-04 2004-11-09 At&T Corp. Methods and apparatus for network use optimization
US7571181B2 (en) * 2004-04-05 2009-08-04 Hewlett-Packard Development Company, L.P. Network usage analysis system and method for detecting network congestion
US7782759B2 (en) * 2006-04-21 2010-08-24 Microsoft Corporation Enabling network devices to run multiple congestion control algorithms
US8593964B1 (en) * 2009-11-06 2013-11-26 Brocade Communications Systems, Inc. Method and system for traffic management
KR101317117B1 (ko) * 2010-04-28 2013-10-11 엘지전자 주식회사 이동통신 시스템에서의 mtc 데이터의 혼잡 제어 방법
US8705349B2 (en) * 2011-11-27 2014-04-22 Mellanox Technologies Ltd. Destination-based congestion control
US9014005B2 (en) * 2013-01-14 2015-04-21 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Low-latency lossless switch fabric for use in a data center
WO2014133429A1 (en) * 2013-03-01 2014-09-04 Telefonaktiebolaget L M Ericsson (Publ) Methods and nodes for handling congestion in backhaul networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030056153A1 (en) * 2001-06-15 2003-03-20 International Business Machines Corporation Method and apparatus for fault location in a loop network
JP2009177658A (ja) * 2008-01-28 2009-08-06 Nippon Telegr & Teleph Corp <Ntt> 経路同定システム
JP2011146982A (ja) * 2010-01-15 2011-07-28 Nec Corp コンピュータシステム、及びコンピュータシステムの監視方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018522480A (ja) * 2015-08-20 2018-08-09 ホアウェイ・テクノロジーズ・カンパニー・リミテッド フロントホールトポロジを探索するための方法および装置
JP2018170639A (ja) * 2017-03-30 2018-11-01 日本電気株式会社 通信解析装置、通信解析方法およびプログラム
JP7164140B2 (ja) 2017-03-30 2022-11-01 日本電気株式会社 通信解析装置、通信解析方法およびプログラム

Also Published As

Publication number Publication date
JP6089940B2 (ja) 2017-03-08
EP2802113B1 (en) 2017-11-08
EP2802113A1 (en) 2014-11-12
US20140337512A1 (en) 2014-11-13
US9787533B2 (en) 2017-10-10

Similar Documents

Publication Publication Date Title
US8351433B2 (en) Intelligent electronic device with segregated real-time ethernet
JP4774357B2 (ja) 統計情報収集システム及び統計情報収集装置
JP5233504B2 (ja) 経路制御装置およびパケット廃棄方法
US8867345B2 (en) Intelligent electronic device with segregated real-time ethernet
US20180091395A1 (en) Network system, network control method and control apparatus
CN107710685A (zh) 通过自动生成的且物理上不同的通信路径在网络中进行流量路由
US9455916B2 (en) Method and system for changing path and controller thereof
CN105765906A (zh) 用于网络功能虚拟化信息集中器的方法、系统和计算机可读介质
EP3720075B1 (en) Data transmission method and virtual switch
WO2012147909A1 (ja) ネットワーク装置、通信システム、異常トラヒックの検出方法およびプログラム
CN103973560A (zh) 一种irf系统中堆叠链路故障处理的方法和装置
US9548928B2 (en) Network system, controller, and load distribution method
JP2016046736A (ja) サービスチェイニングシステム、サービスチェイニングフォワーダ装置、及びサービスチェイニング方法
JP6089940B2 (ja) 障害判定プログラム、装置、システム、及び方法
WO2014175423A1 (ja) 通信ノード、通信システム、パケット処理方法及びプログラム
CN103248567A (zh) 一种bfd会话报文传输方法和设备
EP2852094A1 (en) A system for remotely controlling and/or monitoring power distribution units or sensor units in a data centre
US20140016459A1 (en) Network system, gateway, and packet delivery method
CN105052088A (zh) 网络统计信息提供系统、网络统计信息提供方法和程序
CN111106977B (zh) 数据流检测方法、装置及存储介质
CN104092582A (zh) 一种链路故障的检测方法和设备
JP2006246122A (ja) ネットワーク管理システムおよびネットワーク管理プログラム
US20150180775A1 (en) Communication System, Control Apparatus, Communication Method, and Program
JP2016100799A (ja) 監視システムおよび監視方法
WO2018209915A1 (zh) 一种分布式设备中大规模oam检测系统及方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170123

R150 Certificate of patent or registration of utility model

Ref document number: 6089940

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees