RSTP

目次

RSTP(Rapid Spanning Tree Protocol)とは

RSTPは従来のSTPを改良し、高速収束を可能にしたプロトコルです。STPがIEEE 802.1Dとして標準化されていたのに対して、RSTPはIEEE 802.1Wとして標準化されています。基本的なツリー形成の流れはSTPと同じで、ルートブリッジの選出、ルートポートの選出、指定ポートの選出という手順で進みます。ただしRSTPでは非指定ポートの代わりに代替ポートやバックアップポートという役割が追加され、収束速度が格段に向上しました。

RSTPの特徴

  1. トポロジー変更があった場合、STPが最大50秒かかるのに対し、RSTPでは数秒以内に収束できる
  2. ツリーは「ルートブリッジ選出 → ルートポート選出 → 指定ポート選出 → 代替ポート選出」という流れで形成
  3. ポート役割は4種類(ルートポート、指定ポート、代替ポート、バックアップポート)
  4. ポート状態は3種類(ディスカーディング、ラーニング、フォワーディング)に簡略化
  5. STPとの互換性があり、RSTPモードとSTPモードを混在させることも可能
  6. BPDUに「提案(Proposal)」と「合意(Agreement)」を含めることで迅速なネゴシエーションが可能

RSTPのポート役割

RSTPではSTPに存在しなかった新しい役割が追加されています。ルートポートと指定ポートはSTPと同じですが、代替ポートとバックアップポートはRSTP独自のものです。

ポートの種類状態説明
ルートポート(RP)Forwarding非ルートブリッジごとに1つだけ選ばれる。ルートブリッジに最も近いポート。パスコスト、ブリッジID、ポートIDの順で比較。
指定ポート(DP)Forwarding各リンクで必ず1つ選ばれる。ルートブリッジに最も近いポートが選ばれる。
代替ポート(AP)Discardingルートポートのバックアップ用ポート。ルートポート障害時に即座に役割を引き継ぐ。STPの非指定ポートに相当し、CiscoのUplinkFastと同等。
バックアップポート(BP)Discarding指定ポートのバックアップ。指定ポート障害時に即座に役割を引き継ぐ。リピータハブなど共有メディア接続で発生し、ポートIDが小さい方がDPになり、もう一方がBPになる。

代替ポートはSTPの非指定ポートと同じ選出方法ですが、切り替えが数秒で完了します。バックアップポートはRSTP特有のもので、主に共有メディア環境でのみ出現します。

RSTPのポート状態

RSTPではSTPの5段階のポート状態が整理され、3つに統合されました。これによりシンプルで分かりやすくなっています。

STPの状態RSTPの状態動作MAC学習
ディセーブルディスカーディングフレームを転送せず、MAC学習もしない。BPDUは受信する。×
ブロッキングディスカーディング同上×
リスニングディスカーディング同上×
ラーニングラーニングフレームは転送しないが、MACアドレスを学習する。BPDUは送受信する。
フォワーディングフォワーディングフレーム転送とMAC学習、BPDU送受信を行う。

このようにRSTPでは「ディスカーディング → ラーニング → フォワーディング」の流れで収束が行われ、従来のSTPに比べて圧倒的に高速に切り替わります。

試験対策:
・代替ポート(AP)はSTPの非指定ポートに相当するが、切り替えが速い
・バックアップポート(BP)はRSTP特有であり、共有メディアで出現する
・ポート状態は3種類に統合され、仕組みが簡潔になっている
・RSTPはSTPと互換性があり、混在環境でも動作する

この知識を押さえておけば、STPとRSTPの違いを問う試験問題に自信を持って対応できます。

RSTP – BPDUフォーマット

RSTPでもBPDU(Bridge Protocol Data Unit)の基本構造はSTPと同じですが、いくつかのフィールドの値や意味が変更されています。特に「バージョン」「メッセージタイプ」「フラグ」がSTPと異なる点です。

RSTPのBPDUフォーマット

フィールド日本語表記説明サイズ(byte)
Protocol IDプロトコルID常に 02
VersionバージョンRSTPでは 802.1w = 21
Message TypeメッセージタイプRSTPのBPDUタイプは 0x021
Flagsフラグ各種制御ビット(詳細は後述)1
Root IDルートIDルートブリッジのブリッジID8
Path Costパスコストルートに至るまでの累積コスト4
Bridge IDブリッジID送信元スイッチのブリッジID8
Port IDポートIDポートプライオリティ+ポート番号2
Message AgeメッセージエージBPDU生成からの経過秒数(実質ホップ数)2
Max Age最大エージBPDU保持時間。デフォルト20秒2
Hello TimeHelloタイムBPDU送信間隔。デフォルト2秒2
Forward Delay転送遅延Listening/Learningに滞在する時間(デフォルト15秒)。RSTP同士ではほぼ使われず、STP互換時のみ有効。2

フラグの役割

RSTPでは、STPでは未使用だったビットを活用しています。これにより、タイマーに依存せずにネゴシエーションによる高速収束を実現しています。

  • bit1(Proposal)
    提案ビット。あるポートを指定ポートとして使いたい場合に送信。
  • bit2-3(Port Role)
    ポートの役割を示す2ビット。
    • 00 = 不使用
    • 01 = ルートポート
    • 10 = 指定ポート
    • 11 = 代替ポートまたはバックアップポート
  • bit4(Learning)
    学習状態にあることを示す。MACアドレスを学習中であることを意味する。
  • bit5(Forwarding)
    フォワーディング状態にあることを示す。実際にフレームを転送中。
  • bit6(Agreement)
    合意ビット。相手からの提案に同意したことを示し、即座にポートをフォワーディングへ移行可能にする。

高速収束の仕組み

RSTPでは、スイッチ間がポイントツーポイントで接続されている場合、プロポーザルBPDU(提案)アグリーメントBPDU(合意)をやり取りします。

  1. あるスイッチが「このポートを指定ポートにしたい」と提案する(Proposal)。
  2. 相手スイッチがその提案を受け入れれば、Agreementビットを立てたBPDUを返信する。
  3. この合意により、両方のポートは即座にフォワーディングへ移行する。

このようにRSTPは、従来のSTPのようにHelloタイマーやForward Delayを待たずに、ネゴシエーションだけでポートを有効化できるため、数秒以内の収束が可能になります。

試験対策:「RSTPが高速に収束できる理由は?」と問われた場合、Proposal/Agreementの仕組み未使用ビットを活用したBPDUの拡張を答えられるようにしておくと安心です。

RSTP – プロポーザルとアグリーメント

RSTPが高速収束を実現できる理由のひとつが「Proposal(提案)」と「Agreement(合意)」によるハンドシェイクです。従来のSTPでは、ポートを有効化する際にリスニング状態やラーニング状態を順番に経由する必要があり、その結果として収束に最大50秒かかっていました。RSTPではこのプロセスを大幅に簡略化しています。

スイッチ間が接続されると、それぞれのスイッチは「自分がルートブリッジであり、このポートは指定ポートである」という内容のProposal BPDUを送信します。BPDUにはブリッジプライオリティやルートパスコストといった情報が含まれており、どちらが優先されるべきかを判断する材料になります。

もし受信したProposalの方が自分より強ければ、相手のポートを指定ポートとして認め、自分のポートをルートポートに設定します。そして残りのポートを一時的にディスカーディングにしてからAgreement BPDUを返信します。逆に自分が強い場合は、相手からのAgreementを受信した時点で即座にフォワーディングを開始できます。このように、提案と合意によるハンドシェイクでポートを迅速に有効化するのがRSTPの特徴です。

RSTP – 障害発生時の動作

RSTPは障害発生時の挙動もSTPとは異なります。非ルートブリッジが持つ代替ポート(AP)は、ルートポートの障害を検知するとすぐにフォワーディングへ切り替わります。STPのようにリスニングやラーニング状態を経由する必要がないため、切り替えは数秒で完了します。

さらに、トポロジー変化を検知したスイッチはBPDUのTC(Topology Change)ビットをセットしてネットワーク全体に通知します。この情報はProposal & Agreementの仕組みと組み合わせて拡散され、全体の収束が高速に進みます。STPのようにルートブリッジに変更通知を送って応答を待つ必要もなく、従来の50秒待機が不要になっているのです。

RSTP – リンクタイプ

RSTPでは、接続形態によってリンクを次の2種類に分類しています。

リンクタイプ説明
ポイントツーポイントリンク全二重で動作するポート。スイッチ間が1対1で接続されており、高速収束を実現できるリンク。Proposal & Agreementのハンドシェイクが可能。
シェアードリンク半二重で動作するポート。リピータハブを介するなど、複数のスイッチが同一セグメントに存在する可能性がある接続。高速収束は行えず、従来のSTPタイマーに依存する。

RSTPの高速収束の恩恵を受けるためには、スイッチ間は必ず全二重・ポイントツーポイント接続にすることが重要です。もしシェアードリンクになっている場合、RSTPでも従来のSTPと同じタイマーに頼る動作になってしまいます。

試験対策:「なぜRSTPが高速に収束できるか?」という問いに対して、「Proposal/Agreementによるハンドシェイク」と「ポイントツーポイントリンクでのネゴシエーション」がキーワードになることを覚えておくとよいでしょう。

RSTP(rapid-PVST+)の設定:スパニングツリーモードの変更

CatalystスイッチはデフォルトでSTP(PVST+)モードになっています。高速収束を実現するために、RSTP(rapid-PVST+)へモードを変更することができます。モード切替のコマンドは以下の通りです。

(config)# spanning-tree mode [ mst | pvst | rapid-pvst ]
  • pvst
    STPモード(IEEE 802.1D)。正確にはPVST+として動作。 (config)# spanning-tree mode pvst
  • rapid-pvst
    RSTPモード(IEEE 802.1W)。正確にはrapid-PVST+として動作。 (config)# spanning-tree mode rapid-pvst
  • mst
    MSTモード(IEEE 802.1S)。複数のVLANを1つのインスタンスにまとめるモード。 (config)# spanning-tree mode mst

RSTP(rapid-PVST+)の有効化と無効化

RSTPはデフォルトで全VLANに対して有効化されています。特定のVLANでのみ無効化したい場合は以下のコマンドを使用します。

  • 有効化 (config)# spanning-tree vlan vlan-id
  • 無効化 (config)# no spanning-tree vlan vlan-id

例:VLAN10でRSTPを無効化する場合

(config)# no spanning-tree vlan 10

RSTP(rapid-PVST+)のブリッジプライオリティ設定

ブリッジプライオリティの設定はSTPと同じ仕組みで、VLANごとに設定可能です。

(config)# spanning-tree vlan vlan-id priority priority
  • priorityの範囲:0~61440(4096刻みで指定)
  • 例:VLAN10でブリッジプライオリティを4096に設定する場合 (config)# spanning-tree vlan 10 priority 4096

※ルートブリッジにしたい場合はpriorityを「0」、セカンダリールートにしたい場合は「4096」と設定するのが一般的です。

RSTP(rapid-PVST+)のエッジポート設定

RSTPではSTPで用意されていたUplinkFastやBackboneFastの設定は不要です。なぜならRSTP自体が高速収束できるからです。ただし、PCやルータなどBPDUをやり取りしない機器が接続されるポートでは、PortFastを設定して即座にフォワーディングへ移行させる必要があります。

  • 特定インターフェースへのPortFast適用(推奨) (config-if)# spanning-tree portfast
  • 全アクセスポートに一括適用(非推奨) (config)# spanning-tree portfast default

参考1:ポートコストの設定(STP/RSTP共通)

デフォルトコスト値は以下の通りです。

  • 10Gbps = 2
  • 1Gbps = 4
  • 100Mbps = 19
  • 10Mbps = 100

変更する場合は次のように設定します。

(config-if)# spanning-tree vlan vlan-id cost cost

例:GigabitEthernet0/1のトランクポートにおいて、VLAN10のコストを1に設定

(config)# interface GigabitEthernet0/1
(config-if)# spanning-tree vlan 10 cost 1

※VLANを指定せずに設定すると、そのインターフェース上の全VLANに適用されます。

参考2:ポートプライオリティの設定(STP/RSTP共通)

ポートプライオリティのデフォルト値は128で、16の倍数で設定可能です(範囲0~240)。

(config-if)# spanning-tree vlan vlan-id port-priority priority

例:GigabitEthernet0/1のVLAN10において、ポートプライオリティを144に設定する場合

(config)# interface GigabitEthernet0/1
(config-if)# spanning-tree vlan 10 port-priority 144

※VLANを指定しなければ、そのインターフェース上の全VLANに設定が適用されます。


試験対策:「STPとRSTPの設定の違い」よりも「モードの切り替え方」「PortFastの必要性」「priorityやcostの調整方法」が問われやすいので、コマンドの意味と使い所を理解しておくことが大切です。

Catalystスイッチにおけるスパニングツリーのデフォルト値

Catalystスイッチでは、スパニングツリー関連の多くのパラメータがあらかじめデフォルトで設定されています。これらを理解しておくと、試験の設問やトラブルシューティング時に役立ちます。

デフォルト設定一覧

機能デフォルト設定
スパニングツリーモードPVST+(Rapid PVST+ と MSTP は無効)
スイッチプライオリティ値32768(VLAN単位で設定可能)
ポートプライオリティ値128(ポート単位で設定可能)
ポートコスト値1000Mbps = 4、100Mbps = 19、10Mbps = 100
VLANポートプライオリティ値128(ポート単位で設定可能)
VLANポートコスト値1000Mbps = 4、100Mbps = 19、10Mbps = 100
Helloタイム2秒
Forward Delayタイム15秒
Max Ageタイム20秒
転送保留カウント6BPDU
スパニングツリーインスタンス数(変更不可)128(PVST+、Rapid PVST+)
最大ホップカウント20(MSTPのみ)

ここで注意しておきたいのは、スイッチプライオリティ値は32768が標準であるという点です。そのため、ルートブリッジを意図的に指定する場合は0や4096など明示的に変更する必要があります。

また、STPタイマー関連はHelloが2秒、Forward Delayが15秒、Max Ageが20秒という組み合わせで、従来のSTPで収束に最大50秒かかる仕組みと関連しています。

Catalyst – MSTモード時のパスコスト値

MST(Multiple Spanning Tree Protocol)モードでは、パスコストの計算基準が従来のPVST+やRapid PVST+とは異なります。より高いリンク速度に対応できるよう、値が大きく定義されています。

リンク速度パスコスト値
10 Mbps2,000,000
100 Mbps200,000
1 Gbps20,000
10 Gbps2,000
100 Gbps200

試験対策:「1Gbpsのデフォルトコストはいくつか?」という問題が出ることがありますが、PVST+やRapid PVST+では「4」、MSTモードでは「20,000」という違いをしっかり区別して覚えておくことが重要です。特にMSTは大規模ネットワークで用いられる技術なので、パスコスト値が大幅に異なることを試験対策として意識しておきましょう。

◆まとめスライド

目次