説明

ネットワーク通信における障害を判断するシステム、方法およびプログラム

【課題】送信元デバイスから宛先デバイスへの通信障害の原因を判断するシステム、方法およびプログラムを提供する。
【解決手段】送信元デバイスから宛先デバイスへの好適ルートは、正順序のルータの列を含む。第1プログラム命令が、送信元デバイスから宛先デバイスへ向かって正順序の列の最初となるルータ群を1つ以上判断する。この最初のルータ群の最後のルータは、宛先デバイスへ向かって正順序の列中の次ルータを指定しない。第2プログラム命令が、宛先デバイスから送信元デバイスへ向かって逆順序で、ルータの列を判断する。第3プログラム命令が、第2プログラム命令によって判断された逆順序のルータの列から、最初のルータ群の最後のルータが宛先デバイスへ向かって正順序でその次にくる次ルータとしてどのルータを指定すべきかを判断し、さらに、最初のルータ群の最後のルータが宛先デバイスへ向かって正順序でその次にくる次ルータとしてどのルータを指定すべきかについて通知を送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般的に、コンピュータ・システムおよびネットワークに関し、特に、ネットワーク通信における障害をトラブルシュートすることに関する。
【背景技術】
【0002】
現在では、インターネットなどのコンピュータ・ネットワークは周知のものとなっている。そうしたネットワークは、通信媒体、ファイアウォール、ルータ、ネットワーク・スイッチおよびハブを備えている。(通常、ファイアウォール、ネットワーク・スイッチおよびハブは、ルータを含む。)多くの場合ネットワークは、クライアント・コンピュータとサーバ、あるいはその他の送信元デバイスと宛先デバイスを、相互に接続する。宛先「デバイス」とは、宛先のコンピュータ、またはサブネットへのゲートウェイとすることができる。インターネットを介した通信の場合、通常、送信元コンピュータと宛先デバイスとの間に多数のルータおよび多数の実現可能なルーティング・パスが存在する。メッセージがルータに到着すると、ルータは、宛先デバイスへのパスにおける次のルータすなわち「ホップ」について決定する。この決定を行うために、OSPF、RIP、IGRP、EIGRP、ISISまたはBGPなどといった多数の既知のアルゴリズムがある。RIP、OSPFおよびISISの各プロトコルを用いたルータは、最短のパス、言い換えれば最少数の介在ルータを介して、メッセージ・パケットを宛先デバイスまでルーティングしようとする。OSPFプロトコルを用いたルータはさらに、メッセージ・パケットを次ホップへ転送するのに使用されるインターフェースに基づいて、次ホップまでのパスの帯域幅を判断することができる。IGRPおよびEIGRPの各プロトコルを用いたルータは、最大の帯域幅、最短の遅延および最短のパス要素に基づいて、メッセージ・パケットをルーティングしようとする。BGPプロトコルを用いたルータは、最短の自律システム・パス(言い換えれば、1つの管理制御の範囲内における最少数のルータ)あるいは最小のMED(multi−exit discriminator)属性(言い換えれば、或る1つのルートの、別のルートに対する優先であって、隣接ルータなどにアドバタイズされる)に基づいて、メッセージ・パケットをルーティングしようとする。OSPF、IGRP、EIGRPおよびBGPルーティグ機能は、大多数の宛先デバイスに向けて1つより多いルートを特定および記録し、それらを、適用可能なルーティング方針に基づく順序で利用しようとする。
【0003】
一般的なシナリオでは、送信元コンピュータが、TCP/IPアダプタ・カードへ渡すメッセージを作成する。TCP/IPアダプタ・カードは、そのメッセージをパケットに分割し、各パケットにヘッダを付加する。ヘッダは、送信元IPアドレスおよびポート、宛先IPアドレスおよびポート、ならびにプロトコルを指定する。送信元コンピュータは、メッセージ・パケットを、その送信元コンピュータのファイアウォールまたはゲートウェイ・デバイス(ゲートウェイ・ルータなど)へ転送する。通常、ファイアウォールは、許可メッセージ・フロー(「ルール」)のリスト、すなわち、いずれかの方向にファイアウォールを通過することが許可されているメッセージ・パケットに関する送信元IPアドレスおよびポート、宛先IPアドレスおよびポートならびにプロトコルの組み合わせのリストを、有している。通常、ファイアウォールは、ルータも備えている。そのメッセージ・パケットが送信元ネットワークのファイアウォールを通過することが認められていれば、ルータは、宛先デバイスへ向かう途中の「次ホップ」ルータを判断する。ルータは、先に説明したように、既知のルーティング・プロトコルに基づいて「次ホップ」を判断する。メッセージ・パケットはその後、ルータからルータへと宛先ネットワークまで進められ、宛先ネットワークでは、その宛先ネットワークのファイアウォールまたはゲートウェイ・デバイスが、(宛先ネットワークにて当該パケットのメッセージ・フローをファイアウォールが許可することを前提として)メッセージ・パケットを宛先コンピュータまたはその他の宛先システムへと転送する。
【0004】
ときとして、メッセージが宛先デバイスまで届かないことがある。このことは、通信パスにおけるルータの障害、通信パスにおけるルータ相互間の通信リンクの障害、通信パスにおけるファイアウォールによる適切または不適切な遮断、あるいはその他の理由が原因であり得る。
【0005】
管理者が上述のような障害を知ることのできるいくつかの方法がある。例えば、送信元デバイスが宛先デバイスからしかるべき応答を受信しなかった場合、送信元デバイスのユーザが、ヘルプ・デスクを呼び出すか、あるいはその他の方法で管理者に通知するとよい。別の例として、パス内のルータが宛先デバイスへの「ルート」を持っていない場合、あるいは次ホップへの通信リンクがダウンしている場合に、そのルータが、送信元デバイスへエラー・メッセージを戻すことができる。
【0006】
ネットワークにおける障害が検出され次第、管理者は、障害の原因を特定して障害を修正しようとする。パス内のルータが宛先デバイスへの「ルート」を持っていない場合あるいは次ホップへの通信リンクがダウンしている場合には、エラー・メッセージによって問題のタイプが示されることになる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、ネットワーク通信における障害のトラブルシューティングを向上させることである。
【課題を解決するための手段】
【0008】
本発明は、送信元デバイスから宛先デバイスへの通信の障害の原因を判断するシステム、方法およびプログラムに属する。送信元デバイスから宛先デバイスへの好適ルートには、正順序のルータの列が含まれる。第1プログラム命令が、送信元デバイスから宛先デバイスへ向かって正順序の列の最初となるルータ群を1つ以上判断する。この最初のルータ群の最後のルータは、宛先デバイスへ向かって正順序の列中の次ルータを指定しない。第2プログラム命令が、宛先デバイスから送信元デバイスへ向かって逆順序で、ルータの列を判断する。第3プログラム命令が、第2プログラム命令によって判断された逆順序のルータの列から、最初のルータ群の最後のルータが宛先デバイスへ向かって正順序でその次にくる次ルータとしてどのルータを指定すべきかを判断し、さらに、最初のルータ群の最後のルータが宛先デバイスへ向かって正順序でその次にくる次ルータとしてどのルータを指定すべきかについて通知を送信する。
【0009】
本発明の特徴によれば、第1プログラム命令は、一部分として、送信元デバイスに対し、宛先デバイスへ向って次の次ルータについて問い合わせることと、送信元デバイスの当該次ルータに対し、送信元デバイスの当該次ルータの、宛先デバイスへ向かって次の次ルータについて問い合わせることとによって、正順序の列の最初のルータ群を1つ以上判断する。第2プログラム命令は、宛先デバイスに対し、送信元デバイスへ向かって次の次ルータについて問い合わせることと、宛先デバイスの当該次ルータに対し、宛先デバイスの当該次ルータの、送信元デバイスへ向かって次の次ルータについて問い合わせることとによって、宛先デバイスから送信元デバイスへ向かって逆順序でルータの列を判断する。
【0010】
本発明の別の特徴によれば、第4プログラム命令が、好適ルートにおけるファイアウォールを判断し、このファイアウォールには送信元デバイスから宛先デバイスへの当該メッセージのフローがファイアウォールを通過することを許可するルールが含まれているかどうかを判断し、そのようなルールが含まれていない場合には、当該ファイアウォールには送信元デバイスから宛先デバイスへのメッセージのフローがファイアウォールを通過することを許可するルールが含まれないという通知を、生成する。
【図面の簡単な説明】
【0011】
【図1】本発明を組み込んだネットワーク管理サーバ、ならびに、このネットワーク管理サーバによりネットワーク通信障害をトラブルシュートすることが可能な通信の送信元コンピュータ、ゲートウェイ・デバイス、ルータおよび宛先デバイスの、ブロック図である。
【図2】本発明による、ネットワーク管理サーバ内のネットワーク通信トラブルシューティング・プログラムのフロー・チャートを構成する図である。
【図3】本発明による、ネットワーク管理サーバ内のネットワーク通信トラブルシューティング・プログラムのフロー・チャートを構成する図である。
【図4】本発明による、ネットワーク管理サーバ内のネットワーク通信トラブルシューティング・プログラムのフロー・チャートを構成する図である。
【図5】本発明による、ネットワーク管理サーバ内のネットワーク通信トラブルシューティング・プログラムのフロー・チャートを構成する図である。
【図6】本発明による、ネットワーク管理サーバ内のネットワーク通信トラブルシューティング・プログラムのフロー・チャートを構成する図である。
【図7】本発明による、ネットワーク管理サーバ内のネットワーク通信トラブルシューティング・プログラムのフロー・チャートを構成する図である。
【発明を実施するための形態】
【0012】
ここで、図面に関連して本発明を詳細に説明する。図1は、概括的に示された分散コンピュータ・システム10を示し、ここで本発明が具現化される。システム10は、サブネット30上の送信元コンピュータ20と、サブネット30をプライベートあるいはパブリックのネットワーク34(パブリック・インターネットなど)へインターフェース接続するゲートウェイ・デバイス(ゲートウェイ・コンピュータなど)40とを含む。ネットワーク34は、ネットワーク・ルータ36−1、36−2、36−3・・・36−Nといった多種多様なルータを含み、ゲートウェイ・デバイス40からのメッセージ・パケット(送信元コンピュータ20が発信元である)を宛先サブネット230のゲートウェイ・デバイス240へ転送する。ルータは、WANルータ、顧客アクセス・ルータ、顧客の内部ルータ、インターネット・アクセス・ルータ、インターネット内のルータなどとすることができる。宛先コンピュータ220はサブネット230上にあり、送信元コンピュータ20によって送信されたメッセージを処理する。宛先コンピュータ220も同様に、ゲートウェイ・デバイス240、ネットワーク・ルータ36−1、36−2、36−3・・・36−Nおよびゲートウェイ・デバイス40を介して送信元コンピュータ20へ(応答のオリジナル)メッセージを送信し、送信元コンピュータ20がそれらのメッセージを処理する。
【0013】
送信元コンピュータ20は、ワークステーション、サーバまたはその他のタイプのコンピュータとすることができ、共通バス25上の既知のCPU21、オペレーティング・システム22、RAM23およびROM24と、ストレージ26と、TCP/IPアダプタ・カード27とを含む。送信元コンピュータ20にはさらに、宛先コンピュータ220(ならびにその他の宛先コンピュータ)に対する送出メッセージを生成し着信メッセージも処理する、アプリケーション28などの既知のコンピュータ・プログラムが含まれる。
【0014】
ゲートウェイ・デバイス40は、共通バス45上の既知のCPU41、オペレーティング・システム42、RAM43およびROM44と、ストレージ46と、TCP/IPアダプタ・カード127とを含む。ゲートウェイ・デバイス40はさらに、OSPF、RIP、ISIS、IGRP、EIGRPまたはBGPルーティング機能などといった、既知のルータまたはルーティング機能47(ハードウェアまたはソフトウェアあるいはその両方に具現化される)を含む。これらの既知のルーティング機能は、例えばノード(すなわち、ルータ、ファイアウォールなど)から宛先デバイス(例えば、宛先サブネットまたは宛先コンピュータ)までなどといった、1つ以上のルーティング・パスまたは「ルート」を特定し記録する。宛先デバイスへの1つ以上のルーティング・パスを特定し記録するその他のルーティング機能も、同様にルーティング機能47に使用することができる。既知のRIP、OSPFおよびISISルーティング機能は、最短のパス、言い換えれば最少数の介在ルータを介して、メッセージ・パケットを宛先デバイスまでルーティングしようとする。既知のOSPFルーティング機能はさらに、メッセージ・パケットを次ホップへ転送するのに使用されるインターフェースに基づいて、次ホップまでのパスの帯域幅を判断することができる。既知のIGRPおよびEIGRPルーティング機能は、最大の帯域幅、最短の遅延および最短のパス要素に基づいて、メッセージ・パケットをルーティングしようとする。既知のBGPルーティング機能は、最短の自律システム・パス(言い換えれば、1つの管理制御の範囲内における最少数のルータ)あるいは最小のMED属性(言い換えれば、1つのルートの、別のルートに対する優先であって、隣接ルータなどにアドバタイズされる)に基づいて、メッセージ・パケットをルーティングしようとする。OSPF、IGRP、EIGRPおよびBGPルーティグ機能は、大多数のデバイスに向けて1つより多いルートを特定および記録し、それらを、適用可能なルーティング方針に基づく順序で利用しようとする。
【0015】
ゲートウェイ・デバイス40はさらに、既知のファイアウォール48と、TCP/IPアダプタ・カード127とを含む。ファイアウォール48は、許可メッセージ・フロー(「ルール」)のリスト52、すなわち、ファイアウォール48を各方向に通過することが許可されているメッセージ・パケットに関する送信元IPアドレスおよびポート、宛先IPアドレスおよびポート、ならびにプロトコルの組み合わせのリストを備えている。
【0016】
宛先コンピュータ220は、ワークステーション、サーバまたはその他のタイプのコンピュータとすることができ、共通バス225上の既知のCPU221、オペレーティング・システム222、RAM223およびROM224と、ストレージ226と、TCP/IPアダプタ・カード227とを含む。宛先コンピュータ220にはさらに、送信元コンピュータ20(ならびにその他の宛先コンピュータ)に対する送出メッセージを生成し、送信元コンピュータ20(ならびにその他の送信元コンピュータ)からの着信メッセージも処理する、既知のコンピュータ・プログラム228が含まれる。
【0017】
ゲートウェイ・デバイス240は、共通バス245上の既知のCPU241、オペレーティング・システム242、RAM243およびROM244と、ストレージ246とを含む。ゲートウェイ・デバイス240はさらに、OSPF、RIP、ISIS、IGRP、EIGRPまたはBGPルーティング機能などといった、既知のルータまたはルーティング機能247(ハードウェアまたはソフトウェアあるいはその両方に具現化される)を含む。これらの既知のルーティング機能は、宛先デバイスへの1つ以上のルーティング・パスを特定し記録する。宛先デバイスへの1つ以上のルーティング・パスを特定し記録するその他のルーティング機能も、同様にルーティング機能247に使用することができる。先に説明したように、既知のRIP、OSPFおよびISISルーティング機能は、最短のパス、言い換えれば最少数の介在ルータを介して、メッセージ・パケットを宛先デバイスまでルーティングしようとする。既知のOSPFルーティング機能はさらに、メッセージ・パケットを次ホップへ転送するのに使用されるインターフェースに基づいて、次ホップまでのパスの帯域幅を判断することができる。既知のIGRPおよびEIGRPルーティング機能は、最大の帯域幅、最短の遅延および最短のパス要素に基づいて、メッセージ・パケットをルーティングしようとする。既知のBGPルーティング機能は、最短の自律システム・パス(言い換えれば、1つの管理制御の範囲内における最少数のルータ)、最小のMED属性(言い換えれば、1つのルートの、別のルートに対する優先であって、隣接ルータなどにアドバタイズされる)に基づいて、メッセージ・パケットをルーティングしようとする。OSPF、IGRP、EIGRPおよびBGPルーティグ機能は、宛先デバイスへの1つ以上のルートを特定および記録し、適用可能なルーティング方針の順序でそれらを利用しようとする。
【0018】
ゲートウェイ・デバイス240はさらに、既知のファイアウォール248を含む。ファイアウォール248は、許可メッセージ・フロー(「ルール」)のリスト252、すなわち、ファイアウォールを各方向に通過することが許可されているメッセージ・パケットに関する送信元IPアドレスおよびポート、宛先IPアドレスおよびポート、ならびにプロトコルの組み合わせのリストを備えている。
【0019】
図1はさらに、ネットワーク管理サーバ300を示しており、これには、共通バス325上の既知のCPU321、オペレーティング・システム322、RAM323およびROM324と、ストレージ326とが含まれる。ネットワーク管理サーバ300にはさらに、失敗したネットワーク通信の原因を判断し修正処置を行う、本発明によるネットワーク通信トラブルシューティング・プログラム330が含まれる。プログラム330は、ルータ36−1乃至36−Nおよびゲートウェイ・デバイス40および240(ならびに、ネットワーク内のその他のゲートウェイ・デバイス、ルータおよびファイアウォール)の各々に関するログイン/認証情報を備えたテーブル340を含む。通信が失敗したために管理者がプログラム330を起動すると(または、プログラム330に直接送られてくる通信失敗のメッセージを受けて)、プログラム330は、上記のログイン/認証情報を用いて、好適なパス内のルータ36−1乃至36−Nならびにゲートウェイ・デバイス40および240の各々にログオンする。プログラム330は、送信元デバイスあるいは失敗した通信を報告したデバイスから始めて、各デバイスのルーティング・テーブルを次ホップについて調べながら、順次、好適なパス内のルータ36−1乃至36−Nならびにゲートウェイ・デバイス40および240を特定する。その後プログラム330は、次ホップにログオンしてルーティング・テーブルを調べ、その次のホップを判断することなどを行なう。次に、プログラム330は、以下を読み取って記録する:(a)各自の保存ルーティング・テーブルであって、各ルーティング・テーブル内の各宛先デバイスに関し、宛先デバイス名、宛先ネットワーク、宛先サブネット、よく「宛先ゲートウェイ」と称される次ホップ・デバイス(言い換えれば、次ホップ・ルータ、次ホップのファイアウォールまたは宛先サブネットのゲートウェイ・デバイス)の名前を含む、保存ルーティング・テーブル;(b)各自のタスク・ルーティング・テーブルであって、各タスク・ルーティング・テーブル内の各宛先デバイスに関し、ジョブ名(言い換えれば、そのタスク・ルーティング・テーブルに現在アクセスしている人の名)、宛先デバイス名、宛先ネットワーク名、宛先サブネット名、よく「宛先ゲートウェイ」と称される次ホップ(言い換えれば、次ホップ・ルータ、次ホップのファイアウォールまたは宛先サブネットのゲートウェイ・デバイス)の名前を含む、タスク・ルーティング・テーブル;(c)各自の保存インターフェース・テーブルであって、現在アクセスされているルータまたはゲートウェイ・デバイス名、当該ルータまたはゲートウェイ・デバイス向けのインターフェース名(例えば、ETH0、ETH1、FastETH0、FastETH1など)、当該ルータまたはゲートウェイ・デバイス向けのインターフェースIPアドレス、および当該ルータまたはゲートウェイ・デバイス向けのインターフェース・サブネット・マスク(同じサブネットにある他のIPアドレスを特定する)を含む、保存インターフェース・テーブル;(d)各自のタスク・インターフェース・テーブルであって、カレント・ジョブのID(すなわち、そのタスク・ルーティング・テーブルに現在アクセスしている人の名)、宛先デバイス名、宛先ネットワーク名、宛先サブネット名、および、宛先デバイスに向けての、よく「宛先ゲートウェイ」と称される次ホップ(すなわち、次ホップ・ルータ、次ホップのファイアウォールまたは宛先サブネットのゲートウェイ・デバイス)の名前を含む、タスク・インターフェース・テーブル。さらにプログラム330は、好適なパスにおける各ファイアウォールに関し、ファイアウォール48および248それぞれの通過が許可されるメッセージ・フローに関するルールのリスト52および252を読み取って記録するが、これには、各方向の送信元IPアドレスおよびポート、宛先IPアドレスおよびポート、およびプロトコルの許可される組み合わせが含まれる。
【0020】
通信が失敗したのは、ルータがこの通信を受信したものの宛先デバイスに向けての適切な次ホップを記載しておらず(そしてこの通信を適切な次ホップ・ルータへ転送しない)、好適なパス内に誤設定されていたことが原因であったような場合、プログラム330は、その誤設定されたルータを含んだ上述の順方向の分析を中止する。その後プログラム330は、宛先デバイスから始めてホップごとに、元の送信元デバイスへ向かって進みながら、上述の分析を逆方向に繰り返す。通常、少なくとも一方向(この場合は逆方向)については、全ルータが、好適ルートにおける各自の次ホップ群を全てリストアップするように適切に設定される。逆順序の次ホップ群のリストが好適ルートに適合すると仮定すると、プログラム330は、この逆順序の次ホップ群のリストと、正順序の次ホップ群のリストとを比較すれば、誤設定されたルータのルーティング・テーブルにおける誤りに気付く。例を挙げると、(a)ルータ36−1乃至36−N(この場合N=5)がこの順序で、送信元デバイス20から宛先デバイス220への好適な/唯一のルートであり;(b)ルータ36−2が、(順方向に)宛先デバイス220へ向かう次ホップとして、ルータ36−3ではなくルータ37を記載しており、そのためデバイス20からデバイス220へ向かう通信がルータ36−2にて失敗し;(c)ルータ36−3は、(逆方向に)送信元デバイス20へ向かう次ホップとしてルータ36−2を記載しており、デバイス220からデバイス20へ向かう通信は成功したと仮定すると、その結果、プログラム330は、反対方向で成功したルートに一致/適合させるには、ルータ36−2にあって宛先デバイス220に向けてのルーティング・テーブル・エントリをルータ36−3に変更する必要があると判断する。
【0021】
こうしてプログラム330は、失敗した通信の原因として、ルーティング・テーブルが宛先デバイスへの好適ルート内の次ホップを指定していなかったルータを特定する。次にプログラム330は、既存ルーティング・テーブルが宛先デバイスへの好適ルート内の次ホップを指定していなかったルータに関し、「テスト」ルーティング・テーブルを生成する。「テスト」ルーティング・テーブルは、宛先デバイスへの好適ルート内の次ホップを記載している。その後プログラム330は、既存ルーティング・テーブルの代わりに「テスト」ルーティング・テーブルを用いて、好適ルート内の全ルータに関し上述の分析を両方向に繰り返し、ルータの全てが各自の次ホップとして好適ルート内の次ルータを記載しているかどうかを判断する。記載していない場合には、プログラム330は、宛先デバイスへの好適ルート内の次ホップを記載していないルータに関し、上述の説明と同様に、さらなる「テスト」ルーティング・テーブルを生成して使用する。「テスト」ルーティング・テーブルがない場合には既存ルーティング・テーブルに基づいて、またはプログラム330が「テスト」ルーティング・テーブルを生成した場合には「テスト」ルーティング・テーブルに基づいて、好適ルート内の全ルータがその好適ルート内の次ホップを記載したら、プログラム330は、好適ルートを実現するのにそれぞれの「テスト」ルーティング・テーブルを必要とする各ルータと、好適ルートを実現するのにそれぞれのルーティング・テーブルに追加する必要のある「次ホップ」とについて、管理者に通知する。それに応えて管理者は、そのようなルータのルーティング・テーブルを手動で更新して、あるいはルーティング・テーブルを更新するようプログラム330に指示して、既存ルーティング・テーブルを「テスト」ルーティング・テーブルに置き換えることができる。あるいはプログラム330は、「テスト」ルーティング・テーブルがない場合には既存ルーティング・テーブルに基づいて、またはプログラム330によって「テスト」ルーティング・テーブルが生成された場合には「テスト」ルーティング・テーブルに基づいて、好適ルート内の全ルータがその好適ルート内の次ホップを記載したら、ルーティング・テーブルを自動的に更新して既存ルーティング・テーブルを「テスト」ルーティング・テーブルに置き換えることもできる。
【0022】
宛先デバイスへの好適ルート内のルータのルーティング・テーブルから得られる次ホップ情報には、好適ルート内の1つ以上のファイアウォールが含まれるとよい。上記の情報を用いて、プログラム330は、もしあれば送信元コンピュータのファイアウォール、ならびにもしあれば宛先コンピュータのファイアウォールを含めた、好適ルート内の全てのファイアウォールを、特定する。次にプログラム330は、これらのファイアウォールにログオンし、これらのファイアウォールの、許可メッセージ・フローに関するルールを取得して、これらのファイアウォールが、失敗した通信のメッセージ・パケットのメッセージを許可するかどうか、言い換えれば、失敗した通信の送信元IPアドレスおよびポート、宛先IPアドレスおよびポートならびにプロトコルについて許可されるメッセージ・フローを含むかどうかを判断する。そうでない場合には、プログラム330は、失敗した通信のメッセージ・パケットのフローを許可しないファイアウォールを、潜在的に問題のあるものとして特定する。さらに、プログラム330は、失敗した通信を許可メッセージ・フローに関する既存ルールが許可しなかったファイアウォールについて、許可メッセージ・フローに関するルールの新たな「テスト」リストを生成する。この「テスト」リストは、失敗した通信を許可メッセージ・フローに関する既存ルールが許可しなかったファイアウォールにある、許可メッセージ・フローに関するルールの既存リストのコピーであり、追加として「テスト」ルールを含めたものである。「テスト」ルールは、失敗した通信のフローがファイアウォールを通過することを許可する。その後プログラム330は、好適ルート内の全ファイアウォールについて上述の分析を繰り返し、失敗した通信のフローを許可するルールをファイアウォール全てが含むかどうかを判断するのであるが、この繰り返し分析では、既存リストの代わりに「テスト」リストを使用する。プログラム330はさらに、失敗した通信を許可するルールを含まなかったどのファイアウォールについても管理者に通知し、このファイアウォールが、失敗した通信を許可するようなルールを備える必要があるかどうかを管理者に問い合わせる。当該ファイアウォールがこのメッセージ・フローを許可する必要がなければ、そのファイアウォールは適切であって、変更される必要はない。許可する必要がある場合には、管理者は、ルールの既存リストをルールの「テスト」リストに置き換えるようにファイアウォールを再設定すること、あるいは既存リストを「テスト」リストに置き換えるようプログラム330に要求することができる。
【0023】
図2乃至7は、プログラム330の機能および動作をさらに詳しく示す。ステップ400にて、プログラム330は、管理者から、失敗した通信の送信元IPアドレスおよび宛先IPアドレスのIDを受信する(あるいは、送信元デバイスまたは通信失敗のメッセージを生成したルータから送信される通信失敗のメッセージから、この情報を自動的に受け取ることもできる)。これに応えて、プログラム330は、送信元デバイスのアイデンティティ(例えば送信元コンピュータ20)と宛先デバイスのアイデンティティ(例えば、宛先コンピュータ220)とをサーバ(図示せず)から判断する(ステップ402)。次にプログラム330は、送信元デバイスおよび宛先デバイスに接続しようとする(判断410)。プログラム330が接続することのできる送信元デバイスおよび宛先デバイスの各々について(判断410、はいの分岐)、プログラム330は、デバイスのルーティングおよびインターフェース設定をフェッチする(ステップ414)。次に、プログラム330が送信元デバイスに接続することができた場合には、プログラム330は、送信元デバイスに関するルーティングおよびインターフェース設定情報と送信元デバイスのデータベースとが一致するかどうかを判断し、プログラム330が宛先デバイスに接続することができた場合には、プログラム330は、宛先デバイスに関するルーティングおよび設定情報と宛先デバイスのデータベースとが一致するかどうかを判断する(判断420)。一致する場合(判断420、はいの分岐)、次いでプログラム330は、インターフェースおよびルーティング情報がデバイスと一致した(プログラム330が接続し取り出すことができた)送信元デバイスおよび宛先デバイスの各々のルーティングおよび設定情報を構文解析する(ステップ430)。送信元デバイスのルーティングおよびインターフェース設定情報が送信元デバイスのデータベースと一致しない場合(判断420、いいえの分岐)、次いでプログラム330は、送信元または宛先あるいはその両方のデバイスのデータベースを更新してルーティングおよびインターフェース情報と一致するようにし(ステップ424)、その後ステップ430へ進んでルーティングおよびインターフェース情報を構文解析する。
【0024】
再び判断410のいいえの分岐を参照すると、この場合プログラム330は、送信元デバイスおよび宛先デバイスのいずれかあるいは両方に対し、接続してルーティングおよびインターフェース設定情報を取り出すことができなかった。そのような場合(判断410、いいえの分岐)、プログラム330は、送信元デバイスおよび宛先デバイスから入手可能な範囲で、ルーティングおよびインターフェース情報を取り出す(ステップ450)。次に、プログラム330は、送信元デバイスおよび宛先デバイスから全てのルーティングおよびインターフェース情報を取り出せたかどうかを判断する(判断460)。プログラム330が送信元デバイスおよび宛先デバイスからルーティングおよびインターフェース情報を何ら取り出すことができなければ(判断460、いいえの分岐)、プログラム330は、ルーティングおよびインターフェース情報を手動で入力するように管理者に問い合わせる(ステップ464)。これに応えて、管理者は、ルーティングおよびインターフェース情報を手動で入力する。再び判断460を参照すると、はいの分岐となるのは、プログラム330が、全てのルーティングおよびインターフェース情報を送信元デバイスおよび宛先デバイスから取り出すことができた場合である。そのような場合、プログラム330は、取り出したルーティングおよびインターフェース情報を表示し(ステップ470)、このルーティングおよびインターフェース情報を使用したいかどうか管理者に問い合わせる(判断474)。否定応答であった場合、プログラム330は、ステップ464へ進み、管理者に対し、管理者が使用したい他の何らかのルーティングおよびインターフェース情報を入力するよう要求する。再び判断474のはいの分岐、またはステップ464の終了後を参照すると、この場合管理者は、送信元デバイスおよび宛先デバイスに関する当該ルーティングおよびインターフェース情報に満足している。そのような場合、プログラム330はステップ430へ進み、ルーティングおよびインターフェース設定情報を構文解析する。
【0025】
判断500にて、プログラム330は、「カレント・デバイス」の分析を開始する。ステップ500乃至524の最初のイテレーション中、カレント・デバイスとは送信元デバイスである。(ステップ500乃至524の次のイテレーション中は、「カレント」デバイスは、ステップ500乃至524の前のイテレーションにとっての次ホップ・デバイスになる。)カレント・デバイスが送信元デバイスである場合(判断500、いいえの分岐)、次いでプログラム330はその送信元デバイスのルーティング・テーブルを調べて、宛先デバイスへの特定の好適ルートがあるかどうかを判断する(判断510)。特定の好適ルートがない場合(判断510、いいえの分岐)、次いでプログラム330は、送信元デバイスが、宛先デバイスへのデフォルト好適ルートを有しているかどうかを判断する(判断514)。デフォルト好適ルートは、宛先デバイスへ向かう次ホップを含む。カレント・デバイスが宛先デバイスであるため、あるいはデフォルト好適ルートを誤って除外してしまったために、送信元デバイスがデフォルト好適ルートを有していない場合(判断514、いいえの分岐)、その後プログラム330は、以下に記載するように、カレント・デバイスから始まる逆向きのパス分析を開始する。送信元デバイスがデフォルト好適ルートを有している場合(判断514、はいの分岐)、または送信元デバイスが宛先デバイスへの特定のルートを有しているという判断510の後、次にプログラム330は、次ホップの特定、好適ルートおよび送信元デバイスのインターフェース情報を、タスク・データベースへ挿入する(ステップ520)。次にプログラム330は、(カレント・デバイスにとっての)次ホップ・デバイスを、カレント・デバイスとして設定する(ステップ524)。次にプログラム330は、判断410およびステップ414乃至430へと進み、先に説明したように、今のカレント・デバイスに関するルーティングおよびインターフェース情報を取り出そうとし、その後、今のカレント・デバイスついてステップ500乃至524を繰り返す。好適ルート内のルータ数にほぼ相当する数のステップ500乃至524のイテレーションが実行されたら、「カレント」デバイスが宛先デバイスになる(判断500、はいの分岐)。その時点で、プログラム330は好適なパス内のルータ分析を終わりにして(ステップ502)、ステップ600へ進む。
【0026】
カレント・デバイスが宛先デバイスであるステップ502のイテレーションの後、あるいはカレント・デバイスから宛先デバイスへの特定ルートもしくはデフォルト・ルートがない場合には、プログラム330は、カレント・デバイスから元の送信元デバイスに向けて逆方向にルータの判断を開始する(ステップ600)。次にプログラム330は、元の送信元デバイスを新たな宛先デバイスとして設定する(ステップ602)。次にプログラム330は、好適なパス内の各デバイスについて、カレント・デバイスから始めて逆順序に、上述のステップ410’乃至474’および500’乃至524’を(上述の正順序でのステップ410乃至474のイテレーションにおいて定められたように)実施する。ステップ410’乃至474’の分析において「カレント」デバイスの順序が逆になる点を除き、ステップ410’乃至474’はステップ410乃至474の各々と同じものである。ステップ500’乃至524’の分析において「カレント」デバイスの順序が逆になる点を除き、ステップ500’乃至524’はステップ500乃至524の各々と同じものである。従って判断500’において、プログラム330が、カレント・デバイスは元の送信元デバイスであるかどうかを判断し、そうである場合には、逆順序でのパスの分析が(正順序において最後に分析されたデバイスから)元の送信元デバイスまで完了されていることになる。
【0027】
次に、プログラム330は、元の送信元デバイスから元の宛先デバイスまで(正順序の)ルータの完全なパスが存在するかどうか、言い換えれば、そのパス内の全ルータが、好適ルートに従って宛先デバイスまで至る次ホップを記載したルーティング・テーブルを有しているかどうかを判断する(判断800)。次にプログラム330は、逆順序の、すなわち元の宛先デバイスから元の送信元デバイスへの完全なパスが存在するかどうかを判断する(判断810)。存在すれば(判断810、はいの分岐)、その後プログラム330は、正順序のパスと逆順序のパスとが、方向を除いて、同じであるかどうかを判断する(判断814)。同じであれば(判断814、はいの分岐)、そのときルーティング・テーブルは適正であって、更新する必要はない(ステップ816)。同じでない場合(判断814、いいえの分岐)、次いでプログラム330は、順方向のルータ群のリストを表示し、さらに逆方向のルータ群のリストを表示する(ステップ818)。プログラム330は、この2つのリストの差異、すなわち順方向のパスにはあって逆方向のパスにはないルータ、およびその反対のルータを、強調表示する(ステップ820)。プログラム330はさらに、いずれの方向についても、1つ以上のルータのルーティング・テーブルに対する変更を記載/特定して、順方向ルートおよび逆方向ルートを同じものとし、送信元ゲートウェイ・デバイス40にてあるいは送信元デバイスから宛先デバイスへのパス内の最初のルータにて示される好適ルートに対応させるようにする。
【0028】
再び判断800のいいえの分岐を参照すると、この場合、正順序の、すなわち元の送信元デバイスから元の宛先デバイスへの完全なパスは存在しない。そのような場合、プログラム330は、正順序の次ホップのIDと元の宛先IPアドレスである宛先IPアドレスとを各々が備えているルータ群のリストを、送信元デバイスから、元の宛先デバイスへ向かう途中でステップ524にて特定された最も下流のルータまで、コンパイルする(ステップ802)。
【0029】
再び判断810のいいえの分岐を参照すると、この場合、逆順序の、すなわち元の宛先デバイスから元の送信元デバイスへの完全なパスはない(判断810、いいえの分岐)。そのような場合、次いでプログラム330は、逆順序の次ホップのIDと元の送信元IPアドレスである宛先IPアドレスとを各々が備えているルータ群のリストを、ステップ524にて特定された最も下流のデバイスから元の送信元デバイスまで、コンパイルする(ステップ822)。
【0030】
ステップ802またはステップ822のいずれかを終えると、プログラム330は、ルータ群のリストにあるルータを逆向き/反対順にし(ステップ840)、タスク・データベース内のリストにある(判断844の最初のイテレーション中はパス内の最初のルータの)名称および宛先ゲートウェイ/次ホップ・ルータと、上記反対順のルータ群のリストにあるカレント・ルータの名称および宛先ゲートウェイ/次ホップ・ルータとが一致するかどうかを判断する(判断844)。一致する場合(判断844、はいの分岐)、次いでプログラム330は、カレント・ルータの名称を、表示するルータのリストへ追加する(ステップ846)。次に、プログラム330は、反対順のリストにさらなるルータがあるかどうかを判断する(判断848)。さらなるルータがある場合(判断848、はいの分岐)、次いでプログラム330は、反対順のリスト内の次ルータをカレント・ルータとし(ステップ850)、折り返して判断844に戻り上述のステップ844、846および848を繰り返す。再び判断844のいいえの分岐を参照すると、この場合、タスク・リストから得られる名称および宛先ゲートウェイ/次ホップ・ルータと、反対順のルータのリストにあるカレント・ルータの名称および宛先ゲートウェイ/次ホップ・ルータとが一致しない。そのような場合、プログラム330は、表示するルータのリストに、タスク・データベースから得られる次ホップ・ルータの名称を追加し、その次ホップ・ルータは欠落しているものとしてマークする(ステップ854)。その後プログラム330は、反対順のリスト内の次ルータをカレント・ルータとし(ステップ850)、折り返して判断844に戻り上述のステップ844、846および848を今のカレント・ルータに関して繰り返す。プログラム330は、上述のステップ844乃至854を、反対順のリスト内の各ルータについて繰り返し(判断848、いいえの分岐)、その時点で、プログラム330は、表示するルータのリストにある各ルータを表示する(ステップ860)。
【0031】
宛先デバイスへのルートにあるルータ群のルーティング・テーブルから得られる次ホップ情報には、好適ルートにおける1つ以上のファイアウォールが含まれることがある(判断900)。プログラム330は、もしあれば送信元コンピュータのファイアウォールと、もしあれば宛先コンピュータのファイアウォールとを含めた、好適ルート内の全ファイアウォールを特定する(ステップ902)。次にプログラム330は、これらのファイアウォールにログオンし、これらのファイアウォールについて許可メッセージ・フローのルールを入手し(ステップ908)、これらのファイアウォールが、失敗した通信のメッセージ・パケットの通過を許可するかどうかを判断する(判断910)。許可しない場合(判断910、いいえの分岐)、次いでプログラム330は、失敗した通信のメッセージ・パケットのフローを許可しないファイアウォールを、潜在的に問題のあるものとして特定し、この潜在的な問題について通知を作成する(ステップ916)。さらに、プログラム330は、失敗した通信を許可メッセージ・フローに関する既存ルールが許可しなかったファイアウォールについて、許可メッセージ・フローに関するルールの新たな「テスト」リストを生成する(ステップ920)。「テスト」リストは、失敗した通信を許可メッセージ・フローに関する既存ルールが許可しなかったファイアウォールにある、許可メッセージ・フローに関するルールの既存リストのコピーであり、追加として「テスト」ルールを含めたものである。「テスト」ルールは、失敗した通信のフローがファイアウォールを通過することを許可する。その後、プログラム330は、好適ルート内の全ファイアウォールについて上述の分析を繰り返し(ステップ902、908、判断910、ステップ916およびステップ920)、失敗した通信のフローを許可するルールをファイアウォール全てが含むかどうかを判断するのであるが、この繰り返し分析では、既存リストの代わりに「テスト」リストを使用する。ステップ916にて、プログラム330はさらに、失敗した通信を許可するルールを含まなかったどのファイアウォールについても管理者に通知し、このファイアウォールが、失敗した通信を許可するようなルールを備える必要があるかどうかを管理者に問い合わせる。当該ファイアウォールがこのメッセージ・フローを許可する必要がなければ、そのファイアウォールは適切であって、変更される必要はない。許可する必要がある場合には、管理者は、そのファイアウォールを設定するか、またはファイアウォールを設定するようプログラム330に通知して、ルールの既存リストをルールの「テスト」リストに置き換えること、あるいは既存リストを「テスト」リストに置き換えるようプログラム330に要求することができる(ステップ930)。
【0032】
プログラム330は、磁気テープまたはディスク、光媒体、DVD、半導体メモリ、メモリ・スティックなどのコンピュータ可読媒体350からサーバ300へロードすることができ、あるいはTCP/IPアダプタ・カード360を介してインターネットからダウンロードすることができる。
【0033】
上記に基づき、ネットワーク通信における障害を判断するシステム、方法およびプログラムを開示してきた。一方、本発明の範囲から逸脱することなく、数々の変更および代替を行なうことが可能である。従って本発明は、限定ではなく例示として開示されてきたものであって、本発明の範囲を判断するには、以下の請求項を参照する必要がある。

【特許請求の範囲】
【請求項1】
送信元デバイスから宛先デバイスへの通信障害の原因を判断する、コンピュータ実装される方法であって、前記発信元デバイスから前記宛先デバイスへのルートは、正順序のルータの列を含み、前記方法は、
前記送信元デバイスから前記宛先デバイスへ向かって前記正順序の前記ルータの列の最初となるルータ群を1つ以上判断するステップであって、前記最初のルータ群のうちの最後のルータは、前記宛先デバイスへ向かって前記正順序の前記列中の次ルータを指定しない、判断するステップと、
前記宛先デバイスから前記発信元デバイスへ向かって逆順序に、前記ルータの列を判断するステップと、
前記逆順序のルータの列から、前記最初のルータ群の前記最後のルータが前記宛先デバイスへ向かって前記正順序でその次にくる次ルータとしてどのルータを指定すべきかを判断し、前記最初のルータ群の前記最後のルータが前記宛先デバイスへ向かって前記正順序でその次にくる次ルータとしてどのルータを指定すべきかについて通知を送信するステップと、
を含む、コンピュータ実装される方法。
【請求項2】
正順序の前記列の前記1つ以上の最初のルータ群を判断する前記ステップは、一部分として、前記送信元デバイスに対し、前記宛先デバイスへ向かって次の次ルータについて問い合わせるステップと、前記送信元デバイスの前記次ルータに対し、前記送信元デバイスの前記次ルータの、前記宛先デバイスへ向かって次の次ルータについて問い合わせるステップとを含み、
前記宛先デバイスから前記送信元デバイスへ向かって前記逆順序で前記ルータの列を判断する前記ステップは、一部分として、前記宛先デバイスに対し、前記送信元デバイスへ向かって次の次ルータについて問い合わせるステップと、前記宛先デバイスの前記次ルータに対し、前記宛先デバイスの前記次ルータの、前記送信元デバイスへ向かって次の次ルータについて問い合わせるステップとを含む、
請求項1に記載のコンピュータ実装される方法。
【請求項3】
前記好適ルートにおけるファイアウォールを判断し、前記送信元デバイスから前記宛先デバイスへの前記メッセージのフローが前記ファイアウォールを通過することを許可するルールを前記ファイアウォールが含むかどうかを判断し、許可するルールを含まない場合には、前記送信元デバイスから前記宛先デバイスへの前記メッセージのフローが前記ファイアウォールを通過することを許可するルールを前記ファイアウォールが含まないという通知を生成するステップをさらに含む、
請求項1に記載のコンピュータ実装される方法。
【請求項4】
方法請求項1乃至3のいずれかによる前記方法の前記ステップ全てを実行するようになっている手段を含む、システム。
【請求項5】
コンピュータ・プログラムであって、前記コンピュータ・プログラムがデータ処理デバイスにて実行されると、方法請求項1乃至3のいずれかによる前記方法の前記ステップを実行するように特になっている命令を含む、コンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2011−522477(P2011−522477A)
【公表日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2011−511004(P2011−511004)
【出願日】平成21年5月27日(2009.5.27)
【国際出願番号】PCT/EP2009/056463
【国際公開番号】WO2009/144250
【国際公開日】平成21年12月3日(2009.12.3)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】