(57)【要約】【課題】レイヤ２において、ネットワーク規模の制約がなく、経路の切り替えが短時間で可能な冗長構成を有するネットワークおよびノード装置を提供する。【解決手段】第１のノード１１，１２は、リンク状態を反映した冗長構成に関する情報を含むメッセージをグループ内で送受信する。第２のノード１３，１４は、冗長構成の組をなす複数のリンクを介して複数の第１のノード１１，１２と接続され、いずれかの第１のノードから送信されたメッセージを、同じグループ内の他の第１のノードに転送する。第１のノード１１，１２は、メッセージの送受信によって定まる制御対象ポート１１１，１１２，１２１，１２２の優先度に従って、グループ内の冗長構築における自身の制御対象ポート１１１，１１２，１２１，１２２の状態を定める。【選択図】      図１
2005020543.tif 000002
【特許請求の範囲】
【請求項１】
冗長構成を有するレイヤ２のネットワークシステムであって、
冗長構成の組をなす複数のリンクに接続された制御対象ポートの各々を有する同士が、冗長構築の単位となる同じグループに属し、リンク状態を反映した冗長構成に関する情報を含むメッセージを該グループ内で送受信することにより定まる前記制御対象ポートの優先度に従って、前記グループ内の冗長構築における自身の制御対象ポートの状態を定める複数の第１のノードと、
冗長構成の組をなす複数の前記リンクを介して複数の前記第１のノードと接続され、いずれかの第１のノードから送信された前記メッセージを、同じ前記グループ内の他の第１のノードに転送する少なくとも１つの第２のノードとを有するネットワークシステム。
【請求項２】
前記第１のノードは、前記制御対象ポートで通常フレームを転送するか否かを該制御対象ポートの状態に応じて制御することにより冗長構成における経路選択を行う、請求項１記載のネットワークシステム。
【請求項３】
前記冗長構成に関する情報は前記優先度を含む、請求項１または２に記載のネットワークシステム。
【請求項４】
前記第１のノードは、自身の有する前記制御対象ポートが前記グループ内で最も優先度が高い場合に、該制御対象ポートで前記通常フレームを転送する、請求項１〜３のいずれか１項に記載のネットワークシステム。
【請求項５】
前記第１のノードは、自身の有する前記制御対象ポートの属する前記グループを示す情報が予め明示的に設定されている、請求項１〜４のいずれか１項に記載のネットワークシステム。
【請求項６】
前記第１のノードは、前記グループ内の前記第１のノードのうち、リンクアップ状態となっている制御対象ポートの数が多い第１のノードが有する前記制御対象ポートの優先度が高いと判断する、請求項１〜５のいずれか１項に記載のネットワークシステム。
【請求項７】
前記グループ内の前記第１のノードの各々に予めブリッジ優先度が設定されており、前記第１のノードは、該ブリッジ優先度が高い程前記優先度が高いと判断する、請求項１〜６のいずれか１項に記載のネットワークシステム。
【請求項８】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記第１のノードは、前記仮想ネットワークが分類されたインスタンス毎に独立して、冗長構築における前記制御対象ポートの状態を定める、請求項１〜７のいずれか１項に記載のネットワークシステム。
【請求項９】
前記メッセージは、インスタンス識別情報によって識別される、請求項８記載のネットワークシステム。
【請求項１０】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記第１のノードは、前記仮想ネットワーク毎に独立して、冗長構築における前記制御対象ポートの状態を定める、請求項１〜７のいずれか１項に記載のネットワークシステム。
【請求項１１】
前記第１および第２のノードは、前記ネットワークにおける冗長の無い区間のリンクに接続されている場合、該リンクの障害を、自身に接続された冗長構成の組をなす他のリンクの障害として動作する、請求項１〜１０のいずれか１項に記載のネットワークシステム。
【請求項１２】
冗長構成を有するレイヤ２のネットワークシステムを構成するノード装置であって、
リンクにより前記ノード装置間を相互接続する複数のポートと、
冗長構成の組をなす複数のリンクの各々に接続された同士が属するグループ内の他のノード装置との間で、リンク状態を反映した冗長構成に関する情報を含むメッセージを前記ポートを介して送受信することにより自身のポートの優先度を定め、該優先度に従って前記グループ内の冗長構築における自身の前記ポートの状態を定めるコントローラと、
前記ポートにて受信された他のノードからの前記メッセージを前記コントローラに送り、前記コントローラから前記他のノードへの前記メッセージを前記ポートから送信する挿入分離手段と、
前記ポートで送受信されるフレームを、前記コントローラによって定められた前記ポートの状態に応じて廃棄するフィルタ手段と、
いずれかのポートにて受信され、前記フィルタ手段により廃棄されていない通常フレームを他の所定のポートから送信するスイッチ手段とを有するノード装置。
【請求項１３】
前記コントローラは、冗長構成の組をなすリンクに接続されたポートで前記通常フレームを転送するか廃棄するかを、前記ポートの状態に応じて決定し前記フィルタ手段に指示する、請求項１２記載のノード装置。
【請求項１４】
前記冗長構成に関する情報は前記優先度を含む、請求項１２または１３に記載のノード装置。
【請求項１５】
前記コントローラは、自身の有する前記ポートが前記グループ内で最も優先度が高い場合に、該ポートで前記通常フレームを転送することを決定する、請求項１２〜１４のいずれか１項に記載のノード装置。
【請求項１６】
自身の属する前記グループが予め設定されている、請求項１２〜１５のいずれか１項に記載のノード装置。
【請求項１７】
前記コントローラは、前記グループ内の前記ノード装置のうち、リンクアップ状態となっている、冗長構成の組をなすリンクに接続された前記ポートの数が多いノード装置が有する前記ポートの優先度が高いと判断する、請求項１２〜１６のいずれか１項に記載のノード装置。
【請求項１８】
前記グループ内の前記ノード装置の各々に予めブリッジ優先度が設定されており、前記コントローラは、該ブリッジ優先度が高い程前記優先度が高いと判断する、請求項１２〜１７のいずれか１項に記載のノード装置。
【請求項１９】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記コントローラは、前記仮想ネットワークが分類されたインスタンス毎に独立して、冗長構築における前記ポートの状態を定める、請求項１２〜１８のいずれか１項に記載のノード装置。
【請求項２０】
前記メッセージは、インスタンス識別情報によって識別される、請求項１９に記載のノード装置。
【請求項２１】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記コントローラは、前記仮想ネットワーク毎に独立して、冗長構築における前記制御対象ポートの状態を定める、請求項１２〜１８のいずれか１項に記載のノード装置。
【請求項２２】
前記ノード装置が前記ネットワークにおける冗長の無い区間のリンクに接続されている場合、前記コントローラは、該リンクの障害を、自身に接続された冗長構成の組をなす他のリンクの障害として動作する、請求項１２〜２１のいずれか１項に記載のノード装置。
【請求項２３】
レイヤ２のネットワークシステムの冗長構築を行うための、前記ネットワークシステムを構成するノードの各々における冗長構築方法であって、
冗長構成の組をなす複数のリンクの各々に接続された同士が属するグループ内の他のノードとの間で、リンク状態を反映した冗長構成に関する情報を含むメッセージを送受信することにより自身のポートの優先度を定めるステップと、
該優先度に従って前記グループ内の冗長構築における自身の前記ポートの状態を定めるステップと、
自身の前記ポートの状態に応じて、該ポートで通常フレームを転送するか否かを制御することにより経路選択を行うステップとを有する冗長構築方法。
【請求項２４】
自身の有する制御対象の前記ポートが前記グループ内で最も優先度が高い場合に該ポートで前記通常フレームを転送する、請求項２３に記載の冗長構築方法。
【請求項２５】
前記冗長構成に関する情報は前記優先度を含む、請求項２３または２４に記載の冗長構築方法。
【請求項２６】
前記グループ内で、リンクアップ状態となっている制御対象のポートの数が多いノードの有する制御対象の前記ポートの優先度が高いと判断する、請求項２３〜２５のいずれか１項に記載の冗長構築方法。
【請求項２７】
前記グループ内の、制御対象の前記ポートを有する前記ノードの各々に予めブリッジ優先度が設定されており、前記ノードの該ブリッジ優先度が高い程、該ノードの前記ポートの前記優先度が高いと判断する、請求項２３〜２６のいずれか１項に記載の冗長構築方法。
【請求項２８】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記仮想ネットワークが分類されたインスタンス毎に独立して、冗長構築における前記ポートの状態を定める、請求項２３〜２７のいずれか１項に記載の冗長構築方法。
【請求項２９】
前記メッセージは、インスタンス識別情報によって識別される、請求項２８に記載の冗長構築方法。
【請求項３０】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記仮想ネットワーク毎に独立して、冗長構築における前記制御対象ポートの状態を定める、請求項２３〜２７のいずれか１項に記載の冗長構築方法。
【請求項３１】
前記ノードが前記ネットワークにおける冗長の無い区間のリンクに接続されている場合、該リンクの障害を、自身に接続された冗長構成の組をなす他のリンクの障害として動作する、請求項２３〜３０のいずれか１項に記載の冗長構築方法。
【請求項３２】
レイヤ２のネットワークシステムの冗長構築を行うために、前記ネットワークシステムを構成するノードの各々に用いられる冗長構築プログラムであって、
冗長構成の組をなす複数のリンクの各々に接続された同士が属するグループ内の他のノードとの間で、リンク状態を反映した冗長構成に関する情報を含むメッセージを送受信することにより自身のポートの優先度を定める処理と、
該優先度に従って前記グループ内の冗長構築における自身の前記ポートの状態を定める処理と、
自身の前記ポートの状態に応じて、該ポートで通常フレームを転送するか否かを制御することにより経路選択を行う処理とを有する冗長構築プログラム。
【請求項３３】
自身の有する制御対象の前記ポートが前記グループ内で最も優先度が高い場合に該ポートで前記通常フレームを転送する、請求項３２に記載の冗長構築プログラム。
【請求項３４】
前記冗長構成に関する情報は前記優先度を含む、請求項２９または３３に記載の冗長構築プログラム。
【請求項３５】
前記グループ内で、リンクアップ状態となっている制御対象のポートの数が多いノードの有する制御対象の前記ポートの優先度が高いと判断する、請求項３２〜３４のいずれか１項に記載の冗長構築プログラム。
【請求項３６】
前記グループ内の、制御対象の前記ポートを有する前記ノードの各々に予めブリッジ優先度が設定されており、前記ノードの該ブリッジ優先度が高い程、該ノードの前記ポートの前記優先度が高いと判断する、請求項３２〜３５のいずれか１項に記載の冗長構築プログラム。
【請求項３７】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記仮想ネットワークが分類されたインスタンス毎に独立して、冗長構築における前記ポートの状態を定める、請求項３２〜３６のいずれか１項に記載の冗長構築プログラム。
【請求項３８】
前記メッセージは、インスタンス識別情報によって識別される、請求項３７に記載の冗長構築プログラム。
【請求項３９】
前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記仮想ネットワーク毎に独立して、冗長構築における前記制御対象ポートの状態を定める、請求項３２〜３６のいずれか１項に記載の冗長構築プログラム。
【請求項４０】
前記ノードが前記ネットワークにおける冗長の無い区間のリンクに接続されている場合、該リンクの障害を、自身に接続された冗長構成の組をなす他のリンクの障害として動作する、請求項３２〜３９のいずれか１項に記載の冗長構築プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワークの冗長構成に関する。
【０００２】
【従来の技術】
ネットワークにおける冗長を構築するプロトコルとしてスパニングツリープロトコル（以下、ＳＴＰと称す）が知られている（例えば、特許文献１参照）。
【０００３】
通常、ネットワーク内には、通信装置や伝送路の障害に対する信頼性を向上するために冗長リンクが設けられ、複数の経路が選択可能となっている。
【０００４】
しかし、複数の経路が選択可能なためネットワーク内にループが形成される可能性がある。特に、レイヤ２では、ネットワーク内にループが存在すると、ブロードキャストフレームがループを廻り続けてしまうという、いわゆるブロードキャストストームの問題が起こる。
【０００５】
ＳＴＰは、レイヤ２において、複数のブリッジを含むブロードキャストドメイン内の冗長を構築すると共にブロードキャストストームの問題を解決する。ＳＴＰでは、ブロードキャストドメイン内のブリッジが互いにブリッジＩＤやポートの情報をやりとりすることにより、ルートブリッジの選択、ブロックするポートの選択などの段階を経て、フレームを転送する経路からなるスパニングツリートポロジが決定される。リンク障害が発生すると、使用できなくなったブリッジやポートを除外して新たなスパニングツリートポロジーが決定される。このようにレイヤ２における冗長を構築することによりネットワーク内の障害に対する信頼性の向上が図られている。
【０００６】
【特許文献１】
特開２００１−２６８１０４号公報
【０００７】
【発明が解決しようとする課題】
上述したように、ＳＴＰによれば障害が発生しても新たな経路により通信を再開することができる。しかし、ＳＴＰでは、障害が発生したとき、または復旧したときの経路の収束時間が長いという問題がある。
【０００８】
ＳＴＰでは、ループが形成されているか否か認識するために時間がかかり、この間、ブリッジはフレームのフォワーディングを行わない。この時間はパラメータの設定により異なるが、一般的には、スパニングツリートポロジーが決定され、フレームのフォワーディングが再開されるまで３０秒あるいは５０秒程度を必要とする。通常、リンク障害に対する復旧時間としては１〜２秒程度が要求されている。
【０００９】
また、ＳＴＰの動作はネットワーク規模に大きく影響を受ける。大規模なネットワーク（ブロードキャストドメイン）ではブリッジの接続されるノード段数が増え、ブロードキャストドメイン内のブリッジ間におけるメッセージの伝達遅延が大きくなる。
【００１０】
障害が発生したとき、または復旧したとき、状態変更はブリッジ間でメッセージにより送受信される。このメッセージがループを認識するためにタイマ設定された時間内に到達しなければ、スパニングツリートポロジーにループが形成されてしまう可能性がある。
【００１１】
このノード段数は経路の収束時間とトレードオフの関係にあり、ノード段数を増やすためには収束時間を長くとる必要があり、逆に収束時間を短縮するためにはノード段数を制限する必要がある。そのためネットワークの拡張性がなく、実際上は１６〜１７段程度が限度とされている。
【００１２】
また、ＳＴＰでは、冗長構成および動作が複雑なため、障害の発生によりツリートポロジーが変化したとき、その原因となった障害の発生箇所を特定するのが非常に困難である。障害が発生すると、ケーブルや通信装置の交換や修理などの復旧作業が必要となるが、障害発生箇所の特定が困難であれば作業工数が大きくなり、また作業時間が長くなってしまう。
【００１３】
保守および管理面では、同様の理由から、実際の経路として選択されているツリートポロジーの把握が困難なため、ネットワーク管理が十分に行えないという問題もある。
【００１４】
また、ＳＴＰでは、通信装置やケーブルを増設してネットワーク構成を変更すると、ツリートポロジーの再計算が行われ、それが運用中の既存部分にも影響し、ツリートポロジーが決定されるまでフレームの転送が行われない。
【００１５】
また、仮想的にブロードキャストドメインが構築されたＶＬＡＮにおいて、ＳＴＰは、ＶＬＡＮタグによりＶＬＡＮを認識し、ＶＬＡＮ単位で１つのツリートポロジーを構成する。そのため、ＩＥＥＥ８０２．１Ｑに規定されたＶＬＡＮタグをスタックした階層型ＶＬＡＮネットワークでは、スタックされたＶＬＡＮタグにより示される階層化されたＶＬＡＮが認識されずツリートポロジーが構築されない。
【００１６】
本発明の目的は、レイヤ２において、ネットワーク規模の制約がなく、経路の切り替えが短時間で可能な冗長構成を有するネットワークおよびノード装置を提供することである。
【００１７】
【課題を解決するための手段】
上記目的を達成するために、本発明のネットワークシステムは、冗長構成を有するレイヤ２のネットワークシステムであって、
冗長構成の組をなす複数のリンクに接続された制御対象ポートの各々を有する同士が、冗長構築の単位となる同じグループに属し、リンク状態を反映した冗長構成に関する情報を含むメッセージを該グループ内で送受信することにより定まる前記制御対象ポートの優先度に従って、前記グループ内の冗長構築における自身の制御対象ポートの状態を定める複数の第１のノードと、
冗長構成の組をなす複数の前記リンクを介して複数の前記第１のノードと接続され、いずれかの第１のノードから送信された前記メッセージを、同じ前記グループ内の他の第１のノードに転送する少なくとも１つの第２のノードとを有している。
【００１８】
また、前記第１のノードは、前記制御対象ポートで通常フレームを転送するか否かを該制御対象ポートの状態に応じて制御することにより冗長構成における経路選択を行うこととしてもよい。
【００１９】
また、前記冗長構成に関する情報は前記優先度を含むこととしてもよい。
【００２０】
また、前記第１のノードは、自身の有する前記制御対象ポートが前記グループ内で最も優先度が高い場合に、該制御対象ポートで前記通常フレームを転送することとしてもよい。
【００２１】
したがって、本発明によれば、冗長構成の組をなすリンクに接続された複数の第１のノードを同じグループに括り、そのグループ内の第１のノード同士でメッセージにより通信することにより、各第１のノードがグループ内での自身の制御対象ポートの優先度を定め、その優先度に従って制御対象ポートの状態を定める。
【００２２】
また、前記第１のノードは、自身の有する前記制御対象ポートの属する前記グループを示す情報が予め明示的に設定されていることとしてもよい。
【００２３】
また、前記第１のノードは、前記グループ内の前記第１のノードのうち、リンクアップ状態となっている制御対象ポートの数が多い第１のノードが有する前記制御対象ポートの優先度が高いと判断することとしてもよい。
【００２４】
また、前記グループ内の前記第１のノードの各々に予めブリッジ優先度が設定されており、前記第１のノードは、該ブリッジ優先度が高い程前記優先度が高いと判断することとしてもよい。
【００２５】
また、前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記第１のノードは、前記仮想ネットワークが分類されたインスタンス毎に独立して、冗長構築における前記制御対象ポートの状態を定めることとしてもよい。
【００２６】
したがって、グループをインスタンス単位に分割して冗長構築を行うので、仮想ネットワーク毎に行う場合と比べて、少ない並列数の冗長構築処理で、各リンクへ負荷分散できる。
【００２７】
また、前記メッセージは、インスタンス識別情報によって識別されることとしてもよい。
【００２８】
したがって、仮想ネットワークを識別するためのタグ情報を用いずに、冗長構成に関する情報のメッセージを送受信することができる。
【００２９】
あるいは、前記ネットワークシステム内に少なくとも１つの仮想ネットワークが構成されており、前記第１のノードは、前記仮想ネットワーク毎に独立して、冗長構築における前記制御対象ポートの状態を定めることとしてもよい。
【００３０】
また、前記第１および第２のノードは、前記ネットワークにおける冗長の無い区間のリンクに接続されている場合、該リンクの障害を、自身に接続された冗長構成の組をなす他のリンクの障害として動作することとしてもよい。
【００３１】
したがって、冗長の無い１対１のノード接続区間においてリンク障害が発生しても、そのリンク障害によりフレームの疎通に影響を受けるリンクの障害として扱って冗長構築を行うことができる。
【００３２】
本発明のノード装置は、冗長構成を有するレイヤ２のネットワークシステムを構成するノード装置であって、
リンクにより前記ノード装置間を相互接続する複数のポートと、
冗長構成の組をなす複数のリンクの各々に接続された同士が属するグループ内の他のノード装置との間で、リンク状態を反映した冗長構成に関する情報を含むメッセージを前記ポートを介して送受信することにより自身のポートの優先度を定め、該優先度に従って前記グループ内の冗長構築における自身の前記ポートの状態を定めるコントローラと、
前記ポートにて受信された他のノードからの前記メッセージを前記コントローラに送り、前記コントローラから前記他のノードへの前記メッセージを前記ポートから送信する挿入分離手段と、
前記ポートで送受信されるフレームを、前記コントローラによって定められた前記ポートの状態に応じて廃棄するフィルタ手段と、
いずれかのポートにて受信され、前記フィルタ手段により廃棄されていない通常フレームを他の所定のポートから送信するスイッチ手段とを有している。
【００３３】
本発明の冗長構築方法は、レイヤ２のネットワークシステムの冗長構築を行うための、前記ネットワークシステムを構成するノードの各々における冗長構築方法であって、
冗長構成の組をなす複数のリンクの各々に接続された同士が属するグループ内の他のノードとの間で、リンク状態を反映した冗長構成に関する情報を含むメッセージを送受信することにより自身のポートの優先度を定めるステップと、
該優先度に従って前記グループ内の冗長構築における自身の前記ポートの状態を定めるステップと、
自身の前記ポートの状態に応じて、該ポートで通常フレームを転送するか否かを制御することにより経路選択を行うステップとを有している。
【００３４】
本発明の冗長構築プログラムは、レイヤ２のネットワークシステムの冗長構築を行うために、前記ネットワークシステムを構成するノードの各々に用いられる冗長構築プログラムであって、
冗長構成の組をなす複数のリンクの各々に接続された同士が属するグループ内の他のノードとの間で、リンク状態を反映した冗長構成に関する情報を含むメッセージを送受信することにより自身のポートの優先度を定める処理と、
該優先度に従って前記グループ内の冗長構築における自身の前記ポートの状態を定める処理と、
自身の前記ポートの状態に応じて、該ポートで通常フレームを転送するか否かを制御することにより経路選択を行う処理とを有している。
【００３５】
【発明の実施の形態】
本発明の一実施形態について図面を参照して詳細に説明する。
【００３６】
図１は、本発明の一実施形態のネットワークの構成を示す図である。本実施形態のネットワークは、複数のノードがイーサネットで接続された構成である。
【００３７】
図１を参照すると、ネットワークはノード１１〜１７で構成されている。ここでは、ノード１１〜１７はブリッジであるとする。
【００３８】
ノード１１のポート１１１はノード１３のポート１３１に物理的に接続されている。同様に、ノード１１のポート１１２はノード１４のポート１４１に接続されている。ノード１２のポート１２１はノード１３のポート１３２に接続されている。ノード１２のポート１２２はノード１４のポート１４２に接続されている。
【００３９】
ノード１３のポート１３３はノード１５のポート１５１に接続されている。同様に、ノード１３のポート１３４はノード１６のポート１６１に接続されている。ノード１３のポート１３５はノード１７のポート１７１に接続されている。ノード１４のポート１４３はノード１５のポート１５２に接続されている。ノード１４のポート１４４はノード１６のポート１６２に接続されている。ノード１４のポート１４５はノード１７のポート１７２に接続されている。
【００４０】
ノード１５のポート１５３には端末１８が接続されている。同様に、ノード１６のポート１６３には端末１９が接続されている。ノード１７のポート１７３には端末２０が接続されている。
【００４１】
ノード１１〜１７は、冗長構成を制御し、フレームを転送する経路を構築するために、冗長構築用フレームを相互にやりとりする。
【００４２】
図２は、冗長構築用フレームの一例に含まれる各フィールドの内容を示す表である。図２を参照すると、冗長構築用フレームには、宛先ＭＡＣアドレス（Ｄｅｓｔｉｎａｔｉｏｎ  ＭＡＣ  Ａｄｄｒｅｓｓ）、送信元ＭＡＣアドレス（Ｓｏｕｒｃｅ  ＭＡＣ  Ａｄｄｒｅｓｓ）、イーサタイプ（Ｅｔｈｅｒ  Ｔｙｐｅ）、バージョン番号（Ｖｅｒｓｉｏｎ）、メッセージタイプ（Ｍｅｓｓａｇｅ  Ｔｙｐｅ）、ポート種別（Ｓｔａｔｕｓ）、ターゲットブリッジ（Ｔａｒｇｅｔ）、Ｈｅｌｌｏメッセージ送信間隔（Ｈｅｌｌｏｔｉｍｅ）、Ｈｅｌｌｏ未受信時待ち受け時間（Ｈｏｌｄｔｉｍｅ）、ブリッジ優先度（Ｐｒｉｏｒｉｔｙ）、グループ番号（Ｇｒｏｕｐ）、インスタンス番号（Ｉｎｓｔａｎｃｅ）、認証タイプ（Ａｕｔｈ  ｔｙｐｅ）、認証データ（Ａｕｔｈ  Ｄａｔａ）、有効ポート数（Ａｌｉｖｅ  ｐｏｒｔｓ）、およびフレームチェックシーケンス（ＦＣＳ）の各フィールドがある。
【００４３】
宛先ＭＡＣアドレスフィールドには、予約済みの固定アドレスが入る。例えば、図１のノード１１がＨｅｌｌｏメッセージを送る宛先はノード１２である。
【００４４】
送信元ＭＡＣアドレスフィールドには、自装置のＭＡＣアドレスが入る。
【００４５】
イーサタイプフィールドには、イーサネットの種別を示す値が入る。
【００４６】
バージョン番号フィールドには、イーサネットのバージョン番号が入る。
【００４７】
メッセージタイプには、冗長構築用メッセージのいずれかのタイプを示す値が入る。冗長構成に関するメッセージのタイプとしては「Ｈｅｌｌｏ」、「Ｒｉｓｅ」、「Ｓｉｎｋ」、「Ｒｅｓｉｇｎ」、「Ｓｔａｙ」、および「Ｃｌｅａｒ」がある。
【００４８】
ポート種別フィールドには、ノード内のポート種別として「Ａｃｔｉｖｅ」、「Ｓｔａｎｄｂｙ」、または「Ｌｉｓｔｅｎ」を示す値が入る。
【００４９】
ターゲットブリッジフィールドは、ＲｅｓｉｇｎメッセージおよびＳｔａｙメッセージのみで有効となり、ターゲット装置のＭＡＣアドレスの値が入る。Ｒｅｓｉｇｎメッセージは、Ａｃｔｉｖｅポートを有するノードがＲｉｓｅメッセージを受けたとき、その応答として送信するメッセージである。Ｒｅｓｉｇｎメッセージのターゲット装置は、Ｒｉｓｅメッセージを送信したノードである。Ｓｔａｙメッセージは、Ａｃｔｉｖｅポートを有するノードがＳｉｎｋメッセージを受けたとき、その応答として送信するメッセージである。Ｓｔａｙメッセージのターゲット装置は、Ｓｉｎｋメッセージを送信したノードである。
【００５０】
Ｈｅｌｌｏメッセージ送信間隔フィールドは、Ｈｅｌｌｏメッセージのみで有効となり、Ｈｅｌｌｏメッセージを送信する間隔を示す値が入る。
【００５１】
Ｈｅｌｌｏ未受信時の待ち受け時間フィールドは、Ｈｅｌｌｏメッセージのみで有効となり、一定送信間隔で送信されるＨｅｌｌｏメッセージを待ち受ける時間を示す値が入る。この値によりＨｅｌｌｏメッセージの受信タイムアウトが測定される。
【００５２】
ブリッジ優先度フィールドには、経路を選択するときのノードの優先度を示す値が入る。
【００５３】
グループ番号フィールドには、制御対象のポートが属するグループの番号が入る。
【００５４】
インスタンス番号フィールドには、インスタンス毎の冗長構築を行う場合に、各インスタンスを識別する番号が入る。
【００５５】
例えば、多数のＶＬＡＮが存在する場合、それより少ない数のインスタンスのうちのいずれかに各ＶＬＡＮを対応付け、同じインスタンスに含まれるＶＬＡＮに対して同じ冗長構築を行うことにより、リンクの負荷を分散しつつ、冗長を構築する数を削減できる。このようにインスタンス毎に冗長構築を行うとき、インスタンスを示す番号がこのフィールドに入る。
【００５６】
認証タイプフィールドには、メッセージに用いられている認証のタイプが入る。認証が用いられない場合には認証なしを示す値が入る。
【００５７】
認証パスワードフィールドには、認証に用いられるパスワードが入る。
【００５８】
有効ポート数フィールドには、制御対象のグループに属するリンクのうちリンクアップ状態（リンクが利用可能な状態）にあるリンクの数が入る。リンクの状態は、リンク障害や、ネットワーク管理者の操作などにより変化する。
【００５９】
フレームチェックシーケンスフィールドには、誤り検出用のＣＲＣ演算値が入る。
【００６０】
図３は、本実施形態のノードの構成を示すブロック図である。図３を参照すると、ノードは、ポート２１〜２３、挿入分離部（Ａｄｄ／Ｄｒｏｐ）２４〜２６、フィルタ２７〜２９、スイッチ部３０、およびコントローラ３１を有している。
【００６１】
ポート２１〜２３は、他のノードや端末に接続されるインタフェースであり、リンク状態を監視してコントローラ３１に通知する。
【００６２】
挿入分離部２４〜２６は、コントローラ３１から他のノードへのメッセージを主信号に挿入してポートに送信し、また他のノードからのメッセージを主信号から分離してコントローラ３１に送る。
【００６３】
フィルタ２７〜２９は、コントローラ３１からの指示に従ってフレームの廃棄を行う。
【００６４】
スイッチ部３０は、不図示のＭＡＣラーニングテーブルに従ってフレームを所望の宛先にフォワーディングする。ＭＡＣラーニングテーブルとは、学習（ＭＡＣラーニング）によって得られたＭＡＣアドレスと出力ポートの対応関係を記録したテーブルである。
【００６５】
コントローラ３１は、図２の冗長構築用フレームにより他のノードと各種のメッセージを送受信し、他のノードから得られる情報と、各ポートから通知されるリンク状態とに基づいて各ポートの状態を管理する。そして、各ポートの状態に応じて各フィルタ２７〜２９にフレームの廃棄または疎通を指示する。
【００６６】
図４は、各ノードのポートの状態遷移の一例を示す図である。各ノード１１〜１７のポートの各々は、図４の状態遷移図に従って状態遷移し、「Ｉｎｉｔｉａｌ」、「Ｌｅａｒｎ」、「Ｌｉｓｔｅｎ」、「Ｓｔａｎｄｂｙ」、「Ａｃｔｉｖｅ」、または「Ａｗａｒｅ」のいずれかの状態をとる。
【００６７】
図１を参照すると、ノード１１〜１７により構成されたネットワークに含まれるリンクは、グループ１とグループ２の２つに分割されている。これにより、各ノード１１〜１７の有する各ポートは、いずれかのグループに属することとなる。
【００６８】
図１の例では、ポート１１１，１１２，１２１，１２２，１３１，１３２，１４１，１４２はグループ１に属している。また、ポート１３３〜１３５，１４３〜１４５，１５１，１５２，１６１，１６２，１７１，１７２はグループ２に属している。障害発生時などの冗長構成の制御は、このグループ単位で行われる。
【００６９】
各ノード１１〜１７は、自身の有するポートの各々に、そのポートが属するグループを明示的に指定することができる。１つのポートには、いずれか１つのグループのみ指定することができる。また、グループを明示的に指定されないポートもある。
【００７０】
グループを明示的に指定されたポートが冗長構築における制御対象となる。ノードの状態が遷移するのに伴って制御対象のポートのポート種別が図４に示したように遷移する。例えば、ノードが「Ａｃｔｉｖｅ」状態に遷移すれば、そのノードに属し、グループを明示的に指定されている制御対象のポートのポート種別は「Ａｃｔｉｖｅ」に遷移する。
【００７１】
図１の例では、ポート１１１，１１２およびポート１２１，１２２は明示的にグループ１に指定されている。また、ポート１３３〜１３５およびポート１４３〜１４５は明示的にグループ２に指定されている。
【００７２】
これに対して、ポート１３１，１３２，１４１，１４２はグループ１に属してはいるが、それを明示的に指定されてはいない。また、ポート１５１〜１５３，１６１〜１６３，１７１〜１７３はグループ２に属しているが、それを明示的に指定されてはいない。
【００７３】
各ノード１１〜１７は、グループを明示的に指定していないポートに、ポート種別として「Ｄｉｓａｂｌｅ」を明示的に指定することができる。「Ｄｉｓａｂｌｅ」ポートは、冗長構成の制御に影響を受けないポートであり、例えば冗長性のない回線が接続されている。
【００７４】
図１の例では、ポート１５３，１６３，１７３が「Ｄｉｓａｂｌｅ」に明示的に指定されている。
【００７５】
グループを明示的に指定されておらず、ポート種別として「Ｄｉｓａｂｌｅ」も明示的に指定されていないポートは、ポート種別が「Ａｗａｒｅ」となる。「Ａｗａｒｅ」ポートは、制御対象となるポートと接続され、その対向するポートに従属する。
【００７６】
図１の例では、ポート１３１，１３２，１４１，１４２，１５１，１５２，１６１，１６２，１７１，１７２が「Ａｗａｒｅ」ポートである。
【００７７】
また、各ノード１１〜１７は、自身の有する制御対象ポートの属するグループ毎に、明示的にブリッジ優先度が設定されている。
【００７８】
図１の例では、ノード１１は、グループ１に対して、ブリッジ優先度として「１」が明示的に設定されているものとする。また、ノード１２は、グループ１に対して、ブリッジ優先度として「２」が設定されているものとする。ノード１３は、グループ２に対して、ブリッジ優先度として「１」が設定されており、ノード１４は、グループ２に対して、ブリッジ優先度として「２」が設定されているものとする。
【００７９】
各ノード１１〜１７は起動すると、自身の冗長構成に関する情報を載せた「Ｈｅｌｌｏ」メッセージを隣接ノードに対して送る。「Ｈｅｌｌｏ」メッセージは、図２にフォーマットを示したフレームに、メッセージタイプとして「Ｈｅｌｌｏ」が設定されている。冗長構成に関する情報には、グループ番号、ブリッジ優先度、有効ポート数、ポート種別、Ｈｅｌｌｏメッセージ送信間隔、Ｈｅｌｌｏ未受信時の待ち受け時間などが含まれる。
【００８０】
各ノードは、生成した「Ｈｅｌｌｏ」メッセージを、明示的にグループが指定されたポート１１１，１１２，１２１，１２２，１３３〜１３５，１４３〜１４５から定期的に送出する。また、各ノードは、明示的にグループが指定されたポート１１１，１１２，１２１，１２２，１３３〜１３５，１４３〜１４５で「Ｈｅｌｌｏ」メッセージを受信すると、そのメッセージに含まれている情報を確認した後にメッセージを廃棄する。
【００８１】
例えば、図３のノードにおいて、ポート２１で受信した「Ｈｅｌｌｏ」メッセージは、挿入分離部２４で取り出されてコントローラ３１に送られると共に、フィルタ２７で廃棄されてスイッチ部３０には届かない。コントローラ３１では、その「Ｈｅｌｌｏ」メッセージに含まれている情報を確認し、その後の処理に用いる。
【００８２】
図１の説明に戻ると、各ノードは、自身が生成した冗長構成に関する全てのメッセージを、ポート種別が「Ａｗａｒｅ」のポート１３１，１３２，１４１，１４２，１５１，１５２，１６１，１６２，１７１，１７２からは送出しない。しかし、ポート種別が「Ａｗａｒｅ」のポート１３１，１３２，１４１，１４２，１５１，１５２，１６１，１６２，１７１，１７２によって冗長構成に関するメッセージを受信すると、ノードは、そのメッセージに含まれている情報を確認した後に、ブリッジのフォワーディング処理に従って所定のポートから送信する。ブリッジのフォワーディング処理とは、ブリッジが行うＭＡＣラーニングテーブルに応じてフレームを転送する処理である。
【００８３】
各ノードは、ポート種別が「Ｄｉｓａｂｌｅ」のポート１５３，１６３，１７３からは、自身が生成したメッセージも、他のポートで受信したメッセージも一切送信しない。
【００８４】
グループを明示的に指定されたポートまたは「Ａｗａｒｅ」ポートで、「Ｈｅｌｌｏ」メッセージを受信したノードは、そのメッセージに含まれているグループ番号フィールドの値からどのグループについてのメッセージかを認識する。そして、各ノードは、自身と同じグループのノードからの「Ｈｅｌｌｏ」メッセージに含まれている情報に基づいて、そのグループにおける自身の優先度を定め、その優先度に応じて、そのグループに属する自身のポートのポート種別を決定する。この優先度は、グループ内の冗長構成の制御を決めるものである。
【００８５】
ポート種別としては、「Ａｃｔｉｖｅ」、「Ｓｔａｎｄｂｙ」、「Ｌｉｓｔｅｎ」、「Ａｗａｒｅ」、「Ｄｉｓａｂｌｅ」の５つがあるが、その内の「Ａｗａｒｅ」と「Ｄｉｓａｂｌｅ」は明示的な指定によって定まる。その他の「Ａｃｔｉｖｅ」、「Ｓｔａｎｄｂｙ」、および「Ｌｉｓｔｅｎ」は優先度によって定まる。優先度が最も高いノードの有するポートが「Ａｃｔｉｖｅ」ポートとなり、次に優先度の高いノードの有するポートが「Ｓｔａｎｄｂｙ」ポートとなり、それ以降が「Ｌｉｓｔｅｎ」ポートとなる。１つのグループ内において、定常的には、「Ａｃｔｉｖｅ」ポートを有するノードと、「Ｓｔａｎｄｂｙ」ポートを有するノードは、それぞれ１つづである。
【００８６】
「Ａｃｔｉｖｅ」ポートとは、冗長構成に関するメッセージ以外の信号（例えば、ユーザ信号）の転送に用いられる通常のフレーム（以下、通常フレームと称す）に対して有効なポートである。「Ｓｔａｎｄｂｙ」ポートとは、「Ａｃｔｉｖｅ」ポートに障害が発生したとき、それに代わって「Ａｃｔｉｖｅ」となるポートである。この冗長構成はホットスタンバイ形式であり、「Ｓｔａｎｄｂｙ」ポートは、「Ａｃｔｉｖｅ」ポートにリンク障害が起これば、即座に「Ａｃｔｉｖｅ」ポートに遷移することができる。
【００８７】
同一グループに属するポートを有するノードの内、リンクアップ状態のポート数の最も多いノードが最も優先度が高く、そのポートが「Ａｃｔｉｖｅ」ポートとなる。「Ｈｅｌｌｏ」メッセージにおいて、リンクアップ状態のポート数は有効ポート数フィールドに入るので、各ノードは、自ノードのリンクアップ状態のポート数と、同一グループに属する他のノードからの「Ｈｅｌｌｏ」メッセージの有効ポート数とを比較し、そのグループにおける自ノードの状態を定める。グループ内での各ノードの状態から、そのノードが有するポートのポート種別が定まる。
【００８８】
有効ポート数が同じ値であれば、明示的に設定されたブリッジ優先度の最も高いノードが最も優先度が高く、そのポートが「Ａｃｔｉｖｅ」ポートとなる。各ノードは、自ノードのブリッジ優先度と、同一グループに属する他のノードからの「Ｈｅｌｌｏ」メッセージのブリッジ優先度とを比較し、そのグループにおける自ノードの状態を定める。
【００８９】
また、ブリッジ優先度も同じ値であれば、各ノードのＭＡＣアドレスの値が最も大きいノードが最も優先度が高く、そのポートが「Ａｃｔｉｖｅ」ポートとなる。各ノードは、自ノードのＭＡＣアドレスと、同一グループに属する他のノードからの「Ｈｅｌｌｏ」メッセージの送信元ＭＡＣアドレスの値を比較し、そのグループにおける自ノードの状態を定める。
【００９０】
なお、ここに示した比較項目（有効ポート数、ブリッジ優先度、ＭＡＣアドレス）や、その適用順序は一例であり、本発明は、これに限定されない。また、この比較項目や適用順序を設定により任意に変更可能としてもよい。また、ＭＡＣアドレスについては、その値の小さいノードが優先度が高いとしてもよい。
【００９１】
図１に示したグループ１の例では、ポート１１１，１１２，２１１，２１２がグループ１に明示的に指定されている。そのため、これらのポートは「Ａｃｔｉｖｅ」ポート、「Ｓｔａｎｄｂｙ」ポート、または「Ｌｉｓｔｅｎ」ポートのいずれかとなる。ここでは、明示的にグループ１を指定されたポートを保有するノードは、ノード１１とノード１２の２つなので、「Ｌｉｓｔｅｎ」ポートはない。
【００９２】
ノード１１，１２はともに有効ポート数が２つである。また、ノード１１のブリッジ優先度は「１」であり、ノード１２のブリッジ優先度は「２」である。したがって、ノード１１は、ノード１２よりもブリッジ優先度が高いので、ノード１２よりも優先度が高いこととなり、そのポート１１１，１１２が「Ａｃｔｉｖｅ」ポートとなる。そして、ノード１２のポート１２１，１２２が「Ｓｔａｎｄｂｙ」ポートとなる。
【００９３】
図１に示したグループ２の例では、ポート１５１，１５２，１６１，１６，１７１，１７２は明示的にグループを指定されておらず、また「Ｄｉｓａｂｌｅ」も指定されていないので、「Ａｗａｒｅ」ポートとなる。ポート１５３，１６３，１７３は明示的にグループを指定されていないが、明示的に「Ｄｉｓａｂｌｅ」を指定されているので、「Ｄｉｓａｂｌｅ」ポートとなる。
【００９４】
ポート１３３〜１３５，１４３〜１４５は明示的にグループ２に指定されている。そのため、これらのポートは、「Ａｃｔｉｖｅ」ポート、「Ｓｔａｎｄｂｙ」ポート、または「Ｌｉｓｔｅｎ」ポートのいずれかとなる。ここでは、明示的にグループ２を指定されたポートを保有するノードがノード１３とノード１４の２つなので、「Ｌｉｓｔｅｎ」ポートはない。
【００９５】
ノード１３，１４はともに有効ポート数が３つである。また、ノード１３のブリッジ優先度は「１」であり、ノード１４のブリッジ優先度は「２」である。したがって、ノード１３のポート１３３〜１３５が「Ａｃｔｉｖｅ」ポートとなり、ノード１４のポート１４３〜１４５が「Ｓｔａｎｄｂｙ」となる。
【００９６】
このように定められたポート種別により、通常フレームに対する処理が異なる。通常フレームとは、ノード間のメッセージでなく、ユーザからのデータを送るためのフレーム。
【００９７】
ノードは、「Ａｃｔｉｖｅ」ポート、「Ａｗａｒｅ」ポート、および「Ｄｉｓａｂｌｅ」ポートにおいて、通常フレームをブリッジのフォワーディング処理に従ってフォワーディングする。つまり、これらのポートで受信した通常フレームを所定のポートから出力する。
【００９８】
ノードは、「Ｓｔａｎｄｂｙ」ポートまたは「Ｌｉｓｔｅｎ」ポートにおいて、通常フレームに対してフォワーディング処理をしない。
【００９９】
図１において、端末１８からブロードキャストアドレスの通常フレームを送信すると、ノード１１，１３，１５〜１７は、その通常フレームをフラッディングする。フラッディングとは、あるポートから受信したフレームが所定のＭＡＣアドレスを有する場合に、そのフレームを他の全てのポートから送信する処理である。フラッディングすべきフレームのＭＡＣアドレスは、「ブロードキャストアドレス」、「マルチキャストアドレス」、または「ＭＡＣラーニングにより学習されていないユニキャストアドレス」である。
【０１００】
ノード１２は、ポート１２１，１２２が「Ｓｔａｎｄｂｙ」ポートなので、そこで受信した通常フレームに対してフォワーディング処理せずに廃棄する。ノード１４は、ポート１４３〜１４５が「Ｓｔａｎｄｂｙ」ポートなので、そこで受信した通常フレームを廃棄し、フォワーディング処理をしない。また、ノード１４は、「Ａｗａｒｅ」ポートであるポート１４１，１４２で受信した通常フレームを、「Ｓｔａｎｄｂｙ」ポートであるポート１４３〜１４５において、フォワーディング処理せずに廃棄する。
【０１０１】
この状態から、いずれかのノード、ポートあるいはリンクに異常が発生すると、グループ内の各ポートのポート種別が遷移する。ポート種別が遷移する要因としては、有効ポート数すなわちリンクアップ状態のポート数の変化、ノードに明示的に設定されたブリッジ優先度の変更、「Ｈｅｌｌｏ」メッセージの消失、「Ｒｅｓｉｇｎ」または「Ｓｔａｙ」メッセージの検出がある。ノードは、図２に示した冗長構築用メッセージを監視することにより、これらの要因を認識できる。
【０１０２】
冗長構築用メッセージには、「Ｈｅｌｌｏ」、「Ｒｉｓｅ」、「Ｓｉｎｋ」、「Ｒｅｓｉｇｎ」、「Ｓｔａｙ」、「Ｃｌｅａｒ」の６つのタイプがある。各ノードは、メッセージタイプフィールドによりタイプを判別する。
【０１０３】
「Ｈｅｌｌｏ」メッセージは、「Ａｃｔｉｖｅ」ポート、「Ｓｔａｎｄｂｙ」ポート、または「Ｌｉｓｔｅｎ」ポートを保有するノード同士が、自身の認識している冗長構成に関する情報を交換するためのメッセージである。
【０１０４】
各ノードは、「Ｈｅｌｌｏ」メッセージを使用して、自ノードの有効ポート数、ブリッジ優先度、ＭＡＣアドレスを隣接ノードに対して定期的に通知する。
【０１０５】
「Ｒｉｓｅ」メッセージは、「Ｓｔａｎｄｂｙ」ポートを有するノードが、「Ａｃｔｉｖｅ」ポートを有するノードよりも優先度が高くなったと認識し、「Ａｃｔｉｖｅ」ノードへの遷移を即時に要求するときに送信するメッセージである。「Ｓｔａｎｄｂｙ」ポートが新たに「Ａｃｔｉｖｅ」ポートに遷移するためには、現在の「Ａｃｔｉｖｅ」ポートが他のポート種別になる必要があるので、「Ｒｉｓｅ」メッセージによってそれが促される。「Ｓｔａｎｄｂｙ」ポートを有するノードだけが「Ｒｉｓｅ」メッセージを生成することができる。そして、「Ｒｉｓｅ」メッセージは「Ｓｔａｎｄｂｙ」ポートから送信される。
【０１０６】
「Ｓｉｎｋ」メッセージは、「Ａｃｔｉｖｅ」ポートを有するノードが「Ｓｔａｎｄｂｙ」ポートを有するノード、または「Ａｃｔｉｖｅ」ポートを有する他のノードよりも優先度が低くなったと認識し、「Ｓｔａｎｄｂｙ」ポートへの遷移を即時に要求するときに送信するメッセージである。
【０１０７】
なお、「Ａｃｔｉｖｅ」ポートが２つ以上存在するのは過渡的な状態である。新規増設するノードを電源オンの状態でネットワークに接続したときや、運用中のネットワーク同士を相互に接続したときに過渡的な状態が生じる。
【０１０８】
「Ａｃｔｉｖｅ」ポートを有するノードだけが「Ｓｉｎｋ」メッセージを生成することができる。そして、「Ｓｉｎｋ」メッセージは「Ａｃｔｉｖｅ」ポートから送信される。
【０１０９】
「Ｒｅｓｉｇｎ」メッセージは、「Ａｃｔｉｖｅ」ポートを有するノードが、自ノードよりも優先度が高くなった「Ｓｔａｎｄｂｙ」ポートを有するノードから、「Ｒｉｓｅ」メッセージを受信したとき、自ノードが「Ｓｔａｎｄｂｙ」ポートに遷移することを通知するためのメッセージである。
【０１１０】
「Ａｃｔｉｖｅ」ポートを有するノードだけ「Ｒｅｓｉｇｎ」メッセージを生成することができる。そして、「Ｒｅｓｉｇｎ」メッセージは「Ａｃｔｉｖｅ」ポートから送信される。
【０１１１】
「Ｓｔａｙ」メッセージは、「Ａｃｔｉｖｅ」ポートを有するノードが、同じく「Ａｃｔｉｖｅ」ポートを有するが、自身よりも優先度が低いノードから、「Ｓｉｎｋ」メッセージを受信したときに、自ノードが「Ａｃｔｉｖｅ」ポートに留まることを通知するためのメッセージである。つまり、「Ａｃｔｉｖｅ」ポートを有するノードが、「Ａｃｔｉｖｅ」ポートを有する他のノードの「Ａｃｔｉｖｅ」ポートが「Ｓｔａｎｄｂｙ」ポートに遷移することを許可するものである。したがって、「Ａｃｔｉｖｅ」ポートを有するノードだけが「Ｓｔａｙ」メッセージを生成することができる。そして、「Ｓｔａｙ」メッセージは「Ａｃｔｉｖｅ」ポートから送信される。
【０１１２】
「Ｃｌｅａｒ」メッセージは、ノード内のＭＡＣラーニングテーブルのクリアを要求するためのメッセージである。ＭＡＣラーニングテーブルをクリアするのは、「Ａｃｔｉｖｅ」ポートが替わったときに、対向するノードが新たな「Ａｃｔｉｖｅ」ポートに通常フレームを送信できるようにするためである。
【０１１３】
「Ａｃｔｉｖｅ」ポートを有するノードが、そのポートが「Ｓｔａｎｄｂｙ」ポートに遷移したときに「Ｃｌｅａｒ」メッセージを生成する。そして、「Ｃｌｅａｒ」メッセージは、制御対象のポートを含むグループに属していないポートから送信される。
【０１１４】
各ノードは、「Ａｗａｒｅ」ポートにおいて、これらメッセージの情報を覗き見するが、生成したメッセージを送信することはなく、一方、他のノードから受信したメッセージのフレームはフォワーディングする。
【０１１５】
各ノードは、「Ｄｉｓａｂｌｅ」ポートにおいて、これらのメッセージの情報を覗き見するが、生成したメッセージを送信することはなく、また、他のノードのから受信したメッセージのフォワーディングも行わない。
【０１１６】
本実施形態のポートの状態遷移について説明する。ポートの状態遷移はグループ毎に行われる。図４において、「Ｉｎｉｔｉａｌ」ステートにあるポートは「Ｉｎｉｔｉａｌ」ポートであり、「Ａｗａｒｅ」ステートにあるポートは「Ａｗａｒｅ」ポート、「Ｄｉｓａｂｌｅ」ｓテートにあるポートは「Ｄｉｓａｂｌｅ」ポートである。他のステートについても同様である。
【０１１７】
図４の状態遷移図を参照すると、起動直後の各ポートは「Ｉｎｉｔｉａｌ」ポートとなる。その後、いずれのグループも指定されておらず、「Ｄｉｓａｂｌｅ」も指定されていないポートは、「Ａｗａｒｅ」ステートに遷移する。いずれのグループも指定されていないが、明示的に「Ｄｉｓａｂｌｅ」を指定されているポートは、「Ｄｉｓａｂｌｅ」ステートに遷移する。「Ａｗａｒｅ」ポートおよび「Ｄｉｓａｂｌｅ」ポートは、ノードが再起動、またはリンクがダウンしない限り状態遷移しない。
【０１１８】
いずれかのグループを指定されたポートは、「Ｉｎｉｔｉａｌ」ステートから「Ｌｅａｒｎ」ステートに遷移する。
【０１１９】
「Ｌｅａｒｎ」ポートでは、「Ｈｅｌｌｏ」メッセージの監視が行われるが、冗長構築用メッセージも含め全てのフレームの生成および送受信は行われない。「Ｌｅａｒｎ」ステートに遷移したポートを有するノードはタイマによる一定時間の計測を開始する。
【０１２０】
この一定時間内に「Ｌｅａｒｎ」ポートで「Ｈｅｌｌｏ」メッセージを全く受信しなければ、そのポートは「Ａｃｔｉｖｅ」ステートに遷移する。一定時間内に「Ａｃｔｉｖｅ」ポートを有するノード以外のノードから「Ｈｅｌｌｏ」メッセージを受信しなければ、そのポートは「Ｓｔａｎｄｂｙ」ステートに遷移する。「Ｓｔａｎｄｂｙ」または「Ｌｉｓｔｅｎ」ポートを有するノードから「Ｈｅｌｌｏ」メッセージを受信すると、そのポートは、即座に「Ｌｉｓｔｅｎ」ステートに遷移する。
【０１２１】
「Ａｃｔｉｖｅ」ポートを有するノードは、「Ｓｔａｎｄｂｙ」ポートを有する他のノードから「Ｒｉｓｅ」メッセージを受信したとき、自ノードの優先度と「Ｒｉｓｅ」メッセージから分かる他のノードの優先度を比較し、自ノードの方が優先度が低ければ、「Ｒｅｓｉｇｎ」メッセージを送信して、「Ａｃｔｉｖｅ」ポートを「Ｓｔａｎｄｂｙ」ステートに遷移させる。
【０１２２】
また、「Ａｃｔｉｖｅ」ポートを有するノードは、「Ｒｉｓｅ」メッセージの受信以外で、「Ｓｔａｎｄｂｙ」ポートよりも自身のポートの優先度が低いことを検出すると、「Ｓｉｎｋ」メッセージを送り、「Ａｃｔｉｖｅ」ステートに留まる。
【０１２３】
また、「Ａｃｔｉｖｅ」ポートを有するノードは、同じく「Ａｃｔｉｖｅ」ポートを有する他のノードからターゲットブリッジ・フィールドに自ノードが示された「Ｓｔａｙ」メッセージを受信すると、その「Ａｃｔｉｖｅ」ポートを「Ｓｔａｎｄｂｙ」ステートに遷移させる。
【０１２４】
また、「Ａｃｔｉｖｅ」ポートを有するノードは、他の「Ａｃｔｉｖｅ」ポートを有するノードから、自身の「Ａｃｔｉｖｅ」ポートよりも優先度の低い「Ｓｉｎｋ」メッセージを受信すると、「Ｓｔａｙ」メッセージを送り、「Ａｃｔｉｖｅ」ステートに留まる。
【０１２５】
また、「Ａｃｔｉｖｅ」ポートを有するノードは、同じく「Ａｃｔｉｖｅ」ポートを有するノードに対して、「Ｓｉｎｋ」メッセージを一定時間送信しても「Ｓｔａｙ」メッセージを受信できなければ、その「Ａｃｔｉｖｅ」ポートを「Ｓｔａｎｄｂｙ」ステートに遷移させる。
【０１２６】
「Ｓｔａｎｄｂｙ」ポートを有するノードは、「Ａｃｔｉｖｅ」ポートを有する他のノードからターゲットブリッジ・フィールドに自ノードが示された「Ｒｅｓｉｇｎ」メッセージを受信すると、その「Ｓｔａｎｄｂｙ」ポートを「Ａｃｔｉｖｅ」ステートに遷移させる。
【０１２７】
また、「Ｓｔａｎｄｂｙ」ポートを有するノードは、「Ａｃｔｉｖｅ」ポートを有する他のノードから「Ｈｅｌｌｏ」メッセージを一定時間受信できなければ、「Ｓｔａｎｄｂｙ」ポートを「Ａｃｔｉｖｅ」ステートに遷移させる。
【０１２８】
また、「Ｓｔａｎｄｂｙ」ポートを有するノードは、自ノードの優先度に変更が生じると、その変更内容と、「Ｈｅｌｌｏ」メッセージにより事前に入手した「Ｌｉｓｔｅｎ」ポートを有する他のノードからの情報とを比較し、自ノードの方が優先度が低ければ、「Ｓｔａｎｄｂｙ」ポートを「Ｌｉｓｔｅｎ」ステートに遷移させる。
【０１２９】
また、「Ｓｔａｎｄｂｙ」ポートを有するノードは、「Ｌｉｓｔｅｎ」ポートを有する他のノードから「Ｈｅｌｌｏ」メッセージを受信すると、自ノードの状態とそのメッセージの情報とを比較し、自ノードの方が優先度が低ければ、「Ｓｔａｎｄｂｙ」ポートを「Ｌｉｓｔｅｎ」ステートに遷移させる。
【０１３０】
また、「Ｓｔａｎｄｂｙ」ポートを有するノードは、「Ｓｔａｎｄｂｙ」ポートを有する他のノードから「Ｈｅｌｌｏ」メッセージを受信すると、自ノードの状態と本メッセージの情報とを比較し、自ノードの方が優先度が低ければ、「Ｓｔａｎｄｂｙ」ポートを「Ｌｉｓｔｅｎ」ステートに遷移させる。
【０１３１】
「Ｌｉｓｔｅｎ」ポートを有するノードは、自ノードの優先度に変更が生じると、その変更内容と、「Ｈｅｌｌｏ」メッセージにより事前に入手した「Ｓｔａｎｄｂｙ」ポートを有する他のノードからの情報とを比較し、自ノードの方が優先度が高ければ、「Ｌｉｓｔｅｎ」ポートを「Ｓｔａｎｄｂｙ」ステートに遷移させる。
【０１３２】
また、「Ｌｉｓｔｅｎ」ポートを有するノードは、「Ｓｔａｎｄｂｙ」ポートを有するノードから「Ｈｅｌｌｏ」メッセージを受信すると、自ノードの状態とそのメッセージの情報とを比較し、自ノードの方が優先度が高ければ、「Ｌｉｓｔｅｎ」ポートを「Ｓｔａｎｄｂｙ」ステートに遷移させる。
【０１３３】
また、「Ｌｉｓｔｅｎ」ポートを有するノードは、「Ｓｔａｎｄｂｙ」ポートを有するノードから「Ｈｅｌｌｏ」メッセージを一定時間受信できなければ、「Ｌｉｓｔｅｎ」ポートを「Ｓｔａｎｄｂｙ」ステートに遷移させる。
【０１３４】
ここで動作例として、図１の状態から、ノード１３のポート１３３とノード１５のポート１５１の間にリンク異常が発生したとする。ポート１３３がダウンするため、ノード１３のグループ２における有効ポート数が「３」から「２」になる。ノード１３は、有効ポート数が変更になったことを「Ｈｅｌｌｏ」メッセージによりノード１４に通知する。
【０１３５】
ノード１４は、「Ａｃｔｉｖｅ」ポートを有するノード１３から、ノード１３の優先度が低下したことを示す「Ｈｅｌｌｏ」メッセージを受信する。そのため、ノード１４は、「Ｓｔａｎｄｂｙ」ポートを「Ａｃｔｉｖｅ」ポートに遷移したいということを「Ｒｉｓｅ」メッセージによりノード１３に通知する。
【０１３６】
ノード１３は、自ノードよりも優先度の高いノード１４から「Ｒｉｓｅ」メッセージを受信すると、ポート１３４，１３５を「Ａｃｔｉｖｅ」ポートから「Ｓｔａｎｄｂｙ」ポートに遷移し、その旨を「Ｒｅｓｉｇｎ」メッセージによりノード１４に通知する。
【０１３７】
「Ｒｅｓｉｇｎ」メッセージを受信したノード１４は、ポート１４３〜１４５を「Ｓｔａｎｄｂｙ」ポートから「Ａｃｔｉｖｅ」ポートに遷移させる。以上の状態遷移により、ネットワークでは、図５に示された経路が構築される。また、ポート１３３とポート１５１の間のリンク異常により、グループ１の冗長構成に影響を与えることはない。
【０１３８】
さらに動作例として、図５に示した状態から、ノード１３のポート１３３とノード１５のポート１５１の間のリンクが正常の復旧したとする。ノード１３は、ポート１３３が復旧したため、グループ２における有効ポート数が「２」から「３」になる。ノード１３は、自ノードの状態と事前に「Ｈｅｌｌｏ」メッセージより入手したノード１４の情報とを比較し、ブリッジ優先度から自ノードの方が優先度が高いことを認識する。
【０１３９】
ノード１３は、「Ｓｔａｎｄｂｙ」ポート１３３〜１３５を「Ａｃｔｉｖｅ」ポートへ遷移させるために、「Ｒｉｓｅ」メッセージをノード４に送信する。ノード１４は、ノード１３が自ノードより優先度が高いことを示す「Ｒｉｓｅ」メッセージをノード１３から受信する。そのため、ノード１３に対して「Ｒｅｓｉｇｎ」メッセージを送信し、自ノードの「Ａｃｔｉｖｅ」ポート１４３〜１４５を「Ｓｔａｎｄｂｙ」ポートへ遷移させる。
【０１４０】
「Ｒｅｓｉｇｎ」メッセージを受信したノード１３は、「Ｓｔａｎｄｂｙ」ポート１３３〜１３５を「Ａｃｔｉｖｅ」ポートへ遷移させる。以上の状態遷移により、ネットワークは図１の経路構成に戻る。また、ポート１３３とポート１５１間でリンクが復旧しても、グループ１の冗長構成に影響を与えることはない。
【０１４１】
以上説明したように、本実施形態では冗長構成はグループ単位で構築されることとしたが、グループをさらにインスタンス単位に分割し、インスタンス毎に冗長構成を制御することとしてもよい。
【０１４２】
各ノードは、図２に示したインスタンス番号フィールドにより、グループ内における各インスタンスを認識する。なお、インスタンス番号は、グループ内でインスタンスを識別する番号なので、他のグループに同値のインスタンスが存在することがあるが、それは全く異なるものである。
【０１４３】
各インスタンスには複数のＶＬＡＮをマッピングすることができるが、ＶＬＡＮ単位で冗長構成を構築しようとする場合、ＶＬＡＮ番号値とインスタンス番号値を同値に指定すればよい。この場合、ＶＬＡＮの数だけインスタンスが存在することとなる。
【０１４４】
また、冗長構築のためのノードの識別にはＶＬＡＮタグを用いず、インスタンス番号値を用いることとして、図２に示したメッセージは、ノードのポートがＩＥＥＥ８０２．１Ｑ  ＶＬＡＮタグポートであっても、アンタグ・フレームにより転送される。各ノードは、全ての冗長構築用メッセージをアンタグ・フレームにより転送する。
【０１４５】
以上説明したように、イーサネットによるネットワークが複数のグループに分割され、グループ毎にレイヤ２での冗長構成が構築がされるので、グループ内の優先度だけで経路が決まり、経路変更によるネットワークへの影響が少なく、また、障害発生および復旧時に経路が早く確定する。レイヤ２のネットワーク（例えば、ブロードキャストドメイン）の構成と別個の構成を有する小さなネットワークであるグループの概念をレイヤ２の冗長構築に導入することにより、レイヤ２のネットワーク構成に束縛されて複雑化する冗長構築の単純化が可能となっている。
【０１４６】
また、各グループ毎にホットスタンバイ形式の冗長構成がとられているので、経路の切り替えが早く完了する。
【０１４７】
また、ネットワーク全体の規模が冗長構成の構築に影響を与えないので、レイヤ２のネットワーク規模が制限されることがない。
【０１４８】
また、障害発生時には、障害の発生したグループ内で冗長構成の構築制御がされるので、グループ内から容易に障害箇所を特定することができる。
【０１４９】
また、レイヤ２の冗長構成が各グループ内に閉じているので、ノードの増設のようなネットワークの物理的なトポロジーの変更をネットワークの既設部分に影響を与えること無く容易に行うことができる。
【０１５０】
また、「Ａｃｔｉｖｅ」ポートおよび「Ｓｔａｎｄｂｙ」ポートの他に、さらに任意で「Ｌｉｓｔｅｎ」ポートを複数用意することができるので、冗長構成による信頼性のレベルを自由に選択することができる。
【０１５１】
また、冗長構築用メッセージが、ＩＥＥＥ８０２．１Ｑ  ＶＬＡＮタグを使用しないアンタグ・フレームにより処理されるため、ＶＬＡＮネットワークから独立した冗長構成を構築することができ、ＶＬＡＮタグが複数スタックされる拡張されたＶＬＡＮネットワークにおいても冗長構成をとることができる。
【０１５２】
また、グループ内は、さらにインスタンス単位に冗長構成が分割できるため、ＶＬＡＮ単位または複数ＶＬＡＮを１つにまとめた単位で冗長ネットワークを構築することができ、各リンクへの負荷分散が可能である。
【０１５３】
また、インスタンス単位でＶＬＡＮの冗長構成を構築することができるので、ＶＬＡＮ毎に行う場合に比べて、冗長構成を構築する処理の並列数が削減され、処理量が軽減される。
【０１５４】
本発明の他の実施形態について説明する。図６は、本発明の他の実施形態のネットワークの構成を示す図である。図６を参照すると、ネットワークは、ノード５１〜１９で構成去れている。ここで、ノード５１〜５７はブリッジであるとする。
【０１５５】
ノード５１のポート５１１はノード５３のポート５３１に物理的に接続されている。同様に、ノード５１のポート５１２はノード５４のポート５４１に接続されている。ノード５２のポート５２１はノード５３のポート５３２に接続されている。ノード５２のポート５２２はノード５４のポート５４２に接続されている。
【０１５６】
ノード５３のポート５３３はノード５５のポート５５１に接続されている。同様に、ノード５４のポート５４３はノード５６のポート５６１に接続されている。
【０１５７】
ノード５５のポート５５２はノード５７のポート５７１に接続されている。同様に、ノード５５のポート５５３はノード５８のポート５８１に接続されている。ノード５５のポート５５４はノード５９のポート５９１に接続されている。ノード５６のポート５６２はノード５７のポート５７２に接続されている。ノード５６のポート５６３はノード５８のポート５８２に接続されている。ノード５６のポート５６４はノード５９のポート５９２に接続されている。
【０１５８】
ノード５７のポート５７３には端末６０が接続されている。同様に、ノード５８のポート５８３には端末６１が接続されている。ノード５９のポート５９３には端末６２が接続されている。
【０１５９】
ノード５１〜５９は、図１のノード１１〜１７と同様に、冗長構成を制御し、フレームを転送する経路を構築するために冗長構築用フレームを相互にやりとりする。
【０１６０】
ただし、図６において、ノード５３のポート５３３とノード５５のポート５５１の間でリンク異常が発生しても、１対１のノード接続区間であるため、グループ１，２ともに、グループを明示的に指定された制御対象のポートを有するノード１，２，５，６では優先度の変化がない。しかし、ノード５３を経由するルートはフレームを疎通できなくなるので、フレームの到達性を確保するためには、切り替えが必要である。
【０１６１】
そこで、本実施形態の各ノードは、図１のノードと異なり、特定のポートがリンクダウンした場合に、設定により指定された他のポートをリンクダウンとすることにより、制御対象のポートでリンクダウンが生じなくても制御対象ポートを切り替えが可能となる。なお、このとき、他のポートを実際にリンクダウンさせてもよく、また、リンクダウンしたのと同様に扱うこととしてもよい。
【０１６２】
具体的には、各ノードには、制御対象ではないがリンク状態を監視すべき「Ｔｒｉｇｇｅｒ」ポートと、「Ｔｒｉｇｇｅｒ」ポートがリンクダウンしたときに、即座にリンクダウンとする「Ｄｅｐｅｎｄ」ポートとが明示的に設定される。そして、各ノードは、「Ｔｒｉｇｇｅｒ」ポートがリンクダウンすると、「Ｄｅｐｅｎｄ」ポートもリンクダウンとする。また、「Ｔｒｉｇｇｅｒ」ポートがリンクアップすると、「Ｄｅｐｅｎｄ」ポートもリンクアップとする。
【０１６３】
図６の例では、ノード５３のポート５３３、ノード５４のポート５４３、ノード５５のポート５５１、およびノード５６のポート５６１を「Ｔｒｉｇｇｅｒ」ポートに明示的に指定すればよい。
【０１６４】
また、ノード５３のポート５３１，５３２を、「Ｔｒｉｇｇｅｒ」ポートであるポート５３３に対する「Ｄｅｐｅｎｄ」ポートに明示的に指定すればよい。ノード５４のポート５４１，５４２を、「Ｔｒｉｇｇｅｒ」ポートであるポート５４３に対する「Ｄｅｐｅｎｄ」ポートに明示的に指定すればよい。
【０１６５】
また、ノード５５のポート５５２〜５５４を、「Ｔｒｉｇｇｅｒ」ポートであるポート５５１に対する「Ｄｅｐｅｎｄ」ポートに明示的に指定すればよい。ノード５６のポート５６２〜５６４を、「Ｔｒｉｇｇｅｒ」ポートであるポート５６１に対する「Ｄｅｐｅｎｄ」ポートに明示的に指定すればよい。
【０１６６】
例えば、ノード５３のポート５３３とノード５５のポート５５１の間でリンク異常が発生すると、「Ｔｒｉｇｇｅｒ」ポート５３３，５５１がリンクダウンする。これらの「Ｔｒｉｇｇｅｒ」ポートのリンクダウンより、「Ｄｅｐｅｎｄ」ポート５３１，５３２，５５２〜５５４がリンクダウンとなる。
【０１６７】
これにより、グループ１では、ノード５１のポート５１１，５１２が「Ａｃｔｉｖｅ」ポートから「Ｓｔａｎｄｂｙ」ポートへ遷移する。また、ノード５２のポート５２１，５２２が「Ｓｔａｎｄｂｙ」ポートから「Ａｃｔｉｖｅ」ポートへ遷移する。
【０１６８】
グループ２では、ノード５５のポート５５２〜５５４が「Ａｃｔｉｖｅ」ポートから「Ｓｔａｎｄｂｙ」ポートへ遷移する。また、ノード５６のポート５６２〜５６４が「Ｓｔａｎｄｂｙ」ポートから「Ａｃｔｉｖｅ」ポートへ遷移する。
【０１６９】
これにより、１対１のノード接続区間においてリンク障害が発生しても、そのリンク障害によりフレームの疎通に影響を受けるリンクの冗長構成を制御して、フレームの経路を切り替えるので、フレームの到達性が確保される。
【０１７０】
【発明の効果】
本発明によれば、冗長構成の組をなすリンクに接続された複数のノードを同じグループに括り、そのグループ内のノード同士でメッセージにより通信することにより、各ノードがグループ内での自身の制御対象ポートの優先度を定め、その優先度に従って制御対象ポートの状態を定めるので、グループ内の優先度だけで経路が決まり、経路変更によるネットワークへの影響が少なく、また、障害発生および復旧時に経路が早く確定する。レイヤ２のネットワーク（例えば、ブロードキャストドメイン）の構成と別個の構成を有する小さなネットワークであるグループの概念をレイヤ２の冗長構築に導入することにより、レイヤ２のネットワーク構成に束縛されて複雑化する冗長構築の単純化が可能となっている。
【０１７１】
また、ネットワーク全体の規模が冗長構成の構築に影響を与えないので、レイヤ２のネットワーク規模が制限されることがない。また、障害発生時には、障害の発生したグループ内で冗長構成の構築制御がされるので、グループ内から容易に障害箇所を特定することができる。また、レイヤ２の冗長構成が各グループ内に閉じているので、ノードの増設のようなネットワークの物理的なトポロジーの変更を、ネットワークの既設部分に影響を与えること無く容易に行うことができる。
【０１７２】
また、グループをインスタンス単位に分割して冗長構築ができるので、各リンクへの負荷分散が可能である。また、インスタンス単位で仮想ネットワークの冗長構築を行うので、仮想ネットワーク毎に行う場合と比べて、冗長構築処理の並列数が削減され、処理量が軽減される。
【０１７３】
また、仮想ネットワークを識別するためのタグ情報を用いずに、冗長構成に関する情報のメッセージを送受信することができるので、仮想ネットワークが複数スタックされるようなレイヤ２のネットワーク構成に適用可能である。例えば、ＩＥＥＥ８０２．１Ｑ  ＶＬＡＮタグを使用しないアンタグ・フレームを用い、インスタンス識別情報を付加してメッセージを転送することにより、ＶＬＡＮネットワークから独立した冗長構築が可能となり、ＶＬＡＮタグが複数スタックされる拡張されたＶＬＡＮネットワークにも適用可能である。
【０１７４】
また、冗長の無い１対１のノード接続区間においてリンク障害が発生しても、そのリンク障害によりフレームの疎通に影響を受けるリンクの障害として扱って冗長構築を行うので、冗長の無い区間を有するネットワークにも適用可能である。
【図面の簡単な説明】
【図１】本発明の一実施形態のネットワークの構成を示す図である。
【図２】冗長構築用フレームの一例に含まれる各フィールドの内容を示す表である。
【図３】本実施形態のノードの構成を示すブロック図である。
【図４】各ノードのポートの状態遷移の一例を示す図である。
【図５】リンク異常時のネットワークの動作を説明するための図である。
【図６】本発明の他の実施形態のネットワークの構成を示す図である。
【符号の説明】
１１〜１７，５１〜５９    ノード
１１１，１１２，１２１，１２２，１３１〜１３５，１４１〜１４５，１５１〜１５３，１６１〜１６３，１７１〜１７３，５１１，５１２，５２１，５２２，５３１〜５３３，５４１〜５４３，５５１〜５５４，５６１〜５６４，５７１〜５７３，５８１〜５８３，５９１〜５９３    ポート
１８〜２０，６０〜６２    端末
２１〜２３    ポート
２４〜２６    挿入分離部（Ａｄｄ／Ｄｒｏｐ）
２７〜２９    フィルタ
３０    スイッチ部
３１    コントローラ
【図１】
2005020543.tif 000003
【図２】
2005020543.tif 000004
【図３】
2005020543.tif 000005
【図４】
2005020543.tif 000006
【図５】
2005020543.tif 000007
【図６】
2005020543.tif 000008