STP・スパニングツリープロトコルとは

 ネットワークを構成する上で、冗長性を確保するために、ネットワークをループ(円環)状にする場合があります。しかし、このような構成では、ブロードキャストをはじめ、ありとあらゆる通信データが、構成されたネットワーク上を永遠に循環することになります。

 レイヤ2ヘッダには、TTL(Time To Live)値は、ありません。そのために、永遠にループし続けることになります。その結果、スイッチのCPU負荷が上がってしまい、スイッチの処理能力が限界を超えて、最悪の場合、暴走してしまうかもしれませんし、ネットワークの帯域幅を浪費して、ネットワークがダウンしてしまいます。

 そこで、この循環を防ぐために、スパニングツリープロトコル(STP)を使用します。スパニングツリープロトコルは、IEEE 802.1dとして標準化されています。以下、スパニングツリープロトコルをSTPと書くことにします。

 STPは、与えられた優先順位を元に、ブリッジ間でBPDU(Bridge Protocol Data Unit)と呼ばれる制御情報をやり取りして、任意のポートをブロック状態にして、ブロックしたポートで、受信したデータフレームを破棄します。

 これによって、物理的にループを構成にしているネットワークであっても、データフレームがループの中をいつまでも巡り続ける事態を防ぐことができます。

 大規模なネットワークの場合は、障害時に迂回経路が確保できるという利点があるためスパニングツリーを構成するケースが多いようです。

 さて、そのSTPですが、STPには、IEEE802.1DとIEEE802.1Wという複数の種類が存在します。現在、主流になっているのは、IEEE802.1Wで、通称、RSTP(ラピッドスパニングツリープロトコル)と呼ばれています。

5つの状態移行

STPでは、下のように5つの状態を移行するので、最大で50秒(20秒+15秒+15秒)の通信断が発生します。

・Disabled(無効)
 ↓(ポートは管理上シャットダウンされています)
・Blocking
 ↓(最大経過時間20秒)
・Listening
 ↓(転送遅延15秒)
・Learning
 ↓(転送遅延15秒)
・Forwarding

 その間、通信ができない状態になりますので、ミッションクリティカルな環境において、あまり向いているとは言えません。そこで、このSTPの弱点を克服するべく開発されたのが、RSTPです。

 RSTPを使用すれば、スパニングツリーの再計算が1秒程度となり、非常に高速になります。RSTPは、STP(IEEE802.1d)とは互換性があるので、STPと混在環境でも動作可能です。

ここでは、IEEE802.1D(STP)でネットワークを構築してみることにします。

 STPの動作ですが、電源を入れると、BPDUが、ブリッジID(BID)と共に送信され、まずは、ルートブリッジの選出が行われます。ちなみに、Cisco機器では、デフォルトで送信間隔が2秒になっています。

STPでは、以下の選出が行われます。

  • ネットワークごとに1つのルートブリッジ
  • ルートブリッジ以外のスイッチごとに1つのルートポート
  • セグメントごとに1つの代表ポート
  • ブロックするポートの決定

 ルート ポートと代表ポートは、データトラフィックの転送に使用されます。ブロッキングポートでは、BPDUの受信だけが行なわれ、データフレームは破棄され、アドレスは学習されないようになります。

ルートブリッジの選出

 全てのスイッチが、BPDUを受信と確認を行い、最終的に最小のBID値を持つブリッジがルートブリッジとして選出されます。

ルートポート(Root Port)の選出

 ルートスイッチでない各スイッチごとに、1つのポートをルートポートとして選出します。ルートブリッジへの最小のコストを持つパスが最適パスを提供するルートポートになります。

代表ポート(Designated Port)の選出

 スパニングツリーに参加するポートを選択する。 ここでも、ルートブリッジへの最小のコストを持つパスが最適パスを提供する代表ポートになります。

ブロッキングポートの決定

RP(Root Port)、DP(Designated Port)になっていない残ったポートがブロッキングポートになります。

RP、DPの選出で行われる、パスコストの計算には、以下の値が使われます。

ポートパスコスト値
帯域幅帯域幅旧コスト
10Mbps100100
100Mbps1910
1Gbps41
10Gbps21

 新しい機器や古い機器での構成、また異機種間での構成では、新コスト、旧コストが入り混じってしまうため、各機器で、コストのカスタマイズが必要になる場合があります。