以下、本発明の実施の形態を図面を参照して説明する。
実施の形態1.
図1は、本発明による通信システムの第1の実施の形態を示す説明図である。第1の実施の形態の通信システムは、それぞれRPRノードを含むRPRネットワーク10およびRPRネットワーク20を備える。既に述べたように、RPRネットワークは、RPRが適用されたネットワークシステムである。
RPRノードは、“IEEE Standards 802.17”に準拠して動作するノードである。本発明の通信システムが備えるRPRノード(図1に示す例ではRPRノード100〜170,200〜270)は、“IEEE Standards 802.17”に準拠して動作するだけでなく、他の動作(本発明の目的を実現するための動作)も行う。
RPRネットワーク10,20は、インタリンク420,430,440を介して接続されている。インタリンクは、通信システムが備える異なるネットワーク(本例ではネットワーク10,20)内のノード間を接続するリンクである。
第1の実施の形態の各RPRノードは、それぞれ3つのポートP1,P2,P3を有する。ポートP1,P2は、RPRフレームを送受信するためのポートである。各RPRノード100〜170,200〜270は、隣接するRPRノードに対し、ポートP1,P2を用いてRPRフレームを送受信する。ポートP3は、そのノードの配下に収容する端末との間でイーサネットフレームを送受信するためのポートである。イーサネットフレームは、本発明における端末フレームに対応する通信フレームである。
RPRネットワーク10,20を接続するインタリンク420は、RPRノード100のポートP3と、RPRノード200のポートP3との間に設けられる。同様に、インタリンク430は、RPRノード110のポートP3と、RPRノード270のポートP3との間に設けられる。また、インタリンク440は、RPRノード160のポートP3と、RPRノード230のポートP3との間に設けられる。以降の説明において、インタリンクの両端に配置されたノードを「インタリンク接続ノード」と記す。図1に示す例では、RPRノード100,200、RPRノード110,270、RPRノード160,230がインタリンク接続ノードである。
RPRネットワーク10に属するRPRノード100,110,160と、RPRネットワーク20に属するRPRノード200,270,230とは、インタリンク420,430,440によって、それぞれ一対一に接続される。
なお、RPRネットワーク10のインタリンク接続ノード100,110,160にとっては、それぞれ、RPRネットワーク20のインタリンク接続ノード200,270,230が、配下の端末に相当する。同様に、RPRネットワーク20のインタリンク接続ノード200,270,230にとっては、それぞれ、RPRネットワーク10のインタリンク接続ノード100,110,160が、配下の端末に相当する。
図1では図示を省略しているが、インタリンク接続ノードであるRPRノード100、110、160、200、230、270を除く各RPRノード120,130,140,150,170,210,220,240,250,260のポート3には、図19に示すRPRネットワークと同様に、配下の端末が1台収容されているものとする。
インタリンク接続ノード以外の各RPRノード120,130,140,150,170,210,220,240,250,260の配下に収容されている端末に、別のノードまたは他のネットワークが接続されていてもよい。ただし、その場合、配下の端末間でループが形成されると、そのループに起因してブロードキャストストームが生じることにより、通信が不安定になる等の問題が生じる。よって、インタリンク接続ノード以外の各RPRノードの配下の端末が、相互間でループを形成する構成は、避けることが望ましい。
図2は、不適切な端末の接続態様の例を示す説明図である。図2に示すように、RPRノード130に端末71が接続され、RPRノード120に端末72が接続されているとする。また、RPRノード260に端末73が接続され、さらに端末73に端末74が接続されているとする。また、RPRノード250に端末75が接続され、端末75に端末76が接続され、さらに端末76に端末77が接続されているとする。また、端末73と端末76が接続されているとする。図2に示す接続態様では、インタリンク接続ノード以外のRPRノード250,260および端末73,76を含むループが形成される。すると、ブロードキャストストームが生じることがある。また、端末71,72間の通信が可能であったとしても、ループに含まれるRPRノード260等を介した端末74および端末72間の通信は行えない等、通信が不安定になるという問題が生じる。よって、図2に例示するような、RPRノード250,260および端末73,76を含むループの形成は望ましくない。
図1に示す通信システムにおいて、同一のRPRネットワークに属するRPRノード間では、RPRフレームを送受信する。RPRフレームは、本発明におけるシステムフレームに対応する通信フレームである。RPRノードとその配下に収容される端末との間では、イーサネットフレームを送受信する。また、異なるRPRネットワークに属するインタリンク接続ノード間では、イーサネットフレームを送受信する。RPRフレームは、ペイロードにイーサネットフレームを格納してカプセル化したフレームである。RPRフレームのヘッダには、送信元および宛先のアドレスやTTL(Time to Live)が含まれる。RPRフレームには、送信元および送信先のアドレスとして、RPRノードのアドレス、ブロードキャスト送信を示すアドレス、あるいは、マルチキャスト送信を示すアドレスが格納される。
次に、RPRノードの構成について説明する。図3は、図1に示す通信システムが備えるRPRノードの構成例を示すブロック図である。ここでは、図1に示すRPRノード100を例に説明するが、他のRPRノード110〜170およびRPRノード200〜270の構成も、RPRノード100の構成と同様である。
図3に示すように、RPRノード100は、入力ポート500−1〜−3と、フレーム解析部510−1,−2と、RPRフレーム生成部520と、RPRスイッチ処理部530と、FDB540と、FDB管理部550と、TDB(Topology DataBase)560と、イーサネットフレーム抽出部570と、出力ポート580−1〜−3と、インタリンク接続ノードグループテーブル590と、アドレスマッピングテーブル600と、アドレスマッピングテーブル管理部610と、ポート状態監視部620と、MACアドレス管理テーブル630とを備える。
RPRノード100の入力ポート500−1〜−3は、図1に示すRPRノード100のポートP1〜P3の受信側に対応するポートである。入力ポート500−1,−2は、隣接するRPRノードから送信されるRPRフレームを受信するポートである。また、入力ポート500−3は、配下の端末から送信されるイーサネットフレームを受信するポートである。
本実施形態のRPRノード100の入力ポート500−1は、図1において時計回り方向に隣接するRPRノード110の出力ポート580−2から送信されるRPRフレームを受信する。
また、RPRノード100の入力ポート500−2は、反時計回り方向に隣接するRPRノード170の出力ポート580−1から送信されるRPRフレームを受信する。
また、RPRノード100の入力ポート500−3は、配下の端末から送信されるイーサネットフレームを受信するポートである。RPRノード100はインタリンク接続ノードであり、RPRノード100の配下の端末は、RPRネットワーク20に属するRPRノード200である。従って、RPRノード100の入力ポート500−3は、RPRノード200から送信されるイーサネットフレームを受信する。また、例えば、RPRノード120の入力ポート500−3は、配下の端末(図示せず。)から送信されるイーサネットフレームを受信する。
RPRノード100の出力ポート580−1〜−3は、図1に示すRPRノード100のポートP1〜P3における送信側に対応するポート(フレームを送信するポート)である。出力ポート500−1,2は、隣接するRPRノードにRPRフレームを送信するポートである。また、出力ポート500−3は、配下の端末にイーサネットフレームを送信するポートである。
RPRノード100の出力ポート580−1は、図1の時計回り方向に隣接するRPRノード110の入力ポート500−2にRPRフレームを送信する。
また、RPRノード100の出力ポート580−2は、反時計回り方向に隣接するRPRノード170の入力ポート500−1にRPRフレームを送信する。
また、出力ポート580−3は、配下の端末にイーサネットフレームを送信するポートである。例えば、RPRノード100の出力ポート580−3は、配下の端末であるRPRノード200にイーサネットフレームを送信する。また、例えば、RPRノード120の出力ポート580−3は、配下の端末(図示せず。)にイーサネットフレームを送信する。
フレーム解析部510−1,510−2は、それぞれ入力ポート500−1,500−2に対応する。フレーム解析部510−1,510−2には、それぞれ対応する入力ポートからRPRフレームが入力される。そして、各フレーム解析部510−1,510−2は、特殊RPRフレームをアドレスマッピングテーブル管理部600に送り、特殊RPRフレーム以外のRPRフレームをRPRスイッチ処理部530に送る。
特殊RPRフレームとは、アドレスマッピングテーブル600に記憶されているアドレス(MACアドレス)の削除あるいは追加を指示するRPRフレームまたは、以下に説明するRPRフレームである。
同一のRPRネットワークに属するインタリンク接続ノードは、グループ(「インタリンク接続ノードグループ」と呼ぶ。)にまとめられる。ブロードキャスト送信されたRPRフレーム、あるいは、そのグループに属する各RPRノードにマルチキャスト送信されたRPRフレームに格納されたイーサネットフレームは、グループに属するインタリンク接続ノードのうちいずれか一つによって、他のRPRネットワークに送信される。このイーサネットフレームを他のRPRネットワークに送信するインタリンク接続ノードおよびその判定基準の変更を指示するRPRフレームも特殊RPRフレームに該当する。
特殊RPRフレームは、制御用フレームの一種であるが、標準化文書(非特許文献1)には記載されていない制御用フレームである。
RPRフレーム生成部520には、入力ポート500−3からイーサネットフレームが入力される。そして、RPRフレーム生成部520は、入力されたイーサネットフレームをカプセル化することにより、RPRフレームを生成する。
RPRスイッチ処理部530は、“IEEE Standards 802.17”において定義されるRPRに関する処理を行う。
RPRスイッチ処理部530が行う処理の例として、隣接するRPRノードから受信したRPRフレームの転送、Topology Discovery ProtocolによるRPRネットワークのトポロジ情報の管理、FairnessによるRPRネットワーク上のトラフィックの通信帯域の動的制御、OAM(Operations, Administration, Maintenance)によるRPRネットワークの管理等がある。
以降の説明では、RPRスイッチ処理部530の処理の詳細については、本発明によるノードの動作に深く関わる動作を除き、説明を省略する。
FDB540は、端末のMACアドレスとRPRノードのMACアドレスとの対応関係、及び、端末のMACアドレスとインタリンク接続ノードグループに割り当てられた仮想MACアドレスとの対応関係を記憶するデータベースである。
FDB540には、端末のMACアドレスとRPRノードのMACアドレスとの対応関係が、後述のFDB管理部550により登録される。また、端末のMACアドレスとインタリンク接続ノードグループに割り当てられた仮想MACアドレスとの対応関係もFDB管理部550により登録される。データフレームを送受信する過程で、このような対応関係をFDB540に登録していく処理を、MACアドレス学習と呼ぶ。
なお、インタリンク接続ノードグループとは、同一のRPRネットワークに属するインタリンク接続ノードのうち、他の共通のRPRネットワークまたは端末と接続されるRPRノードのグループである。例えば、図1に示すRPRネットワーク10では、他の共通のRPRネットワークとなるRPRネットワーク20に接続されるインタリンク接続ノード100,110,160のグループが、インタリンク接続ノードグループとなる。同様に、インタリンク接続ノード200,270,230のグループがインタリンク接続ノードグループとなる。また、インタリンク接続ノードグループには、RPRノードと同様にMACアドレスが割り当てられる。仮想MACアドレスとは、インタリンク接続ノードグループに割り当てられたMACアドレスである。
本発明では、インタリンク接続ノードグループに仮想MACアドレスを割り当て、複数のインタリンク接続ノードを1台のインタリンク接続ノードに仮想化することで、正常時はインタリンクの通信帯域を増大させる。そして、障害発生時には、正常なインタリンクを用いてフレームを転送することにより、ネットワーク間の通信を続行可能とする。
図4は、RPRノード100のFDB540に登録された対応関係の例を示す説明図である。図4における例えば上から2段目の登録情報には、RPRノード130の配下に接続される端末のMACアドレスと、RPRノード130のMACアドレスとが対応付けられている。RPRノード100は、RPRノード130の配下に接続される端末のMACアドレスを宛先とするイーサネットフレームを受信し、そのイーサネットフレームをカプセル化してRPRフレームを生成するとき、RPRノード130のMACアドレスをRPRフレームの宛先MACアドレスとして記述する。
また、図4では示していないが、端末のMACアドレスと、仮想MACアドレスとが対応付けられてFDB540に登録されてもよい。例えば、RPRネットワーク20に属するRPRノードのFDB540に、RPRネットワーク10に属するRPRノード140の配下の端末のMACアドレスと、RPRネットワーク20のインタリンク接続ノードグループに割り当てられた仮想MACアドレスとの対応関係を登録するという例である。この例において、RPRネットワーク20に属するRPRノードが、自ノード配下の端末からのイーサネットフレームをRPRノード140配下の端末に転送するとする。この場合、RPRネットワーク20に属するRPRノードは、RPRノード140配下の端末のMACアドレスに対応付けられた仮想アドレスを参照して、RPRフレームの宛先MACアドレスを決定する。
FDB管理部550は、自ノード(そのFDB管理部550を備えるRPRノード)の各種状態、または、自ノードが備える他の構成要素からの要求に従って、FDB540に登録された内容を更新する。例えば、RPRノード100のFDB管理部550は、イーサネットフレーム抽出部570からの要求により、端末のMACアドレスとその端末を収容しているRPRノードのMACアドレスとの対応関係、または、端末のMACアドレスとインタリンク接続ノードグループに対して割り当てられる仮想MACアドレスとの対応関係をFDB540に登録する。具体的には、FDB管理部550は、自ノードが受信したRPRフレームの送信元MACアドレス(RPRノードのMACアドレスあるいは仮想MACアドレス)と、そのRPRフレームにカプセル化されたイーサネットフレームの送信元MACアドレス(端末のMACアドレス)との対応関係をFDB540に登録する。また、RPRノード100が備える他の構成要素からの要求に従って、FDB540の内容を更新する。
TDB560は、自ノード(そのTDB560を備えるRPRノード)が属するRPRネットワークのトポロジの状態、および、障害の発生状況等の情報を管理するためのデータベースである。例えば、RPRノード100のTDB560は、RPRネットワーク10のトポロジの状態等を管理するためのデータベースである。
TDB560に登録されるRPRネットワークに関する情報は、Topology Discovery Protocolに従うRPRスイッチ処理部530によって管理される。
図5は、RPRノード100のTDB560に登録された情報の例を示す説明図である。図5に示すTDB560の例では、RPRネットワーク10に属する各RPRノードのポートP1,P2の状態がそれぞれ有効であるか無効であるかを示す情報が登録されている。有効とは、ポートを運用可能な状態を意味し、無効とは、ポートを運用できない状態を意味する。また、TDB560には、RPRノードのノード識別子に対応付けられて、ポートP1,P2の状態を示す情報が登録される。そして、RPRノードのノード識別子として、RPRノードのMACアドレスが用いられる。
図5に示すTDBでは、例えば、RPRノード140のポートP1のポート状態は有効であり、また、RPRノード140のポートP2のポート状態は無効であることが示されている。これは、RPRノード140は、ポートP1でRPRフレームを送受信でき、かつ、ポートP2でRPRフレームを送受信できないことを示唆する。
また、例えば、図5に示す例では、RPRノード150のポートP1のポート状態が無効であることが示されている。この情報から、何らかの理由により、RPRノード140とRPRノード150とを接続するリンクに障害が発生していることがわかる。
他のノードのポート状態は、以下のように登録される。各RPRノードは、RPRネットワークのトポロジを管理するために、ポートP1,P2の状態を格納したTPフレーム(Topology and Protection frame)を一定の時間間隔でブロードキャスト送信する。RPRスイッチ処理部530は、各RPRノードから送信されるTPフレームを参照して、TDB560に登録されたRPRノードのポートP1,P2の状態を更新する。また、TDB560に登録された自ノードのポートP1,P2の状態は、ポート状態監視部620によって更新される。すなわち、ポート状態監視部620が、自ノードのポートP1,P2の状態を監視し、その状態をTDB560に登録し更新する。
なお、図5に示す例では、説明を簡単にするため、RPRノードのポート状態が有効か無効かを示す情報のみを示しているが、“IEEE Standards 802.17”で定義されているTDBでは、RPRネットワークを構成するRPRノードに関する様々な情報が管理される。TDB560には、図5には図示されていないこれらの情報についても登録される。
イーサネットフレーム抽出部570には、RPRスイッチ処理部530からRPRフレームが供給される。イーサネットフレーム抽出部570は、そのRPRフレームのペイロードに格納されたイーサネットフレームを抽出する。
インタリンク接続ノードグループテーブル590は、自ノード(そのインタリンク接続ノードグループテーブル590を備えるRPRノード)が属するRPRネットワークに属するインタリンク接続ノードのうち、他の共通のネットワークシステムまたは端末と接続されるRPRノードを、1つのインタリンク接続ノードグループとして記憶するテーブルである。図1に示す通信システムの場合、RPRネットワーク10に属するインタリンク接続ノードのうち、他の共通のRPRネットワーク20と接続されるRPRノードは、RPRノード100,110,160である。従って、RPRネットワーク10に属する各RPRノードのインタリンク接続ノードグループテーブル590には、RPRノード100,110,160からなるグループが1つのインタリンク接続ノードグループとして登録される。
図6は、インタリンク接続ノードグループテーブル590に登録される情報の例を示す説明図である。インタリンク接続ノードグループテーブル590には、インタリンク接続ノードグループの名称と、そのグループの識別子と、そのグループに属する各インタリンク接続ノードのMACアドレスとが対応付けて登録される。インタリンク接続ノードグループの識別子には、そのインタリンク接続ノードグループに割り当てられた仮想MACアドレスが用いられる。図6に示す例では、インタリンク接続ノードグループの名称として“A”が登録されている。そして、その名称“A”に対応付けて、インタリンク接続ノードグループ“A”に割り当てられた仮想MACアドレス“a”と、インタリンク接続ノードグループ“A”に属する各インタリンク接続ノード100,110,160のMACアドレスが登録されている。
各RPRノードは、自ノードのMACアドレスがインタリンク接続ノードグループテーブル590に登録されているか否かにより、自ノードがインタリンク接続ノードであるか否かを判定することができる。
なお、インタリンク接続ノードグループテーブル590には複数のインタリンク接続ノードグループが登録されてもよい。ただし、ループの構成となることを避けるために、異なるインタリンク接続ノードグループに属するRPRノードは、異なるRPRネットワークに接続されているという条件を満たしていなければならない。すなわち、1つのRPRノードが複数のインタリンク接続ノードグループに同時に属することがあってはならない。
インタリンク接続ノードグループの名称、仮想MACアドレス、各インタリンク接続ノードのMACアドレスのインタリンク接続ノードグループテーブル590への登録は、通信システムの管理者によって、管理インタフェースを介して行われる。管理インタフェースは、インタリンク接続ノードグループテーブル590やMACアドレス管理テーブル630に登録される情報が入力されるインタフェースである。
アドレスマッピングテーブル600は、インタリンク接続ノードグループテーブル590に登録されているインタリンク接続ノードグループに割り当てられた仮想MACアドレスと、そのインタリンク接続ノードグループに属するRPRノードのMACアドレスとの対応関係を記憶するテーブルである。
インタリンク接続ノードグループテーブル590にMACアドレスが登録されたRPRノードは、そのMACアドレスがアドレスマッピングテーブル600に登録されることにより、フレームの転送処理時に、そのインタリンク接続ノードグループに属するRPRノードであると認識される。
図7は、アドレスマッピングテーブル600に登録される情報の例を示す説明図である。図7に示す例では、インタリンク接続ノードグループの仮想MACアドレス“a”と、そのインタリンク接続ノードグループに属するRPRノード100、110、160のMACアドレスとの対応付けが登録されている。
管理者によってインタリンク接続ノードグループテーブル590への登録が行われると、アドレスマッピングテーブル管理部610が、その登録情報をインタリンク接続ノードグループテーブル590から読み込み、アドレスマッピングテーブルに登録する。従って、初期状態では、インタリンク接続ノードグループテーブル590及びアドレスマッピングテーブル600に登録されている仮想MACアドレスとインタリンク接続ノードグループに属する各RPRノードのMACアドレスとの対応関係は同一である。インタリンク接続ノードグループテーブル590に登録された情報は、管理者によって変更されない限り変更されることはない。一方、アドレスマッピングテーブル600に登録された情報は、通信システムの運用時における障害の発生あるいは障害からの復旧に応じて、アドレスマッピングテーブル管理部610によって変更される。
なお、インタリンク接続ノードグループテーブル590に登録される名称は、グループの識別のために通信システムの管理者が任意に設定する情報であり、実際のフレーム転送に用いられるわけではない。そのため、アドレスマッピングテーブル600に、インタリンク接続ノードグループの名称を登録しなくてよい。
アドレスマッピングテーブル管理部610は、アドレスマッピングテーブル600の内容を更新する。
アドレスマッピングテーブル管理部610は、インタリンク接続ノードグループテーブル590に登録されている情報の変更に伴ってアドレスマッピングテーブル600の内容を更新する。例えば、インタリンク接続ノードグループテーブル590の仮想MACアドレスに対応するインタリンク接続ノードのMACアドレスが、管理者によって追加登録されたとする。すると、アドレスマッピングテーブル管理部610は、インタリンク接続ノードグループテーブル590に追加登録されたインタリンク接続ノードのMACアドレスを、その仮想MACアドレスと対応付けてアドレスマッピングテーブル600に登録する。
その他、アドレスマッピングテーブル管理部610は、TDB560の登録内容の変更、及び、入力ポート500−3および出力ポート580−3の状態の変化に伴い、アドレスマッピングテーブル600の内容を更新する。
ポート状態監視部620は、自ノード(そのポート状態監視部620を備えるRPRノード)の入力ポート500−1〜−3および出力ポート580−1〜−3の状態を監視するとともに、その状態に従って自ノードのTDB560を更新する。
また、ポート状態監視部620は、自ノードの入力ポート500−1〜−3および出力ポート580−1〜−3の状態を、自ノードのアドレスマッピングテーブル管理部610に通知する。
MACアドレス管理テーブル630は、自ノード(そのMACアドレス管理テーブル630を備えるRPRノード)に対して割り当てられたMACアドレスを記憶するテーブルである。図8に、RPRノード100のMACアドレス管理テーブル630を示す。図8に示すように、RPRノード100のMACアドレス管理テーブル630は、自ノード(RPRノード100)のMACアドレスを記憶する。MACアドレス管理テーブル630へのMACアドレスの登録は、通信システムの管理者によって管理インタフェースを介して行われる。
MACアドレス管理テーブル630が記憶するMACアドレスは、RPRノードの他の構成要素によって参照される。少なくともRPRスイッチ処理部530およびアドレスマッピングテーブル管理部610は、MACアドレス管理テーブル630が記憶するMACアドレスを参照する。
次に、本実施形態の動作について説明する。まず、正常時の動作について説明する。具体的には、正常時に、端末間でインタリンク420,430,440のいずれか1つを介して、イーサネットフレームを送受信し合うときの動作について説明する。ここでは、RPRノード140の配下の端末(図1において図示せず。)およびRPRノード240の配下の端末(図1において図示せず。)とがフレームを送受信し合う場合を例に説明する。
また、以下の説明において、RPRノード140の配下の端末からRPRノード240の配下の端末へのフレーム転送は、FDB540がMACアドレス学習を行っていない場合の例である。また、その後に説明するRPRノード240の配下の端末からRPRノード140の配下の端末へのフレーム転送は、FDB540がMACアドレス学習を行っている場合の例である。
RPRノード140の配下の端末からRPRノード240の配下の端末へのフレーム転送を行う時点で、FDB540、インタリンク接続ノードグループテーブル590、およびアドレスマッピングテーブル600は、以下の状態になっているものとする。
RPRネットワーク10、20の全てのRPRノードのFDB540に情報が全く登録されていない、すなわち、全てのRPRノードのFDB540において、未だMACアドレス学習が行われていないものとする。
RPRネットワーク10に属する全てのRPRノードのインタリンク接続ノードグループテーブル590には、インタリンク接続ノードグループの名称“A”と、そのインタリンク接続ノードグループの仮想MACアドレス“a”と、そのインタリンク接続ノードグループに属するRPRノード100,110,160のMACアドレスとが対応付けられて登録されているものとする。
また、RPRネットワーク10に属する全てのRPRノードのアドレスマッピングテーブル600には、インタリンク接続ノードグループの仮想MACアドレス“a”と、そのインタリンク接続ノードグループに属する各RPRノード100,110,160のMACアドレスとが対応付けられて登録されているものとする。
同様に、RPRネットワーク20に属する全てのRPRノードのインタリンク接続ノードグループテーブル590には、インタリンク接続ノードグループの名称“B”と、そのインタリンク接続ノードグループの仮想MACアドレス“b”と、そのインタリンク接続ノードグループに属するRPRノード200,230,270のMACアドレスとが対応付けられて登録されているものとする。
また、RPRネットワーク20に属する全てのRPRノードのアドレスマッピングテーブル600には、インタリンク接続ノードグループの仮想MACアドレス“b”と、そのインタリンク接続ノードグループに属する各RPRノード200,230,270のMACアドレスとが対応付けられて登録されているものとする。
RPRノード140配下の端末からRPRノード240配下の端末へのイーサネットフレームの転送について説明する。RPRノード140配下の端末が、RPRノード140に対してイーサネットフレームを送信すると、そのイーサネットフレームが、RPRノード140の入力ポート500−3を介してRPRフレーム生成部520へ供給される。
RPRノード140のRPRフレーム生成部520は、イーサネットフレームの宛先MACアドレスをキーとしてFDB540を検索する。検索に成功した場合には、RPRフレーム生成部520は、イーサネットフレームをカプセル化し、検索結果となるMACアドレスを宛先MACアドレスとしたRPRフレームを生成する。
現時点では、RPRノード140のFDB540には情報が登録されていないため、RPRノード140のRPRフレーム生成部520は、イーサネットフレームの宛先MACアドレスに対応付けられたMACアドレスの検索に失敗する。
MACアドレスの検索に失敗した場合、RPRフレーム生成部520は、宛先MACアドレスとしてブロードキャスト用MACアドレスを設定し、かつ、送信元MACアドレスに自ノード(RPRノード140)のMACアドレスを設定し、かつ、ペイロードにイーサネットフレームを格納したRPRフレームを生成する。RPRフレーム生成部520は、自ノードのMACアドレスについては、MACアドレス管理テーブル630を参照することによって確認する。
RPRノード140のRPRスイッチ処理部530は、RPRフレーム生成部520が生成したRPRフレームの宛先MACアドレスがブロードキャスト用MACアドレスである場合、RPRフレームをブロードキャスト送信する。
具体的には、RPRノード140のRPRスイッチ処理部530は、RPRフレームのTTLフィールドに、RPRネットワーク10に属するRPRノードのノード数を格納した上で、出力ポート580−1または出力ポート580−2のいずれか一方から、そのRPRフレームを送信する。
あるいは、RPRスイッチ処理部530は、RPRフレームのTTLフィールドにRPRネットワーク10に属するノード数の2分の1の値を格納した上で、出力ポート580−1および出力ポート580−2の両方からRPRフレームを送信してもよい。
ここでは、前者の方法により、RPRノード140のRPRスイッチ処理部530が、ノード数を設定したRPRフレームを、隣接のRPRノード130へ繋がる出力ポート580−2から送信する場合を例にして説明する。
隣接のRPRノード130は、RPRノード140からのRPRフレームを入力ポート500−1から受信し、それをフレーム解析部510−1へ供給する。
RPRノード130のフレーム解析部510−1は、受信したRPRフレームがアドレスマッピングテーブル管理部590が特殊RPRフレームか否かを判断し、否の場合は、それをRPRスイッチ処理部530へ供給する。一方、受信したフレームが特殊RPRフレームであれば、それをアドレスマッピングテーブル管理部610へ供給する。本例でフレーム解析部510−1に入力されたRPRフレームは、イーサネットフレームをカプセル化したRPRフレームであり、特殊RPRフレームではない。従って、本例では、入力されたRPRフレームがRPRスイッチ処理部530へ供給される。
RPRスイッチ処理部530は、供給されたフレーム、すなわち宛先MACアドレスにブロードキャスト用MACアドレスが設定されたRPRフレームを受けると、以下のように動作する。
RPRノード130のRPRスイッチ処理部530は、MACアドレス管理テーブル630を参照することにより、RPRフレームの送信元MACアドレスが自ノードのMACアドレスか否かを判定する。その結果、送信元MACアドレスが自ノードのMACアドレスである場合、ループが形成されることによるブロードキャストストームの発生を防止するため、そのRPRフレームを廃棄する。本例では、RPRフレームの送信元MACアドレスは、RPRノード140のMACアドレスであるので、この廃棄処理は行われない。
また、RPRフレームの送信元MACアドレスが自ノードのMACアドレスでない場合、RPRスイッチ処理部530は、RPRフレームに格納されたTTLの値を「1」減算する。そして、減算後のTTLの値が「0」でなければ、そのRPRフレームを次のRPRノードに送信する。減算後のTTLの値が「0」であれば、RPRスイッチ処理部530は、そのRPRフレームを廃棄する。現時点では、RPRノード140で設定されたTTLの値を、RPRノード130のRPRスイッチ処理部530が「1」減算したとしても「0」にならない。よって、RPRノード130のRPRスイッチ処理部530は、RPRフレームを自ノードの出力ポート580−2からRPRノード120へ送信する。
一方、RPRノード130のRPRスイッチ処理部530は、RPRフレームの宛先MACアドレスがブロードキャスト用MACアドレスである場合、そのRPRフレームのコピーをイーサネットフレーム抽出部570へ供給する。
イーサネットフレーム抽出部570は、供給されたRPRフレームのペイロードに格納されているイーサネットフレームの送信元MACアドレス(RPRノード140配下の端末のMACアドレス)と、RPRフレームの送信元MACアドレス(RPRノード140のMACアドレス)との対応関係をFDB540に登録するようにFDB管理部550に要求する。また、イーサネットフレーム抽出部570は、RPRフレームのペイロードに格納されているイーサネットフレームを抽出し、それを自ノードの出力ポート580−3から自ノードの配下の端末に送信する。これにより、ブロードキャスト通信のイーサネットフレームが、まずはRPRノード130配下の端末へ送られる。
RPRノード130のFDB管理部550は、イーサネットフレーム抽出部570からの要求に従って、FDB540にMACアドレスの対応関係を登録する。本例では、RPRノード140配下の端末のMACアドレスと、RPRノード140のMACアドレスとの対応関係をFDB540に登録する。
なお、仮に、イーサネットフレーム抽出部570から要求された対応関係が既にFDB540に登録済みである場合、FDB管理部550は、イーサネットフレーム抽出部570からの要求を無視する、あるいは、既に登録されている情報に上書き処理してもよい。
以降、RPRネットワーク10に属し、かつ、インタリンク接続ノードでないRPRノード120,170,150は、上記のRPRノード130と同様に動作し、RPRフレームを次のRPRノードに転送し、かつ、そのRPRフレーム内のイーサネットフレームを各自の配下の端末へ送信する。
RPRノード140からブロードキャスト送信されたRPRフレームは、RPRノード130およびRPRノード120を経由して、インタリンク接続ノードであるRPRノード110に転送される。
次に、RPRネットワーク10のインタリンク接続ノードであるRPRノード100,110,160が、ブロードキャスト送信されたRPRフレームを転送する動作について説明する。ここでは、RPRノード110がRPRノード120から転送されてきたRPRフレームを受信した場合を例にして説明するが、RPRノード100,160の動作もRPRノード110と同様である。
RPRノード110がRPRフレームを転送する基本動作は、上述のRPRノード130のものと同様である。ここで、RPRノード140からブロードキャスト送信されたRPRフレームは、図1における反時計回りに、RPRノード130、120、110、100、170、160、150の順番で転送されると、RPRノード150にて、TTLの値が「0」となる。よって、このRPRフレームは、RPRノード150のRPRスイッチ処理部530によって廃棄される。
RPRフレームを自ノードの配下の端末へ転送する動作に関し、RPRノード110の動作は、上述のRPRノード130の動作とは異なる。RPRノード110の配下の端末とは、RPRネットワーク20に属するインタリンク接続ノード270を指す。RPRノード110は、ブロードキャスト送信されたRPRフレームを受信したとき、その中のイーサネットフレームをインタリンク接続ノード270へ送信するか否かを所定の条件に従い決定する。
図9に示すフローチャートを参照して、RPRノード110が配下の端末(270)へイーサネットフレームを送信する動作に関し説明する。RPRノード110のRPRスイッチ処理部530は、転送されてきたRPRフレームに格納されているイーサネットフレームを出力ポート580−3から送信するか否か、すなわち、インタリンク接続ノード270へ送信するか否かを後述するアルゴリズムに従って決定する(ステップS1)。
RPRノード110は、出力ポート580−3からイーサネットフレームを送信すると決定した場合(ステップS1:Yes)、RPRスイッチ処理部530が、そのRPRフレームをイーサネットフレーム抽出部570に供給する(ステップS2)。イーサネットフレーム抽出部570は、そのRPRフレームからイーサネットフレームを抽出し、また、FDB管理部550に対し、イーサネットフレームの送信元MACアドレスと、RPRフレームの送信元MACアドレスとの対応関係をFDB540に登録するよう指示する(ステップS3)。イーサネットフレーム抽出部570は、抽出したイーサネットフレームを自ノードの出力ポート580−3からインタリンク接続ノード270に送信する(ステップS4)。
一方、RPRノード110の出力ポート580−3からイーサネットフレームを送信しないと決定した場合(ステップS1:No)、RPRスイッチ処理部530は、RPRフレームをイーサネットフレーム抽出部570へ供給せず、また、MACアドレス学習を行わない。なお、MACアドレス学習は行ってもよいが、配下の端末へのイーサネットフレームの送信は行わない。
また、配下の端末に対しイーサネットフレームを送信しない場合であっても、次ホップに対するRPRフレームの転送は、RPRノード130の動作と同様の動作で実行する。
イーサネットフレームをインタリンク接続ノード270へ送信するか否かの判定に関するアルゴリズムとしては、そのイーサネットフレームを、同一のインタリンク接続ノードグループに属するインタリンク接続ノードのうちの何れか1つから送信されるよう制御するものを採用する。前述したように、RPRフレームは、RPRネットワーク10内で転送されることから、それに含まれるイーサネットフレームが複数のインタリンク接続ノードに届けられる。しかしながら、複数のインタリンク接続ノードのそれぞれがイーサネットフレームを送信すると、同一の宛先の複数のイーサネットフレームがRPRネットワーク20へ送られる。その結果、宛先の端末に同一内容のイーサネットフレームが複数回届けられることになる。よって、ブロードキャスト送信されたイーサネットフレームが、RPRネットワーク10からRPRネットワーク20へ送信される場合、そのイーサネットフレームをインタリンク接続ノード(100、110、160)の何れか1つから送信する。
そのようなアルゴリズムとして、例えば、フレームのヘッダまたはフレームのペイロード、あるいは、その双方の情報をパラメータとし、そのパラメータに応じて配下の端末にイーサネットフレームを送信するか否かを決定するというアルゴリズムを使用する。また、上記のようなパラメータを用いて行った所定の計算の結果に応じて、配下の端末にイーサネットフレームを送信するか否かを決定するというアルゴリズムであってもよい。ここで述べたフレームとは、RPRフレームであってもよいし、RPRフレーム内にカプセル化されているイーサネットフレームであってもよい。
上記のようなアルゴリズムで使用するパラメータとしては、例えば、イーサネットフレームの宛先MACアドレス、送信元MACアドレス、プライオリティ、VLAN ID、イーサタイプ、フレームのペイロードに格納されたIPパケットの宛先IPアドレス、送信元IPアドレス、さらに、そのIPパケットに格納されたTCPパケットの宛先TCPポート番号、送信元TCPポート番号等が挙げられる。ここに挙げた各パラメータは例示であり、フレームに含まれる他の情報をパラメータとしてもよい。
具体的な例を挙げると、インタリンク接続ノードグループに属する各RPRノード(100、110、160)に対し、イーサネットフレームを送信することを示すパラメータ値が重複しないように定めておけばよい。そして、受信したフレームのパラメータ値が、定められたパラメータ値に該当するならば、配下の端末にイーサネットフレームを送信すると決定すればよい。例えば、配下に送信すべきイーサネットフレームとして、RPRノード100に適用するアルゴリズムには、VLAN_IDが1〜1000であるイーサネットフレームを設定し、RPRノード110のアルゴリズムには、VLAN_IDが1001〜2000であるイーサネットフレームを設定し、RPRノード160は、VLAN_IDが1〜2000以外のイーサネットフレームを設定する。このアルゴリズムに従って、インタリンク接続ノードである各RPRノード100,110,160が判定を行うことにより、同一宛先のイーサネットフレームが複数のノードから送信されることを防止できる。また、イーサネットフレームのトラフィックをインタリンク420〜440に分散することができる。
また、障害の発生により、いずれかのインタリンク接続ノードが配下の端末にイーサネットフレームを送信できない状態となったときには、そのインタリンク接続ノードに定められたパラメータの値を、他のインタリンク接続ノードが引き継ぐようにしてもよい。例えば、配下の端末にイーサネットフレームを送信できない状態となったインタリンク接続ノードが、自ノードに定められたパラメータの値を他のイーサネットフレームに指示する特殊RPRフレームを送信し、その特殊RPRフレームを受信したインタリンク接続ノードが、そのパラメータ値を自ノードに設定する。
また、別の例を挙げると、インタリンク接続ノードグループに属するインタリンク接続ノードのうちの何れか一つのみが、イーサネットフレームを配下の端末に送信するように定めてもよい。この場合、各インタリンク接続ノードは、自ノードが配下の端末にイーサネットフレームを送信すべきか否かの情報を予め登録しておく。そして、各インタリンク接続ノードは、ブロードキャスト送信されたRPRフレームを受信したとき、予め登録した情報に基づいて、イーサネットフレームの送信の可否を決定する。また、イーサネットフレームを配下の端末に送信すべきインタリンク接続ノードに障害が発生したときには、配下の端末へのイーサネットフレーム送信を指示する特殊RPRフレームを、他のインタリンク接続ノードに送信する。そして、それ以降、そのインタリンク接続ノードが配下の端末へのイーサネットフレーム送信を行う。例えば、配下の端末へイーサネットフレームを送信すべきインタリンク接続ノードをRPRノード100としたケースにおいて、インタリンク420に障害が発生したとき、隣接のインタリンク接続ノードであるRPRノード110をRPRノード100の代替とすればよい。この場合、RPRノード100は、インタリンク420の障害を検出したとき、RPRフレーム中のイーサネットフレームを配下の端末に送信するよう指示する特殊RPRフレームを、RPRノード110に送信する。そして、この特殊RPRフレームを受信したRPRノード110が、ブロードキャスト送信されたRPRフレームを受信したときに、配下の端末(200)にイーサネットフレームを送信する。
このように、RPRノード100,110,160のいずれか一つが、ブロードキャスト送信されたRPRフレームからイーサネットフレームを抽出して、そのイーサネットフレームをインタリンク420,430,440のいずれかを介して、RPRネットワーク20に転送する。以下、RPRネットワーク10からRPRネットワーク20にイーサネットフレームが転送されてから、そのイーサネットフレームがRPRノード240の配下の端末に転送されるまでの動作について説明する。ここでは、RPRノード110が、RPRフレームに格納されたイーサネットフレームを、インタリンク430を介してRPRノード270に転送した場合を例にして説明する。
RPRノード270は、RPRノード110からのイーサネットフレームを入力ポート500−3で受信すると、それをRPRフレーム生成部520に供給する。
RPRフレーム生成部520は、イーサネットフレームの宛先MACアドレスをキーとしてFDB540を検索し、イーサネットフレームの宛先MACアドレスに対応付けられたMACアドレスを読み込む。仮に、検索に成功した場合は、イーサネットフレームをカプセル化し、読み込んだMACアドレスを宛先MACアドレスに設定することにより、RPRフレームを生成する。
現時点では、RPRノード270のFDB540には情報が全く登録されていないため、RPRノード270のRPRフレーム生成部520は、上記検索に失敗する。
MACアドレスの取得に失敗したことにより、RPRノード270のRPRフレーム生成部520は、宛先MACアドレスにブロードキャスト用MACアドレスを設定し、かつ、送信元MACアドレスにRPRノード270の属するインタリンク接続ノードグループ“B”に割り当てられたMACアドレス“b”を設定し、かつ、ペイロードにイーサネットフレームを格納することにより、RPRフレームを生成する。RPRフレーム生成部520は、アドレスマッピングテーブル600を参照して、自ノードのMACアドレスに対応付けられた仮想MACアドレス“b”を送信元MACアドレスとして用いる。RPRフレーム生成部520は、生成したRPRフレームをRPRスイッチ処理部530に供給する。
なお、送信元MACアドレスの設定に関し、既述したRPRノード140では自ノードのMACアドレスが設定されたのに対し、RPRノード270では、自ノードの属するインタリンク接続ノードグループの仮想MACアドレス(“b”)を送信元MACアドレスが設定される。これは、RPRノード140はインタリンク接続ノードグループに属さないノードであるのに対し、RPRノード270は、インタリンク接続ノードグループに属するノードであることに基づく。RPRフレーム生成部520は、RPRフレーム生成時に、自ノードのMACアドレスがアドレスマッピングテーブル600に登録されているか否かを判定することにより、自ノードがインタリンク接続ノードグループに属するか否かを判定する。
RPRノード270のRPRスイッチ処理部530は、送信すべきRPRフレームの宛先MACアドレスがブロードキャスト用MACアドレスである場合、そのRPRフレームをブロードキャスト送信する。この動作は、既に説明したRPRノード140のRPRスイッチ処理部530によるブロードキャスト送信と同様である。
RPRノード270がRPRフレームをブロードキャスト送信して以降、そのフレームをRPRネットワーク20に属する各RPRノードが転送する動作について説明する。以下、インタリンク接続ノードグループ“B”に属するRPRノードの場合と、そのグループに属さないRPRノードの場合とに分けて説明する。
インタリンク接続ノードグループ“B”に属するRPRノードは、このグループに属する他のRPRノードが送信元となってRPRネットワーク20にブロードキャスト送信したRPRフレームを受信した場合、以下のように動作する。このとき受信するRPRフレームとは、すなわち、上記グループ“B”の仮想MACアドレス“b”が送信元MACアドレスとして設定され、かつ、ブロードキャスト用MACアドレスが宛先MACアドレスとして設定されているRPRフレームを指す。フレーム解析部510−1(またはフレーム解析部510−2)は、入力された上記RPRフレームをRPRスイッチ処理部530に供給する。RPRスイッチ処理部530は、RPRフレームに格納されたTTLの値を「1」減算し、減算後のTTLの値が「0」でなければ、そのRPRフレームを次のRPRノードに送信する。次のノードとは、RPRフレームを受信したポートとは反対側に接続されているRPRノードである。一方、減算後のTTLの値が「0」であれば、RPRスイッチ処理部530は、そのRPRフレームを廃棄しイーサネットフレーム抽出部570に出力しない。従って、インタリンク接続ノードグループ“B”のRPRノードに送信されたRPRフレーム内のイーサネットフレームは、そのノードの配下の端末に送信されない。また、RPRフレームの送信元MACアドレスとして設定されている仮想MACアドレス(“b”)と、そのRPRフレーム内のイーサネットフレームの送信元MACアドレス(RPRノード140の配下の端末のMACアドレス)との対応関係をFDB540に登録することも行われない。
このような、インタリンク接続ノードグループ“B”に属するRPRノードの動作により、RPRネットワーク20に転送されたイーサネットフレームが、再びRPRネットワーク10に転送されることを防止することができる。従って、ブロードキャストストームによってネットワークが不安定になることを回避することができる。
インタリンク接続ノードグループ“B” に属するRPRノードが送信元となってRPRネットワーク20にブロードキャスト送信したRPRフレームを、このグループ“B”に属さないRPRノードが転送する動作は、前述したRPRネットワーク10におけるRPRノード130のそれと基本的には同様である。ただし、インタリンク接続ノードグループ“B”の場合、ブロードキャスト送信されたRPRフレームの送信元MACアドレスには、インタリンク接続ノードグループ“B”の仮想MACアドレス(“b”)が設定されている。従って、インタリンク接続ノードグループ“B”のノードのFDB管理部550は、FDB540にMACアドレスの対応関係を登録する際、この仮想MACアドレス(“b”)と、端末(RPRノード140配下の端末)のMACアドレスとの対応関係を登録する。このように、仮想MACアドレスと端末のMACアドレスとの対応関係を登録する点が、上述のインタリンク接続ノードグループ“A”の場合と異なる。
RPRネットワーク20に属する各RPRノードによる上記の転送動作により、RPRノード240が、ブロードキャスト送信されたRPRフレームを受信する。そして、RPRノード240は、自ノード配下の端末に、RPRフレームに格納されたイーサネットフレームを送信する。この結果、RPRネットワーク10のRPRノード140配下の端末から送信されたイーサネットフレームが、RPRネットワーク20のRPRノード240配下の端末に転送される。
以降では、上述のようにRPRノード140配下の端末からRPRノード240配下の端末へイーサネットフレームが転送されたことを前提として、RPRノード240配下の端末からRPRノード140配下の端末にイーサネットフレームを転送(返信)する場合の動作について説明する。
なお、上述の転送動作により、現時点では、RPRネットワーク10に属する全てのRPRノードのFDB540に、RPRノード140配下の端末のMACアドレスとRPRノード140のMACアドレスとの対応関係が登録されている。また、RPRネットワーク20に属し、かつ、インタリンク接続ノードでないRPRノードのFDB540には、RPRノード140配下の端末のMACアドレスと、インタリンク接続ノードグループ“B”の仮想MACアドレス“b”との対応関係が登録されている。
図10に、RPRノード140の配下の端末を宛先とするイーサネットフレームを受信したRPRノード240の処理手順を示す。
RPRノード240の配下の端末が、RPRノード240に対してイーサネットフレームを送信すると、RPRノード240の入力ポート500−3はそのイーサネットフレームを受信する(ステップS11)。
RPRノード240のRPRフレーム生成部520は、受信したイーサネットフレームを格納するRPRフレームの宛先MACアドレスとなるMACアドレスを決定する(ステップS12)。アドレスの決定にあたり、フレーム生成部520は、受信したイーサネットフレームの宛先MACアドレスをキーとしてFDB540を検索し、そのキーに対応付けられたMACアドレスを読み込む。
フレーム生成部520が検索に失敗した場合には、前述のRPRノード140と同様に、ブロードキャスト用MACアドレスが宛先MACアドレスとして設定される。本例では、RPRノード140配下の端末のMACアドレスと、インタリンク接続ノードグループ“B”の仮想MACアドレス“b”とが対応付けが既にFDB540に記憶されている。従って、RPRフレーム生成部520は、検索に成功し、インタリンク接続ノードグループ“B”の仮想MACアドレス“b”をFDB540から読み込む。
RPRノード240のRPRフレーム生成部520は、アドレスマッピングテーブル600を参照することにより、インタリンク接続ノードグループ“B”の仮想MACアドレス“b”に対応付けられている各MACアドレスを読み込む。本例では、RPRネットワーク20のインタリンク接続ノードであるRPRノード200,230,270のMACアドレスが読み込まれる。そして、RPRフレーム生成部520は、後述するアルゴリズムに従って、読み込んだMACアドレスの中から1つのMACアドレスを選択し、それをRPRフレームの宛先MACアドレスとして決定する。
次に、RPRノード240のRPRフレーム生成部520は、イーサネットフレームをカプセル化してRPRフレームを生成する(ステップS13)。すなわち、決定したMACアドレスを宛先MACアドレスに設定し、かつ、送信元MACアドレスに自ノードのMACアドレスを設定し、かつ、ペイロードに自ノード配下の端末より受信したイーサネットフレームを格納したRPRフレームを生成する。
RPRノード240のRPRスイッチ処理部530は、生成されたRPRフレームを、出力ポート580−1または出力ポート580−2のいずれか一方から送信する(ステップS14)。このとき、RPRフレームのTTLフィールドには、実際にRPRフレームを出力する出力ポートから、宛先となるRPRノードまでのホップ数が格納される。なお、ここで生成されたRPRフレームの宛先MACアドレスには、RPRノード200,230,270のMACアドレスのいずれか1つが設定されていることから、RPRノード240からのRPRフレームの送信は、ユニキャスト送信となる。
ここで、RPRフレーム生成部520が仮想MACアドレスに対応する各MACアドレスの中から1つのMACアドレスを選択する(図10:ステップS12)ためのアルゴリズムは、例えば、ラウンドロビンや重み付けラウンドロビンを採用することができる。
また、例えば、イーサネットフレームのヘッダまたはペイロード、あるいはその双方の情報をパラメータとし、そのパラメータに応じて、複数のMACアドレスから1つのMACアドレスを選択してもよい。また、パラメータを用いて行った所定の計算の結果に応じて、MACアドレスを選択してもよい。
このようなアルゴリズムで使用するパラメータとしては、例えば、イーサネットフレームの宛先MACアドレス、送信元MACアドレス、プライオリティ、VLAN_ID、イーサタイプ、フレームのペイロードに格納されたIPパケットの宛先IPアドレス、送信元IPアドレスを適用することができる。また、そのIPパケットに格納されたTCPパケットの宛先TCPポート番号、送信元TCPポート番号等であってもよい。ここに挙げた各パラメータは例示であり、フレームに含まれる他の情報をパラメータとしてもよい。
なお、インタリンク接続ノードが配下の端末にイーサネットフレームを転送できない状態になったことを、インタリンク接続ノードグループに属さないRPRノードが検出したとする。この場合、インタリンク接続ノードグループに属さないRPRノードは、パラメータによって定まるMACアドレスが、イーサネットフレームを転送可能なRPRノードのMACアドレスのみになるように、パラメータとMACアドレスとの対応関係を変更すればよい。また、ラウンドロビンや重み付けラウンドロビンを採用する場合には、配下の端末にイーサネットフレームを転送可能なRPRノードのMACアドレスのみを選択対象とすればよい。
以降では、RPRノード240のRPRフレーム生成部520が、宛先MACアドレスとしてRPRノード200のMACアドレスを選択した場合を例として説明する。
RPRノード240のRPRフレーム生成部520は、宛先MACアドレスにRPRノード200のMACアドレスを設定し、かつ、送信元MACアドレスに自ノードのMACアドレスを設定し、かつ、ペイロードにイーサネットフレームを格納したRPRフレームを生成する(ステップS13)。
RPRノード240のRPRスイッチ処理部530は、生成されたRPRフレームを、出力ポート580−1または出力ポート580−2のいずれか一方から隣接のRPRノード250へ送信する(ステップS14)。このとき、RPRフレームのTTLフィールドには、実際にRPRフレームを出力する出力ポートからRPRノード200までのホップ数が設定される。ここでは、出力ポート580−1からRPRフレームが送信される場合を例にして説明する。
RPRノード250は、入力ポート500−2により、RPRノード240からのRPRフレームを受信する。入力ポート500−2が受信したRPRフレームは、RPRノード250のフレーム解析部510−2に入力される。
RPRノード250のフレーム解析部510−2は、入力されたRPRフレームが、アドレスマッピングテーブル管理部610が使用する特殊RPRフレームでなければ、それをRPRスイッチ処理部530に供給する。また、仮に、特殊RPRフレームであれば、それをアドレスマッピングテーブル管理部610に供給する。本例でフレーム解析部510−2に入力されたRPRフレームは、イーサネットフレームをカプセル化したRPRフレームであり、特殊RPRフレームではない。従って、フレーム解析部510−2は、入力されたRPRフレームをRPRスイッチ処理部530に供給する。
RPRノード250のRPRスイッチ処理部530は、RPRフレームを供給されると、以下のように動作する。
RPRスイッチ処理部530は、そのRPRフレームの送信元MACアドレスが自ノードのMACアドレスである場合、ループの形成によるブロードキャストストームの発生を防止するため、受信したRPRフレームを廃棄する。
また、RPRスイッチ処理部530は、そのRPRフレームが自ノードを宛先とするRPRフレームであるか否かを判定する。すなわち、RPRスイッチ処理部530は、受信したRPRフレームにおける宛先MACアドレスと、自ノードのMACアドレスとが一致するか否かを判定する。
判定の結果、受信したRPRフレームの宛先が自ノード(250)ではない場合、RPRスイッチ処理部530は、RPRフレームに格納されているTTLの値を「1」減算する。そして、減算結果が「0」でなければ、そのRPRフレームを出力ポート580−1から次のRPRノード(260)に送信する。また、TTLから「1」減算した結果が「0」であれば、RPRスイッチ処理部530は、そのRPRフレームを廃棄する。
一方、受信したRPRフレームの宛先が自ノード(250)である場合、RPRスイッチ処理部530は、そのRPRフレームをイーサネットフレーム抽出部570に供給する。イーサネットフレーム抽出部570は、そのRPRフレーム内のイーサネットフレームの送信元MACアドレス(RPRノード240配下の端末のMACアドレス)と、そのRPRフレームの送信元MACアドレス(RPRノード240のMACアドレス)の対応関係をFDB540に登録するようFDB管理部550に要求する。また、イーサネットフレーム抽出部570は、RPRフレームからイーサネットフレームを抽出し、出力ポート580−3から自ノード配下の端末にそのイーサネットフレームを送信する。また、FDB管理部550は、イーサネットフレーム抽出部570の要求に従って、FDB540に上記のMACアドレスの対応関係を登録する。
本例では、RPRノード240がユニキャスト送信したRPRフレームにおける宛先MACアドレスは、RPRノード200のMACアドレスであり、RPRノード250のMACアドレスと一致しない。従って、RPRノード250のRPRスイッチ処理部530は、RPRフレームに格納されているTTLの値を「1」減算する。また、その減算結果は「0」ではないので、RPRスイッチ処理部530は、TTL減算後のRPRフレームを出力ポート580−1から次のRPRノード(260)に送信する。
RPRノード240からユニキャスト送信されたRPRフレームがRPRノード200に転送されるまでの、各RPRノードの動作は、上述のRPRノード250の動作と同様である。
RPRノード200の入力ポート500−2を介してフレーム解析510−2にRPRフレームが入力されると、RPRノード200のフレーム解析部510−2は、そのRPRフレームをRPRスイッチ処理部530に供給する。RPRスイッチ処理部530は、受信したRPRフレームの宛先MACアドレスと、自ノードのMACアドレスとが一致するので、そのRPRフレームをイーサネットフレーム抽出部570に供給する。イーサネットフレーム抽出部570は、RPRフレーム内のイーサネットフレームの送信元MACアドレスと、そのRPRフレームの送信元MACアドレスとの対応関係をFDB540に登録するようFDB管理部550に要求する。また、イーサネットフレーム抽出部570は、RPRフレームからイーサネットフレームを抽出し、それを出力ポート580−3から自ノード配下の端末へ送信する。ここで、RPRノード200の配下の端末とは、RPRネットワーク10のRPRノード100である。また、RPRノード200のFDB管理部550は、イーサネットフレーム抽出部570の要求に従って、自ノードのFDB540にMACアドレスの対応関係を登録する。この結果、RPRノード240が送信したイーサネットフレームがRPRノード100によって受信される。
また、RPRノード240が送信したイーサネットフレームがRPRノード100によって受信されるまでの動作は、上述のような動作ではなく、以下のような動作であってもよい。
RPRノード240配下の端末が、RPRノード140配下の端末を宛先とするイーサネットフレームをRPRノード240に送信する。すると、RPRノード240のRPRフレーム生成部520に、入力ポート500−3を介して、そのイーサネットフレームが入力される。RPRノード240のRPRフレーム生成部520は、自ノードの配下の端末から受信したイーサネットフレームの宛先MACアドレス(RPRノード140配下の端末のMACアドレス)をキーとしてFDB540を検索する。FDB540では、RPRノード140配下の端末のMACアドレスと、インタリンク接続ノードグループ“B”の仮想MACアドレス“b”とが対応付けられている。従って、RPRノード240のRPRフレーム生成部520は、検索の結果、仮想MACアドレス“b”をFDB540から読み込む。
そして、RPRノード240のRPRフレーム生成部520は、検索結果である仮想MACアドレス“b”を宛先MACアドレスに設定し、かつ、送信元MACアドレスに自ノードのMACアドレスを設定し、かつ、ペイロードに自ノード配下の端末より受信したイーサネットフレームを格納したRPRフレームを生成する。
RPRノード240のRPRスイッチ処理部530は、生成されたRPRフレームのTTLフィールドに、自ノード(240)から各インタリンク接続ノードまでのホップ数の最大値を格納する。そして、RPRノード240のRPRスイッチ処理部530は、自ノードの出力ポート580−1または出力ポート580−2のいずれか一方から、そのRPRフレームを送信する。この場合、RPRフレームの宛先アドレスには、インタリンク接続ノードグループに割り当てられた仮想MACアドレスが格納されている。従って、この動作では、RPRノード240からのRPRフレームの送信は、グループのインタリンク接続ノードを宛先としたマルチキャスト送信となる。また、TTLフィールドには、自ノードからインタリンク接続ノードまでのホップ数の最大値に替えて、自ノードが属するRPRネットワーク20のノード数を設定してもよい。
次に、RPRノード240のRPRスイッチ処理部530が、出力ポート580−1からRPRノードにRPRフレームを送信する場合を説明する。
インタリンク接続ノードグループに属さない各RPRノードの動作は、前述のRPRノード250の動作と同様である。従って、RPRノード240の出力ポート580−1から送信されたRPRフレームは、RPRノード250,260を経由して、RPRノード270に転送される。RPRノード270のフレーム解析部510−2には、入力ポート500−2を介してRPRフレームが入力される。
RPRノード270のフレーム解析部510−2は、RPRフレームが特殊RPRフレームでなければ、そのRPRフレームをRPRスイッチ処理部530に供給する。本例では、フレーム解析部510−2に入力されたRPRフレームは、イーサネットフレームをカプセル化したRPRフレームであり、特殊RPRフレームではないので、フレーム解析部510−2は、RPRフレームをRPRスイッチ処理部530に供給する。なお、特殊RPRフレームである場合、既に説明したように、その特殊RPRフレームはアドレスマッピングテーブル管理部610に供給される。
インタリンク接続ノードグループに属するRPRノード270のRPRスイッチ処理部530は、RPRフレームの送信元MACアドレスが自ノードのMACアドレスである場合、ループの構成によるブロードキャストストームの発生を防止するため、受信したRPRフレームを廃棄する。この動作は、インタリンク接続ノードグループに属さないRPRノードと同様である。
また、RPRノード270のRPRスイッチ処理部530は、RPRフレームの宛先MACアドレスが自ノードの属するインタリンク接続ノードグループの仮想MACアドレスでない場合、RPRフレームのTTLの値を「1」減算する。減算後のTTLの値が「0」でなければ、RPRフレームを次のRPRノードに転送する。減算後のTTLの値が「0」であれば、そのRPRフレームを廃棄する。
また、インタリンク接続ノードのいずれか1つが、マルチキャスト送信されたRPRフレーム内のイーサネットフレームを配下の端末、すなわち他のRPRネットワークに属するRPRノードに送信する。図11は、インタリンク接続ノードグループに属するインタリンク接続ノードが、マルチキャスト送信されたRPRフレームを受信した場合のフローチャートである。ここでは、そのインタリンク接続ノードとして、RPRノード270を例にして説明する。
RPRノード270のRPRスイッチ処理部530は、マルチキャスト送信されたRPRフレームの宛先MACアドレスが自ノードの属するインタリンク接続ノードグループの仮想MACアドレス(“b”)である場合、後述するアルゴリズムに従って、そのRPRフレーム内のイーサネットフレームを出力ポート580−3から送信するか否かを決定する(ステップS21)。
RPRノード270の出力ポート580−3から配下の端末(RPRノード110)にイーサネットフレームを送信すると決定した場合(ステップS21:YES)、RPRノード270のRPRスイッチ処理部530は、RPRフレームをイーサネットフレーム抽出部570に供給する(ステップS22)。これを受けたイーサネットフレーム抽出部570は、RPRフレームに格納されているイーサネットフレームの送信元MACアドレスと、RPRフレームの送信元MACアドレスとの対応関係をFDB540に登録するようFDB管理部550に要求する。FDB管理部550は、FDB540にアドレスの対応関係を登録する。また、イーサネットフレーム抽出部570は、RPRフレームからイーサネットフレームを抽出し(ステップS23)、そのイーサネットフレームを出力ポート580−3から自ノードの配下の端末に送信する(ステップS24)。
また、RPRノード270の出力ポート580−3から配下の端末(RPRノード110)にイーサネットフレームを送信しないと決定した場合(ステップS21:NO)、RPRノード270のRPRスイッチ処理部530は、RPRフレームに格納されたTTLの値を「1」減算する(ステップS25)。そして、減算後のTTLの値が「0」でなければ(ステップS26:YES)、RPRフレームを出力ポート580−1から次のRPRノード(200)に送信する(ステップS27)。一方、減算後のTTLの値が「0」であれば、RPRスイッチ処理部530は、そのRPRフレームを廃棄する(ステップS28)。
上記動作はインタリンク接続ノード270のものであったが、マルチキャスト送信されたRPRフレームを他のインタリンク接続ノード(200,220)が受信した場合の動作も同様である。
マルチキャスト送信されたRPRフレーム内のイーサネットフレームを配下の端末に送信するか否かを決定するアルゴリズムとしては、同一のインタリンク接続ノードグループに属するRPRノードのうちいずれか一つのRPRノードのみが配下の端末にイーサネットフレームを送信すると決定するアルゴリズムを採用する。
そのようなアルゴリズムとして、例えば、フレームのヘッダまたはペイロード、あるいはその双方の情報をパラメータとし、そのパラメータに応じて、配下の端末にイーサネットフレームを送信するか否かを決定するというアルゴリズムを使用することができる。また、上記のようなパラメータを用いて行った所定の計算の結果に応じて、配下の端末にイーサネットフレームを送信するか否かを決定するというアルゴリズムを使用してもよい。ここで述べたフレームとは、RPRフレームであってもよいし、RPRフレーム内にカプセル化されているイーサネットフレームであってもよい。
このようなアルゴリズムで使用できるパラメータとしては、例えば、イーサネットフレームの宛先MACアドレス、送信元MACアドレス、プライオリティ、VLAN_ID、イーサタイプ、フレームのペイロードに格納されたIPパケットの宛先IPアドレス、送信元IPアドレスを用いることができる。また、そのIPパケットに格納されたTCPパケットの宛先TCPポート番号、送信元TCPポート番号等であってもよい。ここに挙げた各パラメータは例示であり、フレームに含まれる他の情報をパラメータとしてもよい。
具体的な例を挙げると、配下の端末へイーサネットフレームを送信することを示すパラメータ値が、インタリンク接続ノードグループに属するRPRノード間で重複しないように定めておけばよい。そして、受信したフレームのパラメータ値が、定められたパラメータ値に該当するならば、配下の端末にイーサネットフレームを送信すると決定する。例えば、パラメータ値をイーサネットフレームのVLAN_IDとする場合に、RPRノード200にはVLAN_IDの1〜1000を割り当て、RPRノード270にはVLAN_IDの1001〜2000を割り当て、RPRノード230には1〜2000以外のVLAN_IDを設定する。このアルゴリズムに従って、各RPRノード200,270,230が、イーサネットフレームを配下の端末に送信するか否かを決定すれば、転送が重複することなく、トラフィックをインタリンク420〜440に分散して転送することができる。
また、障害の発生により、いずれかのインタリンク接続ノードが配下の端末にイーサネットフレームを送信できない状態となったときには、そのインタリンク接続ノードに定められたパラメータ値を、他のインタリンク接続ノードが引き継ぐようにしてもよい。例えば、配下の端末にイーサネットフレームを送信できない状態となったインタリンク接続ノードが、自ノードに定められたパラメータ値を他のノードへ通知するための特殊RPRフレームを送信し、その特殊RPRフレームを受信したインタリンク接続ノードがそのパラメータ値を自ノードに設定する。
また、別の例を挙げると、インタリンク接続ノードグループに属するインタリンク接続ノードのうち、いずれか一つのみがイーサネットフレームを配下の端末に送信するように定めてもよい。この場合、各インタリンク接続ノードは、自ノードが配下の端末にイーサネットフレームを送信するように定められているか否かを予め記憶しておく。そして、各インタリンク接続ノードは、マルチキャスト送信されたRPRフレームを受信したとき、自ノードが配下の端末にイーサネットフレームを送信するインタリンク接続ノードとして定められているかを判定する。また、イーサネットフレームを配下の端末に送信すべきインタリンク接続ノードに障害が発生したときには、前述の特殊RPRフレームを他のインタリンク接続ノードに送信する。そして、それを受信したインタリンク接続ノードみが、配下の端末へのイーサネットフレーム送信を引き継ぐ。例えば、RPRノード200のみが、イーサネットフレームを配下の端末に送信すると設定しておく。そして、インタリンク420が切断するなどの障害が発生した場合には、イーサネットフレームの送信処理をRPRノード200からRPRノード270が引き継ぐようにすればよい。このとき、RPRノード200は、インタリンク420の障害を検出したならば、受信したRPRフレーム内のイーサネットフレームを配下の端末に送信することを指示する特殊RPRフレームを、RPRノード270に送信する。そして、この特殊RPRフレームを受信したRPRノード270が、マルチキャスト送信されたRPRフレームを自ノードで受信したときに、配下の端末にイーサネットフレームを送信すればよい。
なお、RPRノード240がイーサネットフレームをカプセル化してRPRフレームを生成して送信する場合に、RPRフレームの宛先MACドレスとしてインタリンク接続ノードグループ“B”に属するRPRノードのうちのいずれか1つのMACアドレスを設定することによりユニキャスト送信してもよい。また、RPRフレームの宛先MACドレスとしてインタリンク接続ノードグループ“B”の仮想MACアドレス“b”を用いてマルチキャスト送信を行ってもよい。どちらの場合であっても、インタリンク420,430,440のいずれか1つを経由して、インタリンク接続ノードグループ“A”に属するRPRノードのいずれか1つにイーサネットフレームを転送することができる。
次に、RPRネットワーク20からRPRネットワーク10にイーサネットフレームが転送されてから、そのイーサネットフレームがRPRノード140の配下の端末に転送されるまでの動作について説明する。ここでは、RPRノード200が、RPRフレームに格納されたイーサネットフレームを、インタリンク420を介してRPRノード100に転送した場合を例にして説明する。
RPRノード100は、RPRノード200から送信されたイーサネットフレームを入力ポート500−3で受信すると、それをRPRフレーム生成部520に供給する。
RPRノード100のRPRフレーム生成部520は、イーサネットフレームの宛先MACアドレスをキーとしてFDB540を検索し、キーに対応するMACアドレスを読み込む。検索に失敗した場合には、宛先MACアドレスにブロードキャスト用MACアドレスを設定したRPRフレームを生成する。一方、検索に成功した場合には、FDB540から読み込んだMACアドレスを宛先MACアドレスに格納したRPRフレームを生成する。本例では、RPRノード100のFDB540には、イーサネットフレームの宛先となる端末のMACアドレスと、その端末を配下に収容しているRPRノード140のMACアドレスとが対応付けられて記憶されている。従って、RPRノード100のRPRフレーム生成部520がFDB540の検索に成功し、その結果、RPRノード140のMACアドレスがFDB540から読み込まれる。
RPRノード100のRPRフレーム生成部520は、宛先MACアドレスにRPRノード140のMACアドレスを設定し、かつ、送信元MACアドレスに自ノードが属するインタリンク接続ノードグループ“A”のMACアドレス“a”を設定し、かつ、ペイロードにRPRノード200から受信したイーサネットフレームを格納したRPRフレームを生成する。アドレスマッピングテーブル600では、インタリンク接続ノードグループのMACアドレス“a”に対応するMACアドレスに、自ノード(100)のアドレスが含まれている。よって、RPRフレーム生成部520は、自ノードがインタリンク接続ノードグループに属していると判定し、そのインタリンク接続ノードグループの仮想アドレス“a”を、送信元MACアドレスとして用いる。RPRフレーム生成部520は、生成したRPRフレームをRPRスイッチ処理部530に供給する。
RPRノード100のRPRスイッチ処理部530は、出力ポート580−1または出力ポート580−2のいずれか一方から、そのRPRフレームを送信する。このとき、RPRフレームのTTLフィールドには、RPRノード100の出力ポート580−1または出力ポート580−2のうち、実際にRPRフレームを出力するポートからRPRノード140までのホップ数が格納される。この送信は、ユニキャスト送信である。
ここでは、RPRノード100のRPRスイッチ処理部530が、RPRフレームのTTLフィールドに、自ノードからRPRノード140までのホップ数を格納し、そのRPRフレームを出力ポート580−2からRPRノード170へ送信する場合を例にする。
RPRノード100からユニキャスト送信されたRPRフレームは、RPRノード170,160,150を経てRPRノード140へ順次転送される。RPRノード140は、自ノードを宛先とするRPRフレームを受信すると、そのRPRフレームからイーサネットフレームを抽出し、自ノードの配下の端末にそのイーサネットフレームを送信する。このときのRPRノード170,160,150の動作は、前述のRPRノード240からユニキャスト送信されたRPRフレームを転送するRPRノード250の動作と同様である。また、配下の端末にイーサネットフレームを送信するRPRノード140の動作は、ユニキャスト送信されたRPRフレームを受信して配下の端末であるRPRノード100にイーサネットフレームを送信する前述のRPRノード200の動作と同様である。
RPRノード140の配下の端末は、RPRノード140が出力ポート580−3から送信したイーサネットフレームを受信する。このイーサネットフレームは、送信元がRPRノード240の配下の端末であるイーサネットフレームである。
以上説明した本実施形態によれば、RPRネットワーク10とRPRネットワーク20との間に複数のインタリンク(420,430,440)が設けられたことにより、信頼性の高い通信システムを実現することができる。また、RPRネットワーク間におけるイーサネットフレームの転送を行う場合に、複数のインタリンクに分散してイーサネットフレームを転送することにより、輻輳の発生を抑制することができる。
また、インタリンク接続ノードグループテーブル590に、RPRノードのMACアドレスとインタリンク接続ノードグループの仮想MACアドレスとの対応関係を登録し、その対応関係をアドレスマッピングテーブル600に登録することにより、RPRノードをインタリンク接続ノードグループとしてグループ化することができる。従って、ネットワーク上の任意のノードをインタリンク接続ノードとして動作させることが可能となり、これにより、局舎の位置またはリンクの敷設場所等の制約を受けることなく、複数のインタリンクを配置することができる。
次に、RPRネットワーク10及び20間のインタリンク420,430,440に、切断などの障害が発生したときの障害回復動作について説明する。ここでは、インタリンク420に障害が発生し、インタリンク430,440のみでRPRネットワーク間の通信を行えるように障害回復する場合を例にして説明する。
図12は、インタリンク420に障害が発生した場合におけるRPRネットワーク10に属するRPRノードの動作の例を示すフローチャートである。インタリンク420に障害が発生すると、RPRノード100のポート状態監視部620は、自ノードのポートP3(入力ポート500−3または出力ポート500−3)が無効になったことを検出する(ステップS41)。そして、ポート状態監視部620は、ポートP3が無効になったことを自ノードのアドレスマッピングテーブル管理部610に通知する。
同様に、RPRノード200のポート状態監視部620も、自ノードのポートP3が無効になったことを検出し、その旨をアドレスマッピングテーブル管理部610に通知する。RPRノード200およびRPRネットワーク20に属する他のRPRノードの動作は、RPRノード100およびRPRネットワーク10に属する他のRPRノードの動作と同様である。よって、以下の説明では、図12を参照して、RPRノード100およびRPRネットワーク10に属する他のRPRノードの動作について説明し、RPRノード200およびRPRネットワーク20に属する他のRPRノードの動作については説明を省略する。
ポートP3が無効となったことが通知されると、RPRノード100のアドレスマッピングテーブル管理部610は、インタリンク接続ノードグループテーブル590を参照して、自ノードがグループに属しているか否かを判定する。このとき、アドレスマッピングテーブル管理部610は、インタリンク接続ノードグループの識別子(仮想MACアドレス)に対応付けられているMACアドレスの中に、自ノードのMACアドレスが含まれているか否かを判定し、含まれていれば自ノードがインタリンク接続ノードグループに属していると判定する。アドレスマッピングテーブル管理部610は、自ノードがインタリンク接続ノードグループに属している場合、アドレスマッピングテーブル600から自ノードのMACアドレスを削除する(ステップS42)。
さらに、RPRノード100のアドレスマッピングテーブル管理部610は、RPRネットワーク10に属する全てのRPRノードに対して、各RPRノードのアドレスマッピングテーブル600のエントリのうち、RPRノード100のインタリンク接続ノードグループのエントリから、RPRノード100のMACアドレスを削除することを命じる通知をブロードキャスト送信する(ステップS43)。このブロードキャスト送信は、RPRスイッチ処理部530により行われる。
上記の通知処理として、アドレスマッピングテーブル管理部610は、例えば、宛先MACアドレスとして削除通知専用の特殊MACアドレスを設定し、かつ、送信元MACアドレスに自ノード(100)のMACアドレスを設定し、かつ、ペイロードに自ノードが属するインタリンク接続ノードグループの仮想MACアドレスを格納した特殊RPRフレームを生成する。そして、その特殊RPRフレームをRPRスイッチ処理部530がブロードキャスト送信する。以下、この特殊RPRフレームを削除通知用の特殊RPRフレームと記す。また、このブロードキャスト送信は、例えば、“IEEE Standards 802.17”で定義されるブロードキャスト送信である。なお、削除通知用の特殊RPRフレームは、そのフレームをブロードキャスト送信するRPRスイッチ処理部530が生成するよう構成してもよい。
RPRノード110〜170の入力ポート500−1または入力ポート500−2のいずれか一方で受信された削除通知用の特殊RPRフレームは、各RPRノードのフレーム解析部510−1またはフレーム解析部510−2に供給される。フレーム解析部510−1またはフレーム解析部510−2は、入力された削除通知用の特殊RPRフレームをアドレスマッピングテーブル管理部610に供給する。
アドレスマッピングテーブル管理部610は、アドレスマッピングテーブル600におけるRPRノード100が属するインタリンク接続ノードグループのエントリから、削除通知用の特殊RPRフレームに設定されている送信元MACアドレス(ここではRPRノード100のMACアドレス)を削除する(ステップS44)。
また、各RPRノードのアドレスマッピングテーブル610は、受信した削除通知用特殊RPRフレームを、RPRスイッチ処理部530により、次のRPRノードに送信する(ステップS45)。なお、削除通知用特殊RPRフレームの廃棄態様は、他のブロードキャスト送信されるRPRフレームと同様である。
この結果、RPRネットワーク10に属する各RPRノードのアドレスマッピングテーブル600から、インタリンク420に対応するポートP3が無効になったRPRノード100のMACアドレスが削除される。また、上記と同様の処理がRPRネットワーク20にて行われることにより、そのRPRネットワーク20に属する各RPRノードのアドレスマッピングテーブル600から、インタリンク420に対応するポートP3が無効になったRPRノード200のMACアドレスが削除される。
いま、各インタリンク接続ノードが、イーサネットフレームを配下の端末に送信するか否かの判定を、受信したRPRフレームのパラメータに応じて決定しているとする。この場合、ポートP3が無効となったインタリンク接続ノードは、自ノードに定められているパラメータの値を引き継ぐ指示を、自ノードと同一のインタリンク接続ノードグループに属するいずれかのインタリンク接続ノードに通知する。この通知は、特殊RPRフレームによって行えばよい。パラメータ値を引き継いだインタリンク接続ノードのアドレスマッピングテーブル管理部610は、そのパラメータ値に合致するRPRフレーム受信した時に、イーサネットフレームを配下の端末に送信するようにRPRスイッチ処理部530に要求する。これにより、ポートP3が無効となったインタリンク接続ノードが行っていたイーサネットフレームの送信を、他のインタリンク接続ノードが引き継ぐことができる。
上記に替えて、グループに属するインタリンク接続ノードのうちの何れか一つが、イーサネットフレームを配下の端末に送信するよう設定されている場合は次のように動作する。そのインタリンク接続ノードは、自ノードのポートP3が無効であることを検出したとき、グループ内の他のインタリンク接続ノードに対し、自ノードの役割を引き継ぐよう指示するための前述の特殊RPRフレームを送信する。これにより、その特殊RPRフレームを受信したインタリンク接続ノードのみが、イーサネットフレームを配下の端末に送信することになる。
また、インタリンク接続ノードグループに属さない各RPRノードが、ラウンドロビンや重み付けラウンドロビンを採用して、宛先アドレスを決定(図10:ステップS12)しているとする。この場合、ポートP3が無効になったRPRノードのMACアドレスがアドレスマッピングテーブル600から削除されることにより、そのMACアドレスが自動的に宛先アドレスの選択対象から除外される。
上記に替えて、インタリンク接続ノードグループに属さない各RPRノードが、イーサネットフレームのパラメータに応じてMACアドレス決定処理を行っているとする。この場合、各RPRノードのアドレスマッピングテーブル管理部610は、削除通知用特殊RPRフレームを受信したときに、その送信元のインタリンク接続ノードに対応するパラメータ値を、他のインタリンク接続ノードに割り当てるように、RPRフレーム生成部520に通知すればよい。この場合、アドレスマッピングテーブル管理部610は、各インタリンク接続ノードに割り当てられたパラメータ値を、インタリンク接続ノード毎に予め記憶しておく。RPRフレーム生成部520は、削除通知用特殊RPRフレームの送信元のインタリンク接続ノードに対応するパラメータ値を、そのインタリンク接続ノードと同一のグループに属する他のインタリンク接続ノードに割り当てたうえで、MACアドレス決定処理を行えばよい。この場合にも、ポートP3が無効になったRPRノードのMACアドレスが、自動的に選択対象から除外される。
以上のような動作により、インタリンク420に障害が発生した場合に、RPRネットワーク10からRPRネットワーク20に転送されるフレームの宛先として、インタリンク420に対応するRPRノード100が選択されることを防止できる。また、FDB540の検索に失敗してRPRフレームをブロードキャスト送信する場合や、インタリンク接続ノードグループに対してマルチキャスト送信する場合にも、正常なインタリンク(430,440)に接続されるRPRノード(110,160)のうちのいずれか一つが、配下の端末にイーサネットフレームを送信する。RPRネットワーク20からRPRネットワーク10にイーサネットフレームを転送する場合も同様である。従って、たとえインタリンクの何れかに障害が発生しても、RPRネットワーク10とRPRネットワーク20と間の通信を継続させることができる。
さらにまた、他のインタリンク430,440のいずれかで障害が発生した場合も、各RPRネットワーク10,20の各RPRノードは、インタリンク420に障害が発生したときと同様に動作する。この結果、障害の発生していないインタリンクを経由して通信を続行することができる。
次に、インタリンク420の障害が復旧して、RPRノード100のポートP3のポート状態が有効の状態に変化した場合の動作を説明する。
図13は、インタリンク420の障害が復旧した場合におけるRPRネットワーク10の各RPRノードの動作の例を示すフローチャートである。インタリンク420の障害が復旧すると、インタリンク420に対応するRPRノード100は、ポート状態監視部620により、自ノードのポートP3のポート状態が有効になったことを検出する(ステップS51)。そして、ポート状態監視部620は、ポートP3が有効になったことをアドレスマッピングテーブル管理部610に通知する。
同様に、RPRネットワーク20では、インタリンク420に対応するRPRノード200のポート状態監視部620が、自ノードのポートP3が有効になったことを検出し、その旨の情報をアドレスマッピングテーブル管理部610に通知する。RPRノード200およびRPRネットワーク20に属する他のRPRノードの動作は、RPRノード100およびRPRネットワーク10に属する他のRPRノードの動作と同様である。以下の説明では、図13を参照して、RPRノード100およびRPRネットワーク10に属する他のRPRノードの動作について説明する。
ポートP3が有効になったことが通知されると、RPRノード100のアドレスマッピングテーブル管理部610は、インタリンク接続ノードグループテーブル590を参照して、自ノードがインタリンク接続ノードグループに属しているか否かを判定する。この動作については、図4(ステップS42)に沿って前述したので詳細な説明を省略する。アドレスマッピングテーブル管理部610は、自ノードがインタリンク接続ノードグループに属している場合、アドレスマッピングテーブル600に、自ノードのMACアドレスを追加する(ステップS52)。すなわち、インタリンク接続ノードグループテーブル590で自ノードのMACアドレスと対応付けられている仮想MACアドレスをアドレスマッピングテーブル600において検索し、その仮想MACアドレスと対応付けられているMACアドレスに、自ノードのMACアドレスを追加する。
さらに、RPRノード100のアドレスマッピングテーブル管理部610は、RPRネットワーク10に属する全てのRPRノードに対して、アドレスマッピングテーブル600にRPRノード100のMACアドレスを追加することを命じる通知をブロードキャスト送信する(ステップS53)。このブロードキャスト送信は、RPRスイッチ処理部530を介して行われる。
上記の通知処理として、アドレスマッピングテーブル管理部610は、例えば、通知すべきノードのMACアドレスを宛先MACアドレスに設定し、かつ、送信元MACアドレスに自ノード(本例ではRPRノード100)のMACアドレスを設定し、かつ、ペイロードに自ノードが属するインタリンク接続ノードグループの仮想MACアドレスを格納した特殊RPRフレームを生成しブロードキャスト送信すればよい。以下、この特殊RPRフレームを追加通知用の特殊RPRフレームと記す。
RPRノード110〜170は、追加通知用の特殊RPRフレームを受信したとき、フレーム解析部510−1またはフレーム解析部510−2により、アドレスマッピングテーブル管理部610へ供給する。
アドレスマッピングテーブル管理部610は、アドレスマッピングテーブル600のグループ“A”のエントリに、追加用特殊RPRフレームの送信元MACアドレス、すなわちRPRノード100のMACアドレスを追加する(ステップS54)。
また、アドレスマッピングテーブル管理部610は、追加通知用特殊RPRフレームを、RPRスイッチ処理部530を介して、次のRPRノードへ送信する(ステップS55)。
この結果、RPRネットワーク10に属する各RPRノードのアドレスマッピングテーブル600に、ポートP3が有効になったRPRノード100のMACアドレスが追加され、インタリンク420の障害発生以前の状態に戻る。同様に、RPRネットワーク20に属する各RPRノードのアドレスマッピングテーブル600に、ポートP3が有効になったRPRノード200のMACアドレスが追加され、インタリンク420の障害発生以前の状態に戻る。
いま、各インタリンク接続ノードが、いま、各インタリンク接続ノードが、RPRフレーム中のイーサネットフレームを配下の端末に送信するか否かを、そのRPRフレームのパラメータに応じて決定しているとする。また、ポートP3が無効となったインタリンク接続ノードが、自ノードのパラメータ値を引き継がせる指示を、同一グループの他のインタリンク接続ノードに通知していたとする。この場合、インタリンクの復旧に伴い、ポートP3が有効となったインタリンク接続ノードが、引き継ぎ指示の通知先のインタリンク接続ノードに対して、引き継ぎを停止する指示を通知する。この通知は、特殊RPRフレームによって行えばよい。この特殊RPRフレームを受信したインタリンク接続ノードは、アドレスマッピングテーブル管理部610により、それまで引き継いでいたパラメータ値に合致するRPRフレームを受信したとしても、その中のイーサネットフレームを配下の端末に送信しないようにRPRスイッチ処理部530に要求する。また、ポートP3が有効になったインタリンク接続ノードは、インタリンク障害発生前と同様に、配下の端末に対するイーサネットフレームの送信を再開する。この結果、各インタリンク接続ノードは、インタリンク障害発生前と同様に、配下の端末にイーサネットフレームを送信することができる。
また、いま、RPRフレームに格納されたイーサネットフレームを配下の端末に送信するように定められているノードが、同一グループのインタリンク接続ノードのうちの何れか一つであるとする。そして、ポートP3が無効となったインタリンク接続ノードが、自ノードと同一グループに属する他のインタリンク接続ノードに、イーサネットフレームの送信を指示する特殊RPRフレームを送信していたとする。この場合、インタリンクの復旧に伴いポートP3が有効となったインタリンク接続ノードが、その特殊RPRフレームの送信先であるインタリンク接続ノードに対し、イーサネットフレームの送信停止を指示する特殊RPRフレームを送信する。その後、その特殊RPRフレームを受信したインタリンク接続ノードは、ブロードキャスト送信またはマルチキャスト送信されたRPRフレームを受信しても、配下の端末にイーサネットフレームを送信しない。一方、ポートP3が有効になったインタリンク接続ノードは、インタリンク障害発生前と同様に、配下の端末に対するイーサネットフレームの送信を再開する。この結果、RPRネットワーク間のイーサネットフレーム送信態様は、インタリンクの障害発生前と同様になる。
さらにまた、いま、インタリンク接続ノードグループに属さない各RPRノードが、ラウンドロビンや重み付けラウンドロビンを採用して、MACアドレス決定処理(図10:S12)を行っているとする。アドレスマッピングテーブル600に、ポートP3が有効になったRPRノードのMACアドレスが追加されると、ポートP3が有効になったRPRノードのMACアドレスが選択対象として追加される。そのため、インタリンクの障害発生前と同様に、そのようなMACアドレスもMACアドレス決定処理における選択対象となる。
また、インタリンク接続ノードグループに属さない各RPRノードが、イーサネットフレームのパラメータに応じて、MACアドレス決定処理を行っているとする。そして、インタリンク接続ノードグループに属さない各RPRノードのアドレスマッピングテーブル管理部610が、削除通知用の特殊RPRフレームを受信したときに、そのフレームの送信元のインタリンク接続ノードに対応するパラメータ値を、他のインタリンク接続ノードに割り当てるように、RPRフレーム生成部520に通知していたとする。この場合、アドレスマッピングテーブル管理部610は、追加通知用特殊RPRフレームを受信したときに、他のインタリンク接続ノードに割り当てていたパラメータ値を、追加通知用特殊RPRフレームの送信元のインタリンク接続ノードに割り当てるように、RPRフレーム生成部520に通知すればよい。この結果、RPRフレーム生成部520は、インタリンクの障害発生以前と同様に、MACアドレス決定処理を再開する。
以上のような動作により、RPRネットワーク10からRPRネットワーク20にイーサネットフレームを転送するときに、そのイーサネットフレームをカプセル化したRPRフレームの宛先として、正常なインタリンクに接続されるRPRノードだけでなく、復旧したインタリンク420に接続されるRPRノード100も選択されるようになる。また、FDB540の検索に失敗してRPRフレームをブロードキャスト送信する場合や、インタリンク接続ノードグループに対してマルチキャスト送信する場合にも、各インタリンク420,430,440に接続されるRPRノード100,110,160のいずれか一つが、配下の端末にイーサネットフレームを送信する。従って、インタリンク420に障害が発生する前の状態に復帰することができる。
以上の説明では、インタリンク接続ノードのアドレスマッピングテーブル管理部610が、インタリンクの障害検出をトリガとして、特殊RPRフレームをブロードキャスト送信することにより、RPRネットワークに属する全てのRPRノードのアドレスマッピングテーブル600を更新する態様を説明した。
以下の説明では、RPRノード100〜170が、RPRネットワークのトポロジを管理するために使用するRPRのTopology and Protectionフレーム(以下、「TPフレーム」と記述する。)を利用してアドレスマッピングテーブル600を更新する態様を説明する。
“IEEE Standards 802.17”によると、RPRノードは、RPRネットワークのトポロジを管理するために、隣接RPRノードと接続されるポート(ポートP1およびポートP2)のポート状態を格納したTPフレームを、ポートP1,P2の両方から、一定の時間間隔でブロードキャスト送信する。なお、TPフレームは、特殊RPRフレームではない。
以下に説明する本実施形態の各RPRノードは、隣接RPRノードと接続されるポート(ポートP1およびポートP2)のポート状態に加えて、配下の端末と接続されるポート(ポートP3)のポート状態を格納したTPフレームを一定の時間間隔でブロードキャスト送信する。
また、各RPRノードのTDB560は、自ノードと同一のRPRネットワークに属する各RPRノードのポートP1,P2のポート状態に加えて、各RPRノードのポートP3の状態も記憶する。図14は、TDB560に登録された情報の例を示す説明図である。図14に示す例では、RPRネットワーク10に属する各RPRノードのポートP1,P2,P3の状態を示す情報がTDB560に登録されている。図5に示す場合と同様に、RPRノードのノード識別子に対応付けられて、各ポートの状態を示す情報が登録される。RPRノードのノード識別子として、RPRノードのMACアドレスが用いられる。
また、以下に示すインタリンク障害発生時の動作態様では、前述の説明と同様に、インタリンク420に障害が発生した場合を例にして説明する。また、RPRネットワーク10に属するRPRノードについて説明し、RPRネットワーク20に属するRPRノードについては説明を省略する。
インタリンク420に障害が発生して、RPRノード100のポートP3の状態が有効から無効に変化すると、RPRノード100のポート状態監視部530は、TDB560における自ノードのポートP3の状態を有効から無効に変更する。
RPRノード100のRPRスイッチ処理部530は、TDB560が変更されると、RPRノード100のポートP3が無効であることを示すTPフレームを一定の時間間隔でブロードキャスト送信する。
RPRネットワーク10に属する他のRPRノードのフレーム解析部510−1,510−2に、このTPフレームが入力されると、フレーム解析部510−1,510−2は、TPフレームをRPRスイッチ処理部530に送る。TPフレームが送られたRPRスイッチ処理部530は、RPRノード100のポートP3が無効であることを自ノードのTDB560に記録する。
また、RPRネットワーク10のRPRノード100を含む各ノードは、アドレスマッピングテーブル管理部610により、TDB560においてRPRノード100のポートP3のポート状態が無効に変化したことを検出すると、このRPRノード100がインタリンク接続ノードグループに属しているか否かを判定する。この判定は、例えば、TDB560においてポートP3の状態が変更されたRPRノードのMACアドレスが、インタリンク接続ノードグループテーブル590に含まれているならば、ポートP3が無効になったRPRノードがインタリンク接続ノードグループに属していると判定すればよい。アドレスマッピングテーブル管理部610は、ポートP3が無効になったRPRノードがインタリンク接続ノードグループに属していると判定した場合、自ノードのアドレスマッピングテーブル600から、そのRPRノードのMACアドレスを削除する。
この結果、各RPRノードのアドレスマッピングテーブル600において、ポートP3が無効になったRPRノード100のMACアドレスが削除される。
いま、各インタリンク接続ノードが、RPRフレーム中のイーサネットフレームを配下の端末に送信するか否かを、そのRPRフレームのパラメータに応じて決定しているとする。この場合、例えば、既に説明した動作と同様の動作によって、ポートP3が無効となったインタリンク接続ノードが行っていたイーサネットフレームの送信を、他のインタリンク接続ノードが引き継げばよい。
また、いま、イーサネットフレームを配下の端末に送信するノードとして、同一グループのインタリンク接続ノードのうちの一つのみが設定されているとする。この場合も、既に説明した動作と同様の動作によって、ポートP3が無効となったインタリンク接続ノードが行っていたイーサネットフレームの送信を、他のインタリンク接続ノードが引き継げばよい。
また、インタリンク接続ノードグループに属さない各RPRノードが、ラウンドロビンや重み付けラウンドロビンを採用して、MACアドレス決定処理を行っているとする。アドレスマッピングテーブル600から、ポートP3が無効になったRPRノードのMACアドレスが削除されたとき、ポートP3が無効になったRPRノードのMACアドレスが選択対象から除外される。
また、インタリンク接続ノードグループに属さない各RPRノードが、イーサネットフレームのパラメータに応じてMACアドレス決定処理を行っているとする。この場合、インタリンク接続ノードグループに属さない各RPRノードのアドレスマッピングテーブル管理部610は、TDB560においてポートP3の状態が無効になったRPRノードがインタリンク接続ノードであるならば、そのインタリンク接続ノードに対応するパラメータ値を、他のインタリンク接続ノードに割り当てるように、RPRフレーム生成部520に通知すればよい。この場合、インタリンク接続ノードグループに属さない各RPRノードのアドレスマッピングテーブル管理部610は、各インタリンク接続ノードに割り当てられたパラメータ値を、インタリンク接続ノード毎に予め記憶しておけばよい。RPRフレーム生成部520は、この通知に従って、ポートP3の状態が無効になったインタリンク接続ノードのパラメータ値を、そのインタリンク接続ノードと同一のインタリンク接続ノードグループに属する他のインタリンク接続ノードに割り当てる。この場合にも、ポートP3が無効になったRPRノードのMACアドレスが、アドレス決定処理の選択肢から除外される。
RPRノード100は、自ノードのMACアドレスをアドレスマッピングテーブル600から削除した後に、インタリンク420の障害が復旧したとき、TDB560に記憶されている自ノードのポートP3の状態をポート状態監視部530により有効に変更する。
このようにRPRノード100のTDB560が変更されると、RPRノード100のRPRスイッチ処理部530は、RPRノード100のポートP3の状態を無効から有効の状態に変更したTPフレームを一定の時間間隔でブロードキャスト送信する。
既に説明したように、TPフレームが入力されたRPRスイッチ処理部530は、TPフレームが示すポート状態に合わせて、自ノードのTDB560が記憶している情報を更新する。ここでは、各RPRノードのRPRスイッチ処理部530が、TDB560に記憶されているRPRノード100のポートP3のポート状態の情報を、無効から有効に更新する。
また、RPRネットワーク10のRPRノード100を含む各ノードは、アドレスマッピングテーブル管理部610により、TDB560においてRPRノード100のポートP3のポート状態が有効の状態に変化したことを検出すると、自ノードのインタリンク接続ノードグループテーブル590において、ポートP3が有効になったRPRノード100がインタリンク接続ノードグループに属しているか否かを判定する。この判定は、前述したものと同様である。アドレスマッピングテーブル管理部610は、ポートP3が有効になったRPRノードがインタリンク接続ノードグループに属していると判定した場合、インタリンク接続ノードグループテーブル590を参照して、ポートP3が有効になったインタリンク接続ノードのMACアドレスに対応する仮想MACアドレスを確認する。そして、アドレスマッピングテーブル管理部610は、アドレスマッピングテーブル600に、ポートP3が有効になったインタリンク接続ノード(100)のMACアドレスを追加する。
この結果、各RPRノードのアドレスマッピングテーブル600に記憶される情報は、インタリンク420における障害発生前と同様になる。
各インタリンク接続ノードが、RPRフレームのパラメータに応じて、イーサネットフレームを配下の端末に送信するか否かをを決定している場合、既に説明した動作と同様の動作によって、インタリンクの障害発生前と同様の態様に戻せばよい。
また、いずれか一つのインタリンク接続ノードのみが、イーサネットフレームを配下の端末に送信するように定められている場合も、既に説明した動作と同様の動作によって、インタリンクの障害発生前と同様の態様に戻せばよい。
また、インタリンク接続ノードグループに属さない各RPRノードが、ラウンドロビンや重み付けラウンドロビンを採用して、MACアドレス決定処理を行っているとする。アドレスマッピングテーブル600に、ポートP3が有効になったRPRノードのMACアドレスが追加されたとき、そのMACアドレスが選択対象として追加される。
また、いま、インタリンク接続ノードグループに属さない各RPRノードが、イーサネットフレームのパラメータに応じてMACアドレス決定処理を行っているとする。また、それら各RPRノードのアドレスマッピングテーブル管理部610が、ポートP3の状態が有効から無効に変更されたインタリンク接続ノードに対応するパラメータ値を、他のインタリンク接続ノードに割り当てるように、RPRフレーム生成部520に通知していたとする。この場合、そのアドレスマッピングテーブル管理部610は、TDB560においてポートP3の状態が無効から有効に変更されたとき、そのRPRノードがインタリンク接続ノードであるならば、他のインタリンク接続ノードに割り当てていたパラメータの値を、インタリンクの障害発生以前の状態に戻すように、RPRフレーム生成部520に通知すればよい。
以上のように、TPフレームを活用することにより、削除通知用特殊RPRフレームおよび追加用特殊RPRフレームを用いる場合と同様の障害回復動作を実現できる。
次に、ノード間のリンクではなく、インタリンク接続ノードに障害が発生したときの障害回復動作について説明する。ここでは、RPRノード100に障害が発生した場合を例にして説明する。また、以下の動作は、各RPRノードのTDB560が、図14に示すように、RPRノード毎にポートP1,P2,P3それぞれのポート状態を管理していることを前提とする。また、以下に示す動作では、TPフレームをキープアライブフレームとして利用する。
各RPRノードは、自ノードの各ポートP1,P2,P3の状態を示すTPフレームを一定の時間間隔でブロードキャスト送信する。RPRノード100に障害が生じたとき、RPRノード100は、TPフレームの送信が不可能となる。また、RPRネットワーク10に属する他のRPRノードは、RPRノード100からTPフレームが届かなくなる。
RPRネットワーク10に属する各RPRノードのRPRスイッチ処理部530は、個々のRPRノードからのTPフレームが到着しない状態が一定時間以上続いた場合、そのRPRノードに障害が生じたと判定する。なお、この一定時間は、TPフレームの送信時間間隔より長く定める。本例では、RPRネットワーク10に属する各RPRノードのRPRスイッチ処理部530が、RPRノード100からのTPフレームが到着しない状態が一定時間続いたことにより、RPRノード100における障害発生を検出する。RPRスイッチ処理部530は、自ノードのTDB560におけるRPRノード100のポートP1,P2,P3のポート状態を無効の状態に変更する。
障害が発生していない各RPRノードのアドレスマッピングテーブル管理部610は、TDB560の上記変更を検出すると、自ノードのインタリンク接続ノードグループテーブル590を参照して、無効となったRPRノード100がインタリンク接続ノードグループに属しているか否かを判定する。この判定は、RPRノード100のMACアドレスが、インタリンク接続ノードグループテーブル590に含まれているならば、インタリンク接続ノードグループに属していると判定する。アドレスマッピングテーブル管理部610は、障害が発生したRPRノード100がインタリンク接続ノードグループに属していると判定した場合には、アドレスマッピングテーブル600から、RPRノード100のMACアドレスを削除する。
この結果、RPRネットワーク10の各RPRノードのアドレスマッピングテーブル600から、障害の発生したRPRノード100のMACアドレスが削除される。
各インタリンク接続ノードが、RPRフレームを受信したときに、そのフレームのパラメータに応じて、イーサネットフレームを配下の端末に送信するか否かを決定しているとする。この場合、他のRPRノードの障害発生を検出した各インタリンク接続ノードのアドレスマッピングテーブル管理部610は、TDB560およびインタリンク接続ノードグループテーブル590を参照して、そのRPRノードがインタリンク接続ノードであるか否かを判定する。障害が発生したRPRノードがインタリンク接続ノードである場合、アドレスマッピングテーブル管理部610は、そのインタリンク接続ノードのMACアドレスをTDB560から読み込み、RPRスイッチ処理部530に通知する。RPRスイッチ処理部530は、そのインタリンク接続ノードに対応するパラメータ値を、他のインタリンク接続ノードに割り当てる。この場合、各インタリンク接続ノードのRPRスイッチ処理部530は、各インタリンク接続ノードに割り当てられたパラメータ値を、インタリンク接続ノード毎に予め記憶しておけばよい。障害の発生していない各インタリンク接続ノードのRPRスイッチ処理部530は、障害の発生したインタリンク接続ノードに対応するパラメータ値を他のインタリンク接続ノードに割り当てた後、その割り当てに従って、イーサネットフレームを配下の端末に送信するか否かを決定する。この結果、障害が発生したインタリンク接続ノードが分担していたイーサネットフレームの送信を、他のインタリンク接続ノードが引き継ぐことができる。
また、いずれか一つのインタリンク接続ノードのみが、イーサネットフレームを配下の端末に送信するように定められていたとする。この場合、イーサネットフレームの送信を行っていたインタリンク接続ノードに障害が発生した場合、他のインタリンク接続ノードのいずれか一つがイーサネットフレームの送信を引き継げばよい。また、この場合、どのインタリンク接続ノードに障害が発生したときに、どのインタリンク接続ノードがイーサネットフレームの送信を引き継ぐのかを予め定めておけばよい。各インタリンク接続ノードのRPRスイッチ処理部530は、TDB560におけるポート状態の変更により、他のインタリンク接続ノードの障害発生を検出したとき、自ノードがイーサネットフレーム送信を引き継ぐか否かを判定する。そして、その判定結果に従って、受信したRPRフレームに格納されたイーサネットフレームを配下の端末に送信するか否かを決定すればよい。
また、インタリンク接続ノードグループに属さない各RPRノードが、ラウンドロビンや重み付けラウンドロビンを採用して、MACアドレス決定処理を行っているとする。アドレスマッピングテーブル600から、障害が発生したRPRノードのMACアドレスが削除されたとき、障害が発生したRPRノードのMACアドレスが選択対象から除外される。
また、インタリンク接続ノードグループに属さない各RPRノードが、イーサネットフレームのパラメータに応じてMACアドレス決定処理を行っているとする。この場合、それら各RPRノードのアドレスマッピングテーブル管理部610は、TDB560およびインタリンク接続ノードグループテーブル590を参照して、障害が発生したRPRノードがインタリンク接続ノードであるか否かを判定する。障害が発生したRPRノードがインタリンク接続ノードである場合、アドレスマッピングテーブル管理部610は、そのインタリンク接続ノードに対応するパラメータ値を、他のインタリンク接続ノードに割り当てるように、RPRフレーム生成部520に通知する。この場合、インタリンク接続ノードグループに属さない各RPRノードのアドレスマッピングテーブル管理部610は、各インタリンク接続ノードに割り当てられたパラメータ値を、インタリンク接続ノード毎に予め記憶しておけばよい。RPRフレーム生成部520は、アドレスマッピングテーブル管理部610からの通知に従って、障害が発生したインタリンク接続ノードに対応するパラメータ値を、そのインタリンク接続ノードと同一のインタリンク接続ノードグループに属する他のインタリンク接続ノードに割り当てて、MACアドレス決定処理を行えばよい。
以上の動作により、RPRネットワーク10からRPRネットワーク20にイーサネットフレームを転送するときに、そのイーサネットフレームを内包したRPRフレームの宛先として、障害の発生したRPRノード100が選択対象から除外される。そして、正常なRPRノード110,160のいずれか1つが選択される。また、FDB540の検索に失敗してRPRフレームをブロードキャスト送信する場合や、インタリンク接続ノードグループに対してマルチキャスト送信する場合にも、正常なRPRノード110,160のうちのいずれか1つが、配下の端末にイーサネットフレームを送信する。従って、RPRノード100に障害が発生しても、RPRネットワーク10からRPRネットワーク20への転送処理を続行することができる。
一方、RPRノード100に障害が発生した場合、RPRノード200にとっては、インタリンク420に障害が発生した状態と同じ状態(RPRノード100と通信できない状態)になる。従って、RPRノード100に障害が発生した場合、RPRノード200は、インタリンク420に障害が発生したことを検出し、RPRネットワーク20に属するRPRノードは、インタリンクに障害が発生したときと同様の動作を行えばよい。よって、RPRネットワーク20からRPRネットワーク10への通信も続行できる。
この結果、障害の発生したRPRノード100に接続されているインタリンク420がイーサネットフレームの転送に使用されなくなり、インタリンク430,440のみがイーサネットフレーム転送に使用されるようになるため、RPRネットワーク10,20間の通信を続行することができる。
次に、RPRノード100の障害が復旧して、RPRノード100のポートP1〜P3のポート状態が無効から有効に変化した場合の動作を説明する。
障害から復旧したRPRノード100は、自ノードの各ポートP1,P2,P3がいずれも有効であることを示すTPフレームを一定の時間間隔でブロードキャスト送信する。RPRネットワーク10に属する他のRPRノードは、RPRノード100からのTPフレームを受信すると、RPRスイッチ処理部530により、RPRノード100の復旧を検出する。RPRスイッチ処理部530は、自ノードのTDB560において、復旧したRPRノード100のポートP1,P2,P3のポート状態を無効から有効に変更する。
各RPRノードのアドレスマッピングテーブル管理部610は、TDB560におけるRPRノード100のポートP3の状態が無効から有効に変化したことを検出すると、自ノードのインタリンク接続ノードグループテーブル590を参照して、そのRPRノード100がインタリンク接続ノードグループに属しているか否かを判定する。アドレスマッピングテーブル管理部610は、障害から復旧したRPRノード100がインタリンク接続ノードグループに属していると判定した場合には、自ノードのアドレスマッピングテーブル600のエントリのうち、障害から復旧したRPRノード100が属するインタリンク接続ノードグループのエントリに、RPRノード100のMACアドレスを追加する。
この結果、RPRネットワーク10の各RPRノードのアドレスマッピングテーブル600に、障害から復旧したRPRノード100のMACアドレスが追加される。
いま、各インタリンク接続ノードが、RPRフレームのパラメータに応じて、そのフレーム中のイーサネットフレームを配下の端末に送信するか否かを決定しているとする。そして、各インタリンク接続ノードのRPRスイッチ処理部530が、障害が発生したインタリンク接続ノードに対応するパラメータの値を他のインタリンク接続ノードに割り当てていたとする。この場合、アドレスマッピングテーブル管理部610は、TDB560を参照した結果、復旧したRPRノードがインタリンク接続ノードである場合、そのインタリンク接続ノードのMACアドレスをTDB560から読み込み、RPRスイッチ処理部530に通知する。RPRスイッチ処理部530は、各インタリンク接続ノードに対するパラメータ値の割り当てを、障害発生前と同様に戻す。この結果、各インタリンク接続ノードは、障害発生前と同様に、配下の端末にイーサネットフレームを送信することができる。
また、いずれか一つのインタリンク接続ノードのみが、イーサネットフレームを配下の端末に送信するように定められていたとする。そして、そのインタリンク接続ノードに障害が発生し、他のインタリンク接続ノードがイーサネットフレームの送信を引き継いでいたとする。この場合、引き継いだインタリンク接続ノードのRPRスイッチ処理部530は、TDB560におけるポート状態の変更により、他のインタリンク接続ノードの復旧を検出したとき、障害発生前と同様に、配下の端末へのイーサネットフレームの送信を行わないことを認識する。一方、障害から復旧したインタリンク接続ノードは、障害発生前と同様に、配下の端末にイーサネットフレームを送信する。
また、インタリンク接続ノードグループに属さない各RPRノードが、ラウンドロビンや重み付けラウンドロビンを採用して、MACアドレス決定処理を行っているとする。アドレスマッピングテーブル600に、障害から復旧したRPRノードのMACアドレスが追加されたとき、そのアドレスが選択対象に復帰する。
また、インタリンク接続ノードグループに属さない各RPRノードが、イーサネットフレームのパラメータに応じてアドレス決定処理を行っているとする。そして、それら各RPRノードのアドレスマッピングテーブル管理部610が、障害の発生したインタリンク接続ノードに対応するパラメータ値を、他のインタリンク接続ノードに割り当てるように、RPRフレーム生成部520に通知していたとする。この場合、それら各RPRノードのアドレスマッピングテーブル管理部610は、TDB560におけるポート状態の変更によりインタリンク接続ノードの復旧を検出したとき、他のインタリンク接続ノードに割り当てたパラメータ値を、復旧したインタリンク接続ノードに割り当て直すように、RPRフレーム生成部520に通知する。RPRフレーム生成部520は、パラメータ値を割り当て直し、MACアドレス決定処理を行う。
以上のような動作により、RPRネットワーク10からRPRネットワーク20にイーサネットフレームを転送するときに、そのイーサネットフレームをカプセル化したRPRフレームの宛先として、復旧したRPRノード100が選択肢に復活する。また、FDB540の検索に失敗してRPRフレームをブロードキャスト送信する場合や、インタリンク接続ノードグループに対してマルチキャスト送信する場合にも、同様である。
また、RPRノード200は、RPRノード100が障害から回復したことにより、インタリンク420が障害から回復したときと同じ状態(RPRノード100と通信可能な状態)になる。従って、RPRノード100が障害から復旧した場合、RPRノード200は、インタリンク420が障害から復旧したことを検出し、RPRネットワーク20に属するRPRノードは、インタリンクが障害から復旧したときと同様の動作を行えばよい。この結果、インタリンク420を経由するRPRネットワーク20からRPRネットワーク10へのイーサネットフレーム転送も再開される。
以上のように、RPRノード100が障害から復旧した場合、通信システムの動作は、RPRノード100の障害発生前の正常時と同様の動作を行うようになる。
次に、RPRネットワーク(10、20)におけるインタリンク接続ノードの両側の2つのリンクに障害が発生した場合の動作について説明する。一例として、RPRネットワーク10のRPRノード100及び110間のリンクと、RPRノード100及び170間のリンクとに、それぞれ障害が発生した場合を説明する。この場合、RPRノート100は、RPRネットワーク10から孤立した状態となる。
このような障害が発生した場合、RPRネットワーク10に属する各RPRノードは、Topology Discovery Protocolにより、RPRノード100との通信が不可能になったこと、すなわち、インタリンク420が使用不可能になったことを認識することができる。
RPRノード100は、自ノードのリンクに障害が発生したことを検出すると、インタリンク420には障害が発生していないが、RPRノード200との接続のためのポートP3を無効化する。この結果、RPRノード200は、インタリンク420に障害が発生したと認識する。そして、RPRネットワーク20に属する各RPRノードは、インタリンクに障害が発生したときと同様の動作を行う。これにより、RPRネットワーク20からRPRネットワーク10への通信は、インタリンク430又は440を用いて続行される。
ここで、仮に、上記障害が発生しても、RPRノード100が自ノードのポートP3を無効にしないとする。この場合、RPRネットワーク20側では、インタリンク420が実質的に使用できないことを認識することができない。その結果、RPRネットワーク20に属する配下の端末から送信されたイーサネットフレームが、インタリンク420を介してRPRノード100に転送され、結局、それより先に転送できないという事態が生じる。従って、RPRノード100が自ノードのポートP3を無効化して、RPRネットワーク20の各RPRノードに、インタリンク420に障害が発生したときと同様の動作を行わせることで、上記のような事態を回避することができる。
RPRネットワーク10に属する各RPRノードは、リンク障害によりRPRノード100との通信が不可能になったことを認識したとき、RPRノード100自体に障害が発生したときと同様の動作を行う。この結果、RPRネットワーク10からRPRネットワーク20への通信も続行することができる。
また、障害が発生していた2つのリンクの少なくとも一方が復旧したとする。このとき、RPRノード100は、復旧を検出すると、自ノードのポートP3のポート状態を有効の状態に変更する。
RPRノード200は、インタリンク420の復旧を検出する。そして、各RPRネットワークのRPRノードは、インタリンクが障害から復旧したときと同様の動作を行う。この結果、インタリンク420を経由するRPRネットワーク20からRPRネットワーク10へのフレーム転送が再開される。
また、RPRノード100,110間のリンクおよびRPRノード100,170間のリンクそれぞれが障害から復旧したことにより、RPRネットワーク10の各RPRノードは、RPRノード100との通信が可能となったと認識する。そして、RPRネットワーク10の各RPRノードは、インタリンク接続ノードが障害から復旧したときと同様の動作を行う。この結果、インタリンク420を経由するRPRネットワーク20からRPRネットワーク10へのフレーム転送も再開される。
以上のように、インタリンク接続ノードの両側のリンクにそれぞれ障害が発生した場合であっても、そのインタリンク接続ノードにおけるインタリンク用のポート(ポートP3)の状態を変更することにより、RPRネットワーク間の通信を維持することが可能である。
次に、RPRネットワーク10またはRPRネットワーク20のいずれか一方または両方において、RPRノード間のリンクに障害が発生した場合、あるいはインタリンク接続ノード以外のRPRノードに障害が発生した場合の障害回復について説明する。
ここでは、それぞれのRPRネットワークにおいて、障害発生は一箇所であるものとする。従って、1つのRPRネットワークでは、リンク障害またはノード障害が1箇所発生するものとする。
このような障害が発生した場合、“IEEE Standards 802.17”において “Steering”または“Wrapping”と呼ばれるプロテクション機能により、正常なRPRノード間の通信を続行することが可能である。そのため、特別な処理を行う必要はない。よって、上記のようなリンク障害またはノード障害が発生したときであっても、RPRネットワーク10とRPRネットワーク20との間の通信を続行することができる。
実施の形態2.
図15は、本発明による通信システムの第2の実施の形態を示す説明図である。第1の実施の形態と同様の構成部については、図1と同一の符号を付し、説明を省略する。
図15に示す例では、通信システムは、RPRノード100〜170を有するRPRネットワーク10と、EoE(Ethernet over Ethernet)ノード700〜770を有するEoEネットワーク30とを備える。EoEノードには、配下に端末を収容するEoEエッジノードと、配下に端末を収容せずにEoEフレームの中継を行うEoEコアノードとがある。EoEエッジノードの配下の端末は、RPRネットワークに属するRPRノードであってもよい。図15に示す例では、RPRノード100とEoEノード700とが、インタリンク450によって接続され、RPRノード110とEoEノード750とが、インタリンク460によって接続され、RPRノード160とEoEノード720とが、インタリンク470によって接続される。
EoEネットワークでは、イーサネットフレームの送信元端末を配下に収容する入口側EoEエッジノードが、その配下の端末から受信したイーサネットフレームをEoEフレームにカプセル化することによりEoEフレームを生成する。EoEエッジノードが出力したEoEフレームは、EoEコアノードの中継により、宛先端末を収容する出口側EoEエッジノードへ転送される。出口側EoEノードは、EoEフレームから抽出したイーサネットフレームを配下の端末に転送する。RPRネットワークにおいてイーサネットフレームがカプセル化されるのと同様に、EoEネットワークにおいてもイーサネットフレームがカプセル化される。
図15に示す例では、EoEノード700,710,730,740,750が、EoEエッジノードである。また、EoEノード760,770がEoEコアノードである。また、インタリンク450,460,470に接続されている各EoEエッジノード700,720,750は、インタリンク接続ノードでもあり、インタリンク接続ノードグループを構成する。
EoEネットワークは、トポロジがリングに限定されない上、STP(Spanning Tree Protocol)を用いれば、EoEネットワーク内の経路を冗長化することが可能である。そのため、設定の簡便なイーサネットスイッチによって、耐障害性の高いネットワークを実現可能であるという長所を有している。
なお、EoEネットワークでは、RPRのTopology Discovery Protocolのようなトポロジを管理するためのプロトコルや、OAMといったネットワーク管理用プロトコルは予め定められていない。
図15におけるEoEネットワーク30は、EoEコアノード760,770の二重化構成によりループを構成しているが、以下の説明では、EoEネットワーク30の制御プロトコルとしてSTPを適用することによって、フレーム転送処理時にループの発生を回避しているものとする。
次に、EoEノードの構成について説明する。ただし、EoEコアノード760,770の構成は、一般的なイーサネットスイッチと同様の構成であるので、説明を省略する。
図16は、EoEエッジノードの構成例を示すブロック図である。図16では、EoEエッジノード700を例に示しているが、各EoEエッジノード700,710,720,730,740,750の構成は、いずれも同様である。
また、EoEエッジノードの構成要素のうち、RPRノードの構成要素と同様の構成要素については、図3と同一の符号を付し、説明を省略する。
EoEエッジノード700は、RPRノードが備えるRPRフレーム生成部520(図3参照。)の代わりに、フレーム生成部640を備える。また、EoEエッジノード700は、RPRノードが備えるRPRスイッチ処理部530の代わりに、スイッチ処理部650を備える。また、EoEエッジノード700は、TDB560を備えず、EoEネットワーク内でのフレーム転送に用いる中継用FDB660を備える。
なお、図15および図16に示す例では、簡単のため、EoEエッジノード700が3つのポートP1,P2,P3を備える場合を示しているが、EoEエッジノードは、一般のイーサネットスイッチと同様に、4ポート以上のポートを備えていてもよい。
フレーム生成部640の動作は、イーサネットフレームをカプセル化するときに、RPRフレームではなくEoEフレームを生成する点を除き、RPRフレーム生成部520と同様である。
スイッチ処理部650の動作は、以下の点を除き、RPRスイッチ処理部530と同様である。RPRスイッチ処理部530と異なる点は、中継用FDB660を参照してEoEフレームの出力ポートを決定する点と、Topology Discovery ProtocolやFairness等のRPRのプロトコルの処理を行わない点である。他のフレーム転送処理については、RPRスイッチ処理部530と同様である。
中継用FDB660は、EoEネットワーク30を構成するEoEエッジノードのMACアドレスとEoEノード700の出力ポートとの対応関係を登録するデータベースである。スイッチ処理部650は、中継用FDB660を参照して、フレーム生成部640によって生成されたEoEフレームの宛先MACアドレスと対応付けられた出力ポートを特定し、その出力ポートからEoEフレームを送信する。
図17は、EoEノード700の中継用FDB660に登録された対応関係の例を示す説明図である。図17に示す例では、例えば、EoEノード710のMACアドレスと、出力ポートP1とが対応付けられている。従って、例えば、フレーム生成部640が、宛先MACアドレスにEoEノード710のMACアドレスを設定してEoEフレームを生成した場合、スイッチ処理部650は、中継用FDB660を参照して、EoEフレームにおける宛先MACアドレス(EoEノード710のMACアドレス)に対応する出力ポートP1を検索し、そのEoEフレームを出力ポートP1から送信する。
また、スイッチ処理部650は、EoEフレームを受信すると、そのEoEフレームの送信元MACアドレスに格納されているMACアドレスと、そのEoEフレームを受信したポートとの対応関係を中継用FDB660に登録する。
また、中継用FDB660には、自ノードの配下の端末のMACアドレスと自ノードのポートとの対応関係も登録される。EoEエッジノードが配下の端末からイーサネットフレームを受信した場合、スイッチ処理部650は、受信したイーサネットフレームの送信元MACアドレスに設定されているMACアドレスと、そのイーサネットフレームを受信したポートとの対応関係を、中継用FDB660に登録する。スイッチ処理部650は、EoEフレームにカプセル化されているイーサネットフレームの宛先MACアドレスに対応するポートを中継用FDB660で検索し、そのポートをイーサネットフレームの出力ポートとして決定する。
以上のように、中継用FDB660は、通常のイーサネットにおけるMACアドレス学習を行う。
なお、FDB540も、MACアドレス学習を行う。第二の実施の形態では、FDB540には、EoEフレームの受信時に、そのEoEフレームにカプセル化されているイーサネットフレームの送信元MACアドレスと、そのEoEフレームの送信元MACアドレスとの対応関係が登録される。また、フレーム生成部640は、イーサネットフレーム受信時に、FDB540を参照して、イーサネットフレームの宛先MACアドレスに対応するMACアドレスを検索し、そのMACアドレスをEoEフレームの宛先MACアドレスに格納する。
以下の説明において、EoEネットワーク内のフレームの中継動作については、本発明の動作に深く関わらない限りは、簡潔に説明する。
第2の実施の形態におけるRPRノード配下の端末とEoEエッジノード配下の端末との間のフレーム転送は、第1の実施の形態で説明したRPRノード配下の端末同士のフレーム転送と同様である。すなわち、第1の実施の形態(図1参照)で説明したRPRノード140配下の端末とRPRノード240配下の端末とのフレーム転送と同様である。
また、図15に示すEoEネットワーク30におけるフレーム転送は、RPRフレームがEoEフレームに変更された点と、EoEネットワーク30内でEoEフレームを転送する際に、中継用FDB660を参照して出力ポートを決定する点を除き、第1の実施の形態で述べたRPRネットワーク10またはRPRネットワーク20におけるフレーム転送と同様である。
また、本実施の形態の通信システムの障害発生時および復旧時における動作は、以下に述べる点を除き、第1の実施の形態における障害発生時および復旧時における動作と同様である。
EoEネットワーク30では、トポロジを管理するプロトコルが定められていないため、第1の実施形態のインタリンク障害時のフレーム転送で説明した、TDB550の参照によりアドレスマッピングテーブル600を更新する態様は、本実施の形態に適用できない。すなわち、インタリンクに対応するポートP3の状態を示すTPフレームを一定の時間間隔で送信し、そのTPフレームを受信したRPRノードがTDB560のポートP3の状態を更新すると、アドレスマッピングテーブル管理部610が、アドレスマッピングテーブル600を更新するという態様は、本実施の形態に適用できない。
従って、第2の実施の形態において、インタリンク障害が発生した場合は、そのインタリンクに接続されるインタリンク接続ノードが、特殊EoEフレームを送信することにより、他のEoEエッジノードのアドレスマッピングテーブル600の更新を要求する。特殊EoEフレームは、フレームの形態がRPRフレームではなくEoEフレームであるという点を除き、前述の特殊RPRフレームと同様のフレームである。
また、EoEネットワーク30に属するEoEエッジノードは、TPフレームを一定の時間間隔で送信しない。そのため、第二の実施の形態では、TPフレームが到着しないことを検出することによって、インタリンク接続ノードに障害が発生したことを検出することはできない。
従って、第2の実施の形態では、EoEネットワーク30のインタリンク接続ノード700,720,750が、一定の時間間隔でキープアライブフレームを送信する。そして、他のEoEエッジノードは、キープアライブフレームが一定時間以上到着しない場合に、インタリンク接続ノードに障害が発生したと判定する。この判定における「一定時間」は、キープアライブフレームの送信時間間隔よりも長く定める。そして、EoEエッジノードは、障害発生を検出すると、アドレスマッピングテーブル600を更新する。なお、この場合、インタリンク接続ノード700,720,750は、EoEネットワークに属する各EoEエッジノードにキープアライブフレームが到達するようにキープアライブフレームを送信する。例えば、キープアライブフレームをブロードキャスト送信する。
以上のように、図15に示す通信システムにおいても、RPRネットワークとEoEネットワークとの間のインタリンクを冗長化することにより、信頼性の高い通信システムを実現することができる。
実施の形態3.
図18は、本実施の形態による通信システムの第3の実施の形態を示す説明図である。RPRネットワーク10は、RPRノード100〜170を備える。図18に示す例では、RPRノード100,110,170は、共通の端末300を配下に収容している。従って、RPRノード100,110,170は、インタリンク接続ノードグループを構成するインタリンク接続ノードである。図18に示す通信システムは、このような構成によりマルチホーミングの構成を実現している。端末320,330,340,350,360は、それぞれRPRノード120,130,140,150,160の配下に収容される端末である。
各RPRノード100〜170の構成は、第1の実施の形態における各RPRノードの構成(図3参照)と同様である。
本実施の形態におけるRPRノードおよび端末の動作は、以下の点を除き、第1の実施の形態における動作と同様である。本実施の形態では、インタリンク接続ノード(100,110,170)の配下に収容される端末300は、イーサネットフレームをRPRノードに送信するときに、RPRノード100,110,170のうちいずれか1つを選択し、選択したRPRノードにイーサネットフレームを送信する。
端末300は、少なくとも以下の各条件を満たすRPRノードを選択して、そのRPRノードにイーサネットフレームを送信する。第1の条件は、端末300を収容するRPRノードに障害が発生していないことである。RPRノード100,110,170のいずれかに障害が発生しているならば、端末300は、そのRPRノードを選択対象から除外する。第2の条件は、端末300とRPRノードとのリンクに障害が発生していないことである。例えば、端末300とRPRノード100との間のリンクに障害が発生しているならば、端末300は、RPRノード100を選択対象から除外する。他のRPRノードに関しても同様である。第3の条件は、選択対象のRPRノードが、RPRネットワーク10に属する他のRPRノードと通信可能であることである。例えば、RPRノード170、100間のリンクおよびRPRノード170、160間のリンクのそれぞれに障害が発生しているとする。この場合、RPRノード170は、RPRネットワーク10から孤立した状態となることから、自身に障害が発生していなくても、他のRPRノードとRPRフレームを送受信できない。このような場合、端末300は、RPRノード170を選択対象から除外する。
端末300は、各RPRノードとの間のリンクにおける障害発生を、RPRノードと同様に検出すればよい。すなわち、端末300は、ポート状態監視部620と同様の装置を備え、ポートの状態を監視することによりリンクにおける障害発生を検出すればよい。
また、各RPRノード100,110,170は、端末300に対して一定期間毎にキープアライブフレームを送信し、端末300は、一定期間を越えてもキープアライブフレームが到着しないときに、RPRノードに障害が発生したと判定すればよい。
また、RPRノード100,110,170は、RPRネットワーク10に属する他のRPRノードと通信不可能になった場合には、その旨を示す情報を端末300に送信すればよい。例えば、RPRノード170,160間のリンクおよびRPRノード170,100間のリンクの両方に障害が発生した場合、RPRノード170は、その旨の情報を端末300に送信すればよい。
上記の端末300の機能は、端末300のポートP1〜P3にリングアグリゲーション(LAG)を適用することにより容易に実現することができる。図18に示す例では、端末300のポートP1,P2,P3は、それぞれRPRノード100,110,170との間のリンクに接続されるポートである。
また、選択可能なRPRノードが複数存在する場合、端末300は、ラウンドロビンや重み付けラウンドロビンによってRPRノード10,110,170のいずれかを選択してもよい。あるいは、端末300が送信しようとするイーサネットフレームに含まれるパラメータ値に応じてRPRノード10,110,170のいずれかを選択してもよい。
図18では、RPRネットワーク10の複数のRPRノードが配下に共通の端末300を収容している場合を示したが、この構成に替えて、EoEネットワークに属する複数のEoEエッジノードが配下に共通の端末を収容している構成であってもよい。
以上のように、RPRネットワーク間を接続するインタリンクの冗長化のみではなく、RPRネットワークおよび端末間のリンクの冗長化についても、本発明を適用することにより実現することが可能である。
また、上記の各実施の形態では、RPRノードやEoEノードが、フレーム解析部510−1,510−2などの各処理部を備える構成として説明したが、RPRノードやEoEノードが、コンピュータを備え、そのコンピュータがプログラムに従って、図3や図16に示す各処理部と同様の動作をする構成であってもよい。プログラムは、ノードが備える記憶装置に予め記憶させておけばよい。
特許請求の範囲に記載されたデータベースは、FDB540によって実現される。また、検索手段、アドレス決定手段、フレーム生成手段、生成手段は、RPRフレーム生成部520(またはフレーム生成部640)によって実現される。また、システム内通信用フレーム送信手段、信号送信手段、送信可否判定手段、禁止手段、ブロードキャスト受信時送信可否判定手段、送信手段は、RPRスイッチ処理部530(またはスイッチ処理部650)によって実現される。リンク状態監視手段は、ポート状態監視部620によって実現される。リンク障害通知手段530は、RPRスイッチ処理部530によって実現される。端末フレーム送信手段、ブロードキャスト受信時端末フレーム送信手段は、イーサネットフレーム抽出部570によって実現される。