JP5958556B2 - 中継装置および情報処理装置 - Google Patents

中継装置および情報処理装置 Download PDF

Info

Publication number
JP5958556B2
JP5958556B2 JP2014550845A JP2014550845A JP5958556B2 JP 5958556 B2 JP5958556 B2 JP 5958556B2 JP 2014550845 A JP2014550845 A JP 2014550845A JP 2014550845 A JP2014550845 A JP 2014550845A JP 5958556 B2 JP5958556 B2 JP 5958556B2
Authority
JP
Japan
Prior art keywords
rloc
router
relay device
relay
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2014550845A
Other languages
English (en)
Other versions
JPWO2014087500A1 (ja
Inventor
慎也 加納
慎也 加納
謙治 引地
謙治 引地
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP5958556B2 publication Critical patent/JP5958556B2/ja
Publication of JPWO2014087500A1 publication Critical patent/JPWO2014087500A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/106Mapping addresses of different types across networks, e.g. mapping telephone numbers to data network addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は中継装置および情報処理装置に関する。
現在、複数の情報処理装置を含む情報処理システムが利用されている。複数の情報処理装置は、ネットワークを介して接続される。ネットワークは、1または複数の中継装置を含む。例えば、送信元の情報処理装置が宛先の情報処理装置に直接接続されていなくても、送信元の情報処理装置と宛先の情報処理装置との間に介在する1または複数の中継装置が、送信元の情報処理装置により送信されたデータを、宛先の情報処理装置へ転送する。
例えば、OSI(Open Systems Interconnection)参照モデルのネットワーク層のプロトコルを用いて中継を行う中継装置がある。具体的には、ルータやL3(Layer 3)スイッチである。中継装置には、ダイナミックルーティングを行うものがある。ダイナミックルーティングでは、中継装置は所定のルーティングプロトコルを用いて他の中継装置との接続関係を示す情報を収集する。当該接続関係を示す情報を経路情報と呼ぶことがある。中継装置は経路情報に基づいて経路選択用の指標(他の中継装置までの距離の指標など)を評価する。当該指標に基づいて宛先に応じた経路を選択し、その結果をルーティングテーブルに登録する。中継装置は、ルーティングテーブルに基づいてパケットを転送する。
近年では、IETF(Internet Engineering Task Force)においてLISP(Locator/ID Separation Protocol)と呼ばれるルーティングの方法が議論されている。LISPでは、例えばコアネットワークのアドレスとコアネットワークに接続するアクセスネットワークのアドレスとを分割して管理し得る。第1のアクセスネットワーク側のインタフェースからパケットを取得してコアネットワーク側へ転送する中継装置をITR(Ingress Tunnel Router)と呼ぶことがある。コアネットワーク側のインタフェースからパケットを取得して第2のアクセスネットワーク側へ転送する中継装置をETR(Egress Tunnel Router)と呼ぶことがある。ETRのコアネットワークに属するアドレスをRLOC(Routing LOCator)と呼び、アクセスネットワーク内のホストのアドレスをEID(Endpoint IDentifier)と呼ぶことがある。管理装置がEIDとRLOCとの対応を管理し得る。
ITRは、第2のアクセスネットワークに属するEID宛のパケットを転送するとき、当該EIDを管理装置に問い合わせることで、対応するETRのRLOCを解決し得る。ITRは、パケットをカプセル化し、RLOC宛でコアネットワークへ転送する。ETRはカプセル化を解除し、当該パケットを第2のアクセスネットワークへ転送する。このとき、ITRとETRとの間に介在するコアネットワークの中継装置は、コアネットワークについてルーティングテーブルをもてばよく、第1,第2のアクセスネットワークについてルーティングテーブルをもたなくてもよい。すなわち、コアネットワークの経路情報を収集していればよく、第1,第2のアクセスネットワークの経路情報を収集しなくてもよい。よって、コアネットワークの中継装置による経路選択のための負担を軽減し得る。
D.Farinacci、外3名、"Locator/ID Separation Protocol (LISP) draft-ietf-lisp-22"、[online]、平成24年2月12日、IETF、[平成24年8月21日検索]、インターネット <URL:http://tools.ietf.org/html/draft−ietf−lisp−22> D.Farinacci、外3名、"Locator/ID Separation Protocol (LISP) draft-ietf-lisp-23"、[online]、平成24年5月4日、IETF、[平成24年11月13日検索]、インターネット <URL:http://tools.ietf.org/html/draft−ietf−lisp−23>
ITRとして機能する中継装置とコアネットワークとの間が、複数の経路で接続されることがある。このような接続をマルチホームと呼ぶことがある。マルチホームの環境において、ITRに、コアネットワークの経路情報を収集させて経路選択を行わせることが考えられる。しかし、この場合、ITRはコアネットワークとアクセスネットワークとの両方の経路情報を収集し、両方のネットワークについて経路選択のための処理を行うことになる。このため、ITRの負担が増大し得るという問題がある。
1つの側面では、本発明は、経路情報をもたなくても経路選択を行えるようにする中継装置および情報処理装置を提供することを目的とする。
1つの態様では、中継装置が提供される。この中継装置は、通信部と制御部とを有する。通信部は、第1のネットワークに接続された第2のネットワークへ宛てたデータの転送先の候補であり第1のネットワークに属する複数の第1の中継装置と通信する。制御部は、データの転送先を選択する際に、複数の第1の中継装置それぞれから第1および第2のネットワークに接続された第2の中継装置までの距離を示す指標を、複数の第1の中継装置から取得し、当該指標に基づいて複数の第1の中継装置の中からデータの転送先を選択する。
また、1つの態様では、情報処理装置が提供される。この情報処理装置は、受信部と制御部とを有する。受信部は、第1および第2のネットワークに接続された第1の中継装置が第2のネットワークに接続された第3のネットワークへ宛てたデータの転送先を選択する際に、第2および第3のネットワークに接続された第2の中継装置の第2のネットワークにおけるアドレスを解決するための問い合わせを第1の中継装置から受け付ける。制御部は、問い合わせに応じて、第3のネットワークへ宛てたデータの第1の中継装置からの転送先の候補であり第2のネットワークに属する複数の第3の中継装置それぞれから第2の中継装置までの距離を示す指標を、複数の第3の中継装置から第1の中継装置へ提供させる。
また、1つの態様では、第1および第2のネットワークに接続された第1の中継装置からの、第2のネットワークに接続された第3のネットワークへ宛てたデータの転送先となる複数の候補のうちの1つとして用いられる中継装置が提供される。この中継装置は、受信部と送信部とを有する。受信部は、第1の中継装置がデータの転送先を選択する際に、第2および第3のネットワークに接続された第2の中継装置までの距離を示す指標を第1の中継装置に提供する旨の指示を受信する。送信部は、当該指示に応じて、自身から第2の中継装置までの距離を示す指標を、第1の中継装置に送信する。
また、1つの態様では、第1および第2のネットワークに接続された中継装置が提供される。この中継装置は、受信部と送信部とを有する。受信部は、第2および第3のネットワークに接続された第1の中継装置が第1のネットワークへ宛てたデータの転送先を選択する際に、自身の第2のネットワークにおけるアドレスを第1の中継装置に提供する旨の指示を受信する。送信部は、当該指示に応じて、アドレスとアドレスを受信した中継装置から自身までの距離を示す指標を取得するための指標とを含む複数の応答データを、第1の中継装置からのデータの転送先の候補であり第2のネットワークに属する複数の第2の中継装置それぞれを介して第1の中継装置に送信する。
また、1つの態様では、中継装置が提供される。この中継装置は、通信部と制御部とを有する。通信部は、第1のネットワークに接続された第2のネットワークへ宛てたデータの転送先の候補であり第1のネットワークに属する複数の第1の中継装置と通信する。制御部は、データの転送先を選択する際に、第1および第2のネットワークに接続された第2の中継装置の第1のネットワークにおけるアドレスを解決するための問い合わせを行い、複数の第1の中継装置の何れかの中継装置から当該問い合わせに対する応答を受信すると、当該中継装置をデータの転送先として選択する。
1つの側面では、経路情報をもたなくても経路選択を行える。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理システムを示す図である。 第2の実施の形態の情報処理システムを示す図である。 第2の実施の形態のルータのハードウェア例を示す図である。 第2の実施の形態のサーバのハードウェア例を示す図である。 第2の実施の形態のソフトウェア例を示す図である。 第2の実施の形態のソフトウェア例(続き)を示す図である。 第2の実施の形態の隣接GW管理テーブルの例を示す図である。 第2の実施の形態のルーティングテーブルの例を示す図である。 第2の実施の形態のRLOCキャッシュテーブルの例を示す図である。 第2の実施の形態のRLOC管理テーブルの例を示す図である。 第2の実施の形態のパケットの例を示す図である。 第2の実施の形態のRLOC要求メッセージの例を示す図である。 第2の実施の形態のRLOC応答指示メッセージの例を示す図である。 第2の実施の形態のRLOC応答メッセージの例を示す図である。 第2の実施の形態のITRの処理例を示すフローチャートである。 第2の実施の形態のサーバの処理例を示すフローチャートである。 第2の実施の形態のコア網ルータの処理例を示すフローチャートである。 第2の実施の形態の処理例を示すシーケンスである。 第3の実施の形態のETRのソフトウェア例を示す図である。 第3の実施の形態の隣接GW管理テーブルの例を示す図である。 第3の実施の形態のRLOC要求メッセージの例を示す図である。 第3の実施の形態のRLOC応答指示メッセージの例を示す図である。 第3の実施の形態のRLOC応答メッセージの例を示す図である。 第3の実施の形態のITRの処理例を示すフローチャートである。 第3の実施の形態のサーバの処理例を示すフローチャートである。 第3の実施の形態のETRの処理例を示すフローチャートである。 第3の実施の形態の処理例を示すシーケンスである。 第4の実施の形態のRLOC要求メッセージの例を示す図である。 第4の実施の形態のRLOC応答指示メッセージの例を示す図である。 第4の実施の形態の処理例を示すシーケンスである。 第5の実施の形態のRLOC要求メッセージの例を示す図である。 第5の実施の形態のRLOC応答指示メッセージの例を示す図である。 第5の実施の形態のRLOC応答メッセージの例を示す図である。 第5の実施の形態のITRの処理例を示すフローチャートである。 第5の実施の形態のサーバの処理例を示すフローチャートである。 第5の実施の形態のETRの処理例を示すフローチャートである。 第5の実施の形態の処理例を示すシーケンスである。 第6の実施の形態の情報処理システムを示す図である。 第6の実施の形態の処理例を示すシーケンスである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、中継装置1,2,2a,2b,3、情報処理装置4およびノード5,6を有する。中継装置1,2,2a,2b,3はデータの中継に用いられる装置である。中継装置1,2,2a,2b,3はルータやL3スイッチと呼ばれるものでもよい。
中継装置1は、ネットワーク7,8に接続されている。中継装置1は、ネットワーク7,8の境界に設けられているともいえる。ネットワーク7,8は中継装置1を介して接続されている。中継装置2,2a,2bは、ネットワーク7に属している。中継装置2,2a,2bは、中継装置1からネットワーク7へデータを転送するときの転送先の候補である。中継装置3は、ネットワーク7,9に接続されている。中継装置3は、ネットワーク7,9の境界に設けられているともいえる。ネットワーク7,9は中継装置3を介して接続されている。情報処理装置4はネットワーク7に接続されている。ノード5はネットワーク8に接続されている。ノード6はネットワーク9に接続されている。
ネットワーク7は複数のAS(Autonomous System)を含んでもよい。ASは独立した運用ポリシーを用いるISP(Internet Service Provider)や組織内ネットワーク(例えば、学術系のネットワーク)などでもよい。ネットワーク8,9はネットワーク7におけるASでもよい。中継装置2,2a,2bはそれぞれ異なるASに属していてもよい。ネットワーク7,8,9は、IP(Internet Protocol)ネットワークでもよい。中継装置1,2,2a,2b,3が中継するデータは、IPパケットまたはパケットと呼ばれるものでもよい。中継装置1は、通信部1aおよび制御部1bを有する。
通信部1aは、中継装置2,2a,2bと通信する。通信部1aは、ポートP1,P2,P3を有する。ポートP1は、中継装置2と接続されるインタフェースである。ポートP2は、中継装置2aと接続されるインタフェースである。ポートP3は、中継装置2bと接続されるインタフェースである。
制御部1bは、ネットワーク9へ宛てたデータの転送先を選択する際に、中継装置2,2a,2bそれぞれから中継装置3までの距離を示す情報D1,D2,D3を、中継装置2,2a,2bから取得する。制御部1bは、当該距離を示す情報D1,D2,D3に基づいて、中継装置2,2a,2bの中からデータの転送先を選択する。
例えば、距離を示す情報D1,D2,D3は中継装置2,2a,2bから中継装置3までのホップ数を示す情報でもよい。当該ホップ数は、中継装置2,3の間に介在する中継装置の数を示す指標でもよい。当該ホップ数は、中継装置2,3の間に介在するASの数を示す指標でもよい。何れの指標も距離を示す指標として扱えるからである。
制御部1bは、当該距離を示す情報D1,D2,D3として、中継装置2,2a,2bそれぞれから最短の距離のものを1つずつ取得してもよい。例えば、中継装置2から中継装置3までの経路が複数存在する場合には、制御部1bは、その中で最小のホップ数のみを中継装置2から取得してもよい。また、距離を示す情報D1,D2,D3は当該ホップ数に所定値(例えば、“1”など)が加算された値でもよい。
更に、距離を示す情報D1,D2,D3として、ホップ数の回数制限(転送回数の上限)を示す情報を利用することも考えられる。当該情報は、IPにおけるTTL(Time To Live)やホップリミット(Hop Limit)である。TTLまたはホップリミットは、中継装置を経由するごとに1単位ずつ減算される。したがって、当該TTLまたはホップリミットも距離の指標として扱える。具体的には、中継装置3から中継装置2,2a,2bそれぞれを経由して中継装置1へ到達したIPパケットに含まれるTTLまたはホップリミットに基づいて、中継装置1は中継装置3までの距離を評価し得る。中継装置1と中継装置2,2a,2bとの間のホップ数が、例えば“1”のように同じであれば、TTLやホップリミットを中継装置2,2a,2bから中継装置3までの距離の指標と考えてもよい。
ここで、ノード5からノード6へデータを転送する場合を考える。ノード6は、ネットワーク9に属している。よって、ノード6を宛先としたデータは、ネットワーク9へ宛てたデータともいえる。制御部1bは、中継装置2,2a,2bから中継装置3までの距離を示す情報D1,D2,D3を取得する。例えば、中継装置2から取得された距離を示す情報D1は、指標“7”である。中継装置2aから取得された距離を示す情報D2は、指標“5”である。中継装置2bから取得された距離を示す情報D3は、指標“4”である。指標の値が小さい程、距離が短いものとする。例えば、制御部1bは最短の距離である中継装置2bを転送先として選択する。この場合、中継装置2bと接続されたポートP3から転送する対象のデータを送出すればよい。
なお、制御部1bは、ネットワーク9へ宛てたデータの転送先を選択する際に、中継装置2,2a,2bから距離を示す情報D1,D2,D3を取得するものとした。このような制御は、例えば次のようにして行える。ここで、中継装置3は、受信部3aおよび送信部3bを有している。情報処理装置4は、受信部4aおよび制御部4bを有している。
情報処理装置4が、ネットワーク7における中継装置3のアドレスと、ネットワーク9におけるノード6のアドレスとの対応関係を管理することがある。例えば、ネットワーク7におけるルーティングにLISPを用いる場合である。中継装置1は、ノード6宛のデータを転送する際に、情報処理装置4に対してノード6のアドレスを問い合わせることで、ネットワーク7における中継装置3のアドレスを解決し得る。
このとき、情報処理装置4において、受信部4aは当該問い合わせを受信する。制御部4bは距離を示す情報D1,D2,D3を中継装置2,2a,2bから中継装置1へ提供させる。具体的には、中継装置2,2a,2bの各受信部(図示を省略)は、制御部4bから当該提供の指示を受け付ける。中継装置2,2a,2bの各送信部(図示を省略)は、当該指示に応じて距離を示す情報D1,D2,D3を中継装置1に送信する。このように、制御部4bは、中継装置2,2a,2bに対して距離を示す情報D1,D2,D3の提供を直接的に指示してもよい。
あるいは、制御部4bは、中継装置2,2a,2bそれぞれを経由して中継装置1に到達する複数のIPパケットを中継装置3に送信させてもよい。この場合、中継装置3において、受信部3aは制御部4bから当該送信の指示を受け付ける。送信部3bは指示に応じて当該複数のIPパケットを送信する。IPパケットはTTLまたはホップリミットを含む。このように、制御部4bは、中継装置2,2a,2bにより距離を示す情報D1,D2,D3を間接的に提供させてもよい。
こうして、制御部1bは、ネットワーク9へ宛てたデータの転送先を選択する際に、例えば中継装置3のアドレス解決のための問い合わせを行うことで、中継装置2,2a,2bから距離を示す情報D1,D2,D3を取得し得る。この場合、アドレス解決の問い合わせに対する応答とともに転送先を選択できるので効率的である。
中継装置1によれば、制御部1bにより、ネットワーク9へ宛てたデータの転送先が選択される際に、転送先の候補である中継装置2,2a,2bそれぞれから中継装置3までの距離を示す情報D1,D2,D3が、中継装置2,2a,2bから取得される。制御部1bにより、当該距離を示す情報D1,D2,D3に基づいて、中継装置2,2a,2bの中からデータの転送先が選択される。
これにより、中継装置1はネットワーク7の経路情報をもたなくても経路選択を行える。例えば、中継装置1はネットワーク7にマルチホームで接続されている場合、ネットワーク7に対するデータの転送先を複数の候補の中から選択することになる。そこで、中継装置1にネットワーク7の経路情報を収集させて経路選択を行わせることが考えられる。しかし、中継装置1はネットワーク8にも接続されている。したがって、中継装置1はネットワーク8についても、経路情報の収集や経路選択の処理を行うことになる。
この場合、中継装置1の負担が増大し得る。例えば、ネットワーク7,8の両方の経路情報を保持するために比較的大きなメモリ領域を消費し得る。また、ネットワーク7,8の両方について経路選択を行うために、経路選択用の指標を評価するための演算コストが増大し得る。ネットワーク7がコアネットワークのように大規模であると、その負担は特に増大し得る。内部に存在するネットワークの数が多い程、収集される経路情報の量、演算対象となる経路情報の量も増大するからである。
そこで、中継装置1は、ネットワーク9へ宛てたデータを転送する際に、中継装置2,2a,2bから、ネットワーク9に接続された中継装置3までの距離を示す情報D1,D2,D3を取得する。そして、距離を示す情報D1,D2,D3に基づいて、データの転送先を選択する。中継装置2,2a,2bから中継装置3までの距離の指標を得れば、中継装置1から中継装置2,2a,2bそれぞれを介した中継装置3までの距離の差異を評価できるからである。
例えば、中継装置1から中継装置2,2a,2bそれぞれへのホップ数が所定値(例えば、“1”)なら、中継装置1から中継装置2,2a,2bそれぞれを介した中継装置3までの距離の差異は、中継装置2,2a,2bそれぞれから中継装置3までの距離の差異に等しい。より具体的には、中継装置2から中継装置3までが指標“7”であり、中継装置2aから中継装置3までが指標“5”なら、距離の差異は“2”であり、その分だけ中継装置2aの方が中継装置3までの距離が小さいと評価できる。両方の指標に所定値を加算しても、この差異は変わらない。したがって、中継装置1は、距離を示す情報D1,D2,D3に基づいて、例えば中継装置3までの距離が最短である中継装置2bを転送先として選択できる。最短のルートを選択するのはデータを効率的に転送できるからである。
このように、中継装置1は、中継装置2,2a,2bから取得された距離を示す情報D1,D2,D3に基づいて転送先を選択する。このため、中継装置1は、ネットワーク7の経路情報を収集しなくてもよい。また、中継装置1は、自身でネットワーク7の経路評価用の指標を算出しなくてもよい。すなわち、経路情報をもたなくても経路選択を行える。その結果、中継装置1の負担が軽減される。例えば、中継装置1において経路制御用のメモリを節約できる。また、例えば中継装置1による経路選択のための演算コストを軽減できる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、ルータ100,200,200a,200b,300、サーバ400およびクライアント500,600を有する。ルータ100,200,200a,200b,300およびサーバ400は、コアネットワーク10に接続されている。
コアネットワーク10は、例えばインターネットやWAN(Wide Area Network)などの広域ネットワークにおける主要な回線網である。コアネットワーク10は、AS11,12,13,14を含む。例えば、AS11,12,13,14は、ISPや組織内ネットワークなどである。AS11,13,14は相互に接続されている。AS12,13は接続されている。各AS間には1以上の他のASが介在し得る。コアネットワーク10をコア網と称することもある。
ルータ100およびクライアント500は、ネットワーク20に接続されている。ルータ100は、ルータ200,200aおよびAS14に接続されている。ルータ200は、AS11に接続されている。ルータ200aは、AS12に接続されている。ルータ200bは、ルータ300およびAS13に接続されている。サーバ400は、AS14に接続されている。ルータ300およびクライアント600は、ネットワーク30に接続されている。
コアネットワーク10、AS11,12,13,14およびネットワーク20,30は、IPネットワークである。ルータ100,200,200a,200b,300は、OSI参照モデルのネットワーク層(第3層)でIPパケット(以下、単にパケットという)のルーティングを行う中継装置である。コアネットワーク10のルーティングでは、LISPが用いられる。AS14はLISPの管理用のネットワークであり、通常のパケット転送に用いられるものではない。
ルータ100は、コアネットワーク10およびネットワーク20の間の通信を中継する。ルータ300は、コアネットワーク10およびネットワーク30の間の通信を中継する。ルータ100,300はネットワーク20,30におけるCE(Customer Edge)ルータと呼ばれることもある。ルータ100,300は、コアネットワーク10に対するITRおよびETRとして機能する。このため、ルータ100,300はxTRと呼ばれることもある。
例えば、クライアント500からクライアント600に対してパケットを送信する場合を考える。この場合、ルータ100は、パケットをカプセル化してコアネットワーク10へ転送する。すなわち、ITRとして機能する。ITRをコアネットワーク10に対する入口側エッジノードと呼んでもよい。一方、ルータ300は、カプセル化を解除したパケットをネットワーク30へ転送する。すなわち、ETRとして機能する。ETRをコアネットワーク10に対する出口側エッジノードと呼んでもよい。以下の説明では、カプセル化されたパケットを、単に、カプセル化パケットと呼ぶことがある。
ルータ100は、前述のようにルータ200,200aに接続されている。すなわち、マルチホームである。あるいは、マルチホームでコアネットワーク10に接続することをマルチホーミングと呼ぶこともある。
ルータ200は、ルータ100から受信したパケットまたはカプセル化パケットをAS11内に転送する。ルータ200は、AS11側のインタフェースで受信したパケットまたはカプセル化パケットをルータ100に転送する。ルータ200aは、ルータ100から受信したパケットまたはカプセル化パケットをAS12内に転送する。ルータ200aは、AS12側のインタフェースで受信したパケットまたはカプセル化パケットをルータ100に転送する。ルータ200bは、AS13側のインタフェースで受信したパケットまたはカプセル化パケットをルータ300に転送する。ルータ200bは、ルータ300から受信したパケットまたはカプセル化パケットをAS13内に転送する。
サーバ400は、EIDとRLOCとの対応関係を管理するサーバコンピュータである。サーバ400は、ITRからのRLOC解決の問い合わせに応じて、EIDに対応するRLOCをITRに提供する。
クライアント500,600は、ユーザにより利用されるクライアントコンピュータである。クライアント500,600には、一意のEIDが付与される。例えば、クライアント500は、クライアント600のEIDを宛先に指定したパケットを送信する。当該パケットは、ネットワーク20、コアネットワーク10およびネットワーク30を経由して、クライアント600へ到達する。
なお、コアネットワーク10においてAS間のルーティングプロトコル(EGP:Exterior Gateway Protocol)は、例えばBGP(Boarder Gateway Protocol)である。ただし、ルータ100,300は、以下で説明する機能によりEGPに参加しなくてもよい。AS内やネットワーク20,30内のルーティングプロトコル(IGP:Interior Gateway Protocol)は、例えばOSPF(Open Shortest Path First)やRIP(Routing Information Protocol)などである。
また、第2の実施の形態で用いられるアドレスは、IPアドレスである。IPアドレスは、IPv4(Internet Protocol version 4)アドレスでもよいし、IPv6(Internet Protocol version 6)アドレスでもよい。ルータ100,200,200a,200b,300のIPアドレスは、コアネットワーク10内のルーティングに用いられる各ネットワークアドレスに属している。このため、ルータ100,200,200a,200b,300は、コアネットワーク10に属しているということができる。これらルータ間を所定の回線で接続することでコアネットワーク10が形成されていると考えることもできる。ルータ100はネットワーク20側のIPアドレスも有するからネットワーク20にも属している。ルータ300はネットワーク30側のIPアドレスも有するからネットワーク30にも属している。更に、ルータ100,200,200a,200b,300はL3スイッチと呼ばれるものでもよい。
第2の実施の形態の情報処理システムは、第1の実施の形態の情報処理システムの一例と考えることができる。例えば、ルータ100は中継装置1の一例である。ルータ200,200aは中継装置2a,2b,2cの一例である。ルータ300は中継装置3の一例である。サーバ400は情報処理装置4の一例である。
図3は、第2の実施の形態のルータのハードウェア例を示す図である。ルータ100は、プロセッサ101、RAM(Random Access Memory)102、ROM(Read Only Memory)103、スイッチ部104およびポート部105を有する。ルータ200,200a,200b,300もルータ100と同様のユニットを用いて実現できる。
プロセッサ101は、ルータ100の情報処理を制御する。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)である。プロセッサ101は、CPU、MPU、DSP、ASIC、FPGA、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、ファームウェアのプログラムやデータを一時的に記憶する。RAM102に記憶されたプログラムやデータは、プロセッサ101の処理に用いられる。
ROM103は、ファームウェアのプログラムやデータを予め記憶している。ROM103は、フラッシュメモリなど、書き換え可能な不揮発性メモリであってもよい。ROM103に記憶されたプログラムやデータは、プロセッサ101の処理に用いられる。
スイッチ部104は、ポート部105の何れかのポートで受信されたパケットを、他のポートへ送出する。ポート部105は複数のポートを備える。複数のポートには、ポート105a,105b,105cおよび105dが含まれる。ポート105aはネットワーク20に接続されている。ポート105bはAS14に接続されている。ポート105cはルータ200に接続されている。ポート105dはルータ200aに接続されている。
図4は、第2の実施の形態のサーバのハードウェア例を示す図である。サーバ400は、プロセッサ401、RAM402、HDD(Hard Disk Drive)403、画像信号処理部404、入力信号処理部405、ディスクドライブ406および通信部407を有する。クライアント500,600もサーバ400と同様のユニットを用いて実現できる。
プロセッサ401は、サーバ400の情報処理を制御する。プロセッサ401は、マルチプロセッサであってもよい。プロセッサ401は、例えばCPU、MPU、DSP、ASIC、FPGAまたはPLDなどである。プロセッサ401は、CPU、MPU、DSP、ASIC、FPGA、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM402は、サーバ400の主記憶装置である。RAM402は、プロセッサ401に実行させるOSのプログラムやアプリケーションのプログラムの少なくとも一部を一時的に記憶する。また、RAM402は、プロセッサ401による処理に用いる各種データを記憶する。
HDD403は、サーバ400の補助記憶装置である。HDD403は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD403には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。サーバ400は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部404は、プロセッサ401からの命令に従って、サーバ400に接続されたディスプレイ41に画像を出力する。ディスプレイ41としては、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部405は、サーバ400に接続された入力デバイス42から入力信号を取得し、プロセッサ401に出力する。入力デバイス42としては、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
ディスクドライブ406は、レーザ光などを利用して、記録媒体43に記録されたプログラムやデータを読み取る駆動装置である。記録媒体43として、例えば、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などを使用できる。記録媒体43は、半導体メモリや磁気ディスクなどを内蔵した記憶装置でもよい。ディスクドライブ406は、例えば、プロセッサ401からの命令に従って、記録媒体43から読み取ったプログラムやデータをRAM402またはHDD403に格納する。
通信部407は、AS14を介して他のコンピュータやルータと通信を行えるインタフェースである。通信部407は、有線インタフェースでもよいし、無線インタフェースでもよい。例えば、プロセッサ401は、通信部407が他のコンピュータから受信したプログラムやデータをRAM402やHDD403に格納する。
図5は、第2の実施の形態のソフトウェア例を示す図である。ルータ100は、記憶部110および経路制御部120を有する。記憶部110は、RAM102の記憶領域を用いて実現されてもよい。経路制御部120は、RAM102やROM103に格納されたプログラムをプロセッサ101が実行することで実現されてもよい。ただし、経路制御部120はASICやFPGAなどの電子回路で実現されてもよい。
記憶部110は、隣接GW(GateWay)管理テーブル111、ルーティングテーブル112およびRLOCキャッシュテーブル113を記憶する。
隣接GW管理テーブル111は、コアネットワーク10側の隣接GWのIPアドレスがポート105c,105dに対応付けて登録された情報である。本例において、当該隣接GWはルータ200,200aである。例えば、隣接GW管理テーブル111の設定を管理者などが予め行ってもよい。あるいは、所定のプロトコルを用いて、経路制御部120に隣接GWのIPアドレスを取得させて登録させてもよい。例えば、ルータ100とルータ200,200aとの接続がPPP(Point-to-Point Protocol)リンクであれば、経路制御部120はPPPを用いてルータ200,200aのIPアドレスを取得し得る。ルーティングテーブル112は、宛先ネットワークアドレスに対応付けてNext HopルータのIPアドレス(以下、Next Hopアドレスということがある)が登録された情報である。RLOCキャッシュテーブル113は、EIDに対するRLOCが登録された情報である
経路制御部120は、パケット転送部121およびRLOC処理部122を有する。パケット転送部121は、記憶部110に記憶されたルーティングテーブル112およびRLOCキャッシュテーブル113に基づいて、パケットの転送を行う。
例えば、パケット転送部121はネットワーク20側のポート105aで受信したパケットを、コアネットワーク10側のポート105c,105dの何れかから送出する。ネットワーク20から受信したパケットをルータ200,200aの何れかに送信するともいえる。このとき、パケット転送部121は、LISPの方法により、コアネットワーク10へ送信するパケットをカプセル化する。
また、例えばパケット転送部121は、コアネットワーク10側のポート105c,105dで受信したカプセル化パケットのカプセル化を解除して、ネットワーク20側のポート105aから送出する。ルータ200,200aから受信したカプセル化パケットを解除して得たパケットをネットワーク20側に送信するともいえる。
RLOC処理部122は、EIDとRLOCとの対応関係を管理する。例えば、パケット転送部121が、ネットワーク20からクライアント600のEIDを宛先としたパケットを受信する。当該パケットは、ネットワーク30へ宛てたパケットということもできる。EIDのプレフィクス部分は、ネットワーク30のネットワークアドレスだからである。RLOC処理部122は、RLOCキャッシュテーブル113を参照し、対応するETR(ルータ300)のRLOCを検索する。RLOCキャッシュテーブル113に、当該EIDに対応するRLOCが登録されていなければ、RLOC処理部122はRLOC解決を要求するメッセージをサーバ400に送信する。RLOC解決の要求を、単にRLOC要求と呼ぶことがある。また、以下の説明では、当該メッセージをRLOC要求メッセージと呼ぶことがある。RLOC要求メッセージは、EIDおよび隣接GWのIPアドレスを含む。
RLOC処理部122は、当該要求に対する応答(RLOC応答)をルータ200,200aを介して受信する。RLOC処理部122は、RLOC応答に基づいて、EIDに対応するRLOCを把握する。また、当該RLOC応答に含まれる情報に基づいて、ルーティングテーブル112の設定を行う。更に、RLOCキャッシュテーブル113にEIDとRLOCとの対応関係を登録する。
サーバ400は、記憶部410および管理部420を有する。記憶部410は、RAM402やHDD403の記憶領域を用いて実現されてもよい。管理部420は、RAM402やHDD403に格納されたプログラムをプロセッサ401が実行することで実現されてもよい。ただし、管理部420はASICやFPGAなどの電子回路で実現されてもよい。
記憶部410は、RLOC管理テーブル411を記憶する。RLOC管理テーブル411は、EIDとRLOCとの対応関係が登録された情報である。例えば、RLOC管理テーブル411には、クライアント500のEIDとルータ100のRLOCとの対応関係や、クライアント600のEIDとルータ300のRLOCとの対応関係が予め登録される。ネットワーク20には複数のクライアントが接続されることもある。その場合、複数のクライアントそれぞれのEIDとルータ100のRLOCとの対応関係がRLOC管理テーブル411に登録されることになる。ネットワーク30についても同様である。
管理部420は、RLOC要求メッセージを受信する。管理部420は、RLOC管理テーブル411を参照して、RLOC要求メッセージ含まれるEIDに対応するRLOCを検索する。管理部420は、検索されたRLOCの提供を指示するメッセージを生成し、ルータ200,200aの両方に送信する。以下の説明では、当該メッセージをRLOC応答指示メッセージと呼ぶことがある。RLOC応答指示メッセージは、RLOC要求メッセージを送信したITRのRLOCおよびETRのRLOCを含む。
管理部420は、ルータ100,300からEIDとルータ100,300のIPアドレスとの対応を示す情報を取得して、記憶部410に記憶されたRLOC管理テーブル411に事前に登録する。例えば、ネットワーク20の配下に存在するクライアント500のEIDとルータ100のコアネットワーク10側のIPアドレス(RLOCに相当)との対応を示す情報をルータ100から事前に取得し、登録する。また、例えば、ネットワーク30の配下に存在するクライアント600のEIDとルータ300のコアネットワーク10側のIPアドレスとの対応を示す情報をルータ300から事前に取得し、登録する。
図6は、第2の実施の形態のソフトウェア例(続き)を示す図である。ルータ200は、記憶部210および経路制御部220を有する。記憶部210は、ルータ200が備えるRAMの記憶領域を用いて実現されてもよい。経路制御部220は、ルータ200が備えるRAMやROMに記憶されたプログラムをルータ200が備えるプロセッサが実行することで実現されてもよい。ただし、経路制御部220はASICやFPGAなどの電子回路で実現されてもよい。ルータ200aもルータ200と同様のソフトウェア例により実現できる。
記憶部210は、コアネットワーク経路情報211およびルーティングテーブル212を有する。コアネットワーク経路情報211は、例えばBGPを用いて取得されたコアネットワーク10の経路情報である。当該経路情報はNLRI(Network Layer Reachability Information)(宛先ネットワークアドレスとプレフィクス長との組み合わせ)やパス属性を含む。コアネットワーク経路情報211をBGPテーブルと呼ぶこともある。
例えば、コアネットワーク経路情報211に基づいて選択された宛先のネットワークアドレスに対するNext Hopアドレス(ベストパス)は、コアネットワーク10内の隣接するルータ(BGPピア)に広告される。これによって、他のルータに経路情報が伝搬される。ルーティングテーブル212は、ネットワークアドレスに対するベストパスを設定した情報である。経路制御部220が、コアネットワーク経路情報211およびルーティングテーブル212に対する情報の登録などを行ってもよい。
経路制御部220は、パケット転送部221およびRLOC処理部222を有する。パケット転送部221は、記憶部210に記憶されたルーティングテーブル212に基づいて、パケットまたはカプセル化パケットの転送を行う。例えば、パケット転送部221は、ルータ100から受信したパケットまたはカプセル化パケットを、AS11側に送信する。また、例えばパケット転送部221は、AS11側から受信したパケットまたはカプセル化パケットをルータ100に送信する。
RLOC処理部222は、RLOC応答指示メッセージを受信する。すると、RLOC処理部222は、記憶部210に記憶されたコアネットワーク経路情報211を参照して、ETRのRLOCまでの距離を計算する。具体的には、ホップ数である。ホップ数とは、例えばETRに到達するまでに経由するルータの数である。
例えば、コアネットワーク経路情報211に含まれるNLRIに付随したパス属性は、経由するASを示すAS_PATH属性などを含む。例えば、RLOC処理部222は、AS_PATH属性に基づいて、宛先のネットワークアドレスまでに経由するASの個数を当該ホップ数とみなしてもよい。経由するASの個数によっても、宛先のネットワークアドレスに対する距離を評価し得るからである。
ホップ数が大きい程、ルータなどの処理のオーバヘッドで通信が遅延し得るから、ホップ数は時間的な距離を示しているともいえる。また、ホップ数が大きい程、ITRとETRとの間に経由する回線長も大きい可能性が高いから、ホップ数は空間的な距離を示しているともいえる。RLOC処理部222は、計算されたホップ数を含むメッセージをルータ100に送信する。以下の説明では、当該メッセージをRLOC応答メッセージと呼ぶことがある。RLOC応答メッセージはETRのRLOCを含む。
なお、経路制御部220は、ルータ100への経路をコアネットワーク10内に広告する。ルータ200aも同様である。また、同様に、ルータ200bは、ルータ300への経路をコアネットワーク10内に広告する。
図7は、第2の実施の形態の隣接GW管理テーブルの例を示す図である。隣接GW管理テーブル111は、インタフェースおよび隣接GWアドレスの項目を含む。インタフェースの項目には、ポートを物理的に識別するための識別子が登録される。隣接GWアドレスの項目には、隣接GWのIPアドレスが登録される。
例えば、隣接GW管理テーブル111には、インタフェースが“eth0”、隣接GWアドレスが“GW1”という情報が登録される。“eth0”はポート105cの識別子である。“GW1”はルータ200のIPアドレスである。すなわち、ポート105cの先にルータ200が接続されていることを示す。なお、“eth1”はポート105dの識別子である。“GW2”はルータ200aのIPアドレスである。
更に、他の装置のIPアドレスをそれぞれの次の通りとする。ルータ100のコアネットワーク10側のIPアドレスは“RLOC1”である。ルータ300のコアネットワーク10側のIPアドレスは“RLOC2”である。サーバ400のIPアドレスは“SV1”である。クライアント500のIPアドレスは“IP1”である。クライアント600のIPアドレスは“IP2”である。
図8は、第2の実施の形態のルーティングテーブルの例を示す図である。ルーティングテーブル112は、宛先ネットワークアドレスおよびNext Hopの項目を含む。宛先ネットワークアドレスの項目には、宛先のネットワークアドレスが登録される。Next Hopの項目には、Next Hopアドレスが登録される。
例えば、ルーティングテーブル112には、宛先ネットワークアドレスが“N−SV1”、Next Hopが“GWA”という情報が登録される。“N−SV1”はAS14のネットワークアドレスである。“GWA”はAS14に接続するルータ(ポート105bの先に接続されたルータ)のIPアドレスである。すなわち、サーバ400にパケットを送りたいときは、ポート105bから送出すればよいことを示す。
また、例えば、ルーティングテーブル112には、宛先ネットワークアドレスが“N−RLOC2”、Next Hopが“GW1”という情報が登録される。“N−ROC2”はルータ300が属するコアネットワーク10側のネットワークアドレスである。すなわち、ルータ300にパケット(カプセル化パケット)を送りたいときは、ポート105cから送出すればよいことを示す。
図9は、第2の実施の形態のRLOCキャッシュテーブルの例を示す図である。RLOCキャッシュテーブル113は、EIDおよびRLOCの項目を含む。EIDの項目には、EIDが登録される。RLOCの項目には、RLOCが登録される。
例えば、RLOCキャッシュテーブル113には、EIDが“IP2”、RLOCが“RLOC2”という情報が登録される。これは、クライアント600に対応するETRがルータ300であることを示す。すなわち、クライアント600宛のパケットを転送する際に、ルータ300を宛先として含むヘッダを当該パケットに追加して(カプセル化)転送すればよいことを示す。
図10は、第2の実施の形態のRLOC管理テーブルの例を示す図である。RLOC管理テーブル411は、EIDおよびRLOCの項目を含む。EIDの項目には、EIDが登録される。RLOCの項目には、RLOCが登録される。
例えば、RLOC管理テーブル411には、EIDが“IP1”、RLOCが“RLOC1”という情報が登録される。これは、クライアント500に対するETRがルータ100であることを示す。
また、例えばRLOC管理テーブル411には、EIDが“IP2”、RLOCが“RLOC2”という情報が登録される。これは、クライアント600に対するETRがルータ300であることを示す。
図11は、第2の実施の形態のパケットの例を示す図である。パケット50は、DA(Destination Address)(1)、SA(Source Address)(1)およびDATAのフィールドを含む。DA(1)は宛先アドレスである。SA(1)は送信元アドレスである。DATAは、送りたいデータ本体(ペイロード)である。DA(1)およびSA(1)を含む所定のフィールド群がヘッダである。例えば、ルータ100は、DA(1)が“IP2”、SA(1)が“IP1”、DATAが“xxxxx”というパケット50を受信することがある。
カプセル化パケット60は、DA(2)、SA(2)、DA(1)、SA(1)およびDATAのフィールドを含む。DA(2)はコアネットワーク10内の宛先アドレスである。SA(2)はコアネットワーク10内の送信元アドレスである。DA(1)、SA(1)およびDATAのフィールドは、パケット50と同様である。例えば、ルータ100は、パケット50をカプセル化して、DA(2)が“RLOC2”、SA(2)が“RLOC1”、DA(1)が“IP2”、SA(1)が“IP1”、DATAが“xxxxx”というカプセル化パケット60を送信することがある。カプセル化パケット60は、コアネットワーク10内のルータにおいて、DA(2)に設定されたIPアドレスに基づいて転送されることになる。
図12は、第2の実施の形態のRLOC要求メッセージの例を示す図である。RLOC要求メッセージ51は、DA、SA、Type、EID、ITRアドレスおよび隣接GWアドレスリストのフィールドを含む。DAおよびSAは、パケット50のDA(1)およびSA(1)に相当する。Typeはメッセージの属性を示す。EIDはEIDを示す。ITRアドレスは、RLOC要求メッセージ51の発行元のITRのIPアドレスを示す。隣接GWアドレスリストは、当該ITRのコアネットワーク10側の隣接GWのIPアドレスのリストを示す。
例えば、ルータ100がクライアント500からクライアント600を宛先アドレスとするパケットを受信した場合、RLOC要求メッセージ51は次のようになる。
DAは“SV1”である。サーバ400宛だからである。SAは“RLOC1”である。送信元はルータ100だからである。Typeは“RLOC要求”である。RLOC要求メッセージだからである。EIDは“IP2”である。ルータ100はクライアント600を宛先としたパケットを転送したいからである。ITRアドレスは“RLOC1”である。要求元はルータ100だからである。隣接GWアドレスリストは“GW1,GW2”である。隣接GW管理テーブル111にこれらが登録されているからである。
図13は、第2の実施の形態のRLOC応答指示メッセージの例を示す図である。RLOC応答指示メッセージ52,52aは、DA、SA、Type、EID、ETRアドレスおよびITRアドレスのフィールドを含む。DA、SA、Type、EIDおよびITRアドレスが示す内容は、RLOC要求メッセージ51で説明した通りである。ETRアドレスは、EIDに対応するRLOCを示す。例えば、RLOC要求メッセージ51に対してサーバ400が送信するRLOC応答指示メッセージ52,52aは次のようになる。
RLOC応答指示メッセージ52において、DAは“GW1”である。RLOC要求メッセージ51で隣接GWのIPアドレスリスト“GW1,GW2”が指定され、そのうちルータ200宛だからである。SAは“SV1”である。送信元はサーバ400だからである。Typeは“RLOC応答”である。RLOC応答指示メッセージだからである。なお、RLOC応答指示メッセージは、RLOC要求メッセージに対して送信されるものなので、RLOC応答メッセージと呼ぶこともできる。本例では、ルータ200,200aが送信するRLOC応答メッセージと区別するために便宜的にRLOC応答指示メッセージと称している。
EIDは“IP2”である。RLOC要求メッセージ51でEID“IP2”が指定されたからである。ETRアドレスは“RLOC2”である。EID“IP2”に対応するRLOCは“RLOC2”だからである。ITRアドレスは“RLOC1”である。要求元はルータ100だからである。
RLOC応答指示メッセージ52aにおいて、DAは“GW2”である。RLOC要求メッセージ51で隣接GWのIPアドレスリスト“GW1,GW2”が指定され、そのうちルータ200a宛だからである。その他のフィールドの設定内容は、RLOC応答指示メッセージ52と同様である。
図14は、第2の実施の形態のRLOC応答メッセージの例を示す図である。RLOC応答メッセージ53,53aは、DA、SA、Type、EID、ETRアドレスおよびETRまでのホップ数のフィールドを含む。DA、SA、Type、EID、ETRアドレスが示す内容は、RLOC応答指示メッセージ52,52aで説明した通りである。ETRまでのホップ数のフィールドには、RLOC応答指示メッセージ52,52aを受信したルータからETRまでのホップ数を示す。例えば、RLOC応答指示メッセージ52,52aに対するRLOC応答メッセージ53,53aは次のようになる。
RLOC応答メッセージ53において、DAは“RLOC1”である。ルータ100宛だからである。SAは“GW1”である。送信元はルータ200だからである。Typeは“RLOC応答”である。RLOC応答メッセージだからである。EIDは“IP2”である。RLOC応答指示メッセージ52でEID“IP2”が指定されたからである。ETRアドレスは“RLOC2”である。RLOC応答指示メッセージ52でETRアドレス“RLOC2”が指定されたからである。ETRまでのホップ数は“5”である。コアネットワーク経路情報211に基づいてルータ200により算出された値である。
RLOC応答メッセージ53aにおいて、SAは“GW2”である。送信元はルータ200aだからである。ETRまでのホップ数は“10”である。ルータ200aが保持するコアネットワーク経路情報に基づいてルータ200aにより算出された値である。その他のフィールドの設定内容は、RLOC応答メッセージ53と同様である。
図15は、第2の実施の形態のITRの処理例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。以下の説明では、図面において“メッセージ”の文字列を略記することがある。
(ステップS11)パケット転送部121は、パケット50を受信する。パケット50のDA(1)(すなわち、EID)は“IP2”である。SA(1)は“IP1”である。
(ステップS12)RLOC処理部122は、EID“IP2”がRLOCキャッシュテーブル113に未登録であるか否かを判定する。未登録である場合、処理をステップS13に進める。登録済である場合、処理をステップS18に進める。
(ステップS13)RLOC処理部122は、記憶部110に記憶された隣接GW管理テーブル111を参照して、隣接GW(ルータ200,200a)のIPアドレスを取得する。RLOC処理部122は、隣接GWのIPアドレス(隣接GWアドレスリスト)を含むRLOC要求メッセージ51を生成し、サーバ400に送信する。
(ステップS14)RLOC処理部122は、RLOC要求メッセージ51に対してルータ200からRLOC応答メッセージ53を受信する。RLOC処理部122は、RLOC要求メッセージ51に対してルータ200aからRLOC応答メッセージ53aを受信する。
(ステップS15)RLOC処理部122は、RLOC応答メッセージ53,53aに基づいて、ルータ200,200aのうちETRに対して最小ホップ数のものを、Next Hopルータとして選択する。RLOC応答メッセージ53,53aの例では、RLOC応答メッセージ53に設定されたホップ数“5”は、RLOC応答メッセージ53aに設定されたホップ数“10”よりも小さい。したがって、RLOC応答メッセージ53に設定されたホップ数が最小である。よって、RLOC処理部122は、Next Hopルータとしてルータ200を選択する。
(ステップS16)RLOC処理部122は、Next Hopルータとして選択した方の隣接GWから受信したRLOC応答メッセージに基づいて、ルーティングテーブル112にエントリを追加する。例えば、RLOC処理部122は、RLOC応答メッセージ53に含まれるETRアドレス“RLOC2”のネットワークアドレス“N−RLOC2”とルータ200のIPアドレス“GW1”とを対応付けてルーティングテーブル112に登録する。なお、当該エントリがルーティングテーブル112に登録済の場合もある。その場合は、ステップS16をスキップしてもよい。
(ステップS17)RLOC処理部122は、Next Hopルータとして選択した方の隣接GWから受信したRLOC応答メッセージに基づいて、RLOCキャッシュテーブル113にエントリを追加する。例えば、RLOC処理部122は、RLOC応答メッセージ53に含まれるEID“IP2”とETRアドレス“RLOC2”とを対応付けてRLOCキャッシュテーブル113に登録する。
(ステップS18)パケット転送部121は、RLOCキャッシュテーブル113を参照して、EID“IP2”に対するRLOC“RLOC2”を取得する。パケット転送部121は、パケット50をカプセル化して、カプセル化パケット60を生成する。カプセル化パケット60のDA(2)は“RLOC2”である。SA(2)は“RLOC1”である。
(ステップS19)パケット転送部121は、カプセル化パケット60を転送する。具体的には、パケット転送部121は、ルーティングテーブル112を参照して、RLOC“RLOC2”のネットワークアドレス“N−RLOC2”に対するNext Hopアドレス“GW1”を取得する。したがって、パケット転送部121は、ルータ200と接続されたポート105cから、カプセル化パケット60を送出する。
このように、ルータ100は、RLOCキャッシュテーブル113に未登録のEIDがある場合、RLOC要求メッセージ51をサーバ400に送信することで、RLOCを解決し得る。具体的には、ルータ100は、ETR(ルータ300)までのホップ数を含むRLOC応答メッセージ53,53aを受信する。ルータ100は、RLOCを得るとともに、当該ホップ数に基づきNext Hopアドレスを決定する。
なお、ステップS14において、RLOC処理部122は、RLOC要求メッセージ51に含めた隣接GWのIPアドレスの数(この場合は2つ)だけRLOC応答メッセージ53,53aを正常に受信した後にステップS15に進む。ただし、ネットワークの障害などで、1つしか受信できない場合もある(例えば、応答のメッセージが途中で破棄された場合や、遅延などで所定の制限時間内に1つしか応答を受信しなかった場合)。この場合は、ステップS15をスキップしてステップS16に進めてもよい。その場合、RLOC処理部122は、当該1つのRLOC応答メッセージに含まれるETRアドレスなどに基づいて、ステップS16以降の処理を行える。
また、ステップS17で示したように、RLOCキャッシュテーブル113を用いて解決済みのRLOCとEIDとの対応を保持しておく。これにより、以後ではステップS12の判定によって、ステップS13〜S17の処理を省ける。
図16は、第2の実施の形態のサーバの処理例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
(ステップS21)管理部420は、RLOC要求メッセージ51をルータ100から受信する。管理部420は、RLOC要求メッセージ51からEID“IP2”を取得する。
(ステップS22)管理部420は、RLOC管理テーブル411を参照して、EID“IP2”が登録済であるか否かを判定する。登録済である場合、処理をステップS23に進める。未登録である場合、処理をステップS25に進める。
(ステップS23)管理部420は、RLOC管理テーブル411からEID“IP2”に対応するRLOC“RLOC2”を取得する。管理部420は、RLOC要求メッセージ51から、隣接GWのIPアドレスを取得する。取得された情報に基づいて、管理部420は、RLOC応答指示メッセージ52,52aを生成する。RLOC応答指示メッセージ52,52aは、ITRアドレス“RLOC1”およびETRアドレス“RLOC2”を含む。RLOC応答指示メッセージ52は、ルータ200宛である。RLOC応答指示メッセージ52aは、ルータ200a宛である。
(ステップS24)管理部420は、RLOC応答指示メッセージ52をルータ200に送信する。管理部420は、RLOC応答指示メッセージ52aをルータ200aに送信する。そして、処理を終了する。
(ステップS25)管理部420は、エラー処理を行う。例えば、管理部420は、対応するEIDが存在しない旨をルータ100に応答する(エラー応答)。ルータ100は、エラー応答に基づいて、当該EID宛にパケットを転送できない旨を、クライアント600に通知してもよい。そして、処理を終了する。
このようにして、サーバ400は、RLOC要求メッセージ51に対して、RLOC応答指示メッセージ52,52aをルータ200,200aに送信する。
図17は、第2の実施の形態のコア網ルータの処理例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。以下では、ルータ200の処理を説明するが、ルータ200aも同様の手順である。
(ステップS31)RLOC処理部222は、RLOC応答指示メッセージ52をサーバ400から受信する。RLOC処理部222は、RLOC応答指示メッセージ52からETRアドレス“RLOC2”を取得する。
(ステップS32)RLOC処理部222は、記憶部210に記憶されたコアネットワーク経路情報211に基づいて、ルータ200からETRであるルータ300(“RLOC2”)までのホップ数を算出する。ここで、ルータ200からルータ300までに複数の経路が存在する場合もある。その場合は、最短のホップ数を採用する。ルータ100に提示する選択肢を減らした方がルータ100の演算コストを軽減できるからである。
(ステップS33)RLOC処理部222は、RLOC応答指示メッセージ52からITRアドレス“RLOC1”を取得する。RLOC処理部222は、RLOC応答メッセージ53を生成する。RLOC応答メッセージ53は、ルータ100宛である。RLOC応答メッセージ53は、ETRアドレス“RLOC2”およびETRまでのホップ数“5”を含む。
(ステップS34)RLOC処理部222は、RLOC応答メッセージ53をルータ100に送信する。
このようにして、ルータ200はRLOC応答指示メッセージ52に基づいて、RLOC応答メッセージ53を生成し、ルータ100に送信する。このとき、ルータ200は、ルータ200からETRであるルータ300までのホップ数を計算して、RLOC応答メッセージ53に含める。ただし、計算したホップ数に、ルータ200,200aで共通の所定値(例えば、“1”など)を加算したものでもよい。また、ルータ単位に重み付けをしてもよい(例えば、ルータごとに異なる係数をホップ数に乗ずるなど)。
図18は、第2の実施の形態の処理例を示すシーケンスである。以下、図18に示す処理をステップ番号に沿って説明する。
ルータ100はクライアント500からクライアント600宛のパケット50を受信する(ステップST101)。ルータ100はRLOCキャッシュテーブル113にクライアント600のEID“IP2”が未登録であると、RLOC要求メッセージ51を生成する。ルータ100は、RLOC要求メッセージ51をサーバ400に送信する(ステップST102)。
サーバ400は、RLOC要求メッセージ51を受信すると、RLOC管理テーブル411を参照して、EID“IP2”のエントリを検索し、対応するRLOC“RLOC2”を取得する。サーバ400は、RLOC応答指示メッセージ52,52aを生成する。サーバ400は、RLOC応答指示メッセージ52をルータ200に送信する(ステップST103)。サーバ400は、RLOC応答指示メッセージ52aをルータ200aに送信する(ステップST104)。ステップST103,ST104は同時でもよいし、順序が入れ替わってもよい。
ルータ200は、RLOC応答指示メッセージ52を受信すると、ルータ200からルータ300までのホップ数を計算して、RLOC応答メッセージ53を生成する。ルータ200は、RLOC応答メッセージ53をルータ100に送信する(ステップST105)。ルータ200aは、RLOC応答指示メッセージ52を受信すると、ルータ200aからルータ300までのホップ数を計算して、RLOC応答メッセージ53aを生成する。ルータ200aは、RLOC応答メッセージ53aをルータ100に送信する(ステップST106)。ステップST105,ST106は、同時でもよいし、順序が入れ替わってもよい。
ルータ100は、RLOC応答メッセージ53,53aを受信すると、ETRまでのホップ数を比較する。ルータ100は、ホップ数が最小であるルータ200をNext Hopルータとして選択する。ルータ100は、選択結果に基づいて、ルーティングテーブル112およびRLOCキャッシュテーブル113に新たなエントリを登録する。ルータ100は、パケット50をカプセル化してカプセル化パケット60を生成し、ルータ300へ送信する。この場合、送出ポートは、ポート105cである。カプセル化パケット60は、ルータ200を経由してルータ300に到達することになる(ステップST107)。
ルータ300は、カプセル化パケット60を受信すると、カプセル化を解除しパケット50を得る。ルータ300は、パケット50をクライアント600へ向けて転送する(ステップST108)。
このようにして、ルータ100は、ルータ200,200aそれぞれからルータ300までのホップ数を取得する。ルータ100は、各ホップ数を比較して、ルータ200,200aのうちNext Hopルータを選択する。このため、ルータ100は、コアネットワーク10のEGP(例えば、BGP)に参加しなくてよい。したがって、ルータ100において、コアネットワーク経路情報を収集しなくてよい。ただし、ルータ100は、ネットワーク20側の経路情報を収集して経路選択を行い得る。
例えば、ルータ200,200aは、ルータ100に対してコアネットワーク経路情報を広告しないように制御する。あるいは、ルータ100は、ルータ200,200aからコアネットワーク経路情報を受信したとしても、当該情報を破棄する。このようにすれば、ルータ100において、経路制御に用いるRAM102などの領域を節約できる。また、ルータ100において、経路選択用の指標を評価するための演算コストを軽減できる。
特に、ネットワーク20側の責任でxTRを設けるとなると、コアネットワーク10などの大規模なネットワークに対応したものを用意するのが難しいこともある。例えば、大規模なネットワークに対応した比較的処理能力の高いルータは高額な場合もあるからである。第2の実施の形態によれば、ルータ100の処理能力やRAM102の容量が比較的低くても、求める処理性能を達成できる可能性が高まる。すなわち、ルータ100に求められる処理能力を抑えられ、コスト面でも有利である。
また、LISPにおいて、ETRのアドレス解決とともにNext Hopルータを選択できる。このため、Next Hopルータを選択するための専用のパケットを送るよりも効率的にNext Hopルータの選択を行える。
[第3の実施の形態]
以下、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第2の実施の形態では、サーバ400は、ルータ200,200aに対してRLOC応答指示メッセージ52,52aを送信するものとした。一方、第3の実施の形態では、サーバ400は、ETRに対してRLOC応答指示メッセージを送信することで、ITRがNext Hopルータを選択できるようにする。
ここで、第3の実施の形態の情報処理システムは、図2で示した第2の実施の形態の情報処理システムと同様である。第3の実施の形態のハードウェア例およびソフトウェア例は、図3〜6で示した第2の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第3の実施の形態における各装置を第2の実施の形態と同じ名称・符号を用いて指し示す。
ただし、第3の実施の形態では、管理部420がETRとして機能するルータ300に対してRLOC応答指示メッセージを送信する点が第2の実施の形態と異なる。また、ルータ200がRLOC処理部222をもたなくてよい点が第2の実施の形態と異なる(ルータ200aも同様)。更に、ITRとして機能するルータ100のRLOC処理部122は、ルータ300から転送されてきたRLOC応答メッセージに基づいてNext Hopルータを選択する点が第2の実施の形態と異なる。
図19は、第3の実施の形態のETRのソフトウェア例を示す図である。ルータ300は、記憶部310および経路制御部320を有する。記憶部310は、ルータ300が備えるRAMの記憶領域を用いて実現されてもよい。経路制御部320は、ルータ300が備えるRAMやROMに格納されたプログラムをルータ300が備えるプロセッサが実行することで実現されてもよい。ただし、経路制御部320はASICやFPGAなどの電子回路で実現されてもよい。
記憶部310は、経路制御部320の処理に用いられるデータを記憶する。例えば、記憶部310は、ルータ300がITRとして機能する場合に用いられる各種の情報を記憶する。例えば、記憶部310は、記憶部110と同様に隣接GW管理テーブル、ルーティングテーブルおよびRLOCキャッシュテーブルを記憶する。
経路制御部320は、パケット転送部321およびRLOC処理部322を有する。パケット転送部321は、記憶部310に記憶されたルーティングテーブルに基づいて、パケットの転送を行う。
例えば、パケット転送部321は、ルータ200bから受信したカプセル化パケットのカプセル化をLISPの方法により解除して、ネットワーク30に送信する。また、例えば、パケット転送部321は、ネットワーク30から受信したパケットをLISPの方法によりカプセル化してルータ200bに送信する。
RLOC処理部322は、サーバ400からRLOC応答指示メッセージを受信する。RLOC処理部322は、RLOC応答指示メッセージに基づいて、ルータ100が備える各インタフェース宛のRLOC応答メッセージを生成する。すなわち、ルータ100が備えるインタフェースの数だけRLOC応答メッセージを生成することになる。このとき、RLOC処理部322は、各RLOC応答メッセージに同一のTTLを含める。RLOC処理部322は、各RLOC応答メッセージを送信する。
図20は、第3の実施の形態の隣接GW管理テーブルの例を示す図である。隣接GW管理テーブル111aは、隣接GW管理テーブル111に代えて、記憶部110に記憶される。隣接GW管理テーブル111aは、インタフェース、IF(InterFace)アドレスおよび隣接GWアドレスの項目を含む。インタフェースの項目には、ポートを物理的に識別するための識別子が登録される。IFアドレスの項目には、インタフェースに対応するIPアドレスが登録される。隣接GWアドレスの項目には、隣接GWのIPアドレスが登録される。
例えば、隣接GW管理テーブル111aには、インタフェースが“eth0”、IFアドレスが“IF1”、隣接GWアドレスが“GW1”という情報が登録される。これは、ポート105cに対応するインタフェースのIPアドレスが“IF1”であること、ポート105cの先にルータ200が接続されていることを示す。なお、“IF2”は、ポート105dに対応するインタフェースのIPアドレスである。
図21は、第3の実施の形態のRLOC要求メッセージの例を示す図である。RLOC要求メッセージ51aは、RLOC要求メッセージ51に代えて、RLOC処理部122により生成される。RLOC要求メッセージ51aは、DA、SA、Type、EIDおよびITRアドレスリストのフィールドを含む。DA、SA、TypeおよびEIDが示す内容は、RLOC要求メッセージ51で説明した通りである。
ITRアドレスリストは、ITRに設けられており隣接GWと接続されたインタフェースのIPアドレスのリストを示す。例えば、ルータ100がクライアント500からクライアント600を宛先アドレスとするパケットを受信した場合、RLOC要求メッセージ51aは次のようになる。
DAは“SV1”である。サーバ400宛だからである。SAは“IFA”である。ポート105bが送信元だからである。ここで、“IFA”はポート105bに対応するインタフェースのIPアドレスである。Typeは“RLOC要求”である。RLOC要求メッセージだからである。EIDは“IP2”である。ルータ100はクライアント600を宛先としたパケットを転送したいからである。ITRアドレスリストは“IF1,IF2”である。隣接GW管理テーブル111aに隣接GWに対応するIFアドレスとしてこれらが登録されているからである。
図22は、第3の実施の形態のRLOC応答指示メッセージの例を示す図である。RLOC応答指示メッセージ52bは、RLOC応答指示メッセージ52,52aに代えて、管理部420により生成される。RLOC応答指示メッセージ52bは、DA、SA、Type、EID、ETRアドレスおよびITRアドレスリストのフィールドを含む。DA、SA、Type、EIDおよびETRアドレスが示す内容は、RLOC応答指示メッセージ52,52aで説明した通りである。ITRアドレスリストが示す内容は、RLOC要求メッセージ51aで説明した通りである。例えば、RLOC要求メッセージ51aに対してサーバ400が送信するRLOC応答指示メッセージ52bは次のようになる。
DAは“RLOC2”である。ETRであるルータ300宛だからである。SAは“SV1”である。サーバ400が送信元だからである。Typeは“RLOC応答”である。RLOC応答指示メッセージだからである。EIDは“IP2”である。RLOC要求メッセージ51aでEID“IP2”が指定されたからである。ETRアドレスは“RLOC2”である。EID“IP2”に対応するRLOCは“RLOC2”だからである。ITRアドレスリストは“IF1,IF2”である。RLOC要求メッセージ51aでITRアドレスリスト“IF1,IF2”が指定されたからである。
図23は、第3の実施の形態のRLOC応答メッセージの例を示す図である。RLOC応答メッセージ53b,53cは、DA、SA、TTL、Type、EIDおよびETRアドレスのフィールドを含む。DA、SA、Type、EIDおよびETRアドレスが示す内容は、RLOC応答メッセージ53,53aで説明した通りである。TTLは、パケットに設定可能なパラメータの1つである。TTLはルータを1つホップするたびに1単位だけ減算される。TTLが0になると当該パケットは破棄されることになる。なお、IPv6ではTTLに相当する情報をホップリミットと呼ぶことがある。例えば、RLOC応答指示メッセージ52bに対するRLOC応答メッセージ53b,53cは次のようになる。
RLOC応答メッセージ53bにおいて、DAは“IF1”である。ルータ100のポート105c宛だからである。SAは“RLOC2”である。送信元はルータ300だからである。TTLは“20”である。TTLの設定値は予め定められる。Typeは“RLOC応答”である。RLOC応答メッセージだからである。EIDは“IP2”である。RLOC応答指示メッセージ52bでEID“IP2”が指定されたからである。ETRアドレスは“RLOC2”である。RLOC応答指示メッセージ52bでETRアドレス“RLOC2”が指定されたからである。DAが“IF1”なので、RLOC応答メッセージ53bは、ルータ200を経由してルータ100に到達することになる。
RLOC応答メッセージ53cにおいて、DAは“IF2”である。ルータ100のポート105d宛だからである。その他のフィールドの設定内容は、ルータ300から送出された時点においては、RLOC応答メッセージ53bと同様である。ただし、TTLの設定内容は、ルータ100に到達するまでのホップ数に応じて変わり得る。DAが“IF2”なので、RLOC応答メッセージ53cは、ルータ200aを経由してルータ100に到達することになる。
図24は、第3の実施の形態のITRの処理例を示すフローチャートである。以下、図24に示す処理をステップ番号に沿って説明する。第3の実施の形態では、ルータ100が、図15で説明したステップS13〜S15の代わりに、ステップS13a〜S15aを実行する点が異なる。ステップS11,S12,S16〜S19の処理は図15で説明した処理と同様である。そこで、以下ではステップS13a〜S15aを説明する。
(ステップS13a)RLOC処理部122は、記憶部110に記憶された隣接GW管理テーブル111aを参照して、隣接GW(ルータ200,200a)と接続する各インタフェースのIPアドレス(IFアドレス)を取得する。RLOC処理部122は、IFアドレスのリスト(ITRアドレスリスト)を含むRLOC要求メッセージ51aを生成し、サーバ400に送信する。
(ステップS14a)RLOC処理部122は、RLOC要求メッセージ51aに対してルータ200からRLOC応答メッセージ53bを受信する。RLOC処理部122は、RLOC要求メッセージ51aに対してルータ200aからRLOC応答メッセージ53cを受信する。RLOC応答メッセージ53b,53cに含まれるTTLは、RLOC応答メッセージ53b,53cを中継したルータによって変更されている。
(ステップS15a)RLOC処理部122は、RLOC応答メッセージ53b,53cに基づいて、ルータ200,200aのうち最大TTLのものを、Next Hopルータとして選択する。なお、RLOC応答メッセージ53bはポート105cにより受信される。よって、RLOC処理部122はRLOC応答メッセージ53bをルータ200から受信したと把握できる。また、RLOC応答メッセージ53cはポート105dにより受信される。よって、RLOC処理部122はRLOC応答メッセージ53cをルータ200aから受信したと把握できる。例えば、RLOC応答メッセージ53bに含まれる(ルータ100到達時の)TTLが“10”であり、RLOC応答メッセージ53cに含まれる(ルータ100到達時の)TTLが“5”であるとする。TTL“10”はTTL“5”よりも大きい。したがって、RLOC応答メッセージ53bに設定されたTTLが最大である。よって、RLOC処理部122は、Next Hopルータとしてルータ200を選択する。そして、処理をステップS16に進める。
このように、ルータ100は、ルータ300から送信されたRLOC応答メッセージ53b,53cに基づいて、ルータ200,200aからルータ300までの距離を示す情報を取得する。
図25は、第3の実施の形態のサーバの処理例を示すフローチャートである。以下、図25に示す処理をステップ番号に沿って説明する。第3の実施の形態では、サーバ400が、図16で説明したステップS23,S24の代わりに、ステップS23a,S24aを実行する点が異なる。ステップS21,S22,S25の処理は図16で説明した処理と同様である。そこで、以下ではステップS23a,S24aを説明する。ただし、ステップS21において管理部420はRLOC要求メッセージ51aを受信している。
(ステップS23a)管理部420は、RLOC管理テーブル411からEID“IP2”に対応するRLOC“RLOC2”を取得する。管理部420は、RLOC要求メッセージ51aから、ルータ100が備える各インタフェースのIPアドレスを取得する。取得された情報に基づいて、管理部420は、RLOC応答指示メッセージ52bを生成する。RLOC応答指示メッセージ52bは、ITRアドレス“RLOC1”およびETRアドレス“RLOC2”を含む。RLOC応答指示メッセージ52bは、ETRであるルータ300宛である。
(ステップS24a)管理部420は、RLOC応答指示メッセージ52bをルータ300に送信する。
このように、サーバ400は、ETRであるルータ300宛にRLOC応答指示メッセージ52bを生成し、送信する。
図26は、第3の実施の形態のETRの処理例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
(ステップS41)RLOC処理部322は、RLOC応答指示メッセージ52bをサーバ400から受信する。
(ステップS42)RLOC処理部322は、RLOC応答指示メッセージ52bからIFアドレス“IF1,IF2”を取得する。RLOC処理部322は、RLOC応答メッセージ53b,53cを生成する。RLOC応答メッセージ53bは、ルータ100のポート105cに対応するインタフェース宛である。RLOC応答メッセージ53cは、ルータ100のポート105dに対応するインタフェース宛である。RLOC応答メッセージ53b,53cは、所定のTTL(例えば、“20”など)およびETRアドレス“RLOC2”を含む。
(ステップS43)RLOC処理部322は、RLOC応答メッセージ53b,53cを送信する。RLOC応答メッセージ53bは、ルータ200を介してルータ100に到達する。RLOC応答メッセージ53cは、ルータ200aを介してルータ100に到達する。
このように、ルータ300は、RLOC応答指示メッセージ52bに対して、ルータ100のインタフェースごとにRLOC応答メッセージ53b,53cを生成し、送信する。ルータ200はRLOC応答メッセージ53bを通常の中継処理によりルータ100に転送すればよい。ルータ200aはRLOC応答メッセージ53cを通常の中継処理によりルータ100に転送すればよい。
図27は、第3の実施の形態の処理例を示すシーケンスである。以下、図27に示す処理をステップ番号に沿って説明する。
ルータ100はクライアント500からクライアント600宛のパケット50を受信する(ステップST111)。ルータ100はRLOCキャッシュテーブル113にクライアント600のEID“IP2”が未登録であると、RLOC要求メッセージ51aを生成する。ルータ100は、RLOC要求メッセージ51aをサーバ400に送信する(ステップST112)。
サーバ400は、RLOC要求メッセージ51aを受信すると、RLOC管理テーブル411を参照して、EID“IP2”のエントリを検索し、対応するRLOC“RLOC2”を取得する。サーバ400は、RLOC応答指示メッセージ52bを生成する。サーバ400は、RLOC応答指示メッセージ52bをルータ300に送信する(ステップST113)。
ルータ300は、RLOC応答指示メッセージ52bを受信する。ルータ300は、RLOC応答指示メッセージ52bからIFアドレス“IF1,IF2”を取得し、RLOC応答メッセージ53b,53cを生成する。ルータ300は、RLOC応答メッセージ53bを送信する。RLOC応答メッセージ53bに含まれるTTLはルータ300とルータ200との間に介在する各ルータによって1単位ずつ減算されることになる。RLOC応答メッセージ53bは、ルータ200を経由してルータ100に到達する(ステップS114)。ルータ300は、RLOC応答メッセージ53cを送信する。RLOC応答メッセージ53cに含まれるTTLはルータ300とルータ200aとの間に介在する各ルータによって1単位ずつ減算されることになる。RLOC応答メッセージ53cは、ルータ200aを経由してルータ100に到達する(ステップST115)。ステップST114,115は同時でもよいし、順序が入れ替わってもよい。
ルータ100は、RLOC応答メッセージ53b,53cを受信すると、TTLを比較する。RLOC応答メッセージ53bに含まれるTTLは“10”とする。RLOC応答メッセージ53cに含まれるTTLは“5”とする。ルータ100はTTLが最大であるルータ200をNext Hopルータとして選択する。ルータ100は、選択結果に基づいて、ルーティングテーブル112およびRLOCキャッシュテーブル113に新たなエントリを登録する。ルータ100は、パケット50をカプセル化してカプセル化パケット60を生成し、ルータ300へ送信する。この場合、送出ポートは、ポート105cである。カプセル化パケット60は、ルータ200を経由してルータ300に到達することになる(ステップST116)。
ルータ300は、カプセル化パケット60を受信すると、カプセル化を解除しパケット50を得る。ルータ300は、パケット50をクライアント600へ向けて転送する(ステップST117)。
このようにして、ルータ100は、ルータ200,200aそれぞれからルータ300が送信したRLOC応答メッセージ53b,53cを受信する。RLOC応答メッセージ53b,53cには、TTLが含まれる。ルータ100は、当該TTLに基づいてルータ300とルータ200,200aとの間に介在するルータの数を評価できる。すなわち、ルータ100は、ルータ200,200aからETRであるルータ300までの距離を示す情報を取得する。そして、当該情報に基づいてNext Hopルータを選択する。
このため、ルータ100は、第2の実施の形態と同様に、コアネットワーク10のEGP(例えば、BGP)に参加しなくてよい。したがって、ルータ100において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ100において経路制御に用いるRAM102などの領域を節約できる。また、ルータ100において、経路選択用の指標を評価するための演算コストを軽減できる。更に、第2の実施の形態と同様に、ルータ100に求められる処理能力を抑えられ、コスト面でも有利である。
また、第3の実施の形態によれば、ルータ200,200aは、ルータ100に距離を示す情報を提供する際に、当該距離の評価を行わなくてもよい。よって、ルータ200,200aの負担を軽減できる。
また、第3の実施の形態によれば、ルータ200,200a,200bは、通常のパケット転送を行えばよい。このため、ルータ200,200a,200bとして既存のルータを流用できるという利点もある。
[第4の実施の形態]
以下、第4の実施の形態を説明する。前述の第2,第3の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第3の実施の形態では、ルータ100はITRアドレスリストを含む1つのRLOC要求メッセージ51aをサーバ400に送信するものとした。また、サーバ400はITRアドレスリストを含む1つのRLOC応答指示メッセージ52bをルータ300に送信するものとした。一方、ルータ100はIFアドレスごとの複数のRLOC要求メッセージをサーバ400に送信してもよい。また、サーバ400はIFアドレスごとの複数のRLOC応答指示メッセージをルータ300に送信してもよい。第4の実施の形態では、その機能を説明する。
ここで、第4の実施の形態の情報処理システムは、第3の実施の形態の情報処理システムと同様である。第4の実施の形態のハードウェア例およびソフトウェア例は、第3の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第4の実施の形態における各装置を第3の実施の形態と同じ名称・符号を用いて指し示す。
ただし、第4の実施の形態では、RLOC要求メッセージおよびRLOC応答指示メッセージが第3の実施の形態と異なる。
図28は、第4の実施の形態のRLOC要求メッセージの例を示す図である。RLOC要求メッセージ51b,51cは、RLOC要求メッセージ51aに代えて、RLOC処理部122により生成される。RLOC要求メッセージ51b,51cは、DA、SA、Type、EIDおよびITRアドレスのフィールドを含む。DA、SA、TypeおよびEIDが示す内容は、RLOC要求メッセージ51で説明した通りである。
ITRアドレスは、ITRが備える隣接GWと接続された1つのインタフェースのIPアドレスを示す。例えば、ルータ100がクライアント500からクライアント600を宛先アドレスとするパケットを受信した場合、RLOC要求メッセージ51b,51cは次のようになる。
RLOC要求メッセージ51bにおいて、DAは“SV1”である。サーバ400宛だからである。SAは“IFA”である。ポート105bが送信元だからである。Typeは“RLOC要求”である。RLOC要求メッセージだからである。EIDは“IP2”である。ルータ100はクライアント600を宛先としたパケットを転送したいからである。ITRアドレスは“IF1”である。隣接GWのうちの1つに対応するIFアドレスとして“IF1”が隣接GW管理テーブル111aに登録されているからである。
RLOC要求メッセージ51cにおいて、ITRアドレスは“IF2”である。隣接GWのうちの他の1つに対応するIFアドレスとして“IF2”が隣接GW管理テーブル111aに登録されているからである。その他のフィールドの設定内容は、RLOC要求メッセージ51bと同様である。
図29は、第4の実施の形態のRLOC応答指示メッセージの例を示す図である。RLOC応答指示メッセージ52c,52dは、RLOC応答指示メッセージ52bに代えて、管理部420により生成される。RLOC応答指示メッセージ52c,52dは、DA、SA、Type、EID、ETRアドレスおよびITRアドレスのフィールドを含む。DA、SA、Type、EIDおよびETRアドレスが示す内容は、RLOC応答指示メッセージ52,52aで説明した通りである。ITRアドレスが示す内容は、RLOC要求メッセージ51b,51cで説明した通りである。例えば、RLOC要求メッセージ51b,51cに対してサーバ400が送信するRLOC応答指示メッセージ52c,52dは次のようになる。
RLOC応答指示メッセージ52cにおいて、DAは“RLOC2”である。ETRであるルータ300宛だからである。SAは“SV1”である。サーバ400が送信元だからである。Typeは“RLOC応答”である。RLOC応答指示メッセージだからである。EIDは“IP2”である。RLOC要求メッセージ51bでEID“IP2”が指定されたからである。ETRアドレスは“RLOC2”である。EID“IP2”に対応するRLOCは“RLOC2”だからである。ITRアドレスリストは“IF1”である。RLOC要求メッセージ51bでITRアドレス“IF1”が指定されたからである。
RLOC応答指示メッセージ52dにおいて、ITRアドレスは“IF2”である。RLOC要求メッセージ51cでITRアドレス“IF2”が指定されたからである。その他のフィールドの設定内容は、RLOC応答指示メッセージ52cと同様である。
ここで、第4の実施の形態の処理手順は、図24〜26で説明した第3の実施の形態の処理手順と同様である。このため、これらの処理手順の説明を省略する。ただし、ステップS13aにおいて、RLOC処理部122は、RLOC要求メッセージ51aに代えて、RLOC要求メッセージ51b,51cをサーバ400に送信する。また、ステップS23a,S24aにおいて、管理部420は、RLOC応答指示メッセージ52bに代えて、RLOC応答指示メッセージ52c,52dを生成し、ルータ300に送信する。その他のステップの処理は、RLOC要求メッセージ51b,51cおよびRLOC応答指示メッセージ52c,52dに設定された情報に基づいて行える。
図30は、第4の実施の形態の処理例を示すシーケンスである。以下、図30に示す処理をステップ番号に沿って説明する。
ルータ100はクライアント500からクライアント600宛のパケット50を受信する(ステップST121)。ルータ100はRLOCキャッシュテーブル113にクライアント600のEID“IP2”が未登録であると、RLOC要求メッセージ51b,51cを生成する。ルータ100は、RLOC要求メッセージ51bをサーバ400に送信する(ステップST122)。ルータ100は、RLOC要求メッセージ51cをサーバ400に送信する(ステップST123)。ステップST122,ST123は同時でもよいし、順序が入れ替わってもよい。
サーバ400は、RLOC要求メッセージ51b,51cを受信すると、RLOC管理テーブル411を参照して、EID“IP2”のエントリを検索し、対応するRLOC“RLOC2”を取得する。サーバ400は、RLOC応答指示メッセージ52c,52dを生成する。サーバ400は、RLOC応答指示メッセージ52cをルータ300に送信する(ステップST124)。サーバ400は、RLOC応答指示メッセージ52dをルータ300に送信する(ステップST125)。ステップST124,ST125は同時でもよいし、順番が入れ替わってもよい。
ルータ300は、RLOC応答指示メッセージ52cを受信すると、RLOC応答指示メッセージ52cからIFアドレス“IF1”を取得し、RLOC応答メッセージ53bを生成する。ルータ300は、RLOC応答メッセージ53bを送信する。RLOC応答メッセージ53bに含まれるTTLはルータ300とルータ200との間に介在する各ルータによって1単位ずつ減算されることになる。RLOC応答メッセージ53bは、ルータ200を経由してルータ100に到達する(ステップST126)。
ルータ300は、RLOC応答指示メッセージ52dを受信すると、RLOC応答指示メッセージ52dからIFアドレス“IF2”を取得し、RLOC応答メッセージ53cを生成する。ルータ300は、RLOC応答メッセージ53cを送信する。RLOC応答メッセージ53cに含まれるTTLはルータ300とルータ200aとの間に介在する各ルータによって1単位ずつ減算されることになる。RLOC応答メッセージ53cは、ルータ200aを経由してルータ100に到達する(ステップST127)。ステップST126,ST127は同時でもよいし、順番が入れ替わってもよい。
ルータ100は、RLOC応答メッセージ53b,53cを受信すると、TTLを比較する。RLOC応答メッセージ53bに含まれるTTLは“10”とする。RLOC応答メッセージ53cに含まれるTTLは“5”とする。ルータ100はTTLが最大であるルータ200をNext Hopルータとして選択する。ルータ100は、選択結果に基づいて、ルーティングテーブル112およびRLOCキャッシュテーブル113に新たなエントリを登録する。ルータ100は、パケット50をカプセル化してカプセル化パケット60を生成し、ルータ300へ送信する。この場合、送出ポートは、ポート105cである。カプセル化パケット60は、ルータ200を経由してルータ300に到達することになる(ステップST128)。
ルータ300は、カプセル化パケット60を受信すると、カプセル化を解除しパケット50を得る。ルータ300は、パケット50をクライアント600へ向けて転送する(ステップST129)。
このようにして、ルータ100は、ルータ200,200aそれぞれからルータ300が送信したRLOC応答メッセージ53b,53cを受信する。RLOC応答メッセージ53b,53cには、TTLが含まれる。ルータ100は、当該TTLに基づいてルータ300とルータ200,200aとの間に介在するルータの数を評価できる。すなわち、ルータ100は、ルータ200,200aからETRであるルータ300までの距離を示す情報を取得する。そして、当該情報に基づいてNext Hopルータを選択する。
このため、ルータ100は、第2の実施の形態と同様に、コアネットワーク10のEGP(例えば、BGP)に参加しなくてよい。したがって、ルータ100において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ100において経路制御に用いるRAM102などの領域を節約できる。また、ルータ100において、経路選択用の指標を評価するための演算コストを軽減できる。
更に、第2の実施の形態と同様に、ルータ100に求められる処理能力を抑えられ、コスト面でも有利である。また、第4の実施の形態によれば、第3の実施の形態と同様に、ルータ200,200a,200bは、通常のパケット転送を行えばよい。このため、ルータ200,200a,200bとして既存のルータを流用できるという利点もある。
また、第4の実施の形態の制御は、LISPで規定されたメッセージフォーマットを用いて実現できる。よって、ルータ100,300の機能の実装において、改良の作業コストが比較的小さくて済むという利点もある。
[第5の実施の形態]
以下、第5の実施の形態を説明する。前述の第2〜第4の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第3の実施の形態では、ルータ100はITRアドレスリストを含むRLOC要求メッセージ51aをサーバ400に送信するものとした。一方、RLOC要求メッセージにおいて、ITRであるルータ100の1つのIPアドレスを指定してもよい。第5の実施の形態では、その機能を説明する。
ここで、第5の実施の形態の情報処理システムは、第3の実施の形態の情報処理システムと同様である。第5の実施の形態のハードウェア例およびソフトウェア例は、第3の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第5の実施の形態における各装置を第3の実施の形態と同じ名称・符号を用いて指し示す。
ただし、第5の実施の形態では、RLOC要求メッセージ、RLOC応答指示メッセージおよびRLOC応答メッセージが第3の実施の形態と異なる。
図31は、第5の実施の形態のRLOC要求メッセージの例を示す図である。RLOC要求メッセージ51dは、RLOC要求メッセージ51aに代えて、RLOC処理部122により生成される。RLOC要求メッセージ51dは、DA、SA、Type、EIDおよびITRアドレスのフィールドを含む。DA、SA、Type、EIDおよびITRアドレスが示す内容は、RLOC要求メッセージ51で説明した通りである。例えば、ルータ100がクライアント500からクライアント600を宛先アドレスとするパケットを受信した場合、RLOC要求メッセージ51dは次のようになる。
DAは“SV1”である。サーバ400宛だからである。SAは“RLOC1”である。ルータ100が送信元だからである。Typeは“RLOC要求”である。RLOC要求メッセージだからである。EIDは“IP2”である。ルータ100はクライアント600を宛先としたパケットを転送したいからである。ITRアドレスは“RLOC1”である。要求元はルータ100だからである。
図32は、第5の実施の形態のRLOC応答指示メッセージの例を示す図である。RLOC応答指示メッセージ52eは、RLOC応答指示メッセージ52bに代えて、管理部420により生成される。RLOC応答指示メッセージ52eは、DA、SA、Type、EID、ETRアドレスおよびITRアドレスのフィールドを含む。DA、SA、Type、EID、ETRアドレスおよびITRアドレスが示す内容は、RLOC応答指示メッセージ52,52aで説明した通りである。例えば、RLOC要求メッセージ51dに対してサーバ400が送信するRLOC応答指示メッセージ52eは次のようになる。
DAは“RLOC2”である。ETRであるルータ300宛だからである。SAは“SV1”である。サーバ400が送信元だからである。Typeは“RLOC応答”である。RLOC応答指示メッセージだからである。EIDは“IP2”である。RLOC要求メッセージ51dでEID“IP2”が指定されたからである。ETRアドレスは“RLOC2”である。EID“IP2”に対応するRLOCは“RLOC2”だからである。ITRアドレスは“RLOC1”である。要求元はルータ100だからである。
図33は、第5の実施の形態のRLOC応答メッセージの例を示す図である。RLOC応答メッセージ53dは、RLOC応答メッセージ53b,53cに代えて、管理部420により生成される。RLOC応答メッセージ53dは、DA、SA、Type、EIDおよびETRアドレスのフィールド含む。DA、SA、Type、EIDおよびETRアドレスが示す内容は、RLOC応答メッセージ53,53aで説明した通りである。例えば、RLOC応答指示メッセージ52eに対してルータ300が送信するRLOC応答メッセージ53dは次のようになる。
DAは“RLOC1”である。ルータ100宛だからである。SAは“RLOC2”である。送信元はルータ300だからである。Typeは“RLOC応答”である。RLOC応答メッセージだからである。EIDは“IP2”である。RLOC応答指示メッセージ52eでEID“IP2”が指定されたからである。ETRアドレスは“RLOC2”である。RLOC応答指示メッセージ52eでETRアドレス“RLOC2”を指定されたからである。
RLOC応答メッセージ53dは、ルータ200,200aの何れか一方を経由してルータ100に到達することになる。
図34は、第5の実施の形態のITRの処理例を示すフローチャートである。以下、図34に示す処理をステップ番号に沿って説明する。第5の実施の形態では、ルータ100が、図24で説明したステップS13a〜S15aの代わりに、ステップS13b〜S15bを実行する点が異なる。ステップS11,S12,S16〜S19の処理は図15で説明した処理と同様である。そこで、以下ではステップS13b〜S15bを説明する。
(ステップS13b)RLOC処理部122は、RLOC要求メッセージ51dを生成し、サーバ400に送信する。
(ステップS14b)RLOC処理部122は、RLOC要求メッセージ51dに対してルータ200,200aの何れかからRLOC応答メッセージ53dを受信する。
(ステップS15b)RLOC処理部122は、RLOC応答メッセージ53dを受信した方のポートに接続されたルータをNext Hopルータとして選択する。例えば、ポート105cからRLOC応答メッセージ53dを受信した場合(ルータ200からRLOC応答メッセージ53dを受信した場合)には、ルータ200をNext Hopルータとして選択する。そして、処理をステップS16に進める。
このように、ルータ100は、RLOC要求メッセージ51dに対して、RLOC応答メッセージ53dを受信したポートに接続された隣接GWをNext Hopルータとして選択する。ステップS16では、次のようにしてルーティングテーブル112へのエントリ追加を行える。具体的には、隣接GW管理テーブル111a(または、隣接GW管理テーブル111)によれば、ポート105cに対応する隣接GWアドレスは“GW1”である。よって、RLOC2のネットワークアドレス“N−RLOC2”とNext Hopアドレス“GW1”とを対応付けたエントリをルーティングテーブル112に追加し得る。
図35は、第5の実施の形態のサーバの処理例を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。第5の実施の形態では、サーバ400が、図25で説明したステップS23a,S24aの代わりに、ステップS23b,S24bを実行する点が異なる。ステップS21,S22,S25の処理は図16で説明した処理と同様である。そこで、以下ではステップS23b,24bを説明する。ただし、ステップS21において管理部420はRLOC要求メッセージ51dを受信している。
(ステップS23b)管理部420は、RLOC管理テーブル411からEID“IP2”に対応するRLOC“RLOC2”を取得する。管理部420は、RLOC要求メッセージ51dから、ITRアドレス“RLOC1”を取得する。取得された情報に基づいて、管理部420は、RLOC応答指示メッセージ52eを生成する。RLOC応答指示メッセージ52eは、ITRアドレス“RLOC1”およびETRアドレス“RLOC2”を含む。RLOC応答指示メッセージ52eは、ルータ300宛である。
(ステップS24b)管理部420は、RLOC応答指示メッセージ52eをルータ300に送信する。
図36は、第5の実施の形態のETRの処理例を示すフローチャートである。以下、図36に示す処理をステップ番号に沿って説明する。
(ステップS41a)RLOC処理部322は、RLOC応答指示メッセージ52eをサーバ400から受信する。
(ステップS42a)RLOC処理部322は、RLOC応答指示メッセージ52eからITRアドレス“RLOC1”を取得する。RLOC処理部322は、RLOC応答メッセージ53dを生成する。RLOC応答メッセージ53dは、ルータ100宛である。
(ステップS43a)RLOC処理部322は、RLOC応答メッセージ53dをルータ100に送信する。RLOC応答メッセージ53dは、ルータ200またはルータ200aの何れか一方を経由してルータ100に到達する。
このように、ルータ300は、RLOC応答指示メッセージ52eに対して、RLOC応答メッセージ53dを生成し、ルータ100に送信する。RLOC応答メッセージ53dは、コアネットワーク10内に張り巡らされたパケット転送用の何れかの経路を通ってルータ100に到達する。その際、RLOC応答メッセージ53dは、ルータ200,200aの何れか一方を経由することになる。
図37は、第5の実施の形態の処理例を示すシーケンスである。以下、図37に示す処理をステップ番号に沿って説明する。
ルータ100はクライアント500からクライアント600宛のパケット50を受信する(ステップST131)。ルータ100はRLOCキャッシュテーブル113にクライアント600のEID“IP2”が未登録であると、RLOC要求メッセージ51dを生成する。ルータ100は、RLOC要求メッセージ51dをサーバ400に送信する(ステップST132)。
サーバ400は、RLOC要求メッセージ51dを受信すると、RLOC管理テーブル411を参照して、EID“IP2”のエントリを検索し、対応するRLOC“RLOC2”を取得する。サーバ400は、RLOC応答指示メッセージ52eを生成する。サーバ400は、RLOC応答指示メッセージ52eをルータ300に送信する(ステップST133)。
ルータ300は、RLOC応答指示メッセージ52eを受信する。ルータ300は、RLOC応答指示メッセージ52eからITRアドレス“RLOC1”を取得し、RLOC応答メッセージ53dを生成する。ルータ300は、RLOC応答メッセージ53dを送信する。RLOC応答メッセージ53dは、ルータ200を経由してルータ100に到達する(ステップST134)。
ルータ100は、RLOC応答メッセージ53dを受信すると、受信したポート105cに対応するルータ200をNext Hopルータとして選択する。ルータ100は、選択結果に基づいて、ルーティングテーブル112およびRLOCキャッシュテーブル113に新たなエントリを登録する。ルータ100は、パケット50をカプセル化してカプセル化パケット60を生成し、ルータ300へ送信する。この場合、送出ポートは、ポート105cである。カプセル化パケット60は、ルータ200を経由してルータ300に到達することになる(ステップS135)。
ルータ300は、カプセル化パケット60を受信すると、カプセル化を解除しパケット50を得る。ルータ300は、パケット50をクライアント600へ向けて転送する(ステップST136)。
このようにして、ルータ100は、ルータ200,200aの何れかから、RLOC要求メッセージ51dに対するRLOC応答メッセージ53dを受信する。そして、RLOC応答メッセージ53dが受信されたポートに応じてNext Hopルータを選択する。
このため、ルータ100は、第2の実施の形態と同様に、コアネットワーク10のEGP(例えば、BGP)に参加しなくてよい。したがって、ルータ100において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ100において経路制御に用いるRAM102などの領域を節約できる。また、ルータ100において、経路選択用の指標を評価するための演算コストを軽減できる。更に、第2の実施の形態と同様に、ルータ100に求められる処理能力を抑えられ、コスト面でも有利である。
また、第5の実施の形態によれば、第3の実施の形態と同様に、ルータ200,200a,200bは、通常のパケット転送を行えばよい。このため、ルータ200,200a,200bとして既存のルータを流用できるという利点もある。
また、第5の実施の形態の制御は、既存のLISPで規定されたパケット構造を用いて実現できる。よって、ルータ100,300の機能の実装において、改良の作業コストが比較的小さくて済むという利点もある。
また、第5の実施の形態では、ITRの経路選択のためにコアネットワーク10内に流すパケットの数が第2〜第4の実施の形態に比べて少ない。よって、コアネットワーク10の負荷を抑えられるという利点もある。特に、ポート105c,105dに対応するインタフェースのネットワークアドレスが同一である場合がある。各ルータによるルーティングはネットワークアドレスに基づいて行われる。したがって、この場合は1つのRLOC応答メッセージを流せば足りる。仮に複数のRLOC応答メッセージを流したとしても、ポート105c,105dの何れか一方で複数のRLOC応答メッセージが受信されると考えられるからである。
更に、第5の実施の形態の制御は、LISPで規定されたメッセージフォーマットを用いて実現できる。よって、ルータ100,300の機能の実装において、改良の作業コストが比較的小さくて済むという利点もある。
[第6の実施の形態]
以下、第6の実施の形態を説明する。前述の第2〜第5の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
第3の実施の形態では、ルータ300はルータ200bに接続されているものとした。一方、ルータ300がマルチホームで接続されていてもよい。第6の実施の形態では、その場合の制御を説明する。ここで、第6の実施の形態の情報処理システムは、ルータ300がマルチホームで接続されている点が第3の実施の形態と異なる。
図38は、第6の実施の形態の情報処理システムを示す図である。ルータ300は、ルータ200bに加えて、ルータ200cにも接続されている。ルータ200cは、AS15に接続されている。AS15は、コアネットワーク10に属している。AS15は、AS12と接続されている。各AS間には1以上の他のASが介在し得る。
なお、第6の実施の形態のハードウェア例およびソフトウェア例は、第3の実施の形態のハードウェア例およびソフトウェア例と同様である。このため、第6の実施の形態における各装置を第3の実施の形態と同じ名称・符号を用いて指し示す。更に、ルータ200cは、ルータ200と同様のハードウェアによって実現できる。
この場合、ルータ300は、ルータ100のIFアドレスごと、ルータ300の隣接GW(ルータ200b,200c)ごとにRLOC応答メッセージを送信してもよい。具体的には次の通りである。
図39は、第6の実施の形態の処理例を示すシーケンスである。以下、図39に示す処理をステップ番号に沿って説明する。
ルータ100はクライアント500からクライアント600宛のパケット50を受信する(ステップST141)。ルータ100はRLOCキャッシュテーブル113にクライアント600のEID“IP2”が未登録であると、RLOC要求メッセージ51aを生成する。ルータ100は、RLOC要求メッセージ51aをサーバ400に送信する(ステップST142)。
サーバ400は、RLOC要求メッセージ51aを受信すると、RLOC管理テーブル411を参照して、EID“IP2”のエントリを検索し、対応するRLOC“RLOC2”を取得する。サーバ400は、RLOC応答指示メッセージ52bを生成する。サーバ400は、RLOC応答指示メッセージ52bをルータ300に送信する。例えば、RLOC応答指示メッセージ52bはルータ200bを介してルータ300に到達する(ステップST143)。ただし、ルータ100とサーバ400との間の経路と同様に、ルータ300とサーバ400との間に個別の経路が設けられてもよい。
ルータ300は、RLOC応答指示メッセージ52bを受信する。ルータ300は、RLOC応答指示メッセージ52bからIFアドレス“IF1,IF2”を取得する。ルータ300は、IFアドレス“IF1,IF2”ごと、ルータ200b,200cごとの計4つのRLOC応答メッセージを生成する。すなわち、図23で説明したRLOC応答メッセージ53bを2つ、RLOC応答メッセージ53cを2つの計4つである(TTLは同一値)。
ルータ300は、第1のRLOC応答メッセージ53bをルータ200bが接続されたポートから送出する。第1のRLOC応答メッセージ53bは、ルータ200b,200を経由してルータ100に到達する(ステップST144)。ルータ300は、第1のRLOC応答メッセージ53cをルータ200bが接続されたポートから送出する。第1のRLOC応答メッセージ53cは、ルータ200b,200aを経由してルータ100に到達する(ステップST145)。
ルータ300は、第2のRLOC応答メッセージ53bをルータ200cが接続されたポートから送出する。第2のRLOC応答メッセージ53bは、ルータ200c,200を経由してルータ100に到達する(ステップST146)。ルータ300は、第2のRLOC応答メッセージ53cをルータ200cが接続されたポートから送出する。第2のRLOC応答メッセージ53cは、ルータ200c,200aを経由してルータ100に到達する(ステップST147)。ただし、ステップST144〜ST147は、同時でもよいし、任意の順に入れ替えてもよい。
ルータ100は、第1,第2のRLOC応答メッセージ53b、および、第1,第2のRLOC応答メッセージ53c(計4つのRLOC応答メッセージ)を受信すると、TTLを比較する。第1のRLOC応答メッセージ53bに含まれるTTLは“10”とする。第1のRLOC応答メッセージ53cに含まれるTTLは“5”とする。第2のRLOC応答メッセージ53bに含まれるTTLは“8”とする。第2のRLOC応答メッセージ53cに含まれるTTLは“12”とする。ルータ100はTTLが最大であるルータ200aをNext Hopルータとして選択する。ルータ100は、選択結果に基づいて、ルーティングテーブル112およびRLOCキャッシュテーブル113に新たなエントリを登録する。ルータ100は、パケット50をカプセル化してカプセル化パケット60を生成し、ルータ300へ送信する。この場合、送出ポートは、ポート105dである。カプセル化パケット60は、ルータ200a,200cを経由してルータ300に到達することになる(ステップST148)。
ルータ300は、カプセル化パケット60を受信すると、カプセル化を解除しパケット50を得る。ルータ300は、パケット50をクライアント600へ向けて転送する(ステップST149)。
このようにして、ルータ100は、ルータ200,200aそれぞれから計4つのRLOC応答メッセージを受信する。各RLOC応答メッセージには、TTLが含まれる。ルータ100は、当該TTLに基づいて、次の(1)〜(4)の経路の距離を評価できる。(1)ルータ200とルータ200bとを結ぶ経路。(2)ルータ200aとルータ200bとを結ぶ経路。(3)ルータ200とルータ200cとを結ぶ経路。(4)ルータ200aとルータ200cとを結ぶ経路。すなわち、ルータ100は、各経路の距離を示す情報を取得する。そして、当該情報に基づいてNext Hopルータを選択する。
このため、ルータ100は、第2の実施の形態と同様に、コアネットワーク10のEGP(例えば、BGP)に参加しなくてよい。したがって、ルータ100において、コアネットワーク経路情報を収集しなくてよい。よって、例えば、ルータ100において経路制御に用いるRAM102などの領域を節約できる。また、ルータ100において、経路選択用の指標を評価するための演算コストを軽減できる。更に、第2の実施の形態と同様に、ルータ100に求められる処理能力を抑えられ、コスト面でも有利である。
また、第6の実施の形態によれば、第3の実施の形態と同様に、ルータ200,200a,200b,200cは、通常のパケット転送を行えばよい。このため、ルータ200,200a,200b,200cとして既存のルータを流用できるという利点もある。
ここで、サーバ400がコアネットワーク経路情報を収集して、ITRであるルータ100にNext Hopルータを提供する方法も考えられる。しかし、この場合は、サーバ400がコアネットワーク経路情報を保持しなければならない。一方、第2〜第6の実施の形態によれば、コアネットワーク経路情報を新たに別の装置に保持させずに済む。したがって、第2〜第6の実施の形態は当該方法に対しても有利である。
また、第2〜第6の実施の形態で説明したルータ100,300の機能はプロセッサとRAMと複数の通信インタフェースとを備えたコンピュータによって実現されてもよい。例えば、RAMに記憶されたプログラムをプロセッサが実行することで、上記の機能を実現することもできる。当該プログラムは、コンピュータ読み取り可能な可搬型の記録媒体に記録しておくことができる。当該プログラムを流通させるには、例えば、そのプログラムが記録された記録媒体を配布する。または、そのプログラムをサーバコンピュータに格納しておき、ネットワーク経由でコンピュータに転送してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたはネットワークから取得したプログラムを、自装置の不揮発性の記憶媒体に格納する。そして、当該不揮発性の記憶媒体からプログラムを読み取り実行する。ただし、コンピュータは、取得したプログラムを、不揮発性の記憶媒体に格納せずに逐次、RAMに展開して実行することも可能である。
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1,2,2a,2b,3 中継装置
1a 通信部
1b 制御部
3a 受信部
3b 送信部
4 情報処理装置
4a 受信部
4b 制御部
5,6 ノード
7,8,9 ネットワーク
D1,D2,D3 距離を示す情報
P1,P2,P3 ポート

Claims (20)

  1. 第1のネットワークに接続された第2のネットワークへ宛てたデータの転送先の候補であり前記第1のネットワークに属する複数の第1の中継装置と通信する通信部と、
    前記データの転送先を選択する際に、前記複数の第1の中継装置それぞれから前記第1および前記第2のネットワークに接続された第2の中継装置までの距離を示す指標を、前記複数の第1の中継装置から取得し、当該指標に基づいて前記複数の第1の中継装置の中から前記データの転送先を選択する制御部と、
    を有する中継装置。
  2. 前記制御部は、前記第2の中継装置の前記第1のネットワークにおけるアドレスを解決するための問い合わせを行い、当該問い合わせに対する応答として、前記複数の第1の中継装置から前記第2の中継装置までの距離を示す指標を取得する、請求項1記載の中継装置。
  3. 前記制御部は、前記複数の第1の中継装置それぞれから前記第2の中継装置までの最短の距離を示す指標を取得する、請求項1または2記載の中継装置。
  4. 前記制御部は、前記第2の中継装置までの距離を示す指標として、前記第2の中継装置により送信され、前記複数の第1の中継装置それぞれを介して受信された複数のIP(Internet Protocol)パケットに含まれるTTL(Time To Live)またはホップリミットを取得する、請求項1または2記載の中継装置。
  5. 前記制御部は、前記複数の第1の中継装置それぞれのアドレスまたは自身に備えられており前記複数の第1の中継装置と接続された複数のインタフェースそれぞれのアドレスを前記問い合わせに含めることで、前記複数の第1の中継装置それぞれに前記第2の中継装置までの距離を示す指標を提供させるように問い合わせ先の装置に制御させる、請求項2記載の中継装置。
  6. 前記通信部は、前記第1のネットワークの経路情報を受信しても破棄する、請求項1乃至5の何れか1項に記載の中継装置。
  7. 第1および第2のネットワークに接続された第1の中継装置が前記第2のネットワークに接続された第3のネットワークへ宛てたデータの転送先を選択する際に、前記第2および前記第3のネットワークに接続された第2の中継装置の前記第2のネットワークにおけるアドレスを解決するための問い合わせを前記第1の中継装置から受け付ける受信部と、
    前記問い合わせに応じて、前記第3のネットワークへ宛てたデータの前記第1の中継装置からの転送先の候補であり前記第2のネットワークに属する複数の第3の中継装置それぞれから前記第2の中継装置までの距離を示す指標を、前記複数の第3の中継装置から前記第1の中継装置へ提供させる制御部と、
    を有する情報処理装置。
  8. 前記制御部は、前記複数の第3の中継装置それぞれから前記第2の中継装置までの最短の距離を示す指標を前記第1の中継装置へ提供させる、請求項7記載の情報処理装置。
  9. 前記問い合わせは、前記複数の第3の中継装置それぞれのアドレスを含み、
    前記制御部は、前記複数の第3の中継装置それぞれのアドレスに基づいて、前記第2の中継装置までの距離を示す指標を、前記複数の第3の中継装置から前記第1の中継装置へ提供させる、
    請求項7または8記載の情報処理装置。
  10. 前記制御部は、前記第2の中継装置までの距離を示す指標として、前記第2の中継装置により送信され、前記複数の第3の中継装置それぞれを経由して前記第1の中継装置へ到達する複数のIPパケットに含まれるTTLまたはホップリミットを提供させる、請求項7記載の情報処理装置。
  11. 前記問い合わせは、前記第1の中継装置に備えられており前記複数の第3の中継装置と接続された複数のインタフェースそれぞれのアドレスを含み、
    前記制御部は、前記複数のインタフェースそれぞれのアドレスに基づいて前記複数のIPパケットを送信するように前記第2の中継装置に指示する、
    請求項10記載の情報処理装置。
  12. 前記制御部は、前記第2の中継装置までの距離を示す指標に加えて、前記第2の中継装置の前記第2のネットワークにおけるアドレスを、前記複数の第3の中継装置から前記第1の中継装置へ提供させる、請求項7乃至11の何れか1項に記載の情報処理装置。
  13. 第1および第2のネットワークに接続された第1の中継装置からの、前記第2のネットワークに接続された第3のネットワークへ宛てたデータの転送先となる複数の候補のうちの1つとして用いられる中継装置であって、
    前記第1の中継装置が前記データの転送先を選択する際に、前記第2および第3のネットワークに接続された第2の中継装置までの距離を示す指標を前記第1の中継装置に提供する旨の指示を受信する受信部と、
    当該指示に応じて、自身から前記第2の中継装置までの距離を示す指標を、前記第1の中継装置に送信する送信部と、
    を有する中継装置。
  14. 前記送信部は、自身から前記第2の中継装置までの最短の距離を示す指標を前記第1の中継装置に送信する、請求項13記載の中継装置。
  15. 前記指示は、前記第2の中継装置の前記第2のネットワークにおけるアドレスを含み、
    前記送信部は、前記アドレスとともに、前記第2の中継装置までの距離を示す指標を前記第1の中継装置に送信する、
    請求項13または14記載の中継装置。
  16. 前記送信部は、前記第2のネットワークの経路情報を前記第1の中継装置に送信しないように制御する、請求項13乃至15の何れか1項に記載の中継装置。
  17. 第1および第2のネットワークに接続された中継装置であって、
    前記第2および第3のネットワークに接続された第1の中継装置が前記第1のネットワークへ宛てたデータの転送先を選択する際に、自身の前記第2のネットワークにおけるアドレスを前記第1の中継装置に提供する旨の指示を受信する受信部と、
    当該指示に応じて、前記アドレスと前記アドレスを受信した中継装置から自身までの距離を示す指標を取得するための指標とを含む複数の応答データを、前記第1の中継装置からの前記データの転送先の候補であり前記第2のネットワークに属する複数の第2の中継装置それぞれを介して前記第1の中継装置に送信する送信部と、
    を有する中継装置。
  18. 前記指示は、前記第1の中継装置に備えられており前記複数の第2の中継装置と接続された複数のインタフェースそれぞれのアドレスを含み、
    前記送信部は、前記複数のインタフェースそれぞれのアドレスに基づいて、前記複数の応答データを送信する、
    請求項17記載の中継装置。
  19. 前記応答データは、IPパケットであり、
    前記応答データに含まれる、自身までの距離を示す指標を取得するための指標は、前記IPパケットに含まれるTTLまたはホップリミットである、
    請求項17または18記載の中継装置。
  20. 第1のネットワークに接続された第2のネットワークへ宛てたデータの転送先の候補であり前記第1のネットワークに属する複数の第1の中継装置と通信する通信部と、
    前記データの転送先を選択する際に、前記第1および前記第2のネットワークに接続された第2の中継装置の前記第1のネットワークにおけるアドレスを解決するための問い合わせを行い、前記複数の第1の中継装置の何れかの中継装置から当該問い合わせに対する応答を受信すると、当該中継装置を前記データの転送先として選択する制御部と、
    を有する中継装置。
JP2014550845A 2012-12-05 2012-12-05 中継装置および情報処理装置 Expired - Fee Related JP5958556B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/081491 WO2014087500A1 (ja) 2012-12-05 2012-12-05 中継装置および情報処理装置

Publications (2)

Publication Number Publication Date
JP5958556B2 true JP5958556B2 (ja) 2016-08-02
JPWO2014087500A1 JPWO2014087500A1 (ja) 2017-01-05

Family

ID=50882950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014550845A Expired - Fee Related JP5958556B2 (ja) 2012-12-05 2012-12-05 中継装置および情報処理装置

Country Status (3)

Country Link
US (1) US20150236944A1 (ja)
JP (1) JP5958556B2 (ja)
WO (1) WO2014087500A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9871884B2 (en) 2014-09-30 2018-01-16 Xiaomi Inc. Method and device for transferring messages
CN104243288B (zh) * 2014-09-30 2015-12-02 小米科技有限责任公司 消息传输方法及装置、电子设备
US9369374B1 (en) 2015-02-03 2016-06-14 Google Inc. Mesh network addressing
US20170117978A1 (en) * 2015-10-27 2017-04-27 Mediatek Inc. Method for selecting ttl for a mesh network
US10516544B2 (en) * 2017-07-13 2019-12-24 Cisco Technology, Inc. Extranet connectivity in LISP networks
CN109104364B (zh) 2017-11-27 2020-11-06 新华三技术有限公司 一种指定转发者选举方法和装置
CN111614557B (zh) * 2020-04-02 2021-09-24 深圳创维-Rgb电子有限公司 Mesh网络的数据传输方法、装置、网关及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006033235A (ja) * 2004-07-14 2006-02-02 Fujitsu Ltd 経路制御方法及び装置
JP2012039188A (ja) * 2010-08-03 2012-02-23 Nippon Telegr & Teleph Corp <Ntt> 通信システム、制御サーバ、フロー制御方法およびそのプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200414737A (en) * 2002-09-27 2004-08-01 Matsushita Electric Ind Co Ltd Contents transmission system
CN101340356B (zh) * 2007-07-05 2012-07-11 华为技术有限公司 转发信息的方法和信息转发设备
CN101534240B (zh) * 2008-03-14 2012-04-25 华为技术有限公司 一种映射信息的发送方法、系统和装置
US8432913B2 (en) * 2008-04-22 2013-04-30 Nec Corporation Relay device, network system, route switching method, and recording medium
CN102014043B (zh) * 2009-09-08 2013-12-04 中兴通讯股份有限公司 名址映射系统、数据传输方法及名址映射维护方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006033235A (ja) * 2004-07-14 2006-02-02 Fujitsu Ltd 経路制御方法及び装置
JP2012039188A (ja) * 2010-08-03 2012-02-23 Nippon Telegr & Teleph Corp <Ntt> 通信システム、制御サーバ、フロー制御方法およびそのプログラム

Also Published As

Publication number Publication date
JPWO2014087500A1 (ja) 2017-01-05
US20150236944A1 (en) 2015-08-20
WO2014087500A1 (ja) 2014-06-12

Similar Documents

Publication Publication Date Title
JP5958556B2 (ja) 中継装置および情報処理装置
JP6386468B2 (ja) Ipルーティング互換のためのネットワークノードのパケットフォーマットと通信方法及びそのネットワークノード
JP6137384B2 (ja) 通信システム、転送ノード、経路管理サーバおよび通信方法
JP5966561B2 (ja) 通信装置および通信方法
EP2323346A1 (en) Adaptive multi-interface use for content networking
JP6085263B2 (ja) 中継ノード及び経路制御方法
JP2022526132A (ja) エリア間srmpls igpネットワーク内の最適ルーティングのための方法、ノード、及びそのシステム
JP5438624B2 (ja) 通信システム、制御サーバ、フロー制御方法およびそのプログラム
JP5954000B2 (ja) 通信方法および通信装置
JP3736554B2 (ja) ルータ装置及びパケット転送制御方法
JP4623317B2 (ja) 通信装置、ルーティング方法及びプログラム
JP5001966B2 (ja) 経路情報管理方法およびその管理システム
US20230141362A1 (en) Discovering a reverse path for initiating Bidirectional Forwarding Detection (BFD)
JP2007233700A (ja) キャッシュシステム、負荷監視サーバ、キャッシュ管理サーバ及びキャッシュサーバ。
US10735252B2 (en) Outside router fault detection
JP2017175522A (ja) ネットワークシステム、制御装置、方法およびプログラム
JP6672127B2 (ja) 伝送経路変更システム、伝送経路変更方法、通信品質管理装置及びプログラム
JP5413014B2 (ja) ルータ装置、ルーティング方法、プログラム及び記録媒体
JP4585498B2 (ja) Mplsルータ、経路設定方法およびプログラム
JP4610599B2 (ja) ルータ装置および通信方法
JP2006261768A (ja) 通信装置、通信方法および通信プログラム
JP4413739B2 (ja) ネットワークシステム、並びにそのネットワークシステムにおける方法及び装置
JP4746672B2 (ja) 経路確認装置、経路確認システム、経路確認方法およびそのプログラム
JP5532818B2 (ja) Id/ロケーター対応付け装置、id/ロケーター対応付け方法およびプログラム
JP4745190B2 (ja) アドレス取得装置、アドレス取得方法、及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R150 Certificate of patent or registration of utility model

Ref document number: 5958556

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees