以下、図面を参照して本発明の実施形態について説明する。実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
本実施形態では、コアゲートウェイ(Core GW:以下CGW)の4rd用IPv4アド
レスのロードバランスアルゴリズムと、複数のBRのそれぞれの稼働状況と、TEPA(Tunnel End Point Address:トンネル終点アドレス)とを記憶・管理するサーバが設置される。また、本実施形態では、宛先IPv4アドレスを用いたロードバランスアルゴリズムが実行される。
CEは、WAN(Wide Area Network)への接続時に外部サーバに対してTEPAの通
知を要求し、外部サーバから通知される1つのTEPAを取得する。通知されるTEPA
は、CGWの4rd用IPv4アドレスのロードバランスアルゴリズムを用いて算出されたアドレスであり、IPv4インターネットからCE3に対してパケットが返送される際にCGWが転送する複数のBRのいずれかのTEPAである。
このように、外部サーバは、CGWがIPv4インターネットからCEに対してパケットを転送する際にパケットを中継するBRを事前に算出してCEに伝える。これによって
、2点間でパケットが送受信される場合において、パケットが一方の点から他方の点に転送される経路(“往路”と称し、往路の方向を“第1方向”とする)と、他方の点から一方の点に転送される経路(“復路”と称し、復路の方向を“第2方向”とする)との双方において、同一のBRで中継される。
従って、本実施形態によれば、当該パケットの転送経路に係る障害が発生した場合における障害の被疑箇所の特定が容易となる。また、障害の影響が及ぶ範囲を抑えることもできる。さらに、本実施形態によれば、BRの故障時や増設時において、CGWのロードバランスアルゴリズムに従って外部サーバで他のBRを決定する。これによって、スタティック設定を要することなく、パケットの転送路の往路と復路の同一性を担保することができる。
[実施形態1]
図1は、実施形態1のネットワークシステムの構成例を示す構成図である。図1におい
て、ネットワークシステムは、以下のような構成を有する。すなわち、ユーザ端末2を収容するエッジルータであるCE3を境界として、IPv4ネットワーク1とIPv6ネットワーク(IPv6グローバルネットワーク)4とが接続されている。ユーザ端末2は、端末又は端末装置の一例であり、IPv4ネットワーク1は、第1網の一例であり、IPv6ネットワーク(IPv6グローバルネットワーク)4は、中継網、又はコア網の一例である。
IPv6ネットワーク4は、IPv4インターネット9やIPv6インターネット10へのアクセスネットワークである。IPv6ネットワーク4は、CE3と接続された外部サーバ100と、CE3及び外部サーバ100と接続されたコアゲートウェイ(CGW)5とを有している。CE3は、中継装置、第1中継装置の一例であり、IPv4インターネット4は、第2網の一例である。外部サーバ100は、サーバ装置、又はサーバの一例である。
CGW5は、複数の(図1では3を例示)ボーダーリレー(BR)6〜8と、IPv4インターネット9と、IPv6インターネット10と接続されている。CGW5は、第3中継装置、中継装置の一例である。また、BR6〜8は、複数の第2中継装置の一例である。
ユーザ端末2は、IPv4インターネット9と通信を行う。具体的には、ユーザ端末2は、IPv4インターネット9に接続又は収容された通信相手(通信装置)と通信を行う。ユーザ端末2から通信相手へ送信されるパケット(第1方向のパケット)は、CE3,IPv6ネットワーク4,CGW5,BR6〜8のいずれか、及びCGW5を介してIPv4インターネット9に到達する。一方、IPv4インターネット9の通信相手からユーザ端末2へ送信されるパケット(第2方向のパケット)は、上記経路と逆の経路を辿ってユーザ端末2に到達する。ユーザ端末2は、端末の一例である。
IPv4ネットワーク1は、例えば、ユーザによって構築されたネットワークであり、IPv4プライベートアドレス(ローカルIPv4アドレス)を用いた通信が行われる。なお、図1に示す例では、1つのユーザ端末2が例示されているが、複数のユーザ端末2が収容されていても良い。また、IPv4ネットワーク1の構築者は、ユーザ以外の者(例えば企業、各種団体)であっても良い。また、IPv4ネットワーク1がIPv4プライベートアドレスのネットワークであることは、必須の要件ではなく、IPv4ネットワーク1はIPv4グローバルアドレスを使用するネットワークであっても良い。
CE3は、IPv4ネットワーク1とIPv6ネットワーク4とに接続され、IPv4
パケット及びIPv6パケットの中継処理を行う。CE3は、IPv4インターネット9向けのIPv4パケットをユーザ端末2から受信した受信した場合には、外部サーバ100から通知されるTEPA(Tunnel End Point Address:トンネル終端点アドレス)を宛先IPv6アドレスとしてカプセル化し、IPv6ネットワーク4へIPv6パケットを転送する。
図2は、CE3が有するNAPT(Network Address Port Translation)変換テーブルのデータ構造例を示す。上記したIPv6パケットの転送時に、CE3は、NAPTテーブルに対し、当該パケットに係る、ローカルIPv4アドレス(IPv4プライベートアドレス),ローカルポート番号、4rdIPv4グローバルアドレス,4rdポート番号を含むエントリを記憶する。
また、CE3は、IPv6ネットワーク4から送信元IPv6アドレスが4rdとして設定されたIPv6プレフィクス(IPv6 prefix)のパケットをIPv6ネットワーク4
から受信する。この場合、CE3は、受信したパケットをデカプセル化し、NAPTテーブル(図2)を用いて、IPv4グローバルアドレスをIPv4プライベートアドレスに変換し、IPv4パケットをIPv4ネットワーク1内に転送する。CE3は、中継装置の一例である。
外部サーバ100は、CGW5のロードバランスアルゴリズムに基づくTEPAをCE3に通知するためのサーバ装置である。外部サーバ100は、サーバの一例である。
CGW5は、IPv4アドレス及びIPv6アドレスのデュアルスタックに対応しており、IPv4用のルーティングテーブルと、IPv6用のルーティングテーブルとのそれぞれに従ってパケットを転送する。また、CGW5は、4rdとして事前に設定されたプレフィクス(prefix)のIPv4パケットに対しては、自身のロードバランスアルゴリズムに従いBR6〜8のいずれかに対してパケットを転送する。
各BR6〜8は、CGW5から受信されるパケットに応じた処理をパケットに施す。各BR6〜8は、同じ機能を有しており、BR間での差分はIPアドレスのみである。以下の実施形態1の説明において、CGW5は、BR6宛てにパケットを転送する。
各BR6〜8は、受信されたIPv6パケットのデカプセル化を行い、IPv4用のルーティングテーブルに従ってIPv4パケットを転送する。一方、各BR6〜8は、IPv4パケットが受信された場合に、予め設定された4rdのアドレス変換ルールに従い、宛先IPv4アドレスからIPv6アドレスを生成する。各BR6〜8は、生成されたIPv6アドレスを宛先IPv6アドレスに設定したIPv6パケットによって、上記受信されたIPv4パケットをカプセル化し、IPv6ルーティングテーブルに従ってIPv6パケットを転送する。
上記したように、本実施形態では、4rdのアドレス変換ルールに従ってIPアドレスの生成が行われる。このため、CE3,各BR6〜8,外部サーバ100は、4rdのアドレス変換ルールを記憶している。
<CEの構成例>
図3は、CE3のハードウェア構成の一例を示す図である。CE3は、例えば、ルータやレイヤ3スイッチと呼ばれる通信機器のハードウェア構成を適用することができる。図3の例において、CE3は、バス308を介して相互に接続されたCPU(Central Processing Unit)301,メモリ302,アドレス情報管理メモリ303,NAPT変換管
理メモリ304,及びパケット転送エンジン305を備える。また、CE3は、バス30
9を介してパケット転送エンジン305に接続されたIPv4ネットワーク向けの回線インタフェース306,及びIPv6ネットワーク向けの回線インタフェース307を備える。回線インタフェース306、307のそれぞれは、通信装置の一例である。以下に説明する。
メモリ302は、不揮発性記憶媒体(例えば、ROM(Read Only Memory),EEPROM(Electrically Erasable Programmable Read-Only Memory),フラッシュメモリ,
ハードディスクなど)と、揮発性記憶媒体(例えば、RAM(Random Access Memory)など)とを含む。不揮発性記憶媒体には、例えば、CPU301によって実行される各種のプログラムと、プログラムの実行に際して使用されるデータが記憶される。不揮発性記憶媒体は、CPU301のプログラム実行時の作業領域(ワークエリア)として使用される。
メモリ303は、アドレス情報を記憶する。メモリ304は、NAPT変換を管理するためのメモリであり、図2に示したNAPTテーブルを記憶する。メモリ303,メモリ304のそれぞれは、上記した不揮発性記憶媒体によって形成することができる。メモリ302,メモリ303,メモリ304のそれぞれは、記憶装置の一例である。なお、メモリ302に含まれる不揮発性記憶媒体,メモリ303及びメモリ304は、一つの記憶媒体に集約することもできる。
パケット転送エンジン305は、パケットの転送先を決定する。パケット転送エンジン305は、電子回路、例えば、専用又は汎用の集積回路(例えば、LSI(Large Scale Integration),ASIC(Application Specific Integrated Circuit)など)を用いたワイヤードロジックによって形成される。もっとも、パケット転送エンジン305は、DSP(Digital Signal Processor)のようなプロセッサによって実現されることもできる。また、ワイヤードロジックは、FPGA(Field Programmable Gate Array)のような
プログラマブルロジックデバイス(PLD)によって実現されることもできる。
回線インタフェース306は、IPv4パケットを送受信する。回線インタフェース307は、IPv6パケットを送受信する。各回線インタフェース306及び307は、専用又は汎用のインタフェース回路を適用することができる。
CPU(MPU(Micro Processing Unit)とも呼ばれる)301は、メモリ302に
記憶されたプログラムを実行することによって、様々な機能を実現する。機能実現に当たり、CPU301は、各メモリ302〜304に記憶された情報及びデータを使用する。CPU301は、制御装置、或いはプロセッサの一例である。
図4は、CE3が有する機能を模式的に示すブロック図である。図4において、経路制御部401,TEPA要求処理部403,パケット処理部404,4rdパケット変換処理部405は、CPU301がプログラムを実行することによって発現する機能である。経路制御部401は、IPv6ルーティングテーブル411とIPv4ルーティングテーブル412とを使用する。IPv6ルーティングテーブル411及びIPv4ルーティングテーブル412は、例えば、図3に示したアドレス情報管理メモリ303に記憶されている。
記憶部402は、TEPAアドレス管理メモリ421と、NAPT変換テーブル422を記憶する。記憶部402は、図3に示したメモリ303及びメモリ304によって実現される。パケット転送処理部406は、図3に示したパケット転送エンジン305が有する機能である。IPv4回線インタフェース部407は、回線インタフェース306が有する機能である。IPv6回線インタフェース部408は、回線インタフェース307が
有する機能である。
経路制御部401は、IPv6ルーティングテーブル411及びIPv4ルーティングテーブル412を保持することができ、IPv6ルーティングテーブル411に従ったIPv6パケットの転送処理と、IPv4ルーティングテーブル412に従ったパケット転送処理とを実行する。
記憶部402のTEPAアドレス管理メモリ421は、TEPAアドレスを記憶する。NAPT変換テーブル422は、図2に示したようなNAPTテーブル(NAPT変換テーブル)を記憶する。
TEPA要求処理部403は、CE3のIPv6ネットワーク4への接続時に(IPv6パケットを送信するに当たり)、外部サーバ100に対してTEPA通知要求のメッセージを送信し、外部サーバ100から通知されたTEPAを含むエントリをTEPAアドレス管理メモリ421に記憶する。
パケット処理部404は、IPv4ネットワーク1及びIPv6ネットワーク4から受信されるパケットの処理を行う。NAPT変換を要するパケットに関して、パケット処理部404はNAPT変換を行い、NAPT変換に係るエントリをNAPT変換テーブル422に記憶する。
4rdパケット変換処理部405は、パケット処理部404で受信されるパケットのうち、4rdに基づく変換を要するパケットに関して、4rdに基づくアドレス変換ルールに従ったアドレス変換処理を行う。
パケット転送処理部406は、IPv4ネットワーク1及びIPv6ネットワーク4にパケットを転送する際に、経路制御部401及び記憶部402を用いた処理結果に応じたパケットを生成する。IPv4回線インタフェース部407は、IPv4パケットの送受信処理を司り、IPv6回線インタフェース部408は、IPv6パケットの送受信処理を司る。
<外部サーバ>
図5は、外部サーバ100のハードウェア構成の一例を示す図である。外部サーバ100は、例えば、パーソナルコンピュータ(PC),ワークステーション,サーバマシンのような、通信機能を有する専用又は汎用の情報処理装置(コンピュータ)のハードウェア構成を適用することができる。
図5の例において、外部サーバ100は、バス108を介して相互に接続されたCPU(MPU)101,メモリ102,CE IPv6アドレス情報管理メモリ(CEアドレス管理メモリ)103,Core GWロードバランスアルゴリズム管理メモリ104,BR稼
働状況管理メモリ105及びパケット転送エンジン106を備える。パケット転送エンジン106は、バス108を介して回線インタフェース107に接続されている。
メモリ102は、上記したメモリ302と同様のハードウェア構成を有することができる。メモリ103〜105は、例えば、上記したような不揮発性記憶媒体を適用することができる。メモリ103は、CE3のアドレス管理のためにCE3のアドレスを記憶する。メモリ104は、CGW5のロードバランスアルゴリズムを管理するために、当該アルゴリズムを示す情報を記憶する。メモリ105は、BR6〜8の稼働状況を管理するために、BRの稼働状況を示す情報などを記憶する。メモリ102〜105のそれぞれは、記憶装置の一例である。メモリ103〜105は、メモリ102に集約することができる。
パケット転送エンジン106及び回線インタフェース107は、上述したパケット転送エンジン305及び回線インタフェース307と同様のハードウェア構成を適用することができる。CPU101は、メモリ102に記憶された各種のプログラムを実行することによって、様々な機能を実現する。CPU101は、制御装置、或いはプロセッサの一例である。
図6は、外部サーバ100が有する機能を模式的に示すブロック図である。図6において、CEアドレス処理部202,BR通知情報処理部203,BR TEPA通知部204は、CPU301がプログラムを実行することによって発現する機能である。
メモリ102〜105によって、記憶部201が実現される。記憶部201は、例えば、CE3のIPv6アドレスを管理するCEアドレス管理テーブル211と、BR6〜8のTEPAや稼働状況を記憶するBR情報管理テーブル212と、CoreGW(CGW)ロードバランスアルゴリズムを管理するためのCGW管理テーブル213とを有することができる。パケット転送処理部205は、パケット転送エンジン106が有する機能である。また、回線インタフェース部206は、回線インタフェース107によって実現される機能である。
CEアドレス処理部202は、CE3からのTEPA通知要求を受信した際に、4rdのアドレス変換ルールを用い、CE3のIPv6アドレスからIPv4アドレスを算出する処理を行う。また、CEアドレス処理部202は、CE3のIPv6アドレスが未登録であった場合、CE3のIPv6アドレスをCEアドレス管理テーブル211に記憶する。図7は、CEアドレス管理テーブル211のデータ構造例を示す。テーブル211は、CEの識別子(Routerと表記)に対応するCEのIPv6アドレスを含む1以上のエントリを記憶することができる。
BR通知情報処理部203は、CGW5からBR情報通知のメッセージを受信した際に、BR情報管理テーブル212にBRの稼働状況、及びBRのTEPAを記憶する。図8は、BR情報管理テーブル212のデータ構造例を示す。図8に示す例では、テーブル212は、BRの識別子(Routerと表記)に対応するTEPA及び稼働状況を含む1以上のエントリを記憶することができる。
また、BR通知情報処理部203は、CGW5のロードバランスアルゴリズムをCGWロードバランスアルゴリズム管理テーブル213に記憶し、当該アルゴリズムを管理する。さらに、BR通知情報処理部203は、CE3からのTEPA通知要求のメッセージが受信された場合に、テーブル213に記憶されたCGW5のロードバランスアルゴリズムに従って、対応するBRのTEPAを算出する。
BR TEPA通知部204は、CE3からのTEPA通知要求が受信された場合に、CEアドレス処理部202及びBR通知情報処理部203の処理を経て算出されたTEPAをCE3へ通知する処理を行う。また、BR TEPA通知部204は、CGW5からのBR情報通知のメッセージが受信された場合に、テーブル211に登録済みのCE3に対し、CEアドレス処理部202及びBR通知情報処理部203で再計算されたTEPAを再び通知する処理を行う。
パケット転送部205は、CE3に対してTEPAが通知される場合に、CEアドレス管理テーブル211に登録されたIPv6アドレスが宛先アドレスに設定されたIPv6パケットを生成し、回線インタフェース部206からIPv6パケットを送信する。
<コアゲートウェイ(CGW)の構成例>
図9は、CGW5のハードウェア構成の一例を示す図である。CGW5は、ルータやレイヤ3スイッチ、或いはゲートウェイ装置が一般的に備えるハードウェア構成を備えることで実現可能である。
図9の例において、CGW5は、バス712を介して相互に接続されたCPU(MPU)701,メモリ702,アドレス情報管理メモリ703,4rd用IPv4アドレスロードバランスアルゴリズム管理メモリ704,BR稼働状況管理メモリ705及びパケット転送エンジン706を備える。
パケット転送エンジン706は、バス713を介して、IPv6ネットワーク向けの回線インタフェース707と、IPv6インターネット向けの回線インタフェース708と、IPv4インターネット向けの回線インタフェース709と、BR向けのIPv6回線インタフェース710と、BR向けIPv4回線インタフェース711と接続されている。
メモリ702は、上記したメモリ302と同様のハードウェア構成を有することができる。メモリ703〜705は、例えば、上記したような不揮発性記憶媒体を適用することができる。メモリ703は、管理対象のアドレス情報を記憶する。メモリ704は、4rd用IPv4アドレスロードバランスアルゴリズムを管理するためのメモリである。メモリ705は、BR稼働状況を管理するためのBR情報を記憶する。メモリ702〜705のそれぞれは、記憶装置の一例である。メモリ703〜705は、メモリ702に集約することができる。ロードバランスアルゴリズムは、選択アルゴリズム、又は選択方法の一例である。
パケット転送エンジン706及び回線インタフェース707〜711は、上述したパケット転送エンジン305及び回線インタフェース307と同様のハードウェア構成を適用することができる。CPU701は、メモリ702に記憶された各種のプログラムを実行することによって、様々な機能を実現する。CPU701は、制御装置、或いはプロセッサの一例である。
なお、BR向けIPv6回線インタフェース710及びBR向けIPv4回線インタフェース711の組は、少なくともCGW5が収容するBRの数だけ用意される。但し、図9では、例としてBR6向けの1組のみが図示されている。
図10は、CGW5が有する機能を模式的に示すブロック図である。図10において、経路制御部801,4rd用IPv4パケット転送先の選択部803,パケット処理部804,及びBR稼働状況管理部805は、CPU701がプログラムを実行することによって発現する機能である。
記憶部802は、メモリ702〜705によって実現される。記憶部802は、4rd用IPv4アドレスロードバランスアルゴリズム831,BR稼働状況管理テーブル832,CEアドレス管理テール833を記憶する。
パケット転送処理部806は、図9に示したパケット転送エンジン706が有する機能である。IPv6ネットワーク向けの回線インタフェース部807は、回線インタフェース707が有する機能である。IPv6インターネット向けの回線インタフェース部808は、回線インタフェース708が有する機能である。IPv4インターネット向けの回線インタフェース部809は、回線インタフェース709が有する機能である。BR向けのIPv6回線インタフェース部810は、回線インタフェース710が有する機能であ
る。BR向けのIPv4回線インタフェース部811は、回線インタフェース711が有する機能である。
経路制御部801は、IPv6ルーティングテーブル821及びIPv4ルーティングテーブル822を有し、各テーブル821,822に従ってパケット転送を行う。各ルーティングテーブル821,822は、例えば、アドレス情報管理メモリ703に記憶されている。
選択部803は、ロードバランスアルゴリズム821及びBR稼働状況管理テーブル832を用いて4rd用のIPv4アドレスの転送先BRを計算する。計算結果(転送先BR)のエントリは、IPv4ルーティングテーブル822に記憶される。選択部803は、BR稼働状況に変化が生じた場合には、転送先BRの再計算を行い、IPv4ルーティングテーブル822のエントリの内容を変更する。
パケット処理部804は、各回線インタフェース部807〜811から受信したパケット、及び回線インタフェース部807〜811のいずれかへ送信すべきパケットの処理を実行する。
BR稼働状況管理部805は、各BR6〜8の稼働状況を監視し、或るBRの稼働状況の変更を検知した場合には、当該BRに係るBR情報管理テーブル832のエントリの記憶内容を変更(更新)する。また、BR稼働状況管理部805は、BR稼働状況及び4rd用IPv4アドレスロードバランスアルゴリズム831を外部サーバ100へ通知する処理を行う。
パケット転送処理部806は、パケットを転送する際に、経路制御部801に従ってパケットを生成し、宛先アドレスに応じて回線インタフェース部807〜811のいずれかからパケットを転送する。なお、回線インタフェース部810及び811の組は、回線インタフェース710及び711の組の数に応じて備えられる(図10には、BR6用の1組のみを例示)。
<ボーダーリレー(BR)の構成例>
図11は、各BR6〜8を代表した、BR6のハードウェア構成の一例を示す図である。BR6は、ルータやレイヤ3スイッチ、或いはゲートウェイ装置が一般的に備えるハードウェア構成を備えることで実現可能である。BR7及び8は、BR6と同じハードウェア構成を有することができる。
図11の例において、BR6は、バス507を介して相互に接続されたCPU(MPU)501,メモリ702,アドレス情報管理メモリ503,及びパケット転送エンジン504を備える。パケット転送エンジン504は、バス508を介して、IPv4回線インタフェース505とIPv6回線インタフェース506とに接続されている。
メモリ502は、上記したメモリ302と同様のハードウェア構成を有することができる。メモリ503は、例えば、上記したような揮発性記憶媒体を適用することができる。メモリ504は、管理対象のアドレス情報を記憶する。メモリ502及び503のそれぞれは、記憶装置の一例である。メモリ503は、メモリ502に集約することができる。
パケット転送エンジン504及び回線インタフェース505及び506は、上述したパケット転送エンジン305及び回線インタフェース307と同様のハードウェア構成を適用することができる。CPU501は、メモリ502に記憶された各種のプログラムを実行することによって、様々な機能を実現する。CPU501は、制御装置、或いはプロセ
ッサの一例である。
図12は、BR6が有する機能を模式的に示すブロック図である。BR7及び8も同様の機能を有している。図12において、経路制御部601,パケット処理部602,及び4rdパケット変換処理部603は、CPU501がプログラムを実行することによって発現する機能である。
経路制御部601が有するIPv6ルーティングテーブル611及びIPv4ルーティングテーブル612は、アドレス情報管理メモリ503に記憶されている。パケット転送処理部604は、パケット転送エンジン504が有する機能である。IPv4回線インタフェース部605及びIPv6回線インタフェース部606のそれぞれは、回線インタフェース505及び506のそれぞれが有する機能である。
経路制御部601は、IPv6ルーティングテーブル611及びIPv4ルーティングテーブル612を有し、各ルーティングテーブル611,612の記憶内容に従ってパケット転送を行う。各ルーティングテーブル611,612は、例えば、アドレス情報管理メモリ503に記憶される。
パケット処理部602は、CGW5から受信されたパケットを処理する。4rdパケット変換処理部603は、パケット処理部602で受信されたパケットのうち、4rdの変換を要するパケットに関して、4rdに基づくアドレス変換ルールに従ってアドレス変換を行う。
パケット転送処理部604は、IPv4ネットワーク1又はIPv6ネットワーク4へ向けてパケットを転送するに当たり、経路制御部601によって得られた転送先情報を有するパケットを生成し、宛先に対応するIPv4回線インタフェース部605、又はIPv6回線インタフェース部606からパケットを転送する。
<動作例>
次に、図1に示したネットワークシステムにおける動作例(処理手順の例)について説明する。
<<事前処理>>
図13は、ユーザ端末2(図1)がIPv4インターネット9と通信を開始するための事前処理手順の一例を示すシーケンス図である。図13に示すように、最初に、CGW5は各BR6〜8との接続性(疎通)がある否かを確認するためにBR稼働状況取得処理を行う(図13<1>)。
図14は、BR稼働状況取得処理の一例を示すフローチャートである。図14において、CGW5のCPU701(図9)は、BR稼働状況管理部805(図10)として機能し、CGW5に接続されているBR6〜8のいずれか1つを特定し、特定したBR(例えばBR6)に対する疎通確認処理を行う(01)。
ここに、疎通確認方法としては、例えば、回線インタフェース710からのping信号送信を用いた疎通確認を適用することができる。或いは、他の疎通確認方法として、CGW5のIPv4ルーティングテーブル821のエントリ(アクティブなBRに係るエントリ)を参照するなど、接続性を確認できる方法であればよい。
01の処理は、BR毎に実行されるので、BR7及びBR8についても同様の疎通確認が実行される。全てのBRに対する疎通確認が終了すると、図14の処理が終了する。各
BR6〜8の稼働状況は、メモリ705(BR情報管理テーブル832)に記憶される。管理テーブル832は、例えば、図8に示したデータ構造を有することができ、各BR6〜8のTEPAと、稼働状況(ON又はOFF)を記憶する。
図13に戻って、各BR6〜8との接続性を確認したCGW5は、管理テーブル832に記憶された各BR6〜8の稼働状況及びTEPAと、ロードバランスアルゴリズム831とを外部サーバ100に通知する(図13<2>)。すなわち、CGW5のCPU701は、パケット処理部804として機能し、稼働状況,TEPA及びロードバランスアルゴリズムを含み、且つ外部サーバ100のアドレスが宛先アドレスに設定されたパケット(通知パケット)を生成する。通知パケットは、パケット転送エンジン706(パケット転送処理部806)を経て、回線インタフェース707(回線インタフェース部807)から送信される。
CGW5から送信された通知パケットは、IPv6ネットワーク4を経由して外部サーバ100に到達する。外部サーバ100では、図5に示す回線インタフェース107(回線インタフェース部206(図6))で通知パケットが受信され、通知パケットは、パケット転送エンジン106(パケット転送処理部205)を経てCPU101に与えられる。
すると、外部サーバ100のCPU101は、BR通知情報処理部203として機能し、通知された情報を登録する処理(BR稼働状況登録処理)の実行を開始する(図13<3>)。図15は、BR稼働状況登録処理の例を示すフローチャートである。
図15において、CPU101は、通知パケットを受信すると(001)に含まれたロードバランスアルゴリズムをロードバランスアルゴリズム管理メモリ104(ロードバランスアルゴリズム管理テーブル213)に記憶(登録)する(002)。
続いて、CPU101は、BR稼働状況管理メモリ105(BR情報管理テーブル212)に、各BRの稼働状況及びTEPAを記憶する(003、図8参照)。このようにして、外部サーバ100は、CGW5のロードバランスアルゴリズムと各BR6〜8の稼働状況及びTEPAを取得することができる。
図13に戻って、CE3がIPv6ネットワーク4に接続した際における処理手順を説明する。CE3がIPv6ネットワーク4に接続すると、CGW5は、DHCP-PD(Dynamic Host Configuration Protocol - Prefix Delegation)によってIPv6アドレスを払い出す(図13<4>)。すなわち、CGW5のアドレス情報管理メモリ703のCEアドレス管理テーブル833から未使用のIPv6アドレスが払い出し用アドレスとして読み出され、当該アドレスを含むパケットがCE3へ送信される。
CE3に払い出される(貸与される)IPv6アドレスは、4rdで用いることが予め定められたIPv6アドレスであり、CE3において、当該IPv6アドレスからIPv4アドレス及び4rdとして使用可能なポート番号の範囲を取得することが可能である。なお、IPv6アドレスに基づき得られたIPv4アドレス及びポート番号は、適宜のタイミングで、NAPT変換テーブル422(図2)に登録される。
IPv6アドレスを取得したCE3は、外部サーバ100に対してBRのTEPA通知要求を送信する(図13<5>)。すなわち、CE3のCPU301は、TEPA要求処理部403として機能し、TEPA通知要求のパケットを生成する処理を行う。TEPA通知要求には、貸与されたCE3のIPv6アドレスが含まれる(例えば、IPv6アドレスは送信元アドレスとして設定される)。TEPA通知要求のパケットは、パケット転
送エンジン305(パケット転送処理部406)を経て回線インタフェース307(回線インタフェース部408)408から外部サーバ100へ送信される。TEPA通知要求は、“第2中継装置のアドレスの提供要求”の一例である。
外部サーバ100では、TEPA通知要求のパケットを回線インタフェース107(回線インタフェース部206)で受信する。TEPA通知要求のパケットは、パケット転送エンジン106を経てCPU101に供給される。
CPU101は、当該パケットがBRのTEPA通知要求であることを確認する。この確認のための方法については、特定のポート番号を指定する方法、或いはRadius(Remote
Authentication Dial In User Service)認証による方法などがある。但し、確認方法は
これらの例示に限定されない。
TEPA通知要求であることを確認した外部サーバ100のCPU101は、TEPA通知要求に含まれたCE3のIPv6アドレスを用いて、宛先となるBR(BR6〜8のいずれか)のTEPAを算出して通知するためのTEPA通知処理を行う(図13<6>)。
図16は、TEPA通知処理の例を示すフローチャートである。図16において、CPU101は、TEPA通知要求を確認し(011)、CEアドレス処理部202として機能する。CPU101は、予め定められた4rdのアドレス変換ルールに従い、CE3のIPv6アドレスである送信元IPv6アドレスからIPv4アドレスを算出する(012)。
続いて、CPU101は、メモリ105(BR情報管理テーブル212)からBR稼働状況を読み出すとともに、メモリ104(ロードバランスアルゴリズム管理テーブル213)からロードバランスアルゴリズムを読み出す。CPU101は、BR稼働状況,ロードバランスアルゴリズム,及びCE3のIPv4アドレスに基づいて、IPv4インターネット9からCE3宛てのIPv4パケット転送されるBRをBR6〜8から選択する(013)。本実施形態では、CGW5のロードバランスアルゴリズムとして宛先IPv4アドレスに従って転送先のBRが選択される。そして、本実施形態では、転送先のBRとしてBR6が選択されると仮定する。
BR6を選択したCPU101は、CE3のIPv6アドレスをメモリ103(CEアドレス管理テーブル211)に記憶(登録)する(014)。
その後、CPU101は、BR6のTEPAをメモリ105(BR情報管理テーブル212)から読み出し、BR6のTEPAを含むパケット(TEPA通知パケット)を生成する処理を行う。TEPA通知パケットは、パケット転送エンジン706によって、回線インタフェース107からCE3へ送信される(図13<7>)。CE3のCPU301は、TEPAをアドレス情報管理メモリ303(TEPAアドレス管理メモリ421)に記憶する(図13<8>)。以上の事前処理によって、CE3は、パケットをIPv4インターネット9に接続する場合の宛先となるBR6のTEPAを取得することができる。
<<ユーザ端末2からIPv4インターネット9への送信(往路)>>
次に、ユーザ端末2とIPv4インターネット9との間で通信を行う場合の動作例について説明する。図17は、ユーザ端末2がIPv6ネットワークを介してIPv4インターネット9へパケットを送信する場合における処理手順の一例を示すシーケンス図である。図17において、ユーザ端末2はIPv4インターネット9宛のIPv4パケットをCE3に送信する(図17<1>)。CE3は、ユーザ端末2からのIPv4パケットを図3に示す回線インタフェース306(IPv4回線インタフェース部407(図4))で
受信する。IPv4パケットは、パケット転送エンジン305(パケット転送処理部406)を経てCPU301に渡される。すると、CPU301は、パケット処理部404及び4rdパケット変換処理部405として機能し、パケット生成処理を実行する(図17<2>)。
図18は、パケット生成処理を含むIPv4パケット受信時の処理手順例を示すフローチャートである。図18に示すように、CPU301は、ユーザ端末2からIPv4パケットを受信する(021)。すると、CPU101は、IPv4パケットの宛先IPv4アドレスの宛先がIPv4インターネット9であるか否かを判定する(022)。このとき、宛先IPv4アドレスがIPv4インターネット9宛てでない場合には、CE3は、IPv4ルーティングテーブル412に従ってIPv4パケットを転送する(029)。
これに対し、宛先IPv4アドレスがIPv4インターネット9宛てである場合には、CPU301は、転送先となるBR(BR6)のTEPAを取得済みであるか否かを判定する(023)。すなわち、CPU301は、メモリ303(TEPAアドレス管理メモリ421)を参照し、TEPAが既に登録されているか否かを確認する。
TEPAが登録されていれば、処理が025に進む。これに対し、TEPAが未登録であれば、CPU301は、TEPA通知要求を生成し、外部サーバ100に送信する。これによって、CE3は、外部サーバ100でのBR TEPA通知処理(図16)の結果として、BR6のTEPAを受信(取得)することができる(BR TEPA取得処理:024)。BR6のTEPAは、TEPAアドレス管理メモリ421に登録される。その後、処理が025に進む。
025では、CPU301は、IPv4パケットの送信元アドレスをNAPT処理によってIPv4グローバルアドレスに変換する(025)。この変換によって得られるIPv4グローバルアドレスとして、DHCP-PDによって取得したIPv6アドレスを4
rdのアドレス変換ルールに従って変換したときのIPv4アドレスと対応するポート番号を用いる。
NAPT処理終了後、CPU301は、変換前のローカルIPv4アドレス及びローカルポート番号と変換後の4rdグローバルIPv4アドレス及び4rdポート番号とを含むエントリをNAPT変換テーブル422(図2)に登録する(026)。
次に、CPU301は、宛先アドレスがBR6のTEPAに設定され、送信元アドレスがCE3のIPv6アドレスに設定されたIPv6ヘッダを用い、ユーザ端末2から受信したIPv4パケットをカプセル化する(027)。図19は、カプセル化パケットのフォーマットを示す。
その後、CPU301は、経路制御部401として機能し、カプセル化パケットをIPv6ルーティングテーブル411に従って転送する(028)。これによって、カプセル化パケットは、パケット転送エンジン305を経て、回線インタフェース307から送信される。
以上の処理によって、ユーザ端末2から送信されたIPv4パケットは、CE3でIPv6パケットによりカプセル化され、IPv4パケットをカプセル化したIPv6パケット(IPv4 over IPv6パケット)は、IPv6ネットワーク4に送信される(図17<3>)。
IPv6パケットは、CGW5で受信される。CGW5では、次のような処理が行われ
る。すなわち、IPv6パケットは、回線インタフェース707で受信され、パケット転送エンジン706を介してCPU701に与えられる。
CPU701は、経路制御部801として機能し、IPv6パケットの宛先アドレス(BR6のTEPA)とIPv6ルーティングテーブル821を参照して、IPv6パケットを送信すべき回線インタフェースとして、回線インタフェース810を決定する。
IPv6パケットは、パケット転送エンジン706によって回線インタフェース810に転送され、回線インタフェース810からBR6へ送信される。このようにして、CGW5は、IPv6ルーティングテーブル821に従って、IPv6パケットをBR6へ転送する(図17<4>)。
IPv6パケットを受信したBR6は、IPv4インターネット9へパケットを転送するために以下のような処理を行う。図20は、BRでのIPv6パケット転送処理の一例を示すフローチャートである。BR6では、IPv6パケットは、回線インタフェース506(図11)で受信され、パケット転送エンジン504を経てCPU501に与えられる(031)。
CPU501は、パケット処理部602及び4rdパケット変換処理部603として機能し、以下の処理を行う。すなわち、CPU501は、IPv6パケットをデカプセル化し、IPv4パケットを取り出す(032)。続いて、CPU501は、経路制御部411として機能し、IPv4パケットの宛先アドレスと、IPv4ルーティングテーブル612(図12)に従って、IPv4パケットを送信すべき回線インタフェースとして、回線インタフェース505を決定する。
IPv4パケットは、パケット転送エンジン504によって回線インタフェース505へ転送され、回線インタフェース505から送出される。IPv4パケットは、CGW5で受信される(図17<5A>)。
CGW5では、IPv4パケットは、回線インタフェース711(図9)で受信され、パケット転送エンジン706を介してCPU701に与えられる。すると、CPU701は、経路制御部801(図10)として機能し、IPv4パケットの宛先アドレスと、IPv4ルーティングテーブル822とを参照し、IPv4パケットの送出先を決定する。
IPv4パケットは、パケット転送エンジン706(パケット転送処理部806)を経て、送出先として決定された回線インタフェース709(回線インタフェース部809)から送信される。これによって、IPパケットが、IPv4インターネット9に到達する(図17<6>)。以上の処理によって、ユーザ端末2から送信されたパケットは、CE3→CGW5→BR6→CGW5を経てIPv4インターネット9に転送される。
<<IPv4インターネット9からCE3へのパケット送信(復路)>>
次に、IPv4インターネット9からCE3に対してパケットを返送する際の処理を説明する。図17において、IPv4インターネット9から送信されたIPv4パケットは、CGW5によって受信される。
CGW5において、IPv4パケットは、回線インタフェース709(図9)にて受信され、パケット転送エンジン706を経てCPU701に与えられる。すると、CPU701は、転送先BRを選択する処理を行う(図17<8>)。
図21は、IPv4パケット受信時におけるCGW5の処理の一例を示すフローチャー
トである。図21において、CGW5でIPv4パケットが受信されると(041)、CPU701は、パケット処理部804(図10)として機能し、IPv4パケットの宛先IPv4アドレスが4rd用のプレフィクス(prefix)である否かを判定する(042)。
このとき、宛先IPv4アドレスが4rd用プレフィクスでない場合、CPU701は、経路制御部801として機能し、宛先IPv4アドレスとIPv4ルーティングテーブル822とを参照してIPv4パケットの送出先を決定する。IPv4パケットは、パケット転送エンジン706によって、送出先の回線インタフェースから送信される(043)。
これに対し、宛先IPv4アドレスが4rd用のプレフィクスである場合には、CPU705は、4rd用IPv4パケット転送先選択部803として機能し、記憶部802のロードバランスアルゴリズム831に従って、IPv4パケットの転送先のBR(BR6〜8のいずれか)を選択する処理を行う(044)。
選択に使用されるロードバランスアルゴリズム831は、外部サーバ100がCE3にTEPAを通知するために使用されたロードバランスアルゴリズムと同じである。従って、CPU701は、外部サーバ100での選択と同じ選択を行う。結果として、BR6がIPv4パケットの転送先として選択される。
その後、CPU701は、経路制御部801としての機能により、IPv4ルーティングテーブル822に従って送出先の回線インタフェース711を決定する。CPU701は、パケット転送エンジン705の制御を通じて、回線インタフェース711からIPv4パケットを送信する(045)。このようにして、IPv4パケットは、往路と同じBRであるBR6へ転送される(図17<9>)。
IPv4パケットを受信したBR6は、パケット生成処理を行う(図17<10>)。図22は、パケット生成処理を含む、BR6のIPv4パケット受信時の処理手順の一例を示すフローチャートである。
IPv4パケットは、回線インタフェース505で受信され(051)、パケット転送エンジン504を経て、CPU501に与えられる。すると、CPU501は、パケット処理部602及び4rdパケット変換処理部603として機能する。CPU501は、4rdのアドレス変換ルールに従って、IPv4パケットに含まれる宛先IPv4アドレス及び宛先ポート番号と、4rd用IPv6プレフィクス(予めBR6が有している)から宛先IPv6アドレスを算出する(052)。
次に、CPU501は、算出されたIPv6アドレスが宛先IPv6アドレスに設定され、送信元IPv6アドレスがBR6のTEPAに設定されたIPv6ヘッダでIPv4パケットをカプセル化する(053)。図23は、カプセル化パケットのフォーマット例を示す。
そして、CPU501は、経路制御部601として機能し、053で生成したIPv6パケット(IPv4 over IPv6パケット)をIPv6ルーティングテーブル611に従って転送する(054)。すなわち、IPv6パケットは、パケット転送エンジン504によってIPv6回線インタフェース506から送信される。
以上の処理によって、IPv4インターネット9から送信されたIPv6パケットが、BR6を通じてIPv6ネットワーク4へ送信される。IPv6パケットは、CGW5に
よって受信される(図17<11>)。
CGW5では、IPv6パケットは回線インタフェース710(図9)で受信され、パケット転送エンジン706を介してCPU701に与えられる。すると、CPU701は、経路制御部801(図10)として機能し、IPv6ルーティングテーブル821に従ってIPv6パケットを転送する。すなわち、IPv6パケットは、パケット転送エンジン706によって、回線インタフェース707から送信される(図17<12>)。
IPv6パケットは、CE3の回線インタフェース307(図3)で受信され、パケット転送エンジンを介してCPU301に与えられる。すると、CPU301は、ユーザ端末2にIPv4パケットを転送するための処理を行う(4rdパケット転送:図17<13>)。
図24は、CE3でのIPv6パケット転送処理の一例を示すフローチャートである。図24において、IPv6パケットが受信されると(061)、CPU301は、パケット処理部404及び4rdパケット変換処理部405(図4)として機能し、以下の処理を行う。
すなわち、CPU301は、IPv6パケットの送信元IPv6アドレスが4rd用のプレフィクス(prefix)であるか否かを判定する(062)。このとき、送信元IPv6アドレスが4rd用プレフィクスでない場合には、CPU301は、経路制御部401として機能し、IPv6ルーティングテーブル411に従ってIPv6パケットを転送する処理を行う(063)。
これに対し、送信元IPv6アドレスが4rd用プレフィクスである場合には、CPU301は、IPv6パケットをデカプセル化し、IPv4パケットを取り出す(064)。
続いて、CPU301は、NAPT変換テーブル422(図2)を参照し、IPv4パケットに含まれる宛先IPv4アドレス及びポート番号(グローバル)をローカル(プライベート)のIPv4アドレス及びポート番号に変換する(NAPT処理:065)。
その後、CPU301は、経路制御部401として機能し、IPv4ルーティングテーブル412に従ってIPv4パケットを転送する処理を実行する(066)。これによって、IPv4パケットは、パケット転送エンジン305によって、回線インタフェース306から送信され(図17<14>)、ユーザ端末2に受信される。
<実施形態1の作用効果>
実施形態1のネットワークシステムによると、ユーザ端末2からIPv4インターネット9(WANの一例)へのIPv4パケット通信において、IPv4パケットは、IPv4ネットワーク1とIPv4インターネット9との間に介在するIPv6ネットワーク4上に生成されるIPv6トンネルを通じて転送される。IPv6ネットワーク4には、IPv4インターネット9側の終端点として、例えば負荷分散のために複数のBR6〜8が設置されている(図1)。
ユーザ端末2からIPv4インターネット9へのIPv4パケット送信(往路送信)において、CE3は、IPv4パケットのカプセル化に用いるIPv6アドレスを外部サーバ100に問い合わせる(TEPA通知要求)。
外部サーバ100は、IPv4インターネット9からユーザ端末2へのIPv4パケッ
ト送信(復路送信)において、当該IPv4パケットを中継する複数のBR6〜8の一つ(本実施形態ではBR6)を選択するための選択アルゴリズム(すなわち、ロードバランスアルゴリズム)と同じ選択アルゴリズムを用いて、往路送信においてIPv4パケットを中継するBR(BR6)を選択し、BR6のIPv6アドレス(すなわちTEPA)をCE3に提供する。
CE3では、提供されたTEPAを用いてIPv4パケットのカプセル化を実行する。従って、往路送信におけるIPv4パケットは、IPv6ネットワーク4において、復路送信におけるIPv4パケットを中継するBR6宛てに転送される。このようにして、ユーザ端末2とIPv4インターネット9との間で送受信されるパケット(往路パケット及び復路パケット)は、同一のBRを通過することができる。
このように、IPv4パケットの往路と復路とでIPv4パケットを中継するBRが異ならないので、ユーザ端末2とIPv4インターネット9との通信に係る障害発生時に、障害箇所の特定が容易となる。また、障害による影響を考慮すべき範囲を縮小することができる。例えば、或るパケットフローの障害が生じた場合に、往復(行き帰り)のパケットが同一のBRで中継されるので、当該パケットフローを中継する1つのBRを特定することができる。
このように、実施形態1によれば、障害の被疑箇所を限定的にすることが可能であり、障害復旧までの時間を短縮させることが可能である。また、被疑のBRを特定することで使用しているユーザ数も判明し、障害の影響範囲を見積ることも可能である。以上のように、本実施形態によれば、パケットの往復経路においてパケットが複数の中継装置の1つで中継されるようにすることによって、障害箇所の特定を容易にすることができる。
<変形例>
実施形態1は、以下のような変形が可能である。図13に示したように、CGW5は、CE3の要求に応じて、CE3が使用するIPv6アドレスを払い出している(貸与している)。このため、CGW5のCPU701は、払い出したIPv6アドレスをCE3が有するアドレス変換ルールと同じアドレス変換ルールを有していれば、IPv6アドレスからCE3のIPv4アドレスを算出することができる。
従って、CPU701は、CGW5が記憶したロードバランスアルゴリズム831とBR情報管理テーブル832に記憶された各BR6〜8の稼働状況とから、BR6のTEPAを算出することができる。そして、CGW5(CPU701)は、外部サーバ100に対して、CGW5のIPv6アドレスとBR6のTEPAとを通知する。
外部サーバ100は、CE3のIPv6アドレスとBR6のTEPAとを関連づけてメモリ102やメモリ103に記憶する。そして、外部サーバ100は、CE3からTEPA通知要求を受信した時に、TEPA通知要求に含まれるIPv6アドレスに対応するTEPAを返信する。このようにすれば、外部サーバ100が、BR稼働状況及びロードバランスアルゴリズムをCGW5から取得しなくて済む(TEPAの算出機能をCGW5に集約することができる)。
また、実施形態1では、ロードバランスアルゴリズム,BR6〜8のアドレス(TEPA)がCGW5から外部サーバ100に通知され、外部サーバ100で記憶される。当該構成に代えて、TEPA及びロードバランスアルゴリズムの少なくとも一方が、スタティック設定によってメモリ104に記憶されるようにしても良い。
[実施形態2]
次に、実施形態2について説明する。実施形態2として、実施形態1のネットワークシ
ステムにおいて、BRが故障した(障害が発生した)場合に、外部サーバ100が登録(エントリ)済のCE3に対してTEPAの再通知を行う処理について説明する。
図1に示すネットワークシステムにおいて、BR6に障害が発生した場合を仮定する。図25は、実施形態2の処理(BR障害時における外部サーバのTEPA再通知)の一例を示すシーケンス図である。図25に示すように、BR6で何らかの障害が発生し(図25<1>)、BR6とCGW5との接続性が失われたものと仮定する。
CGW5は、BR稼働状況取得処理(図14)を、例えば、実施形態1で説明したようなイベント発生時、又は定期的に実行する(図25<2>)。これによって、CGW5(CPU701)は、BR6との接続性が失われた(BR6がOFF)と判断する(検知する)ことができる。
すると、CPU701は、BR6の障害(故障)を通知するために、外部サーバ100にBR稼働状況を通知する処理を行う(図25<3>)。これによって、BR6の稼働状況(OFF)が外部サーバ100に通知される。通知方法として、例えば、CGW5が外部サーバ100に定期的に通知する構成を適用することができる。或いは、BRの稼働状況が変化した場合に臨時的に通知しても良い。
外部サーバ100は、CGW5からの通知を受信すると、TEPA通知の更新処理を行う(図25<4>)。図26は、外部サーバによるTEPA通知更新処理の一例を示すフローチャートである。
図26に示す処理は、CGW5からの通知が回線インタフェース107(図5)及びパケット転送エンジン106を経てCPU101が受け取ることによって開始される(071)。CPU101は、BR通知情報処理部203として機能し、通知された情報(BR稼働状況)と、BR情報管理テーブル212(図6)に記憶された内容とに差分があるか否かを判定する(072)。
差分がなければ、図26の処理は終了する。これに対し、差分がある場合、CPU委101は、通知された情報の内容で、BR情報管理テーブル212(図8)の記憶内容を更新する(073)。例えば、差分として、BR6の稼働状況がONからOFFに変更されている場合には、CPU101は、テーブル212のBR6の稼働状況“ON”を“OFF”に書き換える。
次に、CPU101は、CEアドレス管理テーブル211(図7)を参照し(074)、登録されたエントリがあるか否か、すなわち、エントリが登録されたCEがあるか否かを判定する(075)。このとき、テーブル211にエントリが存在しない(登録CEがない)場合には、図26の処理が終了する。
これに対し、テーブル211にエントリが存在する場合には、CPU101は、エントリに対応するCE(例えばCE3)に関して、転送先BRのTEPAの再通知処理を行う。再通知処理は、エントリが登録された全てのCEに対して実行される。ここでは、CE3のエントリのみが登録されていると仮定する。
再通知処理は、以下のように行われる。すなわち、CPU101は、CEアドレス処理部202として機能し、CEアドレス管理テーブル211(図7)を参照し、CE3のIPv6アドレスを読み出す。CPU101は、4rdのアドレス変換ルールに従ってCE3のIPv4アドレスを算出する(076)。
続いて、CPU101は、ロードバランスアルゴリズム管理テーブル213に記憶されたCGW5のロードバランスアルゴリズムを選択し、当該ロードバランスアルゴリズムと、076で算出されたIPv4アドレスと、更新した各BRの稼働状況とを用い、IPv4インターネット9からCE3に送信されるIPv4パケットを中継する複数のBR(BR6を除くBR7及びBR8)の1つを再選択する(077)。
CPU101は、再選択されたBR(BR7又はBR8)のTEPAをCE3に通知するための処理を行う(078)。これによって、再選択されたBRのTEPAがCE3に通知される(図25<5>)。CE3では、更新に係るTEPAが記憶される(図25<6>)。すなわち、CPU301は、メモリ303(TEPAアドレス管理メモリ421)に記憶されているTEPAを、再選択されたTEPAで更新する。
ユーザ端末2からIPv4インターネット9へIPv4パケットが転送される場合の動作は、実施形態1とほぼ同じであるので説明を省略する。但し、CE3では、IPv4パケットの処理において、再通知されたTEPAを使用する。この結果、IPv4パケットを中継するBRが、BR7又はBR8に変更される。
実施形態2によれば、CGW5は、BRの稼働状況の差分が発生した場合に、BRの稼働状況を外部サーバ100に通知し、外部サーバ100は、登録された各CEに対してTEPAの再通知を行う。これによって、BRの障害によってユーザ端末2とIPv4インターネット9との通信に与える影響を抑えることができる。また、ユーザ端末2とIPv4インターネット9との通信でIPv4パケットを中継するBRの同一性を維持することができる。
[実施形態3]
実施形態3として、実施形態1のネットワークシステムにおいて、BRを増設した場合に外部サーバ100が各登録CEにTEPAの再通知を行う処理について説明する。図27は、実施形態3のネットワークシステムの構成例を示す。CGW5と接続される複数のBRとして、BR6〜8に加え、BR13が増設されている点で、実施形態1(図1)と異なる。その他の点は、実施形態1と同様であるので説明を省略する。
図28は、実施形態3における動作例を示すシーケンス図である。図28において、設備増設によって、BR13がCGW5に物理的に接続されたと仮定する(図28<1>)。CGW5は、定期的、又はイベント(例えばトリガ入力)によって開始されるBR稼働状況取得処理(図14)において、BR13との接続用に設定された回線インタフェースを用いたping疎通確認、或いは、IPv4ルーティングテーブル821に登録されたBR13向けのエントリを参照することによって、BR13との疎通を確認することができる(図28<2>)。
CGW5は、BR13が増設されたことを通知するために、外部サーバ100に対してBR稼働状況の通知を行う(図28<3>)。通知を受信した外部サーバ100は、TEPA通知の更新処理を行う(図28<4>)。そして、外部サーバ100は、再選択したBRのTEPAを各CEに通知する(図28<5>)。CE3では、TEPAの更新処理が行われる(図28<6>)。
図28の<3>〜<6>の処理は、実施形態2と同様であるので詳細な説明は省略する。なお、外部サーバ100からCE3への通知は、IPv4パケットの転送先のBR6がBR13の追加によって変更された場合にのみ行われるようにしても良い。
実施形態3によれば、転送先のBR13が増設され、CGW5がBR13の増設を疎通
確認によって検知すると、CGW5は、BR稼働状況を外部サーバ100に通知することによってBR13の増設を外部サーバ100に通知する。外部サーバ100は、CGW5のロードバランスアルゴリズムに従って転送先TEPAの再選択を行い、各CE(CE3)に通知する。これよって、ユーザ端末2とIPv4インターネット9との通信に影響を与えずに転送先BRのTEPAを変更することができる。また、ユーザ端末2とIPv4インターネット9との通信におけるBRの同一性を維持することができる。
[実施形態4]
実施形態4として、実施形態1で説明した外部サーバ100がCGW5の内部に設置された場合の構成例について説明する。図29は、実施形態4におけるネットワーク構成例を示す。図29に示すシステムは、実施形態1(図1)における外部サーバ100が、サーバ100AとしてCGW5内に配置される点において、実施形態1と異なる。
図29に示すCE3は、CGW5と接続されることによってサーバ100Aと接続されている。実施形態4におけるCGW5のハードウェア構成は、実施形態1で説明したハードウェア構成(図9)と同じ構成を適用することができる。
すなわち、図5に示したCE IPv6アドレス管理メモリ103は、図9に示したアドレス情報管理メモリ703に集約することができる。また、図5に示したロードバランスアルゴリズム管理メモリ104は、図9に示した管理メモリ704に集約することができる。さらに、図5に示したBR稼働状況管理メモリ105は、図9に示したBR稼働状況管理メモリ705に集約することができる。そして、実施形態1の外部サーバ100の機能を実現するためのプログラムが、メモリ702に記憶され、CPU701は、当該プログラムの実行によって、サーバ100Aとして機能することができる。
図30は、実施形態4のCGW5の機能ブロックを模式的に示す図である。図29において、CGW5は、以下の点で実施形態1のCGW5(図10)と異なっている。すなわち、CGW5は、図6に示したCEアドレス処理部202,BR通知情報処理部203及びBR TEPA通知部204に相当する、CEアドレス処理部841,BR選択処理部842,及びBR TEPA通知部843をさらに含んでいる。CEアドレス処理部841,BR選択処理部842,及びBR TEPA通知部843は、CPU701がプログラムを実行することによって発現される機能である。
CEアドレス処理部841は、CE3からのTEPA通知要求を受信した際に、4rdのアドレス変換ルールを用い、CE3のIPv6アドレスからIPv4アドレスを算出する処理を行う。また、CEアドレス処理部841は、CE3のIPv6アドレスをCEアドレス管理テーブル823に記憶(登録)する。管理テーブル823は、図7に示したデータ構造と同一のデータ構造を有することができる。
BR選択処理部842は、CEアドレス処理部841で算出されたIPv4アドレスと4rd用IPv4アドレスロードバランスアルゴリズ831を用いて、CE3宛のパケットの転送先となるBRを決定する。
BR TEPA通知部843は、CE3からの通知要求を受信した際に、CEアドレス処理部841及びBR選択処理部842で算出したTEPAをCE3に対して通知する。また、BR TEPA通知部843は、BR稼働状況管理部805で、BR稼働状況の変化が検知された場合に、CEアドレス管理テーブル833に登録済のCEに対して、CEアドレス処理部841及びBR選択処理部842で再計算したTEPAを通知する処理を行う。
なお、図6に示したCEアドレス管理テーブル211,BR情報管理テーブル212,及びロードバランスアルゴリズム管理テーブル213は、図29に示したCEアドレス管理テーブル833,BR情報管理テーブル832,4rd用IPv4アドレスロードバランスアルゴリズム831に集約することができる。
図31は、実施形態4の動作例を示すシーケンス図である。図31に示す<1>〜<4>の処理は、図13に示した<1>〜<4>の処理と同様であるので、説明を省略する。但し、図31における<2>の処理(ロードバランスアルゴリズム,BR稼働状況,TEPAの通知)は、CGW5内において、実施形態1のCGW5の動作を行うプログラムと、実施形態4のCGW5内のサーバ100Aのプログラムとの間で受け渡しされ、<3>のBR稼働状況登録処理(図15)は、CPU701によって実行される。
なお、実施形態4では、実施形態1のCGW5で実行されるプログラムと、実施形態1の外部サーバ100で実行されるプログラムとが統合されたプログラムを実行することもできる。
図31の<5>では、実施形態1(図13)と異なり、BRのTEPA通知要求のパケットが、CGW5に対して送信される。CGW5は、受信されたパケットがBRのTEPA通知要求であるか否かを確認する。確認手法は、例えば、特定のポート番号を指定する方法、Radius認証による方法などを適用することができる。但し、確認手法はこれらの手法に限定されない。
TEPA通知要求を確認したCGW5は、自装置内部に位置するサーバ100Aに対し、CE3の転送先BRのTEPAの計算を要求する(図31<6>)。当該処理は、CPU701がTEPA通知処理を実行するプログラム(ルーチン)を呼び出すことで実現される。CPU701は、サーバ100Aとして機能し、BR TEPA通知処理(図16)を実行する(図31<7>)。そして、CGW5に対して転送先のBRのTEPAを通知する(図31<8>)。<8>の処理は、転送先のBRのTEPAをCGW5のプログラム(ルーチン)に引き渡すことによって行われる。
そして、CGW5のCPU701は、転送先のTEPAを、CE3に通知する処理を行う(図31<9>)。CE3では、TEPAの記憶処理が行われる(図31<10>)。なお、以降に実施されるユーザ端末2とIPv4インターネット9との通信の処理手順は、実施形態1と同様であるので説明を省略する。
実施形態4によれば、外部サーバ100がCGW5の内部に位置している(CGW5が外部サーバ100(サーバ100A)として機能する)場合においても、ユーザ端末2とIPv4インターネット9との通信でパケットが往路と復路で同一のBRを通過するようにする(同一のBRが選択されるようにする)ことができる。
実施形態4は、外部サーバ100のプログラムをCGW5に実装し、且つ、CE3がBRのTEPA通知要求を送信する宛先アドレスを外部サーバ100のアドレスからCGW5のアドレスに変更することで実現可能である。これによってシステムに含まれる機器(装置)の数を減らすことができる。
また、BRの障害時や増設時におけるCGW5と外部サーバ100との通信をCGW5の内部通信(内部処理)に置換することができるため、CE3にTEPAが再通知されるまでの時間を早めることが期待される。
[実施形態5]
次に、実施形態5について説明する。実施形態5は、実施形態1の変形例であり、CGW5が有する、BRから送信されたIPv4パケットの中継機能を、CGW5と異なる中継装置(エッジルータ)に実装した構成例について説明する。
図32は、実施形態5に係るネットワークシステムの構成例を示す。実施形態5では、CGW11でBRを選択するのではなく、IPv4インターネット9のエッジルータ(Edge Router)12でBRを選択する例を示す。
実施形態5のネットワークシステムにおける実施形態1との相違点(差分)は次の通りである。図32に示すように、CGW5(図1)の代わりに、コアルータ(Core Router
)11がCE3に接続されている。コアルータ11は、BR6〜8に接続されている。BR6〜8は、IPv4インターネット9のエッジルータ12に接続されている。
コアルータ11は、IPv6アドレスのみに対応(サポート)しており、IPv6ルーティングテーブルに従ってパケットを転送する。エッジルータ12は、IPv4インターネット9の境界に位置するルータであり、IPv4アドレスのみに対応(サポート)している。エッジルータ12は、4rdとして事前に設定されたプレフィクス(prefix)のIPv4パケットについて、エッジルータ12自身が有するロードバランスアルゴリズムに従って選択したBRにIPv4パケットを転送する。
図33は、実施形態5における外部サーバ100Bのハードウェア構成例を示す図であり、図34は、外部サーバ100Bが有する機能ブロックを示す図である。図33に示すように、実施形態5の外部サーバ100Bは、図5に示した外部サーバ100のハードウェア構成に、エッジルータ12と接続するためのIPv4回線インタフェース109が追加された構成を有する。IPv4回線インタフェース109は、図34に示すようなIPv4回線インタフェース部207として機能する。また、外部サーバ100Bは、IPv4ネットワーク上のエッジルータ12と接続されるため、IPv4アドレス及びIPv6アドレスのデュアルスタックに対応している。上記を除き、外部サーバ100Bの構成は、外部サーバ100と同じであるのでその他の構成の説明は省略する。
実施形態5では、実施形態1と異なり、外部サーバ100Bがコアルータ11ではなく、エッジルータ12と接続されている。実施形態1では、パケットが往路と復路の双方において同一のBRで中継されるように、IPv4インターネット9からCE3へ送信されるパケット(復路のパケット)を複数のBRに対して振り分ける場合に実行されるロードバランスアルゴリズムを外部サーバ100で管理する。そして、往路のパケット転送の開始前に、ロードバランスアルゴリズムを用いて選択したBRのTEPAをCE3に通知することで、復路用のBRと往路用のBRとを一致させている。
このため、実施形態5では、エッジルータ12が4rd用IPv4アドレスのロードバランスアルゴリズム831(図10)を記憶し、BR6〜8の稼働状況を監視する。すなわち、実施形態1で説明したBR稼働状況管理部805としての機能は、エッジルータ12に実装される。
図35は、エッジルータ12のハードウェア構成例を示し、図36は、エッジルータ12の機能ブロックを示す。エッジルータ12のハードウェア構成は、例えば、図9に示したCGW5と同様のハードウェア構成で実現することができる。但し、図35に示すように、エッジルータ12は、IPv4インターネット向けの回線インタフェース709と、各BR6〜8用のBR向けIPv4回線インタフェース711とを有する。
エッジルータ12は、図9に示したメモリ703〜705と同種類のメモリを有し、こ
れらのメモリ703,704,705に、図36に示すようなロードバランスアルゴリズム831,BR情報管理テーブル832,CEアドレス管理テーブル833を記憶する。さらに、エッジルータ12のCPU701は、プログラム実行によって、4rd用IPv4パケット転送先選択部803,パケット処理部804,BR稼働状況管理部805として機能する。
これによって、実施形態5では、CGW5が実行するBR稼働状況取得処理(図13<1>)並びにロードバランスアルゴリズム,BR稼働状況及びTEPAの通知(図13<2>)は、エッジルータ12によって実行される。
なお、実施形態5のコアルータ11は、ハードウェア構成としては、図9に示したCGW5のハードウェア構成からメモリ704及び705が省略され、図10に示した記憶部802,選択部803,BR稼働状況管理部805が省略された装置となる。
実施形態5は、外部サーバ100BがCGW5ではなくエッジルータ12からTEPAの通知のための情報を取得する。このため、エッジルータ12は、4rd用IPv4アドレスのロードバランスアルゴリズム831を記憶し、BR6〜8のBR稼働状況を監視する。そして、ロードバランスアルゴリズム,BR6〜8の稼働状況,及びTEPAが外部サーバ100Bに通知される。
このような実施形態5の構成においても、ユーザ端末2とIPv4インターネット9との通信における往路のパケットと復路のパケットとを同一のBRが中継することによって、実施形態1と同様の効果を得ることができる。
<その他>
(付記1) 端末が属する第1網と中継網との境界に配置される中継装置であって、
前記端末から前記中継網を介して第2網へ送信される第1方向のパケットを受信する通信装置と、
前記中継網と前記第2網との境界に配置される複数の第2中継装置の中から前記複数の第2中継装置の稼働状況と所定の選択アルゴリズムとに基づいて選択される、前記第2網から前記中継網を介して前記端末へ送信される第2方向のパケットを中継する第2中継装置のアドレスを記憶する記憶装置と、 前記第2中継装置のアドレスを前記中継網での宛先アドレスに設定したヘッダを用いてカプセル化された前記第1方向のパケットを前記中継網へ送信する処理を行う制御装置と、
を含む中継装置。(1)
(付記2) 前記制御装置は、前記第2中継装置のアドレスの提供要求を送信する処理を行い、前記提供要求の応答として受信される前記第2中継装置のアドレスを前記記憶装置に記憶する
付記1に記載の中継装置。(2)
(付記3) 前記制御装置は、前記中継網に接続されたサーバに対して前記提供要求を送信する
付記2に記載の中継装置。
(付記4) 前記制御装置は、前記中継網内に配置され、前記中継装置と前記複数の第2中継装置とに接続された第3中継装置に対して前記提供要求を送信する
付記2に記載の中継装置。
(付記5) 前記制御装置は、前記複数の第2中継装置の稼働状況の変動を契機に、更
新に係る第2中継装置のアドレスを受信し、前記記憶装置に記憶された前記第2中継装置のアドレスを更新する
付記1に記載の中継装置。
(付記6) 前記複数の第2中継装置の稼働状況の変動は、前記複数の第2中継装置の少なくとも1つの障害発生による変動を含む
付記5に記載の中継装置。
(付記7) 前記複数の第2中継装置の稼働状況の変動は、新たな第2中継装置の増設による変動を含む
付記2に記載の中継装置。
(付記8) 前記第1網ではプライベートアドレスが使用され、前記第2網ではグローバルアドレスが使用され、
前記制御装置は、前記端末から受信されるプライベートアドレスをグローバルアドレスに変換する処理を行う
付記1に記載の中継装置。
(付記9) 第1網に属する端末から中継網を介して第2網へ送信される第1方向のパケットを受信する第1中継装置から、前記中継網における前記第1方向のパケットの宛先アドレスの提供要求を受信する通信装置と、
前記中継網と前記第2網との境界に配置される複数の第2中継装置の中から前記複数の第2中継装置の稼働状況と所定の選択アルゴリズムとに基づいて選択される、前記第2網から前記中継網を介して前記端末へ送信される第2方向のパケットを中継する第2中継装置のアドレスを記憶する記憶装置と、
前記第1中継装置が前記第2中継装置のアドレスを前記中継網での宛先アドレスに設定したヘッダを用いてカプセル化された前記第1方向のパケットを前記中継網へ送信するために、前記第2中継装置のアドレスを前記提供要求に対する応答として前記通信装置を介して前記第1中継装置に送信する制御装置と、
を含むサーバ。(4)
(付記10) 前記制御装置は、前記中継網と前記第2網との境界に配置される複数の第2中継装置の中から前記複数の第2中継装置の稼働状況と所定の選択アルゴリズムとに基づいて前記第2中継装置を選択する処理を行う、
付記9に記載のサーバ。
(付記11) 前記通信装置は、前記複数の第2中継装置の稼働状況及びアドレスと所定の選択アルゴリズムとを、前記中継網に配置され、前記第1中継装置と前記複数の第2中継装置とに接続された第3中継装置から受信する
付記9に記載のサーバ。
(付記12) 前記通信装置は、前記複数の第2中継装置の稼働状況及びアドレスと所定の選択アルゴリズムとを、前記複数の第2中継装置と前記第2網との間に配置された中継装置から受信する
付記9に記載のサーバ。
(付記13) 前記制御装置は、前記複数の第2中継装置の稼働状況に変動が生じたときに受信される変動後の稼働状況を示す情報と前記選択アルゴリズムとに基づいて、更新に係る第2中継装置を選択し、選択した第2中継装置のアドレスを前記通信装置を介して前記中継装置に送信する処理を行う
付記9に記載のサーバ。(6)
(付記14) 前記変動後の稼働状況を示す情報は、前記複数の第2中継装置の少なくとも1つの障害を契機に受信される
付記13に記載のサーバ。
(付記15) 前記変動後の稼働状況を示す情報は、前記複数の第2中継装置の増設を契機に受信される
付記13に記載のサーバ。
(付記16) 前記サーバは、前記中継網に配置され、前記中継装置と前記複数の第2中継装置とに接続された第3中継装置に含まれている
付記9に記載のサーバ。
(付記17) 端末が属する第1網と第2網とを接続する中継網内に配置され、前記第1網と前記中継網との境界に配置される第1中継装置,及び前記中継網と前記第2網との境界に配置される複数の第2中継装置と接続される中継装置であって、
前記中継網と前記第2網との境界に配置される複数の第2中継装置の中から前記複数の第2中継装置の稼働状況と所定の選択アルゴリズムとに基づいて選択される、前記第2網から前記中継網を介して前記端末へ送信される第2方向のパケットを中継する第2中継装置のアドレスを少なくともサーバへ送信する通信装置と、
前記第1中継装置が前記サーバから通知された前記第2中継装置のアドレスが前記中継網での宛先アドレスに設定されたヘッダで前記端末から前記中継網を介して前記第2網へ送信されるパケットがカプセル化されたカプセル化パケットが前記通信装置で受信されたときに、前記中継網での宛先アドレスに基づいて前記カプセル化パケットを前記第2中継装置へ転送する処理を行う制御装置と
を含む中継装置。(7)
(付記18) 前記通信装置は、前記サーバが前記第1中継装置へアドレスを通知する第2中継装置を前記稼働状況及び前記選択アルゴリズムに基づいて選択するように、前記制御装置の監視によって得られた前記複数の第2中継装置の稼働状況と、各第2中継装置のアドレスと、前記選択アルゴリズムとを前記サーバへ送信する、
付記17に記載の中継装置。(8)
(付記19) 前記通信装置は、前記制御装置による監視によって前記複数の第2中継装置の稼働状況に変動が生じたときに、変動後の稼働状況を示す情報を前記サーバに送信する
付記17に記載の中継装置。(9)
(付記20) 前記通信装置は、前記複数の第2中継装置の少なくとも1つの障害によって生じた稼働状況の変動を示す情報を前記サーバへ送信する
付記19に記載の中継装置。
(付記21) 前記変動後の稼働状況は、前記複数の第2中継装置の増設によって生じた稼働状況の変動を示す情報を前記サーバへ送信する
付記19に記載の中継装置。
(付記22) 端末が属する第1網と第2網とを接続する中継網内に配置され、前記第1網と前記中継網との境界に配置される第1中継装置,及び前記中継網と前記第2網との境界に配置される複数の第2中継装置と接続される中継装置であって、
前記第1中継装置から提供要求を受信する通信装置と、
前記提供要求に応じて、前記複数の第2中継装置の稼働状況と所定の選択アルゴリズムとに基づいて、前記中継網と前記第2網との境界に配置される複数の第2中継装置の中から、前記第2網から前記中継網を介して前記端末へ送信される第2方向のパケットを中継する第2中継装置を選択する処理と、選択した第2中継装置のアドレスを前記通信装置から前記第1中継装置に送信する処理と、前記通信装置で受信される、前記第2中継装置のアドレスが前記中継網での宛先アドレスに設定されたヘッダで前記端末から前記中継網を介して前記第2網へ送信されるパケットがカプセル化されたカプセル化パケットを、前記中継網での宛先アドレスに基づいて前記第2中継装置へ転送する処理と、を実行する制御装置と
を含む中継装置。(10)
(付記23) 端末が属する第1網と中継網との境界に配置される中継装置が、
前記端末から前記中継網を介して第2網へ送信される第1方向のパケットを受信し、
前記中継網と前記第2網との境界に配置される複数の第2中継装置の中から前記複数の第2中継装置の稼働状況と所定の選択アルゴリズムとに基づいて選択される、前記第2網から前記中継網を介して前記端末へ送信される第2方向のパケットを中継する第2中継装置のアドレスを記憶し、
前記第2中継装置のアドレスを前記中継網での宛先アドレスに設定したヘッダを用いてカプセル化された前記第1方向のパケットを前記中継網へ送信する
ことを含む中継装置のパケット転送方法。(11)
(付記24) 第1網に属する端末から中継網を介して第2網へ送信される第1方向のパケットを受信した第1中継装置から、前記中継網における前記第1方向のパケットの宛先アドレスの提供要求を受信し、
前記中継網と前記第2網との境界に配置される複数の第2中継装置(図1、6〜8)の中から前記複数の第2中継装置の稼働状況と所定の選択アルゴリズムとに基づいて選択される、前記第2網から前記中継網を介して前記端末へ送信される第2方向のパケットを中継する第2中継装置のアドレスを記憶し、
前記第1中継装置が前記第2中継装置のアドレスを前記中継網での宛先アドレスに設定したヘッダを用いてカプセル化された前記第1方向のパケットを前記中継網へ送信するために、前記第2中継装置のアドレスを前記提供要求に対する応答として前記通信装置を介して前記第1中継装置に送信する
ことを含むサーバのアドレス通知方法。(12)