以下、図面を用いながら、開示の通信システム、通信装置および通信方法の実施形態について説明する。尚、便宜上別個の実施形態として説明するが、各実施形態を組み合わせることで、組み合わせの効果を得て、更に、有用性を高めることもできることはいうまでもない。
なお、以下ではネットワークまたはサブネットワークのIPアドレスの範囲を表現する際に、いわゆるCIDR(Classless Inter−Domain Routing)表記を主として用いる。一例として、A.100.10.0〜A.100.10.255の範囲のIPアドレスは、CIDR表記を用いて、A.100.10.0/24と表現できる(Aは0〜255の整数とする)。ここで、「A.100.10.0」は、一般にネットワークアドレスと呼ばれる。また、「24」はネットワークのアドレスの範囲を示すネットマスクのビット長であり、「マスク長」と呼ばれる。
ちなみに、CIDR表記により定義されたIPアドレスの範囲は、ネットワークアドレスとネットマスクの組によって表現することもできる。一例として、A.100.10.0〜A.100.10.255のIPアドレス範囲は、ネットワークアドレスA.100.10.0とネットマスク255.255.255.0との組により表現できる(Aは0〜255の整数とする)。CIDR表記と、ネットワークアドレスとネットマスクの組による表現とは、相互に容易に変換することができる。そのため、以下では適宜これらを相互に読み変えることができる。また、開示の通信システム等の実施においては、どちらの表記または表現を用いてもかまわないものとする。
[a]問題の所在について
以下では、開示の通信システム、通信装置および通信方法の実施形態について説明する前に、従来技術において想定される問題の所在を説明する。この問題は、発明者が従来技術について仔細に検討を重ねた結果として新たに見出したものであり、従来は知られていなかったものである。
先述したように、従来のLISPシステムにおいては、通信先が増加すると、LOCキャッシュテーブルが非常に大きくなるという問題がある。この問題は、従来のLOCキャッシュテーブルのエントリがホスト毎であることに起因している。そのため、この問題に対する単純な解決策として、LOCキャッシュテーブルのエントリをネットワーク(アクセス網)毎とする対応が考えられる。しかし、この解決策を採用すると、ある条件下において、LOCキャッシュテーブルの検索が適切になされず、パケットが宛先に届かない(パケット不達)という新たな問題が発生する。以下ではこの新たな問題点について説明する。
図2〜5は、従来技術における新たな問題点を説明する図である。図2〜5に例示されるネットワークでは、図1に例示されるネットワークとよく似ているが、アクセス網2cのアドレス範囲がA.B.128.0/24と変更されている。また、アクセス網2cに接続するホスト3cのアドレス(ID3)がA.B.128.22と変更されている。
図2〜5のネットワークにおいては、アクセス網2cのアドレス範囲(A.B.128.0/24)が、アクセス網2bのアドレス範囲(A.B.0.0/16)に含まれるという関係となっている。具体的には、アクセス網2cのネットワークアドレスはA.B.128.0であり、ネットマスクは24ビットなので、そのアドレス範囲はA.B.128.X(Xは0〜255の整数を取りうる)である。一方、アクセス網2bのネットワークアドレスはA.B.0.0であり、ネットマスクは16ビットなので、そのアドレス範囲はA.B.Y.Z(YとZはそれぞれ0〜255の整数を取りうる)である。ここで、アクセス網2bのアドレス範囲のうちでY=128のものが、アクセス網2cのアドレス範囲となっている。すなわち、アクセス網2bのアドレス範囲は、アクセス網2cのアドレス範囲を含むものとなっている。
このようなネットワーク構成は、インターネットにおいては一般的に存在しうるものとなっている。例えば、あるユーザネットワーク(アクセス網2)が物理的に離れた複数のサブネットワークに分かれているとき(例えば東京本社のサブネットワークと大阪支社のサブネットワークに分かれている等)に、このようなネットワーク構成となりうる。他の例として、ISP(Internet Service Provider)等が自分に割当てられているIPアドレス範囲の一部を他者に切売りしたような場合にも、このようなネットワーク構成となりうる。
図2〜5に例示されるようなネットワークにおいて、上述した新たな問題が発生しうる。この問題を理解するため、以下では従来技術システムにおいて2つのケース(ケース1、ケース2)を順に説明する。
まず、図2〜3に基づいて、ケース1を説明する。ケース1は、図2に示されるように、最初にホスト3a(ID1)からホスト3c(ID3=A.B.128.22)への通信が発生し、図3に示されるように、その次にホスト3a(ID1)からホスト3b(ID2=A.B.10.11)へ通信が発生する場合である。
図2において、まず、ホスト3a(ID1)はホスト3c(ID3=A.B.128.22)へのパケットを送信し、当該パケットをエッジノード4aが受信する(S11)。ここで、エッジノード4aのLOCキャッシュテーブルは空であったとする。このとき、エッジノード4aはID3を問合せるLOC要求メッセージを管理サーバ6aへ送信する(S12)。そして、LOC要求メッセージは制御プレーン12を中継された後、管理サーバ6cに到達する(S13)。管理サーバ6cは、受信したLOC要求メッセージに応じて、LOC管理テーブルに基づいて(A.B.128.0/24、LOC3)あるいは(A.B.128.22/24、LOC3)を格納したLOC応答メッセージを返信する(S14)。
ここで、図2の制御系中継ノード7bが有する制御系経路テーブルにおいて、ID3(=A.B.128.22)はA.B.0.0/16にもヒットする(ID3の上位16ビットが「A.B」であるため)のだが、管理サーバ6bからLOC応答メッセージは返信されない。これは、IPアドレスのマッチングにおけるインターネット上の規則であるLongest Match(最長一致)の規則が働くためである。Longest Matchの規則とは、ルータ等のパケット中継装置がIPアドレスをキーとして経路テーブル等を検索する際に、複数のエントリがマッチした場合に、マスク長が最長のエントリがヒットエントリとなるというものである。例えば図2の場合、制御系中継ノード7bにおいてID3(=A.B.128.22)をキーとして経路テーブルを検索した際に、A.B.0.0/16とA.B.128.0/24との両方のエントリがマッチする。このとき、Longest Matchの原則により、マスク長が最長(24>16)のエントリであるA.B.128.0/24がヒットエントリとなる。そのため、制御系中継ノード7bはLOC要求メッセージを、管理サーバ6bにではなく、管理サーバ6cに転送する。したがって、LOC応答メッセージは管理サーバ6cからエッジノード4c(LOC3)へ返信されることになる(管理サーバ6bからは返信されない)。
図2において、エッジノード4aは、管理サーバ6cからLOC応答メッセージを受信すると、ID3宛ての受信パケットをカプセル化してLISPパケット生成し、コア網1(データプレーン11)に送信する。ここでLISPパケットの宛先アドレスには、受信したLOC応答メッセージに基づいて、LOC3が設定される。LISPパケットはデータプレーン11を中継された後、エッジノード4c(LOC3)に到達する(S15)。エッジノード4cは、LISPパケットをデカプセル化し、ホスト3c(ID3)に転送する(S16)。これにより、ホスト3a(ID1)からホスト3c(ID3)へのパケット送信が完了する。
一方、図2においてエッジノード4aは、LOC応答メッセージ(A.B.128.0/24、LOC3)あるいは(A.B.128.22/24、LOC3)を受信した際に、それに基づいてLOCキャッシュテーブルにエントリを登録する。ここで、図1に例示されるLISPシステムにおいてはLOCキャッシュテーブルのエントリはホスト3であるのに対し、図2〜5に例示されるLISPシステムにおいてはLOCキャッシュテーブルのエントリをアクセス網(ネットワークまたはサブネットワーク)毎に行う前提となっている。そのため、図2〜5の例では、LOC応答メッセージ内の宛先IDについても、ホスト毎ではなく、アクセス網におけるアドレス範囲(宛先ID範囲と称する)となっている。エッジノード4aは、受信したアクセス網毎のLOC応答メッセージ(A.B.128.0/24、LOC3)あるいは(A.B.128.22/24、LOC3)に基づいて、LOCキャッシュテーブルにアクセス網毎のエントリ(A.B.128.0/24、LOC3)あるいは(A.B.128.22/24、LOC3)を登録する。
引き続きケース1を、図3に基づいて説明する。ケース1では、次に、ホスト3a(ID1)からホスト3b(ID2=A.B.10.11)への通信が発生する。
図3において、ホスト3a(ID1)はID2へのパケットを送信する(S21)。エッジノード4aはID2宛のパケットを受信すると、ID2をキーとしてLOCキャッシュテーブルを検索する。このとき、図3に示されるように、エッジノード4aのLOCキャッシュテーブルには、先に登録されたエントリ(A.B.128.0/24、LOC3)のみが存在する。ここで、ID2(=A.B.10.11)は、エントリ(A.B.128.0/24、LOC3)にマッチしない。すなわち、A.B.10.11にマッチするエントリはLOCキャッシュテーブルには登録されてないため、エッジノード4aによる検索はミスヒットとなる。そこで、エッジノード4aは、ID2に基づくLOC要求メッセージを制御プレーン12へ送信する(S22)。そして、LOC要求メッセージは制御プレーン12を中継された後、管理サーバ6bに到達する(S23)。管理サーバ6bは、(A.B.0.0/16、LOC2)あるいは(A.B.10.11/16、LOC2)を格納したLOC応答メッセージを返信する(S24)。エッジノード4aは、先に受信したID2宛てのパケットをカプセル化してLISPパケットを生成する。エッジノード4aは、受信したLOC応答メッセージに基づいて、LOC2に対応するエッジノード4b(LOC2)宛にLISPパケットを送信する(S25)。エッジノード4bは、受信したLISPパケットをデカプセル化し、ホスト3b(ID2)に転送する(S26)。これにより、ホストa(ID1)からホスト3b(ID2)へのパケット送信が完了する。
また、図3におけるエッジノード4aは、LOC応答メッセージを受信した際に、それに基づき、(A.B.0.0/16、LOC2)あるいは(A.B.10.11/16、LOC2)をLOCキャッシュテーブルに登録する。なお、ここでもLOCキャッシュテーブルへのエントリ登録はアクセス網毎となることに注意する。その結果、LOCキャッシュテーブルには(A.B.0.0/16、LOC2)と(A.B.128.0/24、LOC3)、あるいは、(A.B.10.11/16、LOC2)と(A.B.128.22/24、LOC3)の2つのエントリが登録された状態となる。
図2〜3に基づいて説明したように、ケース1(ホスト3aからホスト3cへの通信が発生した後にホスト3bへ通信が発生する場合)においては、LOCキャッシュテーブルのエントリがアクセス網毎であっても、ホストa(ID1)から送信されたホスト3c(ID3)宛のパケットおよびホスト3b(ID2)宛のパケットがいずれも正しく宛先側で受信される。すなわち、ケース1においては、LISPシステムは適切に動作し、パケット不達等の問題は特に起こらない。
次に、図4〜5に基づいてケース2を説明する。ケース2は、図4に示されるように、最初にホスト3a(ID1)からホスト3b(ID2=A.B.10.11)への通信が発生し、図5に示されるように、その次にホスト3a(ID1)からホスト3c(ID3=A.B.128.22)へ通信が発生する場合である。ケース2は、ケース1と、通信の発生の順番が反対になっている点のみが異なっている。
図4において、まず、ホスト3a(ID1)はホスト3b(ID2=A.B.10.11)へのパケットを送信し、当該パケットをエッジノード4aが受信する(S31)。ここで、エッジノード4aのLOCキャッシュテーブルは空であったとする。このとき、エッジノード4aはID2を問合せるLOC要求メッセージを管理サーバ6aへ送信する(S32)。そして、LOC要求メッセージは制御プレーン12を中継された後、管理サーバ6bに到達する(S33)。なお、このとき、制御系中継ノード7bでの経路検索において、ID2(=A.B.10.11)はA.B.0.0/16のみにマッチし、A.B.128.0/24にはマッチしない。したがって、Longest Matchの規則を持ち出すまでもなく、制御系中継ノード7bはA.B.0.0/16をヒットエントリとして認識し、LOC要求メッセージを管理サーバ6bに転送する。
図4において、管理サーバ6bは、受信したLOC要求メッセージに応じて、LOC管理テーブルに基づいて(A.B.0.0/16、LOC2)あるいは(A.B.10.11/16、LOC2)を格納したLOC応答メッセージを返信する(S34)。エッジノード4aは、管理サーバ6bからLOC応答メッセージを受信すると、ID2宛ての受信パケットをカプセル化してLISPパケット生成し、コア網1(データプレーン11)に送信する。ここでLISPパケットの宛先アドレスには、受信したLOC応答メッセージに基づいて、LOC2が設定される。LISPパケットはデータプレーン11を中継された後、エッジノード4b(LOC2)に到達する(S35)。エッジノード4bは、LISPパケットをデカプセル化し、ホスト3b(ID2)に転送する(S36)。これにより、ホスト3a(ID1)からホスト3b(ID2)へのパケット送信が完了する。
また、図4におけるエッジノード4aは、LOC応答メッセージを受信した際に、それに基づき、(A.B.0.0/16、LOC2)あるいは(A.B.10.11/16、LOC2)をLOCキャッシュテーブルに登録する。なお、ここでもLOCキャッシュテーブルへのエントリ登録はアクセス網毎となることに注意する。
引き続きケース2を、図5に基づいて説明する。ケース2では、次に、ホスト3a(ID1)からホスト3c(ID3=A.B.128.22)への通信が発生する。
図5において、ホスト3a(ID1)はホスト3c(ID3=A.B.128.22)へのパケットを送信する(S41)。エッジノード4aはID3宛のパケットを受信すると、ID3をキーとしてLOCキャッシュテーブルを検索する。このとき、図3に示されるように、エッジノード4aのLOCキャッシュテーブルには、先に登録されたエントリ(A.B.0.0/16、LOC2)のみが存在する。ここで、ID3(=A.B.128.22)は、エントリ(A.B.0.0/16、LOC2)にマッチしてしまう。すなわち、ID3をキーとしたLOCキャッシュテーブルの検索において、エントリ(A.B.0.0/16、LOC2)がヒットエントリとなる。
エッジノード4aは、LOCキャッシュテーブルの検索においてヒットエントリが存在したため、LOC要求メッセージの送信を行うことなく、受信したパケットの転送処理を行う。すなわち、エッジノード4aは、ID3宛ての受信パケットをカプセル化してLISPパケット生成し、コア網1(データプレーン11)に送信する。ここでLISPパケットの宛先アドレスには、先のヒットエントリに基づいて、LOC2が設定される。LISPパケットはデータプレーン11を中継された後、エッジノード4b(LOC2)に到達する(S42)。エッジノード4bは、LISPパケットをデカプセル化し、ID3宛のパケットを得る。エッジノード4bはID3宛のパケットをアクセス網2bに中継するが、アクセス網2bにはホスト3c(ID3)は存在しない。したがって、結局、ID3宛のパケットはホスト3c(ID3)には到達しないことになる。
図4〜5に基づいて説明したように、ケース2(ホスト3aからホスト3bへの通信が発生した後にホスト3cへ通信が発生する場合)においては、ホスト3a(ID1)から送信されたホスト3b(ID2)宛のパケットは正しく宛先側で受信されるが、その後にホスト3a(ID1)から送信されたホスト3c(ID3)宛のパケットが受信されない。すなわち、ケース2においては、パケットの不達が発生する。
ケース2におけるパケットの不達は、LOCキャッシュテーブルのエントリをアクセス網毎としたことに起因すると考えられる。エントリをアクセス網毎としたことにより、LOCキャッシュテーブルの検索において、本来はヒットすべきでないエントリがヒットする場合が起こりうるためである。例えば、図5においては、ID3(=A.B.128.22)宛のパケットはLOC3宛に転送されるべきものである。そのため、ID3はLOCキャッシュテーブルのエントリ(A.B.0.0/16、LOC2)にヒットするべきではないが、実際にはヒットしてしまう。このような誤検索が生ずるのは、LOCキャッシュテーブルのエントリをアクセス網毎にしたためである。
ただ、LOCキャッシュテーブルのエントリをアクセス網毎にしても、このような誤検索が常に発生するわけではない。図2〜5に基づく上記の例のように、あるアクセス網(上記例ではアクセス網2b)のアドレス範囲の一部を他のアクセス網(上記例ではアクセス網2c)が使用する場合に、このような誤検索が発生しうる。そして、LOCキャッシュテーブルの誤検索が発生すると、カプセル化パケットであるLISPパケットがコア網1内で誤った転送先(LOC)に誤送信されることになる。その結果、パケットが適切な宛先(ID)に届かないことになる。
以上をまとめると、LOCキャッシュテーブルのエントリ数を抑制するために、エントリをアクセス網毎とするという単純な方法には問題が残っている。すなわち、この方法では、LOCキャッシュテーブルの検索が適切になされず、パケット不達が発生しうる場合(一例として上記のケース2)がある。以下では、この問題を解決する通信システムを説明する。
[b]第1実施形態
図6に第1実施形態における通信システムのネットワーク構成の一例を示す。本実施形態は、LISPに準拠した通信システムにおける実施形態となっている。そのため、LISP特有の用語や概念がいくつか登場する。しかし、本実施形態はあくまでも一例にすぎず、LISPと同種のまたはLISPに類似したLISP以外の制御プロトコルに準拠した通信システムにも適用可能であることに注意されたい。
図6で示す通信システムは、一例として、1つのコア網1と3つのアクセス網2を備える。
まず、アクセス網2について説明する。アクセス網2は、データの送受信におけるエンドノードであるホスト3が収容(接続)される接続されるネットワークである。図6では3つのアクセス網2a、2b、2cが存在し、それぞれにホスト3a、3b、3cが収容(接続)されている。
アクセス網2上のホスト3(エンドノード)は、それぞれ一意な個体識別子(ID:IDentifier)を有する。本実施形態では、IDとしてIPアドレスを使用する。IDはネットワーク内で一意な識別子であればIPアドレスで無くてもよい。ホスト3は、他のホスト3にデータを送信する場合、データを含むパケットを他のホスト3のIDを宛先に指定して送信する。パケットの発信元は、送信したホスト3のIDが指定される。これにより、パケットによるデータの相互通信が可能となっている。
アクセス網2は、それぞれが異なるエッジノード4を介してコア網1に接続している。図6では3つのアクセス網2a、2b、2cが、それぞれエッジノード4a、4b、4cを介してコア網1に接続されている。エッジノード4については後述する。
次に、コア網1について説明する。コア網1は、データプレーン11(データ系)と制御プレーン12(制御系)と呼ばれる2つのネットワーク(論理的なネットワーク)を有する。データプレーン11は、LISPにおけるデータを送受信するネットワークである。また、制御プレーン12は、LISPにおける制御メッセージを送受信するネットワークである。コア網1において、制御プレーン12とデータプレーン11は物理的に別のネットワークで実現されてもよいし、同じネットワークで実現されてもよい。また、制御プレーン12上の装置と、データプレーン11上の装置とは、物理的に別の装置であってもよいし、1つの装置であってもよい。
コア網1のデータプレーン11を説明する。データプレーン11は、エッジノード4と中継ノード5を備える。
エッジノード4はコア網1とアクセス網2の境界に位置し、コア網1とアクセス網2とを接続している。アクセス網2とコア網1の間で行われる通信は、必ずエッジノード4を経由する。配下のアクセス網2におけるホスト3が他アクセス網2における他ホスト3にデータパケットを送信する場合、エッジノード4はホスト3から受信したデータパケットをコア網1に中継する。また、他アクセス網2における他ホスト3から配下のアクセス網2におけるホスト3にデータパケットが送信された場合、エッジノード4はコア網1から受信したデータパケットを配下のアクセス網2におけるホスト3に中継する。
エッジノード4は、アクセス網2毎に設置される。図6の例では、コア網1のデータプレーン11に3つのエッジノード4が存在し、それぞれが異なるアクセス網2に接続されている。エッジノード4aは、コア網1とアクセス網2aとに接続されている。エッジノード4bは、コア網1とアクセス網2bとに接続されている。エッジノード4cは、コア網1とアクセス網2cとに接続されている。
それぞれのエッジノード4は、コア網1上の場所を示す場所識別子(LOC:LOCator)を有する。LOCは、エッジノード4配下のアクセス網2に接続する全ホスト3(エンドノード)の、コア網1における場所を表す識別子ということもできる。本実施形態では、LOCとしてエッジノード4のコア網1側のIPアドレスを使用する。LOCはコア網1内で一意な識別子であればIPアドレスで無くてもよい。図6の例では、エッジノード4aのLOCをLOC1、エッジノード4bのLOCをLOC2、エッジノード4cのLOCをLOC3とする。
本願では、アクセス網2aにおけるホスト3aから、アクセス網2bにおけるホスト3bまたはアクセス網2cにおけるホスト3cへデータを送信する場合を例に説明する。すなわち、本願で説明される例は、アクセス網2aにおけるホスト3aが通信の発信元となり、アクセス網2bにおけるホスト3bまたはアクセス網2cにおけるホスト3cが通信の宛先となる。そこで、本実施形態では、アクセス網2aに接続するエッジノード4aを「入口エッジノード4」または「入口エッジノード4a」と呼ぶ。また、アクセス網2bに接続するエッジノード4bおよびアクセス網2cに接続するエッジノード4cを「出口エッジノード4」または「出口エッジノード4b(4c)」と呼ぶ。この呼称は本願における便宜上のものである。もし別の例において、例えばアクセス網2bにおけるホスト3bから、アクセス網2aにおけるホスト3aへデータを送信する場合には、アクセス網2bに接続するエッジノード4bが入口エッジノード4bとなり、アクセス網2aに接続するエッジノード4aが出口エッジノード4となる。1つのエッジノード4が、ある場合には「入口エッジノード」4となり、他の場合には「出口エッジノード」4となるように、両者を兼ねていてもよいことは言うまでも無い。
コア網1のデータプレーン11における中継ノード5を説明する。中継ノード5は、隣接ノード(Next Hop)からパケットを受信し、他の隣接ノードへと中継する。隣接ノードは、エッジノード4の場合もあるし、他の中継ノード5の場合もある。中継ノード5は、一般的なルータ装置に相当するものである。すなわち、中継ノード5は経路テーブル(ルーティングテーブル)を備え、それに基づいて受信パケットの中継先となる隣接ノード(Next Hop)を決定し、受信パケットを中継先に送信する。
次に、コア網1の制御プレーン12を説明する。制御プレーン12は、管理サーバ6と制御系中継ノード7を備える。
管理サーバ6はエッジノード4を管理する装置であり、エッジノード4と対応付けられている。管理サーバ6とエッジノード4の対応関係は1:1でもよいし、それ以外でも良い。なお、エッジルータ4と同様の理由で、図4における管理サーバ6aを「入口管理サーバ6」または「入口管理サーバ6a」と呼ぶ。また、管理サーバ6b、6cを「出口管理サーバ6」または「出口管理サーバ6b(6c)」と呼ぶ。
管理サーバ6は、端的にいえば、コア網1におけるLOC要求メッセージの問合せの窓口となるノードである。エッジノード4は、配下のホスト3から受信したパケットの宛先アドレス(ID)に対応するLOCを知らない場合、宛先LOCを問合せるためのLOC要求メッセージを、自分を管理する管理サーバ6に送信する。管理サーバ6は、受信したLOC要求メッセージを、制御プレーン12に向けて中継する。LOC要求メッセージは、制御プレーン12上の制御系中継ノード7を介する等して中継され、宛先ホスト3が属するアクセス網2における管理サーバ6に到達する。管理サーバ6はLOC要求メッセージで要求されたホスト3のIDとLOCを、LOC応答メッセージとして返送する。
コア網1の制御プレーン12における制御系中継ノード7を説明する。制御系中継ノード7は、隣接ノード(Next Hop)からLOC要求メッセージを受信し、他の隣接ノードへと中継する。隣接ノードは、管理サーバ6の場合もあるし、他の制御系中継ノード7の場合もある。制御系中継ノード7は、一般的なルーティング装置のように、経路テーブル(ルーティングテーブル)を備え、それに基づいてLOC要求メッセージの中継先となる隣接ノード(Next Hop)を決定し、LOC要求メッセージを中継先に送信する。
既に述べたように、コア網1において、制御プレーン12とデータプレーン11は物理的に同じネットワークで実現されてもよい。また、制御プレーン12上の装置と、データプレーン11上の装置とは、物理的に別の装置であってもよいし、1つの装置であってもよい。例えば、エッジノード4と管理サーバ6とが物理的に同一の装置(ノード)であってもよい。また、例えば、中継ノード5と制御系中継ノード7とが物理的に同一の装置(ノード)であってもよい。図7に、図6のネットワークにおけるコア網1の制御プレーン12とデータプレーン11が物理的に一つのネットワークとなっている例を示す。図7においては、エッジノード4と管理サーバ6とが物理的に同一の装置(ノード)となっている。また、中継ノードと制御系中継ノード7とが物理的に同一の装置(ノード)となっている。
次に、図6のネットワークにおける各装置の機能の詳細を説明する。
図8〜10に基づいて、第1実施形態における入口エッジノード4aを説明する。図8に、第1実施形態における入口エッジノード4aの機能構成の一例を示す。入口エッジノード4aは、例えば、パケット受信部401、LOC特定部402、LOCキャッシュテーブル403、除外LOCキャッシュテーブル404、カプセル部405、中継先決定部406、経路テーブル407、経路情報交換・処理部408、パケット送信部409、LOC要求生成部410、LOC要求送信部411、LOC応答受信部412、LOC応答処理部413を備える。
パケット受信部401は、入口エッジノード4aが接続するアクセス網2に接続されたホスト3(エンドノード)から、IPパケットを受信する。IPパケットはIPヘッダとペイロード(データ)から構成され、IPヘッダには当該IPパケットの宛先ノードのIPアドレス(宛先アドレス)が格納されている。宛先アドレスは、IPパケットの宛先ノードのIDに対応している。パケット受信部401は、受信したIPパケットをLOC特定部402に入力する。以下では特に断りがない限り、「パケット」はIPパケットを表すものとする。
LOC特定部402は、LOCキャッシュテーブル403および除外LOCキャッシュテーブル404を参照し、パケット受信部401が受信したパケットの転送先となる出口エッジノード4b(LOC)を特定する。また、LOC特定部402は、パケットの転送先となる出口エッジノード4bを特定できない場合、LOC要求メッセージを送信することを決定する。
ここで、LOC特定部402が参照するLOCキャッシュテーブル403および除外LOCキャッシュテーブル404を説明する。
図9AにLOCキャッシュテーブル403の一例を示す。LOCキャッシュテーブル403の各エントリは、「宛先ID範囲」と「転送先LOC」とを対応付けた情報である。「宛先ID範囲」はさらに、「ネットワークアドレス」と「マスク長」の組となっている。ここで、「ネットワークアドレス」は、アクセス網2のネットワークアドレスを格納する。「マスク長」は、アクセス網2のマスク長を格納する。「転送先LOC」は、アクセス網2のLOC(出口エッジノード4bのアドレス)を格納する。
端的に言うと、LOCキャッシュテーブル403は、各アクセス網2が使用しているIPアドレスの範囲(宛先ID範囲)と、その範囲内のIPアドレス宛てのIPパケットの転送先となる出口エッジノード4bのIPアドレス(転送先LOC)との対応表である。LOCキャッシュテーブル403は、従来のLISPシステムと異なり、ホスト単位(個々のID単位)ではなく、アクセス網単位(ID範囲の単位)でエントリが作成される。
図9Bに除外LOCキャッシュテーブル404の一例を示す。除外LOCキャッシュテーブル404の各エントリは「宛先ID範囲」であり、「宛先ID範囲」はさらに「ネットワークアドレス」と「マスク長」の組となっている。ここで、「ネットワークアドレス」は、アクセス網2のネットワークアドレスを格納する。「マスク長」は、アクセス網2のマスク長を格納する。
端的に言うと、除外LOCキャッシュテーブル404は、LOCキャッシュテーブル403に基づいて転送先LOCを決定してはならないIPアドレスの範囲(宛先ID範囲)を定める表である。除外LOCキャッシュテーブル404において示されるIPアドレスの範囲(宛先ID範囲)は、LOCキャッシュテーブル403とは異なり、LOCキャッシュテーブル403に基づいて転送先LOCを決定してはならないIPアドレスの範囲を示すものである。除外LOCキャッシュテーブル404も、LOCキャッシュテーブル403と同様に、アクセス網2毎にエントリが作成される。
LOC特定部402の説明に戻る。LOC特定部402は、パケット受信部401が受信したパケットの宛先アドレス(宛先ID)をキーとして、LOCキャッシュテーブル403を検索する。すなわち、LOC特定部402は、LOCキャッシュテーブル403における各エントリに対し、受信パケットの宛先アドレス(宛先ID)が当該エントリで定められたアドレス範囲(宛先ID範囲)にマッチするか否か(含まれるか否か)を判断する。ここでは、LOCキャッシュテーブル403の検索において、宛先IDにマッチしたエントリを「適合宛先ID範囲」と呼ぶ。
LOCキャッシュテーブル403の検索の結果、適合宛先ID範囲が一つも無かった場合、LOC特定部402は、当該検索のキーであった宛先IDに対するLOC要求メッセージを送信することを決定する。受信パケットの転送先LOCを得る必要があるからである。一方、検索の結果、適合宛先ID範囲が一つだけ存在した場合、LOC特定部402は、当該適合宛先ID範囲に対応するエントリをヒットエントリとする。
また、LOCキャッシュテーブル403の検索の結果、適合宛先ID範囲が複数存在した場合、LOC特定部402は、当該適合宛先ID範囲のうちでマスク長が最大のものに対応するエントリをヒットエントリとする。この処理は、IPアドレスに対するLongest Matchの原則に基づくものである。一例として、宛先ID「A.B.128.22」に対し、当該宛先IDにマッチする2つの宛先ID範囲「A.B.0.0/16」と「A.B.128.0/24」が検索されたとする。この場合、LOC特定部402は、マスク長が大きい「A.B.C.0/24」に対応するエントリをヒットエントリとする。
次に、LOCキャッシュテーブル403の検索の結果、ヒットエントリが得られた場合(適合アドレス範囲が一つ以上存在した場合)、LOC特定部402はさらに、受信したパケットの宛先アドレス(宛先ID)をキーとして、除外LOCキャッシュテーブル404を検索する。すなわち、LOC特定部402は、除外LOCキャッシュテーブル404における各エントリに対し、受信パケットの宛先アドレス(宛先ID)が当該エントリで定められたアドレス範囲(宛先ID範囲)にマッチするか否か(含まれるか否か)を判断する。除外LOCキャッシュテーブル404の検索において、宛先IDにマッチしたエントリ(ヒットエントリ)を「除外宛先ID範囲」と呼ぶ。
除外LOCキャッシュテーブル404の検索の結果、除外宛先ID範囲が一つも無かった場合、LOC特定部402は、LOCキャッシュテーブル403の検索におけるヒットエントリの転送先LOCに対して受信パケットを転送することを決定する。除外LOCキャッシュテーブル404にヒットしなかったことは、LOCキャッシュテーブル403に基づいて転送先LOCを決定してもよいことを示すからである。
一方、除外LOCキャッシュテーブル404の検索の結果、除外アドレス範囲が一つ以上存在した場合、LOC特定部402は、検索のキーとなった宛先IDに対するLOC要求メッセージを送信することを決定する。除外LOCキャッシュテーブル404にヒットしたことは、LOCキャッシュテーブル403に基づいて転送先LOCを決定してはならないことを示す。この場合、受信パケットの転送先LOCを得る必要があるからである。
LOC特定部402は、受信パケットの転送先LOCを決定した場合、受信パケットをカプセル部405に入力する。既に述べたように、LOCキャッシュテーブル403にヒットエントリがあり、除外LOCキャッシュテーブル404にエントリがヒットしなかった場合、LOC特定部402は、当該ヒットエントリにおける「転送先LOC」に受信パケットを転送することを決定する。この場合、LOC特定部402は、受信パケットと、決定した転送先LOCとをカプセル部405に入力する。
一方、もし、LOCキャッシュテーブル403にヒットエントリが無かった場合、あるいは、LOCキャッシュテーブル403にヒットエントリがあり、除外LOCキャッシュテーブル404にもエントリがヒットした場合、LOC特定部402は、受信パケットに対するLOC要求メッセージを送信することを決定する。この場合、LOC特定部402は、LOC要求メッセージの送信を指示する信号をLOC要求生成部に入力する。そして、LOC特定部402は、LOC要求メッセージに対する応答であるLOC応答メッセージに含まれる「転送先LOC」がLOC応答処理部413(後述する)から入力されると、当該「転送先LOC」に受信パケットを転送することを決定する。そして、LOC特定部402は、受信パケットと、決定した転送先LOCとをカプセル部405に入力する。
カプセル部405について説明する。カプセル部405は、パケット受信部401が受信したIPパケットをIPパケットでカプセル化し、転送用のカプセル化パケット(LISPパケット)を生成する。これは以下のようにして行われる。パケット受信部401が受信したIPパケットは、ペイロード(データ)にIPヘッダが付加されたものである。カプセル部405は、この受信したIPパケットに対して、さらにIPヘッダを新たに付加する。そして、カプセル部405は、LOC特定部402が決定した転送先LOCを、新たに付加したIPヘッダの宛先アドレスに設定する。これにより、IPパケットがIPパケットでカプセル化された、カプセル化パケットが生成される。カプセル化パケットは、ペイロード(データ)にIPヘッダが二重に付加されている。内側のIPヘッダは、受信パケットに元々付加されていたものであり、その宛先IPアドレスには当該受信パケットの最終的な宛先ホスト3を示す宛先IDが設定されている。これに対し、外側のIPヘッダは、カプセル部405が新たに付加したものであり、その宛先IPアドレスには当該受信パケットのコア網1内の転送先である宛先LOCが設定される。カプセル化パケットは、外側のIPヘッダに基づいて、コア網1内を出口エッジノード4b(宛先LOC)に向けて中継される。また、カプセル化パケットは、内側のIPヘッダに基づいて、アクセス網2内において出口エッジノード4bから宛先ホスト3(宛先ID)に向けて中継される。カプセル部405は、カプセル化パケット(LISPパケット)を中継先決定部406に入力する。
中継先決定部406は、カプセル化パケットの外側のIPヘッダの宛先アドレス(宛先LOC)をキーとして経路テーブル407を検索し、カプセル化パケットの中継先(Next Hop)を決定する。経路テーブル407はいわゆるルーティングテーブルである。経路情報交換・処理部408は、例えばBGP等のルーティングプロトコルを用いて隣接ノードと経路情報を交換する等して、経路テーブル407の生成および更新を行う。中継先決定部406、経路テーブル407、経路情報交換・処理部408は、一般的なルータやレイヤ3スイッチに備えられている機能と同等であるため、詳細は割愛する。中継先決定部406は、カプセル化パケットと決定した中継先をパケット送信部409に入力する。
パケット送信部409は、カプセル化パケットを、中継先決定部406が決定した中継先に向けて送信する。まずパケット送信部409は、カプセル化パケットにイーサネット(登録商標)ヘッダ等のMACヘッダを付加してMACフレームを生成し、当該MACヘッダのMACアドレスに中継先を設定する。この処理は、一般的なルータやレイヤ3スイッチ等で行われているものであるため、詳細は割愛する。そしてパケット送信部409は、生成したMACフレームをコア網1(データプレーン11)に送信する。
次に、LOC要求生成部410を説明する。LOC要求生成部410は、受信パケットの転送先LOCを要求するLOC要求メッセージを生成する。図10Aに、LOC要求メッセージの一例を示す。LOC要求メッセージは、「メッセージ種別」と「宛先ID」とを含む。「メッセージ種別」には、メッセージがLOC要求メッセージであることを示す識別子を格納する。「宛先ID」には、制御プレーン12に対し転送先LOCを要求する宛先IDを格納する。LOC要求生成部410は、生成したLOC要求メッセージの「宛先ID」に、受信パケットの宛先ID(宛先アドレス)を格納する。これにより、生成したLOC要求メッセージは、受信パケットの宛先IDに対応する転送先LOCを制御プレーン12に対し要求するメッセージとなる。LOC要求生成部410は、生成したLOC要求メッセージをLOC要求送信部411に入力する。
LOC要求送信部411は、LOC要求生成部410が生成したLOC要求メッセージを管理サーバ6(入口管理サーバ6a)に送信する。入口管理サーバ6aは、入口エッジノード4aを管理する管理サーバ6であり、予め決まっていてもよいし、何らかの方法によりその都度決めてもよい。
次に、LOC応答受信部412は、LOC要求送信部411が送信したLOC要求メッセージに対する応答メッセージであるLOC応答メッセージを受信する。LOC応答受信部412は、受信したLOC応答メッセージをLOC応答処理部413に入力する。
ここで、図10Bに基づいて、LOC応答メッセージを説明する。図10Bに、LOC応答メッセージの一例を示す。LOC応答メッセージは、LOC要求メッセージで要求された宛先IDに対応する転送先LOCを通知するための制御メッセージである。LOC応答メッセージは、「メッセージ種別」、「経路情報」、「除外経路情報」を含む。メッセージ種別は、メッセージがLOC応答メッセージであることを示す識別子を格納する。
図10Bに示されるLOC応答メッセージにおいて、「経路情報」は、LOC要求メッセージで要求された転送先LOCを、アクセス網単位で示す情報である。LOC応答メッセージにおいて、経路情報は必ず1つ含まれる。経路情報は、「宛先ID範囲」と「転送先LOC」を含む。さらに「宛先ID範囲」は、「ネットワークアドレス」と「マスク長」の組となっている。ここで、「ネットワークアドレス」は、LOC要求メッセージで要求された宛先IDを管理するアクセス網2のネットワークアドレスを格納する。「マスク長」は、LOC要求メッセージで要求された宛先IDを管理するアクセス網2のマスク長を格納する。「転送先LOC」は、LOC要求メッセージで要求された宛先IDを管理するアクセス網2のLOC(出口エッジノード4bのアドレス)を格納する。
図10Bに示されるLOC応答メッセージにおいて、「除外経路情報」は、「経路情報」で定められた「宛先ID範囲」のうちで「転送先LOC」に転送すべきではない宛先ID範囲(他のアクセス網2)を示す情報である。除外経路情報は、LOC応答メッセージに含まれない場合もあるし、含まれる場合もある。除外経路情報は、LOC応答メッセージに複数個含まれる場合もある。図10Bに示されるように、除外経路情報は、「宛先ID範囲」に対応しており、さらに「ネットワークアドレス」と「マスク長」の組となっている。ここで、「ネットワークアドレス」と「マスク長」の組で示される宛先ID範囲は、経路情報中の「転送先LOC」に転送すべきでない宛先ID範囲を示している。
図8の説明に戻って、LOC応答処理部413は、受信したLOC応答メッセージに基づいて、受信パケットの転送先LOCをLOC特定部402に入力する。また、LOC応答処理部413は、受信したLOC応答メッセージに基づいて、LOCキャッシュテーブル403および除外LOCキャッシュテーブル404を更新する。
LOC応答処理部413の処理を具体的に説明する。LOC応答処理部413は、受信パケットの転送先として、LOC応答メッセージに含まれる「経路情報」の「転送先LOC」をLOC特定部402に入力する。これを受けて、LOC特定部402は、既に述べたように、受信パケットを「転送先LOC」に送信することを決定する。
また、LOC応答処理部413は、LOC応答メッセージに含まれる「経路情報」に基づいて、LOCキャッシュテーブル403を更新する。このとき、LOC応答処理部413は、LOC応答メッセージに含まれる経路情報の「宛先ID範囲」(「ネットワークアドレス」、「マスク長」)、「転送先LOC」の組をそのままLOCキャッシュテーブル403のエントリとして追加する。さらに、LOC応答処理部413は、LOC応答メッセージに含まれる「除外経路情報」に基づいて、除外LOCキャッシュテーブル404を更新する。このとき、LOC応答処理部413は、LOC応答メッセージに含まれる除外経路情報の「宛先ID範囲」(「ネットワークアドレス」、「マスク長」)をそのまま除外LOCキャッシュテーブル404のエントリとして追加する。また、LOC応答処理部413は、LOCキャッシュテーブル403に追加したエントリに対応するエントリが除外LOCキャッシュテーブル404に存在する場合、除外LOCキャッシュテーブル404から当該エントリを削除する。
次に、図11に基づいて、第1実施形態における中継ノード5を説明する。図11に、第1実施形態における中継ノード5の機能構成の一例を示す。中継ノード5は、パケット受信部501、中継先決定部502、経路テーブル503、経路情報交換・処理部504、パケット送信部505を備える。中継ノード5は、一般的なルータ装置あるいはエイヤ3スイッチ装置に相当する。そのため、ここでは簡単に説明する。
パケット受信部501はネットワークからIPパケットを受信し、中継先決定部502に入力する。中継先決定部502は、受信したIPパケットのIPヘッダの宛先アドレスをキーとして経路テーブル503を検索し、IPパケットの中継先(Next Hop)を決定する。受信したIPパケットがカプセル化パケット(LISPパケット)の場合、中継先決定部502は、カプセル化パケットの外側のIPヘッダの宛先アドレス(宛先LOC)をキーとして経路テーブル503を検索し、カプセル化パケットの中継先(Next Hop)を決定する。経路テーブル503はいわゆるルーティングテーブルである。経路情報交換・処理部504は、例えばBGP等のルーティングプロトコルを用いて隣接ノードと経路情報を交換する等して、経路テーブル503の生成および更新を行う。パケット送信部505は、受信したIPパケットを、決定した中継先に送信する。
次に、図12に基づいて、第1実施形態における出口エッジノード4bを説明する。図12に、第1実施形態における出口エッジノード4bの機能構成の一例を示す。出口エッジノード4bは、例えば、パケット受信部451、デカプセル部452、中継先決定部453、経路テーブル454、経路情報交換・処理部455、パケット送信部456、ID−LOC生成部457、ID−LOC送信部458を備える。
パケット受信部451は、出口エッジノード4bが接続するコア網1(データプレーン11)経由で、入口エッジノード4aが送信したカプセル化パケット(LISPパケット)を受信する。パケット受信部451は、受信したIPパケットをデカプセル部452に入力する。
デカプセル部452は、受信したカプセル化パケットをデカプセルする(カプセル化を解く)。これは以下のようにして行う。受信したIPパケットにはIPヘッダが二重に付加されている。デカプセル部452は、受信したIPパケットから外側のIPヘッダを除去することより、デカプセル化を行う。これにより、内側のIPヘッダは残る。上述したように、内側のIPヘッダの宛先アドレスは宛先IDとなっている。デカプセル部452は、デカプセル化により得られたIPパケットを中継先決定部453に入力する。
中継先決定部453は、経路テーブル454を参照し、アクセス網2内におけるIPパケットの中継先(Next Hop)を特定する。経路テーブル454はいわゆるルーティングテーブルである。経路情報交換・処理部455は、例えばOSPF等のルーティングプロトコルを用いて隣接ノードと経路情報を交換する等して、経路テーブル454の生成および更新を行う。中継先決定部453は、IPパケットと特定した中継先をパケット送信部456に入力する。パケット送信部456は、IPパケットと、決定した中継先に基づき、IPパケットをアクセス網2経由で宛先ホスト3(宛先ID)に送信する。
ID−LOC生成部457は、出口エッジノード4bの起動時等の所定のタイミング等で、ID−LOC登録メッセージを生成する。ID−LOC生成部457は、定期的に、あるいは何らかのイベントの発生時に、ID−LOC対応登録メッセージを生成してもよい。
図13にID−LOC登録メッセージの一例を示す。ID−LOC登録メッセージは、「メッセージ種別」「宛先ID範囲」「転送先LOC」の各要素を含む。さらに「宛先ID範囲」は、「ネットワークアドレス」「マスク長」の各要素を含む。「メッセージ種別」は、メッセージがID−LOC登録メッセージであることを示す識別子である。「宛先ID範囲」の「ネットワークアドレス」「マスク長」は、出口エッジノード4bが接続するアクセス網2のネットワークアドレスとマスク長にそれぞれ対応する。「転送先LOC」は、出口エッジノード4bのコア網1側のIPアドレス(LOC)に対応する。
ID−LOC送信部458は、ID−LOC生成部が生成したID−LOC登録メッセージを出口管理サーバ6bに送信する。
図14〜15に基づいて、第1実施形態における入口管理サーバ6aを説明する。図14に、第1実施形態における入口管理サーバ6aの機能構成の一例を示す。入口管理サーバ6aは、LOC要求受信部601、LOC要求中継部602、制御系経路テーブル603、制御系経路情報交換・処理部604、LOC要求送信部605を備える。
LOC要求受信部601は、入口エッジノード4aからLOC要求メッセージを受信する。LOC要求受信部601は、受信したLOC要求メッセージをLOC要求中継部602に入力する。
LOC要求中継部602は、制御系経路テーブル603に基づき、LOC要求メッセージの中継先を決定する。また、LOC要求中継部602は、制御系経路テーブルに基づき、受信したLOC要求メッセージに必要に応じて情報を追加する。これらは以下のようにして行われる。
ここで、図15に基づき、制御系経路テーブル603を説明する。制御系経路テーブル603としては、通常のルーティングテーブルを利用することもできる。制御系経路テーブル603の各エントリは、「ネットワークアドレス」「マスク長」「中継先アドレス」を対応付けた情報である。この対応付けは、「ネットワークアドレス」「マスク長」の組で定義されるアドレス範囲に宛ててLOC要求メッセージを送信する場合、当該LOC要求メッセージを「中継先アドレス」が示すアドレスに中継送信することを示す。「ネットワークアドレス」「マスク長」は、例えば、各アクセス網2のネットワークアドレスとマスク長に対応する。「中継先アドレス」は、制御プレーン12における入口エッジノード4aのNext Hopとなる隣接ノードのアドレスに対応する。隣接ノードは、制御系中継ノード7の場合もあるし、他の管理サーバ6(出口管理サーバ6bを含む)の場合もある。
なお、制御系経路テーブル603の生成や更新は、制御系経路情報交換・処理部604が行う。制御系経路情報交換・処理部604は、例えばBGP等のルーティングプロトコルを用いて隣接ノードと制御系経路情報を交換する等して、制御系経路テーブル603の生成および更新を行う。
図14のLOC要求中継部602の説明に戻る。LOC要求中継部602は、受信したLOC要求メッセージに含まれる「宛先ID」をキーとして、制御系経路テーブル603を2度検索する。これは次のようにして行う。
まず、LOC要求中継部602は、受信したLOC要求メッセージに含まれる「宛先ID」をキーとして、制御系経路テーブル603の1度目の検索を行う。すなわち、LOC要求中継部602は、制御系経路テーブル603の各エントリに対し、当該エントリの「ネットワークアドレス」「マスク長」で定義されたアドレス範囲に「宛先ID」がマッチするか否か(含まれるか否か)を判断する。制御系経路テーブル603の1度目の検索の結果、「宛先ID」にマッチするエントリが一つだけ存在した場合、LOC要求中継部602は、当該エントリをヒットエントリとする。
また、制御系経路テーブル603の1度目の検索の結果、「宛先ID」にマッチするエントリ複数存在した場合、LOC要求中継部602は、そのうちでマスク長が最大のエントリをヒットエントリとする。この処理は、IPアドレスに対するLongest Matchの原則に基づくものである。
LOC要求中継部602は、制御系経路テーブル603の1度目の検索でのヒットエントリの「中継先アドレス」を、LOC要求メッセージの中継先に決定する。この決定は、「宛先ID」にマッチするエントリが1つの場合であっても複数の場合であっても変わらない。
次に、LOC要求中継部602は、受信したLOC要求メッセージに含まれる「宛先ID」に基づいて、制御系経路テーブル603の2度目の検索(再検索)を行う。この再検索において、LOC要求中継部602は、制御系経路テーブル603の各エントリの「マスク長」を用いない。その代わりに、LOC要求中継部602は再検索において、制御系経路テーブル603の1度目の検索におけるヒットエントリの「マスク長」を常に用いる。すなわち、LOC要求中継部602は、制御系経路テーブル603の各エントリに対し、当該エントリの「ネットワークアドレス」と、制御系経路テーブル603の1度目の検索におけるヒットエントリの「マスク長」とで定義されるアドレス範囲に「宛先ID」がマッチするか否か(含まれるか否か)を判断する。LOC要求検索部は、このときマッチしたエントリを、再検索におけるヒットエントリとする。
一例として、制御系経路テーブル603の1度目の検索によるヒットエントリのマスク長が「16」であったとする。また、制御系経路テーブル603において、ネットワークアドレスが「A.B.128.0」、マスク長が「24」であるエントリEが存在するとする。このとき、LOC要求中継部602は、制御系経路テーブル603の再検索の際にこのエントリEに対して、ネットワークアドレス「A.B.128.0」とマスク長「16」で定義されるアドレス範囲に「宛先ID」が含まれるか否かを判断する。例えば、LOC要求メッセージの宛先IDが「A.B.10.11」の場合、当該宛先IDはA.B.128.0/24にはマッチしないが、A.B.128.0/16(実質的にはA.B.0.0/16と同じである)にはマッチする。したがって、当該宛先IDは、制御系経路テーブル603の1度目の検索においてはエントリEにマッチしないが、再検索ではエントリEにマッチすることになる。
次に、制御系経路テーブル603の再検索でヒットエントリがあった場合、LOC要求中継部602は、受信したLOC要求メッセージに除外経路情報を追加する。図16に、除外経路情報が追加されたLOC要求メッセージの例を示す。LOC要求中継部602は、再検索におけるヒットエントリの「ネットワークアドレス」「マスク長」の組を除外経路情報として、LOC要求メッセージに追加する。再検索においてヒットエントリが複数あった場合には、全てのヒットエントリに対応する除外経路情報をLOC要求メッセージに追加する。なお、制御系経路テーブル603の再検索でヒットエントリが無かった場合には、LOC要求中継部602は、LOC要求メッセージに除外経路情報を追加しなくてよい。
LOC要求中継部602は、制御系経路テーブル603の再検索でヒットエントリがあった場合、除外経路情報を追加したLOC要求メッセージをLOC要求送信部605に入力する。一方、LOC要求中継部602は、制御系経路テーブル603の再検索でヒットエントリが無かった場合、受信したLOC要求メッセージをLOC要求送信部605に入力する。最後に、LOC要求送信部605は、LOC要求中継部602から入力されたLOC要求メッセージを、LOC要求中継部602が決定した中継先アドレスに中継送信する。
次に、図17に基づいて、第1実施形態における制御系中継ノード7を説明する。図17に、第1実施形態における制御情報転送ノードの機能構成の一例を示す。制御情報転送ノードは、LOC要求受信部701、LOC要求中継部702、制御系経路テーブル703、制御系経路情報交換・処理部704、LOC要求送信部705を備える。制御情報転送ノードの各機能は、入口管理サーバ6aの対応する各機能と同様である。そのため、ここでの説明は割愛する。
次に、図18に基づいて、第1実施形態における出口管理サーバ6bを説明する。図18に、第1実施形態における出口管理サーバ6bの機能構成の一例を示す。出口管理サーバ6bは、LOC要求受信部651、ID−LOC検索部652、LOC要求中継部653、制御系経路テーブル654、制御系経路情報交換・処理部655、LOC要求送信部656、LOC応答生成部657、LOC応答送信部658、ID−LOC受信部659、ID−LOC登録部660、ID−LOC対応テーブル661を備える。
LOC要求受信部651は、隣接ノードからLOC要求メッセージを受信する。LOC要求受信部651は、受信したLOC要求メッセージをID−LOC検索部652に入力する。ID−LOC検索部652は、受信したLOC要求メッセージの「宛先ID」をキーとして、ID−LOC対応テーブル661を検索する。
ここで、ID−LOC対応テーブル661を説明する。図19にID−LOC対応テーブル661の一例を示す。ID−LOC対応テーブル661は、「宛先ID範囲」「転送先LOC」の各要素を含む。さらに「宛先ID範囲」は、「ネットワークアドレス」「マスク長」の各要素を含む。「宛先ID範囲」の「ネットワークアドレス」「マスク長」は、出口エッジノード4bが接続するアクセス網2のネットワークアドレスとマスク長にそれぞれ対応する。「転送先LOC」は、出口エッジノード4bのコア網1側のIPアドレス(LOC)に対応する。なお、ID−LOC対応テーブル661へのエントリの登録は、ID−LOC登録部660が行う。ID−LOC登録部660は、ID−LOC受信部659が受信したID−LOC登録メッセージに基づいて、ID−LOC対応テーブル661へのエントリの登録を行う。
ID−LOC検索部652の説明に戻る。ID−LOC検索部652は、受信したLOC要求メッセージの「宛先ID」をキーとしてID−LOC対応テーブル661を検索した結果、ヒットエントリが無かった場合、ID−LOC検索部652は、当該「宛先ID」は自分の接続するアクセス網2に含まれないと認識する。この場合、ID−LOC検索部652は、受信したLOC要求メッセージをLOC要求中継部653に入力する。LOC要求メッセージを隣接装置に中継送信するためである。
LOC要求中継部653、制御系経路テーブル654、LOC要求送信部656は入口管理サーバ6aの対応する各機能と同様である。そのため、ここでの説明は割愛する。制御系経路情報交換・処理部655は、例えばBGP等のルーティングプロトコルを用いて隣接ノードと制御系経路情報を交換する等して、制御系経路テーブル654の生成および更新を行う。このとき制御系経路情報交換・処理部655は、ID−LOC対応テーブル661の内容に基づいて制御系経路情報を生成する。すなわち、自分の配下のアクセス網2の「ネットワークアドレス」「マスク長」で定義されるアドレス範囲に対する通信が、コア網1内で「宛先LOC」に中継されるように、制御系経路情報を生成し、当該制御系経路情報を交換する。
ID−LOC検索部652の説明に戻る。ID−LOC検索部652は、受信したLOC要求メッセージの「宛先ID」をキーとしてID−LOC対応テーブル661を検索した結果、ヒットエントリがあった場合、ID−LOC検索部652は、当該「宛先ID」は自分の接続するアクセス網2に含まれると認識する。この場合、ID−LOC検索部652は、受信したLOC要求メッセージ、およびヒットエントリをLOC応答生成部657に入力する。
LOC応答生成部657は、ID−LOC検索部652から入力されたLOC要求メッセージとヒットエントリに基づき、図8Bに示されるLOC応答メッセージを生成する。LOC応答生成部657は、LOC応答メッセージのうちで「経路情報」の「ネットワークアドレス」「マスク長」「転送先LOC」に対しては、ID−LOC検索部652におけるヒットエントリの「ネットワークアドレス」「マスク長」「転送先LOC」を格納する。これにより、LOC応答メッセージの「ネットワークアドレス」「マスク長」は出口エッジノード4bが接続するアクセス網2のネットワークアドレスとマスク長に対応し、「転送先LOC」は出口エッジノード4bのコア網1側のIPアドレス(LOC)に対応することとなる。
また、LOC応答メッセージのうち、「除外経路情報」については、LOC応答生成部657は、受信したLOC要求メッセージに含まれる除外経路情報を格納する。受信したLOC要求メッセージに除外経路情報が含まれない場合、LOC応答メッセージにも除外経路情報は含まれないこととなる。
LOC応答生成部657は、生成したLOC応答メッセージをLOC応答送信部658に入力する。LOC応答送信部658は、入力されたLOC応答メッセージを入口エッジノード4aに向けて送信する。LOC応答送信部658は、出口管理サーバ6bに対応する出口エッジノード4bを経由して、データプレーン11を介して、LOC応答メッセージを入口エッジノード4aに向けて送信する。なお、LOC応答送信部658は、制御プレーン12を介して、LOC応答メッセージを入口エッジノード4aに向けて送信してもかまわない。
図19〜20に基づいて、以上説明した第1実施形態の構成によって、先に述べたパケット不達の問題が解決されることを説明する。
図19〜20は、第1実施形態のネットワークにおいて、先に述べたケース2が発生した場合に対応する図である。図4〜5に基づいて説明されたように、従来のLISPネットワークにおいて、LOCキャッシュテーブル403を単純にアクセス網毎とすると、先に述べたケース2においてパケット不達の問題が生じていた。ここでは、図19〜20に基づき、第1実施形態のネットワークにおいて、先に述べたケース2が発生しても、パケット不達は生じないことを説明する。ここでケース2とは、既に述べたとおり、まずホスト3a(ID1)からホスト3b(ID2=A.B.10.11)への通信が発生し、次にホスト3a(ID1)からホスト3c(ID3=A.B.128.22)への通信が発生する場合である。
図19は、ケース2において、まずホスト3a(ID1)からホスト3b(ID2=A.B.10.11)への通信が発生した際の様子を説明する図である。図19におけるS51〜52は、図4におけるS31〜32と同様のため、説明を割愛する。
次に、LOC要求メッセージが入口管理サーバ6aから送信され、制御プレーン12を中継された後、出口管理サーバ6bに到達する(S53)。このとき、図19の入口管理サーバ6a、制御系中継ノード7a、制御系中継ノード7b、出口管理サーバ6bのそれぞれにおいて、既に述べたLOC要求メッセージの中継処理が行われる。LOC要求メッセージの中継処理の流れについては、入口管理サーバ6aのLOC要求中継部602の説明において詳しく述べられている。ここでは、制御系中継ノード7bにおけるLOC要求メッセージの中継処理を具体的に述べる。
まず、制御系中継ノード7bは、LOC要求メッセージの「宛先ID」であるID2(=A.B.10.11)をキーとして、制御系経路テーブルの1回目の検索を行う。このとき、ID2(=A.B.10.11)はA.B.0.0/16のみにマッチし、A.B.128.0/24にはマッチしない。そのため、制御系経路テーブルの1回目の検索のヒットエントリは、A.B.0.0/16となる。
次に、制御系中継ノード7bは、ID2をキーとして、制御系経路テーブルの2回目の検索(再検索)を行う。再検索においては、既に説明したように、制御系経路テーブルの各エントリのマスク長を用いずに、1回目の検索におけるヒットエントリのマスク長を用いることに注意する。図19の例では、1回目の検索におけるヒットエントリのマスク長は16である。このとき、ID2(=A.B.10.11)は、A.B.128.0/24そのものにはマッチしないが、当該エントリのマスク長を16(1回目の検索におけるヒットエントリのマスク長)に置き換えたA.B.128.0/16にはマッチする。したがって、2回目の検索において、A.B.128.0/24がヒットエントリとなる。そして、制御系中継ノード7bは、2回目の検索におけるヒットエントリに基づき、受信したLOC要求メッセージに除外経路情報A.B.128.0/24を追加して、一度目のヒットエントリの「中継先」である出口管理サーバ6bに中継送信する。
図19において、出口管理サーバ6bは、LOC要求メッセージに応答して、LOC応答メッセージを入口エッジノード4aに送信する(S54)。このとき、出口管理サーバ6bは、受信したLOC要求メッセージに含まれる除外経路情報A.B.128.0/24を、LOC応答メッセージに格納して送信する。入口エッジノード4aは、LOC応答メッセージを受信すると、図4の場合と同様に、当該LOC応答メッセージに基づいてLOCキャッシュテーブル403を更新する。これにより、LOCキャッシュテーブル403にエントリ(A.B.0.0/16、LOC2)あるいは(A.B.10.11/16、LOC2)が追加される。このとき、さらに入口エッジノード4aは、当該LOC応答メッセージに基づいて除外LOCキャッシュテーブル404を更新する。これにより、除外LOCキャッシュテーブル404にエントリ(A.B.128.0/24)が追加される。図19におけるS55〜56は、図4におけるS35〜36と同様のため、説明を割愛する。
図20は、ケース2において、次にホスト3a(ID1)からホスト3b(ID3=A.B.128.22)への通信が発生した際の様子を説明する図である。図20におけるS61は、図5におけるS41と同様のため、説明を割愛する。
アクセス網2aのホスト3aからパケットを受信すると、入口エッジノード4aは、当該パケットの宛先アドレス(ID3)をキーとしてLOCキャッシュテーブル403を検索する。このとき、入口エッジノード4aは、ID3(=A.B.128.22)をキーとしてLOCキャッシュテーブル403を検索した結果、ヒットエントリ(A.B.0.0/16、LOC2)あるいは(A.B.10.11/16、LOC2)を得る。次に入口エッジノード4aは、図6に基づいて説明したように、ID3をキーとして除外LOCキャッシュテーブル404を検索する。このとき、入口エッジノード4aは、ID3(=A.B.128.22)をキーとして除外LOCキャッシュテーブル404を検索した結果、ヒットエントリ(A.B.128.0/24)を得る。
入口エッジノード4aは、除外LOCキャッシュテーブル404にヒットエントリが存在したため、ID3をLOCキャッシュテーブル403のヒットエントリに基づいて受信パケットをカプセル化して送信しない。図6に基づいて説明したように、入口エッジノード4aは、除外LOCキャッシュテーブル404にヒットエントリが存在した場合、検索のキーであるID3に対応するLOCを問合せるためのLOC要求メッセージを入口管理サーバ6aに送信する(S62)。その後、LOC要求メッセージは入口管理サーバ6から制御プレーン12を中継されて出口管理サーバ6cに到達する(S63)。出口管理サーバ6cは、受信したLOC要求メッセージに対し、LOC応答メッセージ(A.B.128.0/24、LOC3)を生成して入口エッジノード4aに送信する(S64)。入口エッジノード4aは、受信したLOC応答メッセージに基づいて、受信パケットをカプセル化してLOC3宛に送信する(S65)。最後に、出口エッジノード4c(ID3)は、受信したカプセル化パケットをデカプセル化して得たパケットを、当該パケットの宛先アドレス(ID3)に転送する(S66)。したがって、図20においては、図5の場合と異なり、ID3宛のパケットはホスト3c(ID3)に到達する。
したがって、第1実施形態によれば、図19〜20に基づいて説明したように、ケース2(ホスト3aからホスト3bへの通信が発生した後にホスト3cへ通信が発生する場合)において、ホスト3a(ID1)から送信されたホスト3b(ID2)宛のパケットもホスト3c(ID3)宛のパケットも正しく受信される。すなわち、第1実施形態によれば、ケース2においても、パケットの不達が発生しない。
以上説明したように、第1実施形態によれば、パケット不達を発生させることなく、LOCキャッシュテーブル403のエントリをアクセス網毎にすることができる。具体的には、従来技術では、エントリをアクセス網毎としたことにより、入口エッジノード4aにおけるLOCキャッシュテーブル403の検索において本来はヒットすべきでないエントリがヒットしてしまう(誤検索)。しかし、本実施形態の入口エッジノード4aは、この本来はヒットすべきでないエントリに関する情報である除外経路情報を除外LOCキャッシュテーブル404として保持している。これにより、入口エッジノード4aにおけるLOCキャッシュテーブル403について誤検索が発生した場合でも、その後の除外LOCキャッシュテーブル404の検索により、LOCキャッシュテーブル403にヒットしなかったものとして処理を行うことができる。これにより、入口エッジノード4aは、LOCキャッシュテーブル403において誤検索されたヒットエントリに対して、当該ヒットエントリに基づくカプセル化パケットの転送を行うことなく、LOC要求メッセージの送信を行う。その結果、入口エッジノード4aは、LOC応答メッセージに基づいて、カプセル化パケット(LISPパケット)をコア網1内で正しい転送先(LOC)に送信する。そして最終的に、パケットは正しい宛先(ID)に送信されることになる。
したがって、第1実施形態によれば、パケット不達を発生させることなく、LOCキャッシュテーブル403のエントリをアクセス網毎にすることができる。これにより、LISPネットワークの機能を確保しつつ、LOCキャッシュテーブル403のサイズを大幅に削減できる。すなわち第1実施形態によれば、LISPを適用した実用的な通信システムにおいて、LOCキャッシュテーブルのエントリ数を抑制できるという効果を奏する。
〔c〕第2実施形態
第2実施形態は、第1実施形態のようにLOC要求メッセージに除外経路情報を追加する代わりに、LOC要求メッセージに除外経路のマスク長を追加することで、第1実施形態と同様の目的を達成するものである。
第2実施形態は、第1実施形と共通する点が多いので、以下では第1実施形態と異なる点を中心に説明する。
第2実施形態の入口エッジノード4aを説明する。第2実施形態の入口エッジノード4aは、第1実施形態の入口エッジノード4aが有するいくつかの機能を備えないものであり、従来のLISPシステムにおける入口エッジノード4aに対応するものである。
具体的には、第2実施形態の入口エッジノード4aは、第1実施形態の入口エッジノード4aと異なり、除外LOCキャッシュテーブル404を持たない。これにより、第2実施形態の入口エッジノード4aにおいて、LOC特定部402は、LOCキャッシュテーブル403の検索を行った後に、除外LOCキャッシュテーブル404の検索は行わない。第2実施形態の入口エッジノード4aのLOC特定部402は、LOCキャッシュテーブル403の検索においてヒットエントリがあった場合には、常に当該ヒットエントリの転送先LOCに基づいてカプセル化パケット(LISPパケット)を送信する。この場合、LOC特定部402がLOC要求メッセージを送信することはない。一方、第2実施形態の入口エッジノード4aのLOC特定部402は、LOCキャッシュテーブル403の検索においてヒットエントリがなかった場合には、常にLOC要求メッセージを送信する。そしてLOC特定部402は、受信したLOC応答メッセージの転送先LOCに基づいてカプセル化パケット(LISPパケット)を送信する。
第2実施形態の入口管理サーバ6aを説明する。第2実施形態の入口管理サーバ6aは、第1実施形態の入口管理サーバ6aと比較して、LOC要求中継部602の処理の一部が異なる。
具体的には、第1実施形態の入口管理サーバ6aにおけるLOC要求中継部602は、制御系経路テーブルの2回目の検索(再検索)でヒットエントリがあった場合に、当該ヒットエントリに基づいてLOC要求メッセージに除外経路情報を追加している。ここで除外経路情報は、ヒットエントリのネットワークアドレスとマスク長の組である。これに対し、第2実施形態の入口管理サーバ6aにおけるLOC要求中継部602は、LOC要求メッセージに追加する除外経路情報が、ヒットエントリのマスク長のみとなる。
また、第1実施形態のLOC要求中継部602は、制御系経路テーブルの再検索でヒットエントリがあった場合に、LOC要求メッセージに当該ヒットエントリに基づく除外経路情報を新たに追加する。一方、第2実施形態のLOC要求中継部602は、次のようにしてLOC要求メッセージにおける除外経路情報(マスク長)を格納する。第2実施形態のLOC要求中継部602は、制御系経路テーブルの再検索でヒットエントリがなかった場合、かつ、受信したLOC要求メッセージに除外経路情報が含まれていなかった場合、第1回目の検索のヒットエントリの「マスク長」をLOC要求メッセージに格納する。また、第2実施形態のLOC要求中継部602は、制御系経路テーブルの再検索でヒットエントリがあった場合、かつ、受信したLOC要求メッセージに除外経路情報が含まれていなかった場合、再検索のヒットエントリの「マスク長」をLOC要求メッセージに格納する。
一方、第2実施形態のLOC要求中継部602は、制御系経路テーブルの再検索でヒットエントリがなかった場合、かつ、受信したLOC要求メッセージに除外経路情報が既に含まれていた場合には、当該除外経路情報に含まれる「マスク長」と第1回目の検索のヒットエントリの「マスク長」とを比較する。そして、第2実施形態のLOC要求中継部602は、第1回目の検索のヒットエントリの「マスク長」が長い場合、当該「マスク長」でLOC要求メッセージの既存の除外経路情報に含まれる「マスク長」を置き換える。また、第2実施形態のLOC要求中継部602は、制御系経路テーブルの再検索でヒットエントリがあった場合、かつ、受信したLOC要求メッセージに除外経路情報が既に含まれていた場合には、LOC要求メッセージの既存の除外経路情報に含まれる「マスク長」と第2回目の検索のヒットエントリの「マスク長」とを比較する。そして、第2実施形態のLOC要求中継部602は、再検索のヒットエントリの「マスク長」が長いマスク長である場合、当該「マスク長」でLOC要求メッセージの既存の除外経路情報に含まれる「マスク長」を置き換える。
第2実施形態の制御系中継ノード7は、第1実施形態の制御系中継ノード7と比較して、LOC要求中継部702の処理の一部が異なる。第2実施形態の制御系中継ノード7におけるLOC要求中継部702の処理は、第2実施形態の入口管理サーバ6aにおけるLOC要求中継部602の処理と同様なので、説明は割愛する。
第2実施形態の出口管理サーバ6bを説明する。第2実施形態の出口管理サーバ6bは、第1実施形態の出口管理サーバ6bと比較して、LOC要求中継部653とLOC応答生成部657との処理の一部がそれぞれ異なる。このうち、第2実施形態の出口管理サーバ6bにおけるLOC要求中継部653の処理は、第2実施形態の入口管理サーバ6aにおけるLOC要求中継部602の処理と同様なので、説明は割愛する。
第2実施形態の出口管理サーバ6bのLOC応答生成部657の処理を説明する。第1実施形態の出口管理サーバ6bにおけるLOC応答生成部657は、生成するLOC応答メッセージに、LOC要求メッセージに含まれる除外経路情報を格納している。これに対し、第2実施形態の出口管理サーバ6bにおけるLOC応答生成部657は、生成するLOC応答メッセージに除外経路情報は格納しない。その代わりに、第2実施形態の出口管理サーバ6bにおけるLOC応答生成部657は、生成するLOC応答メッセージに格納する経路情報の「マスク長」を、ID−LOC対応テーブル661におけるヒットエントリの「マスク長」から必要に応じて変更する。
具体的には、LOC応答生成部657は、ID−LOC対応テーブル661におけるヒットエントリの「マスク長」が、LOC要求メッセージの除外経路情報に含まれる「マスク長」よりも長い場合、ID−LOC対応テーブル661におけるヒットエントリの「マスク長」をLOC応答メッセージに格納する経路情報の「マスク長」とする。一方、LOC応答生成部657は、ID−LOC対応テーブル661におけるヒットエントリの「マスク長」が、LOC要求メッセージの除外経路情報に含まれる「マスク長」よりも短い場合、LOC要求メッセージの除外経路情報に含まれる「マスク長」をLOC応答メッセージに格納する経路情報の「マスク長」とする。すなわち、LOC応答生成部657はID−LOC対応テーブル661におけるヒットエントリの「マスク長」と、LOC要求メッセージの既存の除外経路情報に含まれる「マスク長」とで、長い方をLOC応答メッセージ内の「マスク長」とする。
図21〜22に基づいて、以上説明した第2実施形態の構成によって、先に述べたパケット不達の問題が解決されることを説明する。
図21〜22は、第2実施形態のネットワークにおいて、先に述べたケース2が発生した場合に対応する図である。ここでケース2とは、既に述べたとおり、まずホスト3a(ID1)からホスト3b(ID2=A.B.10.11)への通信が発生し、次にホスト3a(ID1)からホスト3c(ID3=A.B.128.22)への通信が発生する場合である。
図21は、ケース2において、まずホスト3a(ID1)からホスト3b(ID2=A.B.10.11)への通信が発生した際の様子を説明する図である。図21におけるS71〜72は、図19におけるS51〜52と同様のため、説明を割愛する。
次に、LOC要求メッセージが入口管理サーバ6aから送信され、制御プレーン12を中継された後、出口管理サーバ6bに到達する(S73)。このときの、制御系中継ノード7bにおけるLOC要求メッセージの中継処理を具体的に述べる。
まず、制御系中継ノード7bは、LOC要求メッセージの「宛先ID」であるID2(=A.B.10.11)をキーとして、制御系経路テーブルの1回目の検索を行う。制御系経路テーブルの1回目の検索のヒットエントリは、A.B.0.0/16となる。次に、制御系中継ノード7bは、ID2をキーとして、制御系経路テーブルの2回目の検索(再検索)を行う。再検索においては、既に説明したように、制御系経路テーブルの各エントリのマスク長を用いずに、1回目の検索におけるヒットエントリのマスク長を用いることに注意する。再検索において、A.B.128.0/24がヒットエントリとなる。
制御系経路テーブルの再検索においてヒットエントリがあったため、制御系中継ノード7bは、ヒットエントリ(A.B.128.0/24)の「マスク長」である「24」を含む除外経路情報を、受信したLOC要求メッセージに追加する。制御系中継ノード7bは、除外経路情報を追加したLOC要求メッセージを、制御系経路テーブルの1回目の検索のヒットエントリの「中継先」に中継送信する。
図21において、出口管理サーバ6bは、LOC要求メッセージに応答して、LOC応答メッセージを入口エッジノード4aに送信する(S74)。このとき、出口管理サーバ6bは、受信したLOC要求メッセージに含まれる除外経路情報の「マスク長」である「24」と、ID−LOC対応テーブル661におけるヒットエントリ(A.B.0.0/16)の「マスク長」である「16」を比較する。この場合、受信したLOC要求メッセージに含まれる除外経路情報の「マスク長」である「24」の方が長い為、出口管理サーバ6bは、LOC応答メッセージの経路情報の「マスク長」を「24」とする。その結果、出口管理サーバ6bは、LOC要求メッセージに格納されていた宛先IDと上記の処理で得られた「マスク長」24をから得られる宛先ID範囲を含むLOC応答メッセージ(A.B.10.0/24、LOC2)あるいは(A.B.10.11/24、LOC2)を生成し、入口エッジノード4aに送信する。
入口エッジノード4aは、LOC応答メッセージを受信すると、当該LOC応答メッセージに基づいてLOCキャッシュテーブル403を更新する。これにより、LOCキャッシュテーブル403にエントリ(A.B.10.0/24、LOC2)あるいは(A.B.10.11/24、LOC2)が追加される。図21におけるS75〜76は、図19におけるS55〜56と同様のため、説明を割愛する。
図22は、ケース2において、次にホスト3a(ID1)からホスト3b(ID3=A.B.128.22)への通信が発生した際の様子を説明する図である。図22におけるS81は、図20におけるS61と同様のため、説明を割愛する。
アクセス網2aのホスト3aからパケットを受信すると、入口エッジノード4aは、当該パケットの宛先アドレス(ID3)をキーとしてLOCキャッシュテーブル403を検索する。このとき、入口エッジノード4aは、ID3(=A.B.128.22)をキーとしてLOCキャッシュテーブル403を検索した結果、ミスヒット(ヒットエントリが無い)となる。LOCキャッシュテーブル403内のエントリ(A.B.10.0/24、LOC2)あるいは(A.B.10.11/24、LOC2)には、ID3(=A.B.128.22)はマッチしないためである。
LOCキャッシュテーブル403の検索結果がミスヒットだったため、検索のキーであるID3に対応するLOCを問合せるためのLOC要求メッセージを入口管理サーバ6aに送信する(S82)。図22におけるS83〜86は、図20におけるS73〜76と同様のため、説明を割愛する。最終的に、図22において、図20の場合と同様に、ID3宛のパケットはホスト3c(ID3)に到達する。
したがって、第2実施形態によれば、図21〜22に基づいて説明したように、ケース2(ホスト3aからホスト3bへの通信が発生した後にホスト3cへ通信が発生する場合)において、ホスト3a(ID1)から送信されたホスト3b(ID2)宛のパケットもホスト3c(ID3)宛のパケットも正しく受信される。すなわち、第2実施形態によれば、ケース2においても、パケットの不達が発生しない。
以上説明したように、第2実施形態によれば、パケット不達を発生させることなく、LOCキャッシュテーブル403のエントリをアクセス網毎にすることができる。第2実施形態では、LOC要求メッセージの中継処理において除外経路が見つかった場合(制御系経路テーブルの再検索にヒットエントリがあった場合)、LOCキャッシュテーブル403のエントリに除外経路のマスク長が反映されるようになっている。これにより、入口エッジノード4aは、過去に見つかった除外経路に当てはまる可能性が排除されている宛先IDについてのみ、LOC要求メッセージを送信することなく、カプセル化パケットの送信を行う。反対に、入口エッジノード4aは、過去に見つかった除外経路に当てはまる可能性が残っている宛先IDについては、常にLOC要求メッセージの送信を行うことになる。
こうすることで、第2実施形態の入口エッジノード4aは、LOCキャッシュテーブル403の検索において従来技術ではヒットしてしまうが本来はヒットすべきでないエントリに対して、当該エントリに基づくカプセル化パケットの転送を行うことなく、LOC要求メッセージの送信を行う。その結果、入口エッジノード4aは、LOC応答メッセージに基づいて、カプセル化パケット(LISPパケット)をコア網1内で正しい転送先(LOC)に送信する。そして最終的に、パケットは正しい宛先(ID)に送信されることになる。
したがって、第2実施形態によれば、パケット不達を発生させることなく、LOCキャッシュテーブル403のエントリをアクセス網毎にすることができる。これにより、LISPネットワークの機能を確保しつつ、LOCキャッシュテーブル403のサイズを大幅に削減できる。すなわち第2実施形態によれば、LISPを適用した実用的な通信システムにおいて、LOCキャッシュテーブルのエントリ数を抑制できるという効果を奏する
また、第2実施形態は、第1実施形態と比較して、いくつかの利点を有する。第1実施形態の入口エッジノード4aは従来のLISPシステムの入口エッジノード4aに機能追加が必要であるが、第2実施形態の入口エッジノード4aは従来のLISPシステムの入口エッジノード4aをそのまま流用できる。そのため、第1実施形態よりも第2実施形態の方が導入コストを抑えられる可能性がある。また、第2実施形態のLOC要求メッセージやLOC応答メッセージにおける除外経路情報は、第1実施形態のそれらと比較して、情報量が少ない。そのため、第1実施形態よりも第2実施形態の方が通信負荷を抑えられる可能性がある。さらに、第2実施形態では、入口エッジノード4aは除外LOCキャッシュテーブル404を持つ必要がない。そのため、第1実施形態よりも第2実施形態の方が入口エッジノード4aに必要な記憶容量を削減できる可能性がある。
一方、第1実施形態は、第2実施形態と比較して、LOC要求メッセージの問合せ確率(回数)が少ないという利点がある。例えば、第1実施形態に係る図20の例の場合、A.B.0.0/16の範囲内のIDのうちで、問合せが発生するのは除外LOCキャッシュテーブル404のエントリにあるA.B.128.0/24のみである。ところが、第2実施形態に係る図22の例の場合、A.B.10.0/16あるいはA.B.10.11/16の範囲内のIDのうちで、LOCキャッシュテーブル403のエントリにあるA.B.10.0/24あるいはA.B.10.11/24に含まれない全てのIDについて問合せが発生する。この例では、LOC要求メッセージの問合せ確率を単純計算に基づいて比較すると、第1実施形態の方が第2実施形態の1/255となると推測される。第1実施形態の除外LOCキャッシュテーブル404のエントリ数が増えるとこの差は縮まるが、一般に第1実施形態は第2実施形態と比較してLOC要求メッセージの問合せ確率(回数)が少なくなると想定される。
〔d〕その他の実施形態
第1実施形態及び第2実施形態においては、管理サーバ6を備える構成としているが、管理サーバ6を備えない構成とすることもできる。その場合、第1実施形態及び第2実施形態においては管理サーバが有するLOC要求メッセージの中継に関する機能を、エッジノードが有する必要がある。
最後に、図23に上記各実施形態における各装置のハードウェア構成の一例を説明する。上記各実施形態における各装置、すなわち、入口エッジノード4a、中継ノード5、出口エッジノード4b、入口管理サーバ6a、制御系中継ノード7、出口管理サーバ6bそれぞれの備える各機能は、以下のハードウェア部品の一部又は全部により実現される。図23に例示されるように、上記実施形態における各装置(図23においては便宜上、装置100としている)は、通信IF(InterFace)101、アナログ回路102、デジタル回路103、プロセッサ104、メモリ105等を備える。
通信IF101は、他装置とネットワークを介して通信を行うためのインタフェース装置であり、例えばイーサネット(登録商標)ポート、無線アンテナ等である。アナログ回路102は、アナログ信号を処理する回路である。デジタル回路103は、デジタル信号を処理する回路であり、例えばLSI(Large Scale Integration)、FPGA(Field−Programming Gate Array)、ASIC(Application Specific Integrated Circuit)等を含む。プロセッサ104は、データを処理する装置であり、例えばCPU(Central Processing Unit)やDSP(Desital Signal Processor)等を含む。メモリ105は、データを記憶する装置であり、例えばROM(Read Only Memory)やRAM(Random Access Memory)等を含む。
各装置の機能構成とハードウェア構成の対応関係を説明する。
入口エッジノード4aのパケット受信部401は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、通信路IF101がIPパケットを含む有線信号または無線信号を受信し、アナログ回路102が有線信号または無線信号をデジタルベースバンド信号に変換する。また、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、デジタルベースバンド信号をIPパケットに変換する。LOC特定部402は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、受信したパケットの転送先となる出口エッジノードを特定する。また、デジタル回路103が、受信したパケットの転送先となる出口エッジノードを特定してもよい。LOCキャッシュテーブル403および除外LOCキャッシュテーブル404は、例えばメモリ105によって実現される。
入口エッジノード4aのカプセル部405は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、IPパケットをカプセル化する。また、デジタル回路103が、IPパケットをカプセル化してもよい。
中継先決定部406は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、カプセル化パケットの中継先を決定する。また、デジタル回路103が、カプセル化パケットの中継先を決定してもよい。経路テーブル407は、例えばメモリ105によって実現される。経路情報交換・処理部408は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。
入口エッジノード4aのパケット送信部409は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するカプセル化パケット(LISPパケット)をデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がカプセル化パケット(LISPパケット)を含む有線信号または無線信号を送信する。
入口エッジノード4aのLOC要求生成部410は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、LOC要求メッセージを生成する。また、デジタル回路103が、LOC要求メッセージを生成してもよい。入口エッジノード4aのLOC要求送信部411は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するLOC要求メッセージをデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がLOC要求メッセージを含む有線信号または無線信号を送信する。LOC応答受信部412は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、通信路IF101がLOC応答メッセージを含む有線信号または無線信号を受信し、アナログ回路102が有線信号または無線信号をデジタルベースバンド信号に変換する。また、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、デジタルベースバンド信号をLOC応答メッセージに変換する。LOC応答処理部413は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、LOCキャッシュテーブル403および除外LOCキャッシュテーブル404を更新する。また、デジタル回路103が、LOCキャッシュテーブル403および除外LOCキャッシュテーブル404を更新してもよい。
中継ノード5のパケット受信部501は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。中継先決定部502は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。経路テーブル503は、例えばメモリ105によって実現される。経路情報交換・処理部504は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。パケット送信部505は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。
出口エッジノード4bのパケット受信部451は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、通信路IF101がカプセル化パケットを含む有線信号または無線信号を受信し、アナログ回路102が有線信号または無線信号をデジタルベースバンド信号に変換する。また、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、デジタルベースバンド信号をカプセル化パケットに変換する。
デカプセル部452は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、カプセル化パケットをデカプセルする。また、デジタル回路103が、カプセル化パケットをデカプセルしてもよい。
出口エッジノード4bの中継先決定部453は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、アクセス網2内におけるIPパケットの中継先を特定する。また、デジタル回路103が、アクセス網2内におけるIPパケットの中継先を特定してもよい。経路テーブル454は、例えばメモリ105によって実現される。経路情報交換・処理部455は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。パケット送信部456は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するIPパケットをデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がIPパケットを含む有線信号または無線信号を送信する。
出口エッジノード4bのID−LOC生成部457は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、ID−LOC登録メッセージを生成する。また、デジタル回路103が、ID−LOC登録メッセージを生成してもよい。ID−LOC送信部458は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するID−LOC登録メッセージをデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がID−LOC登録メッセージを含む有線信号または無線信号を送信する。
入口管理サーバ6aのLOC要求受信部601は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、通信路IF101がLOC要求メッセージを含む有線信号または無線信号を受信し、アナログ回路102が有線信号または無線信号をデジタルベースバンド信号に変換する。また、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、デジタルベースバンド信号をLOC要求メッセージに変換する。LOC要求中継部602は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、LOC要求メッセージの中継先を決定する。また、デジタル回路103がLOC要求メッセージの中継先を決定してもよい。
入口管理サーバ6aの制御系経路テーブル603は、例えばメモリ105によって実現される。制御系経路情報交換・処理部604は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。LOC要求送信部605は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するLOC要求メッセージをデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がLOC要求メッセージを含む有線信号または無線信号を送信する。
制御系中継ノード7のLOC要求受信部701は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、通信路IF101がLOC要求メッセージを含む有線信号または無線信号を受信し、アナログ回路102が有線信号または無線信号をデジタルベースバンド信号に変換する。また、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、デジタルベースバンド信号をLOC要求メッセージに変換する。LOC要求中継部702は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、LOC要求メッセージの中継先を決定する。また、デジタル回路103がLOC要求メッセージの中継先を決定してもよい。
制御系中継ノード7の制御系経路テーブル703は、例えばメモリ105によって実現される。制御系経路情報交換・処理部704は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。LOC要求送信部705は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するLOC要求メッセージをデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がLOC要求メッセージを含む有線信号または無線信号を送信する。
出口管理サーバ6bのLOC要求受信部651は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、通信路IF101がLOC要求メッセージを含む有線信号または無線信号を受信し、アナログ回路102が有線信号または無線信号をデジタルベースバンド信号に変換する。また、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、デジタルベースバンド信号をLOC要求メッセージに変換する。ID−LOC検索部652は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、ID−LOC対応テーブル661を検索する。また、デジタル回路103がID−LOC対応テーブル661を検索してもよい。出口管理サーバ6bのLOC要求中継部653は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、LOC要求メッセージの中継先を決定する。また、デジタル回路103がLOC要求メッセージの中継先を決定してもよい。
出口管理サーバ6bの制御系経路テーブル654は、例えばメモリ105によって実現される。制御系経路情報交換・処理部655は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。LOC要求送信部656は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するLOC要求メッセージをデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がLOC要求メッセージを含む有線信号または無線信号を送信する。
出口管理サーバ6bのLOC応答生成部657は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。
すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、LOC応答メッセージを生成する。また、デジタル回路103がLOC応答メッセージを生成してもよい。LOC応答送信部658は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。すなわち、プロセッサ104が、必要に応じてメモリ105を制御し、必要に応じてデジタル回路103と連携し、送信するLOC応答メッセージをデジタルベースバンド信号に変換する。また、アナログ回路102がデジタルベースバンド信号を有線信号または無線信号に変換し、通信IF101がLOC応答メッセージを含む有線信号または無線信号を送信する。
出口管理サーバ6bのID−LOC受信部659は、例えば通信IF101、アナログ回路102、プロセッサ104、メモリ105、デジタル回路103によって実現される。ID−LOC登録部660は、例えばプロセッサ104、メモリ105、デジタル回路103によって実現される。ID−LOC対応テーブル661は、例えばメモリ105によって実現される。