スパニングツリー プロトコルについて
• 「STP について」
• 「IEEE 802.1w RSTP について」
• 「MST について」
• 「単一方向リンク障害の検出」
STP の概要
STP(IEEE 802.1D ブリッジ プロトコル)は、ネットワークの不要なループを排除しながらパスの冗長性を提供する、レイヤ 2 リンク管理プロトコルです。レイヤ 2 イーサネット ネットワークが正常に動作するには、任意の 2 つのステーション間で存在できるアクティブ パスは 1 つだけです。STP の動作はエンド ステーションに対してトランスペアレントなので、単一の LAN セグメントに接続されているのか、それとも複数セグメントからなるスイッチド LAN に接続されているのかを、エンド ステーションが検知することはできません。
Per-VLAN Spanning Tree(PVST)として知られる拡張機能で、レイヤ 2 イーサネット ポートは、すべての VLAN で STP を使用できます。設定された各 VLAN においてデフォルトでイネーブルになっている(手動でディセーブルにしていなければ)Rapid PVST+ は、高速コンバージェンスを実現するために RSTP を使用します。独立 VLAN は、独自の RSTP インスタンスを実行します。
Rapid PVST+ では、ダイナミック エントリは、トポロジの変更を受信すると、ポート単位ですぐに消去されます。UplinkFast および BackboneFast 設定は Rapid PVST+ モードでは無視され、両機能は RSTP に含まれます。Rapid PVST+ モードは、「単一方向リンク障害の検出」で説明されているように、単一方向リンク障害の検出をサポートします。
フォールトトレラントなインターネットワークを作成する場合、ネットワーク上のすべてのノード間にループフリー パスを構築する必要があります。STP アルゴリズムは、スイッチド レイヤ 2 ネットワーク上で最良のループフリー パスを算出します。レイヤ 2 LAN ポートは定期的に STP フレームを送受信します。ネットワーク デバイスはこれらのフレームを転送しないで、フレームを使用してループフリー パスを構築します。
エンド ステーション間に複数のアクティブ パスがあると、ネットワーク内でループが発生する原因になります。ネットワークにループが存在する場合、エンド ステーションが重複したメッセージを受信したり、ネットワーク デバイスが複数のレイヤ 2 LAN ポート上でエンド ステーション MAC アドレスを学習したりする可能性があります。このような状況によって、ネットワークが不安定になります。
STP は、ルート ブリッジおよびそのルートからレイヤ 2 ネットワーク上のすべてのネットワーク デバイスへのループフリー パスを備えたツリーを定義します。STP は冗長データ パスを強制的にスタンバイ(ブロック)ステートにします。スパニングツリーの 1 つのネットワーク セグメントで障害が発生し、冗長パスが存在する場合、STP アルゴリズムはスパニングツリー トポロジーを再計算し、スタンバイ パスをアクティブにします。
ネットワーク デバイス上の 2 つのレイヤ 2 LAN ポートがループの一部になっている場合、どちらのポートがフォワーディング ステートになり、どちらのポートがブロッキング ステートになるかは、STP ポート プライオリティおよびポート パス コストの設定によって決まります。STP ポート プライオリティ値は、ネットワーク トポロジーにおけるポートの位置を表すとともに、その位置によってポートがどれだけ効率的にトラフィックを通過させることができるかを表します。STP ポート パス コスト値は、メディア速度を表します。
ブリッジ プライオリティ値
各ネットワーク デバイス上の各 VLAN には、一意の 64 ビットブリッジ ID が設定されています。ブリッジ ID はブリッジ プライオリティ値、拡張システム ID、および STP MAC アドレス割り当てで構成されています。拡張システム ID がイネーブルの場合、ブリッジ プライオリティは 4 ビット値です(表 30-1 および「VLAN のブリッジ プライオリティの設定」を参照)。
拡張システム ID
12 ビットの拡張システム ID フィールドは、ブリッジ ID の一部です(表 30-1 を参照)。MAC アドレスを 64 個だけサポートするシャーシは、常に 12 ビットの拡張システム ID を使用します。1,024 個の MAC アドレスをサポートするシャーシでは、拡張システム ID の使用をイネーブルにできます。
拡張システム ID は、次の条件ではデフォルトでイネーブルです。
• 64 個の MAC アドレスのみをサポートするシャーシ
• STP モードが MST の場合
STP は拡張システム ID として VLAN ID を使用します。「拡張システム ID のイネーブル化」を参照してください。
表 30-1 拡張システム ID がイネーブルの場合のブリッジ プライオリティ値および拡張システム ID
|
拡張システム ID(VLAN/MST インスタンス ID と同設定)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32768 |
16384 |
8192 |
4096 |
2048 |
1024 |
512 |
256 |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
STP MAC アドレスの割り当て
Catalyst 6500 シリーズ スイッチ シャーシには、STP のようなソフトウェア機能をサポートするために使用可能な 64 または 1024 の MAC アドレスがあります。シャーシの MAC アドレスの範囲を表示するには、 show catalyst6000 chassis-mac-address コマンドを入力します。
64 個の MAC アドレスを持つシャーシの場合、STP は拡張システム ID と MAC アドレスを使用して、VLAN ごとに一意のブリッジ ID を作成します。
拡張システム ID がイネーブルでない場合、STP は VLAN ごとに 1 つの MAC アドレスを使用して、VLAN ごとに一意のブリッジ ID を作成します。
拡張システム ID がイネーブルになっているネットワーク装置がネットワークにある場合、望ましくないルート ブリッジ選択やスパニングツリー トポロジ問題を回避するために、レイヤ 2 で接続されているその他すべてのネットワーク装置でも、拡張システム ID をイネーブルにする必要があります。
拡張システム ID がイネーブルの場合、ルート ブリッジのプライオリティは、4096 の倍数プラス VLAN ID になります。拡張システム ID がイネーブルだと、スイッチ ブリッジ ID(ルート ブリッジの ID を決定するためスパニングツリー アルゴリズムによって使用され、最小値のほうが優先される)には、4096 の倍数だけ指定できます。使用可能な値は、0、4096、8192、12288、16384、20480、24576、28672、32768、36864、40960、45056、49152、53248、57344、61440 だけです。
同じスパニングツリー ドメイン内の別のブリッジで拡張システム ID がイネーブルでない場合、ブリッジ ID により細かい値を選択できるため、そのブリッジがルート ブリッジの所有権を取得する可能性があります。
ブリッジ プロトコル データ ユニットについて
ブリッジ プロトコル データ ユニット(BPDU)はルート ブリッジから一方向に送信されます。各ネットワーク デバイスはコンフィギュレーション BPDU を送信して、スパニングツリー トポロジを伝達および計算します。各コンフィギュレーション BPDU に含まれる最小限の情報は、次のとおりです。
• 送信側ネットワーク デバイスがルート ブリッジになると見なしているネットワーク デバイスの固有のブリッジ ID
• ルートまでの STP パス コスト
• 送信側ブリッジのブリッジ ID
• メッセージ エージ
• 送信側ポートの ID
• hello タイマー、転送遅延タイマー、および max-age プロトコル タイマーの値
ネットワーク デバイスが BPDU フレームを伝送すると、そのフレームが伝送される LAN に接続されたすべてのネットワーク デバイスが BPDU を受信します。ネットワーク デバイスが BPDU を受信すると、そのフレームを転送するのではなく、フレームに含まれる情報を使用して BPDU を計算し、トポロジーが変更されると、BPDU の送信を開始します。
BPDU 交換によって次の処理が行われます。
• 1 つのネットワーク デバイスがルート ブリッジとして選定されます。
• パス コストに基づいて、各ネットワーク デバイスのルート ブリッジまでの最短距離が計算されます。
• LAN セグメントごとに指定ブリッジが選択されます。これはルート ブリッジに最も近いネットワーク デバイスであり、このネットワーク デバイスを経由してルートにフレームが転送されます。
• ルート ポートが選択されます。これはブリッジからルート ブリッジまでの最適パスを提供するポートです。
• スパニングツリーに含まれるポートが選択されます。
ルート ブリッジの選定
VLAN ごとに、最高のプライオリティのブリッジ ID(数値的に最小の ID 値)を持つネットワーク装置がルート ブリッジとして選定されます。すべてのネットワーク デバイスがデフォルト プライオリティ(32768)に設定されている場合は、VLAN 内で最小の MAC アドレスを持つネットワーク デバイスがルート ブリッジになります。ブリッジ プライオリティ値はブリッジ ID の最上位ビットを占めます。
ブリッジのプライオリティの値を変更すると、スイッチがルート ブリッジとして選定される可能性を変更することになります。高いプライオリティ値を設定するとその確率が高くなり、低いプライオリティ値を設定すると低くなります。
STP ルート ブリッジは、レイヤ 2 ネットワークにおけるスパニングツリー トポロジーの論理上の中心です。レイヤ 2 ネットワーク内のどの場所からでも、ルート ブリッジに到達するために必要でないパスは、すべて STP ブロッキング モードになります。
BPDU には、送信側ブリッジおよびそのポートについて、ブリッジおよび MAC アドレス、ブリッジ プライオリティ、ポート プライオリティ、パス コストなどの情報が含まれます。STP はこの情報を使用してレイヤ 2 ネットワークのルート ブリッジを選定し、ルート ブリッジへのルート ポートを選定し、各レイヤ 2 セグメントの指定ポートを判別します。
STP プロトコル タイマー
|
|
ハロー タイマー |
ネットワーク デバイスが他のネットワーク デバイスへ hello メッセージをブロードキャストする間隔を決定します。 |
転送遅延タイマー |
ポートが転送を開始するまでの、リスニング ステートおよびラーニング ステートが継続する時間を決定します。 |
最大エージング タイマー |
ポートで受信したプロトコル情報がネットワーク デバイスによって保管される時間を決定します。 |
スパニングツリー トポロジーの作成
図 30-1 では、スイッチ A がルート ブリッジに選定されます。これは、すべてのネットワーク デバイスのブリッジ プライオリティがデフォルト(32768)に設定されており、スイッチ A の MAC アドレスが最小であるためです。ただし、トラフィック パターン、転送ポートの数、またはリンク タイプによっては、スイッチ A が最適なルート ブリッジであるとは限りません。最適なネットワーク デバイスがルート ブリッジになるように、デバイスのプライオリティを上げる(数値を下げる)ことで、ルートとして最適なネットワーク デバイスを使用する、新しいスパニングツリー トポロジーを形成するように強制的に再計算させることができます。
図 30-1 スパニングツリー トポロジー
スパニングツリー トポロジがデフォルトのパラメータに基づいて算出された場合、スイッチド ネットワークの送信元エンド ステーションから宛先エンド ステーションまでのパスが最適にならない場合があります。たとえば、現在のルート ポートよりも数値の大きいポートに高速リンクを接続すると、ルート ポートが変更される場合があります。最高速のリンクをルート ポートにすることが重要です。
たとえば、スイッチ B の 1 つのポートが光ファイバ リンクであり、同じスイッチの別のポート(Unshielded Twisted-Pair(UTP; シールドなしツイストペア)リンク)がルート ポートになっていると仮定します。ネットワーク トラフィックを高速の光ファイバ リンクに流した方が効率的です。光ファイバ ポートの STP ポート プライオリティをルート ポートよりも高いプライオリティに変更すると(数値を下げる)、光ファイバ ポートが新しいルート ポートになります。
STP ポート ステートの概要
プロトコル情報がスイッチド LAN を通過するとき、伝播遅延が生じることがあります。その結果、スイッチド ネットワークのさまざまな時点および場所でトポロジーの変化が発生します。レイヤ 2 LAN ポートがスパニングツリー トポロジに含まれていない状態からフォワーディング ステートに直接遷移すると、一時的にデータ ループが発生する可能性があります。ポートは新しいトポロジー情報がスイッチド LAN 経由で伝播されるまで待機し、それからフレーム転送を開始する必要があります。さらに、古いトポロジーを使用して転送されたフレームの存続時間を満了させることも必要です。
STP を使用する各レイヤ 2 LAN ポートは、次の 5 種類のステートのいずれかになります。
• ブロッキング:レイヤ 2 LAN ポートはフレーム転送に参加しません。
• リスニング:レイヤ 2 LAN ポートがフレーム転送に参加すべきであると STP が判断した場合に、ブロッキング ステートのあとで最初に開始する移行ステートです。
• ラーニング:レイヤ 2 LAN ポートがフレーム転送に参加する準備をしている状態です。
• フォワーディング:レイヤ 2 LAN ポートはフレームを転送します。
• ディセーブル:レイヤ 2 LAN ポートが STP に参加せず、フレームを転送しません。
レイヤ 2 LAN ポートは、次のように 5 種類のステートに移行します。
• 初期化からブロッキング
• ブロッキングからリスニングまたはディセーブル
• リスニングからラーニングまたはディセーブル
• ラーニングからフォワーディングまたはディセーブル
• フォワーディングからディセーブル
図 30-2図 30-2 に、レイヤ 2 LAN ポートがどのように 5 種類のステートを移行するかを示します。
図 30-2 レイヤ 2 LAN インターフェイス ステート
STP をイネーブルにすると、すべてのポート、VLAN、およびネットワークは、電源投入時に必ずブロッキング ステートを経て、それからリスニングおよびラーニングという移行ステートに進みます。設定が適切であれば、各レイヤ 2 LAN ポートはフォワーディング ステートまたはブロッキング ステートで安定します。
STP アルゴリズムによってレイヤ 2 LAN ポートがフォワーディング ステートになると、次の処理が行われます。
1. レイヤ 2 LAN ポートがリスニング ステートになり、ブロッキング ステートに移行するように指示するプロトコル情報を待ちます。
2. レイヤ 2 LAN ポートが転送遅延タイマーの満了を待ち、レイヤ 2 LAN ポートをラーニング ステートに移行し、転送遅延タイマーをリセットします。
3. ラーニング ステートで、レイヤ 2 LAN ポートはフレーム転送を引き続きブロックしながら、転送データベースのエンド ステーションが位置情報を学習します。
4. レイヤ 2 LAN ポートは、転送遅延タイマーがタイムアウトになるまで待機します。タイムアウトになったら、レイヤ 2 LAN ポートをフォワーディング ステートに移行します。フォワーディング ステートでは、ラーニングおよびフレーム転送が両方ともイネーブルになります。
ブロッキング ステート
ブロッキング ステートのレイヤ 2 LAN ポートは、フレーム転送に参加しません(図 30-3 を参照)。初期化後、各レイヤ 2 LAN ポートに BPDU が送信されます。ネットワーク デバイスは、他のネットワーク デバイスと BPDU を交換するまで、そのネットワーク デバイスをルートと見なします。この BPDU 交換により、ネットワーク上のどのネットワーク デバイスがルートまたはルート ブリッジであるかが確定します。ネットワークにネットワーク デバイスが 1 台しか存在しない場合は、BPDU 交換は行われず、転送遅延タイマーが失効し、ポートはリスニング ステートに移行します。初期化後、ポートは必ずブロッキング ステートになります。
図 30-3 ブロッキング ステートのインターフェイス 2
ブロッキング ステートのレイヤ 2 LAN ポートは、次の処理を実行します。
• 接続セグメントから受信したフレームを廃棄します。
• 転送用に他のポートからスイッチングされたフレームを廃棄します。
• アドレス データベースに、エンド ステーションの位置情報は組み込みません (ブロッキング状態のレイヤ 2 LAN ポートに関する学習は行われないため、アドレス データベースは更新されません)。
• BPDU を受信し、それをシステム モジュールに転送します。
• システム モジュールから受信した BPDU を送信しません。
• ネットワーク管理メッセージを受信して応答します。
リスニング ステート
リスニング ステートは、レイヤ 2 LAN ポートがブロッキング ステートを経て最初に開始する移行ステートです。レイヤ 2 LAN ポートがフレーム転送に参加すべきであると STP が判断した場合に、レイヤ 2 LAN ポートはこのステートを開始します。図 30-4 に、リスニング ステートのレイヤ 2 LAN ポートを示します。
図 30-4 リスニング ステートのインターフェイス 2
リスニング ステートのレイヤ 2 LAN ポートは、次の処理を実行します。
• 接続セグメントから受信したフレームを廃棄します。
• 転送用に他の LAN ポートからスイッチングされたフレームを廃棄します。
• アドレス データベースに、エンド ステーションの位置情報は組み込みません (この時点で学習は行われないため、アドレス データベースは更新されません)。
• BPDU を受信し、それをシステム モジュールに転送します。
• システム モジュールから送られた BPDU を受信し、処理して送信します。
• ネットワーク管理メッセージを受信して応答します。
ラーニング ステート
ラーニング ステートのレイヤ 2 LAN ポートは、フレーム転送に参加するための準備を行います。レイヤ 2 LAN ポートは、リスニング ステートからラーニング ステートを開始します。図 30-5 に、ラーニング ステートのレイヤ 2 LAN ポートを示します。
図 30-5 ラーニング ステートのインターフェイス 2
ラーニング ステートのレイヤ 2 LAN ポートは、次の処理を実行します。
• 接続セグメントから受信したフレームを廃棄します。
• 転送用に他のポートからスイッチングされたフレームを廃棄します。
• エンド ステーションの位置情報をアドレス データベースに組み込みます。
• BPDU を受信し、それをシステム モジュールに転送します。
• システム モジュールから送られた BPDU を受信し、処理して送信します。
• ネットワーク管理メッセージを受信して応答します。
フォワーディング ステート
フォワーディング ステートのレイヤ 2 LAN ポートは、フレームを転送します(図 30-6 を参照)。レイヤ 2 LAN ポートは、ラーニング ステートからフォワーディング ステートを開始します。
図 30-6 フォワーディング ステートのインターフェイス 2
フォワーディング ステートのレイヤ 2 LAN ポートは、次の処理を実行します。
• 接続セグメントから受信したフレームを転送します。
• 転送用に他のポートからスイッチングされたフレームを転送します。
• エンド ステーションの位置情報をアドレス データベースに組み込みます。
• BPDU を受信し、それをシステム モジュールに転送します。
• システム モジュールから受信した BPDU を処理します。
• ネットワーク管理メッセージを受信して応答します。
ディセーブル ステート
ディセーブル ステートのレイヤ 2 LAN ポートは、フレーム転送または STP に参加しません(図 30-7 を参照)。ディセーブル ステートのレイヤ 2 LAN ポートは事実上、動作することはありません。
図 30-7 ディセーブル ステートのインターフェイス 2
ディセーブルになったレイヤ 2 LAN ポートは、次の処理を実行します。
• 接続セグメントから受信したフレームを廃棄します。
• 転送用に他のポートからスイッチングされたフレームを廃棄します。
• アドレス データベースに、エンド ステーションの位置情報は組み込みません (ラーニングは行われないため、アドレス データベースは更新されません)。
• BPDU を受信しません。
• システム モジュールから送信用の BPDU を受信しません。
STP および IEEE 802.1Q トランク
802.1Q トランクによって、ネットワークの STP の構築方法に、いくつかの制約が課されます。802.1Q トランクを使用して接続しているシスコのネットワーク デバイスを使用したネットワークでは、ネットワーク デバイスがトランク上で許容される VLAN ごとに 1 つの STP インスタンスを維持します。しかし、他社製の 802.1Q ネットワーク デバイスでは、トランク上で許容されるすべての VLAN に対して 1 つの STP インスタンスしか維持されません。
802.1Q トランクを使用してシスコのネットワーク デバイスを他社製のネットワーク デバイスに接続する場合、シスコのネットワーク デバイスは、トランクの 802.1Q VLAN の STP インスタンスを、他社製の 802.1Q ネットワーク デバイスのインスタンスと統合します。ただし、VLAN 別の STP 情報はすべて、他社製の 802.1Q ネットワーク デバイスのクラウドと切り離されて、シスコのネットワーク デバイスによって維持されます。シスコのネットワーク デバイスを隔てている他社製の 802.1Q 装置のクラウドは、ネットワーク デバイス間の単一トランク リンクとして処理されます。
802.1Q トランクの詳細については、を参照してください。
RSTP 概要
デフォルトでイネーブルである RSTP は、ポイントツーポイントの配線を利用して、スパニングツリーの高速コンバージェンスを実現します。スパニングツリーの再設定は 1 秒以内に発生します(802.1D スパニングツリーのデフォルト設定では 50 秒)。
ポートの役割およびアクティブ トポロジー
RSTP では、ポートの役割の割り当て、およびアクティブ トポロジーの学習により、スパニングツリーの高速コンバージェンスが可能になります。RSTP は 802.1D STP 上に構築され、スイッチ プライオリティが最も高い(プライオリティの数値が最も小さい)スイッチが、「ルート ブリッジの選定」で説明したようにルート ブリッジとして選択されます。RSTP は、次のうちいずれかのポートの役割をそれぞれのポートに割り当てます。
• ルート ポート:スイッチによりパケットがルート ブリッジに転送されるときに、最適のパス(最小コスト)を用意します。
• 指定ポート:指定スイッチに接続します。指定スイッチでは、LAN からルート ブリッジにパケットが転送されるときに、発生するパス コストが最小になります。指定スイッチが LAN に接続するポートのことを指定ポートと呼びます。
• 代替ポート:現在のルート ポートが提供するルート ブリッジへの代替パスを提供します。
• バックアップ ポート:指定ポートが提供した、スパニング ツリーのリーフに向かうパスのバックアップとして機能します。バックアップ ポートが存在できるのは、2 つのポートがポイントツーポイント リンクよってループバックで接続されている場合、または 1 つのスイッチに共有 LAN セグメントへの接続が 2 つ以上ある場合です。
• ディセーブル ポート:スパニング ツリーの動作において何もロールが与えられていません。
ルート ポートまたは DP の役割があるポートは、アクティブ トポロジーに組み込まれます。代替ポートまたはバックアップ ポートのロールがあるポートは、アクティブ トポロジから除外されます。
ネットワーク全体でポートの役割が一貫している安定したトポロジーの場合、RSTP は、すべてのルート ポートおよび DP をフォワーディング ステートにすぐに移行しますが、すべての代替ポートおよびバックアップ ポートは常に廃棄ステートになります(802.1D のブロッキングに相当)。ポートのステートにより、転送処理および学習処理の動作が制御されます。802.1D および RSTP のポート ステートの比較については、 表 30-2 を参照してください。
表 30-2 ポート ステートの比較
|
STP ポート ステート(IEEE 802.1D)
|
|
|
イネーブル |
ブロック |
廃棄 |
No |
イネーブル |
リスニング |
廃棄 |
No |
イネーブル |
ラーニング |
ラーニング |
Yes |
イネーブル |
転送 |
転送 |
Yes |
ディセーブル |
ディセーブル |
廃棄 |
No |
Cisco STP の実装との一貫性を保つため、このマニュアルでは、ポート ステートを 廃棄 ではなく ブロッキング として定義します。DP はリスニング ステートから開始します。
高速コンバージェンス
RSTP を使用すると、スイッチ、スイッチ ポート、または LAN に障害が発生しても、ただちに接続を回復できます。エッジ ポート、新しいルート ポート、ポイントツーポイント リンクで接続したポートに、高速コンバージェンスが次のように提供されます。
• エッジ ポート: spanning-tree portfast インターフェイス コンフィギュレーション コマンドを使用して、RSTP スイッチ上の 1 つのポートをエッジ ポートに設定すると、そのエッジ ポートはただちにフォワーディング ステートになります。エッジ ポートは Port Fast 対応ポートと同じであり、単一エンド ステーションに接続しているポートだけでイネーブルにする必要があります。
• ルート ポート:RSTP は、新しいルート ポートを選択した場合、古いルート ポートをブロックし、新しいルート ポートをフォワーディング ステートにすぐに移行します。
• ポイントツーポイント リンク:ポイントツーポイント リンクで別のポートにポートを接続し、ローカル ポートが DP になると、提案と合意のハンドシェークを使用して別のポートと高速移行がネゴシエーションされ、ループがないトポロジーが確保されます。
図 30-8 で示したように、スイッチ A は、ポイントツーポイント リンクを介してスイッチ B に接続され、すべてのポートがブロッキング ステートになります。このとき、スイッチ A のプライオリティが、スイッチ B のプライオリティよりも小さい数値であるとします。スイッチ A は提案メッセージ(提案フラグ セットを設定したコンフィギュレーション BPDU)をスイッチ B に送信し、自分自身を指定スイッチとして提案します。
スイッチ B が提案メッセージを受信すると、提案メッセージを受信したポートを新しいルート ポートとして選択し、すべての非エッジ ポートを強制的にブロッキング ステートにします。さらに、その新しいルート ポート経由で合意メッセージ(合意フラグが設定された BPDU)を送信します。
スイッチ A は、スイッチ B の合意メッセージを受信すると、ただちに自身の指定ポートをフォワーディング ステートにします。スイッチ B はその非エッジ ポートをすべてブロックし、またスイッチ A とスイッチ B はポイントツーポイント リンクで接続されているので、ネットワークにループは形成されません。
スイッチ C がスイッチ B に接続された場合も、同様のハンドシェイク メッセージが交換されます。スイッチ C はスイッチ B に接続されたポートをルート ポートとして選択し、両端のポートはただちにフォワーディング ステートに移行します。アクティブ トポロジにスイッチが追加されるたびに、このハンドシェイク プロセスが実行されます。ネットワークの収束時には、この提案と合意のハンドシェーク処理がスパニングツリーのルートからリーフに進みます。
スイッチは、ポート デュプレックス モードからリンク タイプを認識します。全二重ポートはポイントツーポイント接続であると見なされ、半二重ポートは共有接続であると見なされます。 spanning-tree link-type インターフェイス コンフィギュレーション コマンドを使用すると、デュプレックス設定によって制御されるデフォルト設定を無効にすることができます。
図 30-8 高速コンバージェンスの提案と合意のハンドシェーク
ポートの役割の同期
スイッチのポートの 1 つで提案メッセージが受信され、そのポートが新しいルート ポートに選択されると、RSTP は他のすべてのポートを新しいルートの情報に同期させます。
他のすべてのポートが同期化されると、スイッチはルート ポートで受信した優位のルート情報に同期化されます。次のような場合、スイッチ上の個別のポートが同期されます。
• ポートがブロッキング ステートである。
• エッジ ポートである(ネットワークのエッジに存在するように設定されたポート)。
DP は、フォワーディング ステートになっていてエッジ ポートとして設定されていない場合、RSTP によって DP が強制的に新しいルート情報で同期化すると、DP がブロッキング ステートに移行します。一般的に RSTP がルート情報でポートを強制的に同期化し、ポートが上の条件を満たしていない場合、そのポート ステートはブロッキングに設定されます。
スイッチは、すべてのポートが同期化されたことを確認すると、そのルート ポートに対応する指定スイッチに合意メッセージを送信します。ポイントツーポイント リンクで接続されたスイッチがポートの役割について互いに合意すると、RSTP はポート ステートをただちにフォワーディング ステートに移行させます。イベントのシーケンスについては、図 30-9 を参照してください。
図 30-9 高速コンバージェンス中のイベントのシーケンス
BPDU の形式および処理の概要
RSTP BPDU の形式は 802.1D BPDU の形式と同じですが、プロトコル バージョンは 2 に設定されます。新しい 1 バイトの Version 1 Length フィールドはゼロに設定されます。つまり、バージョン 1 のプロトコル情報は存在しません。 表 30-3 に、RSTP フラグ フィールドを示します。
表 30-3 RSTP BPDU フラグ
|
|
0 |
トポロジーの変化(TC) |
1 |
提案 |
2 ~ 3: 00 01 10 11 |
ポートの役割: 不明 代替ポートまたはバックアップ ポート ルート ポート 指定ポート |
4 |
ラーニング |
5 |
転送 |
6 |
契約 |
7 |
トポロジー変更確認応答(TCA) |
送信スイッチは、自身を LAN 上の指定スイッチにするために、RSTP BPDU に提案フラグを設定します。提案メッセージのポートの役割は、常に DP に設定されます。
送信スイッチは、提案を受け入れる場合、RSTP BPDU に合意フラグを設定します。合意メッセージのポートの役割は、常にルート ポートに設定されます。
RSTP には TCN BPDU がありません。TC フラグが使用されて、TC が示されます。ただし、802.1D スイッチとの相互運用性を保つために、RSTP スイッチは TCN BPDU の処理と生成を行います。
ラーニング フラグおよびフォワーディング フラグは、送信側ポートのステートに従って設定されます。
優位 BPDU 情報の処理
上位 BPDU は、ルート情報(低いスイッチ ID や低いパス コストなど)を持つ BPDU であり、ポート用に現在保存されているものより上位になります。
ポートが上位 BPDU を受信すると、RSTP は再設定を開始します。ポートが新しいルート ポートとして提案されて選択されると、RSTP は強制的にその他すべてのポートを同期化します。
受信した BPDU が提案フラグの設定された RSTP BPDU である場合、スイッチは他のすべてのポートを同期化した後、合意メッセージを送信します。BPDU が 802.1D BPDU である場合、スイッチは提案フラグを設定せずに、そのポートの転送遅延タイマーを開始します。新しいルート ポートでは、フォワーディング ステートに移行するために、2 倍の転送遅延時間が必要となります。
ポートで受信した上位情報によってポートがバックアップ ポートか代替ポートになった場合、RSTP はそのポートをブロッキング ステートに設定して合意メッセージを送信します。DP は、転送遅延タイマーが失効するまで、提案フラグを設定して BPDU を送信し続け、転送遅延タイマーの失効時に、ポートはフォワーディング ステートに移行します。
下位 BPDU 情報の処理
下位 BPDU は、ルート情報(高いスイッチ ID や高いパス コストなど)を持つ BPDU であり、ポート用に現在保存されているものより下位になります。
DP は、下位 BPDU を受信すると、独自の情報ですぐに応答します。
トポロジの変更
RSTP と 802.1D の間では、スパニングツリーの TC の処理が異なります。
• 検出:ブロッキング ステートとフォワーディング ステート間の いずれか の移行によって TC が発生する 802.1D とは異なり、ブロッキング ステートからフォワーディング ステートへの移行 だけ が、RSTP で TC の原因となります(接続の増加だけが TC と見なされます)。エッジ ポートにおけるステート変更は、TC の原因になりません。RSTP スイッチは、トポロジの変更を検出すると、そのスイッチのすべての非エッジ ポート(TC 通知を受信したポートを除く)で学習した情報を削除します。
• 通知:802.1D とは異なり、RSTP は TCN BPDU を使用しません。ただし、802.1D との相互運用性を保つために、RSTP スイッチは TCN BPDU の処理と生成を行います。
• 確認:RSTP スイッチは、DP で 802.1D スイッチから TCN メッセージを受信した場合、TCA ビットが設定された 802.1D コンフィギュレーション BPDU で応答します。ただし、802.1D スイッチに接続されているルート ポートで TC While タイマー(802.1D の TC タイマーと同じ)がアクティブの場合、TCA がセットされたコンフィギュレーション BPDU を受信すると、TC While タイマーはリセットされます。
この動作方式が必要なのは、802.1D スイッチを介してサポートする場合だけです。RSTP BPDU は TCA ビットが設定されていません。
• 伝播:RSTP スイッチは、指定ポートまたはルート ポートを介して別のスイッチから TC メッセージを受信すると、自身のすべての非エッジ ポート、指定ポート、およびルート ポート(この TC メッセージを受信したポートを除く)に変更を伝播します。スイッチは、これらのすべてのポートの TC 時間タイマーを起動し、これらのポート上で学習した情報を削除します。
• プロトコルの移行:802.1D スイッチとの下位互換性を保つため、RSTP は 802.1D コンフィギュレーション BPDU および TCN BPDU をポート単位で選択的に送信します。
ポートが初期化されると、移行遅延タイマーが開始され(RSTP BPDU が送信される最低時間を指定)、RSTP BPDU が送信されます。このタイマーがアクティブな間、スイッチはそのポートで受信したすべての BPDU を処理し、プロトコル タイプを無視します。
ポート移行遅延タイマーの期限切れ後にスイッチで 802.1D BPDU を受信した場合は、802.1D スイッチに接続していると見なして、802.1D BPDU のみを使用して開始します。ただし、RSTP スイッチが 1 つのポートで 802.1D BPDU を使用していて、タイマーが満了したあとに RSTP BPDU を受信した場合、タイマーが再起動し、そのポートで RSTP BPDU の使用が開始されます。
MST の概要
MST では複数の VLAN がスパニングツリー インスタンスにマッピングされ、それぞれのインスタンスには、その他のスパニングツリー インスタンスに依存しないスパニングツリー トポロジーが含まれます。このアーキテクチャによって複数の転送パスがデータ トラフィックに提供され、ロードバランスが可能になり、多数の VLAN のサポートに必要となるスパニングツリー インスタンスの数が減ります。MST では、1 つのインスタンス(転送パス)で障害が発生しても他のインスタンス(転送パス)に影響しないため、ネットワークのフォールトトレランスが向上します。
最も一般的には、レイヤ 2 スイッチド ネットワークのバックボーン レイヤおよび配布レイヤに最初に MST を配置します。この配置では、サービス プロバイダー環境で必要となる、一種の高可用性ネットワークが提供されます。
MST では明示的なハンドシェークによって高速スパニングツリー コンバージェンスが提供され、802.1D 転送遅延がなくなり、ルート ブリッジ ポートおよび DP がフォワーディング ステートに高速で移行します。
MST ではスパニング ツリーの動作が改善され、次の STP バージョンとの下位互換性を維持しています。
• 元の 802.1D スパニング ツリー
• 既存のシスコ固有の Multiple Instance STP(MISTP)
• 既存のシスコの PVST+
• Rapid Per-VLAN Spanning Tree Plus(Rapid PVST+)
(注) • IEEE 802.1w では RSTP が定義されて、IEEE 802.1D に組み込まれました。
• IEEE 802.1s では MST が定義されて、IEEE 802.1Q に組み込まれました。
MST リージョン
MST インスタンスに加えるスイッチは、同じ MST 設定情報を使用して、設定を統一する必要があります。同じ MST コンフィギュレーションを持ち、相互接続されたスイッチの集合を MST リージョンといいます(図 30-10を参照)。
各スイッチがどの MST リージョンに属しているかは、MST コンフィギュレーションによって制御されます。この設定には、領域の名前、バージョン番号、MST VLAN とインスタンスの割り当てマップが含まれます。
リージョンには、MST 設定が同一である、1 つ以上のメンバを含めることができます。各メンバでは、RSTP ブリッジ プロトコル データ ユニット(BPDU)を処理できる必要があります。ネットワークにおける MST リージョンの数に制限はありませんが、各リージョンでは 65 までのスパニングツリー インスタンスをサポートできます。インスタンスは、0 ~ 4094 の範囲の任意の番号で識別できます。スパニングツリー インスタンスに同時に割り当てられる VLAN は 1 つだけです。
IST、CIST、CST の概要
すべてのスパニングツリー インスタンスが独立しているその他のスパニングツリー プロトコルとは異なり、MST は、Internal Spanning Tree(IST)、Common and Internal Spanning Tree(CIST)、Common Spanning Tree(CST)インスタンス確立および維持します。
• IST は、MST リージョンで実行するスパニングツリーです。
それぞれの MST リージョン内では、MST によって複数のスパニングツリー インスタンスが維持されます。インスタンス 0 は、IST という、領域の特殊インスタンスです。その他すべての MSTI には、1 ~ 4094 の番号が付きます。
IST は、BPDU の送受信を行う唯一のスパニングツリー インスタンスです。その他すべてのスパニングツリー インスタンス情報は、MSTP レコード(M レコード)に含まれ、MST BPDU 内でカプセル化されます。MST BPDU はすべてのインスタンスの情報を搬送するので、複数のスパニングツリー インスタンスをサポートするために処理する必要がある BPDU の数は大きく削減されます。
同一リージョン内のすべての MSTI は同一プロトコル タイマーを共有しますが、各 MSTI には、ルート ブリッジ ID やルート パス コストなど、独自のトポロジー パラメータがあります。デフォルトでは、すべての VLAN が IST に割り当てられます。
MSTI はリージョンにローカルです。たとえばリージョン A およびリージョン B が相互接続されていても、リージョン A の MSTI 1 は、リージョン B の MSTI 1 に依存しません。
• CIST は、各 MST リージョンの IST の集合です。
• CST は、MST リージョンと単一スパニングツリーを相互接続します。
あるリージョンで算出されたスパニングツリーは、スイッチド ドメイン全体を含む CST のサブツリーとして認識されます。CIST は、802.1w、802.1s、802.1D の各規格をサポートするスイッチで実行されているスパニングツリー アルゴリズムによって形成されています。MST リージョン内の CIST は、リージョン外の CST と同じです。
詳細については、「MST 領域内でのスパニングツリーの動作」および「MST 領域間のスパニングツリー動作」を参照してください。
MST 領域内でのスパニングツリーの動作
IST は、リージョンにあるすべての MST スイッチを接続します。IST が収束するとき、IST のルートは、図 30-10 に示すように CIST リージョナル ルートになります(802.1s 規格の実装前の IST マスター )。ネットワークに領域が 1 つしかない場合、CIST リージョナル ルートは CIST ルートにもなります。CIST ルートがリージョンの外部にある場合、リージョンの境界に位置する MST スイッチの 1 つが CIST リージョナル ルートとして選択されます。
MST スイッチが初期化されると、スイッチ自体を識別する BPDU が、CIST のルートおよび CIST リージョナル ルートとして送信されます。このとき、CIST ルートと CIST リージョナル ルートへのパス コストは両方ゼロに設定されます。スイッチはさらに MST インスタンスをすべて初期化し、自身がこれらすべてのインスタンスのルートであると主張します。スイッチは、ポートに現在保存されているルート情報よりも優位の MST ルート情報(小さいスイッチ ID、パス コストなど)を受信すると、CIST リージョナル ルートとしての主張を撤回します。
リージョンには、初期化中に多くのサブ リージョンが含まれて、それぞれに独自の CIST リージョナル ルートが含まれることがあります。スイッチは、同一リージョンのネイバーから上位 IST 情報を受信すると、古いサブ リージョンを脱退し、真の CIST リージョナル ルートを含む新しいサブ リージョンに加入します。これにより、真の CIST リージョナル ルートを含むサブ リージョンを除くすべてのサブ リージョンは縮小します。
正常な動作のためには、MST リージョン内のすべてのスイッチが同じ CIST リージョナル ルートを承認する必要があります。共通の CIST リージョナル ルートに収束する場合、そのリージョン内にある 2 つのスイッチは、1 つの MST インスタンスに対するポートの役割のみを同期させます。
MST 領域間のスパニングツリー動作
ネットワーク内に複数のリージョンまたは 802.1D スイッチがある場合、MST は CST を確立して維持します。これには、ネットワーク内のすべての MST リージョンおよびすべての 802.1D STP スイッチが含まれます。MSTI は、リージョンの境界にある IST と組み合わさり、CST になります。
IST は、リージョン内のすべての MST スイッチを接続し、スイッチ ドメイン全体を含んだ CIST 内のサブツリーとして認識されます。サブツリーのルートは CIST リージョナル ルートです。MST リージョンは、隣接する STP スイッチや MST リージョンからは仮想スイッチとして認識されます。
図 30-10 に、3 つの MST 領域と 802.1D(D)があるネットワークを示します。リージョン 1 の CIST リージョナル ルート(A)は、CIST ルートでもあります。リージョン 2 の CIST リージョナル ルート(B)、およびリージョン 3 の CIST リージョナル ルート(C)は、CIST 内のそれぞれのサブツリーのルートです。
図 30-10 MST リージョン、CIST リージョナル ルート、CST ルート
BPDU を送受信するのは、CST インスタンスだけです。MST インスタンスは自身のスパニングツリー情報を BPDU に追加して、ネイバー スイッチと通信し、最終的なスパニングツリー トポロジを計算します。このため、BPDU 送信に関連するスパニングツリー パラメータ(hello タイム、転送時間、最大経過時間、最大ホップ数など)は CST インスタンス上でのみ設定されますが、すべての MSTI に影響します。スパニングツリー トポロジーに関連するパラメータ(スイッチ プライオリティ、ポート VLAN コスト、ポート VLAN プライオリティなど)は、CST インスタンスおよび MSTI の両方で設定できます。
MST スイッチは、802.1D 専用スイッチと通信する場合、バージョン 3 BPDU または 802.1D STP BPDU を使用します。MST スイッチは、MST スイッチと通信する場合、MST BPDU を使用します。
IEEE 802.1s の用語
準規格の実装で使用される、一部の MST 命名規則は変更され、一部の 内部 パラメータおよび リージョナル パラメータの識別が組み込まれました。これらのパラメータは MST 領域内だけで使用され、ネットワーク全体で使用される外部パラメータと比較されます。CIST だけがネットワーク全体に広がるスパニングツリー インスタンスなので、CIST パラメータだけに外部修飾子が必要になり、修飾子またはリージョン修飾子は不要です。
• CIST ルートは CIST のルート ブリッジで、ネットワーク全体にまたがる一意のインスタンスです。
• CIST 外部ルート パス コストは、CIST ルートまでのコストです。このコストは MST 領域内で変化しません。CIST では、MST リージョンが単一のスイッチのように見えるので注意してください。CIST 外部ルート パス コストは、これらの仮想スイッチとリージョンに属していないスイッチ間を計算して出したルート パス コストです。
• CIST リージョナル ルートは、準規格の実装で IST マスターと呼ばれていました。CIST ルートが領域内にある場合、CIST リージョナル ルートは CIST ルートです。または、CIST リージョナル ルートがそのリージョンで CIST ルートに最も近いスイッチになります。CIST リージョナル ルートは、IST のルート ブリッジとして動作します。
• CIST 内部ルート パス コストは、領域内の CIST リージョナル ルートまでのコストです。このコストは、IST つまりインスタンス 0 だけに関連します。
表 30-4 に、IEEE 規格とシスコ準規格の用語の比較を示します。
表 30-4 準規格と規格の用語
|
|
|
CIST リージョナル ルート |
IST マスター |
CIST リージョナル ルート |
CIST 内部ルート パス コスト |
IST マスター パス コスト |
CIST 内部パス コスト |
CIST 外部ルート パス コスト |
ルート パス コスト |
ルート パス コスト |
MSTI リージョナル ルート |
インスタンス ルート |
インスタンス ルート |
MSTI 内部ルート パス コスト |
ルート パス コスト |
ルート パス コスト |
ホップ カウント
MST は、設定 BPDU のメッセージ エージ情報および最大エージ情報を使用せずにスパニングツリー トポロジーを算出します。その代わりに、IP Time To Live(TTL)メカニズムに似た、ルートまでのパス コストおよびホップ カウント メカニズムを使用します。
spanning-tree mst max-hops グローバル コンフィギュレーション コマンドを使用すると、領域内の最大ホップ数を設定し、IST およびその領域のすべての MSTI に適用できます。ホップ カウントは、メッセージ エージ情報と同じ結果になります(再設定を開始)。インスタンスのルート ブリッジは、コストが 0 でホップ カウントが最大値に設定された BPDU(M レコード)を常に送信します。この BPDU を受信したスイッチは、受信 BPDU の残存ホップ カウントから 1 だけ差し引いた値を残存ホップ カウントとする BPDU を生成し、これを伝播します。このホップ カウントが 0 になると、スイッチはその BPDU を廃棄し、ポート用に維持されていた情報を期限切れにします。
BPDU の RSTP 部分のメッセージ エージ情報および最大エージ情報は、リージョン全体で同じままです。同じ値が、境界にあるリージョンの DP によって伝播されます。
境界ポート
シスコ準規格の実装では、境界ポートが次のうちいずれかの STP リージョンに MST リージョンを接続します。
• RSTP が動作している単一スパニングツリー リージョン
• PVST+ または Rapid PVST+ が動作している単一スパニングツリー リージョン
• MST 設定が異なる別の MST リージョン
また、境界ポートは、指定スイッチが単一のスパニングツリー スイッチ、または異なる MST コンフィギュレーションを持つスイッチである LAN に接続されます。
802.1s 規格には、境界ポートの定義がありません。802.1Q-2002 規格では、内部(同一リージョンから着信)および外部という、ポートが受信できる 2 種類のメッセージが識別されています。メッセージが外部である場合、CIST だけが受信します。CIST の役割がルートや代替ルートの場合、または外部 BPDU のトポロジが変更された場合は、MST インスタンスに影響する可能性があります。メッセージが内部である場合、CIST は CIST 部分を受信し、各 MSTI はそれぞれの M レコードを受信します。シスコ準規格の実装では、外部メッセージを受信するポートが境界ポートとして扱われます。つまりポートは、内部メッセージと外部メッセージを一緒に受信できません。
MST リージョンには、スイッチと LAN の両方が含まれています。セグメントは、DP のリージョンに属します。このため、セグメントの DP と異なるリージョンのポートは境界ポートです。この定義では、リージョン内部の 2 つのポートが、別のリージョンに属するポートとセグメントを共有し、内部メッセージおよび外部メッセージの両方を 1 つのポートで受信できるようになります。
シスコ準規格の実装からの主な変更点は、DP が、STP 互換モードで動作していない場合、境界ポートとして定義されないことです。
(注) 802.1D STP スイッチがセグメントにある場合、メッセージは常に外部と見なされます。
準規格の実装からの変更点には、RSTP またはレガシー 802.1s スイッチに送信者スイッチ ID が含まれる場所に、CIST リージョナル ルート ブリッジ ID フィールドが挿入されることもあります。一貫した送信スイッチ ID をネイバー スイッチに送信することで、リージョン全体で 1 つの仮想スイッチのように動作します。この例では、スイッチ A または B がそのセグメントで指定されているかどうかにかかわらず、スイッチ C が、ルートの一貫した送信スイッチ ID を持つ BPDU を受信します。
ポートの役割の命名規則の変更点
境界の役割は最終的な MST 規格から削除されましたが、この境界という概念は規格準拠実装で維持されます。ただしリージョンの境界にある MSTI ポートは、対応する CIST ポートの状態に従わないことがあります。現在、次の 2 つの状況があります。
• 境界ポートが CIST リージョナル ルートのルート ポートである:CIST インスタンス ポートは、提案されて同期化されると、合意を返送して、対応するすべての MSTI ポートが同期化された(フォワーディングになって)あとにだけフォワーディング ステートに移行します。MSTI ポートには、特別な マスター の役割があります。
• 境界ポートが CIST リージョナル ルートのルート ポートでない:MSTI ポートは、CIST ポートのステートおよび役割に従います。規格が提供する情報は少なく、MSTI ポートが BPDU(M レコード)を受信しないとき、交互にブロッキングできる理由を理解することは困難です。この状況の場合、境界の役割はすでに存在しませんが、 show コマンドを入力すると、出力の type カラムでポートが境界として識別されます。
レガシーおよび規格準拠スイッチの間のスパニングツリー相互運用
先行標準のスイッチでは先行標準のポートを自動検出ができないため、インターフェイス コンフィギュレーション コマンドを使用して認識させます。標準と先行標準の間にあるリージョンは形成できませんが、CIST を使用する前に相互運用できます。この特定状況では、さまざまなインスタンスにおけるロードバランス機能だけが失われます。ポートが準規格 BPDU を受信したとき、CLI ではポート設定によって異なるさまざまなフラグが表示されます。また、スイッチが、先行標準の BPDU 転送の設定がされてないポートで先行標準の BPDU を初めて受信すると、Syslog メッセージにも表示されます。
図 30-11 に、準規格スイッチに接続された規格準拠スイッチを示します。A は規格準拠スイッチ、B は準規格スイッチであり、両方とも同一リージョンに設定されているとします。A は CIST のルート ブリッジなので、B にはセグメント X にルート ポート(BX)およびセグメント Y に代替ポート(BY)があります。セグメント Y がフラップして、先行標準の BPDU を送信する前に BY のポートが代替ポートになった場合、AY は Y に接続している先行標準のスイッチを検出できないため、標準の BPDU を送信し続けます。ポート BY は境界に固定され、A と B の間でのロードバランスは不可能になります。セグメント X にも同じ問題がありますが、B は TC を送信することがあります。
図 30-11 規格準拠と準規格スイッチの相互運用
(注) 規格 MST 実装と準規格 MST 実装間の相互作用を最低限に抑えることを推奨します。
IEEE 802.1D-1998 STP とのインターオペラビリティ
MST を稼働しているスイッチは、802.1D スイッチとの相互運用を可能にする組み込みプロトコル移行機能をサポートします。このスイッチで、802.1D コンフィギュレーション BPDU(プロトコル バージョンが 0 に設定されている BPDU)を受信する場合、そのポート上の 802.1D BPDU のみが送信されます。MST スイッチは、802.1D BPDU、異なるリージョンに対応付けられた MST BPDU(バージョン 3)、または RSTP BPDU(バージョン 2)を受信すると、ポートがリージョンの境界にあることを検出できます。
ただし、スイッチは、802.1D BPDU を受信しなくなった場合でも、自動的には MSTP モードには戻りません。これは、802.1D スイッチが指定スイッチではない場合、802.1D スイッチがリンクから削除されたかどうかを検出できないためです。さらにスイッチは、接続先スイッチがリージョンに加入した場合であっても、引き続きポートに境界の役割を指定する可能性があります。プロトコル移行プロセスを再起動する(ネイバー スイッチとの再ネゴシエーションを強制する)には、 clear spanning-tree detected-protocols 特権 EXEC コマンドを使用します。
リンクのすべての 802.1D スイッチが RSTP スイッチである場合、802.1D スイッチは、RSTP BPDU であるかのように MST BPDU を処理できます。このため MST スイッチは、バージョン 0 の設定および Topology Change Notification(TCN)BPDU、または境界ポートのバージョン 3 の MST BPDU を送信します。境界ポートは、指定スイッチがシングル スパニングツリー スイッチまたは異なる MST コンフィギュレーションを持つスイッチのいずれかである LAN に接続されます。
単一方向リンク障害の検出
IEEE 802.1D-2004 RSTP および IEEE 802.1Q-2005 MSTP 標準に含まれる解決メカニズムを使用して、スイッチは、受信した BPDU のポート ロールとステートの一貫性をチェックして、ブリッジング ループが発生する可能性のある単一方向リンク障害を検出します。
指定ポートが矛盾を検出するとロールは維持されますが、状態は廃棄(ブロッキング)ステートに戻ります。これは、接続に矛盾が生じた場合、ブリッジング ループを開始するよりも接続を中断する方が好ましいためです。
図 30-12 に、一般的にブリッジング ループになる単一方向リンク障害を示します。スイッチ A はルート ブリッジで、その BPDU は、スイッチ B へのリンク上では失われます。RSTP および MST BPDU には、送信側ポートの役割とステートが含まれます。この情報により、送信する上位 BPDU に対してスイッチ B が反応しないこと、スイッチ B はルート ブリッジではなく指定ポートであることが、スイッチ A によって検出できます。結果として、スイッチ A は自身のポートをブロックし(またはブロックを維持して)、ブリッジ処理のループを回避します。
図 30-12 単一方向リンク障害の検出
スパニングツリー プロトコルの設定方法
• 「STP の設定」
• 「MST の設定」
STP のイネーブル化
(注) STP は、VLAN 1 および新たに作成されたすべての VLAN で、デフォルトでイネーブルに設定されています。
STP は、VLAN 単位でイネーブルにできます。スイッチは VLAN ごとに個別の STP インスタンスを維持します(STP をディセーブルに設定した VLAN を除きます)。
VLAN 単位で STP をイネーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# spanning-tree vlan vlan_ID |
VLAN 単位で STP をイネーブルにします。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。「STP のデフォルト設定」 を参照)。 |
Router(config)# default spanning-tree vlan vlan_ID |
指定された VLAN のすべての STP パラメータを、デフォルト値に戻します。 |
Router(config)# no spanning-tree vlan vlan_ID |
指定された VLAN で STP をディセーブルにします。このコマンドについては、次の「注意」を参照してください。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
注意 VLAN のすべてのスイッチおよびブリッジでスパニングツリーがディセーブルになっていない場合は、VLAN でスパニングツリーをディセーブルにしないでください。スパニングツリーは、VLAN の一部のスイッチおよびブリッジでディセーブルにしておきながら、VLAN のその他のスイッチおよびブリッジでイネーブルにしておくことはできません。スパニングツリーをイネーブルにしたスイッチとブリッジに、ネットワークの物理トポロジに関する不完全な情報が含まれることになるので、この処理によって予想外の結果となることがあります。
注意 物理的なループの存在しないトポロジーであっても、スパニングツリーをディセーブルにすることは推奨しません。スパニングツリーは、設定の誤りおよび配線の誤りに対する保護手段として動作します。VLAN に物理ループが存在しないことを確認せずに、VLAN でスパニングツリーをディセーブルにしないでください。
次に、VLAN 200 で STP をイネーブルにする例を示します。
Router# configure terminal
Router(config)# spanning-tree vlan 200
(注) STP はデフォルトでイネーブルに設定されているので、show running コマンドを入力して設定の結果を表示しても、STP をイネーブルにするために入力したコマンドは表示されません。
次に、設定を確認する例を示します。
Router# show spanning-tree vlan 200
Spanning tree enabled protocol ieee
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Status
---------------- ---- --- --------- -------- --------------------------------
Gi1/4 Desg FWD 200000 128.196 P2p
Gi1/5 Back BLK 200000 128.197 P2p
(注) VLAN 200 スパニングツリーを作成するには、VLAN 200 にアクティブなインターフェイスが少なくとも 1 つ必要です。この例では、VLAN 200 内の 2 つのインターフェイスがアクティブです。
拡張システム ID のイネーブル化
(注) • 64 個の MAC アドレスをサポートするシャーシの拡張システム ID は、常にイネーブルになっています。
• 拡張範囲 VLAN(1006 ~ 4094)を設定するには、拡張システム ID をイネーブルにする必要があります。
• VTP ドメイン内の任意のスイッチでイネーブルになっている場合、拡張システム ID をイネーブルにする必要があります。
1024 MAC アドレスをサポートするシャーシの拡張システム ID をイネーブルにできます(「ブリッジ ID について」を参照)。
拡張システム ID をイネーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# spanning-tree extend system-id |
拡張システム ID をイネーブルにします。 (注) 64 個の MAC アドレスをサポートするシャーシでは、または拡張範囲 VLAN を設定している場合には、拡張システム ID をディセーブルにできません(を参照)。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
(注) 拡張システム ID をイネーブルまたはディセーブルにすると、すべてのアクティブな STP インスタンスのブリッジ ID が更新されるため、これによってスパニングツリー トポロジが変更される場合があります。
次に、拡張システム ID をイネーブルにする例を示します。
Router# configure terminal
Router(config)# spanning-tree extend system-id
次に、設定を確認する例を示します。
Router# show spanning-tree summary | include Extended
Extended system ID is enabled.
ルート ブリッジの設定
Cisco IOS Release 15.1SY でサポートされるスイッチは、アクティブな VLAN ごとに STP のインスタンスを個別に維持します。各インスタンスには、ブリッジ プライオリティおよびブリッジの MAC アドレスで構成されるブリッジ ID が対応付けられます。VLAN ごとに、最小のブリッジ ID を持つネットワーク デバイスが、その VLAN のルート ブリッジになります。
VLAN インスタンスがルート ブリッジになるように設定するには、 spanning-tree vlan vlan_ID root コマンドを入力して、ブリッジ プライオリティをデフォルト値(32768)から非常に小さな値へと変更します。
spanning-tree vlan vlan_ID root コマンドを入力すると、各 VLAN で現在ルートになっているブリッジのブリッジ プライオリティがスイッチによって確認されます。拡張システム ID をイネーブルにすると、24576 という値でスイッチが指定された VLAN のルートになる場合、スイッチはその VLAN のブリッジ プライオリティを 24576 に設定します。
拡張システム ID がイネーブルで、指定された VLAN のルート ブリッジのブリッジ プライオリティが 24576 より小さい場合、スイッチはその VLAN のブリッジ プライオリティを最小のブリッジ プライオリティより 4096 小さい値に設定します。(4096 は 4 ビット ブリッジ プライオリティの最下位ビットの値です。表 30-1 を参照)。
(注) ルート ブリッジになるために必要な値が 1 より小さい場合は、spanning-tree vlan vlan_ID root コマンドはエラーになります。
拡張システム ID がイネーブルで、たとえば VLAN 20 のすべてのネットワーク デバイスでデフォルト プライオリティが 32768 に設定されている場合に、スイッチ上で spanning-tree vlan 20 root primary コマンドを使用すると、ブリッジ プライオリティが 24576 に設定され、スイッチが VLAN 20 のルート ブリッジになります。
注意 STP の各インスタンスのルート ブリッジは、バックボーン スイッチまたはディストリビューション スイッチでなければなりません。アクセス スイッチは、STP のプライマリ ルートとして設定しないでください。
レイヤ 2 ネットワークの直径(つまり、レイヤ 2 ネットワーク上の任意の 2 つのエンド ステーション間における最大ブリッジ ホップ数)を指定するには、 diameter キーワードを指定します。ネットワーク直径を指定すると、その直径のネットワークに最適な hello タイム、転送遅延時間、最大経過時間が自動的に選択されます。これにより、STP 収束の時間が大幅に削減されます。 hello キーワードを使用して、自動的に計算される hello タイムを上書きすることができます。
(注) STP トポロジを安定した状態に保つには、スイッチをルート ブリッジとして設定したあと、hello タイム、転送遅延時間、および最大エージング タイムを手動で設定しないでください。
スイッチをルート ブリッジとして設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# spanning-tree vlan vlan_ID root primary [ diameter hops [ hello-time seconds ]] |
スイッチをルート ブリッジとして設定します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。「STP のデフォルト設定」 を参照)。 |
Router(config)# no spanning-tree vlan vlan_ID root |
ルート ブリッジ コンフィギュレーションを消去します。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
次の例は、ネットワーク直径を 4 にして、スイッチを VLAN 10 のルート ブリッジとして設定する方法を示しています。
Router# configure terminal
Router(config)# spanning-tree vlan 10 root primary diameter 4
セカンダリ ルート ブリッジの設定
スイッチをセカンダリ ルートとして設定すると、STP ブリッジ プライオリティはデフォルト値(32768)から変更されます。その結果、プライマリ ルート ブリッジに障害が発生した場合に(ネットワーク上の他のネットワーク装置がデフォルトのブリッジ プライオリティ 32768 を使用していると仮定して)、このスイッチが指定された VLAN のルート ブリッジになる可能性が高くなります。
拡張システム ID をイネーブルにしている場合、STP はブリッジ プライオリティを 28672 に設定します。
このコマンドは、複数のスイッチに対して実行し、複数のバックアップ ルート ブリッジを設定できます。プライマリ ルート ブリッジを設定するときに使用したものと同じネットワーク直径および hello タイムを使用してください。
スイッチをセカンダリ ルート ブリッジとして設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# [ no ] spanning-tree vlan vlan_ID root secondary [ diameter hops [ hello-time seconds ]] |
スイッチをセカンダリ ルート ブリッジとして設定します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。「STP のデフォルト設定」 を参照)。 |
Router(config)# no spanning-tree vlan vlan_ID root |
ルート ブリッジ設定を消去します。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
次の例は、ネットワーク直径を 4 にして、スイッチを VLAN 10 のセカンダリ ルート ブリッジとして設定する方法を示しています。
Router# configure terminal
Router(config)# spanning-tree vlan 10 root secondary diameter 4
STP ポート プライオリティの設定
ループが発生すると、STP はポート プライオリティを考慮して、フォワーディング ステートにする LAN ポートを選択します。STP に最初に選択させたい LAN ポートには高いプライオリティ値を、最後に選択させたい LAN ポートには低いプライオリティ値を割り当てることができます。すべての LAN ポートの優先順位が同じである場合、STP は最小の LAN ポート番号を持つ LAN ポートをフォワーディング ステートに移行させ、その他の LAN ポートをブロックします。指定できるプライオリティの範囲は 0 ~ 240 であり(デフォルトは 128 です)、16 ずつ増加するよう設定できます。
Cisco IOS は LAN ポートがアクセス ポートとして設定されている場合にはポート プライオリティ値を使用し、LAN ポートがトランク ポートとして設定されている場合には VLAN ポート プライオリティ値を使用します。
レイヤ 2 LAN インターフェイスの STP ポート プライオリティを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# interface {{ fastethernet | gigabitethernet | tengigabitethernet } slot / port | { port-channel port_channel_number }} |
設定するインターフェイスを選択します。 |
ステップ 2 |
Router(config-if)# spanning-tree port-priority port_priority |
LAN インターフェイスのポート プライオリティを設定します。指定できる port_priority 値の範囲は 1 ~ 252 で、4 ずつ増加します。 |
ステップ 3 |
Router(config-if)# spanning-tree vlan vlan_ID port-priority port_priority |
LAN インターフェイスの VLAN ポート プライオリティを設定します。指定できる port_priority 値の範囲は 1 ~ 252 で、4 ずつ増加します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。 を参照)。 |
ステップ 4 |
Router(config-if)# end |
コンフィギュレーション モードを終了します。 |
次に、ギガビット イーサネット ポート 1/4 の STP ポート プライオリティを設定する例を示します。
Router# configure terminal
Router(config)# interface gigabitethernet 1/4
Router(config-if)# spanning-tree port-priority 160
次に、ギガビット イーサネット ポート 1/4 の設定を確認する例を示します。
Router# show spanning-tree interface gigabitethernet 1/4
Vlan Role Sts Cost Prio.Nbr Status
---------------- ---- --- --------- -------- --------------------------------
VLAN0001 Back BLK 200000 160.196 P2p
VLAN0006 Back BLK 200000 160.196 P2p
VLAN0198 Back BLK 200000 160.196 P2p
VLAN0199 Back BLK 200000 160.196 P2p
VLAN0200 Back BLK 200000 160.196 P2p
ギガビット イーサネット ポート 1/4 はトランクです。この例のように、複数の VLAN が設定され、アクティブになっています。ポート プライオリティ設定は、この VLAN インターフェイス上のすべての VLAN に適用されます。
(注) show spanning-tree interface コマンドで情報が表示されるのは、ポートが接続され動作している場合に限られます。これらの条件が満たされていない場合は、show running-config interface コマンドを使用して設定を確認してください。
次に、ギガビット イーサネット ポート 1/4 の VLAN ポート プライオリティを設定する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface gigabitethernet 1/4
Router(config-if)# spanning-tree vlan 200 port-priority 64
この例で入力した設定は VLAN 200 にだけ適用されます。200 以外のすべての VLAN のポート プライオリティは 160 のままです。
次に、設定を確認する例を示します。
Router# show spanning-tree interface gigabitethernet 1/4
Vlan Role Sts Cost Prio.Nbr Status
---------------- ---- --- --------- -------- --------------------------------
VLAN0001 Back BLK 200000 160.196 P2p
VLAN0006 Back BLK 200000 160.196 P2p
VLAN0199 Back BLK 200000 160.196 P2p
VLAN0200 Desg FWD 200000 64.196 P2p
VLAN 200 のスパニングツリー情報を表示するには、次のコマンドも使用できます。
Router# show spanning-tree vlan 200 interface gigabitethernet 1/4
Interface Role Sts Cost Prio.Nbr Status
---------------- ---- --- --------- -------- --------------------------------
Gi1/4 Desg LRN 200000 64.196 P2p
STP ポート コストの設定
STP ポート パス コストのデフォルト値は、LAN インターフェイスのメディア速度から決定されます。ループが発生すると、STP はポート コストを考慮して、フォワーディング ステートにする LAN インターフェイスを選択します。STP に最初に選択させたい LAN インターフェイスには低いコスト値を、最後に選択させたい LAN インターフェイスには高いコスト値を割り当てることができます。すべての LAN インターフェイスが同じコスト値を使用している場合には、STP は LAN インターフェイス番号が最も小さい LAN インターフェイスをフォワーディング ステートにして、残りの LAN インターフェイスをブロックします。指定できるコストの範囲は、0 ~ 200000000 です(デフォルトは、メディアによって異なります)。
STP は LAN インターフェイスがアクセス ポートとして設定されている場合にはポート コスト値を使用し、LAN インターフェイスがトランク ポートとして設定されている場合には VLAN ポート コスト値を使用します。
レイヤ 2 LAN インターフェイスの STP ポート コストを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# interface {{ fastethernet | gigabitethernet | tengigabitethernet } slot / port | { port-channel port_channel_number }} |
設定するインターフェイスを選択します。 |
ステップ 2 |
Router(config-if)# spanning-tree cost port_cost |
LAN インターフェイスのポート コストを設定します。 port_cost 値は、1 ~ 200000000 の範囲で指定します。 |
Router(config-if)# no spanning-tree cost |
デフォルトのポート コストに戻します。 |
ステップ 3 |
Router(config-if)# spanning-tree vlan vlan_ID cost port_cost |
LAN インターフェイスの VLAN ポート コストを設定します。 port_cost 値は、1 ~ 200000000 の範囲で指定します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。 を参照)。 |
Router(config-if)# no spanning-tree vlan vlan_ID cost |
デフォルトの VLAN ポート コストに戻します。 |
ステップ 4 |
Router(config-if)# end |
コンフィギュレーション モードを終了します。 |
次に、ギガビット イーサネット ポート 1/4 の STP ポート コストを変更する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface gigabitethernet 1/4
Router(config-if)# spanning-tree cost 1000
次に、設定を確認する例を示します。
Router# show spanning-tree interface gigabitethernet 1/4
Vlan Role Sts Cost Prio.Nbr Status
---------------- ---- --- --------- -------- --------------------------------
VLAN0001 Back BLK 1000 160.196 P2p
VLAN0006 Back BLK 1000 160.196 P2p
VLAN0007 Back BLK 1000 160.196 P2p
VLAN0008 Back BLK 1000 160.196 P2p
VLAN0009 Back BLK 1000 160.196 P2p
VLAN0010 Back BLK 1000 160.196 P2p
次に、VLAN 200 の各ポート VLAN コストでポート プライオリティを設定する例を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# interface gigabitethernet 1/4
Router(config-if)# spanning-tree vlan 200 cost 2000
次に、設定を確認する例を示します。
Router# show spanning-tree vlan 200 interface gigabitethernet 1/4
Interface Role Sts Cost Prio.Nbr Status
---------------- ---- --- --------- -------- --------------------------------
Gi1/4 Desg FWD 2000 64.196 P2p
(注) 次に示す出力では、他の VLAN(VLAN 1 など)はこの設定の影響を受けていません。
Router# show spanning-tree vlan 1 interface gigabitethernet 1/4
Interface Role Sts Cost Prio.Nbr Status
---------------- ---- --- --------- -------- --------------------------------
Gi1/4 Back BLK 1000 160.196 P2p
(注) show spanning-tree コマンドで情報が表示されるのは、ポートがリンクアップ動作可能ステートで、かつ DTP 用に正しく設定されている場合に限られます。これらの条件が満たされていない場合は、show running-config コマンドを入力して設定を確認してください。
VLAN のブリッジ プライオリティの設定
(注) このコマンドを使用するときは注意してください。ブリッジ プライオリティを変更するには、ほとんどの状況で spanning-tree vlan vlan_ID root primary コマンドおよび spanning-tree vlan vlan_ID root secondary コマンドを使用することを推奨します。
VLAN の STP ブリッジ プライオリティを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# spanning-tree vlan vlan_ID priority { 0 | 4096 | 8192 | 12288 | 16384 | 20480 | 24576 | 28672 | 32768 | 36864 | 40960 | 45056 | 49152 | 53248 | 57344 | 61440 } |
拡張システム ID がイネーブルの場合に、VLAN のブリッジ プライオリティを設定します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。 を参照)。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
次に、拡張システム ID がディセーブルの場合に、VLAN 200 のブリッジ プライオリティを 33792 に設定する例を示します。
Router# configure terminal
Router(config)# spanning-tree vlan 200 priority 32768
次に、設定を確認する例を示します。
Router# show spanning-tree vlan 200 bridge
Vlan Bridge ID Time Age Delay Protocol
---------------- -------------------- ---- ---- ----- --------
VLAN200 32768 0050.3e8d.64c8 2 20 15 ieee
hello タイムの設定
(注) このコマンドを使用するときは注意してください。hello タイムを変更するには、ほとんどの状況で spanning-tree vlan vlan_ID root primary コマンドおよび spanning-tree vlan vlan_ID root secondary コマンドを使用することを推奨します。
VLAN の STP hello タイムを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# spanning-tree vlan vlan_ID hello-time hello_time |
VLAN の hello タイムを設定します。 hello_time 値は、1 ~ 10 秒の範囲で指定します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。 を参照)。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
次に、VLAN 200 の hello タイムを 7 秒に設定する例を示します。
Router# configure terminal
Router(config)# spanning-tree vlan 200 hello-time 7
次に、設定を確認する例を示します。
Router# show spanning-tree vlan 200 bridge
Vlan Bridge ID Time Age Delay Protocol
---------------- -------------------- ---- ---- ----- --------
VLAN200 49152 0050.3e8d.64c8 7 20 15 ieee
VLAN の転送遅延時間の設定
VLAN の STP 転送遅延時間を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# spanning-tree vlan vlan_ID forward-time forward_time |
VLAN の転送時間を設定します。 forward_time 値は、4 ~ 30 秒の範囲で指定します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。 を参照)。 |
Router(config)# no spanning-tree vlan vlan_ID forward-time |
デフォルトの転送時間に戻します。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
次に、VLAN 200 の転送遅延時間を 21 秒に設定する例を示します。
Router# configure terminal
Router(config)# spanning-tree vlan 200 forward-time 21
次に、設定を確認する例を示します。
Router# show spanning-tree vlan 200 bridge
Vlan Bridge ID Time Age Delay Protocol
---------------- -------------------- ---- ---- ----- --------
VLAN200 49152 0050.3e8d.64c8 2 20 21 ieee
VLAN の最大エージング タイムの設定
VLAN の STP 最大エージング タイムを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# spanning-tree vlan vlan_ID max-age max_age |
VLAN の最大エージング タイムを設定します。 max_age 値は、6 ~ 40 秒の範囲で指定します。 vlan_ID の値は 1 ~ 4094 です(予約済み VLAN は除く。 を参照)。 |
ステップ 2 |
Router(config)# end |
コンフィギュレーション モードを終了します。 |
次に、VLAN 200 の最大エージング タイムを 36 秒に設定する例を示します。
Router# configure terminal
Router(config)# spanning-tree vlan 200 max-age 36
次に、設定を確認する例を示します。
Router# show spanning-tree vlan 200 bridge
Vlan Bridge ID Time Age Delay Protocol
---------------- -------------------- ---- ---- ----- --------
VLAN200 49152 0050.3e8d.64c8 2 36 15 ieee
Rapid PVST+ 概要
Rapid PVST+ は、既存の PVST+ フレームワークを設定および他の機能との相互作用に使用しています。また、PVST+ 拡張機能も一部サポートします。
スイッチの Rapid PVST+ モードをイネーブルにするには、特権モードで spanning-tree mode rapid-pvst コマンドを入力します。Rapid PVST+ モードでスイッチを設定するには、「STP の設定」を参照してください。
リンク タイプの設定
高速接続は、ポイントツーポイント リンク上だけに確立されます。スパニングツリーはポイントツーポイント リンクを、スパニングツリー アルゴリズムを実行する 2 つのスイッチだけを接続するセグメントとして見なします。スイッチは、すべての全二重リンクをポイントツーポイント リンクとして見なし、半二重リンクを共有リンクと見なすため、明示的なリンク タイプの設定を回避できます。特定のリンク タイプを設定するには、 spanning-tree linktype コマンドを入力します。
プロトコル移行の再起動
MSTP および RSTP の両方が稼働するスイッチは、組み込み型のプロトコル移行プロセスをサポートし、レガシー 802.1D スイッチとの相互運用が可能となります。このスイッチがレガシー 802.1D 設定 BPDU(プロトコルのバージョンが 0 に設定されている BPDU)を受信した場合は、そのポート上で 802.1D BPDU だけを送信します。MSTP スイッチは、レガシー BPDU、異なる領域と関連する MST BPDU(バージョン 3)、または RST BPDU(バージョン 2)を受信するときに、ポートが領域の境界にあることも検出できます。
スイッチは、802.1D BPDU を受信しなくなっても、MSTP モードに自動的に戻りません。レガシー スイッチが指定スイッチでない場合、レガシー スイッチがリンクから削除されたかどうかを判別できないためです。さらにスイッチは、接続先スイッチがリージョンに加入した場合であっても、ポートに対して引き続き、境界の役割を割り当てる可能性もあります。
スイッチ全体で、プロトコル移行プロセスを再開するには(近接スイッチと強制的に再ネゴシエーションする)、 clear spanning-tree detected-protocols イネーブル EXEC コマンドを使用できます。特定のインターフェイスでプロトコル移行プロセスを再開するには、 clear spanning-tree detected-protocols interface interface-id 特権 EXEC コマンドを入力します。
MST リージョン設定の指定および MST のイネーブル化
2 台以上の スイッチ を同一 MST リージョン内に存在させるには、同じ VLAN からインスタンスへのマッピング、同じ構成リビジョン番号、および同じ MST の名前が設定されている必要があります。
リージョンには、MST 設定が同一である、1 つ以上のメンバを含めることができます。各メンバでは、RSTP BPDU を処理できる必要があります。ネットワークにおける MST リージョンの数に制限はありませんが、各リージョンでは 65 までのスパニングツリー インスタンスしかサポートできません。スパニングツリー インスタンスに同時に割り当てられる VLAN は 1 つだけです。
MST リージョン設定を指定して MST をイネーブルにするには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree mst configuration |
MST コンフィギュレーション モードを開始します。 |
ステップ 3 |
Router(config-mst)# instance instance_id vlan vlan_range |
VLAN を MSTI にマップします。 • instance_id の 範囲 は 0 ~ 4094 です。 • vlan vlan_range の範囲は 1 ~ 4094 です。 VLAN を MSTI にマップする場合、マッピングは増加され、コマンドに指定した VLAN は、以前マッピングした VLAN に追加されるか、そこから削除されます。 VLAN の範囲を指定するには、ハイフンを使用します。たとえば instance 1 vlan 1-63 では、VLAN 1 ~ 63 が MSTI 1 にマップされます。 一連の VLAN を指定するには、カンマを使用します。たとえば instance 1 vlan 10, 20, 30 と指定すると、VLAN 10、20、30 が MSTI 1 にマップされます。 |
ステップ 4 |
Router(config-mst)# name instance_name |
インスタンス名を指定します。 name 文字列の最大の長さは 32 文字であり、大文字と小文字が区別されます。 |
ステップ 5 |
Router(config-mst)# revision version |
設定リビジョン番号を指定します。指定できる範囲は 0 ~ 65535 です。 |
ステップ 6 |
Router(config-mst)# show pending |
保留中の設定を表示し、設定を確認します。 |
ステップ 7 |
Router(config)# exit |
すべての変更を適用し、グローバル コンフィギュレーション モードに戻ります。 |
ステップ 8 |
Router(config)# spanning-tree mode mst |
MST および RSTP をイネーブルにします。
注意 スパニングツリー モードを変更すると、トラフィックが混乱することがあります。すべてのスパニングツリー インスタンスが以前のモードで停止し、新しいモードで再起動されるからです。
MST と Rapid PVST+ を同時に実行することはできません。 |
ステップ 9 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
デフォルトに戻すには、次のように操作します。
• デフォルトの MST リージョン設定に戻すには、 no spanning-tree mst configuration グローバル コンフィギュレーション コマンドを使用します。
• VLAN とインスタンスのデフォルト マップに戻すには、 no instance instance_id [ vlan vlan_range ] MST コンフィギュレーション コマンド を使用します。
• デフォルト名に戻すには、 no name MST コンフィギュレーション コマンド を使用します。
• デフォルトのリビジョン番号に戻すには、 no revision MST コンフィギュレーション コマンド を使用します。
次の例は、MST コンフィギュレーション モードを開始し、VLAN 10 ~ 20 を MSTI 1 にマッピングし、リージョンに region1 という名前を付けて、設定リビジョンを 1 に設定し、保留中の設定を表示し、変更を適用してグローバル コンフィギュレーション モードに戻る方法を示しています。
Router(config)# spanning-tree mst configuration
Router(config-mst)# instance 1 vlan 10-20
Router(config-mst)# name region1
Router(config-mst)# revision 1
Router(config-mst)# show pending
Pending MST configuration
-------- ---------------------
-------------------------------
ルート ブリッジの設定
スイッチは、スパニングツリー インスタンスを VLAN グループとマッピングして維持します。各インスタンスには、スイッチ プライオリティとスイッチの MAC アドレスからなるスイッチ ID が対応付けられます。最小のスイッチ ID を持つスイッチがその VLAN グループのルート ブリッジになります。
スイッチがルート ブリッジになるように設定するには、 spanning-tree mst instance_id root グローバル コンフィギュレーション コマンドを使用して、デフォルト値(32768)から大幅に小さい値にスイッチ プライオリティを修正し、スイッチが、指定したスパニングツリー インスタンスのルート ブリッジになるようにします。このコマンドを入力すると、スイッチは、ルート ブリッジのスイッチ プライオリティを確認します。拡張システム ID のサポートのため、スイッチは指定されたインスタンスについて、自身のプライオリティを 24576 に設定します(この値によって、このスイッチが指定されたスパニングツリー インスタンスのルート ブリッジになる場合)。
指定されたインスタンスのルート ブリッジに、24576 に満たないスイッチ プライオリティが設定されている場合は、スイッチは自身のプライオリティを最小のスイッチ プライオリティより 4096 だけ小さい値に設定します。(4096 は 4 ビット スイッチ プライオリティの最下位ビットの値です。表 30-1 を参照)。
ネットワーク上に拡張システム ID をサポートするスイッチとサポートしないスイッチが混在する場合は、拡張システム ID をサポートするスイッチがルート ブリッジになることはほぼありません。拡張システム ID によって、旧ソフトウェアが稼働する接続スイッチのプライオリティより VLAN 番号が大きくなるたびに、スイッチ プライオリティ値が増大します。
各スパニングツリー インスタンスのルート ブリッジは、バックボーンまたはディストリビューション スイッチでなければなりません。アクセス スイッチは、スパニングツリーのプライマリ ルート ブリッジとして設定しないでください。
レイヤ 2 ネットワークの直径(レイヤ 2 ネットワークの任意の 2 つのエンド ステーション間にあるレイヤ 2 ホップの最大数)を指定するには、MSTI 0 だけに使用できる diameter キーワードを使用します。ネットワークの直径を指定すると、その直径のネットワークに最適な hello タイム、転送遅延時間、および最大エージング タイムをスイッチが自動的に設定するので、コンバージェンスの所要時間を大幅に短縮できます。 hello キーワードを使用して、自動的に計算される hello タイムを上書きすることができます。
(注) ルート ブリッジとして設定されているスイッチでは、hello タイム、転送遅延時間、最大エージング タイムは手動で設定(spanning-tree mst hello-time、spanning-tree mst forward-time、spanning-tree mst max-age の各グローバル コンフィギュレーション コマンドを使用)しないでください。
スイッチをルート ブリッジとして設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router(config)# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config-config)# spanning-tree mst instance_id root primary [ diameter net_diameter [ hello-time seconds ]] |
(任意)スイッチをルート ブリッジとして設定します。 • instance_id には、単一インスタンスを指定したり、インスタンスの範囲をハイフンで区切って指定したり、一連のインスタンスをカンマで区切って指定したりすることができます。指定できる範囲は 0 ~ 4094 です • (任意) diameter net_diameter には、任意の 2 つのエンド ステーション間におけるレイヤ 2 ホップの最大数を指定します。指定できる範囲は 2 ~ 7 です。このキーワードは、MSTI インスタンス 0 の場合にのみ使用できます。 • (任意) hello-time seconds には、ルート ブリッジが設定メッセージを生成する時間を秒単位で指定します。指定できる範囲は 1 ~ 10 秒です。デフォルトは 2 秒です。 |
ステップ 3 |
Router(config-config)# end |
特権 EXEC モードに戻ります。 |
セカンダリ ルート ブリッジの設定
拡張システム ID をサポートするスイッチをセカンダリルートとして設定すると、スイッチ プライオリティはデフォルト値(32768)から 28672 に変更されます。プライマリ ルート ブリッジで障害が発生した場合は、このスイッチが指定インスタンスのルート ブリッジになる可能性があります。これは、他のネットワーク スイッチがデフォルトのスイッチ プライオリティ 32768 を使用し、ルート ブリッジになる可能性が低いことが前提です。
このコマンドは、複数のスイッチに対して実行し、複数のバックアップ ルート ブリッジを設定できます。 spanning-tree mst instance_id root primary グローバル コンフィギュレーション コマンドで、プライマリ ルート ブリッジの設定時に使用したものと同じネットワーク直径値と hello タイム値を使用してください。
スイッチをセカンダリ ルート ブリッジとして設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree mst instance_id root secondary [ diameter net_diameter [ hello-time seconds ]] |
(任意)スイッチをセカンダリ ルート ブリッジとして設定します。 • instance_id には、単一インスタンスを指定したり、インスタンスの範囲をハイフンで区切って指定したり、一連のインスタンスをカンマで区切って指定したりすることができます。指定できる範囲は 0 ~ 4094 です • (任意) diameter net_diameter には、任意の 2 つのエンド ステーション間における最大数を指定します。指定できる範囲は 2 ~ 7 です。このキーワードは、MSTI インスタンス 0 の場合にのみ使用できます。 • (任意) hello-time seconds には、ルート ブリッジが設定メッセージを生成する時間を秒単位で指定します。指定できる範囲は 1 ~ 10 秒です。デフォルトは 2 秒です。 プライマリ ルート ブリッジを設定するときに使用したものと同じネットワーク直径および hello タイムを使用してください。「ルート ブリッジの設定」を参照してください。 |
ステップ 3 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
ポート プライオリティの設定
ループが発生する場合、MST は、フォワーディング ステートにするインターフェイスを選択するとき、ポート プライオリティを使用します。最初に選択されるインターフェイスには高いプライオリティ値(小さい数値)を割り当て、最後に選択されるインターフェイスには低いプライオリティ値(高い数値)を割り当てることができます。すべてのインターフェイスのプライオリティ値が同一である場合、MST はインターフェイス番号が最も低いインターフェイスをフォワーディング ステートにして、その他のインターフェイスをブロックします。
インターフェイスの MST ポート プライオリティを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# interface {{ fastethernet | gigabitethernet | tengigabitethernet } slot / port | { port-channel number }} |
(任意)設定するインターフェイスを指定します。インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
Router(config-if)# spanning-tree mst instance_id port-priority priority |
ポート プライオリティを設定します。 • instance_id には、単一インスタンスを指定したり、インスタンスの範囲をハイフンで区切って指定したり、一連のインスタンスをカンマで区切って指定したりすることができます。指定できる範囲は 0 ~ 4094 です • priority 値の範囲は 0 ~ 240 で、16 ずつ増加します。デフォルトは 128 です。値が小さいほど、プライオリティが高くなります。 使用可能な値は、0、16、32、48、64、80、96、112、128、144、160、176、192、208、224、240 だけです。その他の値はすべて拒否されます。 |
ステップ 4 |
Router(config-if)# end |
特権 EXEC モードに戻ります。 |
(注) show spanning-tree mst interface interface_id 特権 EXEC コマンドでは、ポートがリンクアップ動作状態になっている場合に限って情報が表示されます。ポートがリンクアップ動作状態になっていない場合は、show running-config interface 特権 EXEC コマンドを使用して設定を確認できます。
パス コストの設定
MST パス コストのデフォルト値は、インターフェイスのメディア速度から取得されます。ループが発生する場合、MST は、フォワーディング ステートにするインターフェイスを選択するとき、コストを使用します。最初に選択されるインターフェイスには低いコスト値を割り当て、最後に選択されるインターフェイスには高いコスト値を割り当てることができます。すべてのインターフェイスのコスト値が同一である場合、MST はインターフェイス番号が最も低いインターフェイスをフォワーディング ステートにして、その他のインターフェイスをブロックします。
インターフェイスの MST コストを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# interface {{ fastethernet | gigabitethernet | tengigabitethernet } slot / port | { port-channel number }} |
(任意)設定するインターフェイスを指定します。インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
Router(config-if)# spanning-tree mst instance_id cost cost |
コストを設定します。 ループが発生した場合、MST はパス コストを使用して、フォワーディング ステートにするインターフェイスを選択します。低いパス コストは高速送信を表します。 • instance_id には、単一インスタンスを指定したり、インスタンスの範囲をハイフンで区切って指定したり、一連のインスタンスをカンマで区切って指定したりすることができます。指定できる範囲は 0 ~ 4094 です • cost の範囲は 1 ~ 200000000 です。デフォルト値はインターフェイスのメディア速度から派生します。 |
ステップ 4 |
Router(config-if)# end |
特権 EXEC モードに戻ります。 |
(注) show spanning-tree mst interface interface_id 特権 EXEC コマンドでは、リンクアップ動作状態になっているポートだけの情報が表示されます。ポートがリンクアップ動作状態になっていない場合は、show running-config 特権 EXEC コマンドを使用して設定を確認できます。
スイッチのプライオリティの設定
スイッチ プライオリティを設定し、スイッチがルート ブリッジとして選択される可能性を高くすることができます。
(注) このコマンドの使用には注意してください。スイッチ プライオリティを変更するには、ほとんどの状況で spanning-tree mst instance_id root primary および spanning-tree mst instance_id root secondary グローバル コンフィギュレーション コマンドを使用することを推奨します。
スイッチ プライオリティを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree mst instance_id priority priority |
(任意)スイッチ プライオリティを設定します。 • instance_id には、単一インスタンスを指定したり、インスタンスの範囲をハイフンで区切って指定したり、一連のインスタンスをカンマで区切って指定したりすることができます。指定できる範囲は 0 ~ 4094 です • priority の範囲は 0 ~ 61440 で、4096 ずつ増加します。デフォルトは 32768 です。数値が小さいほど、スイッチがルート ブリッジとして選択される可能性が高くなります。 使用可能な値は、0、4096、8192、12288、16384、20480、24576、28672、32768、36864、40960、45056、49152、53248、57344、61440 です。その他の値はすべて拒否されます。 |
ステップ 3 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
hello タイムの設定
hello タイムを変更し、ルート ブリッジが設定メッセージを生成する時間を設定できます。
(注) このコマンドの使用には注意してください。hello タイムを修正するには、ほとんどの状況で spanning-tree mst instance_id root primary および spanning-tree mst instance_id root secondary グローバル コンフィギュレーション コマンドを使用することを推奨します。
すべての MSTI に hello タイムを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree mst hello-time seconds |
(任意)すべての MSTI に hello タイムを設定します。hello タイムは、ルート ブリッジが設定メッセージを生成する時間です。これらのメッセージは、スイッチがアクティブであることを意味します。 seconds に指定できる範囲は 1 ~ 10 です。デフォルトは 2 です。 |
ステップ 3 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
転送遅延時間の設定
すべての MSTI に転送遅延時間を設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree mst forward-time seconds |
(任意)すべての MSTI に転送時間を設定します。転送遅延は、ポートがスパニングツリー ラーニングおよびリスニング ステートからフォワーディング ステートに変更するまでに待機する秒数です。 seconds に指定できる範囲は 4 ~ 30 です。デフォルトは 15 です。 |
ステップ 3 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
送信保留カウントの設定
すべての MSTI に送信保留カウントを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree transmit hold-count hold_count_value |
すべての MSTI に送信保留カウントを設定します。 hold_count_value の範囲は 1 ~ 20 で、デフォルトは 6 です。 |
ステップ 3 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
最大経過時間の設定
すべての MSTI に最大エージング タイムを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree mst max-age seconds |
(任意)すべての MSTI に最大エージング タイムを設定します。最大エージング タイムは、再構成を試行するまでにスイッチがスパニングツリー コンフィギュレーション メッセージを受信せずに待機する秒数です。 seconds に指定できる範囲は 6 ~ 40 です。デフォルトは 20 です。 |
ステップ 3 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
最大ホップ カウントの設定
すべての MSTI に最大ホップ カウントを設定するには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# spanning-tree mst max-hops hop_count |
(任意)BPDU が廃棄されて、ポート用に維持された情報が期限切れになるまでの、リージョン内のホップ数を指定します。 hop_count の範囲は 1 ~ 255、デフォルトは 20 です。 |
ステップ 3 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
高速移行を保証するリンク タイプの指定
ポイントツーポイント リンクでポート間を接続し、ローカル ポートが DP になると、RSTP は提案と合意のハンドシェークを使用して別のポートと高速移行をネゴシエーションし、「高速コンバージェンス」で説明したようなループがないトポロジーを保証します。
デフォルトの場合、リンク タイプはインターフェイスのデュプレックス モードから制御されます。全二重ポートはポイントツーポイント接続、半二重ポートは共有接続と見なされます。MST が稼働しているリモート スイッチ上の 1 つのポートと物理的にポイントツーポイントで接続されている半二重リンクが存在する場合は、リンク タイプのデフォルト設定値を変更して、フォワーディング ステートへの高速移行をイネーブルにできます。
デフォルトのリンク タイプ設定を無効にするには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# interface {{ fastethernet | gigabitethernet | tengigabitethernet } slot / port | { port-channel number }} |
(任意)設定するインターフェイスを指定します。インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
Router(config)# spanning-tree link-type point-to-point |
ポートのリンク タイプがポイントツーポイントであることを指定します。 |
ステップ 4 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
ネイバー タイプの指定
トポロジーには、準規格準拠デバイスおよび 802.1s 規格準拠デバイスの両方を含めることができます。デフォルトの場合、ポートは準規格デバイスを自動的に検出できますが、規格 BPDU および準規格 BPDU の両方を受信できます。デバイスとそのネイバーの間に不一致がある場合は、CIST だけがインターフェイスで動作します。
準規格 BPDU だけを送信するようにポートを設定できます。ポートが STP 互換モードになっていても、すべての show コマンドで準規格フラグが表示されます。
デフォルトのリンク タイプ設定を無効にするには、次の作業を行います。
|
|
|
ステップ 1 |
Router# configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
Router(config)# interface {{ fastethernet | gigabitethernet | tengigabitethernet } slot / port | { port-channel number }} |
(任意)設定するインターフェイスを指定します。インターフェイス コンフィギュレーション モードを開始します。 |
ステップ 3 |
Router(config)# spanning-tree mst pre-standard |
ポートが準規格 BPDU だけを送信できることを指定します。 |
ステップ 4 |
Router(config)# end |
特権 EXEC モードに戻ります。 |
プロトコル移行プロセスの再開
MST を稼働しているスイッチは、802.1D スイッチとの相互運用を可能にする組み込みプロトコル移行機能をサポートします。このスイッチで、802.1D コンフィギュレーション BPDU(プロトコル バージョンが 0 に設定されている BPDU)を受信する場合、そのポート上の 802.1D BPDU のみが送信されます。MST は、802.1D BPDU、異なるリージョンに対応付けられた MST BPDU(バージョン 3)、または RST BPDU(バージョン 2)を受信すると、ポートがリージョン境界にあることを検出できます。
ただし、スイッチは、802.1D BPDU を受信しなくなった場合でも、自動的には MSTP モードには戻りません。これは、802.1D スイッチが指定スイッチではない場合、802.1D スイッチがリンクから削除されたかどうかを検出できないためです。さらにスイッチは、接続先スイッチがリージョンに加入した場合であっても、ポートに対して引き続き、境界の役割を割り当てる可能性もあります。
スイッチでプロトコル移行プロセスを再起動する(ネイバー スイッチとの再ネゴシエーションを強制する)には、 clear spanning-tree detected-protocols 特権 EXEC コマンドを使用します。
特定のインターフェイスでプロトコル移行プロセスを再開するには、 clear spanning-tree detected-protocols interface interface_id 特権 EXEC コマンドを使用します。