1. スパニングツリーとリングプロトコルの違い

1.1. 概要

スパニングツリーは、ルートブリッジからの最短距離となるツリーを作成し ループを防止する機能です。ツリーはBPDU(Bridge Protocol Data Unit)の送受信によって 自動的に作成されるので、リングプロトコルのように環状の構成にする必要はございません。

リングプロトコルは、予め環状の構成を作成し、 そのうちの1台のマスターノードがループを検知する仕組みになっています。 マスターノードはヘルスチェックフレームを定期的に送信し、 そのフレームがリングを一周して自身に戻ってくるかどうかを監視します。

1.2. 切り替わりの早さ

STPに比べればリングプロトコルは高速な切り替わりを実現しますが、 RSTPとリングプロトコルを比べるとRSTPの方が若干早い感じがします。 STPはタイマーベースの切り替わりなので、タイムアウトになるまで切り替わりが発生しません。 一方、RSTP, リングプロトコルはイベントベースの切り替わりをするので 瞬時に経路を切り替える事ができます。

1.3. 標準規格

リングプロトコルは日本国内で盛んなプロトコルで、パナソニックの他、 アラクサラネットワークス, アライドテレシスなども似たようなプロトコルを開発しております。 リングプロトコルはベンダー独自の実装でベンダー間の互換性はありません

スパニングツリーは、標準規格であるものSTP, PVST, CST, PVST+, RSTP, ,RPVST+, MST, MISTなどの様々な規格が存在します。 スイッチ機器がこれら全ての規格をサポートするわけではありませんので、 互換性はあるものの実際にベンダー混在環境が運用できるかどうかは別問題です。

1.4. ネットワーク構成

スパニングツリーは以下のような階層型の構成をとることができます。 スパニングツリーはSW3/SW4間、SW5/SW6間、SW7/SW8間、SW9/SW10間をブロックする事でループを防止します。 このような構成を採用する事によって、特定のリンクにトラフィックが集中する事を避ける事ができます。

リングプロトコルは以下のようなリング型の構成をとることができます。 リングプロトコルは、Master01/SW10間をブロックする事でループを防止します。 このような構成になってしまうと、Master01/SW2間にトラフィックが集中してしまいます。

2. リングプロトコルに関する用語説明

2.1. マスターノード / トランジットノード

マスターノード(Master Node)はリングの状態が正常かどうかを監視するノードです。 マスターノードは監視フレームを送信し、 そのフレームがリングを一周して自分に戻ってくるかどうかでネットワークの正常性を確認します。

トランジットノード(Transit Node)はマスターノードからの監視フレームをそのまま転送するノードです。

2.2. プライマリポート / セカンダリポート

マスターノードにおけるプライマリポート(Primary Port)は監視フレームを送信するポートです。 もし監視フレームがリングを一周しセカンダリーポート(Secondary Port)で受信できたならば、 ループ上になっていると判断し、セカンダリーポートをBlocking状態にします。

一方、以下のような場合はマスターノードは障害が発生したと判断し、 セカンダリーポートをForwarding状態に変更します。

  • マスターノードが一定時間以内に監視フレームを受信できなかった場合
  • トランジットノードは障害を検知すると制御フレームを送り、その制御フレームがマスターノードに届いた場合

3. 各フレームの動き

3.1. 監視フレーム

マスターノードはプライマリポートから監視フレームを送信します。 そのフレームはリングを一周し、マスターノードのセカンダリーポートに届きます。 この様子を図示すると以下のようになります。

3.2. 制御フレーム

TransitNode02, TransitNode03間で障害が発生したとします。 障害を検知したトランジットノードは制御フレームをマスターノードに送信し、 障害が起きた旨をマスターに伝えようとします。 また、制御フレームを受信したノードはmac address tableを削除し、 障害発生後の構成に対応したmac address tableを作成しようとします。 この様子を図示すると以下のようになります。