(57)【特許請求の範囲】
【請求項１】
第１のネットワークに接続された第２のネットワークへ宛てたデータの転送先の候補であり前記第１のネットワークに属する複数の第１の中継装置と通信する通信部と、
前記データの転送先を選択する際に、前記複数の第１の中継装置それぞれから前記第１および前記第２のネットワークに接続された第２の中継装置までの距離を示す指標を、前記複数の第１の中継装置から取得し、当該指標に基づいて前記複数の第１の中継装置の中から前記データの転送先を選択する制御部と、
を有する中継装置。
【請求項２】
前記制御部は、前記第２の中継装置の前記第１のネットワークにおけるアドレスを解決するための問い合わせを行い、当該問い合わせに対する応答として、前記複数の第１の中継装置から前記第２の中継装置までの距離を示す指標を取得する、請求項１記載の中継装置。
【請求項３】
前記制御部は、前記複数の第１の中継装置それぞれから前記第２の中継装置までの最短の距離を示す指標を取得する、請求項１または２記載の中継装置。
【請求項４】
前記制御部は、前記第２の中継装置までの距離を示す指標として、前記第２の中継装置により送信され、前記複数の第１の中継装置それぞれを介して受信された複数のＩＰ（Internet Protocol）パケットに含まれるＴＴＬ（Time To Live）またはホップリミットを取得する、請求項１または２記載の中継装置。
【請求項５】
前記制御部は、前記複数の第１の中継装置それぞれのアドレスまたは自身に備えられており前記複数の第１の中継装置と接続された複数のインタフェースそれぞれのアドレスを前記問い合わせに含めることで、前記複数の第１の中継装置それぞれに前記第２の中継装置までの距離を示す指標を提供させるように問い合わせ先の装置に制御させる、請求項２記載の中継装置。
【請求項６】
前記通信部は、前記第１のネットワークの経路情報を受信しても破棄する、請求項１乃至５の何れか１項に記載の中継装置。
【請求項７】
第１および第２のネットワークに接続された第１の中継装置が前記第２のネットワークに接続された第３のネットワークへ宛てたデータの転送先を選択する際に、前記第２および前記第３のネットワークに接続された第２の中継装置の前記第２のネットワークにおけるアドレスを解決するための問い合わせを前記第１の中継装置から受け付ける受信部と、
前記問い合わせに応じて、前記第３のネットワークへ宛てたデータの前記第１の中継装置からの転送先の候補であり前記第２のネットワークに属する複数の第３の中継装置それぞれから前記第２の中継装置までの距離を示す指標を、前記複数の第３の中継装置から前記第１の中継装置へ提供させる制御部と、
を有する情報処理装置。
【請求項８】
前記制御部は、前記複数の第３の中継装置それぞれから前記第２の中継装置までの最短の距離を示す指標を前記第１の中継装置へ提供させる、請求項７記載の情報処理装置。
【請求項９】
前記問い合わせは、前記複数の第３の中継装置それぞれのアドレスを含み、
前記制御部は、前記複数の第３の中継装置それぞれのアドレスに基づいて、前記第２の中継装置までの距離を示す指標を、前記複数の第３の中継装置から前記第１の中継装置へ提供させる、
請求項７または８記載の情報処理装置。
【請求項１０】
前記制御部は、前記第２の中継装置までの距離を示す指標として、前記第２の中継装置により送信され、前記複数の第３の中継装置それぞれを経由して前記第１の中継装置へ到達する複数のＩＰパケットに含まれるＴＴＬまたはホップリミットを提供させる、請求項７記載の情報処理装置。
【請求項１１】
前記問い合わせは、前記第１の中継装置に備えられており前記複数の第３の中継装置と接続された複数のインタフェースそれぞれのアドレスを含み、
前記制御部は、前記複数のインタフェースそれぞれのアドレスに基づいて前記複数のＩＰパケットを送信するように前記第２の中継装置に指示する、
請求項１０記載の情報処理装置。
【請求項１２】
前記制御部は、前記第２の中継装置までの距離を示す指標に加えて、前記第２の中継装置の前記第２のネットワークにおけるアドレスを、前記複数の第３の中継装置から前記第１の中継装置へ提供させる、請求項７乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
第１および第２のネットワークに接続された第１の中継装置からの、前記第２のネットワークに接続された第３のネットワークへ宛てたデータの転送先となる複数の候補のうちの１つとして用いられる中継装置であって、
前記第１の中継装置が前記データの転送先を選択する際に、前記第２および第３のネットワークに接続された第２の中継装置までの距離を示す指標を前記第１の中継装置に提供する旨の指示を受信する受信部と、
当該指示に応じて、自身から前記第２の中継装置までの距離を示す指標を、前記第１の中継装置に送信する送信部と、
を有する中継装置。
【請求項１４】
前記送信部は、自身から前記第２の中継装置までの最短の距離を示す指標を前記第１の中継装置に送信する、請求項１３記載の中継装置。
【請求項１５】
前記指示は、前記第２の中継装置の前記第２のネットワークにおけるアドレスを含み、
前記送信部は、前記アドレスとともに、前記第２の中継装置までの距離を示す指標を前記第１の中継装置に送信する、
請求項１３または１４記載の中継装置。
【請求項１６】
前記送信部は、前記第２のネットワークの経路情報を前記第１の中継装置に送信しないように制御する、請求項１３乃至１５の何れか１項に記載の中継装置。
【請求項１７】
第１および第２のネットワークに接続された中継装置であって、
前記第２および第３のネットワークに接続された第１の中継装置が前記第１のネットワークへ宛てたデータの転送先を選択する際に、自身の前記第２のネットワークにおけるアドレスを前記第１の中継装置に提供する旨の指示を受信する受信部と、
当該指示に応じて、前記アドレスと前記アドレスを受信した中継装置から自身までの距離を示す指標を取得するための指標とを含む複数の応答データを、前記第１の中継装置からの前記データの転送先の候補であり前記第２のネットワークに属する複数の第２の中継装置それぞれを介して前記第１の中継装置に送信する送信部と、
を有する中継装置。
【請求項１８】
前記指示は、前記第１の中継装置に備えられており前記複数の第２の中継装置と接続された複数のインタフェースそれぞれのアドレスを含み、
前記送信部は、前記複数のインタフェースそれぞれのアドレスに基づいて、前記複数の応答データを送信する、
請求項１７記載の中継装置。
【請求項１９】
前記応答データは、ＩＰパケットであり、
前記応答データに含まれる、自身までの距離を示す指標を取得するための指標は、前記ＩＰパケットに含まれるＴＴＬまたはホップリミットである、
請求項１７または１８記載の中継装置。
【請求項２０】
第１のネットワークに接続された第２のネットワークへ宛てたデータの転送先の候補であり前記第１のネットワークに属する複数の第１の中継装置と通信する通信部と、
前記データの転送先を選択する際に、前記第１および前記第２のネットワークに接続された第２の中継装置の前記第１のネットワークにおけるアドレスを解決するための問い合わせを行い、前記複数の第１の中継装置の何れかの中継装置から当該問い合わせに対する応答を受信すると、当該中継装置を前記データの転送先として選択する制御部と、
を有する中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は中継装置および情報処理装置に関する。
【背景技術】
【０００２】
現在、複数の情報処理装置を含む情報処理システムが利用されている。複数の情報処理装置は、ネットワークを介して接続される。ネットワークは、１または複数の中継装置を含む。例えば、送信元の情報処理装置が宛先の情報処理装置に直接接続されていなくても、送信元の情報処理装置と宛先の情報処理装置との間に介在する１または複数の中継装置が、送信元の情報処理装置により送信されたデータを、宛先の情報処理装置へ転送する。
【０００３】
例えば、ＯＳＩ（Open Systems Interconnection）参照モデルのネットワーク層のプロトコルを用いて中継を行う中継装置がある。具体的には、ルータやＬ３（Layer 3）スイッチである。中継装置には、ダイナミックルーティングを行うものがある。ダイナミックルーティングでは、中継装置は所定のルーティングプロトコルを用いて他の中継装置との接続関係を示す情報を収集する。当該接続関係を示す情報を経路情報と呼ぶことがある。中継装置は経路情報に基づいて経路選択用の指標（他の中継装置までの距離の指標など）を評価する。当該指標に基づいて宛先に応じた経路を選択し、その結果をルーティングテーブルに登録する。中継装置は、ルーティングテーブルに基づいてパケットを転送する。
【０００４】
近年では、ＩＥＴＦ（Internet Engineering Task Force）においてＬＩＳＰ（Locator/ID Separation Protocol）と呼ばれるルーティングの方法が議論されている。ＬＩＳＰでは、例えばコアネットワークのアドレスとコアネットワークに接続するアクセスネットワークのアドレスとを分割して管理し得る。第１のアクセスネットワーク側のインタフェースからパケットを取得してコアネットワーク側へ転送する中継装置をＩＴＲ（Ingress Tunnel Router）と呼ぶことがある。コアネットワーク側のインタフェースからパケットを取得して第２のアクセスネットワーク側へ転送する中継装置をＥＴＲ（Egress Tunnel Router）と呼ぶことがある。ＥＴＲのコアネットワークに属するアドレスをＲＬＯＣ（Routing LOCator）と呼び、アクセスネットワーク内のホストのアドレスをＥＩＤ（Endpoint IDentifier）と呼ぶことがある。管理装置がＥＩＤとＲＬＯＣとの対応を管理し得る。
【０００５】
ＩＴＲは、第２のアクセスネットワークに属するＥＩＤ宛のパケットを転送するとき、当該ＥＩＤを管理装置に問い合わせることで、対応するＥＴＲのＲＬＯＣを解決し得る。ＩＴＲは、パケットをカプセル化し、ＲＬＯＣ宛でコアネットワークへ転送する。ＥＴＲはカプセル化を解除し、当該パケットを第２のアクセスネットワークへ転送する。このとき、ＩＴＲとＥＴＲとの間に介在するコアネットワークの中継装置は、コアネットワークについてルーティングテーブルをもてばよく、第１，第２のアクセスネットワークについてルーティングテーブルをもたなくてもよい。すなわち、コアネットワークの経路情報を収集していればよく、第１，第２のアクセスネットワークの経路情報を収集しなくてもよい。よって、コアネットワークの中継装置による経路選択のための負担を軽減し得る。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】D.Farinacci、外３名、“Locator/ID Separation Protocol (LISP) draft-ietf-lisp-22”、［online］、平成24年2月12日、IETF、［平成24年8月21日検索］、インターネット ＜ＵＲＬ：ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｄｒａｆｔ−ｉｅｔｆ−ｌｉｓｐ−２２＞
【非特許文献２】D.Farinacci、外３名、“Locator/ID Separation Protocol (LISP) draft-ietf-lisp-23”、［online］、平成24年5月4日、IETF、［平成24年11月13日検索］、インターネット ＜ＵＲＬ：ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｄｒａｆｔ−ｉｅｔｆ−ｌｉｓｐ−２３＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＩＴＲとして機能する中継装置とコアネットワークとの間が、複数の経路で接続されることがある。このような接続をマルチホームと呼ぶことがある。マルチホームの環境において、ＩＴＲに、コアネットワークの経路情報を収集させて経路選択を行わせることが考えられる。しかし、この場合、ＩＴＲはコアネットワークとアクセスネットワークとの両方の経路情報を収集し、両方のネットワークについて経路選択のための処理を行うことになる。このため、ＩＴＲの負担が増大し得るという問題がある。
【０００８】
１つの側面では、本発明は、経路情報をもたなくても経路選択を行えるようにする中継装置および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、中継装置が提供される。この中継装置は、通信部と制御部とを有する。通信部は、第１のネットワークに接続された第２のネットワークへ宛てたデータの転送先の候補であり第１のネットワークに属する複数の第１の中継装置と通信する。制御部は、データの転送先を選択する際に、複数の第１の中継装置それぞれから第１および第２のネットワークに接続された第２の中継装置までの距離を示す指標を、複数の第１の中継装置から取得し、当該指標に基づいて複数の第１の中継装置の中からデータの転送先を選択する。
【００１０】
また、１つの態様では、情報処理装置が提供される。この情報処理装置は、受信部と制御部とを有する。受信部は、第１および第２のネットワークに接続された第１の中継装置が第２のネットワークに接続された第３のネットワークへ宛てたデータの転送先を選択する際に、第２および第３のネットワークに接続された第２の中継装置の第２のネットワークにおけるアドレスを解決するための問い合わせを第１の中継装置から受け付ける。制御部は、問い合わせに応じて、第３のネットワークへ宛てたデータの第１の中継装置からの転送先の候補であり第２のネットワークに属する複数の第３の中継装置それぞれから第２の中継装置までの距離を示す指標を、複数の第３の中継装置から第１の中継装置へ提供させる。
【００１１】
また、１つの態様では、第１および第２のネットワークに接続された第１の中継装置からの、第２のネットワークに接続された第３のネットワークへ宛てたデータの転送先となる複数の候補のうちの１つとして用いられる中継装置が提供される。この中継装置は、受信部と送信部とを有する。受信部は、第１の中継装置がデータの転送先を選択する際に、第２および第３のネットワークに接続された第２の中継装置までの距離を示す指標を第１の中継装置に提供する旨の指示を受信する。送信部は、当該指示に応じて、自身から第２の中継装置までの距離を示す指標を、第１の中継装置に送信する。
【００１２】
また、１つの態様では、第１および第２のネットワークに接続された中継装置が提供される。この中継装置は、受信部と送信部とを有する。受信部は、第２および第３のネットワークに接続された第１の中継装置が第１のネットワークへ宛てたデータの転送先を選択する際に、自身の第２のネットワークにおけるアドレスを第１の中継装置に提供する旨の指示を受信する。送信部は、当該指示に応じて、アドレスとアドレスを受信した中継装置から自身までの距離を示す指標を取得するための指標とを含む複数の応答データを、第１の中継装置からのデータの転送先の候補であり第２のネットワークに属する複数の第２の中継装置それぞれを介して第１の中継装置に送信する。
【００１３】
また、１つの態様では、中継装置が提供される。この中継装置は、通信部と制御部とを有する。通信部は、第１のネットワークに接続された第２のネットワークへ宛てたデータの転送先の候補であり第１のネットワークに属する複数の第１の中継装置と通信する。制御部は、データの転送先を選択する際に、第１および第２のネットワークに接続された第２の中継装置の第１のネットワークにおけるアドレスを解決するための問い合わせを行い、複数の第１の中継装置の何れかの中継装置から当該問い合わせに対する応答を受信すると、当該中継装置をデータの転送先として選択する。
【発明の効果】
【００１４】
１つの側面では、経路情報をもたなくても経路選択を行える。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】第２の実施の形態のルータのハードウェア例を示す図である。
【図４】第２の実施の形態のサーバのハードウェア例を示す図である。
【図５】第２の実施の形態のソフトウェア例を示す図である。
【図６】第２の実施の形態のソフトウェア例（続き）を示す図である。
【図７】第２の実施の形態の隣接ＧＷ管理テーブルの例を示す図である。
【図８】第２の実施の形態のルーティングテーブルの例を示す図である。
【図９】第２の実施の形態のＲＬＯＣキャッシュテーブルの例を示す図である。
【図１０】第２の実施の形態のＲＬＯＣ管理テーブルの例を示す図である。
【図１１】第２の実施の形態のパケットの例を示す図である。
【図１２】第２の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。
【図１３】第２の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。
【図１４】第２の実施の形態のＲＬＯＣ応答メッセージの例を示す図である。
【図１５】第２の実施の形態のＩＴＲの処理例を示すフローチャートである。
【図１６】第２の実施の形態のサーバの処理例を示すフローチャートである。
【図１７】第２の実施の形態のコア網ルータの処理例を示すフローチャートである。
【図１８】第２の実施の形態の処理例を示すシーケンスである。
【図１９】第３の実施の形態のＥＴＲのソフトウェア例を示す図である。
【図２０】第３の実施の形態の隣接ＧＷ管理テーブルの例を示す図である。
【図２１】第３の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。
【図２２】第３の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。
【図２３】第３の実施の形態のＲＬＯＣ応答メッセージの例を示す図である。
【図２４】第３の実施の形態のＩＴＲの処理例を示すフローチャートである。
【図２５】第３の実施の形態のサーバの処理例を示すフローチャートである。
【図２６】第３の実施の形態のＥＴＲの処理例を示すフローチャートである。
【図２７】第３の実施の形態の処理例を示すシーケンスである。
【図２８】第４の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。
【図２９】第４の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。
【図３０】第４の実施の形態の処理例を示すシーケンスである。
【図３１】第５の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。
【図３２】第５の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。
【図３３】第５の実施の形態のＲＬＯＣ応答メッセージの例を示す図である。
【図３４】第５の実施の形態のＩＴＲの処理例を示すフローチャートである。
【図３５】第５の実施の形態のサーバの処理例を示すフローチャートである。
【図３６】第５の実施の形態のＥＴＲの処理例を示すフローチャートである。
【図３７】第５の実施の形態の処理例を示すシーケンスである。
【図３８】第６の実施の形態の情報処理システムを示す図である。
【図３９】第６の実施の形態の処理例を示すシーケンスである。
【発明を実施するための形態】
【００１６】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理システムを示す図である。第１の実施の形態の情報処理システムは、中継装置１，２，２ａ，２ｂ，３、情報処理装置４およびノード５，６を有する。中継装置１，２，２ａ，２ｂ，３はデータの中継に用いられる装置である。中継装置１，２，２ａ，２ｂ，３はルータやＬ３スイッチと呼ばれるものでもよい。
【００１７】
中継装置１は、ネットワーク７，８に接続されている。中継装置１は、ネットワーク７，８の境界に設けられているともいえる。ネットワーク７，８は中継装置１を介して接続されている。中継装置２，２ａ，２ｂは、ネットワーク７に属している。中継装置２，２ａ，２ｂは、中継装置１からネットワーク７へデータを転送するときの転送先の候補である。中継装置３は、ネットワーク７，９に接続されている。中継装置３は、ネットワーク７，９の境界に設けられているともいえる。ネットワーク７，９は中継装置３を介して接続されている。情報処理装置４はネットワーク７に接続されている。ノード５はネットワーク８に接続されている。ノード６はネットワーク９に接続されている。
【００１８】
ネットワーク７は複数のＡＳ（Autonomous System）を含んでもよい。ＡＳは独立した運用ポリシーを用いるＩＳＰ（Internet Service Provider）や組織内ネットワーク（例えば、学術系のネットワーク）などでもよい。ネットワーク８，９はネットワーク７におけるＡＳでもよい。中継装置２，２ａ，２ｂはそれぞれ異なるＡＳに属していてもよい。ネットワーク７，８，９は、ＩＰ（Internet Protocol）ネットワークでもよい。中継装置１，２，２ａ，２ｂ，３が中継するデータは、ＩＰパケットまたはパケットと呼ばれるものでもよい。中継装置１は、通信部１ａおよび制御部１ｂを有する。
【００１９】
通信部１ａは、中継装置２，２ａ，２ｂと通信する。通信部１ａは、ポートＰ１，Ｐ２，Ｐ３を有する。ポートＰ１は、中継装置２と接続されるインタフェースである。ポートＰ２は、中継装置２ａと接続されるインタフェースである。ポートＰ３は、中継装置２ｂと接続されるインタフェースである。
【００２０】
制御部１ｂは、ネットワーク９へ宛てたデータの転送先を選択する際に、中継装置２，２ａ，２ｂそれぞれから中継装置３までの距離を示す情報Ｄ１，Ｄ２，Ｄ３を、中継装置２，２ａ，２ｂから取得する。制御部１ｂは、当該距離を示す情報Ｄ１，Ｄ２，Ｄ３に基づいて、中継装置２，２ａ，２ｂの中からデータの転送先を選択する。
【００２１】
例えば、距離を示す情報Ｄ１，Ｄ２，Ｄ３は中継装置２，２ａ，２ｂから中継装置３までのホップ数を示す情報でもよい。当該ホップ数は、中継装置２，３の間に介在する中継装置の数を示す指標でもよい。当該ホップ数は、中継装置２，３の間に介在するＡＳの数を示す指標でもよい。何れの指標も距離を示す指標として扱えるからである。
【００２２】
制御部１ｂは、当該距離を示す情報Ｄ１，Ｄ２，Ｄ３として、中継装置２，２ａ，２ｂそれぞれから最短の距離のものを１つずつ取得してもよい。例えば、中継装置２から中継装置３までの経路が複数存在する場合には、制御部１ｂは、その中で最小のホップ数のみを中継装置２から取得してもよい。また、距離を示す情報Ｄ１，Ｄ２，Ｄ３は当該ホップ数に所定値（例えば、“１”など）が加算された値でもよい。
【００２３】
更に、距離を示す情報Ｄ１，Ｄ２，Ｄ３として、ホップ数の回数制限（転送回数の上限）を示す情報を利用することも考えられる。当該情報は、ＩＰにおけるＴＴＬ（Time To Live）やホップリミット（Hop Limit）である。ＴＴＬまたはホップリミットは、中継装置を経由するごとに１単位ずつ減算される。したがって、当該ＴＴＬまたはホップリミットも距離の指標として扱える。具体的には、中継装置３から中継装置２，２ａ，２ｂそれぞれを経由して中継装置１へ到達したＩＰパケットに含まれるＴＴＬまたはホップリミットに基づいて、中継装置１は中継装置３までの距離を評価し得る。中継装置１と中継装置２，２ａ，２ｂとの間のホップ数が、例えば“１”のように同じであれば、ＴＴＬやホップリミットを中継装置２，２ａ，２ｂから中継装置３までの距離の指標と考えてもよい。
【００２４】
ここで、ノード５からノード６へデータを転送する場合を考える。ノード６は、ネットワーク９に属している。よって、ノード６を宛先としたデータは、ネットワーク９へ宛てたデータともいえる。制御部１ｂは、中継装置２，２ａ，２ｂから中継装置３までの距離を示す情報Ｄ１，Ｄ２，Ｄ３を取得する。例えば、中継装置２から取得された距離を示す情報Ｄ１は、指標“７”である。中継装置２ａから取得された距離を示す情報Ｄ２は、指標“５”である。中継装置２ｂから取得された距離を示す情報Ｄ３は、指標“４”である。指標の値が小さい程、距離が短いものとする。例えば、制御部１ｂは最短の距離である中継装置２ｂを転送先として選択する。この場合、中継装置２ｂと接続されたポートＰ３から転送する対象のデータを送出すればよい。
【００２５】
なお、制御部１ｂは、ネットワーク９へ宛てたデータの転送先を選択する際に、中継装置２，２ａ，２ｂから距離を示す情報Ｄ１，Ｄ２，Ｄ３を取得するものとした。このような制御は、例えば次のようにして行える。ここで、中継装置３は、受信部３ａおよび送信部３ｂを有している。情報処理装置４は、受信部４ａおよび制御部４ｂを有している。
【００２６】
情報処理装置４が、ネットワーク７における中継装置３のアドレスと、ネットワーク９におけるノード６のアドレスとの対応関係を管理することがある。例えば、ネットワーク７におけるルーティングにＬＩＳＰを用いる場合である。中継装置１は、ノード６宛のデータを転送する際に、情報処理装置４に対してノード６のアドレスを問い合わせることで、ネットワーク７における中継装置３のアドレスを解決し得る。
【００２７】
このとき、情報処理装置４において、受信部４ａは当該問い合わせを受信する。制御部４ｂは距離を示す情報Ｄ１，Ｄ２，Ｄ３を中継装置２，２ａ，２ｂから中継装置１へ提供させる。具体的には、中継装置２，２ａ，２ｂの各受信部（図示を省略）は、制御部４ｂから当該提供の指示を受け付ける。中継装置２，２ａ，２ｂの各送信部（図示を省略）は、当該指示に応じて距離を示す情報Ｄ１，Ｄ２，Ｄ３を中継装置１に送信する。このように、制御部４ｂは、中継装置２，２ａ，２ｂに対して距離を示す情報Ｄ１，Ｄ２，Ｄ３の提供を直接的に指示してもよい。
【００２８】
あるいは、制御部４ｂは、中継装置２，２ａ，２ｂそれぞれを経由して中継装置１に到達する複数のＩＰパケットを中継装置３に送信させてもよい。この場合、中継装置３において、受信部３ａは制御部４ｂから当該送信の指示を受け付ける。送信部３ｂは指示に応じて当該複数のＩＰパケットを送信する。ＩＰパケットはＴＴＬまたはホップリミットを含む。このように、制御部４ｂは、中継装置２，２ａ，２ｂにより距離を示す情報Ｄ１，Ｄ２，Ｄ３を間接的に提供させてもよい。
【００２９】
こうして、制御部１ｂは、ネットワーク９へ宛てたデータの転送先を選択する際に、例えば中継装置３のアドレス解決のための問い合わせを行うことで、中継装置２，２ａ，２ｂから距離を示す情報Ｄ１，Ｄ２，Ｄ３を取得し得る。この場合、アドレス解決の問い合わせに対する応答とともに転送先を選択できるので効率的である。
【００３０】
中継装置１によれば、制御部１ｂにより、ネットワーク９へ宛てたデータの転送先が選択される際に、転送先の候補である中継装置２，２ａ，２ｂそれぞれから中継装置３までの距離を示す情報Ｄ１，Ｄ２，Ｄ３が、中継装置２，２ａ，２ｂから取得される。制御部１ｂにより、当該距離を示す情報Ｄ１，Ｄ２，Ｄ３に基づいて、中継装置２，２ａ，２ｂの中からデータの転送先が選択される。
【００３１】
これにより、中継装置１はネットワーク７の経路情報をもたなくても経路選択を行える。例えば、中継装置１はネットワーク７にマルチホームで接続されている場合、ネットワーク７に対するデータの転送先を複数の候補の中から選択することになる。そこで、中継装置１にネットワーク７の経路情報を収集させて経路選択を行わせることが考えられる。しかし、中継装置１はネットワーク８にも接続されている。したがって、中継装置１はネットワーク８についても、経路情報の収集や経路選択の処理を行うことになる。
【００３２】
この場合、中継装置１の負担が増大し得る。例えば、ネットワーク７，８の両方の経路情報を保持するために比較的大きなメモリ領域を消費し得る。また、ネットワーク７，８の両方について経路選択を行うために、経路選択用の指標を評価するための演算コストが増大し得る。ネットワーク７がコアネットワークのように大規模であると、その負担は特に増大し得る。内部に存在するネットワークの数が多い程、収集される経路情報の量、演算対象となる経路情報の量も増大するからである。
【００３３】
そこで、中継装置１は、ネットワーク９へ宛てたデータを転送する際に、中継装置２，２ａ，２ｂから、ネットワーク９に接続された中継装置３までの距離を示す情報Ｄ１，Ｄ２，Ｄ３を取得する。そして、距離を示す情報Ｄ１，Ｄ２，Ｄ３に基づいて、データの転送先を選択する。中継装置２，２ａ，２ｂから中継装置３までの距離の指標を得れば、中継装置１から中継装置２，２ａ，２ｂそれぞれを介した中継装置３までの距離の差異を評価できるからである。
【００３４】
例えば、中継装置１から中継装置２，２ａ，２ｂそれぞれへのホップ数が所定値（例えば、“１”）なら、中継装置１から中継装置２，２ａ，２ｂそれぞれを介した中継装置３までの距離の差異は、中継装置２，２ａ，２ｂそれぞれから中継装置３までの距離の差異に等しい。より具体的には、中継装置２から中継装置３までが指標“７”であり、中継装置２ａから中継装置３までが指標“５”なら、距離の差異は“２”であり、その分だけ中継装置２ａの方が中継装置３までの距離が小さいと評価できる。両方の指標に所定値を加算しても、この差異は変わらない。したがって、中継装置１は、距離を示す情報Ｄ１，Ｄ２，Ｄ３に基づいて、例えば中継装置３までの距離が最短である中継装置２ｂを転送先として選択できる。最短のルートを選択するのはデータを効率的に転送できるからである。
【００３５】
このように、中継装置１は、中継装置２，２ａ，２ｂから取得された距離を示す情報Ｄ１，Ｄ２，Ｄ３に基づいて転送先を選択する。このため、中継装置１は、ネットワーク７の経路情報を収集しなくてもよい。また、中継装置１は、自身でネットワーク７の経路評価用の指標を算出しなくてもよい。すなわち、経路情報をもたなくても経路選択を行える。その結果、中継装置１の負担が軽減される。例えば、中継装置１において経路制御用のメモリを節約できる。また、例えば中継装置１による経路選択のための演算コストを軽減できる。
【００３６】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、ルータ１００，２００，２００ａ，２００ｂ，３００、サーバ４００およびクライアント５００，６００を有する。ルータ１００，２００，２００ａ，２００ｂ，３００およびサーバ４００は、コアネットワーク１０に接続されている。
【００３７】
コアネットワーク１０は、例えばインターネットやＷＡＮ（Wide Area Network）などの広域ネットワークにおける主要な回線網である。コアネットワーク１０は、ＡＳ１１，１２，１３，１４を含む。例えば、ＡＳ１１，１２，１３，１４は、ＩＳＰや組織内ネットワークなどである。ＡＳ１１，１３，１４は相互に接続されている。ＡＳ１２，１３は接続されている。各ＡＳ間には１以上の他のＡＳが介在し得る。コアネットワーク１０をコア網と称することもある。
【００３８】
ルータ１００およびクライアント５００は、ネットワーク２０に接続されている。ルータ１００は、ルータ２００，２００ａおよびＡＳ１４に接続されている。ルータ２００は、ＡＳ１１に接続されている。ルータ２００ａは、ＡＳ１２に接続されている。ルータ２００ｂは、ルータ３００およびＡＳ１３に接続されている。サーバ４００は、ＡＳ１４に接続されている。ルータ３００およびクライアント６００は、ネットワーク３０に接続されている。
【００３９】
コアネットワーク１０、ＡＳ１１，１２，１３，１４およびネットワーク２０，３０は、ＩＰネットワークである。ルータ１００，２００，２００ａ，２００ｂ，３００は、ＯＳＩ参照モデルのネットワーク層（第３層）でＩＰパケット（以下、単にパケットという）のルーティングを行う中継装置である。コアネットワーク１０のルーティングでは、ＬＩＳＰが用いられる。ＡＳ１４はＬＩＳＰの管理用のネットワークであり、通常のパケット転送に用いられるものではない。
【００４０】
ルータ１００は、コアネットワーク１０およびネットワーク２０の間の通信を中継する。ルータ３００は、コアネットワーク１０およびネットワーク３０の間の通信を中継する。ルータ１００，３００はネットワーク２０，３０におけるＣＥ（Customer Edge）ルータと呼ばれることもある。ルータ１００，３００は、コアネットワーク１０に対するＩＴＲおよびＥＴＲとして機能する。このため、ルータ１００，３００はｘＴＲと呼ばれることもある。
【００４１】
例えば、クライアント５００からクライアント６００に対してパケットを送信する場合を考える。この場合、ルータ１００は、パケットをカプセル化してコアネットワーク１０へ転送する。すなわち、ＩＴＲとして機能する。ＩＴＲをコアネットワーク１０に対する入口側エッジノードと呼んでもよい。一方、ルータ３００は、カプセル化を解除したパケットをネットワーク３０へ転送する。すなわち、ＥＴＲとして機能する。ＥＴＲをコアネットワーク１０に対する出口側エッジノードと呼んでもよい。以下の説明では、カプセル化されたパケットを、単に、カプセル化パケットと呼ぶことがある。
【００４２】
ルータ１００は、前述のようにルータ２００，２００ａに接続されている。すなわち、マルチホームである。あるいは、マルチホームでコアネットワーク１０に接続することをマルチホーミングと呼ぶこともある。
【００４３】
ルータ２００は、ルータ１００から受信したパケットまたはカプセル化パケットをＡＳ１１内に転送する。ルータ２００は、ＡＳ１１側のインタフェースで受信したパケットまたはカプセル化パケットをルータ１００に転送する。ルータ２００ａは、ルータ１００から受信したパケットまたはカプセル化パケットをＡＳ１２内に転送する。ルータ２００ａは、ＡＳ１２側のインタフェースで受信したパケットまたはカプセル化パケットをルータ１００に転送する。ルータ２００ｂは、ＡＳ１３側のインタフェースで受信したパケットまたはカプセル化パケットをルータ３００に転送する。ルータ２００ｂは、ルータ３００から受信したパケットまたはカプセル化パケットをＡＳ１３内に転送する。
【００４４】
サーバ４００は、ＥＩＤとＲＬＯＣとの対応関係を管理するサーバコンピュータである。サーバ４００は、ＩＴＲからのＲＬＯＣ解決の問い合わせに応じて、ＥＩＤに対応するＲＬＯＣをＩＴＲに提供する。
【００４５】
クライアント５００，６００は、ユーザにより利用されるクライアントコンピュータである。クライアント５００，６００には、一意のＥＩＤが付与される。例えば、クライアント５００は、クライアント６００のＥＩＤを宛先に指定したパケットを送信する。当該パケットは、ネットワーク２０、コアネットワーク１０およびネットワーク３０を経由して、クライアント６００へ到達する。
【００４６】
なお、コアネットワーク１０においてＡＳ間のルーティングプロトコル（ＥＧＰ：Exterior Gateway Protocol）は、例えばＢＧＰ（Boarder Gateway Protocol）である。ただし、ルータ１００，３００は、以下で説明する機能によりＥＧＰに参加しなくてもよい。ＡＳ内やネットワーク２０，３０内のルーティングプロトコル（ＩＧＰ：Interior Gateway Protocol）は、例えばＯＳＰＦ（Open Shortest Path First）やＲＩＰ（Routing Information Protocol）などである。
【００４７】
また、第２の実施の形態で用いられるアドレスは、ＩＰアドレスである。ＩＰアドレスは、ＩＰｖ４（Internet Protocol version 4）アドレスでもよいし、ＩＰｖ６（Internet Protocol version 6）アドレスでもよい。ルータ１００，２００，２００ａ，２００ｂ，３００のＩＰアドレスは、コアネットワーク１０内のルーティングに用いられる各ネットワークアドレスに属している。このため、ルータ１００，２００，２００ａ，２００ｂ，３００は、コアネットワーク１０に属しているということができる。これらルータ間を所定の回線で接続することでコアネットワーク１０が形成されていると考えることもできる。ルータ１００はネットワーク２０側のＩＰアドレスも有するからネットワーク２０にも属している。ルータ３００はネットワーク３０側のＩＰアドレスも有するからネットワーク３０にも属している。更に、ルータ１００，２００，２００ａ，２００ｂ，３００はＬ３スイッチと呼ばれるものでもよい。
【００４８】
第２の実施の形態の情報処理システムは、第１の実施の形態の情報処理システムの一例と考えることができる。例えば、ルータ１００は中継装置１の一例である。ルータ２００，２００ａは中継装置２ａ，２ｂ，２ｃの一例である。ルータ３００は中継装置３の一例である。サーバ４００は情報処理装置４の一例である。
【００４９】
図３は、第２の実施の形態のルータのハードウェア例を示す図である。ルータ１００は、プロセッサ１０１、ＲＡＭ（Random Access Memory）１０２、ＲＯＭ（Read Only Memory）１０３、スイッチ部１０４およびポート部１０５を有する。ルータ２００，２００ａ，２００ｂ，３００もルータ１００と同様のユニットを用いて実現できる。
【００５０】
プロセッサ１０１は、ルータ１００の情報処理を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）またはＰＬＤ（Programmable Logic Device）である。プロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００５１】
ＲＡＭ１０２は、ファームウェアのプログラムやデータを一時的に記憶する。ＲＡＭ１０２に記憶されたプログラムやデータは、プロセッサ１０１の処理に用いられる。
ＲＯＭ１０３は、ファームウェアのプログラムやデータを予め記憶している。ＲＯＭ１０３は、フラッシュメモリなど、書き換え可能な不揮発性メモリであってもよい。ＲＯＭ１０３に記憶されたプログラムやデータは、プロセッサ１０１の処理に用いられる。
【００５２】
スイッチ部１０４は、ポート部１０５の何れかのポートで受信されたパケットを、他のポートへ送出する。ポート部１０５は複数のポートを備える。複数のポートには、ポート１０５ａ，１０５ｂ，１０５ｃおよび１０５ｄが含まれる。ポート１０５ａはネットワーク２０に接続されている。ポート１０５ｂはＡＳ１４に接続されている。ポート１０５ｃはルータ２００に接続されている。ポート１０５ｄはルータ２００ａに接続されている。
【００５３】
図４は、第２の実施の形態のサーバのハードウェア例を示す図である。サーバ４００は、プロセッサ４０１、ＲＡＭ４０２、ＨＤＤ（Hard Disk Drive）４０３、画像信号処理部４０４、入力信号処理部４０５、ディスクドライブ４０６および通信部４０７を有する。クライアント５００，６００もサーバ４００と同様のユニットを用いて実現できる。
【００５４】
プロセッサ４０１は、サーバ４００の情報処理を制御する。プロセッサ４０１は、マルチプロセッサであってもよい。プロセッサ４０１は、例えばＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡまたはＰＬＤなどである。プロセッサ４０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００５５】
ＲＡＭ４０２は、サーバ４００の主記憶装置である。ＲＡＭ４０２は、プロセッサ４０１に実行させるＯＳのプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ４０２は、プロセッサ４０１による処理に用いる各種データを記憶する。
【００５６】
ＨＤＤ４０３は、サーバ４００の補助記憶装置である。ＨＤＤ４０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ４０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。サーバ４００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００５７】
画像信号処理部４０４は、プロセッサ４０１からの命令に従って、サーバ４００に接続されたディスプレイ４１に画像を出力する。ディスプレイ４１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００５８】
入力信号処理部４０５は、サーバ４００に接続された入力デバイス４２から入力信号を取得し、プロセッサ４０１に出力する。入力デバイス４２としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００５９】
ディスクドライブ４０６は、レーザ光などを利用して、記録媒体４３に記録されたプログラムやデータを読み取る駆動装置である。記録媒体４３として、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などを使用できる。記録媒体４３は、半導体メモリや磁気ディスクなどを内蔵した記憶装置でもよい。ディスクドライブ４０６は、例えば、プロセッサ４０１からの命令に従って、記録媒体４３から読み取ったプログラムやデータをＲＡＭ４０２またはＨＤＤ４０３に格納する。
【００６０】
通信部４０７は、ＡＳ１４を介して他のコンピュータやルータと通信を行えるインタフェースである。通信部４０７は、有線インタフェースでもよいし、無線インタフェースでもよい。例えば、プロセッサ４０１は、通信部４０７が他のコンピュータから受信したプログラムやデータをＲＡＭ４０２やＨＤＤ４０３に格納する。
【００６１】
図５は、第２の実施の形態のソフトウェア例を示す図である。ルータ１００は、記憶部１１０および経路制御部１２０を有する。記憶部１１０は、ＲＡＭ１０２の記憶領域を用いて実現されてもよい。経路制御部１２０は、ＲＡＭ１０２やＲＯＭ１０３に格納されたプログラムをプロセッサ１０１が実行することで実現されてもよい。ただし、経路制御部１２０はＡＳＩＣやＦＰＧＡなどの電子回路で実現されてもよい。
【００６２】
記憶部１１０は、隣接ＧＷ（GateWay）管理テーブル１１１、ルーティングテーブル１１２およびＲＬＯＣキャッシュテーブル１１３を記憶する。
隣接ＧＷ管理テーブル１１１は、コアネットワーク１０側の隣接ＧＷのＩＰアドレスがポート１０５ｃ，１０５ｄに対応付けて登録された情報である。本例において、当該隣接ＧＷはルータ２００，２００ａである。例えば、隣接ＧＷ管理テーブル１１１の設定を管理者などが予め行ってもよい。あるいは、所定のプロトコルを用いて、経路制御部１２０に隣接ＧＷのＩＰアドレスを取得させて登録させてもよい。例えば、ルータ１００とルータ２００，２００ａとの接続がＰＰＰ（Point-to-Point Protocol）リンクであれば、経路制御部１２０はＰＰＰを用いてルータ２００，２００ａのＩＰアドレスを取得し得る。ルーティングテーブル１１２は、宛先ネットワークアドレスに対応付けてＮｅｘｔ  ＨｏｐルータのＩＰアドレス（以下、Ｎｅｘｔ  Ｈｏｐアドレスということがある）が登録された情報である。ＲＬＯＣキャッシュテーブル１１３は、ＥＩＤに対するＲＬＯＣが登録された情報である。
【００６３】
経路制御部１２０は、パケット転送部１２１およびＲＬＯＣ処理部１２２を有する。パケット転送部１２１は、記憶部１１０に記憶されたルーティングテーブル１１２およびＲＬＯＣキャッシュテーブル１１３に基づいて、パケットの転送を行う。
【００６４】
例えば、パケット転送部１２１はネットワーク２０側のポート１０５ａで受信したパケットを、コアネットワーク１０側のポート１０５ｃ，１０５ｄの何れかから送出する。ネットワーク２０から受信したパケットをルータ２００，２００ａの何れかに送信するともいえる。このとき、パケット転送部１２１は、ＬＩＳＰの方法により、コアネットワーク１０へ送信するパケットをカプセル化する。
【００６５】
また、例えばパケット転送部１２１は、コアネットワーク１０側のポート１０５ｃ，１０５ｄで受信したカプセル化パケットのカプセル化を解除して、ネットワーク２０側のポート１０５ａから送出する。ルータ２００，２００ａから受信したカプセル化パケットを解除して得たパケットをネットワーク２０側に送信するともいえる。
【００６６】
ＲＬＯＣ処理部１２２は、ＥＩＤとＲＬＯＣとの対応関係を管理する。例えば、パケット転送部１２１が、ネットワーク２０からクライアント６００のＥＩＤを宛先としたパケットを受信する。当該パケットは、ネットワーク３０へ宛てたパケットということもできる。ＥＩＤのプレフィクス部分は、ネットワーク３０のネットワークアドレスだからである。ＲＬＯＣ処理部１２２は、ＲＬＯＣキャッシュテーブル１１３を参照し、対応するＥＴＲ（ルータ３００）のＲＬＯＣを検索する。ＲＬＯＣキャッシュテーブル１１３に、当該ＥＩＤに対応するＲＬＯＣが登録されていなければ、ＲＬＯＣ処理部１２２はＲＬＯＣ解決を要求するメッセージをサーバ４００に送信する。ＲＬＯＣ解決の要求を、単にＲＬＯＣ要求と呼ぶことがある。また、以下の説明では、当該メッセージをＲＬＯＣ要求メッセージと呼ぶことがある。ＲＬＯＣ要求メッセージは、ＥＩＤおよび隣接ＧＷのＩＰアドレスを含む。
【００６７】
ＲＬＯＣ処理部１２２は、当該要求に対する応答（ＲＬＯＣ応答）をルータ２００，２００ａを介して受信する。ＲＬＯＣ処理部１２２は、ＲＬＯＣ応答に基づいて、ＥＩＤに対応するＲＬＯＣを把握する。また、当該ＲＬＯＣ応答に含まれる情報に基づいて、ルーティングテーブル１１２の設定を行う。更に、ＲＬＯＣキャッシュテーブル１１３にＥＩＤとＲＬＯＣとの対応関係を登録する。
【００６８】
サーバ４００は、記憶部４１０および管理部４２０を有する。記憶部４１０は、ＲＡＭ４０２やＨＤＤ４０３の記憶領域を用いて実現されてもよい。管理部４２０は、ＲＡＭ４０２やＨＤＤ４０３に格納されたプログラムをプロセッサ４０１が実行することで実現されてもよい。ただし、管理部４２０はＡＳＩＣやＦＰＧＡなどの電子回路で実現されてもよい。
【００６９】
記憶部４１０は、ＲＬＯＣ管理テーブル４１１を記憶する。ＲＬＯＣ管理テーブル４１１は、ＥＩＤとＲＬＯＣとの対応関係が登録された情報である。例えば、ＲＬＯＣ管理テーブル４１１には、クライアント５００のＥＩＤとルータ１００のＲＬＯＣとの対応関係や、クライアント６００のＥＩＤとルータ３００のＲＬＯＣとの対応関係が予め登録される。ネットワーク２０には複数のクライアントが接続されることもある。その場合、複数のクライアントそれぞれのＥＩＤとルータ１００のＲＬＯＣとの対応関係がＲＬＯＣ管理テーブル４１１に登録されることになる。ネットワーク３０についても同様である。
【００７０】
管理部４２０は、ＲＬＯＣ要求メッセージを受信する。管理部４２０は、ＲＬＯＣ管理テーブル４１１を参照して、ＲＬＯＣ要求メッセージ含まれるＥＩＤに対応するＲＬＯＣを検索する。管理部４２０は、検索されたＲＬＯＣの提供を指示するメッセージを生成し、ルータ２００，２００ａの両方に送信する。以下の説明では、当該メッセージをＲＬＯＣ応答指示メッセージと呼ぶことがある。ＲＬＯＣ応答指示メッセージは、ＲＬＯＣ要求メッセージを送信したＩＴＲのＲＬＯＣおよびＥＴＲのＲＬＯＣを含む。
【００７１】
管理部４２０は、ルータ１００，３００からＥＩＤとルータ１００，３００のＩＰアドレスとの対応を示す情報を取得して、記憶部４１０に記憶されたＲＬＯＣ管理テーブル４１１に事前に登録する。例えば、ネットワーク２０の配下に存在するクライアント５００のＥＩＤとルータ１００のコアネットワーク１０側のＩＰアドレス（ＲＬＯＣに相当）との対応を示す情報をルータ１００から事前に取得し、登録する。また、例えば、ネットワーク３０の配下に存在するクライアント６００のＥＩＤとルータ３００のコアネットワーク１０側のＩＰアドレスとの対応を示す情報をルータ３００から事前に取得し、登録する。
【００７２】
図６は、第２の実施の形態のソフトウェア例（続き）を示す図である。ルータ２００は、記憶部２１０および経路制御部２２０を有する。記憶部２１０は、ルータ２００が備えるＲＡＭの記憶領域を用いて実現されてもよい。経路制御部２２０は、ルータ２００が備えるＲＡＭやＲＯＭに記憶されたプログラムをルータ２００が備えるプロセッサが実行することで実現されてもよい。ただし、経路制御部２２０はＡＳＩＣやＦＰＧＡなどの電子回路で実現されてもよい。ルータ２００ａもルータ２００と同様のソフトウェア例により実現できる。
【００７３】
記憶部２１０は、コアネットワーク経路情報２１１およびルーティングテーブル２１２を有する。コアネットワーク経路情報２１１は、例えばＢＧＰを用いて取得されたコアネットワーク１０の経路情報である。当該経路情報はＮＬＲＩ（Network Layer Reachability Information）（宛先ネットワークアドレスとプレフィクス長との組み合わせ）やパス属性を含む。コアネットワーク経路情報２１１をＢＧＰテーブルと呼ぶこともある。
【００７４】
例えば、コアネットワーク経路情報２１１に基づいて選択された宛先のネットワークアドレスに対するＮｅｘｔ  Ｈｏｐアドレス（ベストパス）は、コアネットワーク１０内の隣接するルータ（ＢＧＰピア）に広告される。これによって、他のルータに経路情報が伝搬される。ルーティングテーブル２１２は、ネットワークアドレスに対するベストパスを設定した情報である。経路制御部２２０が、コアネットワーク経路情報２１１およびルーティングテーブル２１２に対する情報の登録などを行ってもよい。
【００７５】
経路制御部２２０は、パケット転送部２２１およびＲＬＯＣ処理部２２２を有する。パケット転送部２２１は、記憶部２１０に記憶されたルーティングテーブル２１２に基づいて、パケットまたはカプセル化パケットの転送を行う。例えば、パケット転送部２２１は、ルータ１００から受信したパケットまたはカプセル化パケットを、ＡＳ１１側に送信する。また、例えばパケット転送部２２１は、ＡＳ１１側から受信したパケットまたはカプセル化パケットをルータ１００に送信する。
【００７６】
ＲＬＯＣ処理部２２２は、ＲＬＯＣ応答指示メッセージを受信する。すると、ＲＬＯＣ処理部２２２は、記憶部２１０に記憶されたコアネットワーク経路情報２１１を参照して、ＥＴＲのＲＬＯＣまでの距離を計算する。具体的には、ホップ数である。ホップ数とは、例えばＥＴＲに到達するまでに経由するルータの数である。
【００７７】
例えば、コアネットワーク経路情報２１１に含まれるＮＬＲＩに付随したパス属性は、経由するＡＳを示すＡＳ＿ＰＡＴＨ属性などを含む。例えば、ＲＬＯＣ処理部２２２は、ＡＳ＿ＰＡＴＨ属性に基づいて、宛先のネットワークアドレスまでに経由するＡＳの個数を当該ホップ数とみなしてもよい。経由するＡＳの個数によっても、宛先のネットワークアドレスに対する距離を評価し得るからである。
【００７８】
ホップ数が大きい程、ルータなどの処理のオーバヘッドで通信が遅延し得るから、ホップ数は時間的な距離を示しているともいえる。また、ホップ数が大きい程、ＩＴＲとＥＴＲとの間に経由する回線長も大きい可能性が高いから、ホップ数は空間的な距離を示しているともいえる。ＲＬＯＣ処理部２２２は、計算されたホップ数を含むメッセージをルータ１００に送信する。以下の説明では、当該メッセージをＲＬＯＣ応答メッセージと呼ぶことがある。ＲＬＯＣ応答メッセージはＥＴＲのＲＬＯＣを含む。
【００７９】
なお、経路制御部２２０は、ルータ１００への経路をコアネットワーク１０内に広告する。ルータ２００ａも同様である。また、同様に、ルータ２００ｂは、ルータ３００への経路をコアネットワーク１０内に広告する。
【００８０】
図７は、第２の実施の形態の隣接ＧＷ管理テーブルの例を示す図である。隣接ＧＷ管理テーブル１１１は、インタフェースおよび隣接ＧＷアドレスの項目を含む。インタフェースの項目には、ポートを物理的に識別するための識別子が登録される。隣接ＧＷアドレスの項目には、隣接ＧＷのＩＰアドレスが登録される。
【００８１】
例えば、隣接ＧＷ管理テーブル１１１には、インタフェースが“ｅｔｈ０”、隣接ＧＷアドレスが“ＧＷ１”という情報が登録される。“ｅｔｈ０”はポート１０５ｃの識別子である。“ＧＷ１”はルータ２００のＩＰアドレスである。すなわち、ポート１０５ｃの先にルータ２００が接続されていることを示す。なお、“ｅｔｈ１”はポート１０５ｄの識別子である。“ＧＷ２”はルータ２００ａのＩＰアドレスである。
【００８２】
更に、他の装置のＩＰアドレスをそれぞれの次の通りとする。ルータ１００のコアネットワーク１０側のＩＰアドレスは“ＲＬＯＣ１”である。ルータ３００のコアネットワーク１０側のＩＰアドレスは“ＲＬＯＣ２”である。サーバ４００のＩＰアドレスは“ＳＶ１”である。クライアント５００のＩＰアドレスは“ＩＰ１”である。クライアント６００のＩＰアドレスは“ＩＰ２”である。
【００８３】
図８は、第２の実施の形態のルーティングテーブルの例を示す図である。ルーティングテーブル１１２は、宛先ネットワークアドレスおよびＮｅｘｔ  Ｈｏｐの項目を含む。宛先ネットワークアドレスの項目には、宛先のネットワークアドレスが登録される。Ｎｅｘｔ  Ｈｏｐの項目には、Ｎｅｘｔ  Ｈｏｐアドレスが登録される。
【００８４】
例えば、ルーティングテーブル１１２には、宛先ネットワークアドレスが“Ｎ−ＳＶ１”、Ｎｅｘｔ  Ｈｏｐが“ＧＷＡ”という情報が登録される。“Ｎ−ＳＶ１”はＡＳ１４のネットワークアドレスである。“ＧＷＡ”はＡＳ１４に接続するルータ（ポート１０５ｂの先に接続されたルータ）のＩＰアドレスである。すなわち、サーバ４００にパケットを送りたいときは、ポート１０５ｂから送出すればよいことを示す。
【００８５】
また、例えば、ルーティングテーブル１１２には、宛先ネットワークアドレスが“Ｎ−ＲＬＯＣ２”、Ｎｅｘｔ  Ｈｏｐが“ＧＷ１”という情報が登録される。“Ｎ−ＲＯＣ２”はルータ３００が属するコアネットワーク１０側のネットワークアドレスである。すなわち、ルータ３００にパケット（カプセル化パケット）を送りたいときは、ポート１０５ｃから送出すればよいことを示す。
【００８６】
図９は、第２の実施の形態のＲＬＯＣキャッシュテーブルの例を示す図である。ＲＬＯＣキャッシュテーブル１１３は、ＥＩＤおよびＲＬＯＣの項目を含む。ＥＩＤの項目には、ＥＩＤが登録される。ＲＬＯＣの項目には、ＲＬＯＣが登録される。
【００８７】
例えば、ＲＬＯＣキャッシュテーブル１１３には、ＥＩＤが“ＩＰ２”、ＲＬＯＣが“ＲＬＯＣ２”という情報が登録される。これは、クライアント６００に対応するＥＴＲがルータ３００であることを示す。すなわち、クライアント６００宛のパケットを転送する際に、ルータ３００を宛先として含むヘッダを当該パケットに追加して（カプセル化）転送すればよいことを示す。
【００８８】
図１０は、第２の実施の形態のＲＬＯＣ管理テーブルの例を示す図である。ＲＬＯＣ管理テーブル４１１は、ＥＩＤおよびＲＬＯＣの項目を含む。ＥＩＤの項目には、ＥＩＤが登録される。ＲＬＯＣの項目には、ＲＬＯＣが登録される。
【００８９】
例えば、ＲＬＯＣ管理テーブル４１１には、ＥＩＤが“ＩＰ１”、ＲＬＯＣが“ＲＬＯＣ１”という情報が登録される。これは、クライアント５００に対するＥＴＲがルータ１００であることを示す。
【００９０】
また、例えばＲＬＯＣ管理テーブル４１１には、ＥＩＤが“ＩＰ２”、ＲＬＯＣが“ＲＬＯＣ２”という情報が登録される。これは、クライアント６００に対するＥＴＲがルータ３００であることを示す。
【００９１】
図１１は、第２の実施の形態のパケットの例を示す図である。パケット５０は、ＤＡ（Destination Address）（１）、ＳＡ（Source Address）（１）およびＤＡＴＡのフィールドを含む。ＤＡ（１）は宛先アドレスである。ＳＡ（１）は送信元アドレスである。ＤＡＴＡは、送りたいデータ本体（ペイロード）である。ＤＡ（１）およびＳＡ（１）を含む所定のフィールド群がヘッダである。例えば、ルータ１００は、ＤＡ（１）が“ＩＰ２”、ＳＡ（１）が“ＩＰ１”、ＤＡＴＡが“ｘｘｘｘｘ”というパケット５０を受信することがある。
【００９２】
カプセル化パケット６０は、ＤＡ（２）、ＳＡ（２）、ＤＡ（１）、ＳＡ（１）およびＤＡＴＡのフィールドを含む。ＤＡ（２）はコアネットワーク１０内の宛先アドレスである。ＳＡ（２）はコアネットワーク１０内の送信元アドレスである。ＤＡ（１）、ＳＡ（１）およびＤＡＴＡのフィールドは、パケット５０と同様である。例えば、ルータ１００は、パケット５０をカプセル化して、ＤＡ（２）が“ＲＬＯＣ２”、ＳＡ（２）が“ＲＬＯＣ１”、ＤＡ（１）が“ＩＰ２”、ＳＡ（１）が“ＩＰ１”、ＤＡＴＡが“ｘｘｘｘｘ”というカプセル化パケット６０を送信することがある。カプセル化パケット６０は、コアネットワーク１０内のルータにおいて、ＤＡ（２）に設定されたＩＰアドレスに基づいて転送されることになる。
【００９３】
図１２は、第２の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。ＲＬＯＣ要求メッセージ５１は、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＩＴＲアドレスおよび隣接ＧＷアドレスリストのフィールドを含む。ＤＡおよびＳＡは、パケット５０のＤＡ（１）およびＳＡ（１）に相当する。Ｔｙｐｅはメッセージの属性を示す。ＥＩＤはＥＩＤを示す。ＩＴＲアドレスは、ＲＬＯＣ要求メッセージ５１の発行元のＩＴＲのＩＰアドレスを示す。隣接ＧＷアドレスリストは、当該ＩＴＲのコアネットワーク１０側の隣接ＧＷのＩＰアドレスのリストを示す。
【００９４】
例えば、ルータ１００がクライアント５００からクライアント６００を宛先アドレスとするパケットを受信した場合、ＲＬＯＣ要求メッセージ５１は次のようになる。
ＤＡは“ＳＶ１”である。サーバ４００宛だからである。ＳＡは“ＲＬＯＣ１”である。送信元はルータ１００だからである。Ｔｙｐｅは“ＲＬＯＣ要求”である。ＲＬＯＣ要求メッセージだからである。ＥＩＤは“ＩＰ２”である。ルータ１００はクライアント６００を宛先としたパケットを転送したいからである。ＩＴＲアドレスは“ＲＬＯＣ１”である。要求元はルータ１００だからである。隣接ＧＷアドレスリストは“ＧＷ１，ＧＷ２”である。隣接ＧＷ管理テーブル１１１にこれらが登録されているからである。
【００９５】
図１３は、第２の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。ＲＬＯＣ応答指示メッセージ５２，５２ａは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＥＴＲアドレスおよびＩＴＲアドレスのフィールドを含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＩＴＲアドレスが示す内容は、ＲＬＯＣ要求メッセージ５１で説明した通りである。ＥＴＲアドレスは、ＥＩＤに対応するＲＬＯＣを示す。例えば、ＲＬＯＣ要求メッセージ５１に対してサーバ４００が送信するＲＬＯＣ応答指示メッセージ５２，５２ａは次のようになる。
【００９６】
ＲＬＯＣ応答指示メッセージ５２において、ＤＡは“ＧＷ１”である。ＲＬＯＣ要求メッセージ５１で隣接ＧＷのＩＰアドレスリスト“ＧＷ１，ＧＷ２”が指定され、そのうちルータ２００宛だからである。ＳＡは“ＳＶ１”である。送信元はサーバ４００だからである。Ｔｙｐｅは“ＲＬＯＣ応答”である。ＲＬＯＣ応答指示メッセージだからである。なお、ＲＬＯＣ応答指示メッセージは、ＲＬＯＣ要求メッセージに対して送信されるものなので、ＲＬＯＣ応答メッセージと呼ぶこともできる。本例では、ルータ２００，２００ａが送信するＲＬＯＣ応答メッセージと区別するために便宜的にＲＬＯＣ応答指示メッセージと称している。
【００９７】
ＥＩＤは“ＩＰ２”である。ＲＬＯＣ要求メッセージ５１でＥＩＤ“ＩＰ２”が指定されたからである。ＥＴＲアドレスは“ＲＬＯＣ２”である。ＥＩＤ“ＩＰ２”に対応するＲＬＯＣは“ＲＬＯＣ２”だからである。ＩＴＲアドレスは“ＲＬＯＣ１”である。要求元はルータ１００だからである。
【００９８】
ＲＬＯＣ応答指示メッセージ５２ａにおいて、ＤＡは“ＧＷ２”である。ＲＬＯＣ要求メッセージ５１で隣接ＧＷのＩＰアドレスリスト“ＧＷ１，ＧＷ２”が指定され、そのうちルータ２００ａ宛だからである。その他のフィールドの設定内容は、ＲＬＯＣ応答指示メッセージ５２と同様である。
【００９９】
図１４は、第２の実施の形態のＲＬＯＣ応答メッセージの例を示す図である。ＲＬＯＣ応答メッセージ５３，５３ａは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＥＴＲアドレスおよびＥＴＲまでのホップ数のフィールドを含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＥＴＲアドレスが示す内容は、ＲＬＯＣ応答指示メッセージ５２，５２ａで説明した通りである。ＥＴＲまでのホップ数のフィールドには、ＲＬＯＣ応答指示メッセージ５２，５２ａを受信したルータからＥＴＲまでのホップ数を示す。例えば、ＲＬＯＣ応答指示メッセージ５２，５２ａに対するＲＬＯＣ応答メッセージ５３，５３ａは次のようになる。
【０１００】
ＲＬＯＣ応答メッセージ５３において、ＤＡは“ＲＬＯＣ１”である。ルータ１００宛だからである。ＳＡは“ＧＷ１”である。送信元はルータ２００だからである。Ｔｙｐｅは“ＲＬＯＣ応答”である。ＲＬＯＣ応答メッセージだからである。ＥＩＤは“ＩＰ２”である。ＲＬＯＣ応答指示メッセージ５２でＥＩＤ“ＩＰ２”が指定されたからである。ＥＴＲアドレスは“ＲＬＯＣ２”である。ＲＬＯＣ応答指示メッセージ５２でＥＴＲアドレス“ＲＬＯＣ２”が指定されたからである。ＥＴＲまでのホップ数は“５”である。コアネットワーク経路情報２１１に基づいてルータ２００により算出された値である。
【０１０１】
ＲＬＯＣ応答メッセージ５３ａにおいて、ＳＡは“ＧＷ２”である。送信元はルータ２００ａだからである。ＥＴＲまでのホップ数は“１０”である。ルータ２００ａが保持するコアネットワーク経路情報に基づいてルータ２００ａにより算出された値である。その他のフィールドの設定内容は、ＲＬＯＣ応答メッセージ５３と同様である。
【０１０２】
図１５は、第２の実施の形態のＩＴＲの処理例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。以下の説明では、図面において“メッセージ”の文字列を略記することがある。
【０１０３】
（ステップＳ１１）パケット転送部１２１は、パケット５０を受信する。パケット５０のＤＡ（１）（すなわち、ＥＩＤ）は“ＩＰ２”である。ＳＡ（１）は“ＩＰ１”である。
【０１０４】
（ステップＳ１２）ＲＬＯＣ処理部１２２は、ＥＩＤ“ＩＰ２”がＲＬＯＣキャッシュテーブル１１３に未登録であるか否かを判定する。未登録である場合、処理をステップＳ１３に進める。登録済である場合、処理をステップＳ１８に進める。
【０１０５】
（ステップＳ１３）ＲＬＯＣ処理部１２２は、記憶部１１０に記憶された隣接ＧＷ管理テーブル１１１を参照して、隣接ＧＷ（ルータ２００，２００ａ）のＩＰアドレスを取得する。ＲＬＯＣ処理部１２２は、隣接ＧＷのＩＰアドレス（隣接ＧＷアドレスリスト）を含むＲＬＯＣ要求メッセージ５１を生成し、サーバ４００に送信する。
【０１０６】
（ステップＳ１４）ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１に対してルータ２００からＲＬＯＣ応答メッセージ５３を受信する。ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１に対してルータ２００ａからＲＬＯＣ応答メッセージ５３ａを受信する。
【０１０７】
（ステップＳ１５）ＲＬＯＣ処理部１２２は、ＲＬＯＣ応答メッセージ５３，５３ａに基づいて、ルータ２００，２００ａのうちＥＴＲに対して最小ホップ数のものを、Ｎｅｘｔ  Ｈｏｐルータとして選択する。ＲＬＯＣ応答メッセージ５３，５３ａの例では、ＲＬＯＣ応答メッセージ５３に設定されたホップ数“５”は、ＲＬＯＣ応答メッセージ５３ａに設定されたホップ数“１０”よりも小さい。したがって、ＲＬＯＣ応答メッセージ５３に設定されたホップ数が最小である。よって、ＲＬＯＣ処理部１２２は、Ｎｅｘｔ  Ｈｏｐルータとしてルータ２００を選択する。
【０１０８】
（ステップＳ１６）ＲＬＯＣ処理部１２２は、Ｎｅｘｔ  Ｈｏｐルータとして選択した方の隣接ＧＷから受信したＲＬＯＣ応答メッセージに基づいて、ルーティングテーブル１１２にエントリを追加する。例えば、ＲＬＯＣ処理部１２２は、ＲＬＯＣ応答メッセージ５３に含まれるＥＴＲアドレス“ＲＬＯＣ２”のネットワークアドレス“Ｎ−ＲＬＯＣ２”とルータ２００のＩＰアドレス“ＧＷ１”とを対応付けてルーティングテーブル１１２に登録する。なお、当該エントリがルーティングテーブル１１２に登録済の場合もある。その場合は、ステップＳ１６をスキップしてもよい。
【０１０９】
（ステップＳ１７）ＲＬＯＣ処理部１２２は、Ｎｅｘｔ  Ｈｏｐルータとして選択した方の隣接ＧＷから受信したＲＬＯＣ応答メッセージに基づいて、ＲＬＯＣキャッシュテーブル１１３にエントリを追加する。例えば、ＲＬＯＣ処理部１２２は、ＲＬＯＣ応答メッセージ５３に含まれるＥＩＤ“ＩＰ２”とＥＴＲアドレス“ＲＬＯＣ２”とを対応付けてＲＬＯＣキャッシュテーブル１１３に登録する。
【０１１０】
（ステップＳ１８）パケット転送部１２１は、ＲＬＯＣキャッシュテーブル１１３を参照して、ＥＩＤ“ＩＰ２”に対するＲＬＯＣ“ＲＬＯＣ２”を取得する。パケット転送部１２１は、パケット５０をカプセル化して、カプセル化パケット６０を生成する。カプセル化パケット６０のＤＡ（２）は“ＲＬＯＣ２”である。ＳＡ（２）は“ＲＬＯＣ１”である。
【０１１１】
（ステップＳ１９）パケット転送部１２１は、カプセル化パケット６０を転送する。具体的には、パケット転送部１２１は、ルーティングテーブル１１２を参照して、ＲＬＯＣ“ＲＬＯＣ２”のネットワークアドレス“Ｎ−ＲＬＯＣ２”に対するＮｅｘｔ  Ｈｏｐアドレス“ＧＷ１”を取得する。したがって、パケット転送部１２１は、ルータ２００と接続されたポート１０５ｃから、カプセル化パケット６０を送出する。
【０１１２】
このように、ルータ１００は、ＲＬＯＣキャッシュテーブル１１３に未登録のＥＩＤがある場合、ＲＬＯＣ要求メッセージ５１をサーバ４００に送信することで、ＲＬＯＣを解決し得る。具体的には、ルータ１００は、ＥＴＲ（ルータ３００）までのホップ数を含むＲＬＯＣ応答メッセージ５３，５３ａを受信する。ルータ１００は、ＲＬＯＣを得るとともに、当該ホップ数に基づきＮｅｘｔ  Ｈｏｐアドレスを決定する。
【０１１３】
なお、ステップＳ１４において、ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１に含めた隣接ＧＷのＩＰアドレスの数（この場合は２つ）だけＲＬＯＣ応答メッセージ５３，５３ａを正常に受信した後にステップＳ１５に進む。ただし、ネットワークの障害などで、１つしか受信できない場合もある（例えば、応答のメッセージが途中で破棄された場合や、遅延などで所定の制限時間内に１つしか応答を受信しなかった場合）。この場合は、ステップＳ１５をスキップしてステップＳ１６に進めてもよい。その場合、ＲＬＯＣ処理部１２２は、当該１つのＲＬＯＣ応答メッセージに含まれるＥＴＲアドレスなどに基づいて、ステップＳ１６以降の処理を行える。
【０１１４】
また、ステップＳ１７で示したように、ＲＬＯＣキャッシュテーブル１１３を用いて解決済みのＲＬＯＣとＥＩＤとの対応を保持しておく。これにより、以後ではステップＳ１２の判定によって、ステップＳ１３〜Ｓ１７の処理を省ける。
【０１１５】
図１６は、第２の実施の形態のサーバの処理例を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
（ステップＳ２１）管理部４２０は、ＲＬＯＣ要求メッセージ５１をルータ１００から受信する。管理部４２０は、ＲＬＯＣ要求メッセージ５１からＥＩＤ“ＩＰ２”を取得する。
【０１１６】
（ステップＳ２２）管理部４２０は、ＲＬＯＣ管理テーブル４１１を参照して、ＥＩＤ“ＩＰ２”が登録済であるか否かを判定する。登録済である場合、処理をステップＳ２３に進める。未登録である場合、処理をステップＳ２５に進める。
【０１１７】
（ステップＳ２３）管理部４２０は、ＲＬＯＣ管理テーブル４１１からＥＩＤ“ＩＰ２”に対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。管理部４２０は、ＲＬＯＣ要求メッセージ５１から、隣接ＧＷのＩＰアドレスを取得する。取得された情報に基づいて、管理部４２０は、ＲＬＯＣ応答指示メッセージ５２，５２ａを生成する。ＲＬＯＣ応答指示メッセージ５２，５２ａは、ＩＴＲアドレス“ＲＬＯＣ１”およびＥＴＲアドレス“ＲＬＯＣ２”を含む。ＲＬＯＣ応答指示メッセージ５２は、ルータ２００宛である。ＲＬＯＣ応答指示メッセージ５２ａは、ルータ２００ａ宛である。
【０１１８】
（ステップＳ２４）管理部４２０は、ＲＬＯＣ応答指示メッセージ５２をルータ２００に送信する。管理部４２０は、ＲＬＯＣ応答指示メッセージ５２ａをルータ２００ａに送信する。そして、処理を終了する。
【０１１９】
（ステップＳ２５）管理部４２０は、エラー処理を行う。例えば、管理部４２０は、対応するＥＩＤが存在しない旨をルータ１００に応答する（エラー応答）。ルータ１００は、エラー応答に基づいて、当該ＥＩＤ宛にパケットを転送できない旨を、クライアント６００に通知してもよい。そして、処理を終了する。
【０１２０】
このようにして、サーバ４００は、ＲＬＯＣ要求メッセージ５１に対して、ＲＬＯＣ応答指示メッセージ５２，５２ａをルータ２００，２００ａに送信する。
図１７は、第２の実施の形態のコア網ルータの処理例を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。以下では、ルータ２００の処理を説明するが、ルータ２００ａも同様の手順である。
【０１２１】
（ステップＳ３１）ＲＬＯＣ処理部２２２は、ＲＬＯＣ応答指示メッセージ５２をサーバ４００から受信する。ＲＬＯＣ処理部２２２は、ＲＬＯＣ応答指示メッセージ５２からＥＴＲアドレス“ＲＬＯＣ２”を取得する。
【０１２２】
（ステップＳ３２）ＲＬＯＣ処理部２２２は、記憶部２１０に記憶されたコアネットワーク経路情報２１１に基づいて、ルータ２００からＥＴＲであるルータ３００（“ＲＬＯＣ２”）までのホップ数を算出する。ここで、ルータ２００からルータ３００までに複数の経路が存在する場合もある。その場合は、最短のホップ数を採用する。ルータ１００に提示する選択肢を減らした方がルータ１００の演算コストを軽減できるからである。
【０１２３】
（ステップＳ３３）ＲＬＯＣ処理部２２２は、ＲＬＯＣ応答指示メッセージ５２からＩＴＲアドレス“ＲＬＯＣ１”を取得する。ＲＬＯＣ処理部２２２は、ＲＬＯＣ応答メッセージ５３を生成する。ＲＬＯＣ応答メッセージ５３は、ルータ１００宛である。ＲＬＯＣ応答メッセージ５３は、ＥＴＲアドレス“ＲＬＯＣ２”およびＥＴＲまでのホップ数“５”を含む。
【０１２４】
（ステップＳ３４）ＲＬＯＣ処理部２２２は、ＲＬＯＣ応答メッセージ５３をルータ１００に送信する。
このようにして、ルータ２００はＲＬＯＣ応答指示メッセージ５２に基づいて、ＲＬＯＣ応答メッセージ５３を生成し、ルータ１００に送信する。このとき、ルータ２００は、ルータ２００からＥＴＲであるルータ３００までのホップ数を計算して、ＲＬＯＣ応答メッセージ５３に含める。ただし、計算したホップ数に、ルータ２００，２００ａで共通の所定値（例えば、“１”など）を加算したものでもよい。また、ルータ単位に重み付けをしてもよい（例えば、ルータごとに異なる係数をホップ数に乗ずるなど）。
【０１２５】
図１８は、第２の実施の形態の処理例を示すシーケンスである。以下、図１８に示す処理をステップ番号に沿って説明する。
ルータ１００はクライアント５００からクライアント６００宛のパケット５０を受信する（ステップＳＴ１０１）。ルータ１００はＲＬＯＣキャッシュテーブル１１３にクライアント６００のＥＩＤ“ＩＰ２”が未登録であると、ＲＬＯＣ要求メッセージ５１を生成する。ルータ１００は、ＲＬＯＣ要求メッセージ５１をサーバ４００に送信する（ステップＳＴ１０２）。
【０１２６】
サーバ４００は、ＲＬＯＣ要求メッセージ５１を受信すると、ＲＬＯＣ管理テーブル４１１を参照して、ＥＩＤ“ＩＰ２”のエントリを検索し、対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２，５２ａを生成する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２をルータ２００に送信する（ステップＳＴ１０３）。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ａをルータ２００ａに送信する（ステップＳＴ１０４）。ステップＳＴ１０３，ＳＴ１０４は同時でもよいし、順序が入れ替わってもよい。
【０１２７】
ルータ２００は、ＲＬＯＣ応答指示メッセージ５２を受信すると、ルータ２００からルータ３００までのホップ数を計算して、ＲＬＯＣ応答メッセージ５３を生成する。ルータ２００は、ＲＬＯＣ応答メッセージ５３をルータ１００に送信する（ステップＳＴ１０５）。ルータ２００ａは、ＲＬＯＣ応答指示メッセージ５２ａを受信すると、ルータ２００ａからルータ３００までのホップ数を計算して、ＲＬＯＣ応答メッセージ５３ａを生成する。ルータ２００ａは、ＲＬＯＣ応答メッセージ５３ａをルータ１００に送信する（ステップＳＴ１０６）。ステップＳＴ１０５，ＳＴ１０６は、同時でもよいし、順序が入れ替わってもよい。
【０１２８】
ルータ１００は、ＲＬＯＣ応答メッセージ５３，５３ａを受信すると、ＥＴＲまでのホップ数を比較する。ルータ１００は、ホップ数が最小であるルータ２００をＮｅｘｔ  Ｈｏｐルータとして選択する。ルータ１００は、選択結果に基づいて、ルーティングテーブル１１２およびＲＬＯＣキャッシュテーブル１１３に新たなエントリを登録する。ルータ１００は、パケット５０をカプセル化してカプセル化パケット６０を生成し、ルータ３００へ送信する。この場合、送出ポートは、ポート１０５ｃである。カプセル化パケット６０は、ルータ２００を経由してルータ３００に到達することになる（ステップＳＴ１０７）。
【０１２９】
ルータ３００は、カプセル化パケット６０を受信すると、カプセル化を解除しパケット５０を得る。ルータ３００は、パケット５０をクライアント６００へ向けて転送する（ステップＳＴ１０８）。
【０１３０】
このようにして、ルータ１００は、ルータ２００，２００ａそれぞれからルータ３００までのホップ数を取得する。ルータ１００は、各ホップ数を比較して、ルータ２００，２００ａのうちＮｅｘｔ  Ｈｏｐルータを選択する。このため、ルータ１００は、コアネットワーク１０のＥＧＰ（例えば、ＢＧＰ）に参加しなくてよい。したがって、ルータ１００において、コアネットワーク経路情報を収集しなくてよい。ただし、ルータ１００は、ネットワーク２０側の経路情報を収集して経路選択を行い得る。
【０１３１】
例えば、ルータ２００，２００ａは、ルータ１００に対してコアネットワーク経路情報を広告しないように制御する。あるいは、ルータ１００は、ルータ２００，２００ａからコアネットワーク経路情報を受信したとしても、当該情報を破棄する。このようにすれば、ルータ１００において、経路制御に用いるＲＡＭ１０２などの領域を節約できる。また、ルータ１００において、経路選択用の指標を評価するための演算コストを軽減できる。
【０１３２】
特に、ネットワーク２０側の責任でｘＴＲを設けるとなると、コアネットワーク１０などの大規模なネットワークに対応したものを用意するのが難しいこともある。例えば、大規模なネットワークに対応した比較的処理能力の高いルータは高額な場合もあるからである。第２の実施の形態によれば、ルータ１００の処理能力やＲＡＭ１０２の容量が比較的低くても、求める処理性能を達成できる可能性が高まる。すなわち、ルータ１００に求められる処理能力を抑えられ、コスト面でも有利である。
【０１３３】
また、ＬＩＳＰにおいて、ＥＴＲのアドレス解決とともにＮｅｘｔ  Ｈｏｐルータを選択できる。このため、Ｎｅｘｔ  Ｈｏｐルータを選択するための専用のパケットを送るよりも効率的にＮｅｘｔ  Ｈｏｐルータの選択を行える。
【０１３４】
［第３の実施の形態］
以下、第３の実施の形態を説明する。前述の第２の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【０１３５】
第２の実施の形態では、サーバ４００は、ルータ２００，２００ａに対してＲＬＯＣ応答指示メッセージ５２，５２ａを送信するものとした。一方、第３の実施の形態では、サーバ４００は、ＥＴＲに対してＲＬＯＣ応答指示メッセージを送信することで、ＩＴＲがＮｅｘｔ  Ｈｏｐルータを選択できるようにする。
【０１３６】
ここで、第３の実施の形態の情報処理システムは、図２で示した第２の実施の形態の情報処理システムと同様である。第３の実施の形態のハードウェア例およびソフトウェア例は、図３〜６で示した第２の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第３の実施の形態における各装置を第２の実施の形態と同じ名称・符号を用いて指し示す。
【０１３７】
ただし、第３の実施の形態では、管理部４２０がＥＴＲとして機能するルータ３００に対してＲＬＯＣ応答指示メッセージを送信する点が第２の実施の形態と異なる。また、ルータ２００がＲＬＯＣ処理部２２２をもたなくてよい点が第２の実施の形態と異なる（ルータ２００ａも同様）。更に、ＩＴＲとして機能するルータ１００のＲＬＯＣ処理部１２２は、ルータ３００から転送されてきたＲＬＯＣ応答メッセージに基づいてＮｅｘｔ  Ｈｏｐルータを選択する点が第２の実施の形態と異なる。
【０１３８】
図１９は、第３の実施の形態のＥＴＲのソフトウェア例を示す図である。ルータ３００は、記憶部３１０および経路制御部３２０を有する。記憶部３１０は、ルータ３００が備えるＲＡＭの記憶領域を用いて実現されてもよい。経路制御部３２０は、ルータ３００が備えるＲＡＭやＲＯＭに格納されたプログラムをルータ３００が備えるプロセッサが実行することで実現されてもよい。ただし、経路制御部３２０はＡＳＩＣやＦＰＧＡなどの電子回路で実現されてもよい。
【０１３９】
記憶部３１０は、経路制御部３２０の処理に用いられるデータを記憶する。例えば、記憶部３１０は、ルータ３００がＩＴＲとして機能する場合に用いられる各種の情報を記憶する。例えば、記憶部３１０は、記憶部１１０と同様に隣接ＧＷ管理テーブル、ルーティングテーブルおよびＲＬＯＣキャッシュテーブルを記憶する。
【０１４０】
経路制御部３２０は、パケット転送部３２１およびＲＬＯＣ処理部３２２を有する。パケット転送部３２１は、記憶部３１０に記憶されたルーティングテーブルに基づいて、パケットの転送を行う。
【０１４１】
例えば、パケット転送部３２１は、ルータ２００ｂから受信したカプセル化パケットのカプセル化をＬＩＳＰの方法により解除して、ネットワーク３０に送信する。また、例えば、パケット転送部３２１は、ネットワーク３０から受信したパケットをＬＩＳＰの方法によりカプセル化してルータ２００ｂに送信する。
【０１４２】
ＲＬＯＣ処理部３２２は、サーバ４００からＲＬＯＣ応答指示メッセージを受信する。ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答指示メッセージに基づいて、ルータ１００が備える各インタフェース宛のＲＬＯＣ応答メッセージを生成する。すなわち、ルータ１００が備えるインタフェースの数だけＲＬＯＣ応答メッセージを生成することになる。このとき、ＲＬＯＣ処理部３２２は、各ＲＬＯＣ応答メッセージに同一のＴＴＬを含める。ＲＬＯＣ処理部３２２は、各ＲＬＯＣ応答メッセージを送信する。
【０１４３】
図２０は、第３の実施の形態の隣接ＧＷ管理テーブルの例を示す図である。隣接ＧＷ管理テーブル１１１ａは、隣接ＧＷ管理テーブル１１１に代えて、記憶部１１０に記憶される。隣接ＧＷ管理テーブル１１１ａは、インタフェース、ＩＦ（InterFace）アドレスおよび隣接ＧＷアドレスの項目を含む。インタフェースの項目には、ポートを物理的に識別するための識別子が登録される。ＩＦアドレスの項目には、インタフェースに対応するＩＰアドレスが登録される。隣接ＧＷアドレスの項目には、隣接ＧＷのＩＰアドレスが登録される。
【０１４４】
例えば、隣接ＧＷ管理テーブル１１１ａには、インタフェースが“ｅｔｈ０”、ＩＦアドレスが“ＩＦ１”、隣接ＧＷアドレスが“ＧＷ１”という情報が登録される。これは、ポート１０５ｃに対応するインタフェースのＩＰアドレスが“ＩＦ１”であること、ポート１０５ｃの先にルータ２００が接続されていることを示す。なお、“ＩＦ２”は、ポート１０５ｄに対応するインタフェースのＩＰアドレスである。
【０１４５】
図２１は、第３の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。ＲＬＯＣ要求メッセージ５１ａは、ＲＬＯＣ要求メッセージ５１に代えて、ＲＬＯＣ処理部１２２により生成される。ＲＬＯＣ要求メッセージ５１ａは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＩＴＲアドレスリストのフィールドを含む。ＤＡ、ＳＡ、ＴｙｐｅおよびＥＩＤが示す内容は、ＲＬＯＣ要求メッセージ５１で説明した通りである。
【０１４６】
ＩＴＲアドレスリストは、ＩＴＲに設けられており隣接ＧＷと接続されたインタフェースのＩＰアドレスのリストを示す。例えば、ルータ１００がクライアント５００からクライアント６００を宛先アドレスとするパケットを受信した場合、ＲＬＯＣ要求メッセージ５１ａは次のようになる。
【０１４７】
ＤＡは“ＳＶ１”である。サーバ４００宛だからである。ＳＡは“ＩＦＡ”である。ポート１０５ｂが送信元だからである。ここで、“ＩＦＡ”はポート１０５ｂに対応するインタフェースのＩＰアドレスである。Ｔｙｐｅは“ＲＬＯＣ要求”である。ＲＬＯＣ要求メッセージだからである。ＥＩＤは“ＩＰ２”である。ルータ１００はクライアント６００を宛先としたパケットを転送したいからである。ＩＴＲアドレスリストは“ＩＦ１，ＩＦ２”である。隣接ＧＷ管理テーブル１１１ａに隣接ＧＷに対応するＩＦアドレスとしてこれらが登録されているからである。
【０１４８】
図２２は、第３の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。ＲＬＯＣ応答指示メッセージ５２ｂは、ＲＬＯＣ応答指示メッセージ５２，５２ａに代えて、管理部４２０により生成される。ＲＬＯＣ応答指示メッセージ５２ｂは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＥＴＲアドレスおよびＩＴＲアドレスリストのフィールドを含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＥＴＲアドレスが示す内容は、ＲＬＯＣ応答指示メッセージ５２，５２ａで説明した通りである。ＩＴＲアドレスリストが示す内容は、ＲＬＯＣ要求メッセージ５１ａで説明した通りである。例えば、ＲＬＯＣ要求メッセージ５１ａに対してサーバ４００が送信するＲＬＯＣ応答指示メッセージ５２ｂは次のようになる。
【０１４９】
ＤＡは“ＲＬＯＣ２”である。ＥＴＲであるルータ３００宛だからである。ＳＡは“ＳＶ１”である。サーバ４００が送信元だからである。Ｔｙｐｅは“ＲＬＯＣ応答”である。ＲＬＯＣ応答指示メッセージだからである。ＥＩＤは“ＩＰ２”である。ＲＬＯＣ要求メッセージ５１ａでＥＩＤ“ＩＰ２”が指定されたからである。ＥＴＲアドレスは“ＲＬＯＣ２”である。ＥＩＤ“ＩＰ２”に対応するＲＬＯＣは“ＲＬＯＣ２”だからである。ＩＴＲアドレスリストは“ＩＦ１，ＩＦ２”である。ＲＬＯＣ要求メッセージ５１ａでＩＴＲアドレスリスト“ＩＦ１，ＩＦ２”が指定されたからである。
【０１５０】
図２３は、第３の実施の形態のＲＬＯＣ応答メッセージの例を示す図である。ＲＬＯＣ応答メッセージ５３ｂ，５３ｃは、ＤＡ、ＳＡ、ＴＴＬ、Ｔｙｐｅ、ＥＩＤおよびＥＴＲアドレスのフィールドを含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＥＴＲアドレスが示す内容は、ＲＬＯＣ応答メッセージ５３，５３ａで説明した通りである。ＴＴＬは、パケットに設定可能なパラメータの１つである。ＴＴＬはルータを１つホップするたびに１単位だけ減算される。ＴＴＬが０になると当該パケットは破棄されることになる。なお、ＩＰｖ６ではＴＴＬに相当する情報をホップリミットと呼ぶことがある。例えば、ＲＬＯＣ応答指示メッセージ５２ｂに対するＲＬＯＣ応答メッセージ５３ｂ，５３ｃは次のようになる。
【０１５１】
ＲＬＯＣ応答メッセージ５３ｂにおいて、ＤＡは“ＩＦ１”である。ルータ１００のポート１０５ｃ宛だからである。ＳＡは“ＲＬＯＣ２”である。送信元はルータ３００だからである。ＴＴＬは“２０”である。ＴＴＬの設定値は予め定められる。Ｔｙｐｅは“ＲＬＯＣ応答”である。ＲＬＯＣ応答メッセージだからである。ＥＩＤは“ＩＰ２”である。ＲＬＯＣ応答指示メッセージ５２ｂでＥＩＤ“ＩＰ２”が指定されたからである。ＥＴＲアドレスは“ＲＬＯＣ２”である。ＲＬＯＣ応答指示メッセージ５２ｂでＥＴＲアドレス“ＲＬＯＣ２”が指定されたからである。ＤＡが“ＩＦ１”なので、ＲＬＯＣ応答メッセージ５３ｂは、ルータ２００を経由してルータ１００に到達することになる。
【０１５２】
ＲＬＯＣ応答メッセージ５３ｃにおいて、ＤＡは“ＩＦ２”である。ルータ１００のポート１０５ｄ宛だからである。その他のフィールドの設定内容は、ルータ３００から送出された時点においては、ＲＬＯＣ応答メッセージ５３ｂと同様である。ただし、ＴＴＬの設定内容は、ルータ１００に到達するまでのホップ数に応じて変わり得る。ＤＡが“ＩＦ２”なので、ＲＬＯＣ応答メッセージ５３ｃは、ルータ２００ａを経由してルータ１００に到達することになる。
【０１５３】
図２４は、第３の実施の形態のＩＴＲの処理例を示すフローチャートである。以下、図２４に示す処理をステップ番号に沿って説明する。第３の実施の形態では、ルータ１００が、図１５で説明したステップＳ１３〜Ｓ１５の代わりに、ステップＳ１３ａ〜Ｓ１５ａを実行する点が異なる。ステップＳ１１，Ｓ１２，Ｓ１６〜Ｓ１９の処理は図１５で説明した処理と同様である。そこで、以下ではステップＳ１３ａ〜Ｓ１５ａを説明する。
【０１５４】
（ステップＳ１３ａ）ＲＬＯＣ処理部１２２は、記憶部１１０に記憶された隣接ＧＷ管理テーブル１１１ａを参照して、隣接ＧＷ（ルータ２００，２００ａ）と接続する各インタフェースのＩＰアドレス（ＩＦアドレス）を取得する。ＲＬＯＣ処理部１２２は、ＩＦアドレスのリスト（ＩＴＲアドレスリスト）を含むＲＬＯＣ要求メッセージ５１ａを生成し、サーバ４００に送信する。
【０１５５】
（ステップＳ１４ａ）ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１ａに対してルータ２００からＲＬＯＣ応答メッセージ５３ｂを受信する。ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１ａに対してルータ２００ａからＲＬＯＣ応答メッセージ５３ｃを受信する。ＲＬＯＣ応答メッセージ５３ｂ，５３ｃに含まれるＴＴＬは、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃを中継したルータによって変更されている。
【０１５６】
（ステップＳ１５ａ）ＲＬＯＣ処理部１２２は、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃに基づいて、ルータ２００，２００ａのうち最大ＴＴＬのものを、Ｎｅｘｔ  Ｈｏｐルータとして選択する。なお、ＲＬＯＣ応答メッセージ５３ｂはポート１０５ｃにより受信される。よって、ＲＬＯＣ処理部１２２はＲＬＯＣ応答メッセージ５３ｂをルータ２００から受信したと把握できる。また、ＲＬＯＣ応答メッセージ５３ｃはポート１０５ｄにより受信される。よって、ＲＬＯＣ処理部１２２はＲＬＯＣ応答メッセージ５３ｃをルータ２００ａから受信したと把握できる。例えば、ＲＬＯＣ応答メッセージ５３ｂに含まれる（ルータ１００到達時の）ＴＴＬが“１０”であり、ＲＬＯＣ応答メッセージ５３ｃに含まれる（ルータ１００到達時の）ＴＴＬが“５”であるとする。ＴＴＬ“１０”はＴＴＬ“５”よりも大きい。したがって、ＲＬＯＣ応答メッセージ５３ｂに設定されたＴＴＬが最大である。よって、ＲＬＯＣ処理部１２２は、Ｎｅｘｔ  Ｈｏｐルータとしてルータ２００を選択する。そして、処理をステップＳ１６に進める。
【０１５７】
このように、ルータ１００は、ルータ３００から送信されたＲＬＯＣ応答メッセージ５３ｂ，５３ｃに基づいて、ルータ２００，２００ａからルータ３００までの距離を示す情報を取得する。
【０１５８】
図２５は、第３の実施の形態のサーバの処理例を示すフローチャートである。以下、図２５に示す処理をステップ番号に沿って説明する。第３の実施の形態では、サーバ４００が、図１６で説明したステップＳ２３，Ｓ２４の代わりに、ステップＳ２３ａ，Ｓ２４ａを実行する点が異なる。ステップＳ２１，Ｓ２２，Ｓ２５の処理は図１６で説明した処理と同様である。そこで、以下ではステップＳ２３ａ，Ｓ２４ａを説明する。ただし、ステップＳ２１において管理部４２０はＲＬＯＣ要求メッセージ５１ａを受信している。
【０１５９】
（ステップＳ２３ａ）管理部４２０は、ＲＬＯＣ管理テーブル４１１からＥＩＤ“ＩＰ２”に対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。管理部４２０は、ＲＬＯＣ要求メッセージ５１ａから、ルータ１００が備える各インタフェースのＩＰアドレスを取得する。取得された情報に基づいて、管理部４２０は、ＲＬＯＣ応答指示メッセージ５２ｂを生成する。ＲＬＯＣ応答指示メッセージ５２ｂは、ＩＴＲアドレス“ＲＬＯＣ１”およびＥＴＲアドレス“ＲＬＯＣ２”を含む。ＲＬＯＣ応答指示メッセージ５２ｂは、ＥＴＲであるルータ３００宛である。
【０１６０】
（ステップＳ２４ａ）管理部４２０は、ＲＬＯＣ応答指示メッセージ５２ｂをルータ３００に送信する。
このように、サーバ４００は、ＥＴＲであるルータ３００宛にＲＬＯＣ応答指示メッセージ５２ｂを生成し、送信する。
【０１６１】
図２６は、第３の実施の形態のＥＴＲの処理例を示すフローチャートである。以下、図２６に示す処理をステップ番号に沿って説明する。
（ステップＳ４１）ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答指示メッセージ５２ｂをサーバ４００から受信する。
【０１６２】
（ステップＳ４２）ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答指示メッセージ５２ｂからＩＦアドレス“ＩＦ１，ＩＦ２”を取得する。ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃを生成する。ＲＬＯＣ応答メッセージ５３ｂは、ルータ１００のポート１０５ｃに対応するインタフェース宛である。ＲＬＯＣ応答メッセージ５３ｃは、ルータ１００のポート１０５ｄに対応するインタフェース宛である。ＲＬＯＣ応答メッセージ５３ｂ，５３ｃは、所定のＴＴＬ（例えば、“２０”など）およびＥＴＲアドレス“ＲＬＯＣ２”を含む。
【０１６３】
（ステップＳ４３）ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃを送信する。ＲＬＯＣ応答メッセージ５３ｂは、ルータ２００を介してルータ１００に到達する。ＲＬＯＣ応答メッセージ５３ｃは、ルータ２００ａを介してルータ１００に到達する。
【０１６４】
このように、ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｂに対して、ルータ１００のインタフェースごとにＲＬＯＣ応答メッセージ５３ｂ，５３ｃを生成し、送信する。ルータ２００はＲＬＯＣ応答メッセージ５３ｂを通常の中継処理によりルータ１００に転送すればよい。ルータ２００ａはＲＬＯＣ応答メッセージ５３ｃを通常の中継処理によりルータ１００に転送すればよい。
【０１６５】
図２７は、第３の実施の形態の処理例を示すシーケンスである。以下、図２７に示す処理をステップ番号に沿って説明する。
ルータ１００はクライアント５００からクライアント６００宛のパケット５０を受信する（ステップＳＴ１１１）。ルータ１００はＲＬＯＣキャッシュテーブル１１３にクライアント６００のＥＩＤ“ＩＰ２”が未登録であると、ＲＬＯＣ要求メッセージ５１ａを生成する。ルータ１００は、ＲＬＯＣ要求メッセージ５１ａをサーバ４００に送信する（ステップＳＴ１１２）。
【０１６６】
サーバ４００は、ＲＬＯＣ要求メッセージ５１ａを受信すると、ＲＬＯＣ管理テーブル４１１を参照して、ＥＩＤ“ＩＰ２”のエントリを検索し、対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｂを生成する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｂをルータ３００に送信する（ステップＳＴ１１３）。
【０１６７】
ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｂを受信する。ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｂからＩＦアドレス“ＩＦ１，ＩＦ２”を取得し、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃを生成する。ルータ３００は、ＲＬＯＣ応答メッセージ５３ｂを送信する。ＲＬＯＣ応答メッセージ５３ｂに含まれるＴＴＬはルータ３００とルータ２００との間に介在する各ルータによって１単位ずつ減算されることになる。ＲＬＯＣ応答メッセージ５３ｂは、ルータ２００を経由してルータ１００に到達する（ステップＳ１１４）。ルータ３００は、ＲＬＯＣ応答メッセージ５３ｃを送信する。ＲＬＯＣ応答メッセージ５３ｃに含まれるＴＴＬはルータ３００とルータ２００ａとの間に介在する各ルータによって１単位ずつ減算されることになる。ＲＬＯＣ応答メッセージ５３ｃは、ルータ２００ａを経由してルータ１００に到達する（ステップＳＴ１１５）。ステップＳＴ１１４，１１５は同時でもよいし、順序が入れ替わってもよい。
【０１６８】
ルータ１００は、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃを受信すると、ＴＴＬを比較する。ＲＬＯＣ応答メッセージ５３ｂに含まれるＴＴＬは“１０”とする。ＲＬＯＣ応答メッセージ５３ｃに含まれるＴＴＬは“５”とする。ルータ１００はＴＴＬが最大であるルータ２００をＮｅｘｔ  Ｈｏｐルータとして選択する。ルータ１００は、選択結果に基づいて、ルーティングテーブル１１２およびＲＬＯＣキャッシュテーブル１１３に新たなエントリを登録する。ルータ１００は、パケット５０をカプセル化してカプセル化パケット６０を生成し、ルータ３００へ送信する。この場合、送出ポートは、ポート１０５ｃである。カプセル化パケット６０は、ルータ２００を経由してルータ３００に到達することになる（ステップＳＴ１１６）。
【０１６９】
ルータ３００は、カプセル化パケット６０を受信すると、カプセル化を解除しパケット５０を得る。ルータ３００は、パケット５０をクライアント６００へ向けて転送する（ステップＳＴ１１７）。
【０１７０】
このようにして、ルータ１００は、ルータ２００，２００ａそれぞれからルータ３００が送信したＲＬＯＣ応答メッセージ５３ｂ，５３ｃを受信する。ＲＬＯＣ応答メッセージ５３ｂ，５３ｃには、ＴＴＬが含まれる。ルータ１００は、当該ＴＴＬに基づいてルータ３００とルータ２００，２００ａとの間に介在するルータの数を評価できる。すなわち、ルータ１００は、ルータ２００，２００ａからＥＴＲであるルータ３００までの距離を示す情報を取得する。そして、当該情報に基づいてＮｅｘｔ  Ｈｏｐルータを選択する。
【０１７１】
このため、ルータ１００は、第２の実施の形態と同様に、コアネットワーク１０のＥＧＰ（例えば、ＢＧＰ）に参加しなくてよい。したがって、ルータ１００において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ１００において経路制御に用いるＲＡＭ１０２などの領域を節約できる。また、ルータ１００において、経路選択用の指標を評価するための演算コストを軽減できる。更に、第２の実施の形態と同様に、ルータ１００に求められる処理能力を抑えられ、コスト面でも有利である。
【０１７２】
また、第３の実施の形態によれば、ルータ２００，２００ａは、ルータ１００に距離を示す情報を提供する際に、当該距離の評価を行わなくてもよい。よって、ルータ２００，２００ａの負担を軽減できる。
【０１７３】
また、第３の実施の形態によれば、ルータ２００，２００ａ，２００ｂは、通常のパケット転送を行えばよい。このため、ルータ２００，２００ａ，２００ｂとして既存のルータを流用できるという利点もある。
【０１７４】
［第４の実施の形態］
以下、第４の実施の形態を説明する。前述の第２，第３の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【０１７５】
第３の実施の形態では、ルータ１００はＩＴＲアドレスリストを含む１つのＲＬＯＣ要求メッセージ５１ａをサーバ４００に送信するものとした。また、サーバ４００はＩＴＲアドレスリストを含む１つのＲＬＯＣ応答指示メッセージ５２ｂをルータ３００に送信するものとした。一方、ルータ１００はＩＦアドレスごとの複数のＲＬＯＣ要求メッセージをサーバ４００に送信してもよい。また、サーバ４００はＩＦアドレスごとの複数のＲＬＯＣ応答指示メッセージをルータ３００に送信してもよい。第４の実施の形態では、その機能を説明する。
【０１７６】
ここで、第４の実施の形態の情報処理システムは、第３の実施の形態の情報処理システムと同様である。第４の実施の形態のハードウェア例およびソフトウェア例は、第３の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第４の実施の形態における各装置を第３の実施の形態と同じ名称・符号を用いて指し示す。
【０１７７】
ただし、第４の実施の形態では、ＲＬＯＣ要求メッセージおよびＲＬＯＣ応答指示メッセージが第３の実施の形態と異なる。
図２８は、第４の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。ＲＬＯＣ要求メッセージ５１ｂ，５１ｃは、ＲＬＯＣ要求メッセージ５１ａに代えて、ＲＬＯＣ処理部１２２により生成される。ＲＬＯＣ要求メッセージ５１ｂ，５１ｃは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＩＴＲアドレスのフィールドを含む。ＤＡ、ＳＡ、ＴｙｐｅおよびＥＩＤが示す内容は、ＲＬＯＣ要求メッセージ５１で説明した通りである。
【０１７８】
ＩＴＲアドレスは、ＩＴＲが備える隣接ＧＷと接続された１つのインタフェースのＩＰアドレスを示す。例えば、ルータ１００がクライアント５００からクライアント６００を宛先アドレスとするパケットを受信した場合、ＲＬＯＣ要求メッセージ５１ｂ，５１ｃは次のようになる。
【０１７９】
ＲＬＯＣ要求メッセージ５１ｂにおいて、ＤＡは“ＳＶ１”である。サーバ４００宛だからである。ＳＡは“ＩＦＡ”である。ポート１０５ｂが送信元だからである。Ｔｙｐｅは“ＲＬＯＣ要求”である。ＲＬＯＣ要求メッセージだからである。ＥＩＤは“ＩＰ２”である。ルータ１００はクライアント６００を宛先としたパケットを転送したいからである。ＩＴＲアドレスは“ＩＦ１”である。隣接ＧＷのうちの１つに対応するＩＦアドレスとして“ＩＦ１”が隣接ＧＷ管理テーブル１１１ａに登録されているからである。
【０１８０】
ＲＬＯＣ要求メッセージ５１ｃにおいて、ＩＴＲアドレスは“ＩＦ２”である。隣接ＧＷのうちの他の１つに対応するＩＦアドレスとして“ＩＦ２”が隣接ＧＷ管理テーブル１１１ａに登録されているからである。その他のフィールドの設定内容は、ＲＬＯＣ要求メッセージ５１ｂと同様である。
【０１８１】
図２９は、第４の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。ＲＬＯＣ応答指示メッセージ５２ｃ，５２ｄは、ＲＬＯＣ応答指示メッセージ５２ｂに代えて、管理部４２０により生成される。ＲＬＯＣ応答指示メッセージ５２ｃ，５２ｄは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＥＴＲアドレスおよびＩＴＲアドレスのフィールドを含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＥＴＲアドレスが示す内容は、ＲＬＯＣ応答指示メッセージ５２，５２ａで説明した通りである。ＩＴＲアドレスが示す内容は、ＲＬＯＣ要求メッセージ５１ｂ，５１ｃで説明した通りである。例えば、ＲＬＯＣ要求メッセージ５１ｂ，５１ｃに対してサーバ４００が送信するＲＬＯＣ応答指示メッセージ５２ｃ，５２ｄは次のようになる。
【０１８２】
ＲＬＯＣ応答指示メッセージ５２ｃにおいて、ＤＡは“ＲＬＯＣ２”である。ＥＴＲであるルータ３００宛だからである。ＳＡは“ＳＶ１”である。サーバ４００が送信元だからである。Ｔｙｐｅは“ＲＬＯＣ応答”である。ＲＬＯＣ応答指示メッセージだからである。ＥＩＤは“ＩＰ２”である。ＲＬＯＣ要求メッセージ５１ｂでＥＩＤ“ＩＰ２”が指定されたからである。ＥＴＲアドレスは“ＲＬＯＣ２”である。ＥＩＤ“ＩＰ２”に対応するＲＬＯＣは“ＲＬＯＣ２”だからである。ＩＴＲアドレスリストは“ＩＦ１”である。ＲＬＯＣ要求メッセージ５１ｂでＩＴＲアドレス“ＩＦ１”が指定されたからである。
【０１８３】
ＲＬＯＣ応答指示メッセージ５２ｄにおいて、ＩＴＲアドレスは“ＩＦ２”である。ＲＬＯＣ要求メッセージ５１ｃでＩＴＲアドレス“ＩＦ２”が指定されたからである。その他のフィールドの設定内容は、ＲＬＯＣ応答指示メッセージ５２ｃと同様である。
【０１８４】
ここで、第４の実施の形態の処理手順は、図２４〜２６で説明した第３の実施の形態の処理手順と同様である。このため、これらの処理手順の説明を省略する。ただし、ステップＳ１３ａにおいて、ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１ａに代えて、ＲＬＯＣ要求メッセージ５１ｂ，５１ｃをサーバ４００に送信する。また、ステップＳ２３ａ，Ｓ２４ａにおいて、管理部４２０は、ＲＬＯＣ応答指示メッセージ５２ｂに代えて、ＲＬＯＣ応答指示メッセージ５２ｃ，５２ｄを生成し、ルータ３００に送信する。その他のステップの処理は、ＲＬＯＣ要求メッセージ５１ｂ，５１ｃおよびＲＬＯＣ応答指示メッセージ５２ｃ，５２ｄに設定された情報に基づいて行える。
【０１８５】
図３０は、第４の実施の形態の処理例を示すシーケンスである。以下、図３０に示す処理をステップ番号に沿って説明する。
ルータ１００はクライアント５００からクライアント６００宛のパケット５０を受信する（ステップＳＴ１２１）。ルータ１００はＲＬＯＣキャッシュテーブル１１３にクライアント６００のＥＩＤ“ＩＰ２”が未登録であると、ＲＬＯＣ要求メッセージ５１ｂ，５１ｃを生成する。ルータ１００は、ＲＬＯＣ要求メッセージ５１ｂをサーバ４００に送信する（ステップＳＴ１２２）。ルータ１００は、ＲＬＯＣ要求メッセージ５１ｃをサーバ４００に送信する（ステップＳＴ１２３）。ステップＳＴ１２２，ＳＴ１２３は同時でもよいし、順序が入れ替わってもよい。
【０１８６】
サーバ４００は、ＲＬＯＣ要求メッセージ５１ｂ，５１ｃを受信すると、ＲＬＯＣ管理テーブル４１１を参照して、ＥＩＤ“ＩＰ２”のエントリを検索し、対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｃ，５２ｄを生成する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｃをルータ３００に送信する（ステップＳＴ１２４）。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｄをルータ３００に送信する（ステップＳＴ１２５）。ステップＳＴ１２４，ＳＴ１２５は同時でもよいし、順番が入れ替わってもよい。
【０１８７】
ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｃを受信すると、ＲＬＯＣ応答指示メッセージ５２ｃからＩＦアドレス“ＩＦ１”を取得し、ＲＬＯＣ応答メッセージ５３ｂを生成する。ルータ３００は、ＲＬＯＣ応答メッセージ５３ｂを送信する。ＲＬＯＣ応答メッセージ５３ｂに含まれるＴＴＬはルータ３００とルータ２００との間に介在する各ルータによって１単位ずつ減算されることになる。ＲＬＯＣ応答メッセージ５３ｂは、ルータ２００を経由してルータ１００に到達する（ステップＳＴ１２６）。
【０１８８】
ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｄを受信すると、ＲＬＯＣ応答指示メッセージ５２ｄからＩＦアドレス“ＩＦ２”を取得し、ＲＬＯＣ応答メッセージ５３ｃを生成する。ルータ３００は、ＲＬＯＣ応答メッセージ５３ｃを送信する。ＲＬＯＣ応答メッセージ５３ｃに含まれるＴＴＬはルータ３００とルータ２００ａとの間に介在する各ルータによって１単位ずつ減算されることになる。ＲＬＯＣ応答メッセージ５３ｃは、ルータ２００ａを経由してルータ１００に到達する（ステップＳＴ１２７）。ステップＳＴ１２６，ＳＴ１２７は同時でもよいし、順番が入れ替わってもよい。
【０１８９】
ルータ１００は、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃを受信すると、ＴＴＬを比較する。ＲＬＯＣ応答メッセージ５３ｂに含まれるＴＴＬは“１０”とする。ＲＬＯＣ応答メッセージ５３ｃに含まれるＴＴＬは“５”とする。ルータ１００はＴＴＬが最大であるルータ２００をＮｅｘｔ  Ｈｏｐルータとして選択する。ルータ１００は、選択結果に基づいて、ルーティングテーブル１１２およびＲＬＯＣキャッシュテーブル１１３に新たなエントリを登録する。ルータ１００は、パケット５０をカプセル化してカプセル化パケット６０を生成し、ルータ３００へ送信する。この場合、送出ポートは、ポート１０５ｃである。カプセル化パケット６０は、ルータ２００を経由してルータ３００に到達することになる（ステップＳＴ１２８）。
【０１９０】
ルータ３００は、カプセル化パケット６０を受信すると、カプセル化を解除しパケット５０を得る。ルータ３００は、パケット５０をクライアント６００へ向けて転送する（ステップＳＴ１２９）。
【０１９１】
このようにして、ルータ１００は、ルータ２００，２００ａそれぞれからルータ３００が送信したＲＬＯＣ応答メッセージ５３ｂ，５３ｃを受信する。ＲＬＯＣ応答メッセージ５３ｂ，５３ｃには、ＴＴＬが含まれる。ルータ１００は、当該ＴＴＬに基づいてルータ３００とルータ２００，２００ａとの間に介在するルータの数を評価できる。すなわち、ルータ１００は、ルータ２００，２００ａからＥＴＲであるルータ３００までの距離を示す情報を取得する。そして、当該情報に基づいてＮｅｘｔ  Ｈｏｐルータを選択する。
【０１９２】
このため、ルータ１００は、第２の実施の形態と同様に、コアネットワーク１０のＥＧＰ（例えば、ＢＧＰ）に参加しなくてよい。したがって、ルータ１００において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ１００において経路制御に用いるＲＡＭ１０２などの領域を節約できる。また、ルータ１００において、経路選択用の指標を評価するための演算コストを軽減できる。
【０１９３】
更に、第２の実施の形態と同様に、ルータ１００に求められる処理能力を抑えられ、コスト面でも有利である。また、第４の実施の形態によれば、第３の実施の形態と同様に、ルータ２００，２００ａ，２００ｂは、通常のパケット転送を行えばよい。このため、ルータ２００，２００ａ，２００ｂとして既存のルータを流用できるという利点もある。
【０１９４】
また、第４の実施の形態の制御は、ＬＩＳＰで規定されたメッセージフォーマットを用いて実現できる。よって、ルータ１００，３００の機能の実装において、改良の作業コストが比較的小さくて済むという利点もある。
【０１９５】
［第５の実施の形態］
以下、第５の実施の形態を説明する。前述の第２〜第４の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【０１９６】
第３の実施の形態では、ルータ１００はＩＴＲアドレスリストを含むＲＬＯＣ要求メッセージ５１ａをサーバ４００に送信するものとした。一方、ＲＬＯＣ要求メッセージにおいて、ＩＴＲであるルータ１００の１つのＩＰアドレスを指定してもよい。第５の実施の形態では、その機能を説明する。
【０１９７】
ここで、第５の実施の形態の情報処理システムは、第３の実施の形態の情報処理システムと同様である。第５の実施の形態のハードウェア例およびソフトウェア例は、第３の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第５の実施の形態における各装置を第３の実施の形態と同じ名称・符号を用いて指し示す。
【０１９８】
ただし、第５の実施の形態では、ＲＬＯＣ要求メッセージ、ＲＬＯＣ応答指示メッセージおよびＲＬＯＣ応答メッセージが第３の実施の形態と異なる。
図３１は、第５の実施の形態のＲＬＯＣ要求メッセージの例を示す図である。ＲＬＯＣ要求メッセージ５１ｄは、ＲＬＯＣ要求メッセージ５１ａに代えて、ＲＬＯＣ処理部１２２により生成される。ＲＬＯＣ要求メッセージ５１ｄは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＩＴＲアドレスのフィールドを含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＩＴＲアドレスが示す内容は、ＲＬＯＣ要求メッセージ５１で説明した通りである。例えば、ルータ１００がクライアント５００からクライアント６００を宛先アドレスとするパケットを受信した場合、ＲＬＯＣ要求メッセージ５１ｄは次のようになる。
【０１９９】
ＤＡは“ＳＶ１”である。サーバ４００宛だからである。ＳＡは“ＲＬＯＣ１”である。ルータ１００が送信元だからである。Ｔｙｐｅは“ＲＬＯＣ要求”である。ＲＬＯＣ要求メッセージだからである。ＥＩＤは“ＩＰ２”である。ルータ１００はクライアント６００を宛先としたパケットを転送したいからである。ＩＴＲアドレスは“ＲＬＯＣ１”である。要求元はルータ１００だからである。
【０２００】
図３２は、第５の実施の形態のＲＬＯＣ応答指示メッセージの例を示す図である。ＲＬＯＣ応答指示メッセージ５２ｅは、ＲＬＯＣ応答指示メッセージ５２ｂに代えて、管理部４２０により生成される。ＲＬＯＣ応答指示メッセージ５２ｅは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＥＴＲアドレスおよびＩＴＲアドレスのフィールドを含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤ、ＥＴＲアドレスおよびＩＴＲアドレスが示す内容は、ＲＬＯＣ応答指示メッセージ５２，５２ａで説明した通りである。例えば、ＲＬＯＣ要求メッセージ５１ｄに対してサーバ４００が送信するＲＬＯＣ応答指示メッセージ５２ｅは次のようになる。
【０２０１】
ＤＡは“ＲＬＯＣ２”である。ＥＴＲであるルータ３００宛だからである。ＳＡは“ＳＶ１”である。サーバ４００が送信元だからである。Ｔｙｐｅは“ＲＬＯＣ応答”である。ＲＬＯＣ応答指示メッセージだからである。ＥＩＤは“ＩＰ２”である。ＲＬＯＣ要求メッセージ５１ｄでＥＩＤ“ＩＰ２”が指定されたからである。ＥＴＲアドレスは“ＲＬＯＣ２”である。ＥＩＤ“ＩＰ２”に対応するＲＬＯＣは“ＲＬＯＣ２”だからである。ＩＴＲアドレスは“ＲＬＯＣ１”である。要求元はルータ１００だからである。
【０２０２】
図３３は、第５の実施の形態のＲＬＯＣ応答メッセージの例を示す図である。ＲＬＯＣ応答メッセージ５３ｄは、ＲＬＯＣ応答メッセージ５３ｂ，５３ｃに代えて、管理部４２０により生成される。ＲＬＯＣ応答メッセージ５３ｄは、ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＥＴＲアドレスのフィールド含む。ＤＡ、ＳＡ、Ｔｙｐｅ、ＥＩＤおよびＥＴＲアドレスが示す内容は、ＲＬＯＣ応答メッセージ５３，５３ａで説明した通りである。例えば、ＲＬＯＣ応答指示メッセージ５２ｅに対してルータ３００が送信するＲＬＯＣ応答メッセージ５３ｄは次のようになる。
【０２０３】
ＤＡは“ＲＬＯＣ１”である。ルータ１００宛だからである。ＳＡは“ＲＬＯＣ２”である。送信元はルータ３００だからである。Ｔｙｐｅは“ＲＬＯＣ応答”である。ＲＬＯＣ応答メッセージだからである。ＥＩＤは“ＩＰ２”である。ＲＬＯＣ応答指示メッセージ５２ｅでＥＩＤ“ＩＰ２”が指定されたからである。ＥＴＲアドレスは“ＲＬＯＣ２”である。ＲＬＯＣ応答指示メッセージ５２ｅでＥＴＲアドレス“ＲＬＯＣ２”を指定されたからである。
【０２０４】
ＲＬＯＣ応答メッセージ５３ｄは、ルータ２００，２００ａの何れか一方を経由してルータ１００に到達することになる。
図３４は、第５の実施の形態のＩＴＲの処理例を示すフローチャートである。以下、図３４に示す処理をステップ番号に沿って説明する。第５の実施の形態では、ルータ１００が、図２４で説明したステップＳ１３ａ〜Ｓ１５ａの代わりに、ステップＳ１３ｂ〜Ｓ１５ｂを実行する点が異なる。ステップＳ１１，Ｓ１２，Ｓ１６〜Ｓ１９の処理は図１５で説明した処理と同様である。そこで、以下ではステップＳ１３ｂ〜Ｓ１５ｂを説明する。
【０２０５】
（ステップＳ１３ｂ）ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１ｄを生成し、サーバ４００に送信する。
（ステップＳ１４ｂ）ＲＬＯＣ処理部１２２は、ＲＬＯＣ要求メッセージ５１ｄに対してルータ２００，２００ａの何れかからＲＬＯＣ応答メッセージ５３ｄを受信する。
【０２０６】
（ステップＳ１５ｂ）ＲＬＯＣ処理部１２２は、ＲＬＯＣ応答メッセージ５３ｄを受信した方のポートに接続されたルータをＮｅｘｔ  Ｈｏｐルータとして選択する。例えば、ポート１０５ｃからＲＬＯＣ応答メッセージ５３ｄを受信した場合（ルータ２００からＲＬＯＣ応答メッセージ５３ｄを受信した場合）には、ルータ２００をＮｅｘｔ  Ｈｏｐルータとして選択する。そして、処理をステップＳ１６に進める。
【０２０７】
このように、ルータ１００は、ＲＬＯＣ要求メッセージ５１ｄに対して、ＲＬＯＣ応答メッセージ５３ｄを受信したポートに接続された隣接ＧＷをＮｅｘｔ  Ｈｏｐルータとして選択する。ステップＳ１６では、次のようにしてルーティングテーブル１１２へのエントリ追加を行える。具体的には、隣接ＧＷ管理テーブル１１１ａ（または、隣接ＧＷ管理テーブル１１１）によれば、ポート１０５ｃに対応する隣接ＧＷアドレスは“ＧＷ１”である。よって、ＲＬＯＣ２のネットワークアドレス“Ｎ−ＲＬＯＣ２”とＮｅｘｔ  Ｈｏｐアドレス“ＧＷ１”とを対応付けたエントリをルーティングテーブル１１２に追加し得る。
【０２０８】
図３５は、第５の実施の形態のサーバの処理例を示すフローチャートである。以下、図３５に示す処理をステップ番号に沿って説明する。第５の実施の形態では、サーバ４００が、図２５で説明したステップＳ２３ａ，Ｓ２４ａの代わりに、ステップＳ２３ｂ，Ｓ２４ｂを実行する点が異なる。ステップＳ２１，Ｓ２２，Ｓ２５の処理は図１６で説明した処理と同様である。そこで、以下ではステップＳ２３ｂ，２４ｂを説明する。ただし、ステップＳ２１において管理部４２０はＲＬＯＣ要求メッセージ５１ｄを受信している。
【０２０９】
（ステップＳ２３ｂ）管理部４２０は、ＲＬＯＣ管理テーブル４１１からＥＩＤ“ＩＰ２”に対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。管理部４２０は、ＲＬＯＣ要求メッセージ５１ｄから、ＩＴＲアドレス“ＲＬＯＣ１”を取得する。取得された情報に基づいて、管理部４２０は、ＲＬＯＣ応答指示メッセージ５２ｅを生成する。ＲＬＯＣ応答指示メッセージ５２ｅは、ＩＴＲアドレス“ＲＬＯＣ１”およびＥＴＲアドレス“ＲＬＯＣ２”を含む。ＲＬＯＣ応答指示メッセージ５２ｅは、ルータ３００宛である。
【０２１０】
（ステップＳ２４ｂ）管理部４２０は、ＲＬＯＣ応答指示メッセージ５２ｅをルータ３００に送信する。
図３６は、第５の実施の形態のＥＴＲの処理例を示すフローチャートである。以下、図３６に示す処理をステップ番号に沿って説明する。
【０２１１】
（ステップＳ４１ａ）ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答指示メッセージ５２ｅをサーバ４００から受信する。
（ステップＳ４２ａ）ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答指示メッセージ５２ｅからＩＴＲアドレス“ＲＬＯＣ１”を取得する。ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答メッセージ５３ｄを生成する。ＲＬＯＣ応答メッセージ５３ｄは、ルータ１００宛である。
【０２１２】
（ステップＳ４３ａ）ＲＬＯＣ処理部３２２は、ＲＬＯＣ応答メッセージ５３ｄをルータ１００に送信する。ＲＬＯＣ応答メッセージ５３ｄは、ルータ２００またはルータ２００ａの何れか一方を経由してルータ１００に到達する。
【０２１３】
このように、ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｅに対して、ＲＬＯＣ応答メッセージ５３ｄを生成し、ルータ１００に送信する。ＲＬＯＣ応答メッセージ５３ｄは、コアネットワーク１０内に張り巡らされたパケット転送用の何れかの経路を通ってルータ１００に到達する。その際、ＲＬＯＣ応答メッセージ５３ｄは、ルータ２００，２００ａの何れか一方を経由することになる。
【０２１４】
図３７は、第５の実施の形態の処理例を示すシーケンスである。以下、図３７に示す処理をステップ番号に沿って説明する。
ルータ１００はクライアント５００からクライアント６００宛のパケット５０を受信する（ステップＳＴ１３１）。ルータ１００はＲＬＯＣキャッシュテーブル１１３にクライアント６００のＥＩＤ“ＩＰ２”が未登録であると、ＲＬＯＣ要求メッセージ５１ｄを生成する。ルータ１００は、ＲＬＯＣ要求メッセージ５１ｄをサーバ４００に送信する（ステップＳＴ１３２）。
【０２１５】
サーバ４００は、ＲＬＯＣ要求メッセージ５１ｄを受信すると、ＲＬＯＣ管理テーブル４１１を参照して、ＥＩＤ“ＩＰ２”のエントリを検索し、対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｅを生成する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｅをルータ３００に送信する（ステップＳＴ１３３）。
【０２１６】
ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｅを受信する。ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｅからＩＴＲアドレス“ＲＬＯＣ１”を取得し、ＲＬＯＣ応答メッセージ５３ｄを生成する。ルータ３００は、ＲＬＯＣ応答メッセージ５３ｄを送信する。ＲＬＯＣ応答メッセージ５３ｄは、ルータ２００を経由してルータ１００に到達する（ステップＳＴ１３４）。
【０２１７】
ルータ１００は、ＲＬＯＣ応答メッセージ５３ｄを受信すると、受信したポート１０５ｃに対応するルータ２００をＮｅｘｔ  Ｈｏｐルータとして選択する。ルータ１００は、選択結果に基づいて、ルーティングテーブル１１２およびＲＬＯＣキャッシュテーブル１１３に新たなエントリを登録する。ルータ１００は、パケット５０をカプセル化してカプセル化パケット６０を生成し、ルータ３００へ送信する。この場合、送出ポートは、ポート１０５ｃである。カプセル化パケット６０は、ルータ２００を経由してルータ３００に到達することになる（ステップＳ１３５）。
【０２１８】
ルータ３００は、カプセル化パケット６０を受信すると、カプセル化を解除しパケット５０を得る。ルータ３００は、パケット５０をクライアント６００へ向けて転送する（ステップＳＴ１３６）。
【０２１９】
このようにして、ルータ１００は、ルータ２００，２００ａの何れかから、ＲＬＯＣ要求メッセージ５１ｄに対するＲＬＯＣ応答メッセージ５３ｄを受信する。そして、ＲＬＯＣ応答メッセージ５３ｄが受信されたポートに応じてＮｅｘｔ  Ｈｏｐルータを選択する。
【０２２０】
このため、ルータ１００は、第２の実施の形態と同様に、コアネットワーク１０のＥＧＰ（例えば、ＢＧＰ）に参加しなくてよい。したがって、ルータ１００において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ１００において経路制御に用いるＲＡＭ１０２などの領域を節約できる。また、ルータ１００において、経路選択用の指標を評価するための演算コストを軽減できる。更に、第２の実施の形態と同様に、ルータ１００に求められる処理能力を抑えられ、コスト面でも有利である。
【０２２１】
また、第５の実施の形態によれば、第３の実施の形態と同様に、ルータ２００，２００ａ，２００ｂは、通常のパケット転送を行えばよい。このため、ルータ２００，２００ａ，２００ｂとして既存のルータを流用できるという利点もある。
【０２２２】
また、第５の実施の形態の制御は、既存のＬＩＳＰで規定されたパケット構造を用いて実現できる。よって、ルータ１００，３００の機能の実装において、改良の作業コストが比較的小さくて済むという利点もある。
【０２２３】
また、第５の実施の形態では、ＩＴＲの経路選択のためにコアネットワーク１０内に流すパケットの数が第２〜第４の実施の形態に比べて少ない。よって、コアネットワーク１０の負荷を抑えられるという利点もある。特に、ポート１０５ｃ，１０５ｄに対応するインタフェースのネットワークアドレスが同一である場合がある。各ルータによるルーティングはネットワークアドレスに基づいて行われる。したがって、この場合は１つのＲＬＯＣ応答メッセージを流せば足りる。仮に複数のＲＬＯＣ応答メッセージを流したとしても、ポート１０５ｃ，１０５ｄの何れか一方で複数のＲＬＯＣ応答メッセージが受信されると考えられるからである。
【０２２４】
更に、第５の実施の形態の制御は、ＬＩＳＰで規定されたメッセージフォーマットを用いて実現できる。よって、ルータ１００，３００の機能の実装において、改良の作業コストが比較的小さくて済むという利点もある。
【０２２５】
［第６の実施の形態］
以下、第６の実施の形態を説明する。前述の第２〜第５の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
【０２２６】
第３の実施の形態では、ルータ３００はルータ２００ｂに接続されているものとした。一方、ルータ３００がマルチホームで接続されていてもよい。第６の実施の形態では、その場合の制御を説明する。ここで、第６の実施の形態の情報処理システムは、ルータ３００がマルチホームで接続されている点が第３の実施の形態と異なる。
【０２２７】
図３８は、第６の実施の形態の情報処理システムを示す図である。ルータ３００は、ルータ２００ｂに加えて、ルータ２００ｃにも接続されている。ルータ２００ｃは、ＡＳ１５に接続されている。ＡＳ１５は、コアネットワーク１０に属している。ＡＳ１５は、ＡＳ１２と接続されている。各ＡＳ間には１以上の他のＡＳが介在し得る。
【０２２８】
なお、第６の実施の形態のハードウェア例およびソフトウェア例は、第３の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第６の実施の形態における各装置を第３の実施の形態と同じ名称・符号を用いて指し示す。更に、ルータ２００ｃは、ルータ２００と同様のハードウェアによって実現できる。
【０２２９】
この場合、ルータ３００は、ルータ１００のＩＦアドレスごと、ルータ３００の隣接ＧＷ（ルータ２００ｂ，２００ｃ）ごとにＲＬＯＣ応答メッセージを送信してもよい。具体的には次の通りである。
【０２３０】
図３９は、第６の実施の形態の処理例を示すシーケンスである。以下、図３９に示す処理をステップ番号に沿って説明する。
ルータ１００はクライアント５００からクライアント６００宛のパケット５０を受信する（ステップＳＴ１４１）。ルータ１００はＲＬＯＣキャッシュテーブル１１３にクライアント６００のＥＩＤ“ＩＰ２”が未登録であると、ＲＬＯＣ要求メッセージ５１ａを生成する。ルータ１００は、ＲＬＯＣ要求メッセージ５１ａをサーバ４００に送信する（ステップＳＴ１４２）。
【０２３１】
サーバ４００は、ＲＬＯＣ要求メッセージ５１ａを受信すると、ＲＬＯＣ管理テーブル４１１を参照して、ＥＩＤ“ＩＰ２”のエントリを検索し、対応するＲＬＯＣ“ＲＬＯＣ２”を取得する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｂを生成する。サーバ４００は、ＲＬＯＣ応答指示メッセージ５２ｂをルータ３００に送信する。例えば、ＲＬＯＣ応答指示メッセージ５２ｂはルータ２００ｂを介してルータ３００に到達する（ステップＳＴ１４３）。ただし、ルータ１００とサーバ４００との間の経路と同様に、ルータ３００とサーバ４００との間に個別の経路が設けられてもよい。
【０２３２】
ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｂを受信する。ルータ３００は、ＲＬＯＣ応答指示メッセージ５２ｂからＩＦアドレス“ＩＦ１，ＩＦ２”を取得する。ルータ３００は、ＩＦアドレス“ＩＦ１，ＩＦ２”ごと、ルータ２００ｂ，２００ｃごとの計４つのＲＬＯＣ応答メッセージを生成する。すなわち、図２３で説明したＲＬＯＣ応答メッセージ５３ｂを２つ、ＲＬＯＣ応答メッセージ５３ｃを２つの計４つである（ＴＴＬは同一値）。
【０２３３】
ルータ３００は、第１のＲＬＯＣ応答メッセージ５３ｂをルータ２００ｂが接続されたポートから送出する。第１のＲＬＯＣ応答メッセージ５３ｂは、ルータ２００ｂ，２００を経由してルータ１００に到達する（ステップＳＴ１４４）。ルータ３００は、第１のＲＬＯＣ応答メッセージ５３ｃをルータ２００ｂが接続されたポートから送出する。第１のＲＬＯＣ応答メッセージ５３ｃは、ルータ２００ｂ，２００ａを経由してルータ１００に到達する（ステップＳＴ１４５）。
【０２３４】
ルータ３００は、第２のＲＬＯＣ応答メッセージ５３ｂをルータ２００ｃが接続されたポートから送出する。第２のＲＬＯＣ応答メッセージ５３ｂは、ルータ２００ｃ，２００を経由してルータ１００に到達する（ステップＳＴ１４６）。ルータ３００は、第２のＲＬＯＣ応答メッセージ５３ｃをルータ２００ｃが接続されたポートから送出する。第２のＲＬＯＣ応答メッセージ５３ｃは、ルータ２００ｃ，２００ａを経由してルータ１００に到達する（ステップＳＴ１４７）。ただし、ステップＳＴ１４４〜ＳＴ１４７は、同時でもよいし、任意の順に入れ替えてもよい。
【０２３５】
ルータ１００は、第１，第２のＲＬＯＣ応答メッセージ５３ｂ、および、第１，第２のＲＬＯＣ応答メッセージ５３ｃ（計４つのＲＬＯＣ応答メッセージ）を受信すると、ＴＴＬを比較する。第１のＲＬＯＣ応答メッセージ５３ｂに含まれるＴＴＬは“１０”とする。第１のＲＬＯＣ応答メッセージ５３ｃに含まれるＴＴＬは“５”とする。第２のＲＬＯＣ応答メッセージ５３ｂに含まれるＴＴＬは“８”とする。第２のＲＬＯＣ応答メッセージ５３ｃに含まれるＴＴＬは“１２”とする。ルータ１００はＴＴＬが最大であるルータ２００ａをＮｅｘｔ  Ｈｏｐルータとして選択する。ルータ１００は、選択結果に基づいて、ルーティングテーブル１１２およびＲＬＯＣキャッシュテーブル１１３に新たなエントリを登録する。ルータ１００は、パケット５０をカプセル化してカプセル化パケット６０を生成し、ルータ３００へ送信する。この場合、送出ポートは、ポート１０５ｄである。カプセル化パケット６０は、ルータ２００ａ，２００ｃを経由してルータ３００に到達することになる（ステップＳＴ１４８）。
【０２３６】
ルータ３００は、カプセル化パケット６０を受信すると、カプセル化を解除しパケット５０を得る。ルータ３００は、パケット５０をクライアント６００へ向けて転送する（ステップＳＴ１４９）。
【０２３７】
このようにして、ルータ１００は、ルータ２００，２００ａそれぞれから計４つのＲＬＯＣ応答メッセージを受信する。各ＲＬＯＣ応答メッセージには、ＴＴＬが含まれる。ルータ１００は、当該ＴＴＬに基づいて、次の（１）〜（４）の経路の距離を評価できる。（１）ルータ２００とルータ２００ｂとを結ぶ経路。（２）ルータ２００ａとルータ２００ｂとを結ぶ経路。（３）ルータ２００とルータ２００ｃとを結ぶ経路。（４）ルータ２００ａとルータ２００ｃとを結ぶ経路。すなわち、ルータ１００は、各経路の距離を示す情報を取得する。そして、当該情報に基づいてＮｅｘｔ  Ｈｏｐルータを選択する。
【０２３８】
このため、ルータ１００は、第２の実施の形態と同様に、コアネットワーク１０のＥＧＰ（例えば、ＢＧＰ）に参加しなくてよい。したがって、ルータ１００において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ１００において経路制御に用いるＲＡＭ１０２などの領域を節約できる。また、ルータ１００において、経路選択用の指標を評価するための演算コストを軽減できる。更に、第２の実施の形態と同様に、ルータ１００に求められる処理能力を抑えられ、コスト面でも有利である。
【０２３９】
また、第６の実施の形態によれば、第３の実施の形態と同様に、ルータ２００，２００ａ，２００ｂ，２００ｃは、通常のパケット転送を行えばよい。このため、ルータ２００，２００ａ，２００ｂ，２００ｃとして既存のルータを流用できるという利点もある。
【０２４０】
ここで、サーバ４００がコアネットワーク経路情報を収集して、ＩＴＲであるルータ１００にＮｅｘｔ  Ｈｏｐルータを提供する方法も考えられる。しかし、この場合は、サーバ４００がコアネットワーク経路情報を保持しなければならない。一方、第２〜第６の実施の形態によれば、コアネットワーク経路情報を新たに別の装置に保持させずに済む。したがって、第２〜第６の実施の形態は当該方法に対しても有利である。
【０２４１】
また、第２〜第６の実施の形態で説明したルータ１００，３００の機能はプロセッサとＲＡＭと複数の通信インタフェースとを備えたコンピュータによって実現されてもよい。例えば、ＲＡＭに記憶されたプログラムをプロセッサが実行することで、上記の機能を実現することもできる。当該プログラムは、コンピュータ読み取り可能な可搬型の記録媒体に記録しておくことができる。当該プログラムを流通させるには、例えば、そのプログラムが記録された記録媒体を配布する。または、そのプログラムをサーバコンピュータに格納しておき、ネットワーク経由でコンピュータに転送してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたはネットワークから取得したプログラムを、自装置の不揮発性の記憶媒体に格納する。そして、当該不揮発性の記憶媒体からプログラムを読み取り実行する。ただし、コンピュータは、取得したプログラムを、不揮発性の記憶媒体に格納せずに逐次、ＲＡＭに展開して実行することも可能である。
【０２４２】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０２４３】
１，２，２ａ，２ｂ，３  中継装置
１ａ  通信部
１ｂ  制御部
３ａ  受信部
３ｂ  送信部
４  情報処理装置
４ａ  受信部
４ｂ  制御部
５，６  ノード
７，８，９  ネットワーク
Ｄ１，Ｄ２，Ｄ３  距離を示す情報
Ｐ１，Ｐ２，Ｐ３  ポート
【図１】
0005958556.tif 000002
【図２】
0005958556.tif 000003
【図３】
0005958556.tif 000004
【図４】
0005958556.tif 000005
【図５】
0005958556.tif 000006
【図６】
0005958556.tif 000007
【図７】
0005958556.tif 000008
【図８】
0005958556.tif 000009
【図９】
0005958556.tif 000010
【図１０】
0005958556.tif 000011
【図１１】
0005958556.tif 000012
【図１２】
0005958556.tif 000013
【図１３】
0005958556.tif 000014
【図１４】
0005958556.tif 000015
【図１５】
0005958556.tif 000016
【図１６】
0005958556.tif 000017
【図１７】
0005958556.tif 000018
【図１８】
0005958556.tif 000019
【図１９】
0005958556.tif 000020
【図２０】
0005958556.tif 000021
【図２１】
0005958556.tif 000022
【図２２】
0005958556.tif 000023
【図２３】
0005958556.tif 000024
【図２４】
0005958556.tif 000025
【図２５】
0005958556.tif 000026
【図２６】
0005958556.tif 000027
【図２７】
0005958556.tif 000028
【図２８】
0005958556.tif 000029
【図２９】
0005958556.tif 000030
【図３０】
0005958556.tif 000031
【図３１】
0005958556.tif 000032
【図３２】
0005958556.tif 000033
【図３３】
0005958556.tif 000034
【図３４】
0005958556.tif 000035
【図３５】
0005958556.tif 000036
【図３６】
0005958556.tif 000037
【図３７】
0005958556.tif 000038
【図３８】
0005958556.tif 000039
【図３９】
0005958556.tif 000040