シオラボのネットワーク技術コラム第7回 「スパニングツリープロトコルを理解する」

1. はじめに

「シオラボのネットワーク技術コラム」では、前回より、L2スイッチに搭載されている重要な機能を一つずつピックアップして解説しています。前回は、企業LANにおいて今や必須の機能ともいえるVLANを説明しましたが、いかがでしたか。VLANを使うことで、セキュリティ対策を含めたきめ細かなネットワーク管理をすることができるので、ぜひ活用してみてください。

さて、今回は、スパニングツリープロトコル(STP)を取り上げましょう。

2. スパニングツリープロトコル(STP)とは

スパニングツリープロトコル(STP)は、レイヤ2(データリンク層)で発生するブロードキャストフレームのループ問題を回避するためのプロトコルです。IEEE802.1Dで標準化されています。

あるLANから別のLANに至る経路は、万が一の通信断を考慮し、複数の経路を確保しておくべきです。これをネットワークの冗長構成といいます。冗長構成にすると、可用性を高めることができます。しかし、冗長構成にすることで、ブロードキャストフレームが巡回してしまう可能性も出てきます。スイッチは、ブロードキャストフレームを受信するとフラッディングをおこないます。ブロードキャストフレームを受信したスイッチは、受信したポート以外の全てのポート宛てにさらにフラッディングをおこないます。さらに、受信したスイッチは、ブロードキャストフレームのフラッディングをおこないます。これが延々と続き、つまり、スイッチ間でブロードキャストフレームが転送され続ける状態となってしまいます。これを、ブロードキャストストームといい、ブロードキャストストームが発生すると、正常な通信はできなくなります。このようなことにならないよう、スパニングツリープロトコルによって、論理的にアクティブな経路を1つに決めることで、ブロードキャストフレームのループを回避します。

3. BPDUとは

スパニングツリープロトコルは、経路制御に必要な情報を、BPDU(Bridge Protocol Data Unit)によってやり取りします。BPDUは、スイッチ間で2秒毎に交換されるフレームで、ルートID、パスコスト、ブリッジID、ポートIDなどの情報が含まれています。

BPDUに含まれる代表的な項目について、説明します。

  • ルートID

ルートブリッジに選定されたブリッジIDのこと。

  • パスコスト

ルートブリッジに至るリンクコストの合計値。なお、リンクコストとは、そのリンクの通信速度をコストに換算したもので、リンクの種類によって推奨値が決められています。

  • ブリッジID

64ビットで、ブリッジに与えられた優先度とMACアドレスで構成される。

  • ポートID

16ビットで、8ビットのポート優先度と8ビットのポート番号からなるもの。

4. スパニングツリープロトコルの動作

スパニングツリープロトコルは、以下のように動作します。

  • BPDUを交換することによって、最初にルートブリッジが決まります。ルートブリッジは、複数のスイッチの中で代表になるスイッチのことで、最も小さいブリッジIDを持つものです。
  • 次にルートポートを選出します。ルートブリッジがBPDUを送信し、受信したスイッチからルートブリッジまでのパスコストを算出します。ルートブリッジまでのパスコストが最も小さいポートがルートポートとなります。
  • 続いて、指定ポートを選出します。各セグメントにおいてルートブリッジまでのパスコストが最小のポートが指定ポートです。
  • 続いて、非指定ポートを選出します。ルートポート、指定ポートにもなれなかったポートは、すべて非指定ポートとなります。非指定ポートは、データフレームが送受信されないブロッキング状態となり、これでループが回避されます。

なお、スパニングツリープロトコルでは、あるスイッチが故障すると、パスコストの再計算に30〜50秒程度掛かると言われています。再計算時間は、経由するスイッチの段数が多くなるに従って増加するので、IEEE802.1Dでは、1つのネットワークにおいては、2つのエンドステーション間において経由するスイッチの段数は、7段以下になるようにネットワークを構成することが推奨されています。

今回は、スパニングツリープロトコル(STP)について解説してきました。スパニングツリープロトコルは、ネットワークを冗長構成としつつ、フレーム転送におけるループを防止するものです。便利な反面、管理ミスによるトラブルが生じやすく、使っていない帯域がネットワーク上に存在してしまうといったデメリットもあります。よって、最近のネットワーク構築では、スパニングツリープロトコルを使うことは少なくなっているようです。

次回は、リンクアグリゲーション(LA)について解説していきましょう。