JP4747197B2 - トンネリングループ検出制御装置 - Google Patents

トンネリングループ検出制御装置 Download PDF

Info

Publication number
JP4747197B2
JP4747197B2 JP2008521073A JP2008521073A JP4747197B2 JP 4747197 B2 JP4747197 B2 JP 4747197B2 JP 2008521073 A JP2008521073 A JP 2008521073A JP 2008521073 A JP2008521073 A JP 2008521073A JP 4747197 B2 JP4747197 B2 JP 4747197B2
Authority
JP
Japan
Prior art keywords
identifier
packet
tunneling
group detection
tunnel
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
JP2008521073A
Other languages
English (en)
Other versions
JP2009514265A5 (ja
JP2009514265A (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2008521073A priority Critical patent/JP4747197B2/ja
Publication of JP2009514265A publication Critical patent/JP2009514265A/ja
Publication of JP2009514265A5 publication Critical patent/JP2009514265A5/ja
Application granted granted Critical
Publication of JP4747197B2 publication Critical patent/JP4747197B2/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
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/18Loop-free operations

Landscapes

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

Description

本発明は、パケット交換型データ通信ネットワークにおいて、パケットのカプセル化(パケットのトンネリング)を制御するためのトンネリングループ検出制御装置に関する。
インターネットプロトコルスイート(Internet Protocol suite)に属する多数のプロトコルでは、パケットカプセル化(あるいは、パケットトンネリング)が利用されている。IPv6(Internet Protocol version 6:インターネットプロトコルバージョン6)では、このパケットカプセル化は、主に下記の非特許文献1において定義されている。
例えば、仮想プライベートネットワーク(Virtual Private Network:VPN)では、異なる位置に存在する2つ以上のネットワークを相互接続して、大規模プライベートネットワークを形成するために、トンネリング技術が用いられる。
また、モバイルIPv6(Mobile IPv6:MIPv6)のモビリティサポートでは、モバイルノードとホームエージェントとの間のトンネリングの使用によって、モバイルノードは、そのホームアドレスで常に到達可能な状態となる。
また、IPv6のネットワークモビリティサポート(NEMO)では、モバイルルータが、自身のホームエージェントとの間にトンネルを確立することによって、ネットワーク全体が、モバイルネットワークのプレフィックスで到達可能な状態を維持したまま、インターネットを移動することが可能となる。
IPv6トンネリングでは、内部のIPv6パケット(インナパケット)を、外部のIPv6パケット(アウタパケット)のペイロードとするカプセル化が行われる。なお、インナパケットは、ペイロードパケットと呼ばれることもあり、アウタパケットは、トンネルパケットと呼ばれることもある。
トンネリングは、トンネル入口ノード(tunnel entry node)及びトンネル出口ノード(tunnel exit node)の2つのエンティティに関連している。なお、本明細書では、トンネル入口ノードを、トンネルエントリポイント(tunnel entry point)又はTEPと表現し、トンネル出口ノードをトンネル出口ポイントと表現することもある。
トンネル入口ノードは、送信元アドレス(source address)にトンネル入口ノードのアドレスを有するとともに、あて先アドレス(destination address)にトンネル出口ノードのアドレスを有するトンネルパケットに、ペイロードパケットをカプセル化する。トンネルパケットがトンネル出口ノードに到達した場合には、ペイロードパケットはデカプセル化されて、通常通り発送される。これによって、既存のルーティングインフラストラクチャ上に、オーバレイネットワークが効率良く作られる。
さらに、中継ルータがインナパケットの内容を見ることができないように、ペイロードパケットは暗号化されてもよい。トンネリングによって、インナパケットの送信元及びあて先アドレスは隠蔽されるので、既存のルーティングインフラストラクチャでは、単に、アウタパケットに基づく経路の決定のみが行われる。
しかしながら、これにより、トンネルパケットがトンネル出口ノードに到達する前にトンネル入口ノードに戻ってしまうときには、トンネリングループ(tunneling loop)として知られている現象が発生してしまうおそれがある。
また、パケットが複数レベルのカプセル化を被る必要がある場合には、トンネリングループは、より起こりやすくなる。カプセル化によって、インナパケットの送信元アドレスは隠れてしまうので、トンネル入口ノードは、トンネル入口ノード自身が以前にそのパケットのトンネル化を既に行っている旨に気付かない可能性がある。トンネリングループは、ネットワークリソースを瞬間的に消費してしまうので望ましいものではない。
カプセル化されたパケットには、それぞれ新たなホップリミットフィールド(hop limit field:中継限界数フィールド)が設定されるので、パケットは、トンネリングループ上で(トンネリングループに沿って)無限に発送され続けることになる。その結果、ルーティングのループを防ぐためにホップリミットを使用する既存のメカニズムは、有効ではなくなる。
さらに、各カプセル化によって、パケットには余分なパケットヘッダが付加され、パケットのサイズが大きくなる。パケットサイズが非常に大きくなることで、パケット分割(fragmentation)が行われる可能性もある。その結果、別のパケット(分割されたパケット)がトンネリングループに導入されてしまうことになる。
トンネリングループが起こる可能性がある場合は多数存在する。図1A及び図1Bには、トンネリングループが起こることが予想される2つの展開が図示されている。
図1Aでは、MR(Mobile Router:モバイルルータ)110、MR112、MR114は、インターネット100を移動している。各モバイルルータによって、トンネリングループが形成される可能性がある。
ここで、MR110は、接続120に示されるようにMR112に接続されており、MR112は、接続122に示されるようにMR114に接続されており、MR114は、接続124に示されるようにMR110に接続されている。モバイルルータの1つ(例えば、MR110)が、自身のHA(Home Agent:ホームエージェント)140へのトンネル化を行っている場合には、MR110は、HA140へのトンネル用にパケットをカプセル化して、MR110のアクセスルータであるMR112にパケットを渡す。
MR112も、自身のホームエージェントに渡すために、パケットを更にカプセル化する。そして、パケットはMR114に渡され、ここでも、パケットのカプセル化が行われる。これは永久に続き、各モバイルルータは、パケットに対して、カプセル化のレイヤを1つずつ付加し続ける。
また、図1Bには、MN(Mobile Node:モバイルノード)130が2つのホームアドレス(MN.HoA1及びMN.HoA2)を有し、それぞれに対応したホームエージェント(HA140及びHA142)が存在する場合の展開が示されている。
HA140は、ホームアドレスMN.HoA1を管理しており、HA142は、ホームアドレスMN.HoA2を管理している。MN130は、HA140に対して偶然又は意図的に、自身の気付アドレス(care-of address:CoA)がMN.HoA2であることを通知し、HA142に対して、自身の気付アドレスがMN.HoA1であることを通知したとする。
その結果、HA140のバインディングキャッシュ150内には、MN.HoA1を含むホームアドレス(HoA)フィールド162と、MN.HoA2を含む気付アドレス(CoA)フィールド164とを有するエントリが格納される。また、同様に、HA142のバインディングキャッシュ152内には、MN.HoA2を含むホームアドレスフィールド166と、MN.HoA1を含む気付アドレスフィールド168とを有するエントリが格納される。
ここで、ホームエージェントの1つ(例えば、HA140)が、MN130あてのパケットを受信した場合、HA140は、自身のバインディングキャッシュで特定される気付アドレス(すなわち、MN.HoA2)に転送されるように、パケットのカプセル化を行う。これは、図1Bに経路172として示されている。
HA142は、このパケットを受信(intercept)し、自身のバインディングキャッシュ152内のMN130の気付アドレス(MN.HoA1)に対して、パケットのトンネルを行う。これにより、図1Bに経路174として示されているように、パケットは、トンネルによってHA140に戻される。そして、このループは、無限に続くことになる。
下記の非特許文献1には、トンネルカプセル化制限(Tunnel Encapsulation Limit:TEL)オプションを使用して、トンネリングループの破滅的な結末を防ぐことが記載されている。このTELオプションは、パケットが受けることができるカプセル化の最大数を含むあて先ヘッダオプション(destination header option)である。
通常、中継ルーティングノードは、通過パケットのあて先ヘッダを検査することはない。しかしながら、非特許文献1では、すべてのトンネル入口ノードが、カプセル化を行う前に、パケットのあて先ヘッダを検査する必要がある。そして、パケット内にTELオプションが見つかった場合には、トンネル入口ノードは、まず、TELオプションにおいて、許容されるカプセル化の最大数がゼロではないことをチェックする必要がある。
TELオプション内に記載されている値がゼロの場合には、トンネル入口ノードは、パケットを破棄するとともに、発信元に問題を通知するインターネット制御メッセージプロトコル(Internet Control Message Protocol:ICMP)エラーを、パケットの発信元に対して送信する。
また、TELオプションがゼロではない場合には、トンネル入口ノードは、パケットのカプセル化処理を行い、元々のTELオプション(パケット受信時のTELオプション)から1を引いた値を含むTELオプションを、新たなトンネルパケットヘッダに付加する。
一方で、元々のパケット(受信したパケット)にTELオプションが含まれていない場合には、トンネル入口ノードは、カプセル化処理を行い、最大カプセル化のデフォルトの数値を含むTELオプションをトンネルパケットヘッダに付加する。このデフォルトの数値は、トンネル入口ノードで設定されるパラメータである。
次に、図1Cにおいて、上述した非特許文献1に開示されている技術に係る動作について例示する。ここで、送信元ノード180(図1Cでは、ソースと表記)は、データパケットを任意のあて先に送信する送信元のノードである。パケットは、3つのトンネルエントリポイント(TEP182、TEP184、TEP186)を経由する経路を通る。しかしながら、構成のミスやその他の理由によって、3つのトンネルエントリポイントは、トンネリングループを形成しているとする。
送信元ノード180がデータパケット187(図1Cでは、Dataと表記)を送信した場合、データパケット187は、最初のトンネルエントリ(TEP182)に到達する。TEP182は、トンネルパケット188内にデータパケットをカプセル化するとともに、トンネルパケットヘッダにTELオプションを付加する。ペイロードパケット187にはTELオプションは含まれていないので、トンネルパケット188内のTELオプションには、デフォルト値(例えば「4」)が設定された制限フィールドが設けられる。
さらに、TEP184は、このパケット(図1Cでは、Pkt{TEL=3}と表記)をTEP186にトンネルし、その結果、TEL制限が「3」のパケット189(図1Cでは、Pkt{TEL=3}と表記)が生じる。さらに、TEP186は、このパケットをTEP182にトンネルし、その結果、TEL制限が「2」のパケット190(図1Cでは、Pkt{TEL=2}と表記)が生じる。TEP182は、もう一度このパケットをTEP184にトンネルし、その結果、TEL制限が「1」のパケット191(図1Cでは、Pkt{TEL=1}と表記)が生じる。そして、最終的に、TEP184は、このパケットをTEP186にトンネルし、その結果、TEL制限が「0」のパケット192(図1Cでは、Pkt{TEL=0}と表記)が生じる。
ここで、TEP186は、受信したパケットには、値がゼロのTELオプションが存在していることに気付く。その結果、更なるカプセル化の実行は不可能となる。そして、TEP186は、パケット192を破棄し、パケットの送信元(すなわち、TEP184)に対して、パケット192の元のTELオプション184を示すICMPエラーメッセージ193(図1Cでは、ICMP−Errorと表記)を返送する。
このICMPエラーメッセージ193を受信したTEP184は、ICMPエラーメッセージ193から元のパケット191を抽出して、パケット191の送信元(すなわち、TEL182)に対して、パケット191のTELオプションを示すICMPエラーメッセージ194(図1Cでは、ICMP−Errorと表記)を返送する。
このICMPエラーメッセージの返送は、受信するICMPエラーメッセージから抽出されるパケットにTELオプションが含まれなくなるまで実行される(すなわち、ICMPエラーメッセージ195〜197(図1Cでは、ICMP−Errorと表記)が順次返送される)。なお、図1Cでは、TEP182がICMPエラーメッセージ197を受信した場合に、パケットにTELオプションが含まれなくなる。そして、最終的なICMPエラーメッセージ198(図1Cでは、ICMP−Errorと表記)が、TEP182から元の送信元ノード180に送信される。
また、ルーティングループに関する問題を解決しようとする他の従来技術も存在している。例えば、下記の特許文献1には、IPヘッダに含まれているホップ数ごとに、パケットの個数を所定の期間カウントするカウンタを設けることによって、ルーティングループが起こっているか否かを推定し、一般的なルーティングループの検出を行う方法が開示されている。
また、ルーティングループそのものを防ごうとしている別の従来の技術も存在する。例えば、下記の特許文献2には、ルーティングループを防ごうとしているモバイルアドホックルーティング方法が記載されている。また、下記の特許文献3には、レイヤ2のトンネリングプロトコル(L2TP)や仮想プライベートネットワーク(VPN)に関して、ルーティングループを防ぐために、スパニングツリーアルゴリズム(全域木アルゴリズム)を使用するルーティング方法が開示されている。
"Generic Packet Tunneling in IPv6 Specification"、RFC2473、1998年12月 米国特許公開公報2005/0063311 米国特許公開公報2004/0146007 米国特許6765881号
しかしながら、非特許文献1に開示されている技術によれば、上述のTELオプションの使用によって、トンネリングループが無限に発生し続けないようにすることは可能となるものの、複雑な問題に対しては不十分な解決方法である。特に、TELオプションを使用した場合、ICMPエラーメッセージの受信者は、TELの値がゼロになった理由が、トンネリングループによるものであるのか、あるいは、単に、TELの値の設定が、最終のあて先に到達するまでに通過する必要があるトンネルの数に対して十分ではなかったことによるものなのかを判断することができない。
したがって、トンネル入口ノードが、トンネルカプセル化の制限に達したことを告げるICMPエラーに対して、どのように応じればよいかに関しては不明瞭である。
トンネル入口ノードは、そのデフォルトのTELの値を増やして、パケットを通過させようと試みることができる。しかしながら、トンネリングループが実際に存在する場合には、これによって、ICMPエラーの受信及びデフォルトのTELの値の増加が無限に行われることになるかもしれない。
また、トンネル入口ノードは、トンネリングループが存在していると仮定して、同一のあて先アドレスを有するトンネルパケットを単に拒否することもできる。しかしながら、ICMPエラーの本当の理由が、パケットが通過する必要のあるトンネルの数が、パケットがその最終あて先に到達するために設定されるTELの値よりも大きかったという理由の場合には、これによって、不要なサービス拒否が行われてしまうかもしれない。
上述の説明から、トンネル入口ノードが、トンネリングループが形成されている場合と、パケットが通過するために必要となるトンネルの数が、設定されるデフォルトのTELの値よりも大きい場合とを区別することができる情報が、TELオプションに含まれていないことがTELオプションの使用に係る問題であることが分かる。
また、特許文献1に開示されている方法は、1秒あたりに何千個ものパケットの処理を行うルータには適していない。さらに、この方法は、実際のループ検出アルゴリズムというよりも、ルーティングループの兆候を推定する発見的方法である。
また、特許文献2、3に開示されているような方法に関しては、特に、ループ発生の確率がかなり小さい場合に、ループをわざわざ防ぐために費やされる計算コストが割に合ったものではないという問題がある。トンネリングプロトコルは、トンネル入口ノードからトンネル出口ノードへのパケットのルーティングに関しては、基本的なルーティングインフラストラクチャを利用するものである。したがって、上記の問題は、特にトンネリングプロトコルに関して当てはまる。また、基本的なルーティングインフラストラクチャにルーティングループがない限り、トンネリングループが起こる可能性は、実際にはかなり小さい。したがって、トンネリングプロトコルに関しては、完全かつ複雑なループ回避メカニズムは適していない。
上記の課題に鑑み、本発明は、トンネルエントリポイントがトンネリングループの存在を検出するためのトンネリングループ検出制御装置を提供することを目的とする。
上記の目的を達成するため、パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置であって、
パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
前記パケットカプセル化手段で前記トンネルパケットを生成する際に付加される前記トンネルパケットのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
前記パケットカプセル化手段で生成された前記トンネルパケットを送信するトンネルパケット送信手段と、
前記パケット受信手段で受信した前記パケットのヘッダに挿入されている前記トンネリングループ検出用識別子に基づいて、トンネリングループが起こっているか否かを確認し、トンネリングループを検出した場合には、トンネリングループの検出エラー処理を開始するループ検出手段とを、
有する。
上記の構成により、パケットのカプセル化(トンネルパケットの生成)を行うトンネルエントリポイントが、パケットがカプセル化を受けながら同一経路をループしてしまうトンネリングループの存在を検出することが可能になる。
また、上記の構成により、パケットのカプセル化を行うトンネルエントリポイントが、パケットのカプセル化によって生成されるトンネルパケットのヘッダに、トンネリングループ検出用識別子を付加することによって、トンネリングループの存在を検出できるようにすることが可能となる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子によって、最初のトンネルエントリポイントが識別可能となる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子の一意性が、完全に、又はかなり高い精度で保証されるようになる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記ループ検出手段が、
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一か否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一ではない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子複製制御手段とを、
有する。
上記の構成により、トンネリングループ検出用識別子がトンネルパケットのヘッダ内に挿入された状態で伝搬されるとともに、このトンネリングループ検出用識別子が、自身を特定する一意の情報と一致した場合に、トンネリングループが検出されるようになる。
さらに、本発明のトンネリングループ検出制御装置は、パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置であって、
パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットがトンネルカプセル化の上限を超えている場合に、前記トンネリングループ検出用識別子が前記パケットのヘッダに挿入されている前記パケットをペイロード部に含み、かつ、トンネルカプセル化の上限を超えている旨を通知するエラーメッセージを生成するエラーメッセージ生成手段と、
エラーの通知先に向けて、前記エラーメッセージ生成手段で生成された前記エラーメッセージを返送するエラーメッセージ返送手段と、
前記エラーメッセージを受信するエラーメッセージ受信手段と、
前記エラーメッセージ受信手段で受信した前記エラーメッセージのペイロード部に存在する前記パケットのヘッダに挿入されている前記トンネリングループ検出用識別子に基づいて、トンネリングループが起こっているか否かを確認し、トンネリングループを検出した場合には、トンネリングループの検出エラー処理を開始するループ検出手段と、
前記パケット受信手段で受信した前記パケットがトンネルカプセル化の上限を超えていない場合に、前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
前記パケットカプセル化手段で前記トンネルパケットを生成する際に付加される前記トンネルパケットのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
前記パケットカプセル化手段で生成された前記トンネルパケットを送信するトンネルパケット送信手段とを有する。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記ループ検出手段が、
前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記一意の情報とが同一か否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記一意の情報とが同一ではない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子複製制御手段と、
前記エラーメッセージ受信手段で受信した前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを比較するエラーメッセージ識別子比較手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段とを有し、
前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一ではない場合には、前記エラーメッセージ生成手段が、前記エラーメッセージのペイロード部に存在するパケットのペイロード部に含まれるパケットを含むエラーメッセージを生成し、かつ、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子を前記所定の情報格納手段に格納するように制御する。
上記の構成により、エラーメッセージ(特に、受信したパケットをペイロードにそのまま挿入して返送することが可能なICMPエラーメッセージ)の返送時に、トンネリングループが検出されるようになる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記ループ検出手段が、
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか1つと前記一意の情報とが同一か否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか1つと前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のすべてと前記一意の情報とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子と、前記一意の情報とによってトンネリングループ検出用識別子を構成して、新たに構成された前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段とを、
有する。
上記の構成により、パケットの転送時に、このパケットに対してカプセル化を行ったすべてのトンネルエントリポイントの識別子がパケットのヘッダに付加され、パケットのヘッダを参照することによって、トンネルエントリポイントは、以前に自身によってカプセル化処理を受けたことのあるパケットか否かを判別することが可能となり、トンネリングループが検出されるようになる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子によって、各トンネルパケットが識別可能となる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する。
上記の構成により、各トンネルパケットを識別可能とするトンネリングループ検出用識別子として、ランダムナンバーやシーケンスナンバーを使用することが可能となる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記ループ検出手段が、
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記トンネルパケットごとに異なる情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
有する。
上記の構成により、トンネリングループ検出用識別子がトンネルパケットのヘッダ内に挿入された状態で伝搬されるとともに、各トンネルエントリポイントは伝搬時にこのトンネリングループ検出用識別子を格納し、受信パケット内のトンネリングループ検出用識別子と、格納されているトンネリングループ検出用識別子と一致した場合に、トンネリングループが検出されるようになる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、格納から所定の期間以上経過した場合には、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する。
上記の構成により、トンネリングループ検出用識別子を格納するためのメモリのリソースを節約することが可能となる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を含む静的な部分と、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を含む動的な部分とを組み合わせた情報を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子によって、最初のトンネルエントリポイントが識別可能となるとともに、各トンネルパケットが識別可能となる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記静的な部分として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている。
上記の構成により、トンネリングループ検出用識別子の静的な部分の一意性が、完全に又はかなり高い精度で保証されるようになる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する。
上記の構成により、各トンネルパケットを識別可能とするトンネリングループ検出用識別子の動的な部分として、ランダムナンバーやシーケンスナンバーを使用することが可能となる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、前記ループ検出手段が、
前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報と前記トンネルパケットごとに異なる情報とを組み合わせた情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子の静的な部分と前記一意の情報とが一致するか否かを確認する静的識別子比較手段と、
前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
前記静的識別子比較手段及び前記識別子比較手段のいずれか一方の結果が一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記静的識別子比較手段及び前記識別子比較手段の両方とも一致が見られない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
有する。
上記の構成により、トンネリングループ検出用識別子がトンネルパケットのヘッダ内に挿入された状態で伝搬されるとともに、このトンネリングループ検出用識別子が、自身を特定する一意の情報と一致した場合、又は、各トンネルエントリポイントは伝搬時にこのトンネリングループ検出用識別子の動的な部分を格納し、受信パケット内のトンネリングループ検出用識別子と、格納されているトンネリングループ検出用識別子と一致した場合に、トンネリングループが検出されるようになる。
さらに、本発明のトンネリングループ検出制御装置は、上記の構成に加えて、格納から所定の期間以上経過した場合には、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する。
上記の構成により、トンネリングループ検出用識別子を格納するためのメモリのリソースを節約することが可能となる。
本発明は、上記の構成を有しており、トンネルエントリポイントがトンネリングループの存在を検出することができるようになるという効果を有している。
以下、図面を参照しながら、本発明の実施の形態において、トンネルエントリポイントがトンネリングループの存在を検出するための方法及び装置について説明する。
本発明では、基本的に、トンネルエントリポイントがトンネルパケットヘッダに新たなTELオプションを挿入する際に、TELオプションに識別子(ID)が含まれるようにする。
識別子を有するTELオプションがペイロードパケットに元々含まれている場合には、この識別子は、トンネルパケットヘッダに挿入されるTELオプションの識別子フィールド(limit field)に単にコピーされる。一方、識別子を有するTELオプションがペイロードパケットに元々含まれていない場合には、トンネルエントリポイントが、トンネルパケットヘッダに挿入されるTELオプションの識別子フィールド(ID field)に識別子を追加する。
図2には、本発明の実施の形態における動作の一例が図示されている。なお、図2に図示されているメッセージシーケンスチャートによって、本発明を用いた場合に、トンネルエントリポイントによるループの検出が可能となる方法の一例が説明される。
ここで、送信元ノード180(図2では、ソースと表記)は、データパケットを任意のあて先に送信する送信元のノードである。パケットは、3つのトンネルエントリポイント(TEP182、TEP184、TEP186)を経由した経路を通ることになる。しかしながら、ここでは、構成のミスやその他の理由によって、3つのトンネルエントリポイントは、トンネリングループを形成しているものとする。
送信元ノード180がデータパケット200を送信した場合、データパケット200は、最初のトンネルエントリポイント(TEP182)に到達する。TEP182は、データパケット200をトンネルパケット210内にカプセル化して、トンネルパケットヘッダにTELオプションを付加する。パケット200にはTELオプションが含まれていないので、トンネルパケット210のTELオプションは、制限フィールドにデフォルト値(例えば、4)が設定され、識別子フィールドにTEP182の識別子(例えば、182)が設定される。
そして、トンネルパケット210(図2では、Pkt{TEL=4,ID=182}と表記)はTEP184に到達する。TEP184では、トンネルパケット210のTELオプションの識別子フィールドにTEP184自身の識別子が存在しないので、トンネルパケット210は、さらに、トンネルパケット220内にカプセル化される。ペイロードパケット210にはTELオプションが含まれているので、TEP184は、トンネルパケット220に対して、新たなTELオプションを付加する。このトンネルパケット220に付加される新たなTELオプションは、ペイロードパケット210のTELオプションの制限フィールドの値から1を減算した値(すなわち、3)が設定された制限フィールドと、パケット210のTELオプションの識別子フィールドに等しい値(すなわち、182)が設定された識別子フィールドとを有している。
そして、トンネルパケット220(図2では、Pkt{TEL=3,ID=182}と表記)はTEP186に到達し、トンネルパケット220のTELオプションの識別子フィールドにTEP186自身の識別子が存在しないので、TEP186で、さらにトンネルパケット230内にカプセル化される。ペイロードパケット220にはTELオプションが含まれているので、TEP186は、トンネルパケット230に新たなTELオプションを付加する。このトンネルパケット230に付加される新たなTELオプションは、パケット220のTELオプションの制限フィールドの値から1を減算した値(すなわち、2)が設定された制限フィールドと、パケット220のTELオプションの識別子フィールドに等しい値(すなわち、182)が設定された識別子フィールドとを有している。
その後、トンネルパケット230(図2では、Pkt{TEL=2,ID=182}と表記)はTEP182に戻される。TEP182は、受信したパケット230を調べ、パケット230に自身の識別子に等しい値が設定された識別子フィールドを有するTELオプションが含まれていることに気が付く。これによって、トンネリングループが起こった旨がTEP182に示される。
したがって、TEP182は、パケットを破棄するとともに、トンネリングループが検出された旨を示すICMPエラーメッセージ240(図2では、ICMP−Errorと表記)をパケット230の送信者(すなわち、TEP186)に返送する。TEP186は、ICMPエラーメッセージ240を受信すると、ICMPエラーメッセージ250(図2では、ICMP−Errorと表記)をTEP184に返送する。同様に、TEP186は、ICMPエラーメッセージ260(図2では、ICMP−Errorと表記)をTEP182に返送する。そして、最終的に、TEP182は、ICMPエラーメッセージ270(図2では、ICMP−Errorと表記)を最初の送信元ノード180に送り返す。
また、図3には、本発明の実施の形態において、トンネルエントリポイントが、カプセル化されるペイロードパケットを処理する際に使用するアルゴリズムの好適なフローチャートが図示されている。
まず、ステップS310において、ペイロードパケットのあて先オプションヘッダに、TELオプションが存在するか否かのチェックが行われる。
ステップS310においてTELオプションが存在しない場合には、ステップS320に進み、トンネルエントリポイントはペイロードパケットのカプセル化を行うとともに、トンネルパケットのあて先オプションヘッダにTELオプションを付加する。このとき、付加されるTELオプションには、トンネルエントリポイント用に構成されたデフォルト値が設定された制限フィールドと、トンネルエントリポイントの識別子が設定された識別子フィールドとが設けられる。
一方、ステップS310においてペイロードパケットにTELオプションが含まれている場合には、ステップS330に進み、ペイロードパケットのTELオプションの制限フィールドのチェックが行われる。ここで、制限フィールドの値がゼロの場合には、ステップS340に進み、ペイロードパケットの送信元に対してICMPエラーメッセージが返送される。このICMPエラーメッセージは、トンネルカプセル化の制限を超えた旨を示すように設定される。
また、ステップS330において制限フィールドの値がゼロではない場合には、ステップS350に進む。ステップS350では、ペイロードパケットのTELオプションに、識別子フィールドが含まれているか否かのチェックが行われる。
ステップS350においてTELオプションに識別子フィールドが含まれていない場合には、ステップS360に示されるように、ペイロードパケットはカプセル化され、トンネルパケットヘッダにTELオプションが付加される。このとき、トンネルパケットヘッダに付加されるTELオプションには、ペイロードパケットのTELオプションの制限フィールドの値から1を減算した値を有する制限フィールドと、トンネルエントリポイントの識別子が設定された識別子フィールドとが含まれる。
一方、ステップS350においてペイロードパケットのTELオプションに識別子フィールドが含まれている場合には、ステップS370に進み、ペイロードパケットのTELオプションの識別子フィールドが、トンネルエントリポイント自身の識別子と同一の値であるか否かのチェックが行われる。
このとき、同一の値である場合には、トンネリングループが検出される。そして、ステップS380において、トンネリングループが検出された旨を示すICMPエラーメッセージが、ペイロードパケットの送信元に返送される。
一方、ステップS370において、ペイロードパケットのTELオプションの識別子フィールドにトンネルエントリポイントの識別子が含まれていない場合、ステップS390に示されるように、ペイロードパケットはカプセル化されて、トンネルパケットヘッダにTELオプションが付加される。このとき、トンネルパケットヘッダに付加されるTELオプションには、ペイロードパケットのTELオプションの制限フィールドの値から1を減算した値を有する制限フィールドと、ペイロードパケットのTELオプションの識別子フィールドの値が設定された識別子フィールドとが設けられる。
また、図4には、本発明の実施の形態において、TELオプションを含むトンネルパケット400の好適なパケットフォーマットの一例が図示されている。トンネルパケット400には、ペイロードとしてインナパケット450がカプセル化される。なお、図示明瞭とするため、パケット450の詳細な内容に関しては省略する。
送信元アドレスフィールド402には、トンネルエントリポイントのアドレスが含まれ、あて先アドレスフィールド404には、トンネル出口ポイントのアドレスが含まれる。これらの2つのフィールドは、標準IPv6ヘッダのフィールドである。なお、図示明瞭とするため、標準IPv6パケットの任意のフィールドが省略されていることは、当業者であれば分かるであろう。
また、TELオプション420は、あて先オプションであり、パケット400のあて先オプションヘッダ410内に存在している。あて先オプションヘッダ410には、あて先オプションヘッダ410であることを識別可能とするタイプフィールド412と、あて先オプションヘッダ410全体の長さを示す長さフィールド414とが含まれている。
なお、当業者であれば、実際には、タイプフィールド412があて先オプションヘッダ410に存在するのではなく、あて先オプションヘッダ410の直前のヘッダ内に存在することが分かるであろう。あて先オプションヘッダ410の前にタイプフィールドを配置した場合には説明上の混乱が生じるかもしれないので、ここでは、上述のように、説明を容易とするために簡略化された技術的表現を用いることにする。
あて先オプションヘッダ410には、1つ以上のあて先オプションが含まれる。TELオプション420は、このようなオプションの1つである。TELオプション420には、タイプフィールド422と長さフィールド424とが含まれている。タイプフィールド422によって、このオプションがTELオプション420であることが識別され、長さフィールド424によって、TELオプション420全体の長さが示される。
さらに、TELオプション420には、このパケット400が受けることができるカプセル化の最大数を指定する制限フィールド426と、新たな識別子フィールド428も存在する。なお、当業者であれば、図示明瞭のため、図4では、TELオプション内の他のフィールドが省略されていることが分かるであろう。
本発明によれば、非特許文献1に開示されている技術に、更に識別子フィールド428が付加される。識別子フィールド428は、本明細書において示されるように、トンネルエントリポイントがトンネリングループの形成を検出するために重要な役割を果たすものである。
また、図5には、本発明の実施の形態において、ICMPエラーメッセージ500の好適なパケットフォーマットの一例が図示されている。
送信元アドレスフィールド502には、送信者のアドレスが含まれ、あて先アドレスフィールド504には、受信者のアドレスが含まれる。これらの2つのフィールドは、標準IPv6ヘッダのフィールドである。なお、図示明瞭とするため、標準IPv6パケットの任意のフィールドが省略されていることは、当業者であれば分かるであろう。
ICMPエラーメッセージとして、パケット500にはICMPヘッダ510が含まれ、また、可能な限りにおいて、エラーが生じた元のパケット550が含まれる。ICMPヘッダ510のタイプフィールド512には、パケット500のICMPメッセージのタイプが示される。また、ICMPヘッダ510のコードフィールド514には、このICMPエラーに関するメッセージコードが示される。また、ICMPヘッダ510のポインタフィールド516は、元のパケット550内のエラーとなったバイト(エラーが発見された場所)を示すために使用される。
本発明では、2つの好適なICMPエラーメッセージが使用される。
1つ目は、トンネルカプセル化の制限(上限値)を超えた旨を示すICMPエラーメッセージである。この場合には、ポインタフィールド516に、元のパケット550のTELオプションの制限フィールドを示す値が含まれることが望ましい。
2つ目は、トンネリングループが起こった旨を示すICMPエラーメッセージである。この場合には、ポインタフィールド516に、元のパケット550のTELオプションの識別子フィールドを示す値が含まれることが望ましい。
なお、当業者であれば、タイプフィールド512、コードフィールド514、ポインタフィールド516のビットに関して特別な組み合わせを設定することで、ICMPエラーメッセージが「トンネルカプセル化の制限の超過」エラー、又は「トンネリングループの検出」エラーを示すことが可能であることが理解できるであろう。
以降、本明細書では、「トンネルカプセル化の制限の超過」のICMPエラーメッセージ及び「トンネリングループの検出」のICMPエラーメッセージを、単にICMPエラーメッセージと記載することにする。
また、上述の説明では、トンネルエントリポイントによってTELオプションに挿入される識別子として、各トンネルエントリポイントに一意である任意の文字列又はビットが仮定されている。
以下、識別子に関して、いくつかの好適な例を説明する。なお、当業者であれば、これらは単に一例に過ぎず、そして、識別子の実際の形式は、これらの例に限定されないことは分かるであろう。
識別子の形式の1つは、単に、各トンネルエントリポイントが、自身のIPアドレスを使用するものである。これは、識別子のグローバルの一意性が保証されるという利点がある。また、この形式の派生例として、トンネルエントリポイントのIPアドレスのハッシュ関数を演算した結果を使用することも実現可能である。これは、選ばれるハッシュ関数に応じて、信用性が高いレベルでユニークであるとともに、サイズがより小さくなるという利点を有している。
上述の本発明の実施の形態によれば、最初のトンネルエントリポイントがループの一部となる場合に、トンネルエントリポイントがトンネリングループを検出できることが保証される。しかしながら、ループ上のトンネルエントリポイント(最初のトンネルエントリポイントを除く)はループの検出は行うことはできない。これに関して、図6A及び図6Bを参照しながら説明する。
図6Aにおいて、送信元ノード180(図6Aでは、ソースと表記)は、データパケットを任意のあて先に送信する送信元のノードである。送信元ノード180から送信されたパケットは、4つのトンネルエントリポイント(TEP600、TEP182、TEP184、TEP186)を経由した経路を通ることになる。しかしながら、ここでは、構成のミスやその他の理由によって、3つのトンネルエントリポイント(TEP182、TEP184、TEP186)でトンネリングループが形成されている。なお、データパス610、612、614、616、618は、パケットが通過する連続したルートを示している。これらの各ルートセグメントに沿って他の中継ルータも存在し得るが、図6Aでは図示省略されている。
また、図6Bには、図6Aに図示されている構成において、送信元ノード180がデータパケット620を送信する際のメッセージシーケンスが示されている。
データパケット620(図6Bでは、Dataと表記)は、最初のトンネルエントリポイント(TEP600)に到達した場合、トンネルパケット622にカプセル化される。最初のトンネルエントリポイントであるTEP600は、トンネルパケット622にTELオプションを挿入する。TELオプションは、例えば「5」の値の制限フィールドと、TEP600の識別子(例えば、「600」)に等しい値を有する識別子フィールドとを有している。
そして、トンネルパケット622(図6Bでは、Pkt{TEL=5,ID=600}と表記)は、経路612を経由してTEP182に到達する。パケット622には既に識別子フィールドを有するTELオプションが含まれており、トンネルパケット622のTELオプションの識別子フィールドにTEP182自身の識別子が存在しないので、TEP182では、パケット622は単にトンネルパケット624にカプセル化され、元のTELオプションがトンネルパケット624にコピーされるとともに、新たなTELオプションの制限フィールドが1つ減算される。すなわち、トンネルパケット624のTELオプションの制限フィールドには、パケット622に付加されていた元のTELオプションの制限フィールドの値から1減算された値が設定される。
そして、トンネルパケット624(図6Bでは、Pkt{TEL=4,ID=600}と表記)は、経路614を経由してTEP184に到達する。同様に、パケット624には既に識別子フィールドを有するTELオプションが含まれており、トンネルパケット624のTELオプションの識別子フィールドにTEP184自身の識別子が存在しないので、TEP184では、パケット624は単にトンネルパケット626にカプセル化され、元のTELオプションがトンネルパケット626にコピーされるとともに、新たなTELオプションの制限フィールドが1つ減算される。すなわち、トンネルパケット626のTELオプションの制限フィールドには、パケット624に付加されていた元のTELオプションの制限フィールドの値から1減算された値が設定される。
そして、トンネルパケット626(図6Bでは、Pkt{TEL=3,ID=600}と表記)は、経路616を経由してTEP186に到達する。ここでも、パケット626には既に識別子フィールドを有するTELオプションが含まれており、トンネルパケット626のTELオプションの識別子フィールドにTEP186自身の識別子が存在しないので、TEP186では、パケット626は単にトンネルパケット628にカプセル化され、元のTELオプションがトンネルパケット628にコピーされるとともに、新たなTELオプションの制限フィールドが1つ減算される。すなわち、トンネルパケット628のTELオプションの制限フィールドには、パケット626に付加されていた元のTELオプションの制限フィールドの値から1減算された値が設定される。
そして、トンネルパケット628(図6Bでは、Pkt{TEL=2,ID=600}と表記)は、経路618を経由してTEP182に到達する。TEP182がパケット628を再び受信したとき、TELオプションの識別子フィールドは「600」の識別子を有しているので、TEP182は、ループが起こっている旨を検出することは不可能であり、引き続き、パケット628をトンネルパケット630でカプセル化してしまう。
したがって、TELオプションの識別子フィールドの値として一意の識別子だけを使用する方法では、ループの検出が不十分であることが分かる。
ループの検出が可能となる方法としては、各トンネルエントリポイントが、自身が受信するICMPエラーを監視し、そこから、ループが起こったか否かに関して推論を行う方法が挙げられる。これに関して、図6Bの後続のシーケンスを参照しながら説明する。
図6Bに図示されているように、トンネリングループ上のTEP182、TEP184、TEP186による多重カプセル化の後、TEP186に到達した際に、トンネルパケット632のTELオプションの制限フィールドはゼロとなる。したがって、TEP186では、更なるパケットのカプセル化を行うことはできない。その代わり、TEP186は、そのトンネルカプセル化の制限が超過した旨を示すICMPエラーメッセージ634(図6Bでは、ICMP−Error{Pkt−632}と表記)をトンネルパケット632の送信元に送信する。なお、ICMPエラーメッセージ634には、元のトンネルパケット632が含まれる。
ICMPエラーメッセージ634を受信したTEP184は、トンネルカプセル化の制限が超過した旨を把握する。そして、TEP184は元のパケット630を抽出し、そのパケット630をICMPエラーメッセージ636(図6Bでは、ICMP−Error{Pkt−630}と表記)内に置いて、パケット630の送信元(すなわち、TEP182)に送信する。また、同時に、TEP184は後に参照するために、ある短い期間だけ(すなわち、一時的に)、このICMPエラーメッセージ634(もしくは、エラーの起こったパケットのTELオプションの識別子フィールドの値)を格納する。
同様に、TEP182は、ICMPエラーメッセージ636を受信した場合に、トンネルカプセル化の制限が超過した旨を把握する。そして、TEP182は元のパケット628を抽出し、そのパケット628をICMPエラーメッセージ638(図6Bでは、ICMP−Error{Pkt−628}と表記)内に置いて、パケット628の送信元(すなわち、TEP186)に送信する。また、同時に、TEP182は後に参照するために、ある短い期間だけ、このICMPエラーメッセージ636(もしくは、エラーの起こったパケットのTELオプションの識別子フィールドの値)を格納する。
さらに、同様に、再びTEP186及びTEP184において、ICMPエラーメッセージ638、640(もしくは、エラーの起こったパケットのTELオプションの識別子フィールドの値)の格納及びICMPエラーメッセージ640、642の返送が行われる。
ICMPエラーがTEP186からTEP184を通って再びTEP182に戻るループを伝搬した場合、ICMPエラーメッセージ(もしくは、エラーの起こったパケットのTELオプションの識別子フィールドの値)を格納した目的は明らかとなる。すなわち、ICMPエラーメッセージ642を受信したTEP182は、ICMPエラーメッセージ642内に存在する元のパケット624と、以前に格納されたICMPエラーメッセージ636内に存在している元のパケット630との比較を行うことが可能となる。そして、TEP182は、パケット624のTELオプション内の識別子フィールドと、パケット630のTELオプション内の識別子フィールドとが同一(すなわち、TEP600の識別子)であることを発見する。これによって、TEP182に対して、トンネリングループが起こった旨が示される。
なお、TEP184においても同様に、ICMPエラーメッセージ640内に存在する元のパケット626と、以前に格納されたICMPエラーメッセージ634内に存在している元のパケット632との比較を行うことで、トンネリングループの検出を行うことが可能である。さらに、TEP186においても、ICMPエラーメッセージ634の送信時に、元のパケット632を格納しておくことで、ループを一周して戻ってきたICMPエラーメッセージ638の受信時に、トンネリングループを検出することが可能となる。
上述の説明によれば、トンネルエントリポイントは、トンネルカプセル化の制限が超過した旨を示す受信ICMPエラーメッセージ(もしくは、エラーの起こったパケットのTELオプションの識別子フィールドの値)を格納することによって、トンネリングループが起こっている旨を推測できるようになることが分かる。トンネルエントリポイントは、ある短い期間内に別のICMPエラーメッセージを受信した場合には、2つのICMPエラーメッセージに含まれる元のパケットのTELオプションの識別子フィールドを比較することが可能である。そして、両者が同一の場合、これによってトンネリングループが起こった旨が示される。
上記の方法は、最初のトンネルエントリポイントがループの一部ではない場合であっても、トンネリングエントリポイントがトンネリングループを検出することができる方法に見えるが、完全な解決方法であるとは言えない。このことに関して、図6Cに示されるメッセージシーケンスチャートを用いて説明する。
図6Cにおいて、トンネルエントリポイント(TEP600、TEP182、TEP189)は、ループを形成していない。なお、TEP182とTEP189との間に存在するトンネルエントリポイントに関しては、図示省略する。さらに、これらのトンネルエントリポイントのいずれに関しても、トンネリングループは形成されていない。
送信元ノード180から送信されたデータパケット650(図6Cでは、Dataと表記)は、最初のトンネルエントリポイント(TEP600)に到達すると、トンネルパケット652にカプセル化される。最初のトンネルエントリポイントであるTEP600は、トンネルパケット652内にTELオプションを挿入する。このTELオプションは、例えば「5」の制限フィールドの値と、TEP600の識別子に等しい値を有する識別子フィールドとを有している。
そして、トンネルパケット652(図6Cでは、Pkt{TEL=5,ID=600}と表記)は、TEP182に到達する。TEP182では、パケット652には既に識別子フィールドを有するTELオプションが含まれており、トンネルパケット652のTELオプションの識別子フィールドにTEP182自身の識別子が存在しないので、TEP182は、単にパケット652をトンネルパケット654にカプセル化し、トンネルパケット654に元のTELオプションをコピーするとともに、新たなTELオプションの制限フィールドを1つ減算する。
この動作は、パケットがトンネルパケット656(図6Cでは、Pkt{TEL=0,ID=600}と表記)としてTEP189に到達するまで行われる。TEP189において、TELオプションの制限フィールドはゼロに減算されているので、TEP189は、更なるパケットのカプセル化を行わない。その代わり、TEP189は、トンネルカプセル化の制限が超過した旨を示すICMPエラーメッセージ658(図6Cでは、ICMP−Error{Pkt−656}と表記)をトンネルパケット656の送信元に送信する。
その後、このICMPエラーメッセージは、逆方向に伝搬され、元のパケット654を含むICMPエラーメッセージ660(図6Cでは、ICMP−Error{Pkt−654}と表記)としてTEP182に到達する。
上述のように、TEP182は、元のパケット654を抽出して、そのパケット654をICMPエラーメッセージ662(図6Cでは、ICMP−Error{Pkt−652}と表記)内に入れて、パケット652の送信元(すなわち、TEP600)に送信する。また、同時に、TEP182は後に参照するために、ある短い期間だけ、このICMPエラーメッセージ660を格納する。
ここで、送信元ノード180が、別のデータパケット670(図6Cでは、Dataと表記)を送信したとする。TEP600において、このデータパケット670は、トンネルパケット672にカプセル化される。最初のトンネルエントリポイントであるTEP600は、トンネルパケット672内にTELオプションを挿入する。このTELオプションは、例えば「5」の制限フィールドの値と、TEP600の識別子に等しい値を有する識別子フィールドとを有している。
そして、トンネルパケット672(図6Cでは、Pkt{TEL=5,ID=600}と表記)は、TEP182に到達する。TEP182では、パケット672には既に識別子フィールドを有するTELオプションが含まれているので、TEP182は、単にパケット672をトンネルパケット674にカプセル化し、トンネルパケット674に元のTELオプションをコピーするとともに、新たなTELオプションの制限フィールドを1つ減算する。
この動作は、パケットがトンネルパケット676(図6Cでは、Pkt{TEL=0,ID=600}と表記)としてTEP189に到達するまで行われる。TEP189において、TELオプションの制限フィールドはゼロに減算されているので、TEP189は、更なるパケットのカプセル化を行わない。その代わり、TEP189は、トンネルカプセル化の制限が超過した旨を示すICMPエラーメッセージ678(図6Cでは、ICMP−Error{Pkt−676}と表記)をトンネルパケット676の送信元に送信する。
その後、このICMPエラーメッセージは、逆方向に伝搬され、元のパケット674を含むICMPエラーメッセージ680(図6Cでは、ICMP−Error{Pkt−674}と表記)としてTEP182に到達する。
TEP182は、ICMPエラーメッセージ680を受信すると、以前に格納されたICMPエラーメッセージ660に存在している元のパケット654と、ICMPエラーメッセージ680に存在している元のパケット674との比較を行う。そして、TEP182は、パケット654のTELオプション内の識別子フィールドと、パケット674のTELオプション内の識別子フィールドとが同一(すなわち、TEP600の識別子)であることを発見する。これにより、TEP182は、トンネリングループが起こっていると誤って結論付ける可能性がある。
上述の説明によれば、一意の識別子(例えば、IPアドレスや、IPアドレスのハッシュ値)を使用することによって、最初のトンネルエントリポイントがループ上に存在する場合には、トンネルエントリポイントは、トンネリングループを正確に検出することができるが、最初のトンネルエントリポイントがループ上に存在しない場合には、トンネリングループの検出の正確性は低減してしまう。
また、一意の識別子を使用しながらも、最初のトンネルエントリポイントがループ上に存在しない場合のトンネリングループの検出の正確性を高めるために、各TEPにおいてTELオプション内の識別子フィールドをコピーするだけでなく、自身の一意の識別子(例えば、自身のIPアドレスや、自身のIPアドレスをハッシュ関数によって計算した計算結果)も追加する方法が可能である。この場合には、TEPによってカプセル化が行われるたびに、カプセル化を行ったTEPに一意の識別子が、TELオプション内の識別子フィールドに追加されていく、そして、一度通過したTEPにパケットが再びループして戻ってきたときに、自身の一意の識別子とTELオプション内の識別子フィールドとの一致が発見されることにより、TEPは、ループの構造によらずトンネリングループを検出することが可能になる。
なお、この方法では、最初のトンネルエントリポイントがループ上に存在しない場合のトンネリングループの検出の正確性を高めることができるが、ネットワーク内で十分に一意と言える識別子のサイズがそれなりに大きいうえ、あるTEPにおいて、それまで通過したTEPの一連の識別子をコピーすることに加え、自身の識別子を付加することになるので、パケットのオーバヘッドが大きくなってしまうことが容認される必要がある。また、元のパケットの一連の識別子を削除した後、カプセル化したパケットに自身の識別子を付加した一連の識別子を挿入する方法も考えられるが、パケットの送信元とあて先のいずれでもないノード(パケットを転送するノード)がインナパケットを変更することを許可しなければならず、セキュリティ上のリスクを含む必要がある。
一意の識別子に関する問題を解決するためには、異なるトンネルパケットに対して、異なる数値を識別子として使用する方法が可能である。この方法は、識別子として使用される一連の異なる数値を生成する数値生成器(number generator)を使用することによって実現可能である。この数値生成器は、ランダムに、又はある所定の順序(例えば、昇順、降順、擬似乱数など)に従って、数値を生成できることが望ましい。
図7には、本発明の実施の形態において、最初のトンネルエントリポイントがループ上に存在しない場合であっても、異なる数値を識別子として使用することによって、トンネリングループの検出が可能となる方法が示されている。
図7では、トンネルエントリポイント(TEP600、182、184、186)は、図6Aに示されるように配置されている。送信元ノード180がデータパケット700(図7では、Dataと表記)を送信した場合、パケット700は、最初のトンネルエントリポイント(TEP600)に到達する。
TEP600は、新たなTELオプションを有するトンネルパケット702にパケット700をカプセル化する。TELオプションの制限フィールドは、例えば「5」のデフォルト値と、例えば「r1」の識別子の値とを有している。なお、識別子の値は、TEP600によって生成される。
そして、トンネルパケット702(図7では、Pkt{TEL=5,ID=r1}と表記)は、経路612を経由してTEP182に到達する。トンネルパケット702のTELオプションの識別子フィールドは、TEP182が一時的に格納している識別子(以前転送したことのあるパケットを識別可能とする識別子)と一致しないので、このパケット702は、TEP182に到達すると、トンネルパケット704に更にカプセル化される。元のパケット702にはTELオプションが含まれているので、TEP182は、単にトンネルパケット702内のTELオプションをトンネルパケット704にコピーするとともに、制限フィールドの値を4に減少させる。さらに、TEP182は、ある短い期間だけ、識別子の値「r1」を記憶しておく。この目的は後に明らかとなる。
そして、トンネルパケット704(図7では、Pkt{TEL=4,ID=r1}と表記)は、次のトンネルエントリポイント(TEP184)に到達する。TEP184では、トンネルパケット704は、トンネルパケット706に更にカプセル化される。元のパケット704にはTELオプションが含まれているので、TEP184は、単にトンネルパケット704内のTELオプションをトンネルパケット706にコピーするとともに、制限フィールドの値を3に減少させる。また、同様に、TEP184も、ある短い期間だけ、識別子の値「r1」を記憶しておく。
そして、トンネルパケット706(図7では、Pkt{TEL=3,ID=r1}と表記)は、次のトンネルエントリポイント(TEP186)に到達する。トンネルパケット706のTELオプションの識別子フィールドは、TEP186が一時的に格納している識別子(以前転送したことのあるパケットを識別可能とする識別子)と一致しないので、TEP186では、トンネルパケット706は、トンネルパケット708に更にカプセル化される。元のパケット706にはTELオプションが含まれているので、TEP186は、単にトンネルパケット706内のTELオプションをトンネルパケット708にコピーするとともに、制限フィールドの値を2に減少させる。また、同様に、TEP186も、ある短い期間だけ、識別子の値「r1」を記憶しておく。
そして、トンネルパケット708(図7では、Pkt{TEL=2,ID=r1}と表記)が再びTEP182に到達すると、TEP182は、トンネルパケット708の識別子フィールドと、先ほど一時的に記憶した識別子の値との比較を行う。そして、TEP182は、識別子の値が同一であることに気付き、トンネリングループが検出されたと断定する。これは、異なるトンネルパケットが異なる識別子を有するように識別子の値が生成されているためであり、以前受信したパケットと同一の識別子の値を有するトンネルパケットの受信は、トンネリングループが起こっていることを示しているためである。
なお、実際の環境では複数のトンネリングパケットが扱われることになるので、TEPは、新しい識別子を検出するたびに、検出された新しい識別子を順次記憶するとともに、古くなった識別子を順次削除していくことも可能である。
この結果、TEP182は、トンネルパケットの送信者(すなわち、TEP186)に対して、ICMPエラーメッセージ710(図7では、ICMP−Error{Pkt−708}と表記)を送信する。ICMPエラーメッセージ710は、元のトンネルパケット708を含むとともに、エラーが「トンネリングループの検出」のタイプであることを示している。
そして、このエラーは、ICMPエラーメッセージ712、714、716、718(図7では、それぞれICMP−Error{Pkt−706}、ICMP−Error{Pkt−704}、ICMP−Error{Pkt−702}、ICMP−Error{Pkt−700}と表記)を通じて、送信元ノード180に逆方向に伝搬される。
TELオプションの識別子フィールドが数値生成器を使用して生成されている場合には、トンネルエントリポイントは、上述のアルゴリズムとは異なるアルゴリズム(例えば、図8に示すアルゴリズム)に従って、トンネリングループの検出を行う必要がある。図8には、本発明の実施の形態における好適なフローチャートが示されている。
まず、ステップS810において、ペイロードパケットのあて先オプションヘッダに、TELオプションが存在するか否かのチェックが行われる。
ステップS810においてTELオプションが存在しない場合には、ステップS820に進み、トンネルエントリポイントは、ペイロードパケットのカプセル化を行うとともに、トンネルパケットのあて先オプションヘッダにTELオプションを付加する。このとき付加されるTELオプションには、トンネルエントリポイント用に構成されたデフォルト値が設定された制限フィールドと、新たに生成された数値が設定された識別子フィールドとが含まれる。
一方、ステップS810においてペイロードパケットにTELオプションが含まれている場合には、ステップS830に進み、ペイロードパケットのTELオプションの制限フィールドのチェックが行われる。ここで、制限フィールドの値がゼロの場合には、ステップS840に進み、ペイロードパケットの送信元に対してICMPエラーメッセージが返送される。このICMPエラーメッセージは、トンネルカプセル化の制限を超えた旨を示すように設定される。
また、ステップS830において制限フィールドの値がゼロではない場合には、ステップS850に進む。ステップS850では、ペイロードパケットのTELオプションに、識別子フィールドが含まれているか否かのチェックが行われる。
ステップS850においてTELオプションに識別子フィールドが含まれていない場合には、ステップS860に示すように、ペイロードパケットはカプセル化され、トンネルパケットヘッダにTELオプションが付加される。このとき、トンネルパケットヘッダに付加されるTELオプションには、ペイロードパケットのTELオプションの制限フィールドの値から1を減算した値を有する制限フィールドと、新たに生成された数値が設定された識別子フィールドとが含まれる。
一方、ステップS850においてペイロードパケットのTELオプションに識別子フィールドが含まれている場合には、ステップS870に進み、ペイロードパケットのTELオプションの識別子フィールドに関して、トンネルエントリポイントが以前に受信したトンネルパケットに係る一時的に格納されている識別子と同一か否かのチェックが行われる。
そして、ステップS870において両者が同一の場合(すなわち、ペイロードパケットのTELオプションの識別子フィールドの値が、一時的に格納されている識別子のいずれかと一致する場合)には、トンネリングループが検出される。その結果、ステップS880において、トンネリングループが検出された旨を示すICMPエラーメッセージが、ペイロードパケットの送信元に送信される。
一方、ステップS870においてペイロードパケットのTELオプションの識別子フィールドが、以前に格納された識別子のいずれとも一致しない場合には、ステップS890に進む。ステップS890では、ペイロードパケットはカプセル化され、トンネルパケットヘッダにTELオプションが付加される。このとき、トンネルパケットヘッダに付加されるTELオプションには、ペイロードパケットのTELオプションの制限フィールドの値から1を減算した値を有する制限フィールドと、ペイロードパケットのTELオプションの識別子フィールドが設定された識別子フィールドとが含まれる。さらに、このペイロードパケットのTELオプションの識別子フィールドは、ある短い期間だけ、トンネルエントリポイントによって格納される。なお、ある短い期間以上の時間が経過した場合には、格納されている識別子は、トンネルエントリポイントのメモリから解放される。
上述のように、生成された数値を識別子として使用することによって、トンネルエントリポイントは、最初のトンネルエントリポイントがループ上に存在しない場合に、IPアドレスなどの静的な識別子を用いた場合よりも、より正確にトンネリングループを検出することが可能となる。
しかしながら、この方法は、最初のトンネルエントリポイントがループ上に存在する場合には、ループの検出精度を低下させることになる。これは、各トンネルエントリポイントがそれぞれ異なる数値を生成することは保証されにくいためである。すなわち、2つのトンネルエントリポイントが2つの異なるトンネルパケットに対して同一の識別子を生成してしまうおそれがあり、その結果、トンネルエントリポイントは、実在しないトンネリングループを誤って検出してしまうおそれがある。
さらに、ループの検出を行うために生成された識別子を使用することが可能か否かは、識別子のサイズ、トンネルエントリポイントが識別子を格納しておく期間(上述のある短い期間)、ループ上のトンネルエントリポイントの数に依存する。
一般に、識別子(すなわち、識別子に使用されるビット数)のサイズが大きいほど、2つのトンネルエントリポイントが異なるパケットに対して同一の識別子を生成する可能性は少なくなる。しかしながら、識別子のサイズが大きいほど、パケットのオーバヘッドや、必要なメモリは大きくなる。
また、同様に、受信した識別子が長い期間格納されることにより、特にトンネリングループが大きい場合(すなわち、トンネリングループが多数のノードによって構成される場合)に、トンネルエントリポイントは、より正確にトンネリングループを検出することが可能となる。しかしながら、識別子を長い期間格納するためには、より大きなメモリが必要となるとともに、識別子の比較数も多くなる。
受信した識別子を格納する時間の長さを決定する方法としては、TELオプションの制限フィールドの値に従って時間の大きさを決定する方法が可能である。これは、制限フィールドの値が大きいトンネルパケットは、大きなトンネリングループを経由する可能性が高いことを意味している一方、小さな制限フィールドを有するトンネルパケットは、ループを一周する前にトンネルカプセル化の制限がゼロになることによって破棄される可能性があることに基づいている。
上述の説明によれば、各トンネルパケットに対して異なる識別子を使用することによって、トンネルエントリポイントは、最初のトンネルエントリポイントがループ上に存在しない場合に、一意の識別子を使用することによって提供される方法よりも正確にトンネリングループを検出することが可能となる。しかしながら、この方法によれば、最初のトンネルエントリポイントがループに存在する場合の精度の低減や、メモリの増加、計算の必要性をもたらされる可能性もある。
そこで、上述の2つの方法(識別子にトンネルエントリポイント固有の値を用いる方法と、識別子に各トンネルパケットに固有の値を用いる方法)を組み合わせることによって、双方の短所を補完することが可能である。
この場合、識別子は、各トンネルエントリポイントに一意である静的な部分と、異なるトンネルパケットに対して異なるように生成される動的な部分の2つの部分によって構成される。静的な部分は、トンネルエントリポイントのIPアドレス、又はトンネルエントリポイントのIPアドレスの暗号ハッシュが可能である。一方、動的な部分は、例えば、ランダムに生成される数列や昇順又は降順の数列から生成される数値が可能である。
なお、当業者であれば、静的及び動的な部分を任意に組み合わせることによって識別子として使用可能となることが分かるであろう。静的及び動的な部分の組み合わせとしては、例えば、静的な部分を識別子のプレフィックスとするとともに動的な部分を識別子のサフィックスとしたり、動的な部分を識別子のプレフィックスとするとともに静的な部分を識別子のサフィックスとしたり、あるいは、2つの部分を交互に配置して識別子を形成したりすることが挙げられる。
図9には、本発明の実施の形態において、識別子を静的及び動的な部分で構成することにより、トンネリングループを検出する方法が図示されている。なお、図9では、図7と同様に、トンネルエントリポイント(TEP600、182、184、186)が、図6Aに示されるように配置されている。送信元ノード180がデータパケット900(図9では、Dataと表記)を送信すると、パケット900は、最初のトンネルエントリポイント(TEP600)に到達する。
TEP600は、新たなTELオプションを有するトンネルパケット902にパケット900をカプセル化する。TELオプションの制限フィールドは、例えば「5」のデフォルト値と、例えば「600+r1」の識別子の値とを有している。なお、識別子の静的な部分は、TEP600に一意である「600」であり、TEP600によって生成された動的な部分は「r1」である。
そして、トンネルパケット902(図7では、Pkt{TEL=5,ID=600+r1}と表記)はTEP182に到達し、トンネルパケット902のTELオプションの識別子フィールドに、TEP182自身の識別子、及びTEP182が一時的に格納している識別子(以前転送したことのあるパケットを識別可能とする識別子)が存在しないので、TEP182において、トンネルパケット904に更にカプセル化される。元のパケット902にはTELオプションが含まれているので、TEP182は、単にトンネルパケット902内のTELオプションをトンネルパケット904にコピーするとともに、制限フィールドの値を4に減少させる。さらに、TEP182は、ある短い期間だけ、識別子の値「600+r1」を記憶しておく。
そして、トンネルパケット904(図9では、Pkt{TEL=4,ID=600+r1}と表記)は、次のトンネルエントリポイント(TEP184)に到達する。TEP184では、トンネルパケット904のTELオプションの識別子フィールドに、TEP184自身の識別子、及びTEP184が一時的に格納している識別子(以前転送したことのあるパケットを識別可能とする識別子)が存在しないので、トンネルパケット904は、トンネルパケット906に更にカプセル化される。元のパケット904にはTELオプションが含まれているので、TEP184は、単にトンネルパケット904内のTELオプションをトンネルパケット906にコピーするとともに、制限フィールドの値を3に減少させる。また、同様に、TEP184も、ある短い期間だけ、識別子の値「600+r1」を記憶しておく。
そして、トンネルパケット906(図9では、Pkt{TEL=3,ID=600+r1}と表記)は、次のトンネルエントリポイント(TEP186)に到達する。TEP186では、トンネルパケット906のTELオプションの識別子フィールドに、TEP186自身の識別子、及びTEP186が一時的に格納している識別子(以前転送したことのあるパケットを識別可能とする識別子)が存在しないので、トンネルパケット906は、トンネルパケット908に更にカプセル化される。元のパケット906にはTELオプションが含まれているので、TEP186は、単にトンネルパケット906内のTELオプションをトンネルパケット908にコピーするとともに、制限フィールドの値を2に減少させる。また、同様に、TEP186も、ある短い期間だけ、識別子の値「600+r1」を記憶しておく。
そして、トンネルパケット908(図9では、Pkt{TEL=2,ID=600+r1}と表記)が再びTEP182に到達すると、TEP182は、トンネルパケット908の識別子フィールドと、先ほど一時的に記憶した識別子の値との比較を行う。そして、TEP182は、識別子の値が同一であることに気付き、トンネリングループが検出された旨が明らかとなる。
なお、実際の環境では複数のトンネリングパケットが扱われることになるので、TEPは、一時的に記憶しておく識別子の格納量を固定しておき、新しい識別子を検出するたびに、検出された新しい識別子を順次記憶するとともに、古くなった識別子を順次削除していくことも可能である。
この結果、TEP182は、トンネルパケット908の送信者(すなわち、TEP186)に対して、ICMPエラーメッセージ910(図9では、ICMP−Error{Pkt−908}と表記)を送信する。ICMPエラーメッセージ910は、元のトンネルパケット908を含むとともに、エラーが「トンネリングループの検出」のタイプであることを示している。
そして、このエラーは、ICMPエラーメッセージ912、914、916、918(図9では、それぞれICMP−Error{Pkt−906}、ICMP−Error{Pkt−904}、ICMP−Error{Pkt−902}、ICMP−Error{Pkt−900}と表記)を通じて、送信元ノード180に逆方向に伝搬される。
TELオプションの識別子フィールドに静的及び動的な部分が存在する場合には、トンネルエントリポイントは、上述のアルゴリズムとは異なるアルゴリズム(例えば、図10に示すアルゴリズム)に従って、トンネリングループの検出を行う必要がある。図10には、本発明の実施の形態における好適なフローチャートが示されている。
まず、ステップS1010において、ペイロードパケットのあて先オプションヘッダに、TELオプションが存在するか否かのチェックが行われる。
ステップS1010においてTELオプションが存在しない場合には、ステップS1020に進み、トンネルエントリポイントは、ペイロードパケットのカプセル化を行うとともに、トンネルパケットのあて先オプションヘッダにTELオプションを付加する。このとき付加されるTELオプションには、トンネルエントリポイント用に構成されたデフォルト値が設定された制限フィールドと、トンネルエントリポイントの一意の識別子及び新たに生成された数値が設定された識別子フィールドとが含まれる。
一方、ステップS1010においてペイロードパケットにTELオプションが含まれている場合には、ステップS1030に進み、ペイロードパケットのTELオプションの制限フィールドのチェックが行われる。ここで、制限フィールドの値がゼロの場合には、ステップS1040に進み、ペイロードパケットの送信元に対してICMPエラーメッセージが返送される。このICMPエラーメッセージは、トンネルカプセル化の制限を超えた旨を示すように設定される。
また、制限フィールドの値がゼロではない場合には、ステップS1050に進む。ステップS1050では、ペイロードパケットのTELオプションに、識別子フィールドが含まれているか否かのチェックが行われる。
ステップS1050においてTELオプションに識別子フィールドが含まれていない場合には、ステップS1060に示されるように、ペイロードパケットはカプセル化され、トンネルパケットヘッダにTELオプションが付加される。このとき、トンネルパケットヘッダに付加されるTELオプションには、ペイロードパケットのTELオプションの制限フィールドの値から1を減算した値を有する制限フィールドと、トンネルエントリポイントの一意の識別子及び新たに生成された数値が設定された識別子フィールドとが含まれる。
一方、ステップS1050においてペイロードパケットのTELオプションに識別子フィールドが含まれている場合には、ステップS1070に進み、ペイロードパケットのTELオプションの識別子フィールドに関して、静的な部分がトンネルエントリポイントの一意の識別子(すなわち、自身の識別子)と同一か否かのチェックが行われる。
ステップS1070において静的な部分がトンネルエントリポイントの一意の識別子と同一の場合には、トンネリングループが起こっており、ステップS1080に進む。ステップS1080では、トンネリングループが検出された旨を示すICMPエラーメッセージが、ペイロードパケットの送信元に送信される。
一方、ステップS1070において静的な部分がトンネルエントリポイントの一意の識別子と同一ではない場合には、ステップS1075に進み、識別子全体(静的及び動的な部分)に関して、トンネルエントリポイントが以前に受信したトンネルパケットに係る一時的に格納されている識別子のいずれかと同一であるか否かのチェックが行われる。このステップS1075によって、同一のトンネルエントリポイントにおいて生成された識別子のチェックが行われる。
ステップS1075において、ペイロードパケットのTELオプションの識別子フィールドが、トンネルエントリポイントが以前に受信したトンネルパケットの一時的に格納されている識別子のいずれかと同一である場合には、トンネリングループが検出される。その結果、ステップS1080において、トンネリングループが検出された旨を示すICMPエラーメッセージが、ペイロードパケットの送信元に送信される。
一方、ステップS1075において、ペイロードパケットのTELオプションの識別子フィールドが、トンネルエントリポイントが以前に受信したトンネルパケットの一時的に格納されている識別子のいずれとも同一ではない場合には、ステップS1090に進み、ペイロードパケットはカプセル化され、トンネルパケットヘッダにTELオプションが付加される。このとき、トンネルパケットヘッダに付加されるTELオプションには、ペイロードパケットのTELオプションの制限フィールドの値から1を減算した値を有する制限フィールドと、ペイロードパケットのTELオプションの識別子フィールドが設定された識別子フィールドとが含まれる。さらに、このペイロードパケットのTELオプションの識別子フィールドは、ある短い期間だけ、トンネルエントリポイントによって格納される。なお、ある短い期間以上の時間が経過した場合には、格納されている識別子は、トンネルエントリポイントのメモリから解放される。
トンネリングループが形成される場合としては、主に2つの場合が存在する。図11A及び図11Bには、これらの2つの場合が図示されている。ここで、送信元ノード1100(図11A及び図11Bでは、ソースと表記)はデータパケットの発信元である。
図11Aにおいて、送信元ノード1100から送信されたデータパケットは、まず、経路1110を通ってトンネルエントリポイント(TEP1120)に届く。なお、経路1110に沿って、不図示の複数のルータが存在してもよいが、ここでは、TEP1120が、データパケットをカプセル化する最初のトンネルエントリポイントである。
そして、カプセル化されたパケットは経路1112を経由してTEP1122に発送され、TEP1122において、トンネルパケットは更にカプセル化される。なお、経路1112に沿って、不図示の複数のルータが存在してもよい。
そして、カプセル化されたパケットは経路1114を経由してTEP1124に発送され、TEP1124において、トンネルパケットは更にカプセル化される。なお、経路1114に沿って、不図示の複数のルータが存在してもよい。
そして、カプセル化されたパケットは経路1116を経由してTEP1120に戻る。なお、経路1116に沿って、不図示の複数のルータが存在してもよい。その結果、最初のトンネルエントリポイント(すなわち、TEP1120)がループの一部を形成するトンネリングループが形成される。
一方、図11Bでは、送信元ノード1100から送信されたデータパケットは、まず、経路1130を通ってトンネルエントリポイント(TEP1140)に届く。なお、経路1130に沿って、不図示の複数のルータが存在してもよいが、ここでは、TEP1140が、データパケットをカプセル化する最初のトンネルエントリポイントである。
そして、カプセル化されたパケットは経路1132を経由してTEP1142に発送され、TEP1142において、トンネルパケットは更にカプセル化される。なお、経路1132に沿って、不図示の複数のルータが存在してもよい。
そして、カプセル化されたパケットは経路1134を経由してTEP1144に発送され、TEP1144において、トンネルパケットは更にカプセル化される。なお、経路1134に沿って、不図示の複数のルータが存在してもよい。
そして、カプセル化されたパケットは経路1136を経由してTEP1146に発送され、TEP1146において、トンネルパケットは更にカプセル化される。なお、経路1136に沿って、不図示の複数のルータが存在してもよい。
そして、カプセル化されたパケットは経路1138を経由してTEP1142に戻る。なお、経路1138に沿って、不図示の複数のルータが存在してもよい。その結果、最初のトンネルエントリポイント(すなわち、TEP1140)がループ上に存在しない状態で、トンネリングループが形成される。
また、図11Cには、トンネリングループを形成しない、多数のトンネルエントリポイントに関する別の構成例が図示されている。図11Cでは、送信元ノード1100(図11Cでは、ソースと表記)から送信されたデータパケットは、最初に経路1150を通って、トンネルエントリポイント(TEP1160)に届く。なお、経路1150に沿って、不図示の複数のルータが存在してもよいが、ここでは、TEP1160が、データパケットをカプセル化する最初のトンネルエントリポイントである。
そして、カプセル化されたパケットは経路1152を経由してTEP1162に発送され、TEP1162において、トンネルパケットは更にカプセル化される。なお、経路1152に沿って、不図示の複数のルータが存在してもよい。
その後、カプセル化されたパケットは経路1154を経由してTEP1164に発送され、TEP1164において、トンネルパケットは更にカプセル化される。なお、経路1154に沿って、不図示の複数のルータが存在してもよい。
そして、カプセル化されたパケットは経路1156を経由してTEP1166に発送され、TEP1166において、トンネルパケットは更にカプセル化される。なお、経路1156に沿って、不図示の複数のルータが存在してもよい。この場合には、トンネリングループは形成されない。なお、これらのトンネルエントリポイントは、他のエンティティとの間においてはトンネルを確立したルータであってもよい。
なお、当業者であれば、本発明は、VPNゲートウェイ、モバイルIPv6又はネットワークモビリティにおけるホームエージェント、モバイルルータ、IPv4−IPv6変換ルータなどの任意の形式のトンネルエントリポイントに適用されることが分かるであろう。さらに、トンネリングループは、異なるタイプのトンネルエントリポイントの組み合わせによって形成されてもよい。
本明細書には、識別子を使用してトンネリングループの形成を検出するための3つの好適な方法が記載されている。そして、各識別子の形式によって、それぞれ異なる利益がもたらされる。なお、当業者であれば、本発明に関して、各識別子の形式に関する利益に基づき、特に異なる状況に応じて、異なる識別子の使用が可能であることが分かるであろう。
本発明に係る第1の好適なトンネリングループ検出方法は、例えばトンネルエントリポイントのIPアドレスなどのように、静的かつ一意の識別子を使用するものである。上述のように、静的かつ一意の識別子を使用することによって、最初のトンネルエントリポイントがループの一部である場合(例えば、図11Aに示す構成の場合)に、トンネルエントリポイントは、すべてのトンネリングループを正しく検出することが可能となる。
しかしながら、最初のトンネルエントリポイントがループの一部ではない場合、静的な識別子では、トンネリングループが存在している場合(例えば、図11Bに示す構成の場合)と、トンネリングループは存在していないが、多数のトンネルエントリポイントによってトンネルカプセル化の制限の超過が生じている場合(例えば、図11Cに示す構成の場合)とを正しく区別することができない。
静的かつ一意の識別子を使用することによって、最初のトンネルエントリポイントがトンネリングループの一部である場合に、トンネリングループの検出が常に可能になるという利益があり、また、トンネルエントリポイントが以前に受信した識別子を比較用に格納しておく必要がないという利益がある。
また、本発明に係る第2の好適なトンネリングループ検出方法は、例えば、乱数生成器から生成される数値や、連続した数値などのように、トンネルパケットごとに異なるように生成される識別子を使用するものである。
上述のように、トンネルパケットごとに変化する識別子を使用することによって、最初のトンネルエントリポイントがループの一部ではない場合(例えば、図11Bに示す構成)に、トンネルエントリポイントは、より精度良くトンネリングループを検出することが可能となる。しかしながら、精度のレベルは、識別子のサイズに依存する。
また、本発明に係る第3の好適なトンネリングループ検出方法は、静的かつ一意の数値と、トンネルパケットごとに異なるように生成される数値とを組み合わせて、識別子を形成するものである。
上述のように、この組み合わせを使用することによって、トンネルエントリポイントは、最初のトンネルエントリポイントがループ上に存在する場合(例えば、図11Aに示す構成)に、すべてのトンネリングループを正しく検出することが可能となり、最初のトンネルエントリポイントがループ上に存在しない場合(例えば、図11Bに示す構成)には、識別子の可変部分のサイズに依存した精度で、トンネリングループを検出することが可能となる。
なお、これは、最良の結果を実現するが、最大の識別子サイズが必要となる(したがって、パケットのオーバヘッドが増大する)とともに、トンネルエントリポイントは、受信した識別子を比較用に一時的に格納する必要がある。
また、本発明を実現するためには、図12に図示されるような機能アーキテクチャが使用されることが望ましい。なお、図12には、トンネルエントリポイントに含まれるトンネリングループ検出制御機能(トンネリングループ検出制御装置)に関する構成要素が図示されている。
本発明の実施の形態によれば、図12に示されるトンネルエントリポイント1200の機能アーキテクチャは、ルーティング部1220と、1つ又は複数のネットワークインタフェース1210とを有している。なお、図12では、ネットワークインタフェース1210は、1つのみ図示されている。
各ネットワークインタフェース1210は、トンネルエントリポイント1200が、リンクアクセス技術を使用して経路1285を通じた他のノードとの通信を行うために必要な、すべてのネットワークハードウェア、ソフトウェア、プロトコルを表す機能ブロックである。
例えば、ISO(International Standards Organization:国際標準化機構)のOSI(Open System Interconnect)の7レイヤモデルにおいて、ネットワークインタフェース1210は、物理層及びデータリンク層を包含している。
ネットワークインタフェース1210がパケットを受信した場合には、更なる処理のために、データパス1295を通じてルーティング部1220にパケットを渡す。同様に、ルーティング部1220は、パケットの送信を行う際には、データ経路1295を通じた送信を行うために、対応するネットワークインタフェース1210にパケットを渡す。
また、ルーティング部1220は、インターネットワーキングレイヤにおけるルーティングに関するすべての処理を行う。OSIモデルの下では、ルーティング部1220は、ネットワーク層のすべての機能を包含している。
ルーティング部1220は、基本的に、IPv6や一般的なトンネリング機能を実行する。ルーティング部1220には、ルーティングテーブル1230及びトンネリングモジュール1240が存在している。
ルーティングテーブル1230には、ルーティング部1220が経路を決定するための情報が含まれている。なお、ルーティングテーブル1230は、エントリのリストのように構成されており、各エントリには、あて先フィールド及び次ホップフィールドが含まれていることが望ましい。あて先フィールドには、完全なあて先アドレス、又はあて先アドレスのプレフィックスが格納されており、次ホップフィールドには、あて先フィールドに格納されている値と一致するあて先アドレスを有するパケットの転送場所が記載されている。
また、トンネリングモジュール1240は、必要に応じて、IPトンネルの確立、維持、破棄を行う。例えば、NEMOベーシックサポートの下では、モバイルルータは、自身のホームエージェントとの間に双方向トンネルを確立する。これは、トンネリングモジュール1240によって維持される。
なお、当業者であれば、トンネリングモジュール1240は、トンネルインタフェースとして知られる仮想ネットワークインタフェースを作成することが望ましいことが分かるであろう。このトンネルインタフェースは、ルーティング部1220にとっては、他のネットワークインタフェース1210と等価に見える。
また、トンネリングモジュール1240には、ループ検出モジュール1250が存在している。ループ検出モジュール1250は、受信パケットに対して、トンネルカプセル化制限オプションが存在するか否かの検査を行うとともに、トンネリングループが検出された場合にはエラーを始動する。さらに、ループ検出モジュール1250は、送出するトンネルパケットに対するトンネルカプセル化制限オプションの挿入や、トンネルカプセル化制限オプションに対して制限値や識別子の設定も行う。また、ループ検出モジュール1250が、静的な識別子及び/又は動的な識別子の読み出し又は生成の機能を有してもよく、さらには、静的な識別子及び動的な識別子を組み合わせた識別子を生成する機能を有していてもよい。
なお、当業者であれば、図12に図示されているトンネルエントリポイントの機能アーキテクチャには、トンネルエントリポイントを実現するために必要な最小限の機能ブロックのみが含まれており、実際には、さらに、他の機能が必要であるかもしれないことが分かるであろう。例えば、トンネルエントリポイントがホームエージェントである場合には、ホームエージェント能力を提供するための機能(例えば、バインディングキャッシュエントリなど)が追加される必要がある。
また、上述の実施の形態では、通常の通信で送信されたパケットをトンネリングする際に識別子を付加しているが、パケットのヘッダの任意の箇所に、本発明に係る識別子を付加した場合でも、上述の実施の形態と同様の動作及び効果が実現される。例えば、パケットの転送が行われる際に、本発明に係る識別子がパケットのルーティングヘッダに挿入されてもよい。
また、上述の実施の形態では、通常の通信で送信されたパケットをトンネリングする際に識別子を付加しているが、上述の実施の形態と同様のプロセスを用いて、トンネルカプセル化の制限を超えた際に返信されるICMPエラーメッセージに識別子を付加することによっても、トンネリングループの検出が可能となる。すなわち、この方法によれば、パケットの送信者に返信されるICMPエラーメッセージに識別子が付加されていない場合には識別子の付加を行い、また、ICMPエラーメッセージに識別子が付加されている場合には、自身を一意に識別可能とする識別子や、自身が以前に格納した識別子と比較し、比較結果が一致しない場合には、受信したICMPエラーメッセージに付加されている識別子を、送信するICMPエラーメッセージにコピーし、比較結果が一致した場合には、トンネリングループの検出が把握される。なお、トンネリングループを検出したTEPは、トンネルカプセル化の制限を超えた理由がトンネリングループであることを示すICMPエラーメッセージに変更してもよい。このように、上記の方法では、エラー時にのみトンネリングループの検出が行われる。
したがって、本発明によれば、パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置において、
前記パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
前記パケットカプセル化手段で前記トンネルパケットを生成する場合に、前記パケット受信手段で受信した前記パケットのヘッダ内に存在するトンネルカプセル化の上限を定める制限値を確認するトンネル制限確認手段と、
前記トンネル制限確認手段において、前記パケット受信手段で受信した前記パケットに対して更なるカプセル化を行うことができないと判断された場合に、トンネルカプセル化の上限を超えた旨を通知するエラーメッセージを生成するとともに、前記エラーメッセージのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
エラーの通知先に向けて前記エラーメッセージを返送するエラーメッセージ返送手段とを、
有するトンネリングループ検出制御装置も提供される。
また、本発明によれば、パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置において、
パケットを受信するパケット受信手段と、
前記パケット受信手段で受信した前記パケットが、トンネルカプセル化の上限を超えた旨を通知するエラーメッセージである場合に、前記エラーメッセージのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の値とが同一か否かを比較するエラーメッセージ識別子比較手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記トンネリングループ検出用識別子と前記所定の値とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
前記エラーメッセージ識別子比較手段による比較の結果、前記トンネリングループ検出用識別子と前記所定の値とが同一ではない場合には、前記パケット受信手段で受信した前記エラーメッセージのヘッダに含まれている前記トンネリングループ検出用識別子を、エラーの通知先に向けて送信するエラーメッセージのヘッダに前記トンネリングループ検出用識別子として挿入する識別子挿入手段とを、
エラーの通知先に向けて、前記識別挿入手段で前記トンネリングループ検出用識別子が挿入された前記エラーメッセージを返送するエラーメッセージ返送手段とを、
有するトンネリングループ検出制御装置も提供される。
また、本発明によれば、上記のトンネリングループ検出制御装置において、前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を使用するように構成されているトンネリングループ検出制御装置も提供される。
また、本発明によれば、上記のトンネリングループ検出制御装置において、前記トンネリングループ検出用識別子として、前記エラーメッセージごとに異なる情報を使用するように構成されており、前記識別子比較手段による比較の結果、前記トンネリングループ検出用識別子と前記所定の値とが同一ではない場合には、前記パケット受信手段で受信した前記エラーメッセージのヘッダに含まれている前記トンネリングループ検出用識別子を、前記所定の値として所定の情報格納手段に格納するように制御する識別子格納制御手段を有するトンネリングループ検出制御装置も提供される。
また、本明細書では、最も実用的かつ好適な実施の形態であると思われる内容で本発明の開示及び説明が行われているが、当業者であれば、本発明の範囲を逸脱することなく、デザインやパラメータの詳細において様々な変更が可能であることが分かるであろう。
なお、上記の本発明の実施の形態の説明で用いた各機能ブロックは、典型的には集積回路であるLSI(Large Scale Integration)として実現される。これらは個別に1チップ化されてもよいし、一部又はすべてを含むように1チップ化されてもよい。なお、ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の適応などが可能性としてあり得る。
本発明は、トンネルエントリポイントがトンネリングループの存在を検出することができるようになるという効果を有しており、パケット交換型データ通信ネットワークにかかる通信分野や、特に、パケットのカプセル化(パケットのトンネリング)の技術分野に適用可能である。
従来の技術において、トンネリングループが起こることが予想される第1の構成例を示す図 従来の技術において、トンネリングループが起こることが予想される第2の構成例を示す図 従来の技術における動作に係るシーケンスチャートの一例を示す図 本発明の実施の形態において、静的な識別子を使用した場合の動作に係るシーケンスチャートの一例を示す図 本発明の実施の形態において、静的な識別子を使用した場合に、トンネルエントリポイントがパケットの処理の際に使用するアルゴリズムの好適なフローチャートを示す図 本発明の実施の形態において、TELオプションを含むトンネルパケットの好適なパケットフォーマットの一例を示す図 本発明の実施の形態において、ICMPエラーメッセージの好適なパケットフォーマットの一例を示す図 本発明の実施の形態において、最初のトンネルエントリポイントがループ上に存在しない場合の構成例を示す図 図6Aに図示されている構成において、送信元ノードがデータパケットを送信する際のシーケンスチャートの一例を示す図 図6Bに図示されているシーケンスチャートに係る方法において、トンネリングループの検出を誤って行う動作に係るシーケンスチャートを示す図 本発明の実施の形態において、静的な識別子を使用した場合の動作に係るシーケンスチャートの一例を示す図 本発明の実施の形態において、動的な識別子を使用した場合に、トンネルエントリポイントがパケットの処理の際に使用するアルゴリズムの好適なフローチャートを示す図 本発明の実施の形態において、静的及び動的な識別子を組み合わせて使用した場合の動作に係るシーケンスチャートの一例を示す図 本発明の実施の形態において、静的及び動的な識別子を組み合わせて使用した場合に、トンネルエントリポイントがパケットの処理の際に使用するアルゴリズムの好適なフローチャートを示す図 本発明の実施の形態において、トンネリングループが形成される場合の第1の例を示す図 本発明の実施の形態において、トンネリングループが形成される場合の第2の例を示す図 本発明の実施の形態において、トンネリングループが形成されない場合の一例を示す図 本発明の実施の形態におけるトンネルエントリポイントの構成例を示す図
符号の説明
100 インターネット
102 モバイルネットワーク
110、112、114 MR(モバイルルータ)
130 MN(モバイルノード)
140、142 HA(ホームエージェント)
180、1100 送信元ノード(ソース)
182、184、186、600、1120、1122、1124、1140、1142、1144、1146、1160、1162、1164、1166、1200 TEP(トンネルエントリポイント、トンネル入口ノード)
1210 ネットワークインタフェース
1220 ルーティング部
1230 ルーティングテーブル
1240 トンネリングモジュール
1250 ループ検出モジュール

Claims (17)

  1. パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置であって、
    パケットを受信するパケット受信手段と、
    前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
    前記パケットカプセル化手段で前記トンネルパケットを生成する際に付加される前記トンネルパケットのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
    前記パケットカプセル化手段で生成された前記トンネルパケットを送信するトンネルパケット送信手段と、
    前記パケット受信手段で受信した前記パケットのヘッダに挿入されている前記トンネリングループ検出用識別子に基づいて、トンネリングループが起こっているか否かを確認し、トンネリングループを検出した場合には、トンネリングループの検出エラー処理を開始するループ検出手段とを、
    有するトンネリングループ検出制御装置。
  2. 前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を使用するように構成されている請求項1に記載のトンネリングループ検出制御装置。
  3. 前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている請求項2に記載のトンネリングループ検出制御装置。
  4. 前記ループ検出手段が、
    前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一か否かを確認する識別子比較手段と、
    前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
    前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と前記一意の情報とが同一ではない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子複製制御手段とを、
    有する請求項2に記載のトンネリングループ検出制御装置。
  5. パケットに関してトンネリングループが起こっているか否かを検出可能とするために、転送するパケットにトンネリングループ検出用識別子を付加するように構成されているトンネリングループ検出制御装置であって、
    パケットを受信するパケット受信手段と、
    前記パケット受信手段で受信した前記パケットがトンネルカプセル化の上限を超えている場合に、前記トンネリングループ検出用識別子が前記パケットのヘッダに挿入されている前記パケットをペイロード部に含み、かつ、トンネルカプセル化の上限を超えている旨を通知するエラーメッセージを生成するエラーメッセージ生成手段と、
    エラーの通知先に向けて、前記エラーメッセージ生成手段で生成された前記エラーメッセージを返送するエラーメッセージ返送手段と、
    前記エラーメッセージを受信するエラーメッセージ受信手段と、
    前記エラーメッセージ受信手段で受信した前記エラーメッセージのペイロード部に存在する前記パケットのヘッダに挿入されている前記トンネリングループ検出用識別子に基づいて、トンネリングループが起こっているか否かを確認し、トンネリングループを検出した場合には、トンネリングループの検出エラー処理を開始するループ検出手段と、
    前記パケット受信手段で受信した前記パケットがトンネルカプセル化の上限を超えていない場合に、前記パケット受信手段で受信した前記パケットをカプセル化して、トンネルパケットを生成するパケットカプセル化手段と、
    前記パケットカプセル化手段で前記トンネルパケットを生成する際に付加される前記トンネルパケットのヘッダに、前記トンネリングループ検出用識別子を挿入する識別子挿入手段と、
    前記パケットカプセル化手段で生成された前記トンネルパケットを送信するトンネルパケット送信手段とを、
    有するトンネリングループ検出制御装置。
  6. 前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を使用するように構成されている請求項5に記載のトンネリングループ検出制御装置。
  7. 前記ループ検出手段が、
    前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記一意の情報とが同一か否かを確認する識別子比較手段と、
    前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記一意の情報とが同一ではない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子複製制御手段と、
    前記エラーメッセージ受信手段で受信した前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを比較するエラーメッセージ識別子比較手段と、
    前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段とを有し、
    前記エラーメッセージ識別子比較手段による比較の結果、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子の値と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが同一ではない場合には、前記エラーメッセージ生成手段が、前記エラーメッセージのペイロード部に存在するパケットのペイロード部に含まれるパケットを含むエラーメッセージを生成し、かつ、前記エラーメッセージのペイロード部に存在するパケットのヘッダに含まれている前記トンネリングループ検出用識別子を前記所定の情報格納手段に格納するように制御する、
    請求項に記載のトンネリングループ検出制御装置。
  8. 前記ループ検出手段が、
    前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか1つと前記一意の情報とが同一か否かを確認する識別子比較手段と、
    前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のいずれか1つと前記一意の情報とが同一の場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
    前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子を構成する複数の情報のすべてと前記一意の情報とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子と、前記一意の情報とによってトンネリングループ検出用識別子を構成して、新たに構成された前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段とを、
    有する請求項2に記載のトンネリングループ検出制御装置。
  9. 前記トンネリングループ検出用識別子として、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を使用するように構成されている請求項1に記載のトンネリングループ検出制御装置。
  10. ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する請求項に記載のトンネリングループ検出制御装置。
  11. 前記ループ検出手段が、
    前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記トンネルパケットごとに異なる情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
    前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
    前記識別子比較手段による比較の結果、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致しない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
    有する請求項に記載のトンネリングループ検出制御装置。
  12. 格納から所定の期間以上経過した場合には、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する請求項11に記載のトンネリングループ検出制御装置。
  13. 前記トンネリングループ検出用識別子として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられている一意の情報を含む静的な部分と、前記パケットカプセル化手段で生成された前記トンネルパケットごとに異なる情報を含む動的な部分とを組み合わせた情報を使用するように構成されている請求項1に記載のトンネリングループ検出制御装置。
  14. 前記静的な部分として、前記トンネリングループ検出制御装置を含む通信装置ごとに割り当てられているアドレス情報、又は前記アドレス情報に対するハッシュ関数の演算結果を使用するように構成されている請求項13に記載のトンネリングループ検出制御装置。
  15. ランダムに又は所定の数列に従って、前記トンネルパケットごとに異なる情報として使用する数値を生成する数値生成手段を有する請求項14に記載のトンネリングループ検出制御装置。
  16. 前記ループ検出手段が、
    前記パケット受信手段で受信した前記パケットのヘッダに前記トンネリングループ検出用識別子が存在するか否かを確認する識別子存在確認手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認されなかった場合には、前記識別子挿入手段が、前記一意の情報と前記トンネルパケットごとに異なる情報とを組み合わせた情報を前記トンネリングループ検出用識別子として挿入するように制御する識別子挿入制御手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子の静的な部分と前記一意の情報とが一致するか否かを確認する静的識別子比較手段と、
    前記識別子存在確認手段で前記トンネリングループ検出用識別子の存在が確認された場合には、前記パケット受信手段で受信した前記パケットのヘッダ内の前記トンネリングループ検出用識別子と所定の情報格納手段に格納されているトンネリングループ検出用識別子とが一致するか否かを確認する識別子比較手段と、
    前記静的識別子比較手段及び前記識別子比較手段のいずれか一方の結果が一致する場合には、トンネリングループの検出エラー処理を開始するエラー処理開始手段と、
    前記静的識別子比較手段及び前記識別子比較手段の両方とも一致が見られない場合には、前記識別子挿入手段が、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を、前記トンネルパケットのヘッダに前記トンネリングループ検出用識別子として挿入するように制御するとともに、前記パケット受信手段で受信した前記パケットのヘッダに含まれる前記トンネリングループ検出用識別子を前記所定の情報格納手段に格納するように制御する識別子複製制御手段とを、
    有する請求項13に記載のトンネリングループ検出制御装置。
  17. 格納から所定の期間以上経過した場合には、前記所定の情報格納手段に格納されているトンネリングループ検出用識別子が前記所定の情報格納手段から解放されるように制御するメモリ制御手段を有する請求項16に記載のトンネリングループ検出制御装置。
JP2008521073A 2005-10-28 2006-10-30 トンネリングループ検出制御装置 Expired - Fee Related JP4747197B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008521073A JP4747197B2 (ja) 2005-10-28 2006-10-30 トンネリングループ検出制御装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005315489 2005-10-28
JP2005315489 2005-10-28
PCT/JP2006/322061 WO2007049826A2 (en) 2005-10-28 2006-10-30 Tunneling loop detection control apparatus
JP2008521073A JP4747197B2 (ja) 2005-10-28 2006-10-30 トンネリングループ検出制御装置

Publications (3)

Publication Number Publication Date
JP2009514265A JP2009514265A (ja) 2009-04-02
JP2009514265A5 JP2009514265A5 (ja) 2010-10-21
JP4747197B2 true JP4747197B2 (ja) 2011-08-17

Family

ID=37890626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008521073A Expired - Fee Related JP4747197B2 (ja) 2005-10-28 2006-10-30 トンネリングループ検出制御装置

Country Status (3)

Country Link
US (1) US7969892B2 (ja)
JP (1) JP4747197B2 (ja)
WO (1) WO2007049826A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1968272A1 (en) * 2007-03-05 2008-09-10 Matsushita Electric Industrial Co., Ltd. Loop detection for mobile IP home agents
US8510466B2 (en) * 2008-03-03 2013-08-13 Verizon Patent And Licensing Inc. Bypassing an application layer gateway
CN101631344B (zh) * 2008-07-16 2011-10-05 华为技术有限公司 隧道管理方法、装置及通信系统
JP5193797B2 (ja) * 2008-10-23 2013-05-08 Kddi株式会社 移動通信ネットワークシステム、ホームエージェント、アクセスゲートウェイ及び相手ノード
US20100322083A1 (en) * 2009-06-19 2010-12-23 Telefonaktiebolaget L M Ericsson (Publ) Detection and removal of routing loops in a mobile internet protocol network
US20110019610A1 (en) * 2009-07-22 2011-01-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for preventing tunnel looping
US20110211587A1 (en) * 2009-10-30 2011-09-01 Softbank Bb Corp. Packet Relaying Device, Packet Relaying Method And Program
CN102088391B (zh) * 2009-12-07 2013-09-11 华为技术有限公司 一种IPv6报文的处理方法、设备和系统
US9154540B2 (en) * 2012-12-11 2015-10-06 Microsoft Technology Licensing, Llc Smart redirection and loop detection mechanism for live upgrade large-scale web clusters
US9930066B2 (en) 2013-02-12 2018-03-27 Nicira, Inc. Infrastructure level LAN security
US9489519B2 (en) 2014-06-30 2016-11-08 Nicira, Inc. Method and apparatus for encrypting data messages after detecting infected VM
JP6459558B2 (ja) 2015-01-27 2019-01-30 富士通株式会社 無線通信装置、無線通信方法、および無線通信プログラム
US10110469B2 (en) 2016-07-21 2018-10-23 Cisco Technology, Inc. Detecting and preventing network loops
US10798073B2 (en) 2016-08-26 2020-10-06 Nicira, Inc. Secure key management protocol for distributed network encryption
US10069949B2 (en) * 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
US10574561B2 (en) * 2017-10-04 2020-02-25 Cisco Technology, Inc. Centralized error telemetry using segment routing header tunneling
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US11206204B2 (en) * 2018-06-29 2021-12-21 Itron Global Sarl Traceroute method to identify devices in tunneled segment of routing path
US11206174B2 (en) * 2018-10-31 2021-12-21 Nxp B.V. Method and system for diagnosis of failures in a communications network
US11570207B2 (en) 2019-12-31 2023-01-31 Juniper Networks, Inc. Dynamic security actions for network tunnels against spoofing
US20220166661A1 (en) * 2020-11-25 2022-05-26 Nokia Solutions And Networks Oy Loop detection for ip packets
US11855803B2 (en) * 2021-10-08 2023-12-26 Hewlett Packard Enterprise Development Lp Loop detection in a complex topology with multiple distributed tunnel fabrics

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765881B1 (en) * 2000-12-06 2004-07-20 Covad Communications Group, Inc. Virtual L2TP/VPN tunnel network and spanning tree-based method for discovery of L2TP/VPN tunnels and other layer-2 services

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7173934B2 (en) * 2001-09-10 2007-02-06 Nortel Networks Limited System, device, and method for improving communication network reliability using trunk splitting
JP3822083B2 (ja) * 2001-10-03 2006-09-13 富士通株式会社 伝送装置
US7606229B1 (en) * 2002-11-08 2009-10-20 Cisco Technology, Inc. Generic bridge packet tunneling
US6940832B2 (en) * 2003-01-17 2005-09-06 The Research Foundation Of The City University Of New York Routing method for mobile infrastructureless network
JP3947146B2 (ja) * 2003-09-18 2007-07-18 富士通株式会社 ルーティングループ検出プログラム及びルーティングループ検出方法
US7042838B1 (en) * 2004-05-18 2006-05-09 Cisco Technology, Inc. Method and apparatus for forwarding data in a data communications network
US7477593B2 (en) * 2005-04-04 2009-01-13 Cisco Technology, Inc. Loop prevention techniques using encapsulation manipulation of IP/MPLS field

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6765881B1 (en) * 2000-12-06 2004-07-20 Covad Communications Group, Inc. Virtual L2TP/VPN tunnel network and spanning tree-based method for discovery of L2TP/VPN tunnels and other layer-2 services

Also Published As

Publication number Publication date
US20090238080A1 (en) 2009-09-24
WO2007049826A2 (en) 2007-05-03
US7969892B2 (en) 2011-06-28
JP2009514265A (ja) 2009-04-02
WO2007049826A3 (en) 2007-07-12

Similar Documents

Publication Publication Date Title
JP4747197B2 (ja) トンネリングループ検出制御装置
US20200412576A1 (en) Gre tunneling with reduced packet encryption at intermediate routers
Clausen et al. Lightweight on-demand ad hoc distance-vector routing-next generation (LOADng): protocol, extension, and applicability
CN107211048B (zh) 使用源路由的业务链接
US8127349B2 (en) Point-to-multi-point/non-broadcasting multi-access VPN tunnels
US8370921B2 (en) Ensuring quality of service over VPN IPsec tunnels
US10038766B2 (en) Partial reassembly and fragmentation for decapsulation
US8094565B2 (en) Loop detection for mobile IP home agents
JP5240404B2 (ja) ノード、転送方法、および転送プログラム
US11323361B2 (en) GRE tunneling with reduced packet encryption at intermediate routers using loose source routing
JP2010503327A (ja) マルチホップメッシュネットワークを介する管理トラフィックの送信
CN113285863B (zh) 经由多个隧道传输加密的分组的多个副本
CN110048986B (zh) 一种保证环网协议运行安全的方法及装置
CN112769745B (zh) 传输组播报文的方法和相关装置
JP2008546222A (ja) パケット転送制御方法及びパケット転送制御装置並びに通信ノード
CN113852552A (zh) 一种网络通讯方法、系统与存储介质
US8514777B1 (en) Method and apparatus for protecting location privacy of a mobile device in a wireless communications network
JP2009543383A (ja) トンネリングループ検出制御装置
JP2009518876A (ja) ルーティングループ検出制御装置
JPWO2011052729A1 (ja) パケット中継装置、パケット中継方法およびプログラム
CN117375862A (zh) 报文转发方法、系统、网络设备、存储介质及程序产品
US10841221B2 (en) Stage one cache lookup for network node of mesh network
JP2007258955A (ja) 先着学習方法、中継装置および中継装置用プログラム
WO2023179174A1 (zh) 一种报文传输方法及相关设备
CN115604369A (zh) 报文传输方法、装置和系统、网络设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100903

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110325

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: 20110422

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110516

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4747197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees