(57)【要約】【課題】迂回路を確保するためのコストを削減すること、ルーティングテーブルのリソースの消費を防止すること、短時間でネットワークを安定させることを課題とする。【解決手段】ルータを含むシステムは、ルータ＃ａ〜＃ｄが相互に通信可能に接続されてネットワークを構成している。そして、ルータ＃ａとルータ＃ｂとの間は、サーバが接続されるＬ２スイッチ＃ａと、クライアント＃ａが接続されるＬ２スイッチ＃ｃと、Ｌ２スイッチ＃ａとＬ２スイッチ＃ｃとを接続するＬ２スイッチ＃ｂとが接続されており、このシステムのネットワークにおけるサブネットワークを構成している。このような構成において、ルータ＃ｂは、サブネットワーク内で発生した障害を検出し、検出した障害によって分断されたサブネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を決定して、仮想的な直結通信回路であるトンネリングを確立する。【選択図】        図２
2008172636.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置およびデータ中継装置から構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続する方法をコンピュータに実行させる通信制御プログラムであって、
前記ネットワーク内で発生した障害を検出する障害検出手順と、
前記障害検出手順により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を決定する迂回路決定手順と、
前記迂回路決定手順により決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを確立するトンネリング確立手順と、
をコンピュータに実行させることを特徴とする通信制御プログラム。
【請求項２】
前記障害検出手順は、前記ネットワークと前記他のネットワークとを接続する通信制御装置に対してOSPFパケットまたはICMPパケットを送信し、前記OSPFパケットおよびICMPパケットに対する応答を前記通信制御装置から受信しなかった場合に、前記ネットワークに障害が発生したと検出することを特徴とする請求項１に記載の通信制御プログラム。
【請求項３】
前記迂回路決定手順は、前記障害検出手順により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を、OSPFプロトコルにおけるSPFツリーによって計算されるルーティングテーブルから決定することを特徴とする請求項１または２に記載の通信制御プログラム。
【請求項４】
前記データ中継装置は、他の装置と接続するポート番号と当該接続する他の装置のMACアドレスとを対応付けて記憶するMAC学習テーブルを備えるMAC学習型のデータ中継装置であって、
前記分断されたネットワークの全アドレスに対してARP要求パケットを送信して受信した前記ARP要求パケットに対する応答から、自装置が通信可能である装置のMACアドレスとIPアドレスとから構成される通信可能リストを生成して、前記分断されたネットワークと前記他のネットワークとを接続する通信制御装置に対して送信するとともに、前記通信制御装置により生成された通信可能リストを受信する通信可能リスト生成手順をさらにコンピュータに実行させ、
前記迂回路決定手順は、前記通信可能リスト生成手順により受信された前記通信可能リストのMACアドレスを送信元アドレス、IPアドレスを送信元IPアドレスとしたARP要求パケットを前記データ中継装置に送信して前記MAC学習テーブルを書き換えることで、前記迂回路を決定することを特徴とする請求項１または２に記載の通信制御プログラム。
【請求項５】
前記トンネリング確立手順は、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立することを特徴とする請求項１〜４のいずれか一つに記載の通信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の装置およびデータ中継装置から構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続する方法をコンピュータに実行させる通信制御プログラムに関する。
【背景技術】
【０００２】
従来より、ネットワーク内に組み込まれ、各ノードが、外部ネットワークのノードに通信パケットを送信する場合の冗長性を確保する手法として、ネットワーク内の各ノードに対して、２台のルータを接続した網構成の通信システムが開示されている。
【０００３】
このような通信システムでは、接続される冗長化した２台のルータを効率的に運用させるために、ＶＲＲＰプロトコル（Virtual  Router  Redundancy  Protocol）が一般的に用いられている。ところが、このようにＶＲＲＰプロトコルを用いた通信システムにおいて、冗長化されたルータが接続されるローカルネットワークで回線切断が発生した場合、当該ネットワーク内に到達できないノードが存在するという事象が発生していた。
【０００４】
そこで、このようにローカルネットワークで回線切断が発生した場合でも、全てのノードが確実に通信することができるようにする様々な技術が開示されている。
【０００５】
一般的には、障害が発生したネットワークにおいて、Ｌ２スイッチを増設して迂回路を確保していた。例えば、図９のようにネットワークが構成される場合に、L2スイッチ＃ｂが装置障害によりダウンしたときに、L２スイッチを通過する通信（パケット）、つまり、クライアント＃ａとサーバとの相互通信、クライアント＃ｂからサーバへの通信や、サーバからクライアント＃ｂへの通信などが不可能となる。そこで、図１０に示すように、Ｌ２スイッチを増設して迂回路を確保していた。
【０００６】
また、特許文献１（特開２００４−３５７１９４号公報）では、ネットワーク内に接続されるいずれかのルータなどの中継装置において回線障害や装置障害が発生して通信が不可能となった中継装置が発生した場合に、迂回ルート（迂回路）をネットワーク内の全中継装置（全ルータ）に広報することにより、迂回ルートを確保する技術が開示されている。
【０００７】
【特許文献１】特開２００４−３５７１９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記した従来の技術では、導入コストが高くなるという課題があった。具体的には、単にＬ２スイッチを増設するだけでは、ネットワークループが発生し、同一ネットワークに配置される全てのＬ２スイッチにおいてスパニングツリープロトコル（ＳＴＰ）を動作させる必要がある。その結果、ＳＴＰを動作させることができる高価なＬ２スイッチを用意する必要があるので、導入コストが高くなっていた。
【０００９】
また、上記した従来の技術である特許文献１では、ルーティングテーブルのリソースを大量に消費するとともに、ネットワークの安定までに時間を要するという課題があった。具体的には、障害となったサブネットワークに接続される中継装置（ルータ）だけでなく全中継装置にホストルートが広報されるため、複数のサブネットワークで同時に障害が発生すると、大量のデータ（ホストルート）が広報される。その結果、ルーティングテーブルのリソースを大量に消費するとともに、ネットワークの安定までに時間を要していた。例えば、サブネットマスク長が２４のサブネットワークで障害が発生した場合、２の８乗＝２５６個のホストルートが広報されることとなる。
【００１０】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、迂回路を確保するためのコストを削減すること、ルーティングテーブルのリソースの消費を防止すること、短時間でネットワークを安定させることを可能である通信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、請求項１に係る発明は、複数の装置およびデータ中継装置から構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続する方法をコンピュータに実行させる通信制御プログラムであって、前記ネットワーク内で発生した障害を検出する障害検出手順と、前記障害検出手順により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を決定する迂回路決定手順と、前記迂回路決定手順により決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを確立するトンネリング確立手順と、をコンピュータに実行させることを特徴とする。
【００１２】
また、請求項２に係る発明は、上記の発明において、前記障害検出手順は、前記ネットワークと前記他のネットワークとを接続する通信制御装置に対してOSPFパケットまたはICMPパケットを送信し、前記OSPFパケットおよびICMPパケットに対する応答を前記通信制御装置から受信しなかった場合に、前記ネットワークに障害が発生したと検出することを特徴とする。
【００１３】
また、請求項３に係る発明は、上記の発明において、前記迂回路決定手順は、前記障害検出手順により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を、OSPFプロトコルにおけるSPFツリーによって計算されるルーティングテーブルから決定することを特徴とする。
【００１４】
また、請求項４に係る発明は、上記の発明において、前記データ中継装置は、他の装置と接続するポート番号と当該接続する他の装置のMACアドレスとを対応付けて記憶するMAC学習テーブルを備えるMAC学習型のデータ中継装置であって、
前記分断されたネットワークの全アドレスに対してARP要求パケットを送信して受信した前記ARP要求パケットに対する応答から、自装置が通信可能である装置のMACアドレスとIPアドレスとから構成される通信可能リストを生成して、前記分断されたネットワークと前記他のネットワークとを接続する通信制御装置に対して送信するとともに、前記通信制御装置により生成された通信可能リストを受信する通信可能リスト生成手順をさらにコンピュータに実行させ、前記迂回路決定手順は、前記通信可能リスト生成手順により受信された前記通信可能リストのMACアドレスを送信元アドレス、IPアドレスを送信元IPアドレスとしたARP要求パケットを前記データ中継装置に送信して前記MAC学習テーブルを書き換えることで、前記迂回路を決定することを特徴とする。
【００１５】
また、請求項５に係る発明は、上記の発明において、前記トンネリング確立手順は、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立することを特徴とする。
【発明の効果】
【００１６】
請求項１の発明によれば、ネットワーク内で発生した障害を検出し、検出された障害によって分断されたネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を決定し、決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを確立するので、迂回路を確保するためのコストを削減すること、ルーティングテーブルのリソースの消費を防止すること、短時間でネットワークを安定させることが可能である。
【００１７】
例えば、サブネットワークを構成するL2スイッチで障害が起きて、通信が遮断された場合に、スパニングツリープロトコルを動作させることができない安価なL2スイッチであっても、迂回路を確保して、通信を確立することができる結果、迂回路を確保するためのコストを削減することが可能である。また、障害が発生したネットワークに接続されるL3スイッチやルータに対してのみ、迂回路を決定してトンネリングを構築するので、ルーティングテーブルのリソースの消費を防止することが可能である。また、障害が発生したネットワークに接続されるL3スイッチやルータに対してのみ、トンネリングを構築するので、影響のないルータなどに対してはいずれの処理も必要としない結果、短時間でネットワークを安定させることが可能である。
【００１８】
また、請求項２の発明によれば、ネットワークと他のネットワークとを接続する通信制御装置に対してOSPFパケットまたはICMPパケットを送信し、OSPFパケットおよびICMPパケットに対する応答を通信制御装置から受信しなかった場合に、ネットワークに障害が発生したと検出するので、確実に障害を検出することが可能である。
【００１９】
例えば、ネットワークを構成するルータに対して、OSPF  Helloパケットを送信して応答を受信しなかった場合に、障害が発生したと検出する結果、ネットワークまたはスイッチングハブなどに障害が発生したか否かを確実に検出することが可能である。
【００２０】
また、OSPF  Helloパケットではなく、ICMPパケットを用いることで、OSPFプロトコルの動作に依存せず、ネットワークの監視時間や応答受信タイムアウト時間などを柔軟に変更することが可能である。また、OSPFに対応しないルータに対してもICMPを用いることで、障害を検出することが可能である。
【００２１】
また、請求項３の発明によれば、検出された障害によって分断されたネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を、OSPFプロトコルにおけるSPFツリーによって計算されるルーティングテーブルから決定するので、正確に迂回路を決定することが可能である。
【００２２】
例えば、OSPFプロトコルを用いることで、ルータ間のルーティング情報をリアルタイムに相互交換することができる結果、他のプロトコルを用いて迂回路を決定するのに比べて、正確に迂回路を決定することが可能である。
【００２３】
また、請求項４の発明によれば、分断されたネットワークの全アドレスに対してARP要求パケットを送信して受信した前記ARP要求パケットに対する応答から、自装置が通信可能である装置のMACアドレスとIPアドレスとから構成される通信可能リストを生成して、分断されたネットワークと他のネットワークとを接続する通信制御装置に対して送信するとともに、通信制御装置により生成された通信可能リストを受信し、受信された通信可能リストのMACアドレスを送信元アドレス、IPアドレスを送信元IPアドレスとしたARP要求パケットをデータ中継装置に送信してMAC学習テーブルを書き換えることで、迂回路を決定するので、正確に迂回路を確保することが可能である。
【００２４】
例えば、障害が発生して遮断されたネットワークに学習型のL2スイッチが存在する場合に、通常ならば、ネットワークを接続するルータ間の迂回路を決定しても、学習型L2スイッチに接続される装置に対して通信ができなくなるが、学習型L2スイッチの学習テーブルを書き換えることで、学習型L2スイッチに接続される装置に対して正確に迂回路を確保することが可能である。
【００２５】
また、請求項５の発明によれば、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立するので、迂回路を用いて確実に通信を確保することが可能である。
【００２６】
例えば、L2トンネルを確立することで、分断されたネットワークに接続される全ての装置に対するパケットを正確に迂回させることが可能である。また、L3トンネルを確立することで、ルータ間におけるパケットを正確に迂回させることが可能である。
【発明を実施するための最良の形態】
【００２７】
以下に添付図面を参照して、この発明に係る通信制御装置の実施例を詳細に説明する。なお、以下の実施例で用いる主要な用語、実施例１に係る通信制御装置の概要および特徴、実施例１に係る通信制御装置の構成および処理の手順、実施例１の効果を順に説明し、続いて、他の実施例について説明する。
【実施例１】
【００２８】
［用語の説明］
まず最初に、本実施例で用いる主要な用語を説明する。本実施例で用いる「ルータ（特許請求の範囲に記載の「通信制御装置」に対応する。）」とは、ネットワーク上に流れるデータを他のネットワークに中継する装置のことであり、具体的には、受信したＩＰアドレス（Internet  Protocol）を見て、どの経路で転送すべきかを判断する経路選択機能（ルーティング機能）と、複数のポート（ＬＡＮインタフェース：Local  Area  Network  Interface）とを備え、異なるネットワーク間におけるデータの中継や異なるネットワーク同士を接続する。また、ルータは、任意のホスト（装置）から生じるブロードキャストパケットを受信した場合に、その送信元のＩＰアドレスとＭＡＣアドレスと受信ポートとを対応付けてＡＲＰテーブル（Address  Resolution  Protocol）を作成する。このようにデータを中継する場合、ルータは、このARPテーブルを参照して、受信したデータの宛先のＭＡＣアドレス（Media  Access  Control  Address）を次のルータまたはホスト（装置）のものに書換え、送信元のＭＡＣアドレスを自己のＭＡＣアドレスに書き換えて、当該データを中継する。
【００２９】
また、本実施例で用いる「Ｌ２スイッチ（特許請求の範囲に記載の「データ中継装置」に対応する。）」とは、ネットワーク中継装置の一つであり、パケットの行き先を判断して転送を行うスイッチングハブなどの装置である。ネットワーク上には、ＩＰアドレスやＴＣＰ（Transmission  Control  Protocol）など様々なプロトコルが利用されるが、このようなプロトコルの違いを意識することなく利用することができる。そして、パケットを受信した場合に、その送信元のＩＰアドレスとＭＡＣアドレスと受信ポートとを対応付けてＭＡＣ学習テーブルとして記憶しておくことで、ネットワーク上の通信経路を確保するＬ２スイッチをＭＡＣ学習型Ｌ２スイッチと呼ぶ。
【００３０】
また、「トンネリング」とは、インターネットなどのネットワーク上において、任意の装置間を結ぶ閉じられた仮想的な直結通信回線を確立する技術のことである。本実施例で用いるＬ２トンネル、Ｌ３トンネルの両方とも、任意の装置間を結ぶ閉じられた仮想的な直結通信回線を確立する技術であるが、Ｌ２トンネルは、プロトコルの違いを意識することなく利用することができ、任意の装置における全てのパケットを中継することができる。
【００３１】
［通信制御装置（ルータ）の概要および特徴］
次に、図１と図２を用いて、実施例１に係る通信制御装置（ルータ）の概要および特徴を説明する。図１と図２は、実施例１に係る通信制御装置（ルータ）を含むシステムの全体構成を説明するための図である。
【００３２】
図１に示すように、このシステムは、ルータ＃ａ〜＃ｄが相互に通信可能に接続されてネットワークを構成している。そして、ルータ＃ａとルータ＃ｂとの間は、サーバが接続されるＬ２スイッチ＃ａと、クライアント＃ａが接続されるＬ２スイッチ＃ｃと、Ｌ２スイッチ＃ａとＬ２スイッチ＃ｃとを接続するＬ２スイッチ＃ｂとが接続されており、このシステムのネットワークにおけるサブネットワークを構成している。また、ルータ＃ｂとルータ＃ｄとの間には、クライアント＃ｂが接続されるＬ２スイッチ＃ｄが接続されている。
【００３３】
そして、ルータ＃ａとルータ＃ｂとは、ＯＳＰＦプロトコル（Open  Shortest  Path  First  Protocol）を動作させており、相互にＯＳＰＦパケットを送信している。それぞれのルータ＃ａとルータ＃ｂとは、対向ルータからのＯＳＰＦ  Ｈｅｌｌｏパケットを周期的に受信することで、対向ルータとの間のサブネットワークが正常に通信可能な状態であることを判断している。
【００３４】
このような構成のもと、実施例１に係るルータは、上記したように、複数の装置（サーバ、クライアント＃ａ）およびＬ２スイッチから構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続することを概要とするものであり、特に、迂回路を確保するためのコストを削減すること、ルーティングテーブルのリソースの消費を防止すること、短時間でネットワークを安定させることが可能である点に主たる特徴がある。
【００３５】
この主たる特徴を具体的に説明すると、ルータ＃ｂは、サブネットワークと他のネットワークとを接続するルータ＃ａに対してOSPFパケットを送信し、OSPFパケットに対する応答をルータ＃ａから受信しなかった場合に、サブネットワークに障害が発生したと検出する（図１の（１）と（２）参照）。
【００３６】
具体的に説明すると、Ｌ２スイッチ＃ｂにおいて、ハードウエア故障やポート接続不良により障害が発生したとすると、ルータ＃ｂは、ルータ＃ａに対して周期的に送信しているＯＳＰＦ  Ｈｅｌｌｏパケットに対する応答をルータ＃ａから受信できない。そして、受信できなくなった場合に、ルータ＃ｂは、ルータ＃ａとの間のサブネットワークに障害が発生したと検出する。この障害により、クライアント＃ｂとサーバ、クライアント＃ａとの間の通信が確立できなくなる。
【００３７】
そして、ルータ＃ｂは、検出された障害によって分断されたネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を、OSPFプロトコルにおけるSPFツリーによって計算されるルーティングテーブルから決定する（図１の（３）参照）。
【００３８】
具体的に例を挙げると、通常、ルータ＃ｂは、クライアント＃ｂからサーバに送信されたパケットを受信すると、Ｌ２スイッチ＃ｃ〜＃ａを経由させて、サーバに転送する。ところが、Ｌ２スイッチ＃ｂの障害により、Ｌ２スイッチ＃ｃ〜＃ａ間が通信不可能であるため、ルータ＃ｂは、トポロジテーブルの情報から生成されるＳＰＦツリー（Shortest  Path  First）により、クライアント＃ｂとサーバとの間で通信可能なルートである「ルータ＃ｄ、ルータ＃ｃ、ルータ＃ａを経由させるルート」を迂回路として決定する。
【００３９】
そして、ルータ＃ｂは、決定された迂回路に対して、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立する（図２の（１）参照）。上記した例で具体的に説明すると、ルータ＃ｂは、サーバ宛のパケットを受信すると、当該パケットに対して新しいＩＰヘッダを付加して、決定された迂回路である「ルータ＃ｄ〜ルータ＃ｃ〜ルータ＃ａ」間を転送させるように、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するＶＰＮ（Virtual  Private  Network）などのトンネリングを確立する。
【００４０】
このように、実施例１に係るルータ＃ｂは、障害が発生したサブネットワークを迂回させて、サブネットワークに接続される装置と他のネットワークとの通信を確保することができる結果、上記した主たる特徴のごとく、迂回路を確保するためのコストを削減すること、ルーティングテーブルのリソースの消費を防止すること、短時間でネットワークを安定させることが可能である。
【００４１】
［通信制御装置（ルータ）の構成］
次に、図３を用いて、図１と図２に示したシステムにおけるルータ＃ｂの構成を説明する。図３は、実施例１に係る通信制御装置（ルータ＃ｂ）の構成を示すブロック図である。なお、ルータ＃ａ〜＃ｄは、同様の機能を有するので、ここではルータ＃ｂについて説明する。
【００４２】
図３に示すように、このルータ＃ｂ１０は、通信制御Ｉ／Ｆ部１１と、記憶部１２と、制御部１５とから構成される。通信制御Ｉ／Ｆ部１１は、他の装置との間でやり取りする各種情報に関する通信を制御する。具体的には、通信制御Ｉ／Ｆ部は、ルータ＃ａ、ルータ＃ｃとの間でＯＳＰＦ  Ｈｅｌｌｏパケットを送受信したり、クライアント＃ｂからパケットを受信したり、クライアント＃ｂにパケットを送信したりする。
【００４３】
記憶部１２は、制御部１５による各種処理に必要なデータおよびプログラムを格納するとともに、特に本発明に密接に関連するものとしては、ルーティングテーブル１３を備える。ルーティングテーブル１３は、ルータ＃ｂにおける経路情報を記憶する。具体的に例を挙げると、ルーティングテーブル１３は、ポート１にはルータ＃ａが接続され、ポート２にはルータ＃ｄが接続され、クライアント＃ｃやサーバ宛のパケットを受信した場合には当該パケットをポート１から出力（転送）するなどを記憶する。
【００４４】
制御部１５は、ＯＳ（Operating System）などの制御プログラム、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有するとともに、特に本発明に密接に関連するものとしては、ルーティング実行部１６と、障害検出部１７と、迂回路決定部１８と、トンネリング確立部１９とを備え、これらによって種々の処理を実行する処理部である。
【００４５】
ルーティング実行部１６は、ルーティングテーブル１３に記憶する経路情報に基づいてパケットを転送する。具体的に例を挙げれば、サーバまたはクライアント＃ａ宛のパケットを受信した場合に、当該パケットをルーティングテーブル１３に基づいて、ポート１より出力（転送）したり、クライアント＃ｂ宛のパケットを受信した場合に、当該パケットをルーティングテーブル１３に基づいて、ポート２より出力（転送）するなど、ルーティングテーブル１３に記憶する経路情報に基づいてパケットを転送する。
【００４６】
障害検出部１７は、サブネットワークと他のネットワークとを接続するルータ＃ａに対してOSPFパケットを送信し、ＯＳＰＦパケットに対する応答をルータ＃ａから受信しなかった場合に、サブネットワークに障害が発生したと検出する。具体的に例を挙げれば、ルータ＃ａとルータ＃ｂとは、ＯＳＰＦプロトコル（Open  Shortest  Path  First  Protocol）を動作させており、相互にＯＳＰＦパケットを送信している。そして、ルータ＃ｂは、ハードウエア故障やポート接続不良によりＬ２スイッチ＃ｂで障害が発生したとすると、ルータ＃ａに対して周期的に送信しているＯＳＰＦ  Ｈｅｌｌｏパケットに対する応答をルータ＃ａから受信できない。そして、受信できなくなった場合に、ルータ＃ｂは、ルータ＃ａとの間のサブネットワークに障害が発生したと検出する。なお、障害検出部１７は、特許請求の範囲に記載の「障害検出手順」に対応する。
【００４７】
迂回路決定部１８は、検出された障害によって分断されたネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を、ＯＳＰＦプロトコルにおけるSPFツリーによって計算されるルーティングテーブルから決定する。上記した例で具体的に説明すると、通常、ルータ＃ｂは、クライアント＃ｂからサーバに送信されたパケットを受信すると、Ｌ２スイッチ＃ｃ〜＃ａを経由させて、サーバに転送する。ところが、Ｌ２スイッチ＃ｂの障害により、Ｌ２スイッチ＃ｃ〜＃ａ間が通信不可能であるため、ルータ＃ｂは、トポロジテーブルの情報から生成されるＳＰＦツリー（Shortest  Path  First）により、クライアント＃ｂとサーバとの間で通信可能なルートである「ルータ＃ｄ、ルータ＃ｃ、ルータ＃ａを経由させるルート」を迂回路として決定する。
【００４８】
このＳＰＦツリーとは、図１に示したようなネットワークを構成する各装置間の接続を、記憶するルーティングツリーやＯＳＰＦパケットの送受信情報から自動的に生成することであり、ルータ＃ｂは、このように自動的に生成された構成図（例えば、トポロジーなど）から迂回路を決定する。なお、迂回路決定部１８は、特許請求の範囲に記載の「迂回路決定手順」に対応する。
【００４９】
トンネリング確立部１９は、決定された迂回路に対して、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立する。上記した例で具体的に説明すると、ルータ＃ｂは、サーバ宛のパケットを受信すると、当該パケットに対して新しいＩＰヘッダを付加して、決定された迂回路である「ルータ＃ｄ〜ルータ＃ｃ〜ルータ＃ａ」間を転送させるように、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するＶＰＮ（Virtual  Private  Network）などのトンネリングを確立する。なお、トンネリング確立部１９は、特許請求の範囲に記載の「トンネリング確立手順」に対応する。
【００５０】
［通信制御装置（ルータ）による処理］
次に、図４を用いて、ルータ＃ｂによる処理を説明する。図４は、実施例１に係る通信制御装置（ルータ＃ｂ）における迂回路確立処理の流れを示すフローチャートである。
【００５１】
図４に示すように、サブネットワークと他のネットワークとを接続するルータ＃ａに対してＯＳＰＦパケットを送信し、ＯＳＰＦパケットに対する応答をルータ＃ａから受信しなかった場合に（ステップＳ４０１肯定）、ルータ＃ｂは、サブネットワークに障害が発生したと検出する（ステップＳ４０２）。
【００５２】
そして、ルータ＃ｂは、検出された障害によって分断されたネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を、ＯＳＰＦプロトコルにおけるＳＰＦツリーを取得し（ステップＳ４０３）、取得したＳＰＦツリーによって計算されるルーティングテーブルから決定する（ステップＳ４０４）。
【００５３】
続いて、ルータ＃ｂは、決定された迂回路に対して、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立する（ステップＳ４０５）。
【００５４】
［通信制御装置（ルータ＃ｂ）による処理］
このように、実施例１によれば、ネットワーク内で発生した障害を検出し、検出された障害によって分断されたネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を決定し、決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを確立するので、迂回路を確保するためのコストを削減すること、ルーティングテーブルのリソースの消費を防止すること、短時間でネットワークを安定させることが可能である。
【００５５】
例えば、サブネットワークを構成するＬ２スイッチで障害が起きて、通信が遮断された場合に、スパニングツリープロトコルを動作させることができない安価なＬ２スイッチであっても、迂回路を確保して、通信を確立することができる結果、迂回路を確保するためのコストを削減することが可能である。また、障害が発生したネットワークに接続されるＬ３スイッチやルータに対してのみ、迂回路を決定してトンネリングを構築するので、ルーティングテーブルのリソースの消費を防止することが可能である。また、障害が発生したネットワークに接続されるＬ３スイッチやルータに対してのみ、トンネリングを構築するので、影響のないルータなどに対してはいずれの処理も必要としない結果、短時間でネットワークを安定させることが可能である。
【００５６】
また、実施例１によれば、サブネットワークと他のネットワークとを接続するルータ＃ａに対してＯＳＰＦパケットを送信し、OSPFパケットに対する応答をルータ＃ａから受信しなかった場合に、サブネットワークに障害が発生したと検出するので、確実に障害を検出することが可能である。
【００５７】
例えば、ネットワークを構成するルータに対して、ＯＳＰＦ  Ｈｅｌｌｏパケットを送信して応答を受信しなかった場合に、障害が発生したと検出する結果、ネットワークまたはスイッチングハブ（Ｌ２スイッチ）などに障害が発生したか否かを確実に検出することが可能である。
【００５８】
また、実施例１によれば、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立するので、迂回路を用いて確実に通信を確保することが可能である。
【００５９】
例えば、Ｌ２トンネルを確立することで、分断されたネットワークに接続される全ての装置に対するパケットを正確に迂回させることが可能である。また、Ｌ３トンネルを確立することで、ルータ間におけるパケットを正確に迂回させることが可能である。
【実施例２】
【００６０】
ところで、実施例１では、ルータ＃ｂは、送信したＯＳＰＦ  Ｈｅｌｌｏパケットに対する応答を受信しなかったときに、サブネットワークに障害が発生したと検出する場合について説明したが、本発明はこれに限定されるものではなく、ルータ＃ｂは、ＩＣＭＰパケットを送信し、ＩＣＭＰパケットに対する応答を受信しなかったときに、サブネットワークに障害が発生したと検出するようにしてもよい。
【００６１】
そこで、実施例２では、ルータ＃ｂは、ルータ＃ａに対してＩＣＭＰパケットを送信し、ＩＣＭＰパケットに対する応答を受信しなかったときに、サブネットワークに障害が発生したと検出する場合について説明する。なお、以下では、実施例１に係る通信制御装置（ルータ＃ｂ）における処理の手順、実施例２の効果を順に説明する。
【００６２】
［通信制御装置（ルータ＃ｂ）による処理（実施例２）］
図５を用いて、通信制御装置（ルータ）による処理を説明する。図５は、実施例２に係る通信制御装置（ルータ）における障害検出処理の流れを示すシーケンス図である。
【００６３】
図５に示すように、ルータ＃ａとルータ＃ｂとは、ＩＣＭＰプロトコル（Internet  Control  Message  Protocol）を動作させており、相互にＩＣＭＰパケットを送信している（ステップＳ５０１〜ステップＳ５０４）。
【００６４】
具体的には、ルータ＃ａは、ＩＣＭＰ  Ｅｃｈｏ要求パケットをＬ２スイッチ＃ａ〜＃ｃを経由してルータ＃ｂに送信する。ＩＣＭＰ  Ｅｃｈｏ要求パケットを受信したルータ＃ｂは、当該要求パケットに対する応答として、ＩＣＭＰ  Ｅｃｈｏ応答パケットをＬ２スイッチ＃ｃ〜＃ａを経由してルータ＃ａに送信する。そして、同様に、ルータ＃ｂは、ＩＣＭＰ  Ｅｃｈｏ要求パケットをルータ＃ａに送信し、ルータ＃ａは、当該要求パケットに対する応答として、ＩＣＭＰ  Ｅｃｈｏ応答パケットをルータ＃ｂに送信する。なお、ここでは、ルータ＃ａがルータ＃ｂにＩＣＭＰ  Ｅｃｈｏ要求パケットを送信した後に、ルータ＃ｂがルータ＃ａにＩＣＭＰ  Ｅｃｈｏ要求パケットを送信するように説明しているが、本発明はこれに限定されるものではなく、ルータ＃ａとルータ＃ｂとが、同時に双方にＩＣＭＰ  Ｅｃｈｏ要求パケットを送信してもよい。
【００６５】
その後、Ｌ２スイッチ＃ｂで障害が発生した場合、ルータ＃ａは、ルータ＃ｂに対して周期的に送信しているＩＣＭＰ  Ｅｃｈｏ要求パケットに対する応答をルータ＃ｂから受信できなくなり（ステップＳ５０５）、同様に、ルータ＃ｂは、ルータ＃ａに対して周期的に送信しているＩＣＭＰ  Ｅｃｈｏ要求パケットに対する応答をルータ＃ａから受信できなくなる（ステップＳ５０６）。そして、このように送信したＩＣＭＰ  Ｅｃｈｏ要求パケットに対するＩＣＭＰ  Ｅｃｈｏ応答パケットを受信できなくなった場合に、ルータ＃ａとルータ＃ｂは、サブネットワークに障害が発生したと検出する（ステップＳ５０７とステップＳ５０８）。
【００６６】
［実施例２による効果］
このように、実施例２によれば、サブネットワークと他のネットワークとを接続するルータ＃ａまたはルータ＃ｂに対してＩＣＭＰ  Ｅｃｈｏ要求パケットを送信し、ＩＣＭＰ  Ｅｃｈｏパケットに対する応答を送信先のルータから受信しなかった場合に、サブネットワークに障害が発生したと検出するので、確実に障害を検出することが可能である。
【００６７】
例えば、ＯＳＰＦ  Ｈｅｌｌｏパケットではなく、ＩＣＭＰパケットを用いることで、ＯＳＰＦプロトコルの動作に依存せず、ネットワークの監視時間や応答受信タイムアウト時間などを柔軟に変更することが可能である。また、ＯＳＰＦに対応しないルータに対してもICMPを用いることで、障害を検出することが可能である。
【実施例３】
【００６８】
ところで、実施例１と実施例２では、ルータ＃ａとルータ＃ｂとサブネットワークを構成するＬ２スイッチ＃ａ〜＃ｃは、通常のＬ２スイッチである場合について説明したが、本発明はこれに限定されるものではなく、ＭＡＣ学習型Ｌ２スイッチであってもよい。
【００６９】
そこで、実施例３では、ルータ＃ａとルータ＃ｂとサブネットワークを構成するＬ２スイッチ＃ａ〜＃ｃが、ＭＡＣ学習型Ｌ２スイッチである場合について説明する。なお、以下では、実施例３に係る通信制御装置（ルータ＃ｂ）を含むシステムの全体構成、通信制御装置（ルータ＃ｂ）における処理の手順、実施例３の効果を順に説明する。
【００７０】
［通信制御装置（ルータ）の全体構成（実施例３）］
図６を用いて、実施例３に係る通信制御装置（ルータ）の全体構成を説明する。図６は、実施例３に係る通信制御装置（ルータ）の全体構成を示す図である。
【００７１】
図６に示すように、実施例１と同様、ルータ＃ａ〜ルータ＃ｄが相互に通信可能に接続されネットワークを構成している。また、ルータ＃ａとルータ＃ｂとの間は、ポート２にサーバが接続されるＬ２スイッチ＃ａと、ポート２にクライアント＃ａが接続されるＬ２スイッチ＃ｃと、Ｌ２スイッチ＃ａとＬ２スイッチ＃ｃとを接続するＬ２スイッチ＃ｂとが接続されており、サブネットワークを構成している。
【００７２】
また、ルータ＃ａとルータ＃ｂとは、ＯＳＰＦプロトコル（Open  Shortest  Path  First  Protocol）を動作させており、相互にＯＳＰＦパケットを送信している。それぞれのルータ＃ａとルータ＃ｂとは、対向ルータからのＯＳＰＦ  Ｈｅｌｌｏパケットを周期的に受信することで、対向ルータとの間のサブネットワークが正常に通信可能な状態であることを判断している。
【００７３】
そして、実施例１と異なる点は、Ｌ２スイッチ＃ａ〜＃ｃがＭＡＣ学習型のＬ２スイッチである点である。具体的に例を挙げて説明すると、Ｌ２スイッチ＃ａは他の装置と接続するポート番号と当該接続する他の装置のMACアドレスとを対応付けて記憶するＭＡＣ学習テーブルを備える点である。例えば、Ｌ２スイッチ＃ａは、ＭＡＣ学習テーブルとして『ＭＡＣアドレスを示す「ＭＡＣ」、接続されるポートを示す「ポート」』として「ルータ＃ａのＭＡＣアドレス、＃１」「サーバのＭＡＣアドレス、＃２」「クライアント＃ａのＭＡＣアドレス、＃３」などを記憶する。
【００７４】
このような構成において、ルータ＃ａは、サブネットワークと他のネットワークとを接続するルータ＃ｂに対してＯＳＰＦパケットを送信し、ＯＳＰＦパケットに対する応答をルータ＃ｂから受信しなかった場合に、サブネットワークに障害が発生したと検出する（図６の（１）と（２）参照）。
【００７５】
そして、ルータ＃ａは、分断されたサブネットワークの全アドレスに対してARP要求パケットを送信して（図６の（３）参照）、受信したＡＲＰパケットに対する応答から、自装置が通信可能である装置のＭＡＣアドレスとＩＰアドレスとから構成される通信可能リストを生成して（図６の（４）参照）、分断されたサブネットワークと他のネットワークとを接続するルータ＃ｂに対して送信するとともに、ルータ＃ｂにより生成された通信可能リストを受信する（図６の（５）参照）。
【００７６】
具体的に説明すると、障害を検出したルータ＃ａは、障害により分断されたサブネットワークの全ホストアドレス（例えば、192.168.0.0/24のサブネットワークの場合、192.168.0.1〜192.168.0.254）にＡＲＰ要求パケットを送信する。そして、ＡＲＰ要求パケットに対するＡＲＰ応答パケットを受信すると、ルータ＃ａは、当該ＡＲＰ応答パケットを基に、ＭＡＣアドレスおよびＩＰアドレスから構成される通信可能リストを生成する。そして、ルータ＃ａは、生成した通信可能リストをルータ＃ｂに送信する。また、ルータ＃ｂでは、ルータ＃ａと同様の手法で通信可能リストを生成してルータ＃ａに送信する。そして、それぞれのルータは、受信した通信可能リストを自装置における通信不可能リストとして記憶する。
【００７７】
続いて、ルータ＃ａは、受信した通信可能リストのＭＡＣアドレスを送信元アドレス、ＩＰアドレスを送信元ＩＰアドレスとしたＡＲＰ要求パケットをＬ２スイッチ＃ａに送信して（図６の（６）参照）、ＭＡＣ学習テーブルを書き換えることで（図６の（７）参照）、迂回路を決定する（図６の（８）参照）。
【００７８】
具体的に説明すると、ルータ＃ａは、受信した通信可能リスト（生成した通信不可能リスト）のＭＡＣアドレスを送信元アドレス、ＩＰアドレスを送信元ＩＰアドレスとしたＡＲＰ要求パケットをＬ２スイッチ＃ａに送信する。つまり、ルータ＃ａでは、クライアント＃ａが通信不可能リストに含まれていることになり、クライアント＃ａのＭＡＣアドレスとＩＰアドレスを使用したＡＲＰ要求パケットをＬ２スイッチ＃ａに送信することとなる。
【００７９】
そして、当該ＡＲＰ要求パケットを受信したＬ２スイッチ＃ａは、「クライアント＃ａのＭＡＣアドレス、＃１」「サーバのＭＡＣアドレス、＃２」「―、＃３」などのように、クライアント＃ａに関するＭＡＣ学習テーブルが更新される。つまり、クライアント＃ａのＭＡＣアドレス宛のパケットがポート＃１から送信されるようになる。その結果、ルータ＃ａは、サーバからクライアント＃ａ宛のパケットを受信することができるようになり、当該パケットをルータ＃ｃ〜＃ｂを経由して転送することができる。
【００８０】
そして、ルータ＃ａは、このようにして決定された迂回路に対して、トンネリングを確立する。なお、ルータ＃ｂにおいても、上記した手法と同様に行うことで、Ｌ２スイッチ＃ｃのＭＡＣ学習テーブルを書換え、クライアント＃ａからサーバ宛のパケットを受信することができるようになる。
【００８１】
［通信制御装置（ルータ＃ａ）による処理（実施例３）］
図７を用いて、通信制御装置（ルータ＃ａ）による処理を説明する。図７は、実施例３に係る通信制御装置（ルータ＃ａ）におけるＭＡＣ学習テーブル更新処理の流れを示すフローチャートである。
【００８２】
サブネットワークに障害が発生したと検出した場合（ステップＳ７０１肯定）、ルータ＃ａは、障害により分断されたサブネットワークの全ホストアドレスに対してＡＲＰ要求パケットを送信する（ステップＳ７０２）。
【００８３】
そして、送信したＡＲＰ要求パケットに対するＡＲＰ応答パケットを受信すると（ステップＳ７０３肯定）、ルータ＃ａは、当該ＡＲＰ応答パケットから通信可能リストを生成してルータ＃ｂに対して送信する（ステップＳ７０４）。
【００８４】
その後、ルータ＃ｂから通信可能リストを受信すると（ステップＳ７０５肯定）、ルータ＃ａは、受信した通信可能リストを通信不可能リストとする（ステップＳ７０６）。
【００８５】
そして、ルータ＃ａは、生成した通信不可能リストのＭＡＣアドレスを送信元アドレス、ＩＰアドレスを送信元ＩＰアドレスとしたＡＲＰ要求パケットをＬ２スイッチ＃ａに送信することで、Ｌ２スイッチ＃ａのＭＡＣ学習テーブルを更新して迂回路を決定する（ステップＳ７０７）。その後、ルータ＃ａは、決定された迂回路に対してトンネリングを確立する。
【００８６】
［実施例３による効果］
このように、実施例３によれば、障害により分断されたネットワークの全アドレスに対してＡＲＰ要求パケットを送信して受信したＡＲＰパケットに対する応答から、自装置が通信可能である装置のＭＡＣアドレスとＩＰアドレスとから構成される通信可能リストを生成して、分断されたネットワークと他のネットワークとを接続するルータに対して送信するとともに、ルータにより生成された通信可能リストを受信し、受信された通信可能リストのＭＡＣアドレスを送信元アドレス、ＩＰアドレスを送信元ＩＰアドレスとしたＡＲＰ要求パケットをＬ２スイッチに送信してＭＡＣ学習テーブルを書き換えることで、迂回路を決定するので、Ｌ２スイッチは、他の装置と接続するポート番号と当該接続する他の装置のＭＡＣアドレスとを対応付けて記憶するＭＡＣ学習テーブルを備えるＭＡＣ学習型のＬ２スイッチであった場合、正確に迂回路を確保することが可能である。
【００８７】
例えば、障害が発生して遮断されたネットワークに学習型のＬ２スイッチが存在する場合に、通常ならば、ネットワークを接続するルータ間の迂回路を決定しても、学習型Ｌ２スイッチに接続される装置に対して通信ができなくなるが、学習型Ｌ２スイッチの学習テーブルを書き換えることで、学習型Ｌ２スイッチに接続される装置に対して正確に迂回路を確保することが可能である。
【実施例４】
【００８８】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に示すように、（１）障害検出手法、（２）トンネリング、（３）事前に迂回路を決定、（４）事前にトンネルリング確立、（５）システム構成等、（６）プログラム、にそれぞれ区分けして異なる実施例を説明する。
【００８９】
（１）障害検出手法
例えば、実施例１〜３では、ＯＳＰＦ  ＨｅｌｌｏパケットまたはＩＣＭＰ  Ｅｃｈｏパケットにより障害を検出する場合について説明したが、本発明はこれに限定されるものではなく、様々なプロトコルや利用者による目視などで検出してもよい。例えば、ＲＩＰ（Routing  Information  Protocol）を用いたり、独自のパケットを送信したりして検出するようにしてもよい。
【００９０】
（２）トンネリング
また、実施例１と２では、決定した迂回路にＬ２トンネルやＬ３トンネルを確立する場合を説明したが、本発明はこれに限定されるものではなく、ＩＰｓｅｃ（Security  Architecture  for  Internet  Protocol）などに暗号化通信を行うようにしてもよい。
【００９１】
（３）事前に迂回路を決定
また、実施例１〜３では、障害を検出した際に迂回路を決定する場合を説明したが、本発明はこれに限定されるものではなく、事前に迂回路を決定しておいてもよい。具体的には、障害が検出される前から、あらかじめ記憶する迂回路を、障害によって分断されたネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路として決定しておく。このようにすることで、迅速に迂回路を決定し、遮断されたネットワークへの通信を確保することが可能である。
【００９２】
例えば、あらかじめ定めた迂回路を記憶しておき、ネットワークに障害が発生した場合に、当該記憶する迂回路を用いてトンネリングを確立する結果、障害が発生した後に、迂回路を決定するのに比べて、迅速に迂回路を決定し、遮断されたネットワークへの通信を確保することが可能である。
【００９３】
（４）事前にトンネルリング確立
また、実施例１と２では、迂回路を決定した後にトンネリングを確立する場合について説明したが、本発明はこれに限定されるものではなく、事前にトンネルリング確立しておいてもよい。具体的には、サブネットワークに接続される装置と他のネットワークとの間の通信を確保するための迂回路を決定しておき、利用者からの指示によって、決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを事前に確立する。このようにすることで、ネットワークに障害が発生した際に、より迅速に迂回路を確保して通信を確立することが可能である。
【００９４】
例えば、利用者の指示によって、あらかじめ迂回路を決定してトンネリングを確立しておくことで、ネットワーク障害が発生した場合に、通常の通信経路からあらかじめ確立しておいた迂回路に切り替えるだけで、通信を確保することができる結果、より迅速に迂回路を確保して通信を確立することが可能である。
【００９５】
（５）システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合（例えば、迂回路決定部とトンネリング確立部とを統合するなど）して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００９６】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理（例えば、ルーティング処理やパケットに対する応答処理など）の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理（例えば、目視による障害検出）の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報（例えば、ルーティングテーブルやＭＡＣ学習テーブルなど）については、特記する場合を除いて任意に変更することができる。
【００９７】
（６）プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムを他の実施例として説明する。
【００９８】
図８は、通信制御プログラムを実行するコンピュータシステムの例を示す図である。図８に示すように、コンピュータシステム８０は、ＲＡＭ８１と、ＨＤＤ８２と、ＲＯＭ８３と、ＣＰＵ８４とから構成される。ここで、ＲＯＭ８３には、上記の実施例と同様の機能を発揮するプログラム、つまり、図８に示すように、ルーティング実行プログラム８３ａと、障害検出プログラム８３ｂと、迂回路決定プログラム８３ｃと、トンネリング確立プログラム８３ｄとがあらかじめ記憶されている。
【００９９】
そして、ＣＰＵ８４には、これらのプログラム８３ａ〜８３ｄを読み出して実行することで、図８に示すように、ルーティング実行プロセス８４ａと、障害検出プロセス８４ｂと、迂回路決定プロセス８４ｃと、トンネリング確立プロセス８４ｄとなる。なお、ルーティング実行プロセス８４ａは、図３に示した、ルーティング実行部１６に対応し、同様に、障害検出プロセス８４ｂは、障害検出部１７に対応し、迂回路決定プロセス８４ｃは、迂回路決定部１８に対応し、トンネリング確立プロセス８４ｄは、トンネリング確立部１９に対応する。
【０１００】
また、ＨＤＤ８２には、ルータにおける経路情報を記憶するルーティングテーブル８２ａが設けられる。なお、ルーティングテーブル８２ａは、図３に示した、ルーティングテーブル１３に対応する。
【０１０１】
ところで、上記したプログラム８３ａは、必ずしもＲＯＭ８３に記憶させておく必要はなく、例えば、コンピュータシステム８０に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」の他に、コンピュータシステム８０の内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらに、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータシステム８０に接続される「他のコンピュータシステム」に記憶させておき、コンピュータシステム８０がこれらからプログラムを読み出して実行するようにしてもよい。
【０１０２】
（付記１）複数の装置およびデータ中継装置から構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続する方法をコンピュータに実行させる通信制御プログラムであって、
前記ネットワーク内で発生した障害を検出する障害検出手順と、
前記障害検出手順により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を決定する迂回路決定手順と、
前記迂回路決定手順により決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを確立するトンネリング確立手順と、
をコンピュータに実行させることを特徴とする通信制御プログラム。
【０１０３】
（付記２）前記障害検出手順は、前記ネットワークと前記他のネットワークとを接続する通信制御装置に対してOSPFパケットまたはICMPパケットを送信し、前記OSPFパケットおよびICMPパケットに対する応答を前記通信制御装置から受信しなかった場合に、前記ネットワークに障害が発生したと検出することを特徴とする付記１に記載の通信制御プログラム。
【０１０４】
（付記３）前記迂回路決定手順は、前記障害検出手順により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を、OSPFプロトコルにおけるSPFツリーによって計算されるルーティングテーブルから決定することを特徴とする付記１または２に記載の通信制御プログラム。
【０１０５】
（付記４）前記データ中継装置は、他の装置と接続するポート番号と当該接続する他の装置のMACアドレスとを対応付けて記憶するMAC学習テーブルを備えるMAC学習型のデータ中継装置であって、
前記分断されたネットワークの全アドレスに対してARP要求パケットを送信して受信した前記ARP要求パケットに対する応答から、自装置が通信可能である装置のMACアドレスとIPアドレスとから構成される通信可能リストを生成して、前記分断されたネットワークと前記他のネットワークとを接続する通信制御装置に対して送信するとともに、前記通信制御装置により生成された通信可能リストを受信する通信可能リスト生成手順をさらにコンピュータに実行させ、
前記迂回路決定手順は、前記通信可能リスト生成手順により受信された前記通信可能リストのMACアドレスを送信元アドレス、IPアドレスを送信元IPアドレスとしたARP要求パケットを前記データ中継装置に送信して前記MAC学習テーブルを書き換えることで、前記迂回路を決定することを特徴とする付記１または２に記載の通信制御プログラム。
【０１０６】
（付記５）前記迂回路決定手順は、障害が検出される前から、あらかじめ記憶する迂回路を、前記障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路として決定することを特徴とする付記１または２に記載の通信制御プログラム。
【０１０７】
（付記６）前記迂回路決定手順は、前記ネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を決定しておくものであって、
前記トンネリング確立手順は、利用者からの指示によって、前記迂回路決定手順により決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを事前に確立することを特徴とする付記１または２に記載の通信制御プログラム。
【０１０８】
（付記７）前記トンネリング確立手順は、仮想的な直結通信回路として、データリンク層であるレイヤ２またはネットワーク層であるレイヤ３に対応するトンネリングを確立することを特徴とする付記１〜６のいずれか一つに記載の通信制御プログラム。
【０１０９】
（付記８）複数の装置およびデータ中継装置から構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続する通信制御装置であって、
前記ネットワーク内で発生した障害を検出する障害検出手段と、
前記障害検出手段により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を決定する迂回路決定手段と、
前記迂回路決定手段により決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを確立するトンネリング確立手段と、
を備えたことを特徴とする通信制御装置。
【０１１０】
（付記９）複数の装置およびデータ中継装置から構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続することに適した通信制御方法であって、
前記ネットワーク内で発生した障害を検出する障害検出工程と、
前記障害検出工程により検出された障害によって分断されたネットワークに接続される装置と前記他のネットワークとの間の通信を確保するための迂回路を決定する迂回路決定工程と、
前記迂回路決定工程により決定された迂回路に対して、仮想的な直結通信回路であるトンネリングを確立するトンネリング確立工程と、
を含んだことを特徴とする通信制御方法。
【産業上の利用可能性】
【０１１１】
以上のように、本発明に係る通信制御プログラムは、複数の装置およびデータ中継装置から構成されるネットワークと同様に構成される他のネットワークとを通信可能に接続することに有用であり、特に、迂回路を確保するためのコストを削減すること、ルーティングテーブルのリソースの消費を防止すること、短時間でネットワークを安定させることに適する。
【図面の簡単な説明】
【０１１２】
【図１】実施例１に係る通信制御装置（ルータ）を含むシステムの全体構成を説明するための図である。
【図２】実施例１に係る通信制御装置（ルータ）を含むシステムの全体構成を説明するための図である。
【図３】実施例１に係る通信制御装置（ルータ＃ｂ）の構成を示すブロック図である。
【図４】実施例１に係る通信制御装置（ルータ＃ｂ）における迂回路確立処理の流れを示すフローチャートである。
【図５】実施例２に係る通信制御装置（ルータ）における障害検出処理の流れを示すシーケンス図である。
【図６】実施例３に係る通信制御装置（ルータ）の全体構成を示す図である。
【図７】実施例３に係る通信制御装置（ルータ＃ａ）におけるＭＡＣ学習テーブル更新処理の流れを示すフローチャートである。
【図８】通信制御プログラムを実行するコンピュータシステムの例を示す図である。
【図９】従来技術を説明するための図である。
【図１０】従来技術を説明するための図である。
【符号の説明】
【０１１３】
１０  ルータ＃ｂ
１１  通信制御Ｉ／Ｆ部
１２  記憶部
１３  ルーティングテーブル
１５  制御部
１６  ルーティング実行部
１７  障害検出部
１８  迂回路決定部
１９  トンネリング確立部
８０  コンピュータシステム
８１  ＲＡＭ
８２  ＨＤＤ
８３  ＲＯＭ
８３ａ  ルーティング実行プログラム
８３ｂ  障害検出プログラム
８３ｃ  迂回路決定プログラム
８３ｄ  トンネリング確立プログラム
８４  ＣＰＵ
８４ａ  ルーティング実行プロセス
８４ｂ  障害検出プロセス
８４ｃ  迂回路決定プロセス
８４ｄ  トンネリング確立プロセス
【図１】
2008172636.tif 000003
【図２】
2008172636.tif 000004
【図３】
2008172636.tif 000005
【図４】
2008172636.tif 000006
【図５】
2008172636.tif 000007
【図６】
2008172636.tif 000008
【図７】
2008172636.tif 000009
【図８】
2008172636.tif 000010
【図９】
2008172636.tif 000011
【図１０】
2008172636.tif 000012