スパニングツリープロトコルとは
スパニング ツリー プロトコル (STP) は、ネットワーク内のループを防ぎながら冗長パスを提供するレイヤ 2 のリンク管理プロトコルです。ネットワークのループは、エンドステーションが重複メッセージを受信し、ネットワークが不安定になる原因となります。STPは、スパニング ツリー アルゴリズムを使って、冗長接続されたネットワークの中で1つのスイッチをルートとして選び、各ポートに役割を割り当てて最適なループフリーパスを計算します。
主なポートの役割は以下の通りです:
- ルートポート:スパニングツリートポロジーに選ばれた転送ポート
- 指定ポート:スイッチドLANセグメントごとに選ばれる転送ポート
- 代替ポート:スパニングツリーのルートブリッジへの代替パスを提供するブロックされたポート
- バックアップポート:ループバック構成でブロックされたポート
スパニング ツリーは冗長データ パスをブロック状態にし、ネットワーク障害時にはトポロジーを再計算してスタンバイパスをアクティブにします。スイッチはBPDUフレームを使ってループのないパスを構築し、各スイッチとポートに関する情報を共有します。ポートの優先順位とパス コストの設定により、転送状態とブロッキング状態のポートが決まります。
スパニングツリートポロジとBPDU
スパニングツリー(STP)は、ネットワークの安定性を確保するために重要な役割を果たします。今回は、STPの基本的な仕組みとその制御要素について紹介します。
STPの基本要素
ブリッジID
各スイッチの各VLANには、ユニークなブリッジID(スイッチプライオリティとMACアドレス)が関連付けられています。スイッチスタックでは、全てのスイッチが同じブリッジIDを使用します。
スパニングツリーパスコスト
ルートスイッチまでのパスコストは重要な要素です。スイッチは、パスコストを元に最適なルートを選択します。
ポート識別子
各レイヤー2インターフェイスに関連付けられたポート識別子(ポートプライオリティとMACアドレス)も重要です。
スパニングツリーの動作
スイッチの起動時
スイッチが起動すると、各スイッチは自分自身をルートスイッチとして機能します。そして、各ポートを通じてBPDU(ブリッジプロトコルデータユニット)を送信し、スパニングツリートポロジーを計算します。
BPDUの情報
BPDUには以下の情報が含まれます:
- ルートスイッチのブリッジID
- ルートまでのスパニングツリーパスコスト
- 送信スイッチのブリッジID
- メッセージの古さ
- 送信インターフェースの識別子
- プロトコルタイマーの値
優位情報と劣位情報
スイッチは、優位情報(より低いブリッジIDやパスコスト)を含むBPDUを受信すると、その情報を保存し、更新されたBPDUを転送します。劣位情報(現在保存されている情報よりも劣るもの)は破棄されます。
ネットワークトポロジーの決定
ルートスイッチの選出
ネットワーク内の1つのスイッチがルートスイッチとして選出されます。各VLANで、最も高いスイッチプライオリティ(数値が最も低い)を持つスイッチがルートスイッチになります。全てのスイッチがデフォルトのプライオリティ(32768)に設定されている場合、MACアドレスが最も低いスイッチがルートスイッチになります。
ルートポートの選択
ルートスイッチ以外の各スイッチに対して、ルートポートが選択されます。これは、ルートスイッチにパケットを転送する最適なパス(最低コスト)を提供します。
指定スイッチと指定ポート
各LANセグメントごとに指定スイッチが選ばれます。指定スイッチは、そのLANからルートスイッチにパケットを転送する際に最も低いパスコストを持つスイッチです。指定スイッチに接続されるポートを指定ポートと呼びます。
ブリッジ ID、デバイス優先度、拡張システム ID
ブリッジ識別子 (ブリッジID)
IEEE 802.1D規格では、各スイッチに一意のブリッジ識別子(ブリッジID)が必要です。このブリッジIDは、ルートスイッチの選定に使われます。特にPVST+およびRapid PVST+では、各VLANが別々の論理ブリッジと見なされるため、同じスイッチでも各VLANごとに異なるブリッジIDが必要です。
各VLANには、一意の8バイトのブリッジIDがあります。上位2バイトはスイッチの優先順位に使用され、残りの6バイトはスイッチのMACアドレスから取得されます。
IEEE 802.1t スパニングツリー拡張
IEEE 802.1t スパニングツリー拡張機能により、ブリッジIDの一部がVLAN識別子として使用されるようになりました。これにより、スイッチ用に予約されるMACアドレスが少なくなり、ブリッジIDの一意性を維持しながら、より広い範囲のVLAN IDをサポートできるようになりました。
以前はスイッチの優先度に使用されていた2バイトは、4ビットの優先度値と12ビットの拡張システムID値に再割り当てされます。スパニングツリーは、拡張システムID、スイッチプライオリティ、および割り当てられたスパニングツリーMACアドレスを使用して、各VLANのブリッジIDを一意にします。
スイッチスタックの挙動
スイッチスタックはネットワーク全体で単一のスイッチとして表示されます。スタック内の全てのスイッチは、特定のスパニングツリーに対して同じブリッジIDを使用します。スタックマスターに障害が発生した場合、スタックメンバーは新しいスタックマスターのMACアドレスに基づいて、全てのスパニングツリーのブリッジIDを再計算します。
スイッチプライオリティの設定
拡張システムIDのサポートにより、ルートスイッチ、セカンダリルートスイッチ、およびVLANのスイッチプライオリティを手動で設定する方法が変わります。例えば、スイッチプライオリティ値を変更すると、スイッチがルートスイッチとして選ばれる確率が変わります。高い値を設定すると確率は低下し、低い値を設定すると確率は上昇します。
スパニングツリーインターフェースの状態
STPを使用するスイッチ上の各レイヤ2インターフェースは、次のいずれかの状態になります。
1. ブロッキング(Blocking)
- 状態: フレーム転送に参加しません。
- 遷移: 初期化からブロッキングへ。ブロックからリスニングまたは無効化へ。
- 機能:
- 受信フレームの破棄
- 転送用フレームの破棄
- アドレスの学習を行わない
- BPDUの受信
2. リスニング(Listening)
- 状態: スパニングツリーがフレーム転送の必要を決定したときのブロッキング状態後の最初の遷移状態。
- 遷移: ブロックからリスニングへ。リスニングから学習または無効化へ。
- 機能:
- 受信フレームの破棄
- 転送用フレームの破棄
- アドレスの学習を行わない
- BPDUの受信
3. 学習(Learning)
- 状態: フレーム転送の準備をします。
- 遷移: リスニングから学習へ。学習から転送または無効化へ。
- 機能:
- 受信フレームの破棄
- 転送用フレームの破棄
- アドレスの学習
- BPDUの受信
4. 転送(Forwarding)
- 状態: フレームを転送します。
- 遷移: 学習から転送へ。転送から無効化へ。
- 機能:
- 受信フレームの受信と転送
- 転送用フレームの転送
- アドレスの学習
- BPDUの受信
5. 無効(Disabled)
- 状態: フレーム転送やスパニングツリーに参加しません。
- 機能:
- 受信フレームの破棄
- 転送用フレームの破棄
- アドレスの学習を行わない
- BPDUの受信を行わない
ルートスイッチの選定
ネットワーク内のすべてのスイッチがデフォルトのスパニングツリー設定(スイッチプライオリティが32768)で有効になっている場合、MACアドレスが最も低いスイッチがルートスイッチに選ばれます。
スパニングツリープロトコル(STP)のモードとプロトコル
PVST+(Per VLAN Spanning Tree Plus)
PVST+は、IEEE 802.1D標準とCisco独自の拡張機能に基づいたスパニングツリーモードです。このモードは各VLANで実行され、各VLANがループのないパスを持つことを保証します。各VLANに対してレイヤ2のロードバランシングを提供し、ネットワーク上のリンクの効率的な利用を実現します。
- 特徴:
- 各VLANに独自のルートスイッチを持ち、スパニングツリー情報を伝播
- 論理トポロジの作成とリンクの有効利用をサポート
Rapid PVST+(Rapid Per VLAN Spanning Tree Plus)
Rapid PVST+は、IEEE 802.1w標準に基づいた高速コンバージェンスを特徴とするスパニングツリーモードです。STPのデフォルトモードであり、トポロジの変更を受信するとMACアドレスエントリを即座に削除します。
- 特徴:
- 高速コンバージェンス
- PVST+と同じ設定を使用
- 大規模なPVST+インストールベースの移行を容易にする
MSTP(Multiple Spanning Tree Protocol)
MSTPは、IEEE 802.1s標準に基づき、複数のVLANを同じスパニングツリーインスタンスにマッピングできるスパニングツリーモードです。これにより、サポートするスパニングツリーインスタンスの数を減らし、効率的な管理が可能になります。
- 特徴:
- RSTP(IEEE 802.1w)上で実行
- 高速コンバージェンス
- スイッチスタックのクロススタック高速移行(CSRT)機能
サポートされているスパニングツリーインスタンス
PVST+ または Rapid PVST+ モードでは、スイッチまたはスイッチスタックは最大 128 個のスパニング ツリー インスタンスをサポートします。
MSTP モードでは、スイッチまたはスイッチスタックは最大 65 個の MST インスタンスをサポートします。特定の MST インスタンスにマッピングできる VLAN の数に制限はありません。
STP と IEEE 802.1Q トランク
IEEE 802.1Q標準の制限
IEEE 802.1Q標準では、トランク上で許可されるすべてのVLANに対して1つのスパニングツリーインスタンスのみが必要とされます。しかし、Ciscoスイッチのネットワークでは、トランク上で許可されるVLANごとに個別のスパニングツリーインスタンスを維持します。
Ciscoスイッチと非Ciscoデバイスの接続
CiscoスイッチをIEEE 802.1Qトランクを介して非Ciscoデバイスに接続すると、CiscoスイッチはPVST+(Per VLAN Spanning Tree Plus)を使用してスパニングツリーの相互運用性を実現します。もしRapid PVST+(Rapid Per VLAN Spanning Tree Plus)が有効になっている場合、CiscoスイッチはPVST+の代わりにRapid PVST+を使用します。
相互運用性の実現
- PVST+とRapid PVST+: Ciscoスイッチは、トランクのIEEE 802.1Q VLANのスパニングツリーインスタンスと非Cisco IEEE 802.1Qスイッチのスパニングツリーインスタンスを結合します。
- 情報の分離: 全てのPVST+またはRapid PVST+の情報は、Cisco以外のIEEE 802.1Qスイッチによって分離されたCiscoスイッチによって維持されます。これにより、Cisco以外のクラウドがスイッチ間の単一のトランクリンクとして扱われます。
Rapid PVST+の自動有効化
Rapid PVST+はIEEE 802.1Qトランクで自動的に有効になるため、ユーザーによる設定は必要ありません。アクセスポートやInter-Switch Link(ISL)トランクポート上の外部スパニングツリーの動作は、PVST+の影響を受けません。
スパニングツリーの相互運用性と下位互換性
MSTPとPVST+の相互運用性
MSTP(Multiple Spanning Tree Protocol)とPVST+(Per VLAN Spanning Tree Plus)が混在するネットワークでは、共通スパニングツリー(CST)ルートはMSTバックボーン内にある必要があります。PVST+スイッチは複数のMSTリージョンに接続できません。
Rapid PVST+とPVST+の相互運用性
Rapid PVST+(Rapid Per VLAN Spanning Tree Plus)を実行するスイッチと、PVST+を実行するスイッチが同じネットワーク内に存在する場合、それぞれのスパニングツリーインスタンスを異なるものとして設定することが推奨されます。
- Rapid PVST+インスタンス: ルートスイッチはRapid PVST+スイッチである必要があります。
- PVST+インスタンス: ルートスイッチはPVST+スイッチである必要があります。PVST+スイッチはネットワークのエッジに配置します。
スタックメンバーの一貫性
すべてのスタックメンバーは、同じバージョンのスパニングツリーを実行する必要があります。以下のいずれかを選択します:
- すべてPVST+
- すべてRapid PVST+
- すべてMSTP