STP はスイッチのループ構成を検出してブロードキャストストームを回避する代表的なスイッチの機能です。STPは自動でループを検出し適切な個所でループをブロックしますが、その仕組みを理解することで、STPを自在にあやつりスイッチやリンク障害時のバックアップ経路を確保することが可能になります。
STP(スパニングツリープロトコル)の概要
スパニングツリープロトコル(Spanning Tree Protocol, STP)は、IEEE 802.1Dで定義される複数のスイッチで構成される LAN のループ状態を回避するためのデータリンク層のプロトコルです。 STP を使用したループ回避はスイッチの代表的な機能です。
ループ構成上に存在する複数の経路は障害時の迂回経路として使うための、経路冗長化の役割も兼ねているため、このようなループ構成とSTPの機能がセットで利用されます。

STP が必要な背景
スイッチの仕組みとしてブロードキャストされたデータがスイッチに到着すると、到着したポートと同じネットワーク(同じVLAN)に所属するすべてのポートへ転送します。
その仕組みにより、2台以上のスイッチがループ状に接続された構成では、必ずブロードキャストしたデータは送信したスイッチ自身に戻ってきてしまいます。戻ってきたデータは再びブロードキャストすることで永久にデータは消えることなくループし続けます。
ループが発生すると、大量のブロードキャストパケットやフレームにより、一瞬でネットワーク全体の帯域を使いきり、ネットワーク機器やサーバーは処理の負荷により機能停止してしまいます。 これをブロードキャストストームと呼びます。
ブロードキャストストームは簡単な接続ミスでいつでも発生してしまうリスクのある影響の大きい問題です。そこで、このようなループ構成を論理的に遮断するためのプロトコルとして STP (スパニングツリープロトコル)が用意されています。
また、 STP を使用することで、 ループ構成の遮断だけではなく、遮断した経路は障害時の迂回経路として使用することができます。
STP の基本動作の仕組み
STP は、スパニングツリーアルゴリズム(STA)を用いて、スイッチの各ポートに STP 特有の役割を割り当て、冗長経路のうちどの経路を使用するか、または使用しないかをポート単位で決定します。
そのために、まずはルートスイッチ(起点)となるスイッチを1つ決定して、各スイッチはそのルートスイッチまでの距離が一番近い経路を選択します。最終的にループ構成上で最も優先度の低いポートが選ばれてトラフィックの送受信を遮断します。
BPDU について
各スイッチは BPDU (Bridge Protocol Data Unit) と呼ばれるフレームを各ポートから送出してお互いの情報を共有します。BPDU には、各スイッチの優先度を決定するためのブリッジ ID やルートスイッチまでの距離を示すパスコストなどの情報が格納されています。

STPが収束するまでの仕組み
以下のように、BPDU の情報をもとに各ポートの役割が決定していきます。
ルートスイッチを選出
起点となるスイッチや転送ポートなどを決定するために、接続ざれたスイッチ全体で BPDUフレーム情報を伝搬します。BPDU 内のブリッジ ID の値が最も低い(優先度の最も高い)スイッチが起点となりルートスイッチ(ルートブリッジとも呼ばれる)となります。

ルートポートを決定
ルートスイッチ以外のスイッチはルートスイッチまでの距離を計算して最も近い経路(ルートパス)をルートポートとして選択します。
距離の計算に使用されるのはパスコストと呼ばれる値です。パスコストは変更可能な値ですが、ポートの速度によって初期値が決まっています。ルートスイッチから送出された BPDU がスイッチのポートを経由するたびに、経由したポートのパスコストが加算されていきます。

ルートスイッチから加算されたパスコストの合計値をルートパスコストと呼びます。 各スイッチは、ルートスイッチまでのルートパスコストの値が最も低いポートをルートポート(RP)として決定します。

指定ポートを決定
リンクの両端に接続するスイッチのルートパスコストを比較して、値の低い方のポートを指定ポートに決定する。ルートパスコストの値が両側のスイッチで同じだった場合は、代わりにブリッジ ID を比較に使用します。

最後に非指定ポートを決定
ルートポートと指定ポートを割り当てて最後に残ったポートは非指定ポートとして選択さたポートがブロッキングポートに決定。ブロッキングポートでは、データトラフィックの送受信は遮断されます。

ルートパスでネットワーク障害が発生すると、ポートを遮断の状態から自動で開放してトラフィックの送受信が開始されます。

参考リンク
STP(スパニングツリープロトコル) 拡張機能と設定 – Cisco スイッチ
コメント