本発明のIPネットワークシステムは、主にルータなどのルーティング機能を有する中継機器が構成するリングネットワークを介して各ホストがパケット通信を行うものであるが、説明を簡単にするために、以下複数のルータがリングネットワークを構成するものとして説明する。
図1は、本発明に係るIPネットワークシステムの一実施例を示す構成ブロック図である。図1において、ホスト11はトンネリング装置12と相互に接続され、トンネリング装置12はルータ13および15と相互に接続されている。ルータ14はルータ13と15およびトンネリング装置16と相互に接続されている。トンネリング装置16はルータ14と15およびホスト17と相互に接続されている。ルータ18はルータ15および19と相互に接続され、ルータ20はルータ13および21と相互に接続されている。
ルータ13〜15は第1のリングネットワークRING1を構成し、ルータ15と18と19は第2のリングネットワークRING2を構成し、ルータ13と20と21は第3のリングネットワークRING3を構成している。
ホスト11および17は、主にIPv6(Internet Protocol Version 6)を用いてパケットを伝送する通信機能を有している。
トンネリング装置12および16は、通信機能をはじめ、主にホスト11および17からのパケットにIPヘッダや各種拡張ヘッダを付加してカプセル化処理を行ってトンネリング通信用のトンネルパケットを生成しトンネルパケット生成機能と、トンネルパケットにデカプセル化処理を行ってパケットを抽出するトンネルパケット解除機能、パケットを複製するパケット複製機能、受信したパケットが既に転送済みか否かを判定する転送判断機能などを有している。
ルータ13〜15および18〜21は、通信機能とパケットを転送すべき経路を選択して転送する経路選択機能を有している。
また、各ルータの通信部は複数の通信インタフェースを有しており、2つの通信インタフェースが同じリングネットワークに接続され、それぞれIPv6アドレスが割り当てられている。本実施例では、ルータ13にはIPv6アドレス「A::1」と「C::1」が、ルータ14にはIPv6アドレス「A::2」と「B::2」が、ルータ15にはIPv6アドレス「B::3」と「C::3」がそれぞれ割り当てられているものとする。ここで、A、B、CはIPv6アドレスのプレフィックスである。
さらに、図1では、リングネットワーク内でルータ13と14を介してトンネリング装置16にパケットを転送する「右回り経路RP200」と、ルータ15を介してトンネリング装置16にパケットを転送する「左回り経路LP201」を示している。
ここで、トンネリング装置12からルータ13と14を介してトンネリング装置16にパケットを転送する経路方向を「右回り方向」、トンネリング装置12からルータ15を介してトンネリング装置16にパケットを転送する経路方向を「左回り方向」という。そして、右回り方向に転送されるパケットを「右回りパケット」、左回り方向に転送されるパケットを「左回りパケット」という。
なお、図1においてルータ13〜15、18〜21を用いて説明しているが、ルーティング機能を有する中継機器を用いるものであってもよい。また、リングネットワークは各ルータにより構成されると説明しているが、ルーティング機能を有する中継機器がリングネットワークを構成するものであってもよい。
図2は図1のトンネリング装置12の具体例を示す構成ブロック図である。図2において、通信部121は演算制御部122に接続され、演算制御部122は記憶部123に接続されている。通信部121は主にホスト11やルータ13、15との間で通信を行う。演算制御部122は各部の動作を制御するものであり、たとえばCPU(Central Processing Unit)が用いられる。記憶部123はOS(Operating System)やトンネリング装置として動作させるためのプログラムや経路情報、各種情報などを格納する。また、トンネリング装置16もトンネリング装置12と同様に構成されている。
図3は、図2のトンネリング装置を構成する演算制御部122の機能ブロック例図である。パケット送受部1221は、主にホスト11、17からのパケットやトンネルパケットなどのパケットの送受信を行う。
トンネルパケット生成部1222は、トンネル作成情報格納部1223に格納されたトンネル作成情報に基づきホスト11からのパケットにリングネットワークの右回りおよび左回り方向を示す転送方向情報を付加するとともに、IPヘッダや各種拡張ヘッダを付加するカプセル化処理を行ってトンネリング装置間でトンネリング通信を行うためのトンネルパケットを生成する。またトンネルパケット生成部1222は、転送対象マルチキャスト情報格納部1231に格納されたマルチキャスト情報に基づきホスト11からのパケットにより生成されたトンネルパケットの宛先を、ホスト11からのパケットの宛先のマルチキャストアドレスとする。
トンネル作成情報格納部1223は、トンネルパケットをトンネリング装置12から送信先のホスト機器17まで転送する経路情報やトンネルパケットを生成するためのトンネル作成情報を格納する。パケット複製部1224は、トンネルパケットを複製するとともに、複製したトンネルパケットの転送方向情報を複製元トンネルパケットの転送方向情報(たとえば右回り方向)とは逆向きの方向(たとえば左回り方向)に設定する。
トンネル受信処理部1225は、パケット送受部1221が各ルータから受信したトンネルパケットを解析して送信先、送信元、カプセル化前のパケット情報などの「トンネルパケット情報」をパケット情報格納部1226に格納する。パケット情報格納部1226は、トンネル受信処理部1225が解析した「トンネルパケット情報」と、トンネリング装置12から最終的な送信先であるホストに転送したパケットに関する情報である「転送済みパケット情報」を格納する。
パケット生成部1227は、パケット情報格納部1226に記憶されたトンネルパケット情報に基づき、デカプセル化処理を行ってカプセル化前のパケット、言い換えれば送信元ホストから送信されたパケットを再生する。転送判断部1228は、送信元ホストから受信したトンネルパケットと同一のパケットがパケット情報格納部1226に記憶されているか否かによって、このパケットが既にデカプセル化処理が行われて再生されたパケットを最終的な送信先であるホストに転送したか否かを判断し、まだ転送していない場合は再生したパケットを最終的な送信先であるホストに転送する。
パケット破棄部1229は、転送判断部1228が送信元ホストから受信したトンネルパケットと同一のパケットがパケット情報格納部1226に記憶されている場合は、トンネルパケットや再生したパケットなどのパケットを破棄する。方向設定部1230は、右回りパケット、左回りパケットの転送先アドレスを取得し、設定する。
転送対象マルチキャスト情報格納部1231は、トンネルパケットを送信先ホストが属すマルチキャストアドレスにマルチキャスト送信するための、トンネルパケットの転送対象となるマルチキャスト情報を格納する。
図4は、トンネル作成情報格納部に格納されるトンネル作成情報の一例を表す説明図である。トンネリング装置12、16のトンネル作成情報格納部は、図4に示すように、トンネルパケットを作成するための複数の「経路情報」フィールドを複数有している。
これらの経路情報フィールドは、トンネルパケットの最終的な送信先を格納する「宛先アドレス」(たとえば「ホスト機器17のIPv6アドレス」)、トンネリング通信の送信先を格納する「トンネル終点アドレス」(たとえば「トンネリング装置16のIPv6アドレス」)、各リングネットワークの識別情報を格納する「リングID」(たとえば「RING1」)、トンネルパケットの識別情報を格納する「パケットID」(たとえば「PKT0」)、右回りパケットを転送するルータのアドレスなどを格納する「右回りパケット転送先」(たとえばルータ13のIPv6アドレス「C::1」)、左回りパケットを転送するルータのアドレスなどを格納する「左回りパケット転送先」(たとえばルータ15のIPv6アドレス「C::3」)などのフィールドを有している。
図5は、パケット情報格納部1226に格納される転送済みパケット情報の一例を表す説明図である。図5に示すように、トンネリング装置12、16のパケット情報格納部は、パケットの属しているリングを示す複数の「リング」フィールドを複数有している。各「リング」フィールドは「転送済みパケット情報」を複数有し、さらに、各転送済みパケット情報は、トンネリング通信の始点となるトンネリング装置からリングネットワークを介してトンネルパケットを受信した時刻を格納する「タイムスタンプ」(たとえば「20070910-22:30:10.113591」)、受信したトンネルパケットの始点であるトンネリング装置のアドレスを格納する「トンネル始点アドレス」(たとえば「トンネリング装置12のIPv6アドレス」)、最終的な送信先ホストに転送したパケットの識別情報を格納する「パケットID」(たとえば「PKT0」)などのフィールドを有している。
図6は、転送対象マルチキャスト情報格納部1231に格納されるマルチキャスト情報の一例を表す説明図である。図6に示すように、トンネリング装置12、16のパケット情報格納部は、トンネルパケットの転送対象となるマルチキャスト情報である「マルチキャスト情報」フィールドを複数有している。このマルチキャスト情報は、リングの識別子を格納する「リングID」、トンネリング装置が受信したパケットを識別するためのトンネルパケットの識別子を格納する「パケットID」、SSM(Source-Specific-Multicast)の有効・無効を示すマルチキャストタイプ情報(たとえば、SSM:1、非SSM:0)が格納される「マルチキャストタイプ」、マルチキャストパケットの終点アドレス情報を格納する「終点マルチキャストアドレス」、マルチキャストパケットの始点アドレス情報を格納する「始点アドレス」、当該エントリの有効時間(残り時間)を格納する「ライフタイム」などのフィールドを有している。
なお、トンネリング装置およびルータは、マルチキャスト通信の実現方法として、SSM、または、ASM(Any-Source-Multicast)を選択設定でき、これらの動作を実現できるものである。
図7は図1のルータ13の構成ブロック図である。図7において、通信部131は演算制御部132に接続され、演算制御部132は記憶部133に接続されている。通信部131は図示しない複数の通信インタフェース(たとえば通信インタフェースIF130、IF131など)を有し、主にトンネリング装置12やルータ14との間で通信を行う。演算制御部132は、主にCPUなどであって各部の動作を制御する。記憶部133はOSやルータとして動作させるためのプログラムや経路情報、各種情報などが格納されている。ルータ14、15、18〜21もルータ13と同様に構成されている。
なお、ルータ13の通信部の複数の通信インタフェースには、たとえば右回りパケットを送信し左回りパケットを受信する動作や、左回りパケットを送信し右回りパケットを受信する動作が割り当てられる。
図8は図4のルータ13を構成する演算制御部132の機能ブロック例図である。パケット送受部1321は、主にトンネルパケットなどのパケットの送受信を行う。転送判断部1322は、主にトンネリング装置12から受信したトンネルパケットを右回り方向もしくは左回り方向のどちらに転送するかを判断する。マスタルータ検出部1323は、マスタルータの探索・検出を行う。マスタルータ動作部1324は、自機をマスタルータとして動作させる。
転送設定部1325は、自機の通信部における各通信インタフェースの動作を設定し、リングネットワークにおけるパケットの転送方向を設定・共有するための「方向決定パケット」を他のルータに送信する。転送情報格納部1326は、ホストや他のルータへの経路情報、右回りパケットおよび左回りパケットを転送するルータやトンネリング装置などのネットワークアドレスや通信部の通信インタフェースの動作を設定する設定情報などの「転送情報」や自機が接続されるリングネットワークのマスタルータや転送先などの「リングネットワーク情報」を格納する。
転送情報格納部1326の転送情報は、各通信インタフェースのインタフェース名や、各通信インタフェースが右回りパケットおよび左回りパケットを送受信するのかを定義するための情報を含む。転送情報は、たとえば右回りパケットを送信する通信インタフェースにインタフェース名「IF−RIGHT」を設定し、左回りパケットを送信する通信インタフェースにインタフェース名「IF−LEFT」を設定する情報を含んでいる。この場合、右回りパケットはIF−LEFTによって受信されてIF−RIGHTから転送され、左回りパケットはIF−RIGHTによって受信されてIF−LEFTから転送されることになる。
また転送判断部1322は、パケット送受部1321が各ルータから受信したトンネルパケットを解析してトンネル始点アドレス、終点マルチキャストアドレス、パケットIDなどの「転送済みパケット情報」を転送済みマルチキャストパケット情報格納部1327に格納する。
図9は、各ルータの転送情報格納部に格納されるリングネットワーク情報の転送情報の一例を表す説明図である。図9に示すように、ルータ13〜15の転送情報格納部は、複数のルータが構成する各リングネットワークの転送情報である複数の「リング」フィールドを有している。
これらの「リング」フィールドは、リングネットワークの識別情報を格納する「リングID」(たとえば「RING1」)、リングネットワークに割り当てられた第1の通信インタフェース情報を格納する「割り当てIF−1」(たとえば「通信インタフェースIF130」)、リングネットワークに割り当てられた第2の通信インタフェース情報を格納する「割り当てIF−2」(たとえば「通信インタフェースIF131」)、リングネットワーク内で用いるルータの識別情報であって、上記割り当てIF−1、IF−2に設定されたIPv6アドレスのうち最も小さいアドレスを格納する「myRID」、マスタルータを選択するために使用されリングネットワーク内で最も小さい値の識別情報を有するルータに関する情報を格納する「minRID受信情報」、マスタルータの識別情報を格納する「マスタルータID」(たとえば「A::1」)などを有している。
各ルータの識別情報であるルータID(以下、RIDという)には、ルータに割り当てられているIPv6アドレスを使用する。なお、ルータに複数のIPv6アドレスが割り当てられている場合には、最も値が若いIPv6アドレスをRIDとして使用する。ただし、RIDはオペレータが任意に設定するものであってもよい。
さらに、「リング」フィールドは、右回りパケットを送信する「IF−RIGHT」が設定されている通信インタフェース情報を格納する「IF−RIGHT割り当てIF」(たとえば「IF130」)、左回りパケットを送信する「IF−LEFT」が設定されている通信インタフェース情報を格納する「IF−LEFT割り当てIF」(たとえば「IF131」)、右回りパケットを転送するルータやトンネリング装置などのアドレスを格納する「右回りパケット転送先」(たとえばルータ14のIPv6アドレス「A::2」)、左回りパケットを転送するルータやトンネリング装置などのアドレスを格納する「左回りパケット転送先」(たとえばルータ15のIPv6アドレス「C::3」)、当該リングネットワークを構成するルータの数を格納する「リング内ルータ数」、自機と接続されている近隣のトンネリング装置の背後にあるIPv6アドレスのプレフィックス情報とトンネル情報を格納する「近隣トンネル転送情報」などのフィールドを有している。
「minRID受信情報」は、このルータが認識しているリングネットワーク内で最も小さい値のルータの識別情報を格納する「minRID」(たとえば「A::1」)、インタフェースIF−1が受信した広告パケットの転送回数を格納する「受信したホップ数(IF−1用)」(たとえば「0」)、インタフェースIF−2が受信した広告パケットの転送回数を格納する「受信したホップ数(IF−2用)」(たとえば「2」)などのフィールドを有している。
「近隣トンネル転送情報」フィールドは、トンネル対象となっているプレフィックス毎の経路情報を示す複数の「経路」フィールドを有している。
さらに、これらの「経路」フィールドは、トンネリング装置へ転送すべきIPv6アドレスのプレフィックスを格納する「プレフィックス」、プレフィックスの長さを格納する「プレフィックス長」、当該プレフィックス宛のパケットを転送すべきトンネリング装置のリンクローカルアドレスを格納する「ネクストホップ」、ネクストホップルータのネットワークに接続されているインタフェースの識別子を格納する「インタフェース」などのフィールドを有している。
ここで、広告パケットは、リングネットワークを構成する各ルータからマスタルータを選出するために、転送情報格納部1326に格納しているminRID(各ルータが認識しているリングネットワーク内で最小のルータの識別情報)を通知するパケットであって、リングネットワーク内で最小の識別情報を有するルータがマスタルータとして選出されるものとする。
図10は、各ルータの転送済みマルチキャストパケット情報格納部(たとえば1327)に格納される転送済みマルチキャストパケット情報の一例を表す説明図である。図10に示すように、ルータ13〜15の転送済みマルチキャストパケット情報格納部は、当該パケットが属しているリングネットワークを示す「リング」フィールドを有している。
これらの「リング」フィールドは、転送したトンネルパケット毎のエントリである複数の「転送済みパケット情報」を有している。この「転送済みパケット情報」は、トンネルパケットが受信された時間を格納する「タイムスタンプ」、トンネルパケットの識別子を格納する「パケットID」、受信したトンネルパケットの終点マルチキャストアドレスを格納する「終点マルチキャストアドレス」、受信したトンネルパケットの始点アドレスを格納する「トンネル始点アドレス」等を有している。
なお、各ルータは2個以上の通信インタフェースを有することもあるので、1個以上のリングネットワークに参加することができる。この場合、リング毎に転送に必要な情報が異なるので1個以上の「リング」フィールドを有している。
本発明のIPネットワークシステムの動作について、図11のパケット通信の流れを示す説明図、図12の動作フロー図および図13〜図15に示すIPネットワークシステムで利用するパケットフォーマット例を用いて説明する。図12において、(A)はトンネルパケットをユニキャスト送信により送信する動作フロー図、(B)はトンネルパケットをマルチキャスト送信により送信する動作フロー図である。また説明を簡単にするために、ホスト11とホスト17とがルータ13〜15で構成されるリングネットワークRING1を介してパケット通信する動作について説明する。
図11において、パケット通信DF200はホスト11がトンネリング装置12にパケットを送信する流れを示し、パケット通信DF201はトンネリング装置12がルータ13にパケットを送信する流れを示し、パケット通信DF202はトンネリング装置12がルータ15にパケットを送信する流れを示し、通信経路CP200はホスト11からトンネリング装置12、ルータ13、14、トンネリング装置16を介してホスト17にパケットが到達する流れを示し、通信経路CP201はホスト11からトンネリング装置12、ルータ15、トンネリング装置16を介してホスト17にパケットが到達する流れを示している。
<<図12(A)トンネルパケットをユニキャスト送信により送信する動作フロー>>
以下、本発明のIPネットワークシステムによりトンネルパケットがユニキャスト送信されて左右方向の経路を介して送信先ホストに到達する動作を説明する。
図12(A)のステップS201において、ホスト11の図示しない演算制御部は図示しない記憶部に格納されているOSなどを起動し、このOS上でプログラムを読み出し実行してホスト11全体を制御するとともに、最終的な宛先がホスト17である測定データなどを含むパケットを生成し、通信部を制御してこのパケットをトンネリング装置12に送信する。ホスト11は、たとえば図9のパケット通信DF200の流れに示すように、トンネリング装置12にパケット(たとえば図11のパケットP10)を送信する。
図13はホスト11が生成するパケットP10のフォーマット例図である。パケットP10はIPv6ヘッダ、ペイロードなどのフィールドを有し、IPv6ヘッダには始点IPアドレスの値(たとえば「ホスト11のIPv6アドレス」)や終点IPアドレスの値(たとえば「ホスト17のIPv6アドレス」)が設定され、ペイロードにはアプリケーションデータなどのデータが格納される。
ステップS202において、トンネリング装置12の演算制御部122は、記憶部123に格納されているOSなどを起動し、このOS上で格納されたプログラムを読み出し実行することにより、トンネリング装置12全体を制御してホスト11からのパケットにカプセル化処理を行い、トンネルパケットを生成する。なお、トンネリング装置12の演算制御部122が記憶部123に格納されたプログラムを読み出し実行して各部を制御する動作については、他のトンネリング装置についても同様であるので以下省略する。
演算制御部122のトンネルパケット生成部1222は、たとえばホスト11からのパケットP10とトンネル作成情報(たとえば図4の「経路1」)に基づいて、トンネリング装置12から送信先ホスト17に到達するまでに利用するトンネリング通信のトンネル終点アドレス(たとえばトンネリング装置16のIPv6アドレス)を検索し、パケットP10にこのトンネル終点アドレスを付加してトンネルパケットP20を生成する。また、トンネルパケット生成部1222は、トンネルパケットの識別子であるパケットID(たとえば「PKT0」)を作成してトンネルパケットP20に付加する。
図14はトンネルパケット生成部1222が生成するパケットP20のフォーマット例図である。トンネルパケットP20は、図13に示したパケットP10にIPv6ヘッダ(1)とホップバイホップオプションヘッダと宛先オプションヘッダを付加したものである。
IPv6ヘッダ(1)は、送信元トンネリング装置のアドレスを格納する「始点IPアドレス」や、送信先トンネリング装置のアドレスを格納する「終点IPアドレス」などのフィールドを有している。ホップバイホップオプションヘッダは、リングネットワークにおける右回り方向や左回り方向を格納する「経路方向」と、リングネットワークの識別子を格納する「リングID」フィールドを有している。宛先オプションヘッダは、トンネルパケットの識別子を格納する「パケットID」フィールドを有している。なお、図14では、パケットP20におけるパケットP10のIPv6ヘッダをIPv6ヘッダ(2)として示している。
具体的には、トンネルパケット生成部1222は、図14のようにパケットP10とトンネルパケット作成情報に基づき、IPv6ヘッダ(1)の始点IPアドレスの値(たとえば「トンネリング装置12のIPv6アドレス」)、終点IPアドレスの値(たとえば「トンネリング装置16のIPv6アドレス」)、リングを構成するルータの数であるTTL(Time To Live)の値、ホップバイホップオプションヘッダの経路方向の値(たとえば「0(右回り)」)、リングID(たとえば「RING1」)、宛先オプションヘッダのパケットIDの値(たとえば「PKT0」)を設定したトンネルパケットP20を生成している。
ステップS203において、トンネリング装置12の演算制御部122のパケット複製部1224は、生成したトンネルパケット(たとえば図14のパケットP20)とトンネル作成情報に基づいて、トンネルパケットを複製する(たとえば図15のパケットP21)。
トンネルパケットの複製にあたり、トンネルパケット生成部1222は、たとえば図15のトンネルパケットP21のように、ホップバイホップオプションヘッダの経路方向の値を複製元トンネルパケット(たとえば図14のパケットP20)の経路方向とは逆方向(たとえば「1(左回り)」)に設定する。
ステップS204において、トンネリング装置12の演算制御部122のパケット送受部1221は、各トンネルパケットに設定されているリングID、経路方向、終点IPアドレスと記憶部123のトンネルパケット作成情報に基づいて各トンネルパケットをルータ13、15に送信する。
具体的には、トンネリング装置12のパケット送受部1221は、トンネルパケットP20、P21に設定されたリングID(RING1)に基づき、トンネルパケット作成情報におけるRING1に関わる経路情報を検索する。
そして、パケット送受部1221は、たとえば図4の経路情報の右回りパケット転送先(ルータ13のアドレス「C::1」)、左回りパケット転送先(ルータ15のアドレス「C::3」)やトンネルパケットP20の経路方向(右回り)、トンネルパケットP21の経路方向(左回り)、終点IPアドレス(たとえばトンネリング装置16のIPv6アドレス)に基づいて、パケットP20をルータ13に送信し、パケットP21をルータ15に送信する。
なお、トンネリング装置12の演算制御部122が記憶部123に格納されたプログラムを読み出し実行して各部を制御する動作については、他のトンネリング装置についても同様であるので以下省略する。また、トンネリング装置12がトンネルパケットをルータ13に転送した場合はステップS205に移行し、ルータ15に転送した場合はステップS206に移行する。
ステップS205において、ルータ13の演算制御部132は、記憶部133に格納されているOSなどを起動し、このOS上でプログラムを読み出し実行することによりルータ13全体を制御し、トンネルパケットの経路方向、終点IPアドレスと転送情報格納部1326の転送情報に基づきトンネリング装置12から受信したトンネルパケットをルータ14に転送する。
具体的には、ルータ13は、通信部131のIF−LEFT割り当てインタフェースIF130を介してトンネルパケットP20を受信する。そして、演算制御部132の転送判断部1322は、トンネルパケットP20の経路方向(たとえば右回り方向)、終点IPアドレス(たとえばトンネリング装置16のIPv6アドレス)と転送情報の右回りパケット転送先(たとえばルータ14のアドレス「A::2」)に基づいて、IF―RIGHT割り当てインタフェースIF130を制御し、トンネリング装置12から受信したトンネルパケット(たとえばP20)をルータ14に転送する。
なお、ルータ13の演算制御部132が記憶部133に格納されたプログラムを読み出し実行してトンネルパケットを転送する動作については、他のルータについても同様であるので以下省略する。
ステップS206において、ルータ14もしくは15の図示しない演算制御部の転送判断部は、受信したトンネルパケット(たとえばトンネルパケットP20、P21)の経路方向ヘッダの値、終点IPアドレス(たとえばトンネリング装置16のIPv6アドレス)と図示しない転送情報格納部にあらかじめ格納されている転送情報の「右回りパケット転送先」や「左回りパケット転送先」に基づいて、ルータ13もしくはトンネリング装置12から受信したトンネルパケットをトンネリング装置16に転送する。
このようにトンネリング装置12から送信されたトンネルパケットは、ルータ13〜15が構成するリングネットワークを介してトンネリング装置16に転送される。
ところで、トンネリング装置16は、ルータ14から転送されるトンネルパケットP20をルータ15から転送されるトンネルパケットP21よりも先に受信したものとする。
ステップS207において、トンネリング装置16の演算制御部のトンネル受信処理部はルータ13、14もしくはルータ15を介して受信したトンネルパケット(たとえばトンネルパケットP20)を評価・解析する。
ステップS208において、転送判断部はパケット情報格納部に記憶されている転送済みパケット情報に基づいて、この評価・解析されたトンネルパケット(たとえばP20)をホスト17にまだ転送していないか否かを判断する。トンネリング装置16が受信したトンネルパケットをまだホスト17に転送していない場合はステップS209に移行する。
トンネリング装置16の転送判断部は、たとえばトンネルパケット(たとえばP20)の始点アドレス(たとえばホスト11)、宛先オプションヘッダのパケットID(たとえばPKT0)を利用して、同一のトンネルパケットがパケット情報格納部に記憶されていなければ、まだホスト17に転送していないものと判断する。
ステップS209において、トンネリング装置16の演算制御部のトンネル受信処理部は、ルータ13、14もしくはルータ15を介して受信したトンネルパケットを解析し、たとえばトンネルパケットのペイロードフィールドに格納されたホスト11から送信されたデータ、IPv6(1)ヘッダの始点アドレス(たとえば「トンネリング装置12のIPv6アドレス」)、宛先オプションヘッダのパケットIDの値(たとえば「PKT0」)、トンネルパケットを受信した時刻などをパケット情報格納部に格納する。パケット生成部は、トンネルパケットからIPヘッダや拡張ヘッダなどのトンネル用のヘッダを取り除いてホスト11から送信されたパケット(たとえばパケットP10)と同じ構成のパケットを生成する。パケット送受部はこのパケットをホスト17に転送する。
一方、トンネリング装置16は、トンネルパケットP20を転送した後にトンネルパケットP21を受信したものとする。すなわちトンネルパケットP21と同一のトンネルパケット情報(たとえばトンネルパケットP20のトンネル始点アドレス、宛先オプションヘッダのパケットID)がパケット情報格納部に記憶されている場合は、ステップS207において、トンネリング装置16は受信したトンネルパケット(たとえばP21)を既にホスト17に転送しているものと判断し、ステップS210に移行する。ステップS210において、トンネリング装置16の演算制御部のパケット破棄部は、受信したトンネルパケット(たとえばP21)を破棄する。
このように構成することにより、ルータやトンネリング装置などの各中継機器は送信元ホストから受信したパケットにカプセル化処理を行ってトンネルパケットを複製し、各トンネルパケットを各中継機器が構成したリングネットワークにそれぞれ右回り方向、左回り方向にユニキャスト送信し、各中継機器は受信したトンネルパケットを右回り方向、左回り方向にそれぞれ転送し、複製されたトンネルパケットが互いに同じ中継機器を経由することはないので、パケットはいずれかの経路に障害が発生しても確実に送信先に到達できる。
<<図12(B)トンネルパケットをマルチキャスト送信する動作フロー>>
以下、本発明のIPネットワークシステムによりトンネルパケットがマルチキャスト送信により左右方向の経路を介して送信先ホストに到達する動作を説明する。
図12(B)のステップS211において、ホスト11の演算制御部は記憶部のOSなどを起動し、このOS上でプログラムを読み出し実行してホスト11全体を制御するとともに、最終的な宛先がホスト17の属するマルチキャストアドレスである測定データなどを含むパケットを生成し、通信部を制御してこのパケットをトンネリング装置12に送信する。ホスト11は、たとえば図11のパケット通信DF200の流れに示すように、トンネリング装置12にパケット(たとえば図13のパケットP10)を送信する。
ステップS212において、トンネリング装置12の演算制御部122は、記憶部123に格納されているOSなどを起動し、このOS上で格納されたプログラムを読み出し実行することにより、トンネリング装置12全体を制御してホスト11からのパケットにカプセル化処理を行い、トンネルパケットを生成する。なお、トンネリング装置12の演算制御部122が記憶部123に格納されたプログラムを読み出し実行して各部を制御する動作については、他のトンネリング装置についても同様であるので以下省略する。
演算制御部122のトンネルパケット生成部1222は、たとえばホスト11からのパケットP10とトンネル作成情報(たとえば図4の「経路1」)および転送対象マルチキャスト情報格納部1231に基づいて、ホスト17の属する送信先マルチキャストアドレスを検索し、パケットP10にこのトンネル終点アドレスとして付加してトンネルパケットP20´(図示せず)を生成する。また、トンネルパケット生成部1222は、トンネルパケットの識別子であるパケットID(たとえば「PKT0」)を作成してトンネルパケットP20´に付加する。
トンネルパケット生成部1222が生成するパケットP20´のフォーマットは、IPv6ヘッダ(1)のトンネル終点アドレスが、ホスト17の属するマルチキャストアドレスである点以外は図14のP20と同じなので説明を省略する。
ステップS213において、トンネリング装置12の演算制御部122のパケット複製部1224は、生成したトンネルパケット(たとえばパケットP20´)とトンネル作成情報に基づいて、トンネルパケットを複製する(たとえばパケットP21´)。
トンネルパケットの複製にあたり、トンネルパケット生成部1222は、たとえばトンネルパケットP21´のように、ホップバイホップオプションヘッダの経路方向の値を複製元トンネルパケット(たとえばパケットP20´)の経路方向とは逆方向(たとえば「1(左回り)」)に設定する。なお、トンネルパケットP21´もIPv6ヘッダ(1)のトンネル終点アドレスが、ホスト17の属するマルチキャストアドレスである点以外は図15のP21と同じなので説明を省略する。
ステップS214において、トンネリング装置12の演算制御部122のパケット送受部1221は、各トンネルパケットに設定されているリングID、経路方向、終点IPアドレス(マルチキャストアドレス)と記憶部123のトンネルパケット作成情報に基づいて各トンネルパケットをリングネットワークに送信する(ルータ13のIF−LEFT割り当てインタフェースIF、ルータ15のIF−RIGHT割り当てインタフェースIFに送信する)。
具体的には、トンネリング装置12のパケット送受部1221は、トンネルパケットP20´、P21´に設定されたリングID(RING1)に基づき、トンネルパケット作成情報におけるRING1に関わる経路情報を検索し、トンネルパケットP20´をルータ13に送信し、トンネルパケットP21´をルータ15に送信する。
なお、トンネリング装置12の演算制御部122が記憶部123に格納されたプログラムを読み出し実行して各部を制御する動作については、他のトンネリング装置についても同様であるので以下省略する。また、トンネリング装置12がトンネルパケットをルータ13に転送した場合はステップS215に移行し、ルータ15に転送した場合はステップS216に移行する。
ステップS215において、ルータ13の演算制御部132は、記憶部133に格納されているOSなどを起動し、このOS上でプログラムを読み出し実行することによりルータ13全体を制御し、トンネルパケットの経路方向、ホップ数、終点IPアドレスと転送情報格納部1326の転送情報に基づきトンネリング装置12から受信したトンネルパケットをルータ14に転送する。またルータ13は、転送済みパケット情報格納部1327に、転送したトンネルパケットのIPv6ヘッダの始点アドレス、終点アドレスおよびホップバイホップオプションヘッダのパケットIDを格納する。
なお、ステップS215では、ルータ13は、トンネリング装置12からの受信パケットのIPv6ヘッダの始点アドレス、終点アドレスおよび終点オプションヘッダのパケットIDを評価し、転送済みパケット情報格納部に格納されている情報と比較して、当該パケットと同じパケットが既に処理済みであれば破棄する。
具体的には、ルータ13は、通信部131のIF−LEFT割り当てインタフェースIF130を介してトンネルパケットP20´を受信し、転送済みパケット情報格納部に格納されているパケット情報と比較し、同じパケットが既に処理済みであるか否かを判定する。仮に処理済みでないとすると、ルータ13の演算制御部132の転送判断部1322は、トンネルパケットP20´の経路方向(たとえば右回り方向)、終点IPアドレスと転送情報の右回りパケット転送先インタフェースに基づいて、IF―RIGHT割り当てインタフェースIF130を制御し、トンネリング装置12から受信したトンネルパケット(たとえばP20´)をルータ14に転送する。
なお、ルータ13の演算制御部132が記憶部133に格納されたプログラムを読み出し実行してトンネルパケットを転送する動作については、他のルータについても同様であるので以下省略する。
ステップS216において、ルータ14もしくは15の図示しない演算制御部の転送判断部は、受信したトンネルパケット(たとえばトンネルパケットP20´、P21´)の経路方向ヘッダの値、終点IPアドレスと図示しない転送情報格納部にあらかじめ格納されている転送情報の「IF−RIGHT割当インタフェース」、や「IF−LEFT割当インタフェース」に基づいて、ルータ13もしくはトンネリング装置12から受信したトンネルパケットを、受信したものと反対側のインタフェースを介してトンネリング装置16に転送する。またルータ14もしくはルータ15は、転送済みパケット情報格納部に、転送したトンネルパケットのIPv6ヘッダの始点アドレス、終点アドレスおよびホップバイホップオプションヘッダのパケットIDを格納する。
なお、ステップS216でも、ルータ14もしくはルータ15は、トンネリング装置12からの受信パケットのIPv6ヘッダの始点アドレス、終点アドレスおよびホップバイホップオプションヘッダのパケットIDを評価し、転送済みパケット情報格納部に格納されている情報と比較して、当該パケットと同じパケットが既に処理済みであれば破棄する。
このようにトンネリング装置12から送信されたトンネルパケットは、ルータ13〜15が構成するリングネットワークを介してトンネリング装置16に転送される。
ところで、トンネリング装置16は、ルータ14から転送されるトンネルパケットP20´をルータ15から転送されるトンネルパケットP21´よりも先に受信したものとする。
ステップS217において、トンネリング装置16の演算制御部のトンネル受信処理部はルータ13、14もしくはルータ15を介して受信したトンネルパケット(たとえばトンネルパケットP20´)を評価・解析する。
このトンネリング装置16が受信したトンネルパケットをまだ転送していない場合は、トンネルパケットを転送する。この受信したトンネルパケットをすでに転送している場合は以下のステップS218に移行する。
なお、ここではトンネリング装置16を例として説明しているが、仮にリングネットワークを構成するルータが当該トンネリング装置の機能を有している場合は、このルータの転送判断部はパケット情報格納部に記憶されている転送済みパケット情報に基づき、評価・解析されたトンネルパケット(たとえばP20´)が、当該パケットを受信したインタフェースの反対側に接続されているルータにまだ転送していないか否かを判断する。
たとえばトンネルパケット(たとえばP20´)の始点アドレス(たとえばトンネリング装置12)、ホップバイホップオプションヘッダのパケットID(たとえばPKT0)を利用して、同一のトンネルパケットがパケット情報格納部に記憶されていなければ、まだ当該反対側のルータには転送していないものと判断する。
このルータが受信したトンネルパケットをまだ当該反対側のルータに転送していない場合は、トンネルパケットを転送する。このルータが受信したトンネルパケットをすでに当該反対側のルータにすでに転送している場合は以下のステップS218に移行する。なお、ここで述べた転送済みか否かの判断は割愛可能である。この場合双方向に転送されたパケットはTTLが0になるとリングネットワークを1周して破棄される。
ステップS218において、転送判断部はパケット情報格納部に記憶されている転送済みパケット情報に基づいて、ステップS217で評価・解析されたトンネルパケット(たとえばP20´)を配下のネットワーク(ホスト17の属するネットワーク)にまだ転送していないか否かを判断する。トンネリング装置16が受信したトンネルパケットをまだ配下のネットワークに転送していない場合はステップS219に移行する。
トンネリング装置16の転送判断部は、たとえばトンネルパケット(たとえばP20´)の始点アドレス(たとえばトンネリング装置12)、ホップバイホップオプションヘッダのパケットID(たとえばPKT0)を利用して、同一のトンネルパケットがパケット情報格納部に記憶されていなければ、まだ配下のネットワークに転送していないものと判断する。
ステップS219において、トンネリング装置16の演算制御部のトンネル受信処理部は、ルータ13、14もしくはルータ15を介して受信したトンネルパケットP20を解析し、このトンネルパケットのマルチキャストアドレスの受信者が自機(トンネリング装置16)の背後に存在するかを確認する。もし存在すればP10を抽出し、背後のネットワークに転送する。
図示しないが、各トンネリング機器は、自身の配下のノードが参加しているマルチキャストアドレスと、その送信元アドレスのペアを管理している。送信元アドレスは参加しているノードが明示的に送信元を指定する場合(Source Specific Multicast)に設定される。各トンネリング機器は、マルチキャストアドレスとパケットの終点アドレスとの比較、送信元アドレスとホップバイホップオプションの送信元アドレスとの比較を行う。参加しているノードが送信元アドレスを指定したい場合は全ての送信元アドレスにマッチする。
たとえばトンネルパケットのペイロードフィールドに格納されたホスト11から送信されたデータ、IPv6(1)ヘッダの始点アドレス(たとえば「トンネリング装置12のIPv6アドレス」)、宛先アドレス(マルチキャストアドレス)、ホップバイホップオプションヘッダのパケットIDの値(たとえば「PKT0」)、トンネルパケットを受信した時刻などをパケット情報格納部に格納する。パケット生成部は、トンネルパケットからIPヘッダや拡張ヘッダなどのトンネル用のヘッダを取り除いてホスト11から送信されたパケット(たとえばパケットP10)と同じ構成のパケットを生成する。パケット送受部はこのパケットを配下のネットワークに転送する。
一方、トンネリング装置16は、トンネルパケットP20´を転送した後にトンネルパケットP21´を受信したものとする。すなわちトンネルパケットP21´と同一のトンネルパケット情報(たとえばトンネルパケットP20´のトンネル始点アドレス、宛先アドレス(マルチキャストアドレス)、ホップバイホップオプションヘッダのパケットID)がパケット情報格納部に記憶されている場合は、ステップS218において、トンネリング装置16は受信したトンネルパケット(たとえばP21´)を既にホスト17に転送しているものと判断し、ステップS220に移行する。ステップS220において、トンネリング装置16の演算制御部のパケット破棄部は、受信したトンネルパケット(たとえばP21´)を破棄する。
なお、リングネットワークを構成するルータがトンネリング装置の機能を有している場合は、当該ルータはこれと同様の動作を行う。
このように構成することにより、ルータやトンネリング装置などの各中継機器は送信元ホストから受信した送信先ホストが属すマルチキャストアドレスにマルチキャスト送信されたパケットにカプセル化処理を行ってトンネルパケットを複製し、各トンネルパケットを各中継機器が構成したリングネットワークにそれぞれ右回り方向、左回り方向に送信し、各中継機器は受信したトンネルパケットを右回り方向、左回り方向にそれぞれ転送し、複製されたトンネルパケットが互いに同じ中継機器を経由することはないので、パケットはいずれかの経路に障害が発生しても確実に送信先に到達できる。
たとえば、ルータ15に障害が発生して図1の左回り経路LP201を介してパケット通信ができないような場合であっても、トンネリング装置12はホスト11からのパケットに基づいて生成したトンネルパケットを複製し、複製したパケットを左回り方向、右回り方向に送信し、ルータ13、14は右回りパケット(パケットP20)を右回り経路RP200に沿って転送し、トンネリング装置16は右回りパケットをホスト17に転送するので、ホスト11から送信されたパケットは確実にホスト17に到達できる。
<<マスタルータの選定>>
ところで、各ルータは、リングネットワーク内で右回り方向および左回り方向などの統一された転送方向を共有し把握している必要がある。このような場合は、オペレータなどが手動で各ルータの右回り・左回り方向の向きを設定してもよいが、各ルータの中からマスタルータを一台選定し、このマスタルータが決定した方向の向きの定義に他の全てのルータが従って自動的に設定してもよい。
このようにマスタルータがリングネットワークを構成する各ルータの右回り方向および左回り方向の向きを統一して設定する動作について、図16のマスタルータを選定する動作を説明するフロー図、図17の広告パケットのパケットフォーマット、図18〜図20の各ルータが広告パケットを転送する動作説明図、図21のマスタルータが方向決定パケットを各ルータに転送する動作を説明するフロー図、図22の方向決定パケットフォーマット、図23の方向決定拒否パケットフォーマットを用いて説明する。
なお、説明を簡単にするためにルータ13からルータ14、15に広告パケットを送信してマスタルータを選定する例を用いて説明する。
図16のステップS301において、ルータ13の演算処理部132は、記憶部133に格納されているOSなどを起動し、このOS上で格納されたプログラムを読み出し実行することにより、ルータ13全体を制御するとともに、演算制御部132のマスタ検出部1323はマスタルータと方向を検索するための方向検索パケットをルータ14、15に送信する。このルータ13の演算制御部132が記憶部133に格納されたプログラムを読み出し実行して各部を制御する動作については、他のルータについても同様であるので以下省略する。
ステップS302において、ルータ13はマスタルータを検出できたかどうかを判断する。ルータ13は、まだマスタルータが選定されてないためにマスタルータを検出できないと判断した場合にはステップS303に移行する。またルータ13は、マスタルータからの方向検索パケットに対する返信などによってマスタルータを検出したものと判断した場合には、ステップS304に移行する。
ステップS303において、ルータ13は転送情報格納部1326に格納されているminRID(ルータ13が認識しているリングネットワーク内で最も小さい値のルータの識別情報)を通知するため、広告パケット(たとえば図17のパケットP30)を事前に割り当てられているリンクローカルマルチキャストアドレスに(図1の場合はルータ14、15に)送信する。このとき、ルータ13は通信インタフェースIF130およびIF131を介して広告パケットを送信することとする。
図17に示すように、パケットP30はIPv6ヘッダ、ペイロードなどの各フィールドを有し、IPv6ヘッダに「始点IPアドレス」、「終点IPアドレス」などのフィールド、ペイロードに「メッセージタイプ」、「リングID」、ルータ13の転送情報格納部1326に格納されているminRIDである「ルータID」、「ホップ数」を有している。
ルータ13は、たとえば図17のように始点IPアドレスの値(たとえばルータ13のIPv6アドレス「A::1」)、終点IPアドレスの値(たとえばリングネットワーク内のリンクローカルマルチキャストアドレス「ff02::100」)、メッセージタイプの値(たとえば「広告」)、リングIDの値(たとえば「RING1」)、ルータIDの値(ルータ13の転送情報格納部1326に格納されているminRID「A::1」)、ホップ数(初期値「0」)を設定した広告パケットをルータ14、15に送信する。そしてルータ14はルータ13からの広告パケットを通信インタフェースIF140を介して受信するものとする。
具体的には、ルータ13は、図18に示すようにルータ13からルータ14へのパケット通信DF300の流れ、ルータ13からルータ15へのパケット通信DF301の流れに示すように広告パケットをルータ14、15にそれぞれ送信する。
ステップS304において、ルータ(たとえば、ルータ14)は、他のルータ(たとえば、ルータ13)から広告パケットを受信する。
ステップS305において、ルータ14はルータ13から受信した広告パケットに基づいて、広告パケットのルータIDの値とルータ14の転送情報格納部に格納されているminRIDの値とを比較する。広告パケットのルータIDに格納されているルータ13のminRIDの値(たとえば「A::1」)がルータ14のminRIDの値(たとえば「A::2」)よりも小さい場合は、ステップS306に移行する。ただし、IPv6アドレスおよびRIDの大小関係は9::1<A::1<A::2<B::2<B::3<C::1<C::3とする。
ステップS306において、ルータ14の演算制御部は、ルータ13から受信した広告パケットのルータIDの値を転送情報格納部のminRIDフィールドに格納する。
ステップS307において、ルータ14は、ルータ13から受信した広告パケットのホップ数に「1」加算して転送情報格納部の受信したホップ数(IF140用)フィールドに格納する(たとえば「1」)。
ステップS308において、ルータ14の演算制御部のマスタルータ検出部は、転送情報格納部に格納されているmyRIDの値とminRIDの値とが等しい場合、もしくは転送情報格納部に格納されている受信したホップ数(IF140用)が「0」より大きい値の場合は、転送情報格納部に格納されている転送情報(たとえばminRIDの値「A::1」、ホップ数「1」)に基づいて広告パケットを生成し、リングネットワークに接続している他方の通信インタフェース(たとえば「IF141」)を介して広告パケットをルータ15に転送する。なお、ステップS308の処理が終了した後はステップS304に移行する。
具体的には、ルータ14は、図19のルータ14からルータ15へのパケット通信DF302の流れに示すように、ルータ15に広告パケットを送信する。なお、ルータ15もルータ14と同じ動作を行って、ルータ15からルータ14へのパケット通信DF303の流れに示すように広告パケットをルータ14に送信する。
さらに、ルータ15は、図20のルータ15からルータ13へのパケット通信DF304の流れに示すように、ルータ14から受信した広告パケットに基づいて広告パケットをルータ13に送信する。またルータ14は、図20のルータ14からルータ13へのパケット通信DF305の流れに示すように、ルータ15から受信した広告パケットに基づいて広告パケットをルータ13に送信する。
一方ステップS305において、ルータ14のマスタルータ検出部は、受信した広告パケットのルータIDの値(たとえば「A::1」)が転送情報格納部に格納されているminRIDの値(たとえば「A::1」)よりも小さくない場合は、ステップS309に移行する。
ステップS309において、ルータ14は受信した広告パケットのルータIDに格納されている値と転送情報格納部に格納されているminRIDの値とが等しいか否か判断する。ルータ14は受信した広告パケットのルータIDに格納されている値とminRIDの値とが等しい場合はステップS310に移行する。
また、ステップS309において、ルータ14は受信した広告パケットのルータIDに格納されている値とminRIDの値とが等しくない場合は、ステップS303に移行する。
ステップS310において、ルータ14のマスタルータ検出部は、転送情報格納部に格納されているmyRIDの値とminRIDの値とが等しい場合、ステップS311に移行する。
ステップS311において、ルータ14の演算制御部のマスタルータ検出部は、転送情報格納部に格納されている受信したホップ数が「1」以上であるか判断する。転送情報格納部に格納されている受信したホップ数が「1」以上である場合はステップS312に移行する。
また、ステップS311において、ルータ14の転送情報格納部に格納されたホップ数が「1」以上ではない場合は、図21の「A」に移行する。
ステップS312において、ルータ14のマスタルータ検出部は、他のルータから受信した広告パケットのホップ数に「1」加算して転送情報格納部の受信したホップ数フィールドに格納(たとえば「1」)し、マスタルータ動作部はマスタルータとしての動作を開始する。そして、ステップS312の処理後に図19の「A」に移行する。
一方、ステップS310において、ルータ14の転送情報格納部に格納されているmyRIDの値とminRIDの値とが等しくない場合は、ステップS313に移行する。ステップS313において、ルータ14のマスタルータ検出部は、他のルータから受信した広告パケットのホップ数に「1」加算して転送情報格納部のホップ数フィールドに格納(たとえば「1」)する。そして、ステップS313の処理後にステップS308に移行する。
このように、各ルータは、認識しているminRIDを付加した広告パケットを送信し、受信した広告パケットのminRIDとこれまで認識していたminRIDのうち小さい値をminRIDとして記憶するとともに広告パケットに付加して他のルータに転送し、受信した広告パケットのminRIDとこれまで認識していたminRIDの値が等しく、かつそれらがmyRIDと同じルータがマスタルータとして動作することで、リングネットワークを構成する各ルータの中からマスタルータを選定することができる。
<<各ルータのインタフェースと転送方向の関連付け>>
次に、マスタルータは方向決定パケットを各ルータに送信して、各ルータのインタフェースとパケットの転送方向との関連付けを行う。具体的には、図21のステップS401において、マスタルータ(たとえばルータ13)の演算制御部は記憶部に格納されたプログラムを読み出し実行することにより、各部を制御してマスタルータとして動作し、演算制御部の転送設定部はパケットの転送方向を決定するための「方向決定パケット」(たとえば図22の方向決定パケットP40)を事前に割り当てられているリンクローカルマルチキャストアドレスに送信する。
方向決定パケットP40は、図22に示すようにIPv6ヘッダ、ペイロードなどの各フィールドを有し、IPv6ヘッダに「始点IPアドレス」、「終点IPアドレス」、ペイロードに「メッセージタイプ」、リングネットワークの識別情報である「リングID」、マスタルータのルータIDである「ルータID」、転送されたルータの数である「ホップ数」などのフィールドを有している。
ルータ13は、たとえば図22のように始点IPアドレスの値(たとえばルータ13のアドレス「A::1」)、終点IPアドレスの値(たとえばルータ14のアドレス「A::2」)、メッセージタイプの値(たとえば「方向決定」)、リングID(たとえば「RING1」)、ルータID(たとえばルータ13のRID「A::1」)、ホップ数の値(たとえば「0」)を設定した方向決定パケットをルータ14に送信する。
ところで、ルータ13からの方向決定パケットをルータ14が受信した場合の動作について以下説明する。ステップS402において、ルータ14の演算制御部のマスタルータ検出部は、ルータ13から受信した方向決定パケットに基づいて、方向決定パケットのルータID(たとえばルータ13のRID「A::1」)と送情報格納部に格納されているminRIDの値とが等しいか否かを判断する。方向決定パケットのルータIDの値と転送情報格納部に格納されているminRIDの値とが等しい場合は、ステップS403に移行する。
ステップS403において、ルータ14の演算制御部のマスタルータ検出部は、転送情報格納部のマスタルータIDフィールドに、方向決定パケットのルータIDを格納する。ルータ14のマスタルータ検出部は、たとえば転送格納部に格納されているマスタルータIDフィールドに方向決定パケットのルータID「A::1」を格納する。
ステップS404において、ルータ14の演算制御部の転送設定部は、ルータ13から方向決定パケットを受信した通信インタフェース(たとえば通信インタフェース「IF140」)をIF−LEFT、もう一方の通信インタフェース(たとえば通信インタフェース「IF141」)をIF−RIGHTとして設定し、転送情報格納部の「IF−LEFT割り当てIF」、「IF−RIGHT割り当てIF」にインタフェース情報をそれぞれ格納する。
ステップS405において、ルータ14の演算制御部の転送設定部は、IF−RIGHTが設定された通信インタフェース(たとえば通信インタフェース「IF141」)を制御してルータ13から受信した方向決定パケットをルータ15に転送する。このときルータ14の転送設定部はホップ数に「1」加算して方向決定パケットをルータ15に送信する。
そして、ルータ15は上述のステップS402〜S404と同様の処理を行い、ルータ15のマスタルータ検出部はマスタルータIDフィールドに方向決定パケットのルータID「A::1」を格納し、ルータ15の演算制御部の転送設定部は、ルータ14から方向決定パケットを受信した通信インタフェース(たとえば通信インタフェース「IF150」)をIF−LEFT、もう一方の通信インタフェース(たとえば通信インタフェース「IF151」)をIF−RIGHTとして設定し、転送情報格納部の「IF−LEFT割り当てIF」、「IF−RIGHT割り当てIF」にインタフェース情報をそれぞれ格納する。
一方、ステップS402において、ルータ14は、たとえばマスタルータ13のルータIDよりも小さいminRIDを認識している場合は、方向決定パケットのルータID(たとえばルータ13のRID「A::1」)と転送情報格納部に格納されているminRIDの値(たとえばRID「A::0」)とが等しくないと判断してステップS406に移行する。
ステップS406において、ルータ14の演算制御部のマスタルータ検出部は、方向決定を拒否する旨を通知する方向決定拒否パケット(たとえば図23のパケットP41)をマスタルータであるルータ13に送信する。
方向決定拒否パケットP41は、図23に示すようにIPv6ヘッダ、ペイロードなどのフィールドを有し、IPv6ヘッダに「始点IPアドレス」、方向決定パケットの送信元ユニキャストアドレスを格納する「終点IPアドレス」、ペイロードに「メッセージタイプ」、リングネットワークの識別情報を格納する「リングID」、ルータが認識しているリングネットワーク内での最小ルータIDを格納する「最小ルータID」、転送されたルータの数である「ホップ数」などのフィールドを有している。
ルータ14は、たとえば始点IPアドレスの値(たとえば「ルータ14」)、終点IPアドレスの値(たとえば「ルータ13」)、メッセージタイプの値(たとえば「方向決定拒否」)、リングID(たとえば「RING1」)、最小ルータID(たとえば「9::1」)、ホップ数の値(たとえば「1」)を設定した方向決定拒否パケットをルータ12に送信する。
そして、ルータ13は、受信した方向決定拒否パケットの「最小ルータID」の値を転送情報格納部1326のminRIDに格納する。またステップS406の処理後、図16の「B」に移行する。
また、ルータ15は、これらのルータ14の動作と同様にルータ14からの方向決定パケットに基づいて各通信インタフェースとパケットの転送方向との関連付けを行うことになる。
このように、マスタルータは方向決定パケットを各ルータに送信し、各ルータは方向決定パケットを他のルータに転送するとともに受信した通信インタフェースをIF−LEFT、送信する通信インタフェースをIF−RIGHTとして設定することにより、各ルータの通信インタフェースとパケットの転送方向との関連付けを行うことができる。
<<トンネリング装置による転送先アドレス把握>>
また、上記実施例において、トンネリング装置は右回りパケット転送先、左回りパケット転送先のアドレスを把握している必要がある。このような場合、オペレータなどが手動で各トンネリング装置の右回りおよび左回り転送先アドレスを設定するものであってもよいが、各トンネリング装置がネットワークを介して自動的に右回りおよび左回り転送先アドレスを取得し設定するものであってもよい。
このようにトンネリング装置が右回りおよび左回り転送先アドレスを取得して設定する動作について、フロー図である図24、方向検索パケット、方向設定パケットのパケットフォーマットである図25、図26を用いて説明する。
図24のステップS501において、トンネリング装置12は右回りパケット、左回りパケットを送信すべきルータのアドレスを取得するための「方向検索パケット」(たとえば図23の方向検索パケットP50)を事前に割り当てられているリンクローカルマルチキャストアドレスに送信する。
図25に示すように、方向検索パケットP50はIPv6ヘッダ、ペイロードなどの各フィールドを有し、IPv6ヘッダに「始点IPアドレス」、「終点IPアドレス」、ペイロードに「メッセージタイプ」、リングネットワークの識別情報である「リングID」などのフィールドを有している。
トンネリング装置12は、たとえば始点IPアドレスの値(たとえば「トンネリング装置12のIPv6アドレス」)、終点IPアドレスの値(たとえばリングネットワーク内の「リンクローカルマルチキャストアドレス」)、メッセージタイプの値(たとえば「方向検索」)、リングID(たとえば「RING1」)を設定した方向検索パケットをルータ13、15に送信する。
以下、トンネリング装置12からの方向検索パケットをルータ13が受信した場合の動作を例として説明する。このとき、ルータ13は、通信部の通信インタフェースIF131を介して方向検索パケットを受信するものとする。
ステップS502において、ルータ13の演算制御部132の転送設定部1325は、受信した方向検索パケットに基づいて、方向検索パケットのリングIDがルータ13の参加しているリングIDと等しいか否かを判断する。方向検索パケットのリングIDがルータ13の参加しているリングIDと等しい場合はステップS503に移行する。
ステップS503において、ルータ13の演算制御部132の転送設定部1325は、パケットの転送方向を通知するための「方向設定パケット」(たとえば図26の方向設定パケットP51)を生成してトンネリング装置12に送信する。
方向決定パケットP51は、図26に示すようにIPv6ヘッダ、ペイロードなどの各フィールドを有し、IPv6ヘッダに「始点IPアドレス」、「終点IPアドレス」、ペイロードに「メッセージタイプ」、リングネットワークの識別情報である「リングID」、リングネットワークを構成するルータの数(いいかえれば送信ルータの転送情報格納部内の「受信したホップ数(IF−1用)」、「受信したホップ数(IF−2用)」の値を合計したもの)である「リング内ルータ数」、方向検索パケットを受信した通信インタフェースのインタフェース名(IF−RIGHT、IF−LEFTなど)である「インタフェース名」、方向検索パケットを受信したインタフェースに割り振られたIPv6アドレスである「アドレス」などのフィールドを有している。
ルータ13は、たとえば始点IPアドレスの値(たとえばルータ13のIPv6アドレス「C::1」)、終点IPアドレスの値(たとえば「トンネリング装置12のIPv6アドレス」)、メッセージタイプの値(たとえば「方向設定」)、リングIDの値(たとえば「RING1」)、リング内ルータ数(たとえば「3」)、インタフェース名(たとえば「IF−LEFT」)、アドレスの値(たとえば「C::1」)を設定した方向検索パケットをトンネリング装置12のユニキャストアドレスに送信する。
ステップS504において、トンネリング装置12の演算制御部122の方向設定部1230は、受信した方向設定パケットに基づいて、トンネル作成情報格納部1223の「右回りパケット送信先」フィールドに方向設定パケットのアドレスの値(たとえば「C::1」)を格納する。すなわち、トンネリング装置12の方向設定部1230は、ルータ13のIF―LEFTのアドレス(たとえば「C::1」)に右回りパケットを送信するように設定することになる。さらにトンネリング装置12は受信したリング内ルータ数を転送情報格納部の該当リングの「リング内ルータ数」に格納する。
またトンネリング装置12は、ルータ13と同時に、ルータ15にも方向検索パケットを送信することになるため、上述のステップS501〜S504の処理と同様に動作して、左回りパケット転送先のアドレスについてもネットワークを介して自動的に取得できる。
このように、トンネリング装置は方向検索パケットをマルチキャストを用いて各ルータに送信し、各ルータは方向検索パケットを受信した通信インタフェース名(たとえば「IF−RIGHT」、「IF−LEFT」)とこのインタフェースに割り当てられたアドレスとを含む方向設定パケットをトンネリング装置に送信することにより、トンネリング装置は右回りパケット転送先、左回りパケット転送先のアドレスを取得することができる。
<<トンネル検索>>
本発明のIPネットワークシステムのトンネリング装置は、リングネットワークにルータが追加されたとき、または既に参加しているルータを再起動したときに、トンネル終端となるルータを把握している必要がある。この場合は本発明のトンネリング装置がトンネル終端となるルータを検索することにより把握している。このような検索動作(1)〜(3)について以下説明する。たとえば図1のルータ15が再起動する場合を例に説明する。ここで図27はトンネル終端検索パケットフォーマットの一例、図28はトンネル終端広告パケットフォーマットの一例である。
(1)ルータ15は、再起動すると、上述の方向検索を行った後、IF−RIGHTの接続されているネットワークCに図27に示すトンネル終端検索パケットを送信する。トンネル終端検索パケットの各フィールドは次のようになる。
トンネル終端検索パケットは、図27に示すようにIPv6ヘッダ、ペイロードなどの各フィールドを有し、IPv6ヘッダに送信元のIPアドレスが格納される「始点IPアドレス」、設定用リンクローカルマルチキャストアドレスが格納される「終点IPアドレス」、ペイロードにトンネル終端検索を示すタイプ情報が格納される「メッセージタイプ」、リングネットワークの識別情報である「リングID」等のフィールドを有している。
なおトンネル終端検索パケットを送信したルータのアドレス(リンクローカルマルチキャストアドレス以外)が「リクエスト元IPアドレス」に格納される。このトンネル終端検索パケットはIF−LEFTで受信したルータにより処理される。
(2)トンネリング装置12は図28に示すトンネル終端広告パケットを送信する。トンネル終端広告パケットの各フィールドは次のようになる。
トンネル終端広告パケットは、図28に示すようにIPv6ヘッダ、ホップバイホップオプションヘッダ、ペイロードなどの各フィールドを有し、IPv6ヘッダに送信元のIPアドレスが格納される「始点IPアドレス」、トンネル終端検索パケットの「リクエスト元IPアドレス」に格納されているルータ15のユニキャストアドレスが格納される「終点IPアドレス」、ホップバイホップオプションヘッダにリングネットワークにおける右回り方向や左回り方向を格納する「経路方向」と、リングネットワークの識別子を格納する「リングID」フィールド、ペイロードにトンネル終端広告を示すタイプ情報が格納される「メッセージタイプ」、リングネットワークの識別情報である「リングID」、トンネルの終端となるアドレス(このアドレスにはIF−RIGHTのアドレス(リンクローカルアドレスではない)が用いられる)である「トンネル終端アドレス」、トンネル終端装置の背後にあるネットワークのプレフィックスとプレフィックス長の組を示す1個または複数の「プレフィックス情報」等のフィールドを有している。
さらに、この「プレフィックス情報」には、格納されているプレフィックス情報の数を格納する「エントリ数」と、IPv6アドレスのプレフィックスを格納する「プレフィックス」、プレフィックスの長さを格納する「プレフィックス長」等のフィールドを有している。
なお、ルータ15により送信されたトンネル終端検索パケットはルータ13にも届くためルータ13においてもルータ12と15同様の処理が必要となる。さらにルータ13は受信したトンネル終端検索パケットをIF−RIGHTから送信する。このときルータ13は始点アドレスのみルータ13のアドレスに書き換える。なお、このトンネル終端検索パケットは、トンネル終端検索パケットを送信したリクエスト元のルータに戻ってきたときに当該ルータにて破棄される。
(3)トンネル終端広告パケットを受け取ったルータ15は、その広告に含まれる全てのプレフィックス情報と、その広告パケットに格納されている「トンネル終端アドレス」を対応付けて、それらの情報を保持する。なお、ルータ15は、同じプレフィックスに対して、異なる送信元アドレスを持った広告パケットを受け取った場合、最新のものを利用する。
なお、上述の<<トンネル検索>>における実施例では、ルータは、設定用リンクローカルマルチキャストアドレス宛を「終点IPアドレス」として格納しているトンネル終端検索パケットを送信するとして説明しているが、特にこれに限定するものではなく、「終点IPアドレス」にアドミニストレイティブローカルマルチキャストアドレスやその他サイトローカルマルチキャストアドレス、オーガナイゼーションローカルマルチキャストアドレス、グローバルアドレスなどの設定用マルチキャストアドレスを格納するものでもよい。これによりリンクローカルだけではなく、リングネットワークを構成する全てのルータに対しトンネル終端検索パケットを送信することができる点で有効である。なお、設定用アドミニストレイティブローカルマルチキャストアドレスなどは、予めリングネットワークを構成するルータに設定されているものとする。
この結果、本発明のIPネットワークシステムおよびトンネリング装置(または同等の機能を有するルータ)は、リングネットワークにルータが追加されたとき、または既に参加しているルータを再起動したときでも、トンネル終端となるルータを把握できる。
<<ルータの追加と再起動>>
次に、本発明に係るIPネットワークに、新たにリングにルータを追加したとき、またはすでに参加しているルータを再起動したときの動作について説明する。以下、図1のルータ14を例に説明する。
(1)
ルータ14は、ネットワークA、Bそれぞれに図25に示す方向検索パケットを送信する。
(2)
方向検索パケットを受信した同一リンク上の各ルータは、方向検索パケット中のリングIDと、記憶部に記憶されているリングIDとを比較し、自分の参加しているリングIDと一致していれば、図26のような方向設定パケットをルータ14に送信する。ここでの方向設定パケットの各フィールドは次のように構成される。
方向設定パケットは、
IPv6ヘッダに
送信元のIPアドレスが格納される「始点IPアドレス」、方向検索パケットを送信した送信元機器(たとえばルータ14)のアドレスが格納される「終点IPアドレス」、
ペイロードに
方向設定を示すタイプ情報が格納される「メッセージタイプ」、方向検索パケットで指定されたリングネットワークの識別情報が格納される「リングID」、ルータの転送情報格納部内の「受信したホップ数(IF-1用)」「受信したホップ数(IF-2用)」の値を合計したものであってリングネットワークを構成するルータ数が格納される「リング内ルータ数」、ルータの問い合わせを受けたインタフェースの該当リングIDにおけるインタフェース名(IF-RIGHTまたはIF-LEFT)が格納される「インタフェース名」、このインタフェース名で指定したインタフェースのリンクローカルアドレスが格納される「アドレス」等のフィールドを有している。
(3)
方向設定パケットを受け取ったルータ14は、IF-RIGHTとして通知されたインタフェースのアドレスを転送情報格納領域の左回りパケット転送アドレスに、IF-LEFTとして通知されたインタフェースのアドレスを右回りパケット転送先アドレスに格納する。
(4)
次に、ルータ14が本発明のトンネリング装置の機能を有するものであれば、ルータ14は上述の<<トンネル検索>>を実行して、近隣のユニキャスト用のトンネル終端機器を検索する。
(5)
また、ルータ14が本発明のトンネリング装置の機能を有するものであれば、図29のマルチキャストリスナ検索パケットを送信してマルチキャストリスナの検索を行う。詳細は後述の<<マルチキャストリスナ検索>>に記載する。
<<トンネリング装置の追加と再起動>>
本発明に係るIPネットワークに、新たにトンネリング装置が追加したとき、またはすでに参加しているトンネリング装置を再起動するときの動作は、上述の<<ルータの追加と再起動>>で説明した動作とほぼ同様のものであるので説明を省略する。なお、トンネリング装置とルータとの主な相違点としては保有するインタフェース数の違いであり、トンネリング装置では方向検索パケット・トンネリング終端広告パケットを1つのインタフェースからリングネットワーク(右回り転送先であるルータのIF−LEFT宛)に送信する。
<<マルチキャストリスナ検索>>
本発明のIPネットワークシステムに、トンネリング装置を新たに追加したとき、またはすでに参加しているトンネリング装置を再起動したときにおける、トンネリング装置のマルチキャストリスナの検索動作を説明する。以下図1のトンネリング装置12を例に説明する。なお、トンネリング装置12は、上述の<<トンネリング装置の追加と再起動>>の(1)〜(6)の処理を既に終えているものとする。
(1)
トンネリング装置12は、リングに接続されているネットワーク等に図29に示すマルチキャストリスナ検索パケットを送信する。(なおリング内のルータにおいても同様の動作を行う。この場合リング内のルータは検索パケットを右回り転送先であるIF−RIGHTに送信する。)
図29はマルチキャストリスナ検索パケットフォーマットの一例である。マルチキャストリスナ検索パケットの各フィールドは次のようになる。
マルチキャストリスナ検索パケットは、図29に示すようにIPv6ヘッダ、ペイロードなどの各フィールドを有し、IPv6ヘッダに送信元のIPアドレスが格納される「始点IPアドレス」、設定用リンクローカルマルチキャストアドレスが格納される「終点IPアドレス」、ペイロードにはマルチキャストリスナ検索を示すタイプ情報が格納される「メッセージタイプ」、リングネットワークの識別情報でありルータが参加するリングネットワークのIDを格納する「リングID」、本マルチキャストリスナ検索パケットを作成したルータのIF−RIGHTアドレスを格納した「リクエスト元IPアドレス」等のフィールドを有している。
本マルチキャストリスナ検索パケットをIF−LEFTで受信したリングルータ(たとえばルータ13)は、IF−RIGHTを介してルータ14に転送する。なお、ルータはリクエスト元IPアドレスと同じプレフィックスのリンクには本マルチキャストリスナ検索パケットを転送しない。
(2)
トンネリング装置16は、ルータ14などを介してマルチキャストリスナ検索パケットを受信した場合、図30に示すマルチキャストリスナ広告パケットを送信する。図30はマルチキャストリスナ広告パケットフォーマットの一例である。マルチキャストリスナ広告パケットの各フィールドは次のようになる。
マルチキャストリスナ広告パケットは、図30に示すようにIPv6ヘッダ、ホップバイホップオプションヘッダ、ペイロードなどの各フィールドを有し、
IPv6ヘッダに、
送信元のIPアドレスが格納される「始点IPアドレス」、
トンネリング装置16のアドレスまたは受信したマルチキャストリスナ検索パケットの「リクエスト元IPアドレス」が格納される「終点IPアドレス」、
ホップバイホップオプションヘッダに、
リングネットワークにおける右回り方向や左回り方向を格納する「経路方向」と、リングネットワークの識別子を格納する「リングID」フィールド、
ペイロードに、
マルチキャストリスナ広告を示すタイプ情報が格納される「メッセージタイプ」、
リングネットワークの識別情報を格納する「リングID」、
リング内における本メッセージが転送されるべきリングルータの数(または各ルータの転送情報格納領域のリング内ルータ数の値)である「ホップ数」、
トンネルの終端であるトンネリング装置の背後にあるネットワークに転送すべきマルチキャスト情報を格納する複数の「マルチキャストアドレス情報」
等のフィールドを有している。
また、この複数の「マルチキャストアドレス情報」のフィールドに、
このメッセージ(マルチキャストリスナ広告)に含まれるマルチキャストの数が格納される「エントリ数」、
SSM(Source-Specific-Multicast)の有効・無効を示すマルチキャストタイプ情報(たとえば、SSM:1、非SSM:0)が格納される「マルチキャストタイプ」、
対象となるマルチキャストアドレスが格納される「終点マルチキャストアドレス」、
SSMの場合は対象となるマルチキャストパケットの送信元のアドレス、非SSMの場合はanyが格納される「始点アドレス」
等のフィールドをそれぞれ有している。
なお、リングルータ(例:ルータ3)がトンネルの終端となっている場合には、上述と同じように、マルチキャストリスナ広告パケットを送信するものでもよい。なお、本マルチキャストリスナ広告パケットは、トンネリング装置により定期的に送られる必要があるが、この場合、宛先は設定用リンクローカルマルチキャストアドレスとなる。またこのときホップバイホップオプションヘッダは不要である。宛先が設定用リンクローカルマルチキャストアドレスのとき、本メッセージをIF−LEFTで受信したリングルータは、IF−RIGHTに転送する。なお、ルータはリクエスト元IPアドレスと同じプレフィックスのリンクには本マルチキャストリスナ広告パケットを転送しない。
(3)
マルチキャストリスナ広告パケットを受け取ったトンネリング装置12は、その広告パケットに含まれる全てのマルチキャストアドレス情報を保持する。ただし、SSMが1(SSMが有効である)のマルチキャスト情報に関しては、該当エントリの始点アドレスが、トンネリング装置1の背後のネットワークに存在する場合以外は保持する必要はない。
また、トンネリング装置12は、自分がリングネットワークに送信すべきマルチキャストアドレスを、転送対象マルチキャスト情報格納部1231に保持する。この中の各エントリは有効時間を持ち、一定時間該当エントリに対する広告がない場合は削除される。
また、トンネリング装置12は、自分の背後にいるマルチキャストリスナがジョインしているマルチキャストアドレスは、MLDv2のような他の仕組みで作成されたリストを利用することで管理できる。このようなテーブルと、上記マルチキャストリスナ広告パケットの内容は同期する必要がある。
なお、トンネリング装置12の転送対象マルチキャスト情報格納部1231の各フィールドの説明は、上述の通りである(図6)のでここでの説明は省略する。
また、<<マルチキャストリスナ検索>>における上述の実施例では、トンネリング装置は、設定用リンクローカルマルチキャストアドレスを「終点IPアドレス」として格納しているマルチキャストリスナ検索パケットを送信するとして説明しているが、特にこれに限定するものではなく、終点IPアドレスこれによりリンクローカルだけではなく、リングネットワークを構成する全てのルータに対しトンネル終端検索パケットを送信することができる点で有効である。なお、設定用アドミニストレイティブローカルマルチキャストアドレスは、予めリングネットワークを構成するルータに設定されているものとする。
この結果、本発明のIPネットワークシステムは、新たにトンネリング装置(または同等の機能を有するルータ)が追加されたとき、または既に参加しているトンネリング装置を再起動したときでも、マルチキャストリスナの検索を行い、自分がリングネットワークに送信すべきマルチキャストアドレスを把握できる。また、送信元ホストから送信先ホストへのパケットをリングネットワークのいずれかの経路に障害が発生しても確実に送信先に到達させることができる。
なお、上記実施例では、ルータ13〜15がリングネットワークを構成しているが、特にこれに限定するものではなく、複数のルータが複数のリングネットワークを構成するものであってもよい。
また、上記実施例では、トンネリング装置12、16が各ホストから受信したパケットをカプセル化してトンネルパケットを生成し各ルータに転送し、各ルータから受信したトンネルパケットをデカプセル化してカプセル化前のパケットを再生して送信先ホストに転送しているが、特にこれに限定するものではなく、各ホスト、各ルータやルーティング機能を有する中継機器がトンネリング装置の機能を有するものであっても構わない。
たとえば、リングネットワークを構成する各ルータがトンネリング装置の機能を有する場合は、送信元ホストに接続しているルータは、送信元ホストから受信したパケットをカプセル化してトンネルパケットを生成するとともに複製し、この複製したトンネルパケットにリングネットワークの右回り方向および左回り方向を示す転送方向を付加して、リングネットワークの右回りおよび左回り経路に送信する。
そして、送信先ホストに接続しているルータは、他のルータから受信したトンネルパケットをデカプセル化してカプセル化前のパケットを再生し、再生したパケットに含まれる送信先ホストのネットワークアドレスに基づき、この再生したパケットを、再生したパケットの送信先ホストに転送する。
また、各ホストがトンネリング装置の機能を有する場合は、送信元ホストは、送信先ホスト宛のパケットをカプセル化してトンネルパケットを生成するとともに複製し、この複製したトンネルパケットにリングネットワークの右回り方向および左回り方向を示す転送方向情報を付加して、リングネットワークの右回りおよび左回り経路に送信する。
そして、送信先ホストは、各ルータから受信したトンネルパケットをデカプセル化してカプセル化前のパケットを再生し、再生したパケットに含まれる送信先ホストのネットワークアドレスに基づき、再生したパケットを送信先ホストに転送する。
また、上記実施例では、ホスト11とホスト17とのパケット通信はトンネリング装置12、16によるトンネリング通信を利用して行われていると説明しているが、送信元ホストからリングネットワークの右回りおよび左回り経路を介して送信先ホストにそれぞれ送信することが可能であればトンネリング装置を設置せずトンネリング通信を利用しないものであってもよい。
たとえば、送信元ホストは転送方向、リングIDやIDを示すホップバイホップオプションヘッダを含むIPv6ヘッダを自ら付加してパケットを送信するため、ルータなどの各中継機器は、送信元ホストからパケットを受信した場合は、受信したパケットを解析し、受信したパケットに含まれる転送方向情報と送信先ホストのネットワークアドレスに基づき、受信したパケットの転送方向情報が右回り方向の場合は自機と右回り方向に接続されている他の中継機器もしくは送信先ホストにパケットを転送し、受信したパケットの転送方向情報が左回り方向の場合は自機と左回り方向に接続されている他の中継機器もしくは送信先ホストにパケットを転送する。
また、上記実施例では、ホスト11とホスト17とがルータ13〜15によって構成されるリングネットワークを介してパケット通信を行うものとして説明しているが、特にこれに限定するものではなく、2個以上のホストが2個以上のリングネットワークを介してそれぞれパケット通信を行うものであってもよい。
また、上記実施例では、トンネリング装置12、16がリングネットワークを介してトンネリング通信を行うものとして説明しているが、特にこれに限定するものではなく、2個以上のトンネリング装置が2個以上のリングネットワークを介してそれぞれトンネリング通信を行うものであってもよい。
また、本発明におけるパケットは、RFC2460(Internet Protocol Version 6(IPv6) Specification)で規定されているIPv6ヘッダ、ホップバイホップオプションヘッダ、宛先オプションヘッダを使用するものでよい。
以上説明したように、本発明によれば、いずれかの経路に障害が発生しても確実にパケットが到達するIPネットワークシステムを実現できるとともに、各ルータはリングネットワーク内で右回り方向および左回り方向などの転送方向を自動的に把握でき、トンネリング装置は右回りパケット転送先、左回りパケット転送先のアドレスを自動的に取得することができる。