図2は、転送装置20の構成の例を示す。転送装置20は、受信部21、種別判定部22、カプセル化部23、デカプセル化部24、転送制御部25、経路情報通知部26、送信部27、位置情報処理部30、LOC情報処理部40、記憶部50を備える。位置情報処理部30は、学習部31と位置情報通知生成部32を備える。LOC情報処理部40は、LOC要求部41とLOC応答処理部42を有する。記憶部50は、経路テーブル51、経路テーブル52、転送装置テーブル53を記憶する。
転送装置20は、転送装置20が含まれているアクセスネットワーク中の通信装置1に至る経路を、経路テーブル51に記憶する。一方、経路テーブル52には、コアネットワーク3を介してパケットを転送できる通信装置1や転送装置20に関する経路の情報が記録されている。
転送装置テーブル53には、パケット6を送信するためにカプセル化パケット7のトンネル通信が行われる場合に、トンネル通信の終点となる転送装置20と宛先の通信装置1を対応付ける情報が記録されている。以下、トンネル通信の終点となる転送装置20のことを「出口エッジノード」と記載することがある。出口エッジノードは、パケット6の宛先の通信装置1がアクセスできる転送装置20である。また、トンネル通信の始点となる転送装置20のことを「入口エッジノード」と記載することがあるものとする。入口エッジノードはパケット6の送信元の通信装置1がアクセスできる転送装置20から選択されるものとする。転送装置テーブル53は、LOC応答メッセージに記録された情報に基づいて生成される。転送装置テーブル53には、パケット6の宛先の通信装置1のアドレスと出口エッジノードのアドレスの組み合わせが記録される。なお、LOC応答メッセージは、LOC要求メッセージに対する応答として、位置管理サーバ10から転送装置20に送信される。ここで、LOC要求メッセージは、転送装置20が位置管理サーバ10に出口エッジノードを問い合わせるために送信する制御メッセージである。
図3に、LOC要求メッセージとLOC応答メッセージの例を示す。図3(a)は、LOC要求メッセージに含まれている情報要素の例を示す。LOC要求メッセージには、宛先アドレス、送信元アドレス、Type、パケット6の宛先の通信装置1を識別する情報、パケット6の送信元の通信装置1を識別する情報が含まれる。図3(a)の例では、Type=LOC要求に設定することにより、宛先の通信装置1に対応付けられた出口エッジノードのアドレスを要求する制御メッセージであることを示している。LOC要求メッセージの宛先は位置管理サーバ10である。LOC要求メッセージの送信元フィールドには、LOC要求メッセージを送信する転送装置20に割り当てられたアドレスが格納される。また、パケット6の宛先の通信装置1を識別する情報は、宛先の通信装置1のアドレス(宛先ホストID)であり、パケット6の送信元の通信装置1を識別する情報は、送信元の通信装置1のアドレス(送信元ホストID)である。
図3(b)は、LOC応答メッセージに含まれている情報要素の例を示す。LOC応答メッセージには、宛先アドレス、送信元アドレス、Type、パケット6の宛先の通信装置1を識別する情報、出口エッジノードのアドレス、入口エッジノードのアドレスが含まれる。LOC応答メッセージでは、送信元は位置管理サーバ10である。LOC応答メッセージの宛先は、後述するように、位置管理サーバ10によって選択される。例えば、LOC応答メッセージの宛先は、出口エッジノードまでのトンネル通信の入口エッジノードとして、位置管理サーバ10が選択した転送装置20である。また、LOC応答メッセージは、LOC要求メッセージを送信した入口エッジノードに送信されることもある。「Type=LOC応答」は、LOC要求メッセージに応答して、出口エッジノードのアドレスを通知する制御メッセージであることを示す情報である。
受信部21は、転送装置20に送信または転送されたパケットを受信する。例えば、受信部21は、アクセスネットワークに含まれている通信装置1や、コアネットワーク3に含まれている他の転送装置20からパケットを受信する。また、受信部21は、位置管理サーバ10から送信されたLOC応答メッセージも受信する。受信部21は、受信したパケットを種別判定部22に出力する。
種別判定部22は、入力されたパケットの種類を判定し、振り分ける。例えば、種別判定部22は、アクセスネットワークから受信したデータパケットを転送制御部25に出力し、コアネットワーク3から受信したカプセル化パケット7をデカプセル化部24に出力する。種別判定部22は、LOC応答メッセージをLOC応答処理部42に出力する。さらに、種別判定部22は、コアネットワーク3から受信したカプセル化パケット7のうちで、トンネル通信により他の転送装置20に転送するパケットは、転送制御部25に出力する。
カプセル化部23は、転送制御部25から入力されたパケットをカプセル化する。パケット6とカプセル化パケット7のフォーマットの例を図4に示す。パケット6は、データフィールドとヘッダを含む。パケット6のヘッダには、送信元アドレスフィールドと宛先アドレスフィールドが含まれている。例えば、通信装置1aのアドレスがIP1であり、通信装置1bのアドレスがIP2である場合に、通信装置1aから通信装置1bに送信されるパケット6は、図4のパケット6aのように表される。なお、以下の記載では、アウターヘッダとの区別を分かりやすくするために、パケット6のヘッダを「インナーヘッダ」と記載することがあるものとする。
カプセル化部23は、パケット6にアウターヘッダを加えてカプセル化することにより、カプセル化パケット7を生成する。アウターヘッダには、出口エッジノードのアドレスと、入口エッジノードのアドレスが含まれる。例えば、通信装置1aが転送装置20cと同じネットワークに属していて、通信装置1bは転送装置20bと同じネットワークに属しているとする。さらに、転送装置20cには、LOC3というアドレスが割り当てられ、転送装置20bにはLOC2というアドレスが割り当てられているとする。すると、転送装置20cのカプセル化部23は、パケット6aをカプセル化することにより、カプセル化パケット7aを生成する。なお、カプセル化部23は、出口エッジノードのアドレスを取得するために、適宜、転送装置テーブル53にアクセスできるものとする。カプセル化部23は、カプセル化パケット7を転送制御部25に出力する。
出口エッジノードのデカプセル化部24は、種別判定部22から入力されたカプセル化パケット7からアウターヘッダを除去することにより、パケット6を生成する。デカプセル化部24は、パケット6を転送制御部25に出力する。
転送制御部25は、経路テーブル51を用いてパケット6の宛先を決定し、経路テーブル52を用いてカプセル化パケット7の宛先を決定する。さらに、転送制御部25は、パケット6の宛先アドレスが他の転送装置20に接続されているアクセスネットワーク中の通信装置1に割り当てられたアドレスである場合、パケット6をカプセル化部23に出力し、カプセル化部23にカプセル化を要求する。転送制御部25は、パケット6が入力されると、入力されたパケット6のインナーヘッダ中の宛先アドレスをキーとして経路テーブル51を参照し、転送先を決定する。一方、カプセル化パケット7が入力されると、転送制御部25は、経路テーブル52を参照することにより、出口エッジノードに応じて転送先を決定する。転送制御部25は、送信先を決定したパケット6やカプセル化パケット7を、送信部27を介して転送する。さらに、転送制御部25は、通信を行っていない期間が所定の閾値を超えた通信装置1についての経路情報を経路テーブル51から削除する処理も行う。
経路情報通知部26は、LOC応答メッセージかLOC情報通知メッセージで取得した経路を、外部経路としてアクセスネットワーク内に通知する。LOC情報通知メッセージの例を図5に示す。図5は、Open Shortest Path First(OSPF)のLS updateパケットがLOC情報通知メッセージとして用いられる場合の例である。LOC情報通知メッセージは、宛先アドレスフィールド、送信元アドレスフィールド、プロトコルIDフィールド、メッセージタイプフィールド、LSタイプフィールド、宛先ネットワークアドレスフィールド、距離フィールドを含む。宛先アドレスフィールドは、LOC情報通知メッセージの宛先を示すアドレスが記録される。LOC情報通知メッセージの宛先アドレスは、LOC情報通知メッセージの送信元の転送装置20と同じアクセスネットワークに含まれている転送装置20およびルータ4を指定するマルチキャストアドレスである。送信元アドレスフィールドには、LOC情報通知メッセージの送信元の転送装置20に割り当てられたアドレスが格納される。また、後述するように、送信元アドレスは、LOC応答メッセージによって入口エッジノードとして通知された転送装置20に割り当てられたアドレスである場合もある。LOC情報通知メッセージのメッセージタイプフィールドには、LS updateが指定される。宛先ネットワークアドレスフィールドには、パケット6の宛先となっている通信装置1が含まれるアクセスネットワークのアドレスが格納される。距離フィールドには、入口エッジノードから出口エッジノードまでのホップ数が記録される。なお、距離フィールドはオプションであり、LOC情報通知メッセージに距離フィールドが含まれなくても良いものとする。
送信部27は、転送装置20から送信または転送するパケットを送信する。例えば、送信部27は、転送制御部25からの指示に従って、パケット6やカプセル化パケット7を転送する。また、送信部27は、LOC要求部41から入力されたLOC要求メッセージを位置管理サーバ10に送信し、経路情報通知部26から入力されたLOC情報通知メッセージを、アクセスネットワーク中の転送装置20やルータ4に送信する。
学習部31は、アクセスネットワーク中に含まれている通信装置1で生成されたパケットから送信元アドレスを抽出し、経路テーブル51に経路情報として登録する。位置情報通知生成部32は、学習部31が抽出した送信元アドレスを、転送装置20に割り当てられているアドレスに対応付けて、位置情報とする。位置情報通知生成部32は、位置情報を位置管理サーバ10に通知するために用いるパケット(位置情報通知)を生成する。位置情報通知生成部32は、送信部27を介して、位置情報通知を位置管理サーバ10に送信する。
LOC要求部41は、LOC要求メッセージを生成することにより、出口エッジノードを位置管理サーバ10に問い合わせるための処理を行う。LOC要求部41は、パケット6の宛先の通信装置1が他の転送装置20に接続されたアクセスネットワークに含まれており、かつ、トンネル通信の出口エッジノードの情報が転送装置テーブル53に記録されていない場合にLOC要求メッセージを生成する。LOC応答処理部42は、位置管理サーバ10から受信したLOC応答メッセージを処理する。LOC応答処理部42は、LOC応答メッセージから宛先の通信装置1と出口エッジノードのアドレスの組み合わせを抽出し、転送装置テーブル53に記録する。
図6は、転送装置20のハードウェア構成の例を示す。転送装置20は、プロセッサ61、スイッチ回路62、記憶装置63、バス64、インタフェース回路65(65a〜65d)を備える。転送装置20は、例えば、ルータにより実現されることがある。図6の例では、転送装置20は、インタフェース回路65(65a〜65d)の4つのインタフェース回路65を備えているが、転送装置20に含まれるインタフェース回路65の数は任意である。
プロセッサ61は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。プロセッサ61は、種別判定部22、カプセル化部23、デカプセル化部24、経路情報通知部26、位置情報処理部30、LOC情報処理部40として動作する。なお、プロセッサ61は、例えば、記憶装置63に記憶されたプログラムを実行することができる。転送制御部25は、プロセッサ61とスイッチ回路62により実現される。記憶装置63は、記憶部50として動作する。さらに、記憶装置63は、プロセッサ61の動作により得られたデータや、プロセッサ61の処理に用いられるデータも、適宜、記憶する。バス64は、プロセッサ61、スイッチ回路62、記憶装置63、インタフェース回路65の間を、相互にデータの受け渡しが行えるように接続する。受信部21と送信部27は、インタフェース回路65により実現される。
図7は、位置管理サーバ10の構成の例を示す。位置管理サーバ10は、受信部11、送信部12、位置情報処理部13、LOC要求処理部14、位置情報管理テーブル15、選択部16、取得部17、コアネットワーク情報テーブル18を備える。
受信部11は、LOC要求メッセージ、位置情報通知、コアネットワーク3の情報を含むパケットなどを受信する。受信部11は、位置情報通知を位置情報処理部13に出力し、LOC要求メッセージをLOC要求処理部14に出力する。また、受信部11は、コアネットワーク3の情報を含むパケットを取得部17に出力する。
位置情報処理部13は、受信部11から入力された位置情報通知に含まれている情報を位置情報管理テーブル15に記録する。位置情報管理テーブル15には、位置情報通知の送信元の転送装置20のアドレスと、その転送装置20が属するアクセスネットワークに含まれている通信装置1のアドレスが対応付けて記録される。
LOC要求処理部14は、LOC要求メッセージからパケット6の宛先の通信装置1のアドレスと、パケット6の送信元の通信装置1のアドレスを取得する。LOC要求処理部14は、パケット6の宛先である通信装置1のアドレスをキーとして位置情報管理テーブル15を検索し、得られたアドレスを出口エッジノードのアドレスとする。さらに、LOC要求処理部14は、パケット6の送信元である通信装置1のアドレスをキーとして位置情報管理テーブル15を検索することにより、入口エッジノードの候補となる転送装置20を特定する。例えば、アクセスネットワークA1に通信装置1a、転送装置20aおよび転送装置20cが含まれており、アクセスネットワークA2に通信装置1bと転送装置20bが含まれているとする。この状況で通信装置1aから通信装置1bにパケット6が送信されるとすると、LOC要求処理部14は、出口エッジノードを転送装置20bとし、入口エッジノードの候補を、転送装置20aと転送装置20cとする。LOC要求処理部14は、出口エッジノードと入口エッジノードの候補を選択部16に出力する。
選択部16は、LOC要求処理部14から通知された入口エッジノードの候補から、入口エッジノードを選択する。選択部16は、コアネットワーク情報テーブル18を用いて、入口エッジノードの各候補について出口エッジノードまでの経路と経路ごとの通信状況を求め、得られた通信状況を比較する。選択部16は、得られた経路の通信状況が比較的良好な転送装置20を入口エッジノードに選択する。例えば、入口エッジノードの候補が転送装置20aと転送装置20cであって、転送装置20cから出口エッジノードまでの経路の状況の方が、転送装置20aから出口エッジノードまでの経路の状況よりも良好であるとする。この場合、選択部16は、転送装置20cを入口エッジノードに決定する。選択部16は、入口エッジノードを決定すると、LOC応答メッセージを生成し、送信部12に出力する。
取得部17は、コアネットワーク3内のトポロジーの情報、各リンクの帯域の情報、輻輳状態などを収集する。取得部17は、例えば、Simple Network Management Protocol(SNMP)を用いて、これらの情報を取得することができる。また、コアネットワーク3で、ディスタンスベクター型かパスベクター型のルーティングプロトコルが用いられている場合、取得部17は、各転送装置20から、他のエッジノードまでの距離や経路情報を取得する。例えば、ディスタンスベクター型ルーティングプロトコルが用いられている場合、取得部17は、転送装置20aから“(宛先、距離)=(LOC2、X1)、(LOC3、X2)”という情報を取得することができる。同様に取得部17は、転送装置20cから“(宛先、距離)=(LOC1、Y1)、(LOC3、Y2)”のような情報を取得する。ここで、X1, X2, Y1, Y2はホップ数など、2つの装置間の距離の記述に使用できる情報である。パスベクター型の場合は、取得部17は、転送装置20aより、LOC2に対応付けて「ISP1→ISP3」という情報を取得し、LOC3に対応付けて「ISP1→ISP3→ISP2」の情報を取得する。ここで、右向きの矢印は通過するISPの順序を示す。例えば、(LOC2,ISP1→ISP3)という情報が転送装置20aから得られるということは、転送装置20aから、ISP1を通過した後、ISP3を通過することにより、転送装置20bに到達できることを意味する。
コアネットワーク3でリンクステート型、あるいは階層型リンクステート型のルーティングプロトコルが用いられている場合、取得部17は、コアネットワーク3の少なくとも1つのノードから経路情報を取得し、コアネットワーク3全体のトポロジーを把握する。リンクステート型、あるいは階層型リンクステート型のルーティングプロトコルが用いられている場合、取得部17は、転送装置20やルータ4の間で接続している2つの装置の組み合わせの情報を取得する。例えば、後述する図9のネットワークの場合、取得部17は、(LOC1,ルータ4b)、(ルータ4b,ルータ4d)などの情報を取得することができる。
取得部17は、トポロジー情報に加えて、帯域情報を取得することもでき、これらの情報から、輻輳の状態を取得することもできる。取得部17は、取得したコアネットワーク3の情報を、コアネットワーク情報テーブル18に格納する。このため、コアネットワーク情報テーブル18には、障害の発生の有無、輻輳の程度、帯域幅などの情報が含まれている。
送信部12は、LOC応答メッセージを、LOC応答メッセージの宛先の転送装置20に送信する。また、送信部12は、コアネットワーク3の情報の取得のために取得部17で生成されたパケットの送信も行う。
図8は、位置管理サーバ10のハードウェア構成の例を示す。位置管理サーバ10は、プロセッサ71、メモリ72、入力装置73、出力装置74、バス75、外部記憶装置76、媒体駆動装置77、ネットワーク接続装置79を備える。位置管理サーバ10は、例えば、コンピュータなどで実現されることがある。
プロセッサ71は、Central Processing Unit(CPU)を含む任意の処理回路とすることができる。プロセッサ71は、位置情報処理部13、LOC要求処理部14、選択部16、取得部17として動作する。なお、プロセッサ71は、例えば、外部記憶装置76に記憶されたプログラムを実行することができる。メモリ72は、位置情報管理テーブル15とコアネットワーク情報テーブル18を格納する。さらに、メモリ72は、プロセッサ71の動作により得られたデータや、プロセッサ71の処理に用いられるデータも、適宜、記憶する。ネットワーク接続装置79は、転送装置20との通信のための処理を行ない、受信部11、送信部12として動作する。
入力装置73は、例えば、ボタン、キーボードやマウスとして実現され、出力装置74は、ディスプレイなどとして実現される。バス75は、プロセッサ71、メモリ72、入力装置73、出力装置74、外部記憶装置76、媒体駆動装置77、ネットワーク接続装置79の間を相互にデータの受け渡しが行えるように接続する。外部記憶装置76は、プログラムやデータなどを格納し、格納している情報を、適宜、プロセッサ71などに提供する。媒体駆動装置77は、メモリ72や外部記憶装置76のデータを可搬記憶媒体78に出力することができ、また、可搬記憶媒体78からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体78は、フロッピイディスク、Magneto-Optical(MO)ディスク、Compact Disc Recordable(CD−R)やDigital Versatile Disk Recordable(DVD−R)を含む、持ち運びが可能な任意の記憶媒体とすることができる。
<第1の実施形態>
図9は、第1の実施形態にかかる通信方法の例を説明する図である。以下、図9を参照しながら、パケット6が通信装置1aから通信装置1bに送信される場合に行われる処理の例を説明する。以下の例では、図9(a)に示すように、送信元の通信装置1a、ルータ4a、転送装置20a、転送装置20cはアクセスネットワークA1に位置し、宛先の通信装置1bと転送装置20bはアクセスネットワークA2に位置しているものとする。ルータ4aは、通信装置1aから受信したパケットを、転送装置20aと転送装置20cに転送できるものとする。コアネットワーク3には、ISP1〜ISP3が含まれており、個々のISPの間はルータ4(4d、4e)で接続されており、ルータ4dに障害が発生しているものとする。転送装置20aは、アクセスネットワークA1とコアネットワーク3中のISP1を、ルータ4bを介して接続している。転送装置20bは、アクセスネットワークA2とコアネットワーク3中のISP3を、ルータ4fを介して接続しているものとする。また、転送装置20cは、アクセスネットワークA1とコアネットワーク3中のISP2を、ルータ4cを介して接続している。さらに、以下のようにアドレスが割り当てられているものとする。
転送装置20aのアドレス:LOC1
転送装置20bのアドレス:LOC2
転送装置20cのアドレス:LOC3
通信装置1aのアドレス :IP1
通信装置1bのアドレス :IP2
以下の記載では、転送装置20a〜20cのいずれの動作であるかを分かりやすくするために、参照番号の末尾に動作を行っている転送装置20の番号に含まれるアルファベットと同じアルファベットを記載する。例えば、転送装置20bに含まれている学習部31のことを、「学習部31b」と記載するが、転送装置20aに含まれている学習部31は「学習部31a」と記載する。
(1)通信装置1aがパケットを送信すると、転送装置20aと転送装置20cは、アクセスネットワークA1に通信装置1aが含まれていることを学習する。例えば、転送装置20aの学習部31aは、通信装置1aが送信したパケットのヘッダに含まれている送信元アドレス(IP1)を位置情報通知生成部32aに出力し、適宜、経路テーブル51aに記録する。位置情報通知生成部32aは、転送装置20aに割り当てられたアドレス(LOC1)と通信装置1aのアドレスを対応付けた位置情報通知を、送信部27aを介して、位置管理サーバ10に送信する。転送装置20cでも同様の処理が行われるため、通信装置1aのアドレス(IP1)と転送装置20cのアドレス(LOC3)を対応付けた位置情報通知が位置管理サーバ10に送信される。
さらに、通信装置1bがパケットを送信すると、転送装置20bは、通信装置1bのアドレスを学習し、さらに、位置管理サーバ10に位置情報通知を送信する。このとき、転送装置20bは、通信装置1bのアドレス(IP2)と転送装置20bのアドレス(LOC2)を対応付けた位置情報通知を、位置管理サーバ10に送信する。
位置管理サーバ10の位置情報処理部13は、転送装置20a〜20cから位置情報通知を受信すると、それぞれの位置情報通知に含まれている通信装置1のアドレスと転送装置20のアドレスを対応付けて位置情報管理テーブル15に記録する。そのため、位置管理サーバ10の位置情報管理テーブル15は図9(a)に示す情報を保持する。
(2)通信装置1aは、通信装置1b宛のパケット6(図4の6a)を送信する。パケット6の宛先アドレスは通信装置1bのアドレス(IP2)であり、送信元アドレスは通信装置1aのアドレス(IP1)である。
(3)ルータ4aは、通信装置1aからパケット6aを受信する。このとき、ルータ4aは、図9(a)に示すルーティングテーブル8αを備えているとする。ルータ4aは、パケット6aの宛先アドレスとサブネットマスクから、アクセスネットワークA2のネットワークアドレスを求める。ルータ4aは、得られたネットワークアドレスに対する転送先を、ルーティングテーブル8αを用いて検索する。ルータ4aのルーティングテーブル8αには、アクセスネットワークA2への経路が記録されていないので、ルータ4aは、デフォルトルートを用いて、パケット6aを転送装置20aに転送する。
(4)転送装置20aは、受信部21aにおいてパケット6aを受信する。種別判定部22aは、パケット6aを転送制御部25aに出力する。転送制御部25aは、パケット6aの宛先である通信装置1bがアクセスネットワークA1に含まれていないので、トンネル通信を行うことを決定し、パケット6aをカプセル化部23aに出力する。カプセル化部23aは、転送装置テーブル53aを参照して出口エッジノードを特定しようとする。しかし、通信装置1b宛のパケット6aが最初に到着した場合、転送装置テーブル53aには通信装置1bに対応付けられた出口エッジノードが記録されていない。そこで、カプセル化部23aは、LOC要求部41aに出口エッジノードの情報の取得を要求する。LOC要求部41aは、カプセル化部23aからの要求に応じて、以下の情報要素を含むLOC要求メッセージを位置管理サーバ10に送信する。
宛先アドレス :位置管理サーバ10のアドレス
送信元アドレス :LOC1
Type :LOC要求
宛先の通信装置のアドレス :IP2
送信元の通信装置のアドレス:IP1
(5)LOC要求メッセージを受信した位置管理サーバ10のLOC要求処理部14は、位置情報管理テーブル15を用いて、入口エッジノードの候補と出口エッジノードを検索する。ここでは、LOC要求処理部14は位置情報管理テーブル15を参照するので、宛先の通信装置1bのアドレス(IP2)に対応付けられているLOC2が出口エッジノードのアドレスとなる。さらに、LOC要求処理部14は、送信元の通信装置1aのアドレス(IP1)に対応付けられているLOC1とLOC3を、入口エッジノードの候補の転送装置20に割り当てられたアドレスとする。LOC要求処理部14は、以下の情報を選択部16に出力する。
出口エッジノードのアドレス :LOC2
入口エッジノードの候補に割り当てられたアドレス:LOC1、LOC3
(6)選択部16は、コアネットワーク情報テーブル18を用いて、LOC1が割り当てられている転送装置20aから、LOC2が割り当てられている転送装置20bに至る経路を計算する。選択部16は、LOC3が割り当てられている転送装置20cから、転送装置20bに至る経路も計算する。さらに、転送装置20aから転送装置20bに至る経路の状況と、転送装置20cから転送装置20bに至る経路の状況のいずれが良好であるかを、コアネットワーク情報テーブル18を用いて判定する。ここでは、コアネットワーク情報テーブル18には、ルータ4dに障害が発生していることが記録されているものとする。また、選択部16は、図9(b)に示すように、転送装置20aと転送装置20bの間の通信ができないが、転送装置20cと転送装置20bの間では通信が可能であると判定したとする。すると、選択部16は、転送装置20cを入口エッジノードに決定し、転送装置20c宛てのLOC応答メッセージを生成する。ここで生成されるLOC応答メッセージには、例えば、以下の情報要素が含まれる。
宛先アドレス :LOC3
送信元アドレス :位置管理サーバ10のアドレス
Type :LOC応答
宛先の通信装置のアドレス :IP2
出口エッジノードのアドレス:LOC2
入口エッジノードのアドレス:LOC3
選択部16は、生成したLOC応答メッセージを、送信部12を介して、転送装置20cに送信する。
(7)転送装置20cで受信されたLOC応答メッセージは、種別判定部22cによりLOC応答処理部42cに入力される。LOC応答処理部42cは、LOC応答メッセージから、IP2宛てのパケットを含むカプセル化パケット7の出口エッジノードのアドレスはLOC2であり、入口エッジノードは転送装置20cであることを特定する。LOC応答処理部42cは、LOC応答メッセージから特定した情報を用いて、転送装置テーブル53cを図9(b)に示すように更新する。
(8)LOC応答処理部42cは、LOC応答メッセージから特定した情報を、経路情報通知部26cに出力する。経路情報通知部26cは、LOC応答処理部42cから入力された情報を用いて、以下の情報要素を含むLOC情報通知メッセージを生成する。
宛先アドレス :アクセスネットワークA1中のルータ4および転送装置20
送信元アドレス :LOC3
宛先ネットワークアドレス:アクセスネットワークA2のネットワークアドレス
ルータ4aは、転送装置20cからLOC情報通知メッセージを受信すると、アクセスネットワークA2への経路を記録することにより、ルーティングテーブル8αをルーティングテーブル8βに更新する。
(9)通信装置1aは、通信装置1bからの受信応答がなかったため、パケットの送信に失敗したと判定する。そこで、図10に示すように、前回送信したパケットと同じデータを含むパケット6aを再度送信する。
(10)ルータ4aは、通信装置1aからパケット6aを受信する。ルータ4aは、パケット6aの宛先アドレスから、パケット6aの転送先がアクセスネットワークA2であると判定する。そこで、ルーティングテーブル8βに従って、ルータ4aは、パケット6aを転送装置20cに転送する。
(11)転送装置20cで受信されたパケット6aは、種別判定部22cにより転送制御部25cに入力される。転送制御部25cは、パケット6aの宛先がアクセスネットワークA1に無いと判定すると、パケット6aをカプセル化部23cに出力する。カプセル化部23cは、転送装置テーブル53cに記録されている情報を用いてパケット6aをカプセル化することにより、カプセル化パケット7を生成する。このとき、アウターヘッダの宛先アドレスは転送装置20bのアドレス(LOC2)であり、送信元アドレスは転送装置20cのアドレス(LOC3)であるので、図4の7aに示すカプセル化パケット7が生成される。カプセル化部23cは、カプセル化パケット7を転送制御部25cに出力する。
転送制御部25cは、アウターヘッダに記録されている宛先アドレスと経路テーブル52を参照して、カプセル化パケット7の転送制御を行う。カプセル化パケット7は、ルータ4c、ISP2、ルータ4e、ISP3、ルータ4fを介して、転送装置20bに送信される。
(12)転送装置20bに送信されたカプセル化パケット7は、転送装置20bのデカプセル化部24bにおいて、デカプセル化され、パケット6aの状態に戻る。デカプセル化により得られたパケット6aを、転送制御部25bが経路テーブル51bを参照して通信装置1bに転送する。この結果、通信装置1bは、通信装置1aからのパケット6aを受信できる。
なお、図9、図10を参照しながら説明した手順は例であって、手順は変更されることがある。例えば、手順(7)において、LOC応答処理部42は、入口エッジノードに自ノードが指定されている場合は、LOC応答メッセージから得られた情報をカプセル化部23に出力するように変形することもできる。このように変形すると、LOC要求メッセージを送信した転送装置20が入口エッジノードに指定された場合は、手順(7)の時点でカプセル化部23によってカプセル化パケット7が生成される。例えば、転送装置20aがパケット6を受信したことにより、位置管理サーバ10にLOC要求メッセージを送信したとする。この場合、LOC要求メッセージに応答して転送装置20aを入口エッジノードに指定したLOC応答メッセージを受信すれば、転送装置20aは保持しているパケット6を含むカプセル化パケット7を転送できる。このため、アクセスネットワークA1でのトラフィックが削減される。
第1の実施形態は、コアネットワーク3に含まれているルータ4などのノードに障害が発生していない場合でも適用可能である。図11を参照しながら、コアネットワーク3中で障害が発生していない場合の処理の例について説明する。手順(1)〜(5)の処理と、各入口エッジノードから出口エッジノードまでの経路の計算は、図9(a)を参照しながら説明した処理と同様である。
(6A)各入口エッジノードから出口エッジノードまでの経路を計算した後、選択部16は、コアネットワーク情報テーブル18を参照して、得られた各経路の状況を比較する。ここでは、コアネットワーク3のノードには故障が発生していないので、輻輳の状況や帯域幅などを比較することにより、選択部16は、いずれの経路の通信状況が良好であるかを判定する。選択部16は、転送装置20aと転送装置20bの間の経路よりも、転送装置20cと転送装置20bの間の経路の通信状況が良好であると判定したとする。すると、選択部16は、転送装置20cを入口エッジノードに決定する。さらに、選択部16は、手順(6)で示したLOC応答メッセージを、送信部12を介して、転送装置20aと転送装置20cの両方に送信する。
(7A)転送装置20aと転送装置20cの両方でLOC応答メッセージが処理されることにより、転送装置テーブル53aと転送装置テーブル53cは、図11に示すように更新される。なお、転送装置テーブル53の更新に際して行われる処理は手順(7)と同様である。
(8A)LOC応答処理部42aは、LOC応答メッセージに含まれている情報から、IP2宛てのパケット6を含むカプセル化パケット7の送信の際に、転送装置20aが入口エッジノードとして使用されないと判定する。このため、LOC応答処理部42aは、アクセスネットワークA1中の転送装置20やルータ4へのLOC情報通知メッセージの送信を行わないことを決定し、経路情報通知部26aへはLOC応答メッセージに含まれている情報を出力しない。
転送装置20aのLOC応答処理部42aは、転送装置テーブル53aの更新に用いた情報をカプセル化部23aにも出力する。カプセル化部23aは、LOC応答処理部42aから通知された情報を用いてパケット6aをカプセル化することにより、カプセル化パケット7を生成し、転送制御部25aに出力する。転送制御部25aは、経路テーブル52aを用いて送信先を決定し、送信部27aを介してカプセル化パケット7を送信する。
一方、転送装置20cの動作は、手順(8)と同様である。通信装置1aは、転送装置20aに転送されたパケット6aの送信に成功したことを認識すると、再送を行わず、パケット6aの続きのデータを含むパケットを通信装置1bに送信できる。パケット6aの続きのデータを含むパケットについての処理は、手順(10)〜(12)と同様である。このように、入口エッジノードの候補となった全ての転送装置20にLOC応答メッセージが送信される場合は、転送装置20aに送信されたパケットの再送が行われないため、アクセスネットワークA1でのトラフィックが削減される。
図12は、転送装置20が行う処理の例を説明するフローチャートである。図12は、送信元の通信装置1と同じアクセスネットワークに含まれる転送装置20が、アクセスネットワーク側からパケットを受信したときと、位置管理サーバ10からLOC応答メッセージを受信したときの動作の例を示す。なお、図12は例であり、例えば、ステップS7〜S9の順序が任意に変更される場合がある。また、ステップS10とS11の順序が変更される場合もあるものとする。
受信部21は、パケットを受信し、種別判定部22に出力する(ステップS1)。種別判定部22は、受信したパケットがアクセスネットワークから受信したデータパケットであるかを判定する(ステップS2)。受信したパケットがデータパケットである場合、種別判定部22は、データパケットを転送制御部25に出力する(ステップS2でYes)。転送制御部25は、接続されているアクセスネットワーク以外のアクセスネットワークに含まれる通信装置1宛のパケットである場合、カプセル化部23にカプセル化を要求する。カプセル化部23は、宛先アドレスをキーとして、転送装置テーブル53を検索し、対応するエントリがあるか判定する(ステップS3)。対応するエントリがある場合、カプセル化部23は、抽出したエントリに含まれている出口エッジノードを宛先としたカプセル化パケット7を生成し、転送制御部25は、カプセル化パケット7を宛先に転送する(ステップS4)。一方、対応するエントリが転送装置テーブル53にない場合、LOC要求部41は位置管理サーバ10にLOC要求メッセージを送信する(ステップS5)。
受信したパケットがデータパケットではない場合、種別判定部22は、受信したパケットがLOC応答メッセージであると判定して、LOC応答処理部42に出力する(ステップS2でNo)。LOC応答処理部42は、自ノードが入口エッジノードに指定されているかを判定する(ステップS6)。入口エッジノードに指定されている場合、LOC応答処理部42は、LOC応答メッセージに含まれている情報を、経路情報通知部26に通知した上で、転送装置テーブル53に記録する(ステップS6でYes、ステップS7)。さらに、LOC応答処理部42はLOC応答メッセージ中の情報をカプセル化部23に通知する。カプセル化部23は、パケット6を保持している場合、通知された情報に基づいてデータパケットをカプセル化する。カプセル化後のパケットは、出口エッジノードに向けて送信される(ステップS8)。経路情報通知部26は、LOC応答処理部42から通知された情報を含むLOC情報通知メッセージを、アクセスネットワーク中のルータ4や転送装置20に送信する(ステップS9)。
一方、入口エッジノードに指定されていない場合、LOC応答処理部42は、LOC応答メッセージに含まれている情報を、転送装置テーブル53に記録するが、経路情報通知部26には通知しない(ステップS6でNo、ステップS10)。LOC応答処理部42はLOC応答メッセージ中の情報をカプセル化部23に通知し、カプセル化部23は、パケット6を保持している場合、通知された情報に基づいてデータパケットをカプセル化する。カプセル化後のパケットは、出口エッジノードに向けて送信される(ステップS11)。
図13は、位置管理サーバ10が行う処理の例を説明するフローチャートである。受信部11は、LOC要求メッセージを受信すると、LOC要求処理部14に出力する(ステップS21)。LOC要求処理部14は、LOC要求メッセージに含まれている宛先の通信装置1のアドレスに対応付けられたエントリを、位置情報管理テーブル15から検索する(ステップS22)。宛先の通信装置1のアドレスに対応付けて検出された転送装置20のアドレスが出口エッジノードのアドレスである。次に、宛先アドレスに対応するエントリがある場合、LOC要求処理部14は、LOC要求メッセージに含まれている送信元の通信装置1のアドレスに対応付けられたエントリ(入口エッジノードの候補)を、位置情報管理テーブル15から検索する(ステップS23)。LOC要求処理部14は、得られた結果を選択部16に出力する。選択部16は、得られた入口エッジノードの候補の数が複数かを判定する(ステップS24)。
得られた入口エッジノードの候補の数が複数である場合、選択部16は、コアネットワーク3の状況に基づいて、最適な経路をとるための入口エッジノードを選択する(ステップS24でYes、ステップS25)。位置管理サーバ10は、出口エッジノードのアドレスを格納したLOC応答メッセージを、選択部16が入口エッジノードとして選択した転送装置20に送信する(ステップS26)。さらに、位置管理サーバ10は、出口エッジノードのアドレスを格納したLOC応答メッセージを、LOC要求メッセージの送信元の転送装置20に送信する(ステップS27)。
一方、得られた入口エッジノードの候補の数が1つである場合、入口エッジノードの候補は、LOC要求メッセージの送信元の転送装置20だけである。そこで、位置管理サーバ10は、出口エッジノードのアドレスを格納したLOC応答メッセージを、LOC要求メッセージの送信元の転送装置20に送信する(ステップS24でNo、ステップS27)。また、宛先の通信装置1のアドレスに対応するエントリがない場合、宛先不明であると判定してエラー処理を行う(ステップS28)。
このように、第1の実施形態で説明した方法によると、LOC要求メッセージを受信した位置管理サーバ10が、コアネットワーク3での状況に応じて入口エッジノードを選択できる。また、入口エッジノードに選択された転送装置20は、LOC応答メッセージを受信すると、通信先の通信装置1宛てのパケットを転送できることをアクセスネットワーク中に広告するので、アクセスネットワーク中の経路も入口エッジノードに応じて確立される。従って、第1の実施形態によると、アクセスネットワークにおいて、複数のエッジノードを用いたマルチホーム接続を行って冗長経路を確保できる。この場合、経路がコアネットワーク3の状況に応じて選択されるという利点もある。
<第2の実施形態>
図14を参照しながら、LOC要求メッセージを送信していない転送装置20にはLOC応答メッセージが送信されない場合の実施形態について説明する。第2の実施形態でも、通信装置1、ルータ4、転送装置20の位置や、それらの装置に割り当てられたアドレスは第1の実施形態と同様であるものとする。
(21)通信装置1aから通信装置1b宛てのパケットが送信された場合、手順(1)〜(4)と同様の処理により、位置管理サーバ10にLOC要求メッセージが送信される。さらに、LOC要求処理部14は、手順(5)と同様にLOC要求メッセージを処理する。図14(a)では、分かりやすくするために、図9の説明で用いた手順の番号(1)〜(5)を示す。
(22)入口エッジノードの各候補から出口エッジノードまでの経路の計算は、図9を参照しながら手順(6)で説明した処理と同様である。選択部16は、コアネットワーク情報テーブル18中の情報を用いて、得られた経路の状況を比較することにより、比較的良好な経路を使用することができるように入口エッジノードを選択する。ここでは、転送装置20cが入口エッジノードに選択されたものとする。
すると、選択部16は、LOC要求メッセージの送信元である転送装置20aを宛先として、以下の情報要素を含むLOC応答メッセージを生成する。
宛先アドレス :LOC1
送信元アドレス :位置管理サーバ10のアドレス
Type :LOC応答
宛先の通信装置のアドレス :IP2
出口エッジノードのアドレス:LOC2
入口エッジノードのアドレス:LOC3
選択部16は、生成したLOC応答メッセージを、送信部12を介して、転送装置20aに送信する。
(23)転送装置20aのLOC応答処理部42aは、LOC応答メッセージから、IP2宛てのパケットを含むカプセル化パケット7の出口エッジノードのアドレスはLOC2であり、入口エッジノードは転送装置20cであることを特定する。LOC応答処理部42aは、LOC応答メッセージから特定した情報を用いて、転送装置テーブル53aを図14(a)に示すように更新する。
(24)LOC応答処理部42aは、LOC応答メッセージから特定した情報を、経路情報通知部26aに出力する。経路情報通知部26aは、LOC応答処理部42aから入力された情報を用いて、送信元を転送装置20cとし、かつ、以下の情報要素を含むLOC情報通知メッセージを生成する。
宛先アドレス :アクセスネットワークA1中のルータ4および転送装置20
送信元アドレス :LOC3
宛先ネットワークアドレス:アクセスネットワークA2のネットワークアドレス
すなわち、転送装置20aが転送装置20cに成りすましてLOC情報通知メッセージをアクセスネットワークA1中のルータ4や転送装置20に送信する。
ルータ4aは、転送装置20aからLOC情報通知メッセージを受信すると、アクセスネットワークA2への経路を記録することにより、ルーティングテーブル8αをルーティングテーブル8β(図14(b)を参照)に更新する。
(25)転送装置20aのLOC応答処理部42aは、転送装置テーブル53aの更新に用いた情報をカプセル化部23aにも出力する。カプセル化部23aは、LOC応答処理部42aから通知された情報を用いてパケット6aをカプセル化することにより、カプセル化パケット7を生成し、転送制御部25aに出力する。転送制御部25aは、経路テーブル52aを用いて送信先を決定し、送信部27aを介して、カプセル化パケット7を送信する。カプセル化パケット7は、転送装置20bによって、図9を参照しながら説明した手順(12)と同様に処理される。この結果、通信装置1bはパケット6aを受信する。
(26)次に通信装置1aから通信装置1b宛てのパケット6bが送信されたとする。この場合も、パケット6bはルータ4aで受信される。
(27)ルータ4aは、パケット6bがアクセスネットワークA2宛てのパケットであると判定し、ルーティングテーブル8βを用いて、パケット6bを転送装置20cに転送する。
(28)転送装置20cの種別判定部22cは、パケット6bを転送制御部25cに出力する。転送制御部25cは、パケット6bの宛先がアクセスネットワークA1に含まれていないので、トンネル通信を行うことを決定し、パケット6bをカプセル化部23cに出力する。カプセル化部23cは、転送装置テーブル53cを参照して出口エッジノードを特定しようとするが、この時点では、転送装置テーブル53cには通信装置1bに対応付けられた出口エッジノードが記録されていない。そこで、カプセル化部23cは、LOC要求部41cに出口エッジノードの情報の取得を要求する。LOC要求部41cは、カプセル化部23cからの要求に応じて、LOC要求メッセージを位置管理サーバ10に送信する。
(29)位置管理サーバ10のLOC要求処理部14は、手順(5)と同様に入口エッジノードの候補と、出口エッジノードを選択部16に出力する。選択部16は、手順(22)と同様の処理により、LOC要求メッセージの送信元である転送装置20cに、入口エッジノードのアドレスと出口エッジノードのアドレスを含むLOC応答メッセージを送信する。ここでは、入口エッジノードのアドレスとしてLOC3、出口エッジノードのアドレスとしてLOC2が送信されたものとする。
(30)転送装置20cで受信されたLOC応答メッセージは、手順(23)と同様の処理により、転送装置テーブル53cの更新に用いられる。更新の前後の転送装置テーブル53cを、図14(b)に示す。
(31)転送装置20cにおいて、手順(25)と同様の処理が行われることにより、パケット6bが通信装置1bに送信される。
図15は、デフォルトルートの転送先に設定されている転送装置20の動作の例を説明するフローチャートである。なお、図15は、アクセスネットワーク側から転送装置20がパケットを受信した場合と、位置管理サーバ10からLOC応答メッセージを受信した場合の動作の例を示している。図15のステップS37〜S39の順序が任意に変更されるなどの変更が実装に応じて行われるものとする。また、ステップS40〜S42の順序が変更される場合もあるものとする。
ステップS31〜S39で行われる処理は、図12を参照しながら説明したステップS1〜S9と同様である。
入口エッジノードとして他の転送装置20が指定されているLOC応答メッセージを受信したと判定した場合、LOC応答処理部42は、LOC応答メッセージに含まれている情報を、転送装置テーブル53に記録する(ステップS36でNo、ステップS40)。さらに、LOC応答処理部42は、LOC応答メッセージに含まれている入口エッジノードのアドレスと、パケット6の宛先の情報を、経路情報通知部26に通知する。経路情報通知部26は、LOC応答処理部42から通知された情報を含み、かつ、送信元を入口エッジノードのアドレスに設定したLOC情報通知メッセージを、アクセスネットワーク中のルータ4や転送装置20に送信する(ステップS41)。さらに、LOC応答処理部42はLOC応答メッセージ中の情報をカプセル化部23に通知する。カプセル化部23は、パケット6を保持している場合、通知された情報に基づいてデータパケットをカプセル化する。カプセル化後のパケットは、出口エッジノードに向けて送信される(ステップS42)。
第2の実施形態では、位置管理サーバ10は、LOC要求メッセージを送信していない転送装置20には、LOC応答メッセージを送信しない。従って、位置管理サーバ10の動作は、例えば、図13のフローチャートからステップS26を削除したフローチャートとして表すことができる。
第2の実施形態では、デフォルトルートの転送先に指定されている転送装置20が、位置管理サーバ10から通知された入口エッジノードに成りすましてアクセスネットワーク中にLOC情報通知メッセージを送信する。このため、入口エッジノードに成りすました転送装置20から送信されたLOC情報通知メッセージにより、ルータ4aは、パケット6の転送先を特定することができる。入口エッジノードに指定されている転送装置20は、パケット6を受信した時点では出口エッジノードの情報を持っていないが、パケット6を受信してから位置管理サーバ10に出口エッジノードを問い合わせれば、パケット6の転送を行うことができる。従って、第2の実施形態でも、第1の実施形態と同様に、マルチホーム接続を用いた冗長経路の確保が可能になる。
さらに、第2の実施形態によると、マルチホーム接続の際に既存のルータなどを併用することができるという利点もある。第1の実施形態では、LOC要求メッセージを送信していない転送装置20がLOC応答メッセージを受信することがある。このため、アクセスネットワークA1のマルチホーム接続に用いられる全ての転送装置20がLOC要求メッセージを送信していなくてもLOC応答メッセージに対応できるように設計されることになる。しかし、第2の実施形態では、LOC要求メッセージを位置管理サーバ10に送信した転送装置20がLOC応答メッセージを受信するため、デフォルトルートに設定されていない転送装置としてLISPに対応したルータを用いることもできる。例えば、図14の例では、ルータ4aのデフォルトルートのルーティング先が転送装置20aであるので、転送装置20cの代わりにルータ4hを使用することにより、転送装置20aとルータ4hを併用したマルチホーム接続が可能である。
<第3の実施形態>
第3の実施形態では、転送装置90が入口エッジノードとして動作する転送装置を決定することができる場合について説明する。
図16は、第3の実施形態に係る転送装置90の構成の例を示す。転送装置90は、ネットワーク情報取得部28、LOC情報処理部91、記憶部92を備え、さらに、受信部21、種別判定部22、カプセル化部23、デカプセル化部24、転送制御部25、経路情報通知部26、送信部27、位置情報処理部30を備える。LOC情報処理部91は、LOC要求部41、LOC応答処理部42、選択部43を有する。記憶部92は、コアネットワーク情報54、候補情報テーブル55を備え、さらに、経路テーブル51、経路テーブル52、転送装置テーブル53も記憶している。転送装置90は、転送装置20と同様のハードウェア構成をとるものとする。なお、ネットワーク情報取得部28とLOC情報処理部91は、プロセッサ61により実現され、記憶部92は記憶装置63により実現される。
選択部43は、LOC応答処理部42から出口エッジノードアドレスが入力されると、出口エッジノードへカプセル化パケット7を転送するための経路の条件が比較的良好なエッジノードを入口エッジノードに選択する。選択部43は、入口エッジノードの候補から出口エッジノードへの経路の算出や、各経路の条件の比較を行う際に、適宜、コアネットワーク情報テーブル54と候補情報テーブル55を使用することができる。
ネットワーク情報取得部28は、位置管理サーバ10に含まれている取得部17と同様の処理により、コアネットワーク3内のトポロジー、各リンクの帯域、輻輳状態などの情報を取得することができる。ネットワーク情報取得部28は、取得したコアネットワーク3の情報を、コアネットワーク情報テーブル54に格納する。
候補情報テーブル55は、マルチホーム接続が行われている場合に、転送装置90と同じアクセスネットワーク中で入口エッジノードの候補となる転送装置の情報を保持する。ここで、候補情報テーブル55は、転送装置20と転送装置90のいずれの情報も含めることができるものとする。例えば、アクセスネットワークA1とコアネットワーク3が転送装置90aと転送装置20cで接続されているとする。この場合、アクセスネットワークA1に含まれている転送装置90aによって保持されている候補情報テーブル55には、転送装置90aと転送装置20cの情報が記録される。候補情報テーブル55に用いられる記憶容量を小さくするために、転送装置90は、自ノード以外の転送装置の情報を候補情報テーブル55に記録することができるものとする。例えば、図17(a)に示すように、転送装置90aの候補情報テーブル55には、転送装置90a以外の転送装置である転送装置20cの情報が記録され、転送装置90aの情報が省略されていても良い。
図17を参照しながら、第3の実施形態で行われる処理の例を説明する。なお、第3の実施形態でも、通信装置1、ルータ4、転送装置20b、20cの位置や、それらの装置に割り当てられたアドレスは第1および第2の実施形態と同様であるものとする。図17の例では、転送装置90aがデフォルトルートに設定されており、転送装置90aは、アクセスネットワークA1とISP1を接続するものとする。また、転送装置90aに割り当てられているアドレスはLOC1であるものとする。
図17の説明では、転送装置90aでの動作を説明する際に、参照番号の末尾に「a」を記載する。例えば、転送装置90aに含まれているLOC応答処理部42のことを、LOC応答処理部42aと記載する。
(41)通信装置1aから通信装置1b宛てのパケットが送信された場合、手順(1)〜(4)と同様の処理により、転送装置90aから位置管理サーバ10にLOC要求メッセージが送信される。図17(a)では、分かりやすくするために、図9の説明で用いた手順の番号(1)〜(4)を示す。
(42)LOC要求メッセージを受信した位置管理サーバ10のLOC要求処理部14は、通信装置1bのアドレスをキーとして位置情報管理テーブル15を検索することにより、通信装置1bに対応付けられている転送装置20を特定する。図17(a)の例では、出口エッジノードのアドレスとしてLOC2が検出される。そこで、LOC要求処理部14は、LOC要求メッセージの送信元を宛先として、以下の情報要素を備えるLOC応答メッセージを生成する。ここで生成されるLOC応答メッセージには、入口エッジノードの情報が含まれていないか、無効値となっている。
宛先アドレス :LOC1
送信元アドレス :位置管理サーバ10のアドレス
Type :LOC応答
宛先の通信装置のアドレス :IP2
出口エッジノードのアドレス:LOC2
入口エッジノードのアドレス:−
LOC要求処理部14は、生成したLOC応答メッセージを、送信部12を介して、転送装置90aに送信する。
(43)転送装置90aは、LOC応答メッセージを受信すると、転送装置テーブル53aを更新し、パケット6を含むカプセル化パケット7を転送装置20bに送信する。転送装置テーブル53aの更新は、図14を参照しながら説明した手順(23)と同様に行われる。カプセル化パケット7の送信は、図14を参照しながら説明した手順(25)と同様に行われる。
(44)LOC応答処理部42aは、出口エッジノードのアドレスを選択部43aに出力する。選択部43aは、候補情報テーブル55aに記録されている転送装置と、転送装置90aについて、出口エッジノードまでの経路を求め、個々の経路についての情報を比較する。選択部43aは、状況が良好な経路の始点となる転送装置を、入口エッジノードに選択する。
図17(a)の例では、候補情報テーブル55aに転送装置20cの情報(LOC3)が記録されている。また、出口エッジノードは転送装置20b(LOC2)である。そこで、選択部43aは、転送装置90aから転送装置20bに至る第1の経路と、転送装置20cから転送装置20bに至る第2の経路を計算する。さらに、選択部43aは、第1の経路と第2の経路の各々の状況を求めて比較する。このとき、選択部43aは、適宜、コアネットワーク情報テーブル54aの情報を使用することができるものとする。ここでは、第1の経路よりも第2の経路が良好であるとする。すると、選択部43aは、転送装置20cを入口エッジノードに選択する。
(45)選択部43aは、入口エッジノードとして転送装置90aを選択しない場合、入口エッジノードのアドレスをLOC応答処理部42aに出力する。LOC応答処理部42aは、選択部43aから通知されたアドレスを、手順(43)で受信したLOC応答メッセージの宛先アドレスに設定して、送信部27aに出力する。送信部27aは、LOC応答処理部42aから入力されたLOC応答メッセージを送信する。従って、図17(a)の例では、LOC応答メッセージが転送装置20cに送信される。
(46)転送装置20cで受信されたLOC応答メッセージは、手順(23)と同様の処理により、転送装置テーブル53cの更新に用いられる。更新後の転送装置テーブル53cを、図17(b)に示す。
(47)LOC応答処理部42cは、LOC応答メッセージから特定した情報を、経路情報通知部26cに出力する。経路情報通知部26cは、LOC情報通知メッセージを生成し、送信部27cを介して、アクセスネットワークA1中のルータ4や転送装置20に送信する。このときにLOC情報通知メッセージに含まれる情報は以下のとおりである。
宛先アドレス :アクセスネットワークA1中のルータ4および転送装置20
送信元アドレス :LOC3
宛先ネットワークアドレス:アクセスネットワークA2のネットワークアドレス
ルータ4aは、転送装置20cからLOC情報通知メッセージを受信すると、アクセスネットワークA2への経路を記録することにより、ルーティングテーブル8αをルーティングテーブル8βに更新する。
(48)次に通信装置1aから通信装置1b宛てのパケット6bが送信された場合の処理は、図10を参照しながら説明した手順(10)〜(12)と同様である。
図18は、デフォルトルートの転送先に設定されている転送装置90の動作の例を説明するフローチャートである。以下、LOC応答処理部42が候補情報テーブル55を参照できる場合の転送装置90の動作について説明する。なお、図18は、転送装置90が、アクセスネットワーク側または位置管理サーバ10からパケットを受信した場合の動作の例を示している。なお、ステップS57、S58の順序が任意に変更されるなどの変更が加えられる場合がある。また、ステップS59は、ステップS57、S58よりも前に行われても良い。ステップS51〜S55で行われる処理は、図12を参照しながら説明したステップS1〜S5と同様である。
受信したパケットがデータパケットではない場合、種別判定部22は、受信したパケットがLOC応答メッセージであると判定して、LOC応答処理部42に出力する(ステップS52でNo)。LOC応答処理部42は、候補情報テーブル55を参照して、自ノードが位置するアクセスネットワーク中に複数の入口エッジノード候補があるかを判定する(ステップS56)。複数の入口エッジノード候補がある場合、LOC応答処理部42は、LOC応答メッセージに含まれている情報を、選択部43に通知した上で、転送装置テーブル53に記録する(ステップS56でYes、ステップS57)。さらに、LOC応答処理部42はLOC応答メッセージ中の情報をカプセル化部23に通知する。カプセル化部23は、パケット6を保持している場合、通知された情報に基づいてデータパケットをカプセル化する。カプセル化後のパケットは、出口エッジノードに向けて送信される(ステップS58)。選択部43は、入口エッジノード候補の各々について、出口エッジノードまでの経路を計算し、得られた経路の状況に応じて、入口エッジノードを選択する(ステップS59)。選択部43は、選択した入口エッジノードに出口エッジノードを通知する(ステップS60)。
一方、入口エッジノード候補が自ノードのみである場合、LOC応答処理部42は、LOC応答メッセージに含まれている情報を、経路情報通知部26に通知した上で、転送装置テーブル53に記録する(ステップS56でNo、ステップS61)。
さらに、LOC応答処理部42はLOC応答メッセージ中の情報をカプセル化部23に通知する。カプセル化部23は、パケット6を保持している場合、通知された情報に基づいてデータパケットをカプセル化する。カプセル化後のパケットは、出口エッジノードに向けて送信される(ステップS62)。経路情報通知部26は、LOC応答処理部42から通知された情報を含むLOC情報通知メッセージを、アクセスネットワーク中のルータ4や転送装置20に送信する(ステップS63)。
なお、第3の実施形態では、位置管理サーバ10は、選択部16、取得部17、コアネットワーク情報テーブル18を備えなくても良い。また、位置管理サーバ10は、経路の計算を行わなくても良いので、位置管理サーバ10の負担が軽減される。
<第4の実施形態>
図19を参照しながら、第4の実施形態で行われる処理の例を説明する。なお、第4の実施形態では、通信装置1、ルータ4、転送装置20の位置や、それらの装置に割り当てられたアドレスは第1、第2の実施形態と同様であるものとする。
(51)通信装置1aから通信装置1b宛てのパケットが送信された場合、手順(1)〜(4)と同様の処理により、位置管理サーバ10にLOC要求メッセージが送信される。図19では、分かりやすくするために、図9の説明で用いた手順の番号(1)〜(4)を示す。
(52)LOC要求メッセージを受信した位置管理サーバ10のLOC要求処理部14は、位置情報管理テーブル15を用いて、入口エッジノードの候補と出口エッジノードを検索する。ここでは、LOC要求処理部14は図19に示す位置情報管理テーブル15を参照するので、宛先の通信装置1bのアドレス(IP2)に対応付けられているLOC2が出口エッジノードのアドレスとなる。さらに、LOC要求処理部14は、送信元の通信装置1aのアドレス(IP1)に対応付けられているLOC1とLOC3を、入口エッジノードの候補の転送装置20に割り当てられたアドレスとする。
(53)LOC要求処理部14は、入口エッジノードの候補として得られた全ての転送装置20に宛てて、出口エッジノードを通知するLOC応答メッセージを生成する。ただし、ここで生成されるLOC応答メッセージには、入口エッジノードの情報が含まれていないか、無効値となっている。従って、ここで生成されるLOC応答メッセージには、例えば、以下の情報要素が含まれる。
宛先アドレス :LOC1またはLOC3
送信元アドレス :位置管理サーバ10のアドレス
Type :LOC応答
宛先の通信装置のアドレス :IP2
出口エッジノードのアドレス:LOC2
入口エッジノードのアドレス:−
LOC要求処理部14は、生成したLOC応答メッセージを、送信部12を介して、転送装置20aと転送装置20cに送信する。
(54)転送装置20aと転送装置20cの両方でLOC応答メッセージが処理されることにより、転送装置テーブル53aと転送装置テーブル53cは、図19に示すように更新される。なお、転送装置テーブル53の更新に際して行われる処理は手順(7)と同様である。
(55)LOC応答処理部42aは、LOC応答メッセージから特定した情報を、経路情報通知部26aに出力する。経路情報通知部26aは、LOC応答処理部42aから入力された情報を用いて、以下の情報要素を含むLOC情報通知メッセージを生成する。
宛先アドレス :アクセスネットワークA1中のルータ4および転送装置20
送信元アドレス :LOC1
宛先ネットワークアドレス:アクセスネットワークA2のネットワークアドレス
(56)転送装置20cも、転送装置20aと同様にLOC情報通知メッセージの送信を行う。このときに行われる動作は、手順(8)と同様である。ルータ4aは、手順(55)と(56)で同じ宛先に対応付けられた経路情報を取得しているので、経路の状況が良好な方の情報をルーティングテーブル8に記録する。ここでは、転送装置20cを経由する経路の状況が比較的良好であると判定されたとする。すると、ルータ4aは、アクセスネットワークA2への経路を記録することにより、ルーティングテーブル8αをルーティングテーブル8βに更新する。
(57)転送装置20aのLOC応答処理部42aは、転送装置テーブル53aの更新に用いた情報をカプセル化部23aにも出力する。カプセル化部23aは、LOC応答処理部42aから通知された情報を用いてパケット6をカプセル化することにより、カプセル化パケット7を生成し、転送制御部25aに出力する。転送制御部25aは、経路テーブル52aを用いて送信先を決定し、送信部27を介してカプセル化パケット7を送信する。カプセル化パケット7は、転送装置20bによって、図9を参照しながら説明した手順(12)と同様に処理される。この結果、通信装置1bはパケット6aを受信する。
(58)次に通信装置1aから通信装置1b宛てのパケット6bが送信された場合、ルータ4aは、転送装置20aと転送装置20cのうち、経路状況が良好な転送装置20をパケット6bの転送先とする。転送装置20cが転送先として選ばれた場合の処理は、図10を参照しながら説明した手順(10)〜(12)と同様である。
図20は、転送装置20が行う処理の例を説明するフローチャートである。図20は、転送装置20がアクセスネットワーク側の装置、またば、位置管理サーバ10からパケットを受信したときの処理の例を表している。なお、図20は例であり、例えば、ステップS76とS77の順序が変更されるなどの修正が加えられる場合もあるものとする。ステップS71〜S75で行われる処理は、図12を参照しながら説明したステップS1〜S5と同様である。
受信したパケットがデータパケットではない場合、種別判定部22は、受信したパケットを、LOC応答処理部42に出力する(ステップS72でNo)。LOC応答処理部42は、LOC応答メッセージに含まれている情報を、経路情報通知部26に通知した上で、転送装置テーブル53に記録する(ステップS76)。経路情報通知部26は、LOC応答処理部42から通知された情報を含むLOC情報通知メッセージを、アクセスネットワーク中のルータ4や転送装置20に送信する(ステップS77)。次に、LOC応答処理部42はLOC応答メッセージ中の情報をカプセル化部23に通知する。カプセル化部23は、パケット6を保持している場合、通知された情報に基づいてデータパケットをカプセル化し、出口エッジノードに向けて送信する(ステップS78でYes、S79)。パケット6を保持していない場合、カプセル化部23は、処理を終了する(ステップS78でNo)。
図21は、位置管理サーバ10が行う処理の例を説明するフローチャートである。ステップS91〜S93、S95の処理は、図13を参照しながら説明したステップS21〜S23、S28と同様である。位置管理サーバ10は、宛先の通信装置1のアドレスに対応付けられている出口エッジノードのアドレスを格納したLOC応答メッセージを、ステップS23で抽出された全ての転送装置20に送信する(ステップS94)。
さらに、手順(55)において、転送装置20aは、転送装置20aから転送装置20bまでのホップ数などの距離を表す情報を含むLOC情報通知メッセージをアクセスネットワークA1中に通知することができる。同様に、手順(56)において、転送装置20cも、転送装置20cから転送装置20bまでの経路の距離を示す情報を含むLOC情報通知メッセージをアクセスネットワークA1中に通知することができる。ルータ4aは、LOC情報通知メッセージに含まれている距離が短いほうの転送装置20を転送先としてルーティングテーブルに記録する。この場合、コアネットワーク3での状況に応じて、ルータ4aが転送先を決定することができる。
第4の実施形態でも、第3の実施形態と同様に、位置管理サーバ10は、選択部16、取得部17、コアネットワーク情報テーブル18を備えなくても良い。また、位置管理サーバ10は、経路の計算を行わなくても良いので、位置管理サーバ10の負担が軽減される。第4の実施形態では、デフォルトルートに設定されている転送装置は、その転送装置から出口エッジノードまでの経路以外は計算しないので、複数の経路を計算しなくても良い。このため、デフォルトルートに含まれている転送装置の負荷は第3の実施形態に比べて低くなる。
<その他>
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
第3の実施形態において、入口エッジノードがデフォルトルート上の転送装置90ではない場合に、デフォルトルート上にある転送装置90が、入口エッジノードとして選択された転送装置20に成りすましてLOC情報通知メッセージを送信しても良い。この場合、LOC情報通知メッセージの生成方法は第2の実施形態と同様である。
転送装置20および転送装置90は、転送装置テーブル53の情報をホストIDごとに情報の取得時刻と対応付けて記憶することができる。この場合、経路情報通知部26は、各情報について取得してから経過した時間をモニタし、取得してから一定の時間が経過した情報を削除することができる。経路情報通知部26は、削除したエントリに記録されていたアドレスに対応する経路情報の削除を要求するために、LOC情報削除通知メッセージをアクセスネットワーク中の転送装置20やルータ4に送信することができる。LOC情報削除通知メッセージに含まれている情報要素は、例えば、LOC情報通知メッセージと同様で、メッセージタイプが「削除通知」であるものとする。LOC情報削除通知メッセージを受信したルータ4は、LOC情報削除通知メッセージに含まれている情報に対応するエントリをルーティングテーブル8から削除する。また、転送装置20は、受信したLOC情報削除通知メッセージに含まれている情報に対応するエントリを経路テーブル51から削除する。なお、デフォルトルート上の転送装置20、90が他の転送装置に成りすましてLOC情報通知メッセージを送信した場合、デフォルトルート上の転送装置20、90は、他の転送装置に成りすましてLOC情報削除通知メッセージを送信する。このため、デフォルトルート上の転送装置20、90は、他の転送装置に成りすましてLOC情報通知メッセージを送信した場合、成りすました転送装置の情報を転送装置テーブル53の情報に含めておくものとする。
第3の実施形態では、デフォルトルート上にないエッジノードが転送装置20である場合を例として説明したが、全てのエッジノードが転送装置90であっても良い。また、第1、第2、第4の実施形態においても、転送装置90を用いることもできる。
なお、アクセスネットワークA1が2台の転送装置20、90でマルチホーム接続されている場合を例として説明したが、3台以上の転送装置20、90でマルチホーム接続が行われていても、第1〜第4の実施形態を含む全ての実施形態による通信を適用できる。