(57)【要約】【課題】一方のプライベートネットワークはラベルスイッチネットワークに接続されているが他方のプライベートネットワークは非ラベルスイッチネットワークに接続されている環境でも、ラベルスイッチネットワーク上ではラベルスイッチパスを利用したＶＰＮを実現することができる通信方法を提供すること。【解決手段】ラベルスイッチネットワークと非ラベルスイッチネットワークとの境界に設置されたルータが、プライベートネットワークの一方から当該ルータへのラベルスイッチパスを設定するのに用いられた制御メッセージの内容に基づき、該ラベルスイッチパスから受信したパケットの宛先プライベートアドレスがプライベートネットワークの他方であることを認識し、受信した該パケットをプライベートネットワークの他方に対応する非プライベートアドレスでカプセル化して送信する。【選択図】      図１
2004364343.tif 000002
【特許請求の範囲】
【請求項１】
ラベルスイッチパスをその内部に設定可能なラベルスイッチネットワークと、それ以外の非ラベルスイッチネットワークとを含み、プライベートアドレス空間を共有する少なくとも二つのプライベートネットワークの間に位置する非プライベートネットワークにおいて、仮想的なプライベートネットワークを構成するための通信方法であって、
前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータが、前記プライベートネットワークの一方から当該ルータへのラベルスイッチパスを設定するのに用いられた制御メッセージの内容に基づき、該ラベルスイッチパスから受信したパケットの宛先プライベートアドレスが前記プライベートネットワークの他方であることを認識し、受信した該パケットを前記プライベートネットワークの他方に対応する非プライベートアドレスでカプセル化して送信することを特徴とする通信方法。
【請求項２】
前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータが、前記プライベートネットワークの一方から当該ルータへのラベルスイッチパスを設定するのに用いられた制御メッセージの内容に基づき、自身が前記プライベートネットワークの境界ルータであると前記非プライベートネットワーク内に広告し、
前記プライベートネットワークの他方を収容する前記非プライベートネットワークに接続されたルータは、この広告に基づいて前記プライベートネットワークの他方からのパケットを前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータの非プライベートアドレスでカプセル化して送信し、
このカプセル化されたパケットを受信した前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータは、該カプセル化を解いて該パケットを当該ルータから前記プライベートネットワークの一方へのラベルスイッチパスへ送信することを特徴とする請求項２に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ラベルスイッチ機能を有するルータ装置やこれを含むシステムにおける通信方法に関する。
【背景技術】
【０００２】
（１）ＩＰ（インターネットプロトコル）ヘッダを解析することによりデータグラムを転送するルータ装置では、次の転送先を決めるためにルーチングプロトコルを使用している。その一つとして使用されているＯＳＰＦ（Ｏｐｅｎ Ｓｈｏｒｔｅｓｔ Ｐａｔｈ Ｆａｓｔ；例えば、Ｊ． Ｍｏｙ，“ＯＳＰＦ Ｖｅｒｓｉｏｎ ２”， Ｉｎｔｅｎｒｔ ＲＦＣ２３２８， Ａｐｒｉｌ １９９８参照）等では、最終宛先ネットワークまたはホストまでの同一のコストの経路について、次の転送先が複数存在する場合には、次の転送先情報を複数保持することが可能である。ここで、コストとは例えば途中経由するルータ数などの情報であり、コストが低い場合に最短経路で到着することを意味する。
【０００３】
この機能は負荷分散（ロードバランス）などで使用し、例えば、転送するルータ装置で、複数の次の転送先ルータ情報を持つ場合には、それぞれについて均一に出力することで、片方のルータ装置だけが高負荷にならないようにしている。ここで、注意すべき点は、ロードバランス時には、２ホスト間のデータ転送において、データグラムの順序が逆転しないようにすることが必要である。
【０００４】
一方、ＩＰ等のデータグラム転送を高速化するための一手法として考案されているラベルスイッチの技術では、データグラム転送中にはＩＰヘッダ情報を見ないため、２ホスト間のデータ転送におけるデータグラムの順序保証は困難である。
【０００５】
そこで、現在はＩＰヘッダによる転送を行う装置（ここでは、エッジルータと呼ぶ）から、複数のカットスルー転送を行うためのパス（ラベルスイッチパスと呼ぶ）を設定し、エッジルータで複数設定したカットスルーパスのいずれかにデータグラムを転送するという手法が取られる。
【０００６】
この手法におけるラベルスイッチパス設定としては、エッジルータから設定を開始するときに、各パスを強制的に通るような設定（Ｅｘｐｌｉｃｉｔ Ｒｏｕｔｅ）が存在する。
【０００７】
Ｅｘｐｌｉｃｉｔ Ｒｏｕｔｅによる設定の場合、途中のルータ装置での経路変更による、指定した経路（ルータ装置）が削除された場合等において、必ずエッジルータが認識する必要があり、指定された経路が削除されたことを検出したルータからエッジルータに対し通知する際に、ルーチングプロトコルもしくはカットスルーを生成するためのプロトコル情報を使用する等、特別な手段が必要とされる場合がある。
【０００８】
また、従来の方法では、自身には複数の経路を持たない場合でも、複数経路を認識する必要があり、ルーチングプロトコルによっては困難な場合があり、ネットワーク管理者がネットワーク設計時に登録しなければならない可能性がある。
【０００９】
（２）ところで、ラベルスイッチの機能を有するルータから成る非プライベートネットワーク上で動作するＶＰＮ（Ｖｉｒｔｕａｌ Ｐｒｉｖａｔｅ Ｎｅｔｗｏｒｋ；仮想的プライベートネットワーク）を構築することに関心が集まっている。そこでは、プライベートネットワークの各拠点が互いに離れている場合において、各拠点のＣＰＥ（Ｃｕｓｔｏｍｅｒ Ｐｒｅｍｉｓｅ Ｅｑｕｉｐｍｅｎｔ）を非プライベートネットワーク上のＬＳＰ（Ｌａｂｅｌ Ｓｗｉｔｃｈｅｄ Ｐａｔｈ；ラベルスイッチパス）で相互接続する。設定された各ＬＳＰ上には、ＶＰＮに属するパケットのみが流れ、そうでないパケットは流れない。
【００１０】
非プライベートネットワーク上の端に在って、上記ＬＳＰを終端し、かつ、特定のプライベートネットワーク拠点を、そのＣＰＥと接続することによって収容する装置をエッジルータと呼ぶ。複数の互いに異なるＶＰＮが非プライベートネットワーク上に構築される場合もある。その中で一つのエッジルータが互いに異なるアドレス空間に属する複数のプライベートネットワークを収容する場合もある。
【００１１】
エッジルータは、非プライベートネットワーク側のインタフェースを備え、かつ、収容する各々のＣＰＥと接続する各々のプライベートネットワーク側のインタフェースを備える。
【００１２】
この種のエッジルータの従来型としては、二種類のネットワーク層処理モジュール、すなわち、非プライベート側のモジュールとプライベート側のモジュールから構成されるものが知られている。
【００１３】
非プライベート側のモジュールとプライベート側のモジュールの両者は互いにネットワークインタフェースで相互接続される。両者はＬＤＰ（Ｌａｂｅｌ Ｄｉｓｔｒｉｂｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ）を実行することで両者間のＬＳＰを形成する。一方、非プライベート側のＬＳＰは、上記両者間のＬＳＰとは互いに独立しているが、これらをスイッチングにて直接接続することで、最終的にＬＳＰの終端インタフェースをプライベート側のモジュールに延長するようにしている。
【００１４】
このようなＬＳＰ終端インタフェースは、バーチャルネットワークインタフェースと呼ばれる。なお、一つのエッジルータ装置が複数のＶＰＮを収容する場合は、それ相応数のプライベート側モジュールを備える。
【００１５】
このようなエッジルータ装置は、非プライベート側のモジュールとプライベート側モジュールとが分離された個別の装置としてもよいが、その場合、非プライベート側の装置がエッジルータとなり、プライベート側の装置がＣＰＥとなる。
【００１６】
（３）ところで、ＶＰＮ（Ｖｉｒｔｕａｌ Ｐｒｉｖａｔｅ Ｎｅｔｗｏｒｋ；仮想的プライベートネットワーク）を実現する従来技術は、おもに二通り存在する。
【００１７】
一つは、プライベートなパケットを非プライベートなパケットでカプセル化する技術であり、もう一つは、プライベートなパケットを非プライベートネットワーク上のラベルスイッチパスにて転送する技術である。
【００１８】
前者のカプセル化技術を用いたＶＰＮでは、ラベルスイッチネットワークの存在を仮定せずともＶＰＮが実現可能であるという柔軟性が利点である反面、ラベルスイッチネットワークにおけるデータ転送の高速性や通信品質の保証機能をＶＰＮ専用に利用することができないという欠点があった。
【００１９】
一方で、後者のラベルスイッチパス技術を用いたＶＰＮでは、ちょうど前者における利点と欠点とが入れ替わることになる。
【発明の開示】
【発明が解決しようとする課題】
【００２０】
（３）ラベルスイッチネットワーク領域と非ラベルスイッチネットワーク領域とが混在している環境は、例えばインターネットサービスプロバイダーのバックボーンなどで、より広く一般的なものとなりつつある。
【００２１】
本発明は、上記のような環境のもとで、一方でラベルスイッチが利用できるネットワーク領域では自動的にＶＰＮ専用のラベルスイッチパスを設定し、他方でラベルスイッチが利用できないネットワーク領域では自動的にカプセル化を施すようなＶＰＮ実現方法を与えることで、従来の二極的なＶＰＮ技術では得られなかった柔軟かつ高速で通信品質の保証をも期待できるＶＰＮを提供可能な、通信方法を提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明は、ラベルスイッチパスをその内部に設定可能なラベルスイッチネットワークと、それ以外の非ラベルスイッチネットワークとを含み、プライベートアドレス空間を共有する少なくとも二つのプライベートネットワークの間に位置する非プライベートネットワークにおいて、仮想的なプライベートネットワークを構成するための通信方法であって、前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータが、前記プライベートネットワークの一方から当該ルータへのラベルスイッチパスを設定するのに用いられた制御メッセージの内容に基づき、該ラベルスイッチパスから受信したパケットの宛先プライベートアドレスが前記プライベートネットワークの他方であることを認識し、受信した該パケットを前記プライベートネットワークの他方に対応する非プライベートアドレスでカプセル化して送信することを特徴とする。
【００２３】
一方のプライベートネットワークからのラベルスイッチパスの設定に用いられる制御メッセージ中では、他方のプライベートネットワークを収容する境界ルータの非プライベートアドレスが指定され、どの仮想的なプライベートネットワーク（ＶＰＮ）を構成するためのパスであるかが示されている。したがって、ラベルスイッチネットワークと非ラベルスイッチネットワークの境界にあるルータは、この制御メッセージの内容を記憶しておき、後にパケットを受信した時にこれを利用すれば、そのラベルスイッチパスから受信したパケット自体には宛先として未知のプライベートアドレスしか記入されていなくても、そのパケットは他方のプライベートネットワークを収容する境界ルータへ送るべきであると判断でき、この判断に基づいてパケットを非プライベートアドレスでカプセル化して送信することができる。これにより、非プライベートネットワークの全体がラベルスイッチネットワークではない（一方のプライベートネットワークはラベルスイッチネットワークに接続されているが他方のプライベートネットワークは非ラベルスイッチネットワークに接続されている）環境でも、一方のプライベートネットワークからのパケットを途中まではラベルスイッチパスを利用して他方のプライベートネットワークへ転送するＶＰＮを実現することが可能になる。
【００２４】
好ましくは、前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータが、前記プライベートネットワークの一方から当該ルータへのラベルスイッチパスを設定するのに用いられた制御メッセージの内容に基づき、自身が前記プライベートネットワークの境界ルータであると前記非プライベートネットワーク内に広告し、前記プライベートネットワークの他方を収容する前記非プライベートネットワークに接続されたルータは、この広告に基づいて前記プライベートネットワークの他方からのパケットを前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータの非プライベートアドレスでカプセル化して送信し、このカプセル化されたパケットを受信した前記ラベルスイッチネットワークと前記非ラベルスイッチネットワークとの境界に設置されたルータは、該カプセル化を解いて該パケットを当該ルータから前記プライベートネットワークの一方へのラベルスイッチパスへ送信するようにしてもよい。
【００２５】
他方のプライベートネットワークを収容する境界ルータは、一方のプライベートネットワークを収容する境界ルータとして、一方のプライベートネットワークを直接収容しラベルスイッチネットワークに接続されたルータと、ラベルスイッチネットワークと非ラベルスイッチネットワークの境界にある広告を行ったルータ（プロキシ境界ルータと解釈することもできる）とを認識するが、ネットワーク的な距離の近さから、プロキシ境界ルータの方を選択して、カプセル化送信を行う。
【００２６】
そして、ラベルスイッチネットワークと非ラベルスイッチネットワークの境界にあるルータは、受信したカプセル化パケットの送信元情報を調べることにより、このカプセル化パケットがどのＶＰＮに属するプライベートネットワークを収容するどの境界ルータから送信されてきたかが分かる。この送信元情報に示される境界ルータが、一方のプライベートネットワークからラベルスイッチパスを介してパケットを受信した時にカプセル化送信の宛先とするルータであれば、そのラベルスイッチパスとちょうど逆方向のラベルスイッチパスであって、受信したカプセル化パケットの示すＶＰＮ用のものへ、カプセル化を解いて転送すれば良いことが分かる。
【００２７】
このようにして、非ラベルスイッチネットワークに接続された他方のプライベートネットワークからのパケットも、途中からはラベルスイッチパスを利用してラベルスイッチネットワークに接続された一方のプライベートネットワークへ転送するＶＰＮを実現することが可能になる。
【００２８】
なお、装置に係る本発明は方法に係る発明としても成立し、方法に係る本発明は装置に係る発明としても成立する。
【００２９】
また、装置または方法に係る本発明は、コンピュータに当該発明に相当する手順を実行させるための（あるいはコンピュータを当該発明に相当する手段として機能させるための、あるいはコンピュータに当該発明に相当する機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても成立する。
【発明の効果】
【００３０】
本発明によれば、一方のプライベートネットワークはラベルスイッチネットワークに接続されているが他方のプライベートネットワークは非ラベルスイッチネットワークに接続されている環境でも、ラベルスイッチネットワーク上ではラベルスイッチパスを利用したＶＰＮを実現することが可能になる。
【発明を実施するための最良の形態】
【００３１】
以下、図面を参照しながら発明の実施の形態を説明する。
【００３２】
（１）図１は、ラベルスイッチを導入したネットワークであってルータ装置が次段情報を複数持ち得るようなネットワークの一例を示すものである。
【００３３】
ルータ装置１０１〜１０３は、各ルータ間にて、転送するデータグラムフローの情報と下位レイヤの情報について共通の認識を得ることで、ＩＰヘッダ情報を見ることなく、下位レイヤ情報だけに基づいて高速にデータグラム転送を行うことを可能とするパス（以下、カットスルーパスと呼ぶ）を生成する機能を有する装置である。
【００３４】
特定のデータグラムの情報と下位レイヤ情報（以下、ラベルと呼ぶ）について共通の認識を得る手段としては、例えば、ＦＡＮＰ（Ｆｌｏｗ Ａｔｔｒｉｂｕｔｅ Ｎｏｔｉｆｉｃａｔｉｏｎ Ｐｒｏｔｏｃｏｌ）、ＴＤＰ（Ｔａｇ Ｄｉｓｔｒｉｂｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ）、ＬＤＰ（Ｌａｂｅｌ Ｄｉｓｔｒｉｂｕｔｉｏｎ Ｐｒｏｔｏｃｏｌ）等のプロトコルが用いられる。
【００３５】
ルータ装置１０４は、ルータ装置１０２，１０３やその先のネットワーク１２０と接続される装置であり、ルータ装置１０２およびルータ装置１０３との間でＦＡＮＰ、ＴＤＰ、ＬＤＰ等のプロトコルが動作しており、カットスルーパスの設定やカットスルーパスの最終段としての機能を有する。
【００３６】
ルータ装置１１１〜１１Ｎは、ルータ装置１０１と接続され、ルータ装置１０４と同様に、ＦＡＮＰ、ＴＤＰ、ＬＤＰ等のプロトコルが動作しており、カットスルーパスの設定やカットスルーパスの最終段としての機能を有する。
【００３７】
なお、上記のように各ルータ装置１０１〜１０３／１０４／１１１〜１１Ｎについて（以下の説明のために便宜的に）区別をしたが、全てのルータ装置がカットスルー転送機能を有するようなものであっても構わない。
【００３８】
図１のネットワークでは、各ルータ間において、ＩＰデータグラムの転送先を決定するルーチングプロトコルが動作しており、動作しているプロトコルとしては、ＯＳＰＦ（Ｏｐｅｎ Ｓｈｏｒｔｅｓｔ Ｐａｔｈ Ｆａｓｔ）等が考えられる。
【００３９】
ネットワーク上でルーチングプロトコルを動作させることにより、ルータ装置１０１では、ネットワーク１２０やルータ装置１０４にデータグラムを転送する場合に、ルータ装置１０２を経由するルートとルータ装置１０３を経由するルートのいずれを採用しても同一のコストで到達可能であることを認識することができる。これによって、ルータ装置１０１では、データグラム転送時にルータ装置１０２とルータ装置１０３のどちらに転送しても良いことになる。
【００４０】
このような構成において、ルータ装置１１１〜１１Ｎから、ネットワーク１２０またはルータ装置１０４に対し、ＦＡＮＰ、ＴＤＰ、ＬＤＰ等のプロトコルを用いた、カットスルーパス１３１〜１３Ｎを生成する場合について説明する。
【００４１】
この場合、ルータ装置１０１では、ルータ装置１１１〜１１Ｎからそれぞれ到着した設定メッセージを、ルータ装置１０４またはネットワーク１２０の方向に向かって転送することになるが、ルータ装置１０１では、データグラムを転送する場合と同様に、カットスルーを延長するためにメッセージを転送する次のルータ装置として、ルータ装置１０２とルータ装置１０３のどちらに転送しても良いことになる。
【００４２】
ここで、図２に、図１に例示したようなネットワーク構成内に存在するルータ装置１０１の一構成例を示す。なお、これと同一の構成をルータ装置１０２やルータ装置１０３が持っても良いが、図１のネットワーク構成例ではルータ装置１０１のみマルチパスを持つため、このルータ装置１０１を例としている。
【００４３】
ＩＰ処理部２０１は、ＩＰデータグラムの宛先情報に基づいて当該データグラムが自分宛のものである否か調べ、自分宛のデータグラムについては、受信処理を行って、上位のプロトコル（例えば、ＴＣＰ）に転送し、自分宛でないものについては、次の転送先を決定し、次段のルータ装置に転送するための処理を行う。
【００４４】
なお、ルータ装置１０１では、ラベルによるスイッチイング機能を有するため、後者の自分宛でないデータグラムに対する転送機能を有する必要性は必ずしもない。ただし、ルータ装置１０４やルータ装置１１１〜１１Ｎが図１の構成を取る場合には、これらについては、カットスルーの始点および終点となり得るため、データグラムの転送機能は必要となる。
【００４５】
カットスルー制御部２０２は、隣接するルータ装置との間でデータグラムフローおよびラベル情報について共通の認識を得る（データグラムフローとラベルの情報をやり取りする）ために使用するプロトコルを実行する部分である。
【００４６】
ルーチングテーブル２０３は、宛先アドレスから次に送るべきルータ装置を求めるためのテーブルであり、次段情報は複数持つことも可能であるが、経路によってはマルチパスが存在しない場合もあるので、必ずしも複数ではない。
【００４７】
ネットワークインタフェース２１１〜２１Ｎは、それぞれルータ装置１１１〜１１Ｎと接続されるもので、物理層としては、ＦＡＮＰ、ＴＤＰ、ＬＤＰ等が使用可能なものであれば、どのようなものでも良い。例えば、ＡＴＭ、フレームリレー、イーサネット（登録商標）（登録商標）などが考えられる。
【００４８】
ネットワークインタフェース２２１は、ルータ装置１０２に接続され、動作としてはネットワークインタフェース２１１〜２１Ｎと同様のものである（ここでは、ネットワークインタフェース２１１〜２１Ｎと同一構成とする）。
【００４９】
ネットワークインタフェース２２２は、ルータ装置１０３に接続され、動作としてはネットワークインタフェース２１１〜２１Ｎと同様のものである（ここでは、ネットワークインタフェース２１１〜２１Ｎと同一構成とする）。
【００５０】
スイッチ部２０４は、カットスルー転送が可能な場合には、ネットワークインタフェースからネットワークインタフェースへと直接スイッチング可能となるようなスイッチ装置である。
【００５１】
各ネットワークインタフェースの構成について、ネットワークインタフェース２１１を例に取って説明する。
【００５２】
物理層処理部２３１は、ネットワークインタフェースが収容する物理層に応じて異なる処理が行われるが、ＡＴＭの場合にはセル同期等の処理、イーサネット（登録商標）の場合にはＭＡＣ処理等が、物理層処理にあたる。
【００５３】
ラベル処理部２３２は、受信したデータグラム（フレーム）のヘッダ情報よりラベルを抽出した後、ラベルテーブル２３３を検索することで、次のルータ装置へのラベルを決定し、ＩＰヘッダ等を使用したデータグラム転送処理を実行せずに、スイッチ部２０４を通じてそのまま次のルータに転送するための処理を行うものである。
【００５４】
なお、ＡＴＭの場合には、ラベル処理部２３２およびラベルテーブル２３３は、ＡＴＭスイッチ等で使用するＶＰＩ／ＶＣＩによるスイッチテーブルがそのまま使用可能であり、ルータ装置１０１が保有するネットワークインタフェースが全てＡＴＭの場合には、ネットワークインタフェース２１１〜２１Ｎ，２２１，２２２、ラベル処理部２３２、ラベルテーブル２３３、スイッチ部２０４の全ての機能がＡＴＭスイッチで実現可能となる。
【００５５】
以下では、ルータ装置１０１のカットスルーパス設定手順について説明する。
【００５６】
図３に、図１に例示したネットワークにおいてルータ装置１１１〜１１Ｎから最終宛先をネットワーク１２０またはルータ装置１０４とするカットスルーパスの生成を行ったような場合における、ルータ装置１０１の処理手順の一例を示す。ここでは、マージを行わない場合の例について説明する。
【００５７】
なお、カットスループロトコル生成用のプロトコルによって動作は異なるが、ここでは、カットスルー生成用のメッセージ（以下、設定メッセージと呼ぶ）を契機に次段のルータにメッセージを転送する場合の一例について説明する。
【００５８】
ルータ装置１０１のネットワークインタフェース２１１〜２１Ｎより受信したカットスルーパス生成用のメッセージは、ラベル処理部２３２にてラベルテーブル２２３検索後、直接他のネットワークインタフェースに転送せずに、ＩＰ等のデーグラム処理を行う旨を決定し、ＩＰ処理部２０１に転送する（ステップＳ３０１）。
【００５９】
なお、データグラム処理を行うための条件は各プロトコルによって異なるが、基本的にスイッチ部２０４にてＩＰ処理部２０１に対し転送する処理を行う点は同様である。
【００６０】
設定メッセージを転送されたＩＰ処理部２０１では、自身が受信すべきメッセージがどうかの判断を行い、カットスループロトコル用のメッセージの場合には、カットスルー制御部２０２にデータが送られる（ステップＳ３０２）。
【００６１】
一方、ＩＰ処理部２０１にて自身で受信すべきメッセージでないと判断した場合には、ＩＰ転送処理を行うことになり、ＩＰ処理部２０１は、ルーチングテーブル２０３を検索した後、次のルータ装置を決定し、次のルータ装置にデータを転送する（ステップＳ３０３）。なお、このとき、ルータ装置１０１にてＩＰ転送機能を有さないような装置構成の場合には、データグラムは廃棄される。
【００６２】
さて、ＩＰ処理部２０１より設定メッセージを受信したカットスルー制御部２０２では、受信メッセージ中に含まれるカットスルーパスを生成するための最終宛先を獲得する（ステップＳ３０４）。
【００６３】
カットスルー制御部２０２では、獲得した最終宛先からルーチングテーブル２０３を検索して、次段のルータ装置を求め（ステップＳ３０５）、最終宛先が到達不能の場合には、そのメッセージの転送は停止される（ステップＳ３０６）。
【００６４】
なお、メッセージの転送が停止された後の動作は、カットスルー生成プロトコルによって異なり、ルータ装置１０１から前段のルータ装置１１１〜１１Ｎに対し、応答（以下、応答メッセージを設定完了メッセージと呼ぶ）を返すものや、そのままプロトコル動作を停止しておくものが存在する。
【００６５】
一方、ステップＳ３０５にて最終宛先が存在する場合には、そのルーチングテーブル２０３のエントリより、次段のルータ装置の情報を獲得する。
【００６６】
図１のネットワーク例では既に述べたように、ルータ装置１０１において、ルータ装置１０４およびネットワーク１２０に対しては、ルータ装置１０２およびルータ装置１０３が次段情報として保持されている。
【００６７】
このとき、カットスルー制御部２０２では、同一最終宛先に対し、既に設定されているカットスルーパスの本数（カットスルー数）を確認する（ステップＳ３０７）。
【００６８】
設定済みカットスルー数は、次段情報を求めるための判断に使用し、例えば、図１のネットワーク構成のように、次段情報が２つ存在する場合には、設定済みカットスルー数が０および偶数のときにはルータ装置１０２を選択し、奇数のときには、ルータ装置１０３を選択するようなアルゴリズムにより、次段情報が決定される（ステップＳ３０８）。
【００６９】
なお、次段情報がｎ存在する場合には、設定済みカットスルー数をｃとすると、例えば、ｃ ｍｏｄ ｎの値に基づいて、各次段ルータ装置を順番に選択していけばよい。
【００７０】
また、この次段ルータ装置選択アルゴリズムは上記のものに限らず、各次段ルータ装置が同一（もしくはほぼ同一）のパス数に設定される、あるいはパスが各次段ルータ装置に均等に配分される、ようにする方法であれば、どのようなものでも良い。
【００７１】
このようにして次段ルータを決定したカットスルー制御部２０２では、次段ルータ装置がルータ装置１０２と決定された場合にはネットワークインタフェース２２１通じてルータ装置１０２に、また、ルータ装置１０３と決定された場合にはネットワークインタフェース２２２を通じてルータ装置１０３に、該設定メッセージを送出する（ステップＳ３０９）。
【００７２】
この後、カットスルーの終点であるルータ装置１０４もしくは途中のルータより、設定完了メッセージが到着した時点で（ステップＳ３１０）、受信したメッセージ中に含まれるフロー情報とラベル情報とそれに対応する送信フロー情報とラベル情報の関連付けが完了し、入力インタフェース上２１１〜２１１Ｎ上から出力インタフェース２２１または出力インタフェース２２２へのカットスルーパスの設定が可能となり、カットスルー転送への移行が可能となる（ステップＳ３１１）。
【００７３】
カットスルー転送への移行は、図２のような構成のルータ装置の場合には、受信インタフェース２１１〜２１Ｎ上に存在するラベルスイッチテーブル２３３上に、出力ラベル情報を設定することで完了となる。
【００７４】
カットスルー転送への移行が完了となったときに、カットスルー制御部２０２では、設定完了メッセージを前段のルータ装置に転送する。
【００７５】
このように次段ルータを決定する手順において、既に設定されたカットスルーパスの本数を参考に同一（もしくはほぼ同一）の本数となるようにすることで、パスレベルのロードバランスを取ることが可能となる。
【００７６】
次に、図２に示したルータ装置１０１について、スイッチ部２０４にて複数の入力ラベルを一つの出力ラベルに送出可能なマージ機能をサポートしている場合について説明する。
【００７７】
図４に、ルータ装置１０１がマージ機能を有する（マージを行う）場合において、例えばルータ装置１１１〜１１Ｎが最終宛先をネットワーク１２０またはルータ装置１０４とするような、カットスルーパスの生成時における、ルータ装置１０１の処理手順の一例を示す。
【００７８】
ルータ装置１０１のネットワークインタフェース２１１〜２１Ｎより受信したカットスルーパス生成用のメッセージは、ラベル処理部２３２にてラベルテーブル２２３検索後、直接他のネットワークインタフェースに転送せずに、ＩＰ等のデーグラム処理を行う旨を決定し、ＩＰ処理部２０１に転送する（ステップＳ４０１）。
【００７９】
なお、データグラム処理を行うための条件は各プロトコルによって異なるが、基本的にスイッチ部２０４にてＩＰ処理部２０１に対し転送する処理を行う点は同様である。
【００８０】
設定メッセージを転送されたＩＰ処理部２０１では、自身が受信すべきメッセージがどうかの判断を行い、カットスループロトコル用のメッセージの場合には、カットスルー制御部２０２にデータが送られる（ステップＳ４０２）。
【００８１】
一方、ＩＰ処理部２０１にて自身で受信すべきメッセージでないと判断した場合には、ＩＰ等のデータグラム転送処理を行うが、このときに、ＩＰ処理部２０１は、ルーチングテーブル２０３を検索した後、次のルータ装置を決定し、次のルータ装置にデータを転送する（ステップＳ４０３）。なお、このとき、ルータ装置１０１にてデータグラム転送機能を有さない場合には、データを廃棄しても構わない。
【００８２】
さて、ＩＰ処理部２０１より設定メッセージを受信したカットスルー制御部２０２では、メッセージ中に含まれるカットスルーパスを生成するための最終宛先を獲得する（ステップＳ４０４）。
【００８３】
メッセージより獲得した最終宛先からルーチングテーブル２０３を検索して、次段のルータ装置を求める（ステップＳ４０５）。最終宛先が到達不能の場合には、そのメッセージの転送は停止される（ステップＳ４０６）。
【００８４】
なお、メッセージの転送が停止された後の動作は、カットスルー生成プロトコルによって異なり、ルータ装置１０１から前段のルータ装置１１１〜１１Ｎに対し、応答を返すものや、そのままプロトコル動作を停止しておくものが存在する。
【００８５】
一方、ステップＳ４０５にて最終宛先が存在する場合には、そのルーチングテーブル２０３のエントリより次段のルータ装置の情報を獲得可能であり、図１のルータ装置１０１の場合には、既に述べたようにルータ装置１０４およびネットワーク１２０に対してはルータ装置１０２およびルータ装置１０３が次段情報として保持されている。
【００８６】
カットスルー制御部２０２では、次段ルータ装置を選択することになるが、このときに、同一最終宛先に対し、既に設定されているカットスルーパスの本数を確認する（ステップＳ４０７）。
【００８７】
設定済みカットスルー数は、次段情報を求めるための判断に使用し、図３に示した場合と同様に、例えば、設定済みカットスルー数が０および偶数の場合にはルータ装置１０２を選択し、奇数の場合には、ルータ装置１０３を選択するようなアルゴリズムにより、次段情報が決定される（ステップＳ４０８）。前述と同様に、このアルゴリズムは上記のものに限らず、各次段ルータ装置が同一パス数に設定されるなどの方法であれば、どのようなものでも良い。
【００８８】
次に、設定済みカットスルー数が保持される次段情報よりも少ない場合、すなわち本例では設定済みカットスルー数が０本および１本の場合には、まだカットスルーパスが最大数（本例では２本）生成されていないため、決定された次段ルータに対し、設定メッセージが送出される（ステップＳ４０９）。
【００８９】
この後、カットスルーの終点であるルータ装置１０４もしくは途中のルータからの設定完了のメッセージが到着することで（ステップＳ４１０）、受信したメッセージ中に含まれるフロー情報とラベル情報とそれに対応する送信フロー情報とラベル情報の関連付けが完了し、入力インタフェース上２１１〜２１１Ｎ上から出力インタフェース２２１または２２２へのカットスルーパスの設定が可能となり、カットスルー転送への移行が可能となる（ステップＳ４１１）。
【００９０】
カットスルー転送への移行は、図２のような構成のルータ装置の場合には、受信インタフェース２１１〜２１Ｎ上に存在するラベルスイッチテーブル２３３上に、出力ラベル情報を設定することで完了となる。
【００９１】
また、設定済みカットスルー数が保持される次段情報の個数以上の場合、すなわち本例では設定済みカットスルー数が２本以上の場合には、既に送出すべきカットスルーパスはそれぞれの次段ルータとの間で設定されており、カットスルー制御部２０２では、決定された次段ルータ情報に対し、設定されたカットスルーパスにマージして送出するように、受信した設定メッセージの入力インタフェース上２１１〜２１１Ｎ上のラベルスイッチテーブルに設定することで完了する（ステップＳ４１１）。
【００９２】
この後、設定メッセージを送出してきたルータ装置に対し、設定完了メッセージを応答する。
【００９３】
なお、このようにマージを行う場合には、ステップＳ４０８の次段情報の決定において、全ての次段情報が１回ずつ選択されるまでは、１つの次段情報が複数回選択されないようにするのが好ましい（上記で示した例では、そのようになっている）。ただし、選択基準を緩やかにして、全ての次段情報が１回ずつ選択されるまでに、１つの次段情報が複数回選択されても構わないようすることも可能である。この場合には、上記で示した手順で、設定済みカットスルーパス数＞＝保持される次段情報数の条件は、マージ対象となるカットスルーパスが既に設定されている、という条件になり、設定済みカットスルーパス数＜保持される次段情報数の条件は、マージ対象となるカットスルーパスが未だ設定されていない、という条件になる（なお、図４の手順においては、この条件も使用できる）。
【００９４】
次に、選択可能な複数の次段情報に対応する各ネットワークインタフェースのリンク速度（ネットワークの帯域）が異なることを考慮する場合について説明する。
【００９５】
例えば、ルータ装置１０１のネットワークインタフェース２２１とネットワークインタフェース２２２のリンク速度が異なる場合が考えられる。従って、リンク速度を考慮して負荷分散すると好ましい。
【００９６】
図５に、このような場合のカットスルーパスの生成時のルータ装置１０１の処理手順の一例を示す。ここでは、マージしない場合について説明する。
【００９７】
ここでも、ルータ装置１１１〜１１Ｎから最終宛先をネットワーク１２０またはルータ装置１０４とするようなカットスルーパスの生成時を例にとるとともに、ネットワークインタフェース２２１とネットワークインタフェース２２２のリンク速度が１対２の場合（ネットワークインタフェース２２２が高速）を例にとる。
【００９８】
ルータ装置１０１のネットワークインタフェース２１１より受信したカットスルーパス生成用のメッセージは、ラベル処理部２３２においてラベルテーブル２２３検索した後、自身でＩＰ処理を行う旨を決定し、ＩＰ処理部２０１に転送する（ステップＳ５０１）。
【００９９】
設定メッセージを転送されたＩＰ処理部２０１では、自身が受信すべきメッセージがどうかの判断を行い、カットスループロトコル用のメッセージの場合には、カットスルー制御部２０２にデータが送られる（ステップＳ５０２）。
【０１００】
一方、ＩＰ処理部２０１にて自身で受信すべきメッセージでないと判断した場合には、ＩＰ等のデータグラム転送処理を行うが、このときに、ＩＰ処理部２０１は、ルーチングテーブル２０３を検索した後、次のルータ装置を決定し、次のルータ装置にデータを転送する（ステップＳ５０３）。なお、このとき、ルータ装置１０１にてＩＰ転送機能を有さない場合には、データを廃棄しても構わない。
【０１０１】
さて、ＩＰ処理部２０１より設定メッセージを受信したカットスルー制御部２０２では、メッセージに含まれる情報より、カットスルーパスを生成するための最終宛先を獲得する（ステップＳ５０４）。
【０１０２】
メッセージより獲得した最終宛先からルーチングテーブル２０３を検索して、次段のルータ装置を求める（ステップＳ５０５）。最終宛先が到達不能の場合には、そのメッセージの転送は停止される（ステップＳ５０６）。
【０１０３】
なお、メッセージの転送が停止された後の動作は、カットスルー生成プロトコルによって異なり、ルータ装置１０１から前段のルータ装置１１１〜１１Ｎに対し、応答を返すものや、そのままプロトコル動作を停止しておくものが存在する。
【０１０４】
一方、ステップＳ５０５にて最終宛先が存在する場合には、そのルーチングテーブル２０３のエントリより次段のルータ装置の情報を獲得可能であり、図１のルータ装置１０１の場合には、既に述べたようにルータ装置１０４およびネットワーク１２０に対してはルータ装置１０２およびルータ装置１０３が次段情報として保持されている。
【０１０５】
カットスルー制御部２０２では、次段ルータ装置を選択することになるが、このときに、同一最終宛先に対し、既に設定されているカットスルーパスの本数を確認する（ステップＳ５０７）。
【０１０６】
設定済みカットスルー数は、次段情報を求めるための判断に使用し、例えば、設定済みカットスルー数が３の倍数の場合にはルータ装置１０２を選択し、それ以外の場合には、ルータ装置１０３を選択するようなアルゴリズムにより、次段情報が決定される（ステップＳ５０８）。
【０１０７】
なお、次段情報がｎ存在し、各次段ｉに対するリンク速度がｒ（ｉ）である場合には、設定済みカットスルー数をｃとすると、例えば、ｙ＝ｃ ｍｏｄ （ｒ（１）＋…＋ｒ（ｎ））の値に基づいて、各次段ルータ装置をリンク速度に応じた頻度で選択していけばよい（次段ｉを選択すべきｙの値の個数（種類数）を、次段ｉのリンク速度ｒ（ｉ）に比例させる）。
【０１０８】
例えば、次段情報が３つ存在し（次段１，次段２，次段３とする）、次段１に対するリンク速度：次段２に対するリンク速度：次段３に対するリンク速度＝１：２：３である場合（リンク速度の比の要素（この場合、１，２，３）の総和＝６）、ｙ＝ｃ ｍｏｄ リンク速度の比の要素の総和（＝６）の値が０ならば次段３を選択し、１、２、３、４、５ならば、それぞれ、次段２、次段１、次段３、次段２、次段３を選択する、というような方法を用いてもよい。
【０１０９】
また、選択のアルゴリズムについては上記のものに制限されるものではなく、各次段ルータ装置へのパス数の比率がリンク速度の比率と一致（もしくはほぼ一致）させることができるような方法であれば、どのようなものでも良い。
【０１１０】
このようにして次段ルータを決定したカットスルー制御部２０２では、次段ルータに対し設定メッセージが、次段ルータがルータ装置１０２の場合にはネットワークインタフェース２２１を通じ、ルータ装置１０３の場合にはネットワークインタフェース２２２を通じて、送出される（ステップＳ５０９）。
【０１１１】
この後、カットスルーの終点であるルータ装置１０４もしくは途中のルータからの設定完了のメッセージが到着することで（ステップＳ５１０）、受信したメッセージ中に含まれるフロー情報とラベル情報とそれに対応する送信フロー情報とラベル情報の関連付けが完了し、入力インタフェース上２１１〜２１１Ｎ上から出力インタフェース２２１または２２２へのカットスルーパスの設定が可能となり、カットスルー転送への移行が可能となる（ステップＳ５１１）。
【０１１２】
カットスルー転送への移行は、図２のような構成のルータ装置の場合には、受信インタフェース２１１〜２１Ｎ上に存在するラベルスイッチテーブル上に、出力ラベル情報を設定することで完了となる。
【０１１３】
このように、基本的にリンク速度が異なる場合には、次段ルータ装置の選択のアルゴリズムを変更するだけで対応可能であることがわかる。
【０１１４】
なお、リンク速度の相違を考慮する場合で、かつ、マージされるスイッチを使用する（マージを行う）場合についても、図４の例について行った説明とほとんど同様であり、ただステップＳ４０８の選択処理を例えば図５のステップＳ５０８のようにリンク速度を考慮したものに変更すればよい。
【０１１５】
また、本実施形態では、図３〜図５の処理にて次段情報の決定時、すなわち、ステップＳ３０８、ステップＳ４０８、ステップＳ５０８の処理アルゴリズムを変更することで、マージする場合についても、マージしない場合についても、様々な用途およびロードバランスを実施することが可能である。そのいくつかの応用例を以下に示す。
【０１１６】
ルータ装置１０１では、ルータ装置１０４またはネットワーク１２０以外にも、様々なカットスルーパスが生成されることがある。例えば、ルータ装置１０１では、別の宛先へのカットスルーパスについて、ルータ装置１０２を次段ルータ装置として既に設定されたカットスルーパスの数とルータ装置１０３を次段ルータ装置として既に設定されたカットスルーパスの数を考慮し、どちらか一方（例えば、ルータ装置１０２とする）が多く設定されている場合には、他方のルータ装置（この場合、ルータ装置１０３）への選択確率が上がるように、重み付けする。これにより、ルータ装置１０２およびルータ装置１０３に対するトータルのカットスルーパスのバランスを取ることが可能である。
【０１１７】
また、カットスルーパスの生成時にエッジルータ装置にて、ＱｏＳ情報が含まれているような場合には、既にＱｏＳを含んで設定されているカットスルーパス数によって、指定ＱｏＳを満足していることが容易なルータ装置を選択するように、アルゴリズムを変更すればよい。
【０１１８】
その他にも、種々のバリエーションが考えられる。
【０１１９】
に、図６に、本実施形態におけるＩＰ等のヘッダ情報から次段情報を求めるために使用するルーチングテーブル２０３の構成例を示す。
【０１２０】
宛先アドレス６０１の欄は、転送時および設定メッセージの宛先アドレス情報から次段情報を求めるためのキーとなる情報である。
【０１２１】
次段情報６０２の欄は、該当する宛先情報について保持する次段情報の数を保持するために使用し、マルチパスの場合には２以上の値が設定されている。
【０１２２】
次段情報６１１〜６１Ｎは、該当する宛先情報へデータグラムを転送するための次段情報のアドレスを保持するもので、次段情報６０２で設定された値によって、エントリ数が変化する。ただし、このエントリには、実際の次段ルータ装置のアドレス情報が入っている必要はなく、次段ルータ装置情報が格納されている情報の位置を示すような情報でも構わない。
【０１２３】
カットスルー設定数６０３の欄は、該当する宛先情報について、既に設定されているカットスルーパスの設定数を表し、図３〜図５等で示した処理について、複数存在する次段ルータ装置を決定する処理で使用する場合がある。
【０１２４】
図７に、本実施形態における受信したデータグラム（フレーム）に付加されるラベル値から送出インタフェースや送出ラベルを求め、ＩＰ処理を介さずに転送するために使用するラベルスイッチテーブル２３３の構成例を示す。
【０１２５】
受信ラベル７０１の欄は、受信フレームのヘッダ情報に含まれるラベルと一致するもので、本テーブルの検索のキーとなるものである。ＡＴＭの場合にはＶＰＩ／ＶＣＩが使用される。
【０１２６】
送信インタフェース７０２は、送出すべきネットワークインタフェースを指定するもので、スイッチ部２０４にてスイッチするために使用する。
【０１２７】
送出ラベル値欄７０３は、次のルータ装置に送るために付加するラベル、および物理レイヤが異なる場合にはその物理レイヤに関するヘッダ情報を格納するために使用される。
【０１２８】
以上のように本実施形態によれば、ロードバランスを実行する場合に、エッジルータの関与なしに、実際にマルチパス情報を持つルータ装置のみにて行うことができる。
【０１２９】
また、制御や実装の複雑化を回避し、効果的なロードバランスを実現することができる。
【０１３０】
さて、これまでは、カットスルーパスの設定、特に負荷分散のための次段の選択について説明してきたが、以下では、実際に流れるトラヒック量に応じて行うカットスルーパスの再設定について説明する。
【０１３１】
図８に、実際に流れるトラヒック量に応じてカットスルーパスの再設定を行う機能を持たせたルータ装置１０１の構成例を示す。
【０１３２】
ＩＰ処理部８０１は、ＩＰデータグラムの宛先情報に基づいて当該データグラムが自分宛のものである否か調べ、自分宛のデータグラムについては、受信処理を行って、上位のプロトコル（例えば、ＴＣＰ）に転送し、自分宛でないものについては、次の転送先を決定し、次段のルータ装置に転送するための処理を行う。
【０１３３】
なお、ルータ装置１０１では、ラベルによるスイッチイング機能を有するため、後者の自分宛でないデータグラムに対する転送機能を有する必要性は必ずしもない。
【０１３４】
カットスルー制御部８０２は、隣接するルータ装置との間でデータグラムフローおよびラベル情報について共通の認識を得る（データグラムフローとラベルの情報をやり取りする）ために使用するプロトコルを実行する部分である。
【０１３５】
ルーチングテーブル８０３は、宛先アドレスから次に送るべきルータ装置を求めるためのテーブルであり、次段情報は複数持つことも可能であるが、経路によってはマルチパスが存在しない場合もあるので、必ずしも複数ではない。
【０１３６】
ネットワークインタフェース８１１〜８１Ｎは、それぞれルータ装置１１１〜１１Ｎと接続されるもので、物理層としては、ＦＡＮＰ、ＴＤＰ、ＬＤＰ等が使用可能なものであれば何でも良く、例えばＡＴＭ、フレームリレー、イーサネット（登録商標）などが考えられる。
【０１３７】
ネットワークインタフェース８２１は、ルータ装置１０２に接続され、動作としてはネットワークインタフェース８１１〜８１Ｎと同様のものである（ここでは、ネットワークインタフェース８１１〜８１Ｎと同一構成とする）。
【０１３８】
ネットワークインタフェース８２２は、ルータ装置１０３に接続され、動作としてはネットワークインタフェース８１１〜８１Ｎと同様のものである（ここでは、ネットワークインタフェース８１１〜８１Ｎと同一構成とする）。
【０１３９】
スイッチ部８０４は、カットスルー転送が可能な場合には、ネットワークインタフェースからネットワークインタフェースへと直接スイッチング可能となるようなスイッチ装置である。
【０１４０】
各ネットワークインタフェースの構成について、ネットワークインタフェース８２１を例に取って説明する。
【０１４１】
物理層処理部８３１は、ネットワークインタフェースが収容する物理層に応じて異なる処理が行われるが、ＡＴＭの場合にはセル同期等の処理、イーサネット（登録商標）の場合にはＭＡＣ処理等が、物理層処理にあたる。
【０１４２】
物理層カウンタ８３２は、ネットワークインタフェース８２１から送出される物理層フレーム数を保持するものである。
【０１４３】
ラベル処理部８３２は、受信したデータグラム（フレーム）のヘッダ情報よりラベルを抽出した後、ラベルテーブル８３３を検索することで、次のルータ装置へのラベルを決定し、ＩＰ処理を実行せずに、ラベルスイッチ部８０４を通じてそのまま次のルータに転送するための処理を行うものである。
【０１４４】
なお、ＡＴＭの場合には、ラベル処理部８３３およびラベルテーブル８３４は、ＡＴＭスイッチ等で使用するＶＰＩ／ＶＣＩによるスイッチテーブルがそのまま使用可能であり、ルータ装置１０１が全てＡＴＭの場合には、ネットワークインタフェース８１１〜８１Ｎ，８２１，８２２、ラベル処理部８３２、ラベルテーブル８３３、スイッチ部８０４の全ての機能がＡＴＭスイッチで実現可能となる。
【０１４５】
実際に流れるトラヒック量に応じたカットスルーパスの再設定手順としては、概略的には、対象となるネットワークインタフェース毎にトラフィック量の計数値を定期的に参照し、所定の基準に従ってカットスルーパスを再設定すべきか否かを判断し、再設定すべきと判断された場合に、所定の方法で選択した１または複数のカットスルーパスの再設定（マージが行われていない場合には設定／解放、マージが行われている場合にはラベルスイッチテーブルの内容変更）を逐次的にもしくは纏めて行う。
【０１４６】
図９に、図１に示したネットワークにおいて、例えばルータ装置１１１〜１１Ｎが最終宛先をネットワーク１２０またはルータ装置１０４とするカットスルーを、図３に例示した方法等で生成した後に、実際の送出トラヒックを測定し、カットスルーパスの再設定を行う処理手順の一例を示す。ここでは、ルータ装置１０１でマージしない場合の例について示す。
【０１４７】
この手順は、適当なタイミングで、繰り返し実行するものとする。
【０１４８】
ルータ装置１０１では、ルーチングテーブル８０３でマルチパスが存在する場合（本例では、ネットワーク１２０およびルータ装置１０４）に、その出力インタフェースとして、指定されたものについて、トラヒックを測定する（ステップＳ９０１）。この場合、測定されるのはネットワークインタフェース８２１とネットワークインタフェース８２２である。
【０１４９】
トラヒックの測定は設定したカットスルーパス上のトラヒックでも可能であるが、バランスが取れているかどうかの確認のためには、ネットワークインタフェース８２１上に存在する物理層カウンタ８３２を用いた方が効率は良い。ネットワークインタフェース８２２についても同様である。
【０１５０】
ネットワークインタフェース８２１とネットワークインタフェース８２２についてそれぞれの物理層カウンタ８３２により送出カウンタ値を取得したならば、両者の送出カウンタ値を比較あるいは評価して、それら値の関係（例えば、比率）が許容範囲であるかどうかをチェックする（ステップＳ９０２）。
【０１５１】
ここで、許容範囲とは、ネットワークインタフェース８２１とネットワークインタフェース８２２のリンク速度や使用率によって決定されるもので、例えばネットワークインタフェース８２１のトラフィック量の計数値とネットワークインタフェース８２２のトラフィック量の計数値との比がそれらのリンク速度の比率に一致もしくは近似していることが好ましい。また、双方ともトラヒックが少ない場合にはバランスがとれていなくても許容範囲としても良い。
【０１５２】
上記のチェック後、許容範囲内の場合には、トラヒック的にはバランスが取れているものとして終了して良い（ステップＳ９０３）。
【０１５３】
一方、ステップＳ９０２において許容範囲を超えている場合には、送出量の多いネットワークインタフェース（例えばネットワークインタフェース８２１側とする）において、マルチパスで設定されたカットスルーパスの中から再設定対象とするカットスルーパスを１つ選択し（ステップＳ９０４）、該選択したカットスルーパスを流れるトラヒック量の計数値を調べる（ステップＳ９０５）。
【０１５４】
次に、チェックしたカットスルーパスのトラヒック量ｘを送出量の少ないネットワークインタフェース（８２２）のトラヒック量Ｍに加算した値（Ｍ＋ｘ）と、該チェックしたカットスルーパスのトラヒック量ｘを送出量の多いネットワークインタフェースフェース（８２１）のトラヒック量Ｎから減算した値（Ｎ−ｘ）とを比較もしくは評価して（ステップＳ９０６）、許容範囲、送出量の多いネットワークインタフェース（８２１）側に偏り過ぎ、送出量の少ないネットワークインタフェース（８２２）側に偏り過ぎをチェックする。
【０１５５】
許容範囲または送出量の多いネットワークインタフェース（８２１）側に偏っている場合には、トラヒックを測定したカットスルーパスの次段ルータを、送出量の多いネットワークインタフェース（８２１）に対応するルータ装置（１０２）から送出量の少ないネットワークインタフェース（８２２）に対応するルータ装置（１０３）に切り替えるようにカットスルーパスの再設定を行い（ステップＳ９０７）、そして、許容範囲の場合は終了となり（ステップＳ９０８）、送出量の多いネットワークインタフェース（８２１）に偏っている場合には、ステップＳ９０４以降の処理を繰り返す（ステップＳ９０９）。
【０１５６】
再設定方法は、カットスループロトコルによって異なり、カットスルーパスを解放後に設定するものと、設定後に解放処理を行うものがある。
【０１５７】
一方、送出量の少ないネットワークインタフェース（８２２）側に偏っている場合には、測定したカットスルーパスの出力先を変更せずに、別のカットスルーパスを切り替えるために、ステップＳ９０４以降の処理を繰り返す（ステップＳ９１０）。
【０１５８】
このような方法の場合には、バランスが許容範囲に達しない場合も考えられるが、その場合には、現状の状態と再設定後に想定される状態とで、許容範囲に近い方法を取ることも考えられる。
【０１５９】
次に、図１０に、図１に示したネットワークにおいて、例えばルータ装置１１１〜１１Ｎが最終宛先をネットワーク１２０またはルータ装置１０４とするカットスルーを、図４に例示した方法等で生成した後に、実際の送出トラヒックを測定し、カットスルーパスの再設定を行う処理手順の一例を示す。ここでは、ルータ装置１０１でマージする場合の例について示す。
【０１６０】
この手順は、適当なタイミングで、繰り返し実行するものとする。
【０１６１】
ルータ装置１０１では、ルーチングテーブル８０３でマルチパスが存在する場合（本例では、ネットワーク１２０およびルータ装置１０４）に、その出力インタフェースとして、指定されたものについて、トラヒックを測定する（ステップＳ１００１）。この場合、測定されるのはネットワークインタフェース８２１とネットワークインタフェース８２２である。
【０１６２】
トラヒックの測定は設定したカットスルーパス上のトラヒックでも可能であるが、バランスが取れているかどうかの確認のためには、ネットワークインタフェース８２１上に存在する物理層カウンタ８３２を用いた方が効率は良い。ネットワークインタフェース８２２についても同様である。
【０１６３】
ネットワークインタフェース８２１とネットワークインタフェース８２２についてそれぞれの物理層カウンタ８３２により送出カウンタを取得したならば、両者の送出カウンタを比較あるいは評価して、それら値の関係（例えば、比率）が許容範囲であるかどうかをチェックする（ステップＳ１００２）。
【０１６４】
ここで、許容範囲とは、ネットワークインタフェース８２１とネットワークインタフェース８２２のリンク速度や使用率によって決定されるもので、例えばネットワークインタフェース８２１のトラフィック量の計数値とネットワークインタフェース８２２のトラフィック量の計数値との比がそれらのリンク速度の比率に一致もしくは近似していることが好ましい。また、双方ともトラヒックが少ない場合にはバランスがとれていなくても許容範囲としても良い。
【０１６５】
上記のチェック後、許容範囲内の場合には、トラヒック的にはバランスが取れているものとして終了して良い（ステップＳ１００３）。
【０１６６】
一方、ステップＳ１００２において許容範囲を超えている場合には、送出量の多いネットワークインタフェース（例えばネットワークインタフェース８２１側とする）において、マルチパスで設定されたカットスルーパスの中から再設定対象とするカットスルーパスを１つ選択し（ステップＳ１００４）、該選択したカットスルーパスを流れるトラヒック量の計数値を調べる（ステップＳ１００５）。
【０１６７】
ここで、注意すべき点は、各カットスルーパスの送出トラヒックは既にマージされた後であるため、マージする前の受信トラヒックを測定する必要がある。
【０１６８】
次に、チェックしたカットスルーパスのトラヒック量ｘを送出量の少ないネットワークインタフェース（８２２）のトラヒック量Ｍに加算した値（Ｍ＋ｘ）と、該チェックしたカットスルーパスのトラヒック量ｘを送出量の多いネットワークインタフェースフェース（８２１）のトラヒック量Ｎから減算した値（Ｎ−ｘ）とを比較もしくは評価して（ステップＳ１００６）、許容範囲、ネットワークインタフェース８２１側に偏り過ぎ、ネットワークインタフェース８２２側に偏り過ぎをチェックする。
【０１６９】
許容範囲または送出量の多いネットワークインタフェースフェース（８２１）側に偏っている場合には、トラヒックを測定したカットスルーパスのラベルスイッチテーブル８２３を、送出量の少ないネットワークインタフェース（８２２）に出力するラベルに書き換える（ステップＳ１００７）。そして、設定後、ステップＳ１００６の処理で許容範囲になっている場合は終了となり（ステップＳ１００８）、送出量の多いネットワークインタフェースフェース（８２１）に偏っている場合には、ステップＳ１００４以降の処理を繰り返す（ステップＳ１００９）。
【０１７０】
ここで、出力先を変更したカットスルーパスについて、プロトコル処理が必要か否かは、使用しているプロトコルに依存する。
【０１７１】
一方、送出量の少ないネットワークインタフェース（８２２）側に偏っている場合には、測定したカットスルーパスの出力先を変更せずに、別のカットスルーパスを切り替えるためにステップＳ１００４以降の処理を繰り返す（ステップＳ１０１０）。
【０１７２】
このような方法の場合には、バランスが許容範囲に達しない場合も考えられるが、その場合には、現状の状態と再設定後に想定される状態とで、許容範囲に近い方法を取ることも考えられる。
【０１７３】
なお、図９の手順のステップＳ９０６や図１０の手順のステップＳ１００６における比較あるいは評価の基準としては、種々のものが考えられる。
【０１７４】
例えば、選択したカットスルーパスを再設定すると、トラヒック量の大小関係が逆転するとき、すなわちＮ＞Ｍかつ（Ｎ−ｘ）＜（Ｍ＋ｘ）となるときには、選択したカットスルーパスを採用しない（再設定しない）とする場合には、（Ｎ−ｘ）＜（Ｍ＋ｘ）のとき送出量の少ないネットワークインタフェース（本例では８２２）側に偏り過ぎとしてステップＳ９０６／ステップＳ１００６からステップＳ９０４／ステップＳ１００４に戻り、それ以外で許容範囲のときステップＳ９０７／ステップＳ１００７から終了し、それ以外のとき依然として送出量の多いネットワークインタフェース（本例では８２１）側に偏り過ぎとしてステップＳ９０６／ステップＳ１００６からステップＳ９０４／ステップＳ１００４に戻るようにしてもよい。
【０１７５】
また、例えば、上限許容値＞＝（Ｎ−ｘ）／（Ｍ＋ｘ）＞＝下限許容値のとき許容範囲、（Ｎ−ｘ）／（Ｍ＋ｘ）＞上限許容値のとき送出量の多いネットワークインタフェース（本例では８２１）側に偏り過ぎ、下限許容値＞（Ｎ−ｘ）／（Ｍ＋ｘ）のとき送出量の少ないネットワークインタフェース（本例では８２２）側に偏り過ぎとしてもよい。
【０１７６】
また、図９の手順のステップＳ９０４や図１０の手順のステップＳ１００４でのカットスルーパスの選択方法としても、種々のものが考えられる。
【０１７７】
例えば、ラベルスイッチテーブル８３４のエントリを１つずつ整列順に選択していってもよい。また、例えば、ラベルスイッチテーブル８３４のエントリをそのトラフィック量の計数値の多いものから順に選択していってもよい。
【０１７８】
また、図９や図１０の手順例では、再設定対象とする１つのカットスルーパスの選択／選択したカットスルーパスを再設定するか否かの判断／再設定すると判断された場合の再設定／繰り返し処理を続行するか否かの判断といった一連の処理を繰り返し行うものであったが、最初に再設定対象とするカットスルーパスの選択を行い、後でまとめて再設定を行うようにしてもよい。
【０１７９】
また、各ネットワークインタフェースのトラフィック量と、マルチパスで設定された各カットスルーパスのトラフィック量とを考慮して、再設定すべき１または複数のカットスルーパスの最適な解もしくは次善の解を求めるようにしてもよい。この場合に、解が複数ある場合には、再設定すべきカットスルーパスの数が最小ものを選択するようにしてもよい。また、解が複数ある場合に、得られるバランスの程度や再設定すべきカットスルーパスの数などを総合的に勘案して解を選択するようにしてもよい。
【０１８０】
次に、図１１に、本実施形態における受信したデータグラム（フレーム）に付加されるラベル値から送出インタフェースや送出ラベルを求め、ＩＰ処理を介さずに転送するために使用するラベルスイッチテーブル８３４の構成例を示す。
【０１８１】
受信ラベル１１０１の欄は、受信フレームのヘッダ情報に含まれるラベルと一致するもので、本テーブルの検索のキーとなるものである。ＡＴＭの場合にはＶＰＩ／ＶＣＩが使用される。
【０１８２】
送信インタフェース１１０２は、送出すべきネットワークインタフェースを指定するもので、スイッチ部８０４にてスイッチするために使用する。
【０１８３】
送出ラベル値欄１１０３は、次のルータ装置に送るために付加するラベルおよび物理レイヤが異なる場合には、その物理レイヤに関するヘッダ情報を格納するために使用される。
【０１８４】
受信フレーム数欄１１０４は、このラベルテーブル情報によって転送されたフレーム数を意味し、図９や図１０で示したカットスルーパス単位のトラヒック測定時に参照される。
【０１８５】
本実施形態によれば、実際に流れるトラヒック量に応じてカットスルーパスの再設定を行うので、より効果的なロードバランスを実現することができる。
【０１８６】
図１〜図７で説明したルータ装置や設定手順に係る発明と、図１，８〜１１で説明したルータ装置や再設定手順に係る発明は、組み合わせて実施することも可能であるし、独立して実施することも可能である。
【０１８７】
なお、以上の各機能は、ソフトウェアとしても実現可能である。
【０１８８】
また、各発明の各実施形態は、コンピュータに所定の手順を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。
【０１８９】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０１９０】
（２）さて、以下では、図１２〜図２０を参照しながら、他の発明の実施の形態等について説明する。
【０１９１】
本発明は、例えば、一つ以上のＶＰＮを収容するルータ装置（ラベルスイッチルータ装置）、その通信方法などに関するものである。
【０１９２】
＜実施形態２−１＞
図１２は、本発明におけるルータ装置を使用して、一つのＶＰＮを収容するようなネットワーク構成の一例について示したものである。
【０１９３】
ネットワーク１２０１は、ＶＰＮ（Ｖｉｒｔｕａｌ Ｐｒｉｖａｔｅ Ｎｅｔｗｏｒｋ）を収容するためのネットワークである。
【０１９４】
ルータ装置１２１１〜１２１Ｍは、各ルータ間にて、転送するデータグラムフローの情報と下位レイヤの情報について共通の認識を得ることで、パケットヘッダ情報を見ることなく、下位レイヤ情報だけで、高速なデータグラム転送を可能とするラベルスイッチパス（以後、ＬＳＰとも呼ぶ）を生成する機能を有する装置であり、ラベルスイッチの中段としての役割を果たすものである。
【０１９５】
エッジルータ装置１２２１〜１２２Ｎは、プライベートネットワークを収容することが可能なルータ装置であり、ＬＳＰの起点および終点となる機能を有するものである。
【０１９６】
ネットワーク１２３１〜１２３Ｎは、それぞれエッジルータ装置１２２１〜１２２Ｎに収容されている。また、ネットワーク１２０１を介して、一つの仮想ネットワーク（以後、ＶＰＮと呼ぶ）１２０２を形成している。
【０１９７】
ここで、ＶＰＮにおけるアドレス空間に関して説明しておく。
【０１９８】
ＶＰＮを構成する各プライベートネットワークでは、そのＶＰＮ内でのみ有効なローカルなアドレス空間（以後、プライベートアドレス空間と呼ぶ）が共有して用いられる。一つのプライベートアドレス空間の中では、アドレスの重複が無い。一方、非プライベートネットワークでは、複数のＶＰＮ間で有効なアドレス空間（例えば、グローバル空間もしくはプロバイダ空間）が用いられる。
図１２の例では、ネットワーク１２０１がグローバルアドレス空間を用いるものとし、一方、ネットワーク１２３１〜１２３Ｎがプライベートアドレス空間を用いたＶＰＮを構成するものとして、以後の説明を行う。
【０１９９】
エッジルータ装置１２２１〜１２２Ｎは、グローバルアドレス空間とプライベートアドレス空間との境界に存在しており、それぞれのアドレス空間につきそれぞれのネットワークインタフェースを備える。
【０２００】
図１２の例では、非プライベートネットワーク１２０１側のネットワークインタフェース（１２５１〜１２５Ｎ）にはグローバルアドレス空間に属するアドレスが付き、一方、プライベートネットワーク側のネットワークインタフェース（１２６１〜１２６Ｎ）にはプライベートアドレス空間に属するアドレスが付く。以後、このプライベートアドレス空間には“１２０２”という識別子が与えられることとする。
【０２０１】
ラベルスイッチパス１２４２〜１２４Ｌは、ＶＰＮ１２０２を構成するために、エッジルータ装置１２２１〜１２２Ｎによって設定されたものである。
【０２０２】
ＬＳＰを流れるデータグラムは途中のルータ装置（例えば１２１１〜１２１Ｍ）ではＩＰ処理されない。したがって、そのパケットヘッダにプライベートアドレスがついていても、ＬＳＰで接続されるエッジルータ装置には直接届けられる。これを利用して、各プライベートネットワーク同士が、非プライベートネットワーク上のＬＳＰを介して、プライベートパケットをやりとりすることが可能になる。
【０２０３】
例えば、図１２のＶＰＮでは、ＬＳＰ１２４１〜１２４Ｌの内部にはプライベートアドレス空間１２０２に属するパケットを流すようにする。これは、当該ＬＳＰの起点であるエッジルータ装置１２２１〜１２２Ｎによって制御される。
【０２０４】
図１３に、図１２に示したエッジルータ装置について、エッジルータ１２２１を例にとり、その一構成例を示す。
【０２０５】
図１３のグローバル処理モジュール１３０１は、非プライベートネットワークに接続するためのものである。
【０２０６】
ＩＰ処理部１３０２は、ネットワーク層の処理を行うが、ここではグローバルアドレス空間に属するパケットを処理する。
【０２０７】
ルーチングテーブル１３０３は、グローバルアドレス空間に属する宛先アドレスや次段情報を管理する。
【０２０８】
ＬＳＰ制御部１３０４は、非プライベートネットワークを経由するラベルスイッチパスを設定するためのプロトコル（以後、ＬＳＰ設定プロトコルと呼ぶ）を実行する。
【０２０９】
ネットワークインタフェース１３０５は、非プライベートネットワークに接続するためのインタフェースであり、グローバルアドレス空間に属するアドレスがつき、前記ＬＳＰ設定プロトコルの通信インタフェースとしても機能する。
【０２１０】
本ネットワークインタフェース１３０５の下位レイヤとしては、ＬＳＰが設定可能なものであれば、どのようなものでも良い。例えばＡＴＭ、フレームリレー、イーサネット（登録商標）などが考えられる。スイッチ部１３０６がこれを提供している。
【０２１１】
スイッチ部１３０６は、データリンクにてプライベート処理モジュール１３１１と接続されている。
【０２１２】
プライベート処理モジュール１３１１は、プライベートネットワークを収容するためのものである。
【０２１３】
ＩＰ処理部１３１２は、ＩＰ処理部１３０２と同様の処理を行うが、ここではプライベートアドレス空間に属するパケットを処理する。
【０２１４】
ルーチングテーブル１３１３は、プライベートアドレス空間に属する宛先アドレスや次段情報を管理する。
【０２１５】
ネットワークインタフェース１３１４は、プライベートネットワークを収容するためのインタフェースの一例であり、プライベートアドレス空間に属するアドレスが付く。
【０２１６】
プライベート処理モジュール１３１１は、一つのネットワークインタフェース１３１４を備えているが、もし前記プライベート空間と同一空間に属するプライベートネットワークが複数あれば、それらを収容するために、同様なネットワークインタフェースを本モジュール内に相応数備えても構わない。
【０２１７】
前記ネットワークインタフェースの下位レイヤとしては、必ずしもＬＳＰが設定可能なものでなくても良い。一般的にネットワーク層の下で利用されている任意の下位レイヤにて実施可能である。
【０２１８】
プライベート処理モジュール１３１１とグローバル処理モジュール１３０１とを接続するデータリンク上には、あらかじめ複数のパスを用意しておく。パスの実現例としては、該データリンクが例えばＡＴＭならば仮想コネクションにて実現できる。
【０２１９】
各パスの識別子は、図１３の例では１３２１〜１３２Ｍ、１３３１〜１３３Ｍのようになる。
【０２２０】
プライベート処理モジュール１３１１では、図１２のようなＬＳＰを張るためにＬＳＰ設定プロトコルを行わなくとも良いため、グローバル処理モジュール１３０１とは異なり、ＬＳＰ制御部１３０４を実装しなくとも良い。
【０２２１】
以上のように、各モジュールは、それぞれがネットワーク層の処理を行うが、一つのモジュールが複数のアドレス空間を管理しなくとも良い。
【０２２２】
このようなネットワーク層の処理は、例えば、現在一般的なルータに使用されているソフトウェアもしくはハードウェアを組み込んで実装できる。また、そのソフトウェアもしくはハードウェアは、ネットワーク層につき一つのアドレス空間に属する処理のみを行うものでも構わない（充分である）。
【０２２３】
図１４では、各プライベートネットワークを非プライベートネットワーク上のＬＳＰで相互接続してＶＰＮを構築するためのエッジルータ装置の処理手順を、図１２に示したエッジルータ装置１２２１の場合を例にとって説明する。
【０２２４】
はじめに、エッジルータ装置１２２１は自分自身の初期設定を行う（ステップＳ１４０１）。
【０２２５】
具体的には、グローバルアドレスと、プライベートアドレスならびにプライベートアドレス空間の識別子（以後、ＶＰＮ識別子と呼ぶ）とをそれぞれ設定する。ＶＰＮ識別子は、この例では“１２０２”とする。
【０２２６】
かかる設定の際、図１３の装置構成例においては、グローバル側のアドレスはグローバル処理モジュール１３０１のネットワークインタフェース１３０５に付加され、プライベート側のアドレスはプライベート処理モジュール１３１１のネットワークインタフェース１３１４に付加される。
【０２２７】
さらに、これらのアドレスとＶＰＮ識別子とがＬＳＰ制御部１３０４に記憶される。
【０２２８】
ここで設定に使った（ＶＰＮ識別子、プライベートアドレス、グローバルアドレス）の三つ組を、ＶＰＮメンバーシップ情報と呼ぶことにする。
【０２２９】
次に、図１２のエッジルータ装置１２２１は、ＬＳＰを設定すべき相手方のシステムの存在、すなわち、自分と同じＶＰＮ識別子“１２０２”を有するプライベートネットワークを収容するエッジルータ装置が自分以外にも非プライベートネットワーク１２０１上に存在することを認識すべく、前記ＶＰＮメンバーシップ情報を追加獲得する（ステップＳ１４０２）。
【０２３０】
非プライベートネットワーク１２０１上での他者の存在を認識しなければならないため、前記メンバーシップ情報の収集は、グローバル処理モジュール１３０１によって実行される。かかる具体的手段としては、その際にはメンバーシップ情報を第三者によって偽られたりしないように認証等の付加的機能を持った手段が適切であるが、例えばＳＮＭＰ（Ｓｉｍｐｌｅ Ｎｅｔｗｏｒｋ Ｍａｎａｇｅｍｅｎｔ Ｐｒｏｔｏｃｏｌ）やＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ Ｄｉｒｅｃｔｏｒｙ Ａｃｃｅｓｓ Ｐｒｏｃｏｔｏｌ）等の動的な配布プロトコルや、もしくは手設定などが考えられる。
【０２３１】
グローバル処理モジュール１３０１は、収集したＶＰＮメンバーシップ情報をローカルなデータベースとして保持する。
【０２３２】
次に、ＬＳＰ制御部１３０４は、当該エッジルータ装置へ向けてＬＳＰを形成するために、グローバル側のインタフェース１３０５からＬＳＰ設定要求メッセージを送信する（ステップＳ１４０３）。この場合は、送信用ＬＳＰの発呼を意味する。
【０２３３】
前記ＬＳＰ設定要求メッセージにおいて、フローの識別情報には、（ＶＰＮ識別子、ＬＳＰ起点エッジルータのグローバルアドレス、ＬＳＰ終点エッジルータのグローバルアドレス）の三つ組の値を含ませるようにする。この三つ組情報を含むようなフロー識別情報を、ＶＰＮフロー識別子と呼ぶことにする。
【０２３４】
しかる後、前記ＬＳＰ設定メッセージにて要求したＬＳＰに関するＬＳＰ設定完了通知が、図１３に示したＬＳＰ処理部１３０４に到着すると（ステップＳ１４０４）、グローバル処理モジュール１３０１は、スイッチ部１３０６を操作し、設定された前記ＬＳＰをプライベート処理モジュール１３１１まで延長接続する（ステップＳ１４０５）。
【０２３５】
例えば、エッジルータ１２２１からエッジルータ１２２Ｎへ到達するＬＳＰが設定されたことを確認したときは、ラベル値１３６Ｎを持つＬＳＰおよび識別子の値１３２Ｍを持つパスの両者を、スイッチ部１３０６で接続する。
【０２３６】
なお、この操作は、エッジルータ装置が内部的に行うことであり、非プライベートネットワーク上のＬＳＰ接続状態には影響を与えない。
【０２３７】
ここで、前記ラベル値はＬＳＰ設定プロトコルにより割り当てられたものである。
【０２３８】
また、前記パスの識別子は、先述のあらかじめ用意されていた複数のパスから選択した一つの識別子である。
【０２３９】
以上の操作を行った後、グローバル処理モジュール１３０１は、図１３に示したバーチャルインタフェース設定命令を発行し、ＶＰＮ識別子に当該のプライベート処理モジュール１３１１内にバーチャルインタフェースを設定する（ステップＳ１４０６）。
【０２４０】
この場合のバーチャルインタフェース設定命令では、プライベート処理モジュール１３１１が備えるルーチングテーブルに新たなエントリを追加記入し得る情報を通知する。
【０２４１】
ここでは、バーチャルインタフェースの初期状態としてＤＯＷＮ状態としておく。
【０２４２】
なお、グローバル処理モジュールがＬＳＰを延長し、相手方のエッジルータに対応するバーチャルインタフェースをプライベート処理モジュール内に設定するタイミングは、少なくとも自エッジルータの隣接ノードまでラベルスイッチパスが設定された後であっても良いが、これだと非プライベートネットワークの内部でＬＳＰが終端してしまっている場合に、自エッジルータのプライベート処理モジュールから転送されたパケットが行き先不明により失われてしまう可能性がある。上記のように、このタイミングを、相手方のエッジルータまで到達するようにラベルスイッチパスが設定された後とすれば、このようなパケットロスを防ぐことができる。
【０２４３】
しかる後、グローバル側のネットワークインタフェース１３０５にてＬＳＰ設定メッセージが到着する（ステップＳ１４０７）。
【０２４４】
このとき、まず、エッジルータ１２２１はＶＰＮメンバーシップ情報データベースを照合し、前記設定メッセージを受け付けるかどうかを判断する（ステップＳ１４０８）。
【０２４５】
受け付けても良い場合としては、前記メッセージにてＬＳＰのラベルに対応付けられているＶＰＮフロー識別子について、ＶＰＮ識別子と自らが収容しているプライベートネットワークのＶＰＮ識別子（この例では“１２０２”）とが一致し、ＬＳＰ終点エッジルータのグローバルアドレスが自分自身のグローバルアドレスと一致し（以上は受信用ＬＳＰの着呼を意味する）、かつ、該起点エッジルータのプライベートアドレス（これは、この時点で持っているＶＰＮメンバーシップ情報データベースから検索できる）との間でまだ受信用ＬＳＰが張られていない、という条件がすべて合致するときが挙げられる。
【０２４６】
このような場合は設定完了通知メッセージを送出し（ステップＳ１４０９）、そうでない場合は終了する（ステップＳ１４１０）。ＬＳＰ設定プロトコルの仕様にも依存するが、もしＮａｃｋを返す機構が定義されていれば、単に終了とせずに、Ｎａｃｋを返しても良い。
【０２４７】
設定完了通知を送出したならば、図１３に示したグローバル処理モジュール１３０１は、スイッチ部１３０６を操作し、設定された前記ＬＳＰをプライベート処理モジュール１３１１まで延長接続する（ステップＳ１４１１）。
【０２４８】
例えば、エッジルータ１２２Ｎからエッジルータ１２２１へ到達するＶＰＮ１２０２に関するＬＳＰの設定を受け付けたときは、ラベル値１３７Ｎを持つＬＳＰおよび識別子の値１３３Ｍを持つパスの両者を、スイッチ部１３０６で接続する。
【０２４９】
この操作の結果、ＬＳＰの実質的な終点はプライベート処理モジュール１３１１内のバーチャルネットワークインタフェース１３４１となる。
【０２５０】
なお、この操作は、エッジルータ装置が内部的に行うことであり、非プライベートネットワーク上のＬＳＰ接続状態には影響を与えない。
【０２５１】
また、前記ラベル値はＬＳＰ設定プロトコルにより割り当てられたものであり、前記パスの識別子は、先述のあらかじめ用意されていた複数のパスから選択した一つの識別子である。
【０２５２】
前記ＬＳＰの延長操作を行った後、グローバル処理モジュール１３０１は、図１３に示したバーチャルインタフェース設定命令を発行し、当該のバーチャルインタフェースをＵＰ状態にする（ステップＳ１４１２）。
【０２５３】
このようにすると、二つのＬＳＰを組にして相手方のシステムと双方向通信ができる状態になったときに、相手方のシステムに対応するバーチャルインタフェースの使用が開始されることになり、プライベート処理モジュールは本発明でのバーチャルネットワークインタフェースを通常のネットワークインタフェースと同様に扱うことが可能になる。
【０２５４】
なお、図１４には省略したが、ＶＰＮメンバーシップ配布プロトコルあるいは手設定によって、自分または相手方のエッジルータが該ＶＰＮメンバーシップから脱退するという割り込みイベントが発生した時は、いかなる状態にあっても、ただちにＬＳＰを解放し、バーチャルインタフェースそのものを消去し、初期状態へ戻る。
【０２５５】
以上のような状態遷移は、すべて、ＬＳＰ設定プロトコルを司るグローバル部モジュールもしくはメンバーシップ情報の変化によって駆動される。したがって、図１３の装置構成例においては、バーチャルインタフェースに関する制御は、すべてグローバル処理モジュール１３０１からの命令によって実現可能である。
【０２５６】
また、プライベート処理モジュール１３１１は、それ自身がＬＳＰ設定プロトコルを実行する必要がなく、バーチャルインタフェースの制御についてはグローバル処理モジュール１３０１からの命令を待っているだけで良いので、該プライベート空間のパケット転送や経路制御のためだけに処理能力を集中することができる。
【０２５７】
なお、前記バーチャルインターフェース制御命令は、任意の下位レイヤプロトコルの拡張により実施可能である。
【０２５８】
このプロトコルは、ＬＳＰ設定プロトコルの仕様には依存せず、単純に、該ＬＳＰに継ぎ足されたパスの下位レイヤ情報と、ＬＳＰにて相互接続された相手方のエッジルータのプライベートアドレスとのペアとを情報として含んでいれば良い。
【０２５９】
これまでに述べた処理手順がすべて行われると、図１２に示したようにエッジルータ同士がＬＳＰで相互接続され、お互いがプライベートアドレス空間１２０２での通常の通信ができるようになる。
【０２６０】
その後は、通常のネットワークと同様の方法で経路制御プロトコルを実行することができ、各プライベートネットワーク１２３１〜１２３Ｎの間で、プライベートアドレス空間１２０２に属するネットワーク通信ができるようになる。
【０２６１】
また、これまで述べた手順により、例えば、エッジルータ１２２１では、プライベート処理モジュール１３１１が扱うすべてのインタフェースは、プライベートアドレス空間１２０１に属することが保証されている。
【０２６２】
したがって、プライベート処理モジュール１３１１は、バーチャルインタフェースも含め、通常のネットワークと同様の手法で、ネットワークインタフェース間のパケット転送を行うことができる。
【０２６３】
このようなエッジルータ装置は、非プライベート処理モジュールとプライベート処理モジュールとが分離された個別の装置としても良いが、その場合、非プライベート処理モジュールがエッジルータ装置となり、プライベート処理モジュールがＣＰＥ装置となる。
【０２６４】
なお、ここでは、双方向ともラベルスイッチパスが設定された場合にバーチャルＩ／Ｆをプライベート処理モジュール内に生成する例を示したが、どちらか一方向のラベルスイッチパスしか設定されていない場合でも、そのことをプライベート処理モジュールが認識できるようにしつつバーチャルＩ／Ｆを生成するように変形実施することも可能である。
【０２６５】
図１５は、グローバル処理モジュールによって保持されるＶＰＮメンバーシップ情報のデータベースの一例を示す。
【０２６６】
例えば、図１２におけるプライベートネットワーク１２３Ｎに関するＶＰＮメンバーシップ情報を得たとすると、図１５のデータベースに追加されるエントリとしては、ＶＰＮ識別子の欄１５０１の値、プライベートアドレスの欄１５０２の値、グローバルアドレスの欄１５０３の値は、それぞれ（１２０２、１２６Ｎ、１２５Ｎ）となる。
【０２６７】
図１６は、ＬＳＰ制御部１３０４によって管理される、ＶＰＮフロー識別子に関するテーブルの一形式である。
【０２６８】
ＶＰＮフロー識別子の欄１６０１は、そのＶＰＮ識別子が自ら収容するプライベートネットワークのＶＰＮ識別子と一致するもののみを記入するものとする。
【０２６９】
ＬＳＰのラベル値の欄１６０２には、ＬＳＰ設定プロトコルによって前記ＶＰＮフロー識別子に割り当てられたラベル値を記入する。
【０２７０】
パスの識別子の欄１６０３には、非プライベートネットワーク上の該ＬＳＰに接続延長されたパスの識別子を記入する。
【０２７１】
図１７に、バーチャルインタフェースの一構成例を示す。
【０２７２】
図１７のネットワーク層および下位レイヤの入出力１７０１〜１７０４は、たとえば一般的なネットワークオペレーティングシステム実装におけるソフトウェア関数として実装しても良いし、あるいはハードウェアにて実装しても良い。
【０２７３】
送信方向のパス１７０５と受信方向のパス１７０６とが取りまとめられ、送受信可能な一つのネットワークインタフェース１７０７を構成している。
【０２７４】
このように、バーチャルネットワークインタフェースは、ＬＳＰ技術に依存しない通常のネットワークインタフェースに用いられる要素だけで構成して良い。
【０２７５】
送信方向のパスが送信用のＬＳＰと接続されることにより、ＬＳＰの実質的な起点は本バーチャルネットワークインタフェースとなる。
【０２７６】
受信方向のパスは、受信用のＬＳＰと接続される。
【０２７７】
図１８に、プライベート処理モジュールが管理するルーチングテーブルの形式の一例を示す。
【０２７８】
バーチャルインタフェース設定命令が発行された際には、宛先の欄１８０１には相手方エッジルータのプライベートアドレスが、次段情報の欄１８０２にはあらかじめ用意していた複数のパスから選択された一つのパスの識別子の値が、状態の欄１８０３には初期状態としてＤＯＷＮ状態が、インタフェース名の欄１８０４にはバーチャルインタフェースの名前が、それぞれ記入される。
【０２７９】
ただし、インタフェース名１８０４の値は、必ずしも前記設定命令で具体的に通知しなくとも良い。
【０２８０】
例えば、プライベート処理モジュールが、あらかじめローカルに管理するバーチャルインタフェース名と前記パスの識別子とを対応付けておくことで、前記設定命令で通知されたパスの識別子から一意に導けば良い。
【０２８１】
＜実施形態２−２＞
図１９は、本発明におけるルータ装置を使用して、複数（Ｎ個）のＶＰＮを収容するようなネットワーク構成の一例について示したものである。
【０２８２】
ネットワーク１９０１は、ＶＰＮ（Ｖｉｒｔｕａｌ Ｐｒｉｖａｔｅ Ｎｅｔｗｏｒｋ）を収容するためのネットワークである。
【０２８３】
ルータ装置１９１１〜１９１Ｍは、実施形態２−１で説明したルータ装置１２１１〜１２１Ｍと同様の機能を有する装置である。
【０２８４】
エッジルータ装置１９２０〜１９２Ｎは、実施形態２−１で説明した装置１２２１〜１２２Ｎと同様の機能を有するものである。
【０２８５】
なお、エッジルータ装置１９２０のように、一つのエッジルータが複数（Ｎ個）のプライベートネットワーク１９３１〜１９３Ｎを収容することがでいる点で、実施形態２−１の場合とは異なっている。
【０２８６】
しかも、プライベートネットワーク１９３１〜１９３Ｎは、互いに異なるＶＰＮ１９４１〜１９４Ｎを形成している。ＶＰＮが異なれば、そのプライベートアドレス空間も互いに異なる。以後、これらアドレス空間はそれぞれ“１９４１”，“１９４２”，…，“１９４Ｎ”という識別子で識別されるものとする。
【０２８７】
また、プライベートネットワーク１９９１〜１９９Ｎは、それぞれエッジルータ装置１９２１〜１９２Ｎに収容されているおり、それらのアドレス空間はそれぞれ“１９４１”，“１９４２”，…，“１９４Ｎ”という識別子で識別されるものとする。
【０２８８】
エッジルータ装置１９２０〜１９２Ｎは、グローバルアドレス空間とプライベートアドレス空間との境界に存在しており、それぞれのアドレス空間につきそれぞれのネットワークインタフェースを備える。
【０２８９】
エッジルータ装置１９２０については、非プライベートネットワーク１９０１側のネットワークインタフェース１９５０にはグローバルアドレス空間に属するアドレスが付き、一方、プライベートネットワーク側のインタフェース１９５１〜１９５Ｎにはそれぞれプライベートアドレス空間１９４１〜１９４Ｎに属するアドレスが付く。
【０２９０】
ラベルスイッチパス１９６１〜１９６Ｎは、それぞれＶＰＮ１９４１〜１９４Ｎを構成するために、エッジルータ装置１９２０〜１９２Ｎによって設定されたものである。
【０２９１】
図２０に、図１９に示したエッジルータ装置について、エッジルータ装置１９２０を例にとり、その一構成例を示す。
【０２９２】
本装置は、実施形態２−１で述べたものと同様の機能を有する（Ｎ＋１）個のモジュールから構成される。
【０２９３】
図２０のグローバル処理モジュール２００１は、非プライベートネットワークに接続するためのものである。
【０２９４】
ＩＰ処理部２００２は、ネットワーク層の処理を行うが、ここではグローバルアドレス空間に属するパケットを処理する。
【０２９５】
ルーチングテーブル２００３は、グローバルアドレス空間に属する宛先アドレスや次段情報を管理する。
【０２９６】
ＬＳＰ制御部２００４は、非プライベートネットワークを経由するＬＳＰ設定プロトコルを実行する。
【０２９７】
ネットワークインタフェース２００５は、非プライベートネットワークに接続するためのインタフェースであり、グローバルアドレス空間に属するアドレスがつき、前記ＬＳＰ設定プロトコルの通信インタフェースとしても機能する。
【０２９８】
本ネットワークインタフェース２００５の下位レイヤとしては、ＬＳＰが設定可能なものであれば、どのようなものでも良い。例えば、ＡＴＭ、フレームリレー、イーサネット（登録商標）などが考えられる。スイッチ部２００６がこれを提供している。
【０２９９】
スイッチ部２００６は、データリンクにてプライベート処理モジュール２０１１〜２０１Ｎと接続されている。
【０３００】
プライベート処理モジュール２０１１〜２０１Ｎは、プライベートネットワークを収容するためのものである。
【０３０１】
これらプライベート処理モジュールは、実施形態２−１で述べたものと同様の機能を有するが、ここでは互いに異なるプライベートアドレス空間１９４１〜１９４Ｎに属するネットワーク層の処理を行う。
【０３０２】
プライベート処理モジュールとグローバル処理モジュールとを接続するデータリンク上には、あらかじめ複数のパスを用意しておく。パスの実現例としては、前記データリンクが例えばＡＴＭならば仮想コネクションにて実現できる。
【０３０３】
各パスの識別子は、図２０の例では、２０２１〜２０２Ｍ、２０３１〜２０３Ｍのようになる。
【０３０４】
プライベート処理モジュール２０１１〜２０１Ｎでは、図１９のようなＬＳＰを張るためにＬＳＰ設定プロトコルを行わなくとも良いため、グローバル部２００１とは異なり、ＬＳＰ制御部を実装しなくとも良い。
【０３０５】
非プライベートネットワーク上のＬＳＰを利用した複数のＶＰＮを構築するための処理手順は、図１４で示した処理手順をそのまま利用することができる。
【０３０６】
以下では、エッジルータ装置１９２０の場合を例にとって説明する。
【０３０７】
はじめに、エッジルータ装置１９２０は、自分自身の初期設定を行う（ステップＳ１４０１）。
【０３０８】
具体的には、グローバルアドレスと、Ｎ個のプライベートアドレスならびにプライベートアドレス空間の識別子（以後、ＶＰＮ識別子と呼ぶ）とをそれぞれ設定する。ＶＰＮ識別子は、この例では“１９４１”，“１９４２”，…，“１９４Ｎ”とする。
【０３０９】
かかる設定の際、図２０の装置構成例においては、グローバル側のアドレスはグローバル処理モジュールのネットワークインタフェース２００５に付加され、Ｎ個のプライベート側のアドレスは各々のプライベート処理モジュールのネットワークインタフェースに付加される。
【０３１０】
さらに、これらのアドレスとＶＰＮ識別子とがＬＳＰ制御部２００４に記憶される。
【０３１１】
ここで設定に使った（ＶＰＮ識別子、プライベートアドレス、グローバルアドレス）の三つ組を、ＶＰＮメンバーシップ情報と呼ぶことにする。
【０３１２】
次に、図１９のエッジルータ装置１９２０は、ＬＳＰを設定すべき相手方のシステムの存在、すなわち、自分と同じＶＰＮ識別子１９４１〜１９４Ｎのうちのどれかに一致するプライベートネットワークを収容するエッジルータ装置が自分以外にも非プライベートネットワーク１９０１上に存在することを認識すべく、前記ＶＰＮメンバーシップ情報を追加獲得する（ステップＳ１４０２）。
【０３１３】
非プライベートネットワーク１９０１上での他者の存在を認識しなければならないため、前記メンバーシップ情報の収集はグローバル処理モジュール２００１によって実行される。かかる具体的手段としては、実施形態２−１で述べたものと同様のものが考えられる。
【０３１４】
グローバル処理モジュール２００１内は、収集したＶＰＮメンバーシップ情報を実施形態２−１の場合と同様なローカルなデータベースとして保持する。
【０３１５】
次に、ＬＳＰ制御部２００４は、当該エッジルータ装置へ向けてＬＳＰを形成するために、グローバル側のインタフェース２００５からＬＳＰ設定要求メッセージを送信する（ステップＳ１４０３）。この場合は送信用ＬＳＰの発呼を意味する。
【０３１６】
前記ＬＳＰ設定要求メッセージにおいて、フローの識別情報には（ＶＰＮ識別子、ＬＳＰ起点エッジルータのグローバルアドレス、ＬＳＰ終点エッジルータのグローバルアドレス）の三つ組の値を含ませるようにする。この三つ組情報を含むようなフロー識別情報を、ＶＰＮフロー識別子と呼ぶことにする。
【０３１７】
ＶＰＮフロー識別子は、ＬＳＰ制御部２００４により、例えば図１６に示すようなテーブルのエントリ形式にて管理される。この管理の方法は、実施形態２−１と同様である。
【０３１８】
しかる後、前記ＬＳＰ設定メッセージにて要求したＬＳＰに関するＬＳＰ設定完了通知が、図２０に示したＬＳＰ処理部２００４に到着すると（ステップＳ１４０４）、グローバル処理モジュール２００１は、スイッチ部２００６を操作し、設定された前記ＬＳＰをプライベート処理モジュール２０１１まで延長接続する（ステップＳ１４０５）。
【０３１９】
例えば、エッジルータ装置１９２０からエッジルータ装置１９２Ｎへ到達するＬＳＰが設定されたことを確認したときは、ラベル値２０６Ｎを持つＬＳＰおよび識別子の値２０２Ｍを持つパスの両者を、スイッチ部２００６で接続する。
【０３２０】
なお、この操作は、エッジルータ装置が内部的に行うことであり、非プライベートネットワーク上のＬＳＰ接続状態には影響を与えない。
【０３２１】
ここで、前記ラベル値はＬＳＰ設定プロトコルにより割り当てられたものである。
【０３２２】
また、前記パスの識別子は、先述のあらかじめ用意されていた複数のパスから選択した一つの識別子であり、これは図１６におけるパスの識別子の欄１６０３に記入する。
【０３２３】
以上の操作を行った後、グローバル処理モジュール２００１は、図２０に示したバーチャルインタフェース設定命令を発行し、ＶＰＮ識別子に当該のプライベート処理モジュール２０１１内にバーチャルインタフェースを設定する（ステップＳ１４０６）。
【０３２４】
バーチャルインタフェースの実装やバーチャルインタフェース設定命令については、実施形態２−１と同様にして実施できる。
【０３２５】
しかる後、グローバル側のネットワークインタフェース２００５にてＬＳＰ設定メッセージが到着する（ステップＳ１４０７）。
【０３２６】
このとき、まず、エッジルータ装置１９２０は、ＶＰＮメンバーシップ情報データベースを照合し、前記設定メッセージを受け付けるかどうかを判断する（ステップＳ１４０８）。
【０３２７】
受け付けても良い場合としては、前記メッセージにてＬＳＰのラベルに対応付けられているＶＰＮフロー識別子について、ＶＰＮ識別子と自らが収容しているプライベートネットワークのＶＰＮ識別子（この例では、“１９４０”，“１９４１”，…，“１９４Ｎ”のどれか）とが一致し、ＬＳＰ終点エッジルータのグローバルアドレスが自分自身のグローバルアドレスと一致し（以上は受信用ＬＳＰの着呼を意味する）、かつ、該起点エッジルータのプライベートアドレス（これは、この時点で持っているＶＰＮメンバーシップ情報データベースから検索できる）との間でまだ受信用ＬＳＰが張られていない、という条件がすべて合致するときが挙げられる。
【０３２８】
このような場合は設定完了通知メッセージとしてＡｃｋを送出し（ステップＳ１４０９）、そうでない場合は終了する（ステップＳ１４１０）。ＬＳＰ設定プロトコルの仕様にも依存するが、もしＮａｃｋを返す機構が定義されていれば、単に終了とせずに、Ｎａｃｋを返しても良い。
【０３２９】
設定完了通知を送出したならば、図２０に示したグローバル処理モジュール２００１は、スイッチ部２００６を操作し、設定された前記ＬＳＰを当該プライベート処理モジュールまで延長接続する（ステップＳ１４１１）。
【０３３０】
例えば、エッジルータ装置１９２Ｎからエッジルータ装置１９２０へ到達するＶＰＮ１９４Ｎに関するＬＳＰの設定を受け付けたときは、ラベル値２０７Ｎを持つＬＳＰおよび識別子の値２０３Ｍを持つパスの両者を、スイッチ部２００６で接続する。
【０３３１】
この操作の結果、ＬＳＰの実質的な終点はプライベート処理モジュール２０１Ｎ内のバーチャルネットワークインタフェースとなる。
【０３３２】
なお、この操作は、エッジルータ装置が内部的に行うことであり、非プライベートネットワーク上のＬＳＰ接続状態には影響を与えない。
【０３３３】
また、前記ラベル値はＬＳＰ設定プロトコルにより割り当てられたものであり、前記パスの識別子は、先述のあらかじめ用意されていた複数のパスから選択した一つの識別子である。以上の情報は、図１６における一つのエントリとして記入する。
【０３３４】
前記ＬＳＰの延長操作を行った後、グローバル処理モジュール２００１は、図２０に示したバーチャルインタフェース設定命令を発行し、当該のバーチャルインタフェースをＵＰ状態にする（ステップＳ１４１２）。
【０３３５】
このようにすると、二つのＬＳＰを組にして相手方のシステムと双方向通信ができる状態になったときに、相手方のシステムに対応するバーチャルインタフェースの使用が開始されることになり、プライベート処理モジュールは本発明でのバーチャルネットワークインタフェースを通常のネットワークインタフェースと同様に扱うことが可能になる。
【０３３６】
なお、図１４には省略したが、ＶＰＮメンバーシップ配布プロトコルあるいは手設定によって、自分または相手方のエッジルータが該ＶＰＮメンバーシップから脱退するという割り込みイベントが発生した時は、いかなる状態にあっても、ただちにＬＳＰを解放し、バーチャルインタフェースそのものを消去し、初期状態へ戻る。
【０３３７】
以上のような状態遷移は、すべて、ＬＳＰ設定プロトコルをつかさどるグローバル部モジュールもしくはメンバーシップ情報の変化によって駆動される。したがって、図２０の装置構成例においては、バーチャルインタフェースに関する制御は、すべてグローバル処理モジュールから２００１の命令によって実現可能である。
【０３３８】
また、プライベート処理モジュール２０１１〜２０１Ｎは、それ自身がＬＳＰ設定プロトコルを実行する必要がなく、バーチャルインタフェースの制御についてはグローバル処理モジュールからの命令を待っているだけで良いので、該プライベート空間のパケット転送や経路制御のためだけに処理能力を集中することができる。
【０３３９】
なお、前記バーチャルインターフェース制御命令は、任意の下位レイヤプロトコルの拡張により実施可能である。
【０３４０】
このプロトコルは、ＬＳＰ設定プロトコルの仕様には依存せず、単純に、該ＬＳＰに継ぎ足されたパスの下位レイヤ情報と、ＬＳＰにて相互接続された相手方のエッジルータのプライベートアドレスとのペアとを情報として含んでいれば良い。
【０３４１】
これまでに述べた処理手順がすべて行われると、図１９に示したようにエッジルータ同士がＬＳＰで相互接続され、お互いが固有のプライベートアドレス空間にて通常の通信ができるようになる。
【０３４２】
その後は、通常のネットワークと同様の方法で経路制御プロトコルを実行することができ、プライベートネットワーク１９９１とプライベートネットワーク１９３１との間で、あるいは同様にプライベートネットワーク１９９Ｎとプライベートネットワーク１９３Ｎとの間でも、各々が固有のプライベートアドレス空間にてネットワーク通信ができるようになる。
【０３４３】
勿論、一つのプライベートアドレス空間を共有するプライベートネットワークが複数存在する場合でも同様である。
【０３４４】
また、これまで述べた手順により、例えばエッジルータ１９２０では、各プライベート処理モジュールが扱うすべてのインタフェースは、そのモジュール内で単一のプライベートアドレス空間に属することが保証されている。
【０３４５】
したがって各プライベート処理モジュールは、バーチャルインタフェースも含め、通常のネットワークと同様の手法で、ネットワークインタフェース間のパケット転送を行うことができる。
【０３４６】
このようなエッジルータ装置は、非プライベート処理モジュールとプライベート処理モジュールとが分離された個別の装置としても良いが、その場合、非プライベート処理モジュールがエッジルータ装置となり、プライベート処理モジュールがＣＰＥ装置となる。
【０３４７】
なお、ここでは、双方向ともラベルスイッチパスが設定された場合にバーチャルＩ／Ｆをプライベート処理モジュール内に生成する例を示したが、どちらか一方向のラベルスイッチパスしか設定されていない場合でも、そのことをプライベート処理モジュールが認識できるようにしつつバーチャルＩ／Ｆを生成するように変形実施することも可能である。
【０３４８】
なお、以上の各機能は、ソフトウェアとしても実現可能である。
【０３４９】
また、各発明の各実施形態は、コンピュータに所定の手順を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。
【０３５０】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【０３５１】
（３）さて、以下では、図２１〜図２４を参照しながら、さらに他の発明の実施の形態等について説明する。
【０３５２】
本発明は、例えば、仮想的なプライベートネットワークを構成するためのルータ装置、その通信方法などに関するものである。
【０３５３】
図２１は、ラベルスイッチネットワーク領域と非ラベルスイッチネットワーク領域との両方を含むネットワークの一例を示しており、かつ、このネットワーク上でＶＰＮが構成されている様子を示している。
【０３５４】
一方のネットワーク領域２１０１は、ラベルスイッチが利用でき、かつＶＰＮ専用のラベルスイッチパスを設定することができるような、ネットワーク１９０１と同様の機能を持つネットワークである。
【０３５５】
他方のネットワーク領域２１０２は、前記ラベルスイッチを利用しないネットワークの一例である。
【０３５６】
両者を併せたものが、一つの非プライベートアドレス空間（以後、グローバルアドレス空間と呼ぶ）を共有する、非プライベートネットワークであるものとする。
【０３５７】
この非プライベートネットワークを挟んで、ネットワーク２１０３およびネットワーク２１０４が、一つのプライベートアドレス空間を共有するＶＰＮを実現するものとする。
【０３５８】
ルータ装置２１０５は、非プライベートアドレス空間のラベルスイッチネットワーク２１０１とプライベートアドレス空間のネットワーク２１０３との境界に位置し、各々の側にネットワークインタフェースを備え、ラベルスイッチパス（以下、ＬＳＰと呼ぶ）の起点および終点となる機能を有するものである。
【０３５９】
ルータ装置２１０６は、非プライベートアドレス空間のラベルスイッチネットワーク２１０１と同アドレス空間の非ラベルスイッチネットワーク２１０２との境界に位置し、各々の側にネットワークインタフェースを備え、ＬＳＰの起点および終点となる機能を有し、かつ、パケットのカプセル化およびデカプセル化を行う機能を有するものである（以後、ラベルスイッチ境界ルータ装置と呼ぶ）。
【０３６０】
ルータ装置２１０７は、非プライベートアドレス空間の非ラベルスイッチネットワーク２１０２とプライベートネットワーク２１０４との境界に位置し、各々の側にネットワークインタフェースを備え、パケットカプセル化およびデカプセル化を行う機能を有するものである。
【０３６１】
ＬＳＰ２１０８は、ルータ装置２１０５とルータ装置２１０６との間で、図１４に示した処理手順と同様の処理手順にて設定された、ＶＰＮを構成するためのものである。本ＬＳＰには該ＶＰＮのプライベートアドレスが付いたパケットが流れる。
【０３６２】
カプセル化パケット転送路２１０９は、同ＶＰＮを構成するためのものである。
【０３６３】
ここでは、プライベートアドレスが付いたパケットが、非プライベートアドレスのパケットにてカプセル化されることにより、ルータ装置２１０６とルータ装置２１０７との間の非プライベートネットワーク上で、ＶＰＮのパケットが転送可能となっている。
【０３６４】
図２２に、本発明によるラベルスイッチ境界ルータ装置について、図２１に示した非プライベートネットワーク上のラベルスイッチ境界ルータ装置２１０６を例にとり、その一構成例を示す。
【０３６５】
ＩＰ処理部２２０１は、ネットワーク層の処理を行うが、ここではグローバルアドレス空間に属するパケットを処理する。
【０３６６】
ルーチングテーブル２２０２は、グローバルアドレス空間に属する宛先アドレスや次段情報を管理する。
【０３６７】
ＬＳＰ制御部２２０３は、非プライベートネットワークを経由するＬＳＰを設定するためのプロトコル（以後、ＬＳＰ設定プロトコルと呼ぶ）を実行する。
【０３６８】
ラベルスイッチネットワークインタフェース２２０４は、ラベルスイッチネットワーク２１０１に接続するためのネットワークインタフェースであり、グローバルアドレス空間に属するアドレスがつき、前記ＬＳＰ設定プロトコルの通信インタフェースとしても機能する。
【０３６９】
本ネットワークインタフェース２２０４の下位レイヤとしては、ＬＳＰが設定可能なものであれば、どのようなものでも良い。例えばＡＴＭ、フレームリレー、イーサネット（登録商標）などが考えられる。
【０３７０】
ラベルスイッチネットワークインタフェースは、必要に応じて複数備えても良い。
【０３７１】
非ラベルスイッチネットワークインタフェース２２０５は、非ラベルスイッチネットワーク２１０２に接続するためのネットワークインタフェースであり、グローバルアドレス空間に属するアドレスがつく。
【０３７２】
本ネットワークインタフェース２２０５の下位レイヤとしては、ＬＳＰが設定可能である必要はなく、一般的にネットワーク層の下で利用されている任意の下位レイヤにて実施可能である。
【０３７３】
非ラベルスイッチネットワークインタフェースは、必要に応じて複数備えても良い。
【０３７４】
カプセル化部２２０６は、特定のＬＳＰから受信したデータグラムを、非プライベートアドレス空間のパケットヘッダでカプセル化し、非ラベルスイッチネットワークインタフェース２２０５に転送可能とするためのものである。
【０３７５】
デカプセル化部２２０７は、非ラベルスイッチネットワークインタフェース２２０５にて受信した特定のデータグラムを、デカプセル化し（この場合、非プライベートアドレスが付いたパケットヘッダを除去し）、それらを特定のＬＳＰに転送するためのものである。
【０３７６】
図２３では、ラベルスイッチネットワークと非ラベルスイッチネットワークとが混在する非プライベートネットワーク上でＶＰＮを実現するためのラベルスイッチ境界ルータ装置の処理手順を、ラベルスイッチ境界ルータ装置２１０６の場合を例にとって説明する。
【０３７７】
ラベルスイッチ境界ルータ装置２１０６は、ＶＰＮメンバーシップ情報を獲得する（ステップＳ２３０１）。かかる獲得の手段は、実施形態２−１と同様のＶＰＮメンバーシップ配布手段で実現できる。これはＶＰＮメンバーシップ情報データベースに保持する。
【０３７８】
図２１において、例えば、ルータ装置２１０５に関するＶＰＮメンバーシップ情報を得た場合、ルータ装置２１０５のＶＰＮ識別子とグローバルアドレスとプライベートアドレスとを認識する。また、同様にルータ装置２１０７に関してもＶＰＮメンバーシップ情報を得る。
【０３７９】
そこで、ラベルスイッチ境界ルータ装置２１０６は、自らも前記ＶＰＮメンバーシップに参加宣言する（ステップＳ２３０２）。
【０３８０】
この例では、自分と同じラベルスイッチネットワークの領域に属するルータ装置２１０５に関して、前記情報のうち、グローバルアドレスの項を自らのグローバルアドレスにて代入したものを、ルータ装置２１０７に通知する。通知の手段としては先述したＶＰＮメンバーシップ配布手段を用いることができる。
【０３８１】
しかる後、ラベルスイッチ境界ルータ装置２１０６には、ラベルスイッチネットワーク２１０２を経由して、ＬＳＰ設定メッセージが到着する（ステップＳ２３０３）。
【０３８２】
前記ＬＳＰ設定メッセージの一例として、たとえばルータ装置２１０５によって送出されたものを考え、かつ、そのメッセージ中には、ＬＳＰのラベルに対応つけるＶＰＮフロー識別子において、当該ＶＰＮの識別子ならびにＬＳＰ終点エッジルータのグローバルアドレスとしてルータ装置２１０７のグローバルアドレスが記入されている場合を考える。
【０３８３】
このようなとき、ラベルスイッチ境界ルータ装置２１０６は、ＶＰＮメンバーシップ情報データベースを照合し前記設定メッセージを受け付けるかどうかを判断する（ステップＳ２３０４）。
【０３８４】
ＶＰＮに関して前記設定メッセージを受け付けても良い場合の例としては、前記設定メッセージにてＬＳＰのラベルに対応付けられているＶＰＮフロー識別子について、ＶＰＮ識別子とＬＳＰ終点エッジルータのグローバルアドレスとの組がＶＰＮメンバーシップ情報データベースの中でマッチするエントリがあり、かつ、前記設定メッセージ中の起点エッジルータについてもＶＰＮメンバーシップ情報データベースの中でマッチするエントリがある、という条件が合致するときが挙げられる。
【０３８５】
設定メッセージを受け付けない場合は、終了する（ステップＳ２３０５）。なお、ＬＳＰ設設定プロトコルの仕様にも依存するが、もしＮａｃｋを返す機構が定義されていれば、単に終了とせずに、Ｎａｃｋを返しても良い。
【０３８６】
前記設定メッセージを受け付けた場合、ＬＳＰの設定完了通知を送出する（ステップＳ２３０６）。
【０３８７】
この例では、ＬＳＰ２１０８についてルータ装置２１０５からルータ装置２１０６への方向が設定完了したことに相当する。
【０３８８】
このＬＳＰ上を流れてくるデータグラムは、パケットの宛先アドレスがプライベート空間アドレスとなっていて良い。
【０３８９】
ラベルスイッチ境界ルータ装置２１０６は、前記ＬＳＰのラベルに対応付けられているＶＰＮフロー識別子から、このＬＳＰ上を流れてくるデータグラムをデータグラムを転送すべきノードはルータ装置２１０７であるということを判断することができる。
【０３９０】
この判断に基づいて、ラベルスイッチ境界ルータ装置２１０６は、前記ＬＳＰから受けとったデータグラムを、非プライベートアドレスのパケットヘッダにてカプセル化し、転送を開始することができる（ステップＳ２３０７）。
【０３９１】
この例のカプセル化では、宛先アドレスはルータ装置２１０７のグローバルアドレスに、送信元アドレスはラベルスイッチ境界ルータ装置２１０６のグローバルアドレスに、それぞれ設定される。
【０３９２】
これは、カプセル化パケット転送路２１０９についてルータ装置２１０６からルータ装置２１０７への方向が確立したことに相当する。
【０３９３】
ここまでの手順で、図２１において、プライベートネットワーク２１０３からプライベートネットワーク２１０４への方向に、ＶＰＮのデータグラムを到達させることが可能になる。
【０３９４】
次に、ラベルスイッチ境界ルータ装置２１０６は、ルータ装置２１０５へ向けて、ＬＳＰ設定メッセージを送出する（ステップＳ２３０８）。
【０３９５】
この例では、先述したＬＳＰ２１０８の逆方向の設定を要求する。
【０３９６】
しかる後、設定完了通知メッセージが到着すると（ステップＳ２３０９）、ラベルスイッチ境界ルータ装置２１０６は、ルータ装置２１０７から受信したカプセル化パケットをデカプセル化し、先述したルータ装置２１０５へ到達する当該ＬＳＰに転送を開始することができる（ステップＳ２３１０）。
【０３９７】
例えばルータ装置２１０７が一つのＶＰＮだけを収容する場合は、ラベルスイッチ境界ルータ装置２１０６は、カプセル化パケットの送信元アドレスとＶＰＮメンバーシップ情報データベースとを調べることにより、そのパケットがどのＶＰＮに属しているかを一意に定めることができ、かつ、デカプセル化してどのＬＳＰに転送すべきかを一意に定めることができる。
【０３９８】
ただし、ルータ装置２１０７から受信するパケットは必ずしもカプセル化されたパケットではないが、そのときはデカプセル化や前記特定のＬＳＰへの転送は行わない。
【０３９９】
また、カプセル化されたパケットであっても、もし、ルータ装置２１０７が複数の異なるＶＰＮを収容している場合には、前記パケットがどのＶＰＮに属しているかを定められるときに限り当該のＬＳＰに転送するようにする。
【０４００】
カプセル化パケットがどのＶＰＮに属しているかを定める手段としては、例えば、パケットのカプセル時に付加的情報を挿入できる手段として、ＧＲＥトンネル、ＩＰｓｅｃ，Ｌ２ＴＰなどが適用できる。図２１の例では、ルータ装置２１０７が前記付加的情報としてＶＰＮ識別子を挿入すれば良い。
【０４０１】
図２４では、ラベルスイッチネットワークと非ラベルスイッチネットワークとが混在する非プライベートネットワーク上でＶＰＮを実現するための、非ラベルスイッチネットワーク上のエッジルータ装置の処理手順を、図２１のルータ装置２１０７の場合を例にとって説明する。
【０４０２】
カプセル化パケット転送路２１０９が設定されていない初期的状態において、ルータ装置２１０７は、先述したＶＰＮメンバーシップ情報の収集手段を用いて、ＶＰＮメンバーシップ情報を新たに獲得する（ステップＳ２４０１）。
【０４０３】
図２１の例では、ルータ装置２１０５およびルータ装置２１０６に関する情報を認識する。
【０４０４】
これらの情報エントリは、ＶＰＮ識別子およびプライベートアドレスの項の値が同一であり、グローバルアドレスの項の値が異なっている。グローバルアドレスの項の値は、前者がルータ装置２１０５のグローバルアドレスであり、後者がルータ装置２１０６のグローバルアドレスとなっている。
【０４０５】
そこで、ルータ装置２０１７は、これらルータについて比較を行い、一方のルータを選択する（ステップＳ２４０２）。かかる選択の際はさまざまな基準を用いることが可能であり、例えばルータのグローバルアドレスについてネットワーク的な距離が近い方を選択するという基準が考えられる。
【０４０６】
ルータ装置２０１７は、プライベートネットワーク２１０４発のＶＰＮのパケットを、非プライベートネットワーク２１０２を通過させるために、前記の選択したルータのグローバルアドレスにてカプセル化して、転送を開始する（ステップＳ２４０３）。
【０４０７】
前記のルータ選択の際、ネットワークの距離的により近いルータ２１０６を選択したのであれば、これは、図２１におけるカプセル化パケット転送路２１０９についてルータ装置２１０７からルータ装置２１０６への方向が確立したことに相当する。
【０４０８】
ここまでの手順で、図２１において、プライベートネットワーク２１０４からプライベートネットワーク２１０３への方向に、ＶＰＮのデータグラムを到達させることが可能になる。
【０４０９】
以上により、プライベートネットワーク２１０３とプライベートネットワーク２１０４との間で双方向のＶＰＮが確立する。
【０４１０】
なお、以上の各機能は、ソフトウェアとしても実現可能である。
【０４１１】
また、各発明の各実施形態は、コンピュータに所定の手順を実行させるための（あるいはコンピュータを所定の手段として機能させるための、あるいはコンピュータに所定の機能を実現させるための）プログラムを記録したコンピュータ読取り可能な記録媒体としても実施することもできる。
【０４１２】
本発明は、上述した実施の形態に限定されるものではなく、その技術的範囲において種々変形して実施することができる。
【図面の簡単な説明】
【０４１３】
【図１】本発明の一実施形態に係るルータ装置を含むネットワークの構成例を示す図
【図２】同実施形態に係るルータ装置の構成例を示す図
【図３】カットスルーパス設定手順の一例を示すフローチャート
【図４】カットスルーパス設定手順の他の例を示すフローチャート
【図５】カットスルーパス設定手順のさらに他の例を示すフローチャート
【図６】ルーチングテーブルの一構成例を示す図
【図７】ラベルスイッチテーブルの一構成例を示す図
【図８】同実施形態に係るルータ装置の他の構成例を示す図
【図９】カットスルーパス再設定手順の一例を示すフローチャート
【図１０】カットスルーパス再設定手順の他の例を示すフローチャート
【図１１】ラベルスイッチテーブルの他の構成例を示す図
【図１２】非プライベートネットワーク上に構築されるＶＰＮの一例を示す図
【図１３】本発明の一実施形態に係るＶＰＮエッジルータの構成例を示す図
【図１４】エッジルータの処理手順の一例を示すフローチャート
【図１５】ＶＰＮメンバーシップ情報の集合から成るデータベースの一例を示す図
【図１６】グローバル処理モジュールが管理するラベルに関するテーブルの一例を示す図
【図１７】バーチャルインタフェースの実装例を示す図
【図１８】プライベート処理モジュールにおけるルーチングテーブルの一例を示す図
【図１９】非プライベートネットワーク上に構築される複数のＶＰＮの一例を示す図
【図２０】本発明の一実施形態に係るＶＰＮエッジルータの他の構成例を示す図
【図２１】ラベルスイッチ領域と非ラベルスイッチ領域とを含む非プライベートネットワーク上に実現されるＶＰＮの一例を示す図
【図２２】本発明の一実施形態に係るラベルスイッチ境界ルータ装置の構成例を示す図
【図２３】ラベルスイッチ境界ルータ装置の処理手順の一例を示すフローチャート
【図２４】非ラベルスイッチルータ装置の処理手順の一例を示すフローチャート
【符号の説明】
【０４１４】
１０１〜１０４，１１１〜１１Ｎ…ルータ装置、１２０…ネットワーク、２０１，８０１…ＩＰ処理部、２０２，８０２…カットスルー制御部、２０３，８０３…ルーチングテーブル、２０４，８０４…スイッチ部、２１１〜２１Ｎ，２２１，２２２，８１１〜８１Ｎ，８２１，８２２…ネットワークインタフェース、２３１，８３１…物理層処理部、２３２，８３３…ラベル処理部、２３３，８３４…ラベルテーブル、８３２…物理カウンタ、１２２１〜１２２Ｎ，１９２０〜１９２Ｎ…エッジルータ装置、１２１１〜１２１Ｍ，１９１１〜１９１Ｍ…ルータ装置、１２０１，１９０１…非プライベートネットワーク、１２３１〜１２３Ｎ，１９３１〜１９３Ｎ，１９９１〜１９９Ｎ…プライベートネットワーク、１２５１〜１２５Ｎ，１２６１〜１２６Ｎ，１３０５，１３１４，１９５０〜１９５Ｎ，１９７１〜１９７Ｎ，１９８１〜１９８Ｎ，２００５…ネットワークインタフェース、１３０１，２００１…グローバル処理モジュール、１３０２，１３１２，２００２…ＩＰ処理部、１３０３，１３１３，２００３…ルーチングテーブル、１３０４，２００４…ＬＳＰ制御部、１３０６，２００６…スイッチ部、１３１１，２０１１〜２０１Ｎ…プライベート処理モジュール、１３４１〜１３４Ｎ…バーチャルインタフェース、２１０１…ラベルスイッチネットワーク、２１０２…非ラベルスイッチネットワーク、２１０３，２１０４…プライベートネットワーク、２１０５〜２１０７…ルータ装置、２２０１…ＩＰ処理部、２２０２…ルーチングテーブル、２２０３…ＬＳＰ制御部、２２０４…ラベルスイッチネットワークインタフェース、２２０５…非ラベルスイッチネットワークインタフェース、２２０６…カプセル化部、２２０７…デカプセル化部
【図１】
2004364343.tif 000003
【図２】
2004364343.tif 000004
【図３】
2004364343.tif 000005
【図４】
2004364343.tif 000006
【図５】
2004364343.tif 000007
【図６】
2004364343.tif 000008
【図７】
2004364343.tif 000009
【図８】
2004364343.tif 000010
【図９】
2004364343.tif 000011
【図１０】
2004364343.tif 000012
【図１１】
2004364343.tif 000013
【図１２】
2004364343.tif 000014
【図１３】
2004364343.tif 000015
【図１４】
2004364343.tif 000016
【図１５】
2004364343.tif 000017
【図１６】
2004364343.tif 000018
【図１７】
2004364343.tif 000019
【図１８】
2004364343.tif 000020
【図１９】
2004364343.tif 000021
【図２０】
2004364343.tif 000022
【図２１】
2004364343.tif 000023
【図２２】
2004364343.tif 000024
【図２３】
2004364343.tif 000025
【図２４】
2004364343.tif 000026