(57)【特許請求の範囲】
【請求項１】
複数の経路を含む通信ネットワーク上に設けられ、通信制御のための経路情報を管理する経路制御装置において、
前記ネットワーク上の第１の経路に関する異常を検出する検出手段と、
前記第１の経路に異常が生じた時、前記ネットワーク上の他の経路制御装置に、該第１の経路を回避するように経路情報を更新するよう指示し、代替となる第２の経路を探索させる指示手段と、
前記第２の経路の探索結果を示す情報を受信する受信手段と、
前記異常が復旧した場合に、前記探索結果の情報に基づいて前記他の経路制御装置に復旧したことを示す情報を送信する送信手段と、
を備えることを特徴とする経路制御装置。
【請求項２】
前記指示手段は、前記他の経路制御装置のアドレス情報を連絡先として格納する緊急連絡表を保持することを特徴とする請求項１記載の経路制御装置。
【請求項３】
前記指示手段は、前記他の経路制御装置にエージェントプロセスを送付して、前記第２の経路を探索させることを特徴とする請求項１記載の経路制御装置。
【請求項４】
複数の経路を含む通信ネットワーク上に設けられ、通信制御のための経路情報を管理する経路制御装置において、
前記ネットワーク上の第１の経路に関する異常通知を受信する受信手段と、
前記異常通知に基づいて、前記第１の経路を回避するように経路情報を更新し、代替となる第２の経路を探索する探索手段と、
前記第２の経路が見つかった時、代替経路が設定されたことを前記異常通知の送信元の経路制御装置に通知する通知手段と、
前記第１の経路に関する異常が復旧した時、前記第２の経路に関する通知に基づいて、前記送信元の経路制御装置から前記異常が復旧したことを示す情報を受信する受信手段と、
を備えることを特徴とする経路制御装置。
【請求項５】
前記復旧したことを示す情報に基づいて、前記第１の経路に関する異常が発生する前の状態に経路情報を戻す復帰手段をさらに備えることを特徴とする請求項４記載の経路制御装置。
【請求項６】
前記探索手段は、他の経路制御装置と経路情報を交換することにより、前記第１の経路に関する経路情報を更新することを特徴とする請求項４記載の経路制御装置。
【請求項７】
前記受信手段は、前記異常を知らせるエージェントプロセスを受信し、前記探索手段は、該エージェントプロセスが持っている前記第１の経路の識別情報を参照して、前記第２の経路を探索することを特徴とする請求項４記載の経路制御装置。
【請求項８】
前記第２の経路が見つかったかどうかを示す情報を前記エージェントプロセスに設定して、送信元の経路制御装置に送り返す通知手段をさらに備えることを特徴とする請求項７記載の経路制御装置。
【請求項９】
複数の経路を含む通信ネットワーク上の経路情報を管理する方法において、
前記ネットワーク上の第１の経路に関する異常を検出し、
前記第１の経路に異常が発生した時、前記ネットワーク上の他の装置に、該第１の経路を回避するように経路情報を更新するよう指示し、代替となる第２の経路を探索させ、
前記第２の経路の探索結果を示す情報を受信し、
前記異常が復旧した場合に、前記探索結果の情報に基づいて前記他の装置に復旧したことを示す情報を送信する、
ことを特徴とする経路制御方法。
【請求項１０】
複数の経路を含む通信ネットワーク上の経路情報を管理する方法において、
前記ネットワーク上の第１の経路に関する異常通知を受信し、
前記異常通知に基づいて、前記第１の経路を回避するように経路情報を更新し、代替となる第２の経路を探索し、
前記第２の経路が見つかった時、代替経路が設定されたことを前記異常通知の送信元の装置に通知し、
前記第１の経路に関する異常が復旧した時、前記第２の経路に関する通知に基づいて、前記送信元の装置から前記異常が復旧したことを示す情報を受信する、
ことを特徴とする経路制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク状に構成された通信路や交通路等の経路を動的に制御する経路制御装置およびその方法に関する。
【０００２】
【従来の技術】
近年、コンピュータ資源の分散化に伴って、複数の通信ネットワークを結合したグローバルなコンピュータ・ネットワークが構築されている。このような大規模なネットワークにおいては、円滑な通信環境を提供することがますます重要になっており、従来より経路情報を用いた通信制御が行われている。
【０００３】
経路情報とは、ネットワークに送出されたデータのパケットを、どのネットワークに転送するのか、転送するとしたらどこを中継するのかを判断するための基本となる重要な情報である。経路情報は、ネットワークを中継する機器（ゲートウェイ）の中で、経路表（ルーティング・テーブル）という形で保持されている。
【０００４】
経路表は、終点アドレスと、そこへデータのパケットを届けるために中継すべき隣接ゲートウェイのアドレスの対になった表である。各ゲートウェイは、データのパケットが届くたびに、経路表から次のゲートウェイのアドレスを求め、そのゲートウェイにパケットを転送する。こうして、目的の場所へパケットが届けられる仕組みになっている。
【０００５】
経路情報は各ゲートウェイで保持されるが、その内容はネットワーク全体で一貫性をもって管理されなければならない。現在の大規模なネットワーク環境では、障害や工事、保守点検などは日常的に発生している。さらに、ネットワークに新たな機器や端末が接続されるなど、ネットワークの接続状態は常に変化している。この変化に伴って経路情報を更新しなければならないが、経路情報を人手で設定したり、どこかで全体を集中管理することは現実的に不可能である。
【０００６】
そこで、経路情報を保守・配付するためのプロトコルが決められており、ポピュラーなものとしては、ＲＦＣ（Ｒｅｑｕｅｓｔｓ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ  ）１０５８に定められたＲＩＰ（Ｒｏｕｔｉｎｇ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）が存在する。ＲＩＰはインターネットのＩＰプロトコルの経路制御に用いられているほか、Ｎｏｖｅｌｌ社のネットワークＯＳであるＮｅｔ  ＷａｒｅのＩＰＸ／ＳＰＸプロトコルや、Ａｐｐｌｅ  社のＭａｃｉｎｔｏｓｈ  で採用されているＡｐｐｌｅ  Ｔａｌｋプロトコルの経路制御にも、ほぼ同様の形式が用いられている。
【０００７】
【発明が解決しようとする課題】
しかしながら、上述した従来の経路情報制御には次のような問題がある。
経路情報を保持・配付しているネットワーク機器に障害が発生した場合、その保持・配付作業にも障害が発生する。最悪の場合、経路情報の配布が停止し、ネットワーク全体の通信が停止状態になることもある。現状では、機器に自立的に復旧する能力が無いため、管理者が手作業で故障した機器を復旧するまで、ネットワークが混乱状態や停止状態のままになってしまう。
【０００８】
現状では、経路情報を１箇所で集中的に管理することはできず、また、それを人手で設定することもできない。このため、ネットワーク上の故障した機器を迂回して代替経路をすぐに確保したり、ネットワーク上のパケットの流れを制限するといったことを自動的に行う有効な方法はない。
【０００９】
したがって、ネットワークが一時的に高負荷になった場合や、障害などでネットワークそのものがダウンした場合、現状では管理者が管理ツールや機器を用いて、手作業でネットワークの状況を調べて対処していることが多い。このとき、ネットワークは異常な状態にあるので、平常時であれば有効に動作する管理ツールや管理機器であっても、ネットワーク上の異常通信の負荷などによってその動作が妨げられ、結果的に対処が遅れる可能性が高い。
【００１０】
本発明は、ネットワーク状に構成された通信路等の経路を自動的に制御して、ネットワーク障害に対する対処・復旧等を行う経路制御装置およびその方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
図１は、本発明の経路制御装置の原理図である。図１において、情報処理装置１および４は、複数の経路を含む通信ネットワーク上に設けられ、経路制御装置として動作する。
【００１２】
情報処理装置１は、検出手段２と指示手段３を備える。検出手段２は、上記ネットワーク上の第１の経路に関する異常を検出する。指示手段３は、第１の経路に異常が発生した時、上記ネットワーク上の他の情報処理装置４に、第１の経路に関する局所的な経路情報を更新するよう指示し、早めに代替となる第２の経路を探索させる。
【００１３】
第１の経路に関する異常とは、通信負荷の増大（輻湊）、通信障害、経路上の機器の故障、不正な通信など、通常の通信が妨げられる状態を指す。情報処理装置１の近くを経由する通信をモニタしている検出手段２がこのような異常を検出すると、それを指示手段３に伝える。
【００１４】
指示手段３は、第１の経路が完全に使えなくなる前にその代替となる第２の経路を探すよう、ネットワークを介して情報処理装置４に指示する。この指示を受けて、情報処理装置４は第１の経路に関する経路情報を更新し、代替経路があるかどうかを調べる。
【００１５】
経路情報としては、例えばＲＩＰに基づく経路表が用いられる。経路表には、通信経路上のすべての機器の接続情報が記載されているわけではなく、例えば情報処理装置４から離れたある目標装置にデータを送る場合に、差し当たってどの隣接機器（ルータ等）に送ればよいかといった情報が格納される。したがって、経路情報は、情報処理装置４の近傍の局所的な送信先を記述している。
【００１６】
経路表を用いた場合、その情報をＲＩＰに基づいてネットワーク上の隣接機器間で交換することにより、更新することができる。本発明では、情報処理装置４が指示手段３からの指示に従って、経路情報を更新する。
【００１７】
このとき、第１の経路に含まれる隣接機器を送信先からはずしておけば、別の隣接機器が自動的に新たな送信先として登録される可能性がある。このような代替送信先が見つかれば、それを含む経路が代替経路となる。
【００１８】
情報処理装置４は、受信手段５、探索手段６、および記憶手段７を備える。受信手段５は、上記ネットワーク上の第１の経路に関する異常通知を受信する。探索手段６は、その異常通知に基づいて、記憶手段７内に記憶された第１の経路に関する局所的な経路情報を更新し、早めに代替となる第２の経路を探索する。
【００１９】
受信手段５は、例えば情報処理装置１から第１の経路上に異常が発生したことを通知されると、それを探索手段６に伝える。これを受けて、探索手段６は、例えば上述の経路表に記述された経路情報をＲＩＰに基づいて更新し、代替送信先を探す。そして、代替送信先が見つかれば、それを第２の経路に関する経路情報として登録する。
【００２０】
また、情報処理装置４は、交通機関のネットワークなど、通信ネットワーク以外の任意のネットワークの経路情報を管理することもできる。この場合、情報処理装置４をネットワークから切り離して設けることができ、受信手段５は必ずしも必要ではない。記憶手段７は、そのネットワークの局所的な経路情報を記憶する。探索手段６は、ネットワーク上の第１の経路に異常が発生した時、該異常が発生した場所の近傍の経路情報を変更して、早めに代替となる第２の経路を探索する。
【００２１】
この場合の経路情報としても、通信ネットワークにおける経路表と同様に局所的な情報を用いる。例えば、ネットワーク上の各ノード毎に、目的地までの経路の情報として、隣接する次の移動先ノードを記憶しておく。そして、第１の経路に異常が発生した時、探索手段６が、その場所の近傍のいくつかのノードに対応する経路情報を更新して、代わりとなる移動先ノードを探す。そのような移動先ノードが見つかれば、第２の経路に関する経路情報として登録される。
【００２２】
このような経路制御装置を用いれば、ネットワークが一時的に高負荷になった場合や、ネットワークそのものがダウンした場合などに、ネットワーク自身が自動的に迂回経路を設定することができる。管理者はネットワークの状況を調べて代替経路を設定する必要がなく、また、各経路の代替経路をあらかじめ登録しておく必要もない。
【００２３】
例えば、図１の情報処理装置１は、実施形態の図２におけるルータ４に対応し、情報処理装置４は、ルータ１、ルータ２、ルータ３に対応する。また、例えば、検出手段２は図７における通信ポート制御部４２に対応し、指示手段３と探索手段６は制御エージェント部４１に対応し、受信手段５は図１１における通信ポート５８に対応し、記憶手段７はメモリ５７に対応する。
【００２４】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
図２は、実施形態のコンピュータ・ネットワークを示している。図２のコンピュータ・ネットワークは、ネット１、ネット２、ネット３、ネット４の４つのネットワークを含む。ネット１とネット２はルータ３を介して接続されており、ネット２とネット３はルータ４を介して接続されている。ネット３とネット４はルータ２を介して接続されており、ネット４とネット１はルータ５を介して接続されている。これらのルータは、ネットワーク間のゲートウェイの役割を果たしている。
【００２５】
また、ネット３にはワークステーション１１が接続されており、ネット２には管理サーバ１２が接続されている。さらに、ネット２にはルータ１を介してメインフレーム１３が接続されている。このようなネットワークにおいて、ユーザがワークステーション１１からメインフレーム１３を利用しているとする。
【００２６】
現在ポピュラーに用いられているＲＩＰ等では、データパケットが終点に到達するまでに通過するゲートウェイの数（中継数）を基準にして経路の選択を行っている。例えば、ワークステーション１１からメインフレーム１３への通信経路としては、
ワークステーション１１＝＝ネット３＝＝ルータ４＝＝ネット２＝＝ルータ１＝＝メインフレーム１３
が採用される。
【００２７】
この状態で利用中にルータ４が不調になったとする。このとき、図２では、
ワークステーション１１＝＝ネット３＝＝ルータ２＝＝ネット４＝＝ルータ５＝＝ネット１＝＝ルータ３＝＝ネット２＝＝ルータ１＝＝メインフレーム１３という迂回経路が存在する。この場合、主としてルータ１、ルータ２、ルータ３、およびルータ４が経路制御装置の機能を果たし、この迂回経路を自動的に経路表に設定する。
【００２８】
各ルータは、それぞれの経路表のほかに障害発生時の通知先ルータを管理する緊急連絡表を保持しており、これを参照しながら異常通知を行う。通知を受けたルータは、通常の経路表更新時以外のタイミングで、ＲＩＰに従って他のルータと経路情報を交換し、自ルータの経路表を更新する。この結果、異常ルータに代わる新たなルータが経路表に登録されれば、それを代替経路として設定する。
【００２９】
例えば、不調になったルータ４は、ネットワーク上で隣接するルータ１、ルータ２、ルータ３を通知先として管理しており、これらの各ルータに異常を通知する。通知を受けた各ルータは、ルータ４を除外してＲＩＰに基づいた経路表の更新を行い、次に中継数の少ない経路に属するルータを代替ルータとして登録する。
【００３０】
これにより、ルータ１の経路表にはルータ４の代わりにルータ３が登録され、ルータ２とルータ３の経路表にはルータ４の代わりにルータ５が登録される。ルータ５の経路表には、元々ルータ２とルータ３を結ぶ情報が設定されているので、上述のような迂回経路が自動的に確保されることになる。
【００３１】
代替経路が設定されたルータはそのことをルータ４に通知し、ルータ４は緊急連絡表内で、それらのルータに印を付けておく。これにより、代替経路が設定されたルータが、その設定に失敗したルータと区別される。また、ルータ４の経路表は更新されずに保存され、ルータ４の復旧時に再び使用される。
【００３２】
復旧時には、ルータ４は緊急連絡表を参照し、印の付けられたルータに復旧通知を行う。これを受けて、ルータ１、ルータ２、ルータ３は、それぞれの経路表を元の状態に再設定する。こうして、異常発生前のルータ４を経由する通信経路が再び使用可能となる。
【００３３】
上述のようなルータ間の経路制御情報の伝達は任意の通信処理により実現可能であるが、以下の実施形態では、一例としてリモートプログラミングに基づく言語であるテレスクリプト（Ｔｅｌｅｓｃｒｉｐｔ）による方法を用いることにする。
【００３４】
テレスクリプトによるリモートプログラミングにおいては、データを保持するプロセスの一種であるエージェント（Ａｇｅｎｔ  ）が用いられる。この場合には、各ユーザの監視要求情報を各エージェントに持たせることが可能であるため、複数のユーザの要求を独立に処理することができる。さらに、エージェントは自律的に機能して、処理が終了すれば自動的に消滅するため、不特定多数のユーザが利用するネットワーク上の処理に適している。
【００３５】
テレスクリプトによるリモートプログラミングについては、「リモートプログラミングの実施方法」（特願平６−１７９７６７、特開平７−１８２１７４）に詳述されているが、ここでその手法について説明する。
【００３６】
このリモートプログラミングは、複数の計算機システムを結ぶ通信ネットワーク上での処理を記述する方法の一種で、ネットワークを渡り歩く移動可能なプロセスであるエージェントと、エージェントが入ってくる固定プロセスであるプレイス（Ｐｌａｃｅ  ）により実現される。
【００３７】
図３は、プレイスの構成を示している。プレイスは、他のプロセスと識別可能なテレネーム（ｔｅｌｅｎａｍｅ）を持ち、任意有限個の子プロセスを持つことができる。また、プレイスは、自己および他のプロセスより参照可能な任意有限個のデータと、自己および他のプロセスより呼出し可能な任意有限個の手続きとを有する。
【００３８】
さらに、メインルーチンとして手続きｌｉｖｅを持ち、作成されたプレイスはｌｉｖｅを実行する。プレイスは、ｌｉｖｅが実行されている間だけ存在し、ｌｉｖｅが終了すると消滅する。プレイスが消滅すると、その子プロセスも終了し、消滅する。
【００３９】
図４は、エージェントの構成を示している。エージェントは、他のプロセスと識別可能なテレネームを持ち、あるプレイスの中の子プロセスとしてのみ存在する。また、エージェントは、自己および他のプロセスより参照可能な任意有限個のデータと、自己および他のプロセスより呼出し可能な任意有限個の手続きとを有する。
【００４０】
さらに、メインルーチンとして手続きｌｉｖｅを持ち、作成されたエージェントはｌｉｖｅを実行する。エージェントは、ｌｉｖｅが実行されている間だけ存在し、ｌｉｖｅが終了すると消滅する。エージェントの手続きｌｉｖｅの中でコマンドｇｏが実行されると、そのエージェントはネットワークを介して指定された行き先へ移動する。
【００４１】
図５は、コマンドｇｏによるオペレーションの例を示している。図５において、プレイス２１内のエージェント２２は、ｇｏの実行により、行き先のプレイス２４を指定するデータであるチケット（Ｔｉｃｋｅｔ）２３を得て、指定されたプレイス２４に移動する。
【００４２】
このとき、エージェント２２は、ｇｏによりｌｉｖｅの実行を一時中断し、保持したデータとともに凍結（圧縮）され、パック化される。そして、チケット２３に示されたプレイス２４に送られ、プレイス２４により受け入れをチェックされる。プレイス２４に受け入れられると、その中に子プロセスとして置かれた後、解凍（伸張）され、ｇｏの次のコマンドからｌｉｖｅの実行を再開する。
【００４３】
また、エージェントは、手続きｌｉｖｅの中で自己の置かれているプレイス内にある他のエージェントを求めるコマンドｍｅｅｔを呼出すことができる。コマンドｍｅｅｔの実行時には、エージェントは相手のエージェントを指定するデータであるペティション（Ｐｅｔｉｔｉｏｎ）を用いる。
【００４４】
図６は、コマンドｍｅｅｔによるオペレーションの例を示している。図６において、プレイス３１内のエージェント３２は、コマンドｍｅｅｔによりあるペティションを指定する。プレイス３１は、ペティションにより指定された条件に該当するエージェントを探す。そして、プレイス３１内に該当するエージェントがなければ、そのようなエージェントが入ってくるまで待つ。
【００４５】
プレイス３１内のエージェント３３がペティションの条件に該当すれば、プレイス３１は、エージェント３２が相互作用を希望していることをエージェント３３に伝える。そして、エージェント３３がエージェント３２の希望を受け入れる旨の戻り値を返すと、プレイス３１は、エージェント３３へのポインタをｍｅｅｔの戻り値としてエージェント３２に返す。その後、エージェント３２は、エージェント３３へ直接アクセスして、情報交換等を行うことが可能になる。
【００４６】
図７は、上述のようなリモートプログラミングの手法を図２のネットワークの経路制御に適用した場合の各ルータの概略構成を示している。図７のルータは、制御エージェント部４１、通信ポート制御部４２、および通信ポート部４３を備える。
【００４７】
通信ポート制御部４２は、通信に必要な経路表を作成・保持し、通信ポート部の制御を行う。通信ポート部４３は、通信ポート制御部４２や制御エージェント部４１からの指示で、通信ポートを制御し、データフローのモニタ等を行う。例えば、通信ポート制御部４２からは、通信を遮蔽するためのフィルタ設定やポートのモニタ等の指示が通信ポート部４３に送られ、通信ポート部４３は設定結果やフィルタ情報などが返される。
【００４８】
制御エージェント部４１は、管理者に代わってネットワークの通信経路を制御する制御プロセスである制御エージェントを生成し、適当なプレイス内で動作させる。制御エージェントはネットワーク上の他の機器に移動して、コマンドｍｅｅｔによりその機器内の制御エージェントと情報を交換することができる。制御エージェント部４１は、ネットワーク上で経路情報を保持・配付するゲートウェイ機器や末端のハブのような、各ネットワーク機器上に実装される。
【００４９】
制御エージェントの具体的な動作内容は次の通りである。
（１）障害時の迂回通信路（代替経路）の作成など、通信路の経路制御が基本動作である。このような場合、通信ポート制御部４２や通信ポート部４３の制御を行う。具体的には、通信ポート制御部４２に初期化や経路情報の設定等の指示を与え、設定結果や経路情報等を受け取る。また、通信ポート部４３にフィルタ設定やモニタ等の指示を与え、設定結果やフィルタ情報等を受け取る。
（２）通常時は、通信路をモニタして負荷状況をチェックしたり、定期的に他の通信機器の制御エージェントと通信を行って、緊急連絡表と呼ばれる緊急時の優先通信先アドレスを納めた表を保持・更新する。
（３）通信路が一度断たれた場合、管理者による誤接続や第三者による詐称接続を防ぐため、通信路が再び接続される時に、他の制御エージェントとの間で互いの機器の認証を行う。そして、認証確認後に通信路を復旧する。
【００５０】
制御エージェント部４１は、通信ポート制御部４２や通信ポート部４３が障害を起こした場合にも他の機器との連絡を行うことができるように、これらとはハードウェア的に独立していることが望ましい。
【００５１】
次に、図８から図１０までを参照しながら、制御エージェント部４１、通信ポート制御部４２、および通信ポート部４３が保持するデータの内容について説明する。これらのデータの使用方法については後述することにする。
【００５２】
図８は、制御エージェント部４１内に保持される緊急連絡表、制御エージェント自己情報、および認証用復号鍵のデータ構造を示している。緊急連絡表は、送信対象の数だけリスト形式で作成され、送信対象ルータのアドレス、送信対象ルータ用暗号鍵、対象フラグを含む。
【００５３】
緊急連絡表は、自ルータに障害が発生した場合、そのルータから中継回数が最小で到達できるルータのアドレスを、送信対象ルータのアドレスとして格納する。実際には、自ルータと同じネットに属している他のルータまでの中継回数が最小であるはずなので、それらが通知すべき送信対象ルータとなる。
【００５４】
つまり、同じネットに属するルータは互いのアドレスを、緊急連絡用の通知先として持ち合っていることになる。代替経路を設定する候補となるルータは、これらの送信対象ルータから選ばれる。これにより、障害発生時にも、迅速に代替経路を探索することが可能になる。
【００５５】
対象フラグは、主として復旧時の通知先を管理するために用いられる。最初に障害情報が送信対象ルータに送られると、対象フラグには「送信」のようなデータが格納される。
【００５６】
制御エージェント自己情報は、自ルータのアドレス、自ルータの最新の経路表の情報、自ルータ宛送信に相手が必要とする暗号鍵、制御エージェント状態フラグを含む。制御エージェントは、この自己情報を持ってネットワーク上を移動することができる。状態フラグには、「通知」、「完了」、「不正」のように、制御エージェントの処理の状態を表すデータが格納される。
【００５７】
また、認証用復号鍵としては、自ルータでの認証時に必要な復号鍵が格納される。
図９は、通信ポート制御部４２内に保持される経路表のデータ構造を示している。経路表は、送信先を表す送信アドレス（送信先アドレス）、送信アドレスへの経路となるルータのアドレス（送信先ルータアドレス）、送信アドレスへの中継回数、代替フラグ、代替依頼を行ったルータのアドレス（代替依頼ルータアドレス）を含む。代替フラグには、「通常」、「代替」、「元」のように、送信先ルータの役割を表すデータが格納される。
【００５８】
図１０は、通信ポート部４３内に保持されるデータの構造を示している。通信ポート部４３は、通信ポート番号、現在設定されている遮蔽フィルタの種類などの制御情報、識別フラグを保持する。
【００５９】
図１１は、図７のルータのシステム構成例を示している。図１１のルータは、処理装置５１、５５、通信ポート５８、およびそれらを結合するバス５４を備え、通信ポート５８により通信ネットワーク５９に接続している。ここで、通信ネットワーク５９は、例えば図２のネット１、ネット２、ネット３、ネット４等に相当する。
【００６０】
処理装置５１は、ＣＰＵ（中央処理装置）５２およびメモリ５３を備え、メモリ５３を利用してプログラムを実行することにより制御エージェントを生成して、制御エージェント部４１の機能を実現する。
【００６１】
また、処理装置５５は、ＣＰＵ５６およびメモリ５７を備え、メモリ５７を利用してプログラムを実行することにより、通信ポート制御部４２および通信ポート部４３の機能を実現する。
【００６２】
このように、制御エージェント部４１を通信ポート制御部４２および通信ポート部４３からハード的に独立させることにより、ルータ本体が故障してしまっても、制御エージェントを正しく動作させることが可能になる。
【００６３】
次に、図１２から図１９までを参照しながら、ルータ４が不調になったときの経路制御処理および復旧処理について詳細に説明する。図１２はルータ４に異常が発生する前の各ルータ内の経路表を示しており、図１３は異常発生後の各ルータ内の経路表を示している。また、図１４から図１９までは、各ルータの制御エージェントの処理フローを示している。
【００６４】
図１４は、異常になったルータ４の通信ポート制御部４２と制御エージェントの処理のフローチャートである。図１４において処理が開始されると、通信ポート制御部４２は、ルータが不調となったことで、自ルータ上にある制御エージェント部４１に「異常」という通知を伝えて（ステップＳ１）、処理を終了する。
【００６５】
制御エージェント部４１の制御エージェントは、通信ポート制御部４２からの信号を定期的に見張っていて、この異常通知を捉える（ステップＳ２）。次に、管理用通信プロトコル、および制御エージェント自身が通信に用いる通信ポート以外をフィルタ（遮蔽）するように、通信ポート部４３に指示する（ステップＳ３）。
【００６６】
これにより、このルータ４は通常の通信ルートから隔離される。このとき、通信ポート部４３は、フィルタしたポートの識別フラグ（図１０参照）に、『ルータ４』と設定する。
【００６７】
次に、制御エージェントは、自ルータ異常時の代替経路の候補になるような他のルータを調べるため、制御エージェント部４１内に格納されている図８のような緊急連絡表を検索する（ステップＳ４）。そして、異常を通知すべき対象ルータが登録されているかどうかを調べる（ステップＳ５）。
【００６８】
この例では、ルータ４が接続されているネット２に属するルータ１とルータ３、およびネット３に属するルータ２が送信対象として緊急連絡表に登録されている。したがって、通知すべきルータが緊急経路表に見つかったので、制御エージェントはコマンドｓｅｎｄを実行し、送信対象ルータの数だけ自己の複製を作成する（ステップＳ６）。このとき、制御エージェント自己情報も同時にコピーされる。
【００６９】
ｓｅｎｄは、エージェントの手続きｌｉｖｅの中で実行され、そのエージェントの複製を作って他のプレイスに送るコマンドである。ここでは、ｓｅｎｄの実行により、ステップＳ６、Ｓ７、Ｓ８の処理が行われる。
【００７０】
制御エージェントは、作成した複数エージェントの自己情報の状態フラグを『通知』に設定する（ステップＳ７）。このとき、通知先のルータ別に暗号鍵を使って、複数エージェントを暗号化しておく。次に、送信対象ルータ（この例ではルータ１〜３）に複製エージェントを送り、同時に緊急連絡表の対象フラグを『送信』に設定する（ステップＳ８）。
【００７１】
送り元であるルータ４の制御エージェントは待機手続きを行い（ステップＳ９）、送った複製エージェントがすべて戻ってくるまで待機状態になる。もし、複製エージェントが戻ってこない場合は、例外処理として、管理者に通知する、再送する、エラーで停止するなどの何等かの処理を行う。
【００７２】
図１５は、ステップＳ９で行われる制御エージェントの待機手続きのフローチャートである。図１５において処理が開始されると、制御エージェントは、戻ってきた各々の複製エージェントについて、図１６のような認証手続きを行う（ステップＳ２１）。
【００７３】
図１６において処理が開始されると、制御エージェントは、他のルータから送り返されてきたエージェントを自分が保有する復号鍵で復号する（ステップＳ３１）。次に、そのエージェントの自己情報内の自ルータのアドレスを、緊急連絡表に持っている送信対象ルータのアドレスと比較して（ステップＳ３２）、処理を終了する。
【００７４】
次に、図１５のステップＳ２２において、やって来たエージェントが持つアドレスが正しいかどうか認証する。戻ってきた複製エージェントが持つアドレスは、送信時に送信元のルータのアドレスに書き換えられているため、緊急連絡表内の送信対象ルータのいずれかのアドレスと一致するはずである。
【００７５】
送信対象ルータのアドレスに一致すれば、それを正しいアドレスと判定し、受信エージェント数のカウンタ値に１を加える（ステップＳ２３）。そして、カウンタ値が送信した複製エージェントの数に達したかどうかを判定し（ステップＳ２４）、それに達すれば処理を終了する。
【００７６】
ステップＳ２２においてアドレスが一致しない場合、およびステップＳ２４においてカウンタ値が送信した複製エージェントの数に達しない場合は、ステップＳ２１以降の処理を繰り返す。
【００７７】
すべての複数エージェントが戻ってきたことが確認されると、次に、それらの状態フラグを調べる（ステップＳ１０）。そして、状態フラグが『経路外』で戻ってきた場合は、緊急連絡表の対応する送信対象ルータの対象フラグにある『送信』の設定を解除する。これは、その送信対象ルータが代替経路として使用できないことを意味している。
【００７８】
また、状態フラグが『不正』で戻ってきた場合は、例外処理として、管理者に通知する、再送する、エラーで停止するなどの何等かの処理を行う。代替経路が設定されたルータからの複数エージェントは、状態フラグが『完了』となって戻ってくる。
【００７９】
こうして、送信した複数エージェントが戻ってくることにより、いくつかのルータ上で代替経路が設定されたことが分かるので、管理者に作業開始の指示を与え（ステップＳ１０）、処理を終了する。その後、管理者は不調となったルータ４の復旧作業を行う。ステップＳ５において、緊急連絡表に通知先のルータが登録されていない場合は、直ちにステップＳ１１の処理を行って、処理を終了する。
【００８０】
図１７は、ルータ４から複数エージェントを受け取った正常なルータの制御エージェントの処理のフローチャートである。この例では、ルータ１、ルータ２、ルータ３がこの処理を行う。図１７において処理が開始されると、ルータ１〜３の制御エージェントは、まず送られてきたエージェントの認証手続きを行う（ステップＳ４１）。
【００８１】
ここで、送られてきたエージェントを復号し（図１６、ステップＳ３１）、自ルータが緊急連絡表に持つ送信対象ルータのアドレスと、送られてきたエージェントが持つアドレスを比較する（ステップＳ３２）。そして、それが正しい送信元からの複製エージェントかどうか認証する（ステップＳ４２）。
【００８２】
ルータ４のアドレスは、ルータ１〜３の緊急連絡表に登録されているはずなので、そこから送られてきた複製エージェントは正しいエージェントとして認証される。
【００８３】
送られてきたエージェントのアドレスが正しくなければ、その状態フラグを『不正』に設定して（ステップＳ５２）、送信元のルータに送り返し（ステップＳ５１）、処理を終了する。あるいは、ステップＳ５２において例外処理を行ってもよい。
【００８４】
送られてきたエージェントのアドレスが正しければ、次に、自分のいるルータの通信ポート制御部４２にある経路表から、その複製エージェントが持っているルータ４のアドレスが含まれる経路を探す。そして、その代替フラグを『元』に設定する（ステップＳ４３）。
【００８５】
例えば、図１２のルータ２の経路表には、ネット２へ送信するときの送信先ルータはルータ４であることが記載されているので、その経路の代替フラグを、図１３に示されるように『元』に設定する。これは、ルータ４に異常が発生したため、その経路が使えなくなったことを意味する。
【００８６】
次に、自ルータの経路表を更新するように、通信ポート制御部４２に指示する（ステップＳ４４）。これにより、通信ポート制御部４２が同じネットに属する他のルータと経路情報をやり取りし、不調となったルータ４以外の送信先ルータを求めて、経路表を更新する。ただし、この更新処理において、代替フラグが『通常』以外の値に設定されている経路の削除等は行わないものとする。
【００８７】
次に、ルータ４から来た複製エージェントから、その自己情報に含まれるルータ４の最新の経路表を受け取り（ステップＳ４５）、それを検索して（ステップＳ４６）、その経路表にある送信先アドレスが自ルータの経路表の送信先アドレスにあるかどうかを調べる（ステップＳ４７）。
【００８８】
ルータ４の送信先アドレスが自ルータの経路表になければ、自ルータは代替経路にはならないので、ルータ４から来た複製エージェントの状態フラグを『経路外』に設定する（ステップＳ４７）。そして、ルータ４向けの暗号鍵で暗号化してルータ４に送り返し（ステップＳ５１）、処理を終了する。
【００８９】
ルータ４の送信先アドレスが自ルータの経路表にあれば、その経路の代替フラグを『代替』に設定する。これにより、複製エージェントを受け取ったルータを含む特定の経路が、自動的に代替経路に設定される。
【００９０】
例えば、ルータ２の経路表には、更新処理により通信ポート制御部４２がルータ５と経路情報のやり取りをした結果、図１３に示すように、ネット２へ送信するときの送信先ルータをルータ５とする経路情報が新たに加わっている。そこで、その経路の代替フラグを『代替』に設定する。
【００９１】
次に、その経路の「代替依頼を行ったルータのアドレス」として、複製エージェントを送ってきたルータ４のアドレスを設定する（ステップＳ４９）。ここでは、ルータ２の経路表の代替フラグが『代替』となっている経路に、代替依頼ルータアドレスとしてルータ４のアドレスが設定される。
【００９２】
次に、ルータ４から来た複製エージェントの状態フラグを『完了』に設定し、ルータ４向けの暗号鍵で暗号化して（ステップＳ５０）、ルータ４に送り返し（ステップＳ５１）、処理を終了する。こうして、代替経路の設定が完了する。
【００９３】
図１２のルータ１およびルータ３の経路表もルータ２と同様にして更新され、代替フラグ等が書き換えられて、図１３に示す経路表のようになる。これにより、ワークステーション１１＝＝ネット３＝＝ルータ２＝＝ネット４＝＝ルータ５＝＝ネット１＝＝ルータ３＝＝ネット２＝＝ルータ１＝＝メインフレーム１３のような代替経路が設定される。
【００９４】
尚、図１３において、ルータ４から複製エージェントの送付を受けなかったルータ５の経路表は変更されていない。
ルータ１、ルータ２、ルータ３から『完了』の状態フラグを持つ複製エージェントがルータ４に戻ると、管理者がルータ４の修理等の作業を行う。作業が終了すると、管理者は各ルータの制御エージェントに復旧時の処理を指示する。
【００９５】
図１８は、ルータ４上の制御エージェントの復旧時の処理のフローチャートである。図１８において処理が開始されると、制御エージェントは、まず自己情報として保持している異常前の経路表を通信ポート制御部４２に設定する（ステップＳ６１）。このとき、通信ポート部４３はまだフィルタされているので、他の代替ルータに回っているパケットの経路を乱すことはない。
【００９６】
次に、緊急連絡表を参照して、復旧を通知すべきルータがあるかどうかを判定する（ステップＳ６２）。緊急連絡表内の対象フラグが『送信』に設定されている送信対象ルータが、通知すべきルータとなる。
【００９７】
通知すべきルータがなければ、通信ポート５８に設定したフィルタのうち、図１０の識別フラグが『ルータ４』に設定されているフィルタを解除するように通信ポート部４３に指示して（ステップＳ６７）、処理を終了する。
【００９８】
通知すべきルータがあれば、コマンドｓｅｎｄを実行して、ステップＳ６３、Ｓ６４、Ｓ６５の処理を行う。まず、通知対象ルータの数だけ自己の複製を作成し（ステップＳ６３）、作成した複数エージェントの状態フラグを『通知』に設定する（ステップＳ６４）。このとき、通知先のルータ別に暗号鍵を使って、複数エージェントを暗号化する。
【００９９】
次に、通知対象ルータ（この例ではルータ１〜３）に複製エージェントを送り（ステップＳ６５）、図１５のような待機手続きを行って、送った複製エージェントがすべて戻ってくるまで待機状態になる（ステップＳ６６）。もし、複製エージェントが戻ってこない場合は、何等かの例外処理を行う。
【０１００】
複製エージェントが戻ってくると、各々について図１６のような認証手続きを行う（ステップＳ２１）。状態フラグが『不正』で戻ってきた場合は、何等かの例外処理を行う。
【０１０１】
すべての複製エージェントが戻ってきたら、次に、識別フラグが『ルータ４』に設定されているフィルタを解除するように通信ポート部４３に指示し（ステップＳ６７）、処理を終了する。
【０１０２】
こうして、ルータ４の通信ポート５８のフィルタが解除され、ルータ４は正常状態に復帰する。
図１９は、複製エージェントを受け取ったルータ１、ルータ２、ルータ３上の制御エージェントの復旧時の処理のフローチャートである。図１９において処理が開始されると、制御エージェントは、まず図１６のような認証手続きを行って（ステップＳ７１）、送られてきた複製エージェントを復号し（ステップＳ３１）、自ルータが緊急連絡表に持つ送信対象ルータのアドレスと、送られてきたエージェントが持つアドレスを比較する（ステップＳ３２）。そして、それが正しい送信元からの複製エージェントかどうか認証する（ステップＳ７２）。
【０１０３】
送られてきたエージェントのアドレスが正しくなければ、その状態フラグを『不正』に設定して（ステップＳ７７）、送信元のルータに送り返し（ステップＳ７６）、処理を終了する。あるいは、ステップＳ７７において例外処理を行ってもよい。
【０１０４】
送られてきたエージェントのアドレスが正しければ、次に、自分のいるルータの通信ポート制御部４２にある経路表内で、『元』に設定されている代替フラグを『通常』に再設定する（ステップＳ７３）。例えば、図１３のルータ２の経路表には、ルータ４経由のネット２への送信経路の代替フラグが『元』に設定されているので、これを『通常』に再設定する。
【０１０５】
次に、自ルータの経路表内で、代替フラグが『代替』に設定されている経路を削除する。例えば、ルータ２の経路表には、ルータ５経由のネット２への送信経路の代替フラグが『代替』に設定されているので、この経路を経路表から削除する。
【０１０６】
次に、ルータ４から来た複製エージェントの状態フラグを『完了』に設定し、ルータ４向けの暗号鍵で暗号化する（ステップＳ７５）。そして、それをルータ４に送り返して（ステップＳ７６）、処理を終了する。
【０１０７】
図１３のルータ１およびルータ３の経路表もルータ２と同様にして書き換えられ、図１２のような異常発生前の経路表に復帰する。この結果、ルータ４を経由するワークステーション１１＝＝ネット３＝＝ルータ４＝＝ネット２＝＝ルータ１＝＝メインフレーム１３の経路が再び利用可能となる。
【０１０８】
本実施形態において、通信経路を変更、あるいは切り替える際、その瞬間の経路上のデータを保証する必要がある。幸い、経路制御が必要となるパケット単位やセル単位での通信では、現在用いられている通信プロトコルに「通信失敗時の再送」という技術が基本的に備えられており、これにより通信データの整合性が保証されている。
【０１０９】
本実施形態を用いた場合でも、時間的に零時間で経路を切り替えることは不可能なので、ある程度は再送パケットが出ることが予想される。しかし、制御エージェントにより積極的に経路の切り替えを制御することで、再送パケットの数は従来の方法よりかなり減少することが期待できる。
【０１１０】
また、本実施形態においては、ＲＩＰ等の従来の経路制御プロトコルをそのまま活用できるため、比較的簡単に経路制御装置を実現することができる。
以上のようなリモートプログラミングを用いた実施形態によれば、制御エージェントの自律性を利用することにより、ネットワーク上の各機器が自主的に異常を発見して、代替経路を確保する。したがって、管理者は代替経路の設定等の作業を省略して、異常機器の復旧作業に専念することができる。
【０１１１】
尚、本実施形態においてはルータが経路制御装置の機能を持っているが、これに限らず、経路制御装置をネットワーク上の任意の機器内に設けることが可能である。また、ネットワークの接続形態は図２のものに限られず、任意の形態を取ることができる。
【０１１２】
また、異常発生時に作成された複製エージェントは、送信先のルータ上で代替ルータを発見できなければ、それを発見できるまで自己複製を繰り返すようにしてもよい。この場合、各送信先のルータの緊急連絡表を参照して、その送信対象ルータの数だけの複製エージェントをさらに作成することになる。
【０１１３】
また、本発明を実施する際に必ずしもエージェントを用いる必要はなく、それぞれの制御エージェントの処理を普通のプロセスにより行ってもよい。この場合は、ネットワークを介したやり取りは、例えばＲＰＣ（ｒｅｍｏｔｅ  ｐｒｏｃｅｄｕｒｅ  ｃａｌｌ  ）等により実行される。
【０１１４】
本発明の他の適用例としては、次のようなものがある。
［１］通信ネットワークのセキュリティを守るためのファイアウォール（防火壁）の構築
通信路をモニタ中にアクセス禁止先への通信を発見した場合、その通信に対する通信路を動的にフィルタするなど。
［２］商用通信ネットワークのトラフィック集中時間における回線制御
回線の負荷に応じて、通信を流す通信路を増やしたり、他の通信を一時抑制するなど。
［３］混雑時や災害時における交通路などの制御
通信経路を制御する代わりに、人や物資などが流れる経路を制御する。例えば、ネットワーク状に配置された交通路上で信号機制御などを行って、渋滞（輻湊）時の交通量を調整する。
【０１１５】
【発明の効果】
本発明によれば、ネットワーク状に構成された通信路や交通路等の経路を動的に制御して、障害発生時の代替経路を自律的に確保することができる。したがって、ネットワークが一時的に高負荷になった場合や、ネットワークそのものがダウンした場合などに、ネットワーク自身が自動的に迂回経路を設定できる。
【０１１６】
このため、管理者はネットワークの状況を調べて代替経路を設定する必要がなく、また、ある機器が不調になった時の代替経路をあらかじめ登録しておく必要もない。
【図面の簡単な説明】
【図１】本発明の原理図である。
【図２】コンピュータ・ネットワークを示す図である。
【図３】プレイスの構成を示す図である。
【図４】エージェントの構成を示す図である。
【図５】オペレーションｇｏを示す図である。
【図６】オペレーションｍｅｅｔを示す図である。
【図７】ルータの概略構成図である。
【図８】制御エージェント部内のデータ構造を示す図である。
【図９】通信ポート制御部内のデータ構造を示す図である。
【図１０】通信ポート部内のデータ構造を示す図である。
【図１１】ルータのシステム構成図である。
【図１２】異常発生前の経路表を示す図である。
【図１３】異常発生後の経路表を示す図である。
【図１４】異常ルータの処理のフローチャートである。
【図１５】制御エージェントの待機手続きのフローチャートである。
【図１６】制御エージェントの認証手続きのフローチャートである。
【図１７】正常ルータの処理のフローチャートである。
【図１８】復旧時における異常ルータの処理のフローチャートである。
【図１９】復旧時における正常ルータの処理のフローチャートである。
【符号の説明】
１，４  情報処理装置
２  検出手段
３  指示手段
５  受信手段
６  探索手段
７  記憶手段
１１  ワークステーション
１２  管理サーバ
１３  メインフレーム
２１，２４，３１  プレイス
２２，３２，３３  エージェント
２３  チケット
４１  制御エージェント部
４２  通信ポート制御部
４３  通信ポート部
５１，５５  処理装置
５２，５６  ＣＰＵ
５３，５７  メモリ
５４  バス
５８  通信ポート
５９  通信ネットワーク
【図１】
0003577151.tif 000002
【図２】
0003577151.tif 000003
【図３】
0003577151.tif 000004
【図４】
0003577151.tif 000005
【図５】
0003577151.tif 000006
【図６】
0003577151.tif 000007
【図７】
0003577151.tif 000008
【図８】
0003577151.tif 000009
【図９】
0003577151.tif 000010
【図１０】
0003577151.tif 000011
【図１１】
0003577151.tif 000012
【図１２】
0003577151.tif 000013
【図１３】
0003577151.tif 000014
【図１４】
0003577151.tif 000015
【図１５】
0003577151.tif 000016
【図１６】
0003577151.tif 000017
【図１７】
0003577151.tif 000018
【図１８】
0003577151.tif 000019
【図１９】
0003577151.tif 000020