ここから本文です。
STP(スパニングツリープロトコル)とは|仕組みについて解説
スイッチングハブ、ネットワークシステム構築に関するお問い合わせはこちら
STP(スパニングツリープロトコル)とは
STPは「Spanning Tree Protocol」の略で、Ethernetにおける冗長化技術のプロトコルです。IEEE802.1dで標準化されました。円環状に構成されたネットワークにおいてデータが永続的に流れ続ける状態を防ぎます。
STPは物理的なL2ループを解消する
まずネットワークの構成からSTPの機能の概要を解説しましょう。LANなどの構内ネットワークでは、信頼性の高い通信状態を維持することが重要です。したがって、機器に障害が生じても迂回できる複数のスイッチングハブを用いたネットワークを構築します。
しかし、3台以上のスイッチングハブを用いて物理的に円環の状態を構成すると、信号が流れ続けるために通常の通信ができなくなる障害が起こります。トラフィックの循環によって通信が混雑して帯域が埋めつくされてしまうためです。この状態を「L2ループ」あるいは「物理ループ」「スイッチングループ」と呼びます。
STPの技術を使うことにより、物理的なループから生じる障害を回避できます。STPは経路の一部を遮断してネットワークをツリー構造になるように制御します。ツリー構造とは、樹木のようにひとつの節(ノード)が複数に枝分かれする状態のことです。ツリーの中心となるルートブリッジを選出してブロッキングするポートを作成してループを解消します。
ブロードキャストストームの発生
ループについてさらに詳しく解説すると、ネットワーク上でデータが転送され続ける状態を「ブロードキャストストーム」といいます。ブロードキャストは同一のネットワークにあるすべての機器に同時にデータや信号を通信することであり、通信のデータや信号などがあふれる、いわゆる嵐(storm)のような状態のことです。
複数の機器を接続するケースを説明しましたが、ブロードキャストストームは、2台のスイッチングハブを2本のLANケーブルで直結している場合、1本のケーブルを同じスイッチングハブに接続している場合にも生じます。ブロードキャストストームが発生するとPCなどのCPU使用率を上昇させて処理速度を低下させ、最終的にサーバをダウンさせる可能性があります。
このブロードキャストストームを解消させる有効な方法がSTPの導入です。また、通常のスイッチングハブではなくSTP対応のインテリジェントスイッチングハブを導入することにより、ブロードキャストストームの検出や防止を強化できます。
STPに関連する技術
STPには、複数のVLANにおいて個別のネットワーク接続形態(トポロジー)を構成するPVST+(Per-VLAN Spanning Tree Plus)、PVST+の技術を採用したRSTPの拡張プロトコルであるRapid-PVST+、IEEE 802.1Sを標準化したMSTP(Multiple Spanning Tree Protocol)があります。
MSTPでは論理トポロジーによる構成されたグループを「インスタンス」と呼び、インスタンス単位で処理ができます。インスタンスごとにSTPの計算が処理されるため、スイッチングハブのCPU負荷を軽減することが可能です。
複数のVLAN全体をひとつのトポロジーとして構成することをCST(Common Spanning Tree)といいます。一方で、複数のVLANを個別にトポロジーを構成するのがPVST+(Per-VLAN Spanning Tree Plus)です。
STPとリンクアグリゲーション
ネットワークの冗長化の技術としては、複数の物理リンクを束ねてひとつの論理リンクとして活用するリンクアグリゲーション(Link Aggregation)という技術が使われるようになりました。IEEE 802.3adで標準化された技術であり、経路の冗長とともに帯域幅の向上や負荷分散のメリットがあります。
STPは古くから使われている便利な技術ですが、設定項目が多いため管理面で煩雑になります。また、ブロッキングポートにより、使用しない帯域がネットワーク上に存在することになります。このような理由から、新たなネットワークの構築でSTPが実装されることは少なくなりました。
STPネットワークの必要性
STPの概要で既に必要性を触れましたが、あらためて「なぜSTPがネットワークに必要なのか」企業の現場目線から2つの理由を挙げます。
社内ネットワークでループは厳禁、人為的なミスへの対策
あらゆるネットワーク環境でループ回避は最重要事項ですが、特に企業の社内ネットワークでは厳禁といえます。帯域の負荷によってネットワークがダウンして、業務全体が停止する大事態に発展する場合があるからです。
大規模なネットワーク構成においては、どの部分でループが起きているのか特定に時間がかかることがあります。特定できたとしても復旧に時間がかかり、顧客対応ができなくなり、業務上に大きな支障をもたらします。注意しなければなりません。
BCPやDRを踏まえて、障害発生時の対策
人為的ミスに限らず、機器の故障などからネットワークのループが発生することがあります。BCP(事業継続計画)やDR(災害復旧)は企業にとって必須の課題になりました。故障は老朽化だけでなく、地震や台風などの自然災害も想定しておくべきです。ネットワークの冗長性と耐障害性の向上は両側面からの検討が求められます。
STPを有効にすると、物理的にループの状態にあっても論理的に単一経路の状態にできるため、障害によってある機器の経路が使えなくなった場合、自動的に閉ざしていたポートを開放して別の経路に切り替えることもできるようになります。
STPネットワークの仕組み
続いてSTPネットワークの仕組みと流れを取り上げます。
BPDUとは
STPネットワークの仕組みを知るためには「BPDU」を理解する必要があります。BPDUは「Bridge Protocol Data Unit」の略であり、STPを制御する特殊なフレーム(データの送受信単位)です。BPDUは、一定時間ごとにSTPが有効なスイッチングハブからネットワークにおける他のスイッチングハブに向けてブロードキャストにより一斉配信されます。
BPDUの情報には、プロトコルID、STPのバージョン、メッセージタイプ、フラグのほか、ルートID、ルートブリッジ到達までのパスコスト、ブリッジID、そしてメッセージエージ、遅延のために保持される時間をあらわす最大エージ、スイッチがBPDUを送信する間隔のHelloタイム、転送遅延の情報があります。
STPにおけるポートの4つの状態
STPにおけるポートの状態はブロッキング、リスニング、ラーニング、フォワーディングの4つがあります。
STPではアルゴリズムを用いて、最初にすべてのポートはブロッキング状態になります。このときフレームの送受信ができなくなりますが、まったくポートが使えなくなるわけではありません。BPDUは受信のみです。
リスニングでは、転送をブロックしつつルートブリッジ、ルートポートや指定ポートの選出のために計算を行い、BPDUの送信を開始します。ブロッキングからリスニングへの推移は最大20秒です。
リスニングからラーニングへの推移は15秒で、受信元のMACアドレスからMACアドレステーブルを構築します。ただし、フレームの転送は行わない状態です。
ラーニングからフォワーディングは15秒で推移します。このフォワーディングの状態においてルートポート、指定ポートが確立され、フレームの転送が可能になります。
関連情報はこちら
まとめ:STPを理解してトラブルを未然に防ぐ
STPはネットワークの冗長化や負荷分散のプロトコルとして長く使われてきました。ネットワークエンジニアに限らず、基本的な構造や仕組みを理解しておくと、トラブルを未然に防ぐために役立ちます。