MSTP の設定に関する情報
この章では、スイッチにシスコが実装した IEEE 802.1s Multiple STP(MSTP)を設定する方法について説明します。
(注) マルチ スパニングツリー(MST)実装は IEEE 802.1s 標準に準拠しています。
MSTP は複数の VLAN を同一のスパニングツリー インスタンスにマッピングできるようにして、多数の VLAN をサポートする場合に必要となるスパニングツリー インスタンスの数を減らします。MSTP は、データ トラフィック用に複数の転送パスを提供し、ロード バランシングを可能にします。MSTP を使用すると、1 つのインスタンス(転送パス)で障害が発生しても他のインスタンス(転送パス)は影響を受けないので、ネットワークのフォールトトレランスが向上します。MSTP を導入する場合、最も一般的なのは、レイヤ 2 スイッチド ネットワークのバックボーンおよびディストリビューション レイヤへの導入です。MSTP の導入により、サービス プロバイダー環境に求められる高可用性ネットワークを実現できます。
スイッチが MST モードの場合、IEEE 802.1w 準拠の高速スパニングツリー プロトコル(RSTP)が自動的にイネーブルになります。RSTP は、IEEE 802.1D の転送遅延を軽減し、ルート ポートおよび指定ポートをフォワーディング ステートにすばやく移行する明示的なハンドシェイクによって、スパニングツリーの高速コンバージェンスを実現します。
RSTP と MSTP は、(オリジナル)IEEE 802.1D スパニングツリー準拠デバイス、既存のシスコ独自の Multiple Instance STP(MISTP)、および既存のシスコ Per-VLAN Spanning-Tree plus(PVST+)との下位互換性を保ちながら、スパニングツリーの動作を向上させます。
MSTP
MSTP は、高速コンバージェンスが可能な RSTP を使用し、複数の VLAN を 1 つのスパニングツリー インスタンスにまとめます。各インスタンスのスパニングツリー トポロジは、他のスパニングツリー インスタンスの影響を受けません。このアーキテクチャによって、データ トラフィックに複数の転送パスが提供され、ロード バランシングが可能になり、また多数の VLAN をサポートするのに必要なスパニングツリー インスタンスの数を減らすことができます。
MST リージョン
スイッチを MST インスタンスに加入させるには、同じ MST コンフィギュレーション情報を使用して矛盾のないようにスイッチを設定する必要があります。同じ MST コンフィギュレーションを持ち、相互接続されたスイッチの集合を MST リージョンといいます(図 21-1を参照)。
各スイッチがどの MST リージョンに属しているかは、MST コンフィギュレーションによって制御されます。この設定には、領域の名前、バージョン番号、MST VLAN とインスタンスの割り当てマップが含まれます。スイッチにリージョンを設定するには、そのスイッチで spanning-tree mst configuration グローバル コンフィギュレーション コマンドを使用して、MST コンフィギュレーション モードを開始します。このモードでは、 instance MST コンフィギュレーション コマンドを使用して VLAN を MST インスタンスにマッピングし、 name MST コンフィギュレーション コマンドを使用してリージョン名を指定し、 revision MST コンフィギュレーション コマンドを使用してリビジョン番号を設定できます。
リージョンには、同一の MST コンフィギュレーションを持った 1 つまたは複数のメンバが必要です。さらに、各メンバは、RSTP ブリッジ プロトコル データ ユニット(BPDU)を処理できる必要があります。ネットワーク内の MST リージョンの数には制限はありませんが、各リージョンがサポートできるスパニングツリー インスタンスの数は 65 までです。インスタンスは 0 ~ 4096 の数字で識別されます。VLAN には、一度に 1 つのスパニングツリー インスタンスのみ割り当てることができます。
IST、CIST、CST
すべてのスパニングツリー インスタンスが独立している PVST+ および Rapid PVST+ とは異なり、MSTP は次の 2 種類のスパニングツリーを確立して維持します。
• Internal Spanning-Tree(IST)は、1 つの MST リージョン内で稼働するスパニングツリーです。
各 MST リージョン内の MSTP は複数のスパニングツリー インスタンスを維持しています。インスタンス 0 は、リージョンの特殊なインスタンスで、IST と呼ばれています。その他の MST インスタンスはすべて 1 ~ 4096 まで番号が付けられます。
IST は、BPDU を送受信する唯一のスパニングツリー インスタンスです。他のスパニングツリーの情報はすべて、MSTP BPDU 内にカプセル化されている M レコードに格納されています。MSTP BPDU はすべてのインスタンスの情報を伝送するので、複数のスパニングツリー インスタンスをサポートする処理が必要な BPDU の数を大幅に減少できます。
同一リージョン内の MST インスタンスはすべて、同じプロトコル タイマーを共有しますが、各 MST インスタンスは独自のトポロジ パラメータ(ルート スイッチ ID、ルート パス コストなど)を持っています。デフォルトでは、すべての VLAN が IST に割り当てられます。
MSTI はリージョンにローカルです。たとえばリージョン A およびリージョン B が相互接続されていても、リージョン A の MSTI 1 は、リージョン B の MSTI 1 に依存しません。
• Common and Internal Spanning-Tree(CIST)は、各 MST リージョン内の IST と、MST リージョンおよびシングル スパニングツリーを相互接続する Common Spanning-Tree(CST)の集合です。
1 つのリージョン内で計算されたスパニングツリーは、スイッチド ドメイン全体を網羅する CST のサブツリーと見なされます。CIST は、IEEE 802.1w、IEEE 802.1s、および IEEE 802.1D 標準をサポートするスイッチ間で実行されるスパニングツリー アルゴリズムによって形成されます。MST リージョン内の CIST は、リージョン外の CST と同じです。
詳細については、「MST リージョン内の動作」および「MST リージョン間の動作」を参照してください。
(注) IEEE 802.1s 標準を実装すると、一部の MST 実装関連の用語が変更されます。これらの変更の要約については、表 20-1を参照してください。
MST リージョン内の動作
IST は 1 つのリージョン内のすべての MSTP スイッチを接続します。IST が収束すると、IST のルートは、図 21-1 のように、CIST リージョナル ルート(IEEE 802.1s 標準が実装される以前は IST マスター )になります。CIST ルートに対してリージョン内で最も低いスイッチ ID とパス コストを持つスイッチがルートになります。ネットワークに領域が 1 つしかない場合、CIST リージョナル ルートは CIST ルートにもなります。CIST ルートがリージョンの外部にある場合、リージョンの境界に位置する MSTP スイッチの 1 つが CIST リージョナル ルートとして選択されます。
MSTP スイッチは初期化時に、自身が CIST のルートおよび CIST リージョナル ルートであることを主張するため、CIST ルートと CIST リージョナル ルートへのパス コストがいずれもゼロに設定された BPDU を送信します。スイッチはさらに MST インスタンスをすべて初期化し、自身がこれらすべてのインスタンスのルートであると主張します。スイッチは、ポートに現在保存されているルート情報よりも優位の MST ルート情報(小さいスイッチ ID、パス コストなど)を受信すると、CIST リージョナル ルートとしての主張を撤回します。
リージョンには、初期化中に多くのサブ リージョンが含まれて、それぞれに独自の CIST リージョナル ルートが含まれることがあります。スイッチは、優位の IST 情報を受信すると、古いサブリージョンを脱退して、真の CIST リージョナル ルートが含まれている新しいサブリージョンに加入します。真の CIST リージョナル ルートが含まれているサブリージョン以外のサブリージョンはすべて縮小させます。
正常な動作のためには、MST リージョン内のすべてのスイッチが同じ CIST リージョナル ルートを承認する必要があります。共通の CIST リージョナル ルートに収束する場合、そのリージョン内にある 2 つのスイッチは、1 つの MST インスタンスに対するポートの役割のみを同期させます。
MST リージョン間の動作
ネットワーク内に複数のリージョンまたは IEEE 802.1D 準拠のレガシー スイッチが混在している場合、MSTP は、ネットワーク内のすべての MST リージョンとすべてのレガシー STP スイッチからなる CST を構築して維持します。MSTI は、リージョンの境界にある IST と組み合わさり、CST になります。
IST は、リージョン内のすべての MSTP スイッチに接続し、スイッチド ドメイン全体を網羅する CIST のサブツリーとして見なされます。サブツリーのルートは CIST リージョナル ルートです。MST リージョンは、隣接する STP スイッチや MST リージョンからは仮想スイッチとして認識されます。
図 21-1 は、3 つの MST リージョンと IEEE 802.1D 準拠のレガシー スイッチ(D)からなるネットワークを示しています。リージョン 1 の CIST リージョナル ルート(A)は、CIST ルートでもあります。リージョン 2 の CIST リージョナル ルート(B)、およびリージョン 3 の CIST リージョナル ルート(C)は、CIST 内のそれぞれのサブツリーのルートです。RSTP はすべてのリージョンで稼働しています。
図 21-1 MST リージョン、CIST マスター、および CST ルート
BPDU を送受信するのは、CST インスタンスだけです。MST インスタンスは自身のスパニングツリー情報を BPDU に追加して、ネイバー スイッチと通信し、最終的なスパニングツリー トポロジを計算します。そのため、BPDU 送信に関連したスパニングツリー パラメータ(たとえば hello タイム、転送時間、最大エージング タイム、最大ホップ数など)は、CST インスタンスのみで設定されますが、すべての MST インスタンスに影響します。スパニングツリー トポロジに関連するパラメータ(スイッチ プライオリティ、ポート VLAN コスト、ポート VLAN プライオリティなど)は、CST インスタンスと MST インスタンスの両方で設定できます。
MSTP スイッチは、バージョン 3 RSTP BPDU または IEEE 802.1D STP BPDU を使用して、IEEE 802.1D 準拠のレガシー スイッチと通信します。MSTP スイッチ同士の通信には、MSTP BPDU が使用されます。
IEEE 802.1s の用語
シスコの先行標準実装で使用される一部の MST 命名規則は、一部の 内部 パラメータまたは リージョン パラメータを識別するように変更されました。これらのパラメータは、ネットワーク全体に関連している外部パラメータと違い、MST リージョン内でのみ影響があります。CIST はネットワーク全体を網羅するスパニングツリー インスタンスのため、CIST パラメータのみ、内部修飾子やリージョナル修飾子ではなく外部修飾子が必要です。
• CIST ルートは、ネットワーク全体を網羅する一意のインスタンスのためのルート スイッチです。
• CIST 外部ルート パス コストは、CIST ルートまでのコストです。このコストは MST 領域内で変化しません。CIST では、MST リージョンが単一のスイッチのように見えるので注意してください。CIST 外部ルート パス コストは、これらの仮想スイッチとリージョンに属していないスイッチ間を計算して出したルート パス コストです。
• CIST リージョナル ルートは、準規格の実装で IST マスターと呼ばれていました。CIST ルートが領域内にある場合、CIST リージョナル ルートは CIST ルートです。または、CIST リージョナル ルートがそのリージョンで CIST ルートに最も近いスイッチになります。CIST リージョナル ルートは IST のルート スイッチとして動作します。
• CIST 内部ルート パス コストは、領域内の CIST リージョナル ルートまでのコストです。このコストは、IST つまりインスタンス 0 だけに関連します。
表 21-1 に、IEEE 規格とシスコ準規格の用語の比較を示します。
表 21-1 準規格と規格の用語
|
|
|
CIST リージョナル ルート |
IST マスター |
CIST リージョナル ルート |
CIST 内部ルート パス コスト |
IST マスター パス コスト |
CIST 内部パス コスト |
CIST 外部ルート パス コスト |
ルート パス コスト |
ルート パス コスト |
MSTI リージョナル ルート |
インスタンス ルート |
インスタンス ルート |
MSTI 内部ルート パス コスト |
ルート パス コスト |
ルート パス コスト |
ホップ カウント
IST および 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 部分に格納されているメッセージ有効期間と最大エージング タイムの情報は、リージョン全体で同じままであり、そのリージョンの境界に位置する指定ポートによって同じ値が伝播されます。
境界ポート
シスコ先行標準の実装では、境界ポートは、RSTP が稼働する単一のスパニングツリー リージョン、PVST+ または Rapid PVST+ が稼働する単一のスパニングツリー リージョン、または異なる MST コンフィギュレーションを持つ別の MST リージョンに MST リージョンを接続します。また、境界ポートは、指定スイッチが単一のスパニングツリー スイッチ、または異なる MST コンフィギュレーションを持つスイッチである LAN に接続されます。
IEEE 802.1s 標準では、境界ポートの定義はなくなりました。IEEE 802.1Q-2002 標準では、ポートで受信可能な内部(同一リージョンからの)および外部の 2 種類のメッセージを識別します。メッセージが外部である場合、CIST だけが受信します。CIST の役割がルートや代替ルートの場合、または外部 BPDU のトポロジが変更された場合は、MST インスタンスに影響する可能性があります。メッセージが内部の場合、CIST の部分は CIST によって受信されるので、各 MST インスタンスは個々の M レコードだけを受信します。シスコ先行標準の実装では、ポートが境界ポートとして外部メッセージを受信します。つまり、ポートは内部メッセージと外部メッセージを混在させたものは受信できません。
MST リージョンには、スイッチと LAN の両方が含まれています。セグメントは、DP のリージョンに属します。そのため、セグメントの指定ポートではなく異なるリージョンにあるポートは境界ポートになります。この定義では、リージョン内部の 2 つのポートが、別のリージョンに属するポートとセグメントを共有し、内部メッセージおよび外部メッセージの両方を 1 つのポートで受信できるようになります。
シスコ先行標準の実装との主な違いは、STP 互換モードを使用している場合、指定ポートが境界ポートとして定義されない点です。
(注) レガシー STP スイッチがセグメントに存在する場合、メッセージは常に外部と見なされます。
先行標準の実装から他に変更された点は、送信スイッチ ID を持つ RSTP またはレガシー IEEE 802.1Q スイッチの部分に、CIST リージョナル ルート スイッチ ID フィールドが加えられたことです。一貫した送信スイッチ ID をネイバー スイッチに送信することで、リージョン全体で 1 つの仮想スイッチのように動作します。この例では、スイッチ A または B がそのセグメントで指定されているかどうかにかかわらず、スイッチ C が、ルートの一貫した送信スイッチ ID を持つ BPDU を受信します。
IEEE 802.1s の実装
シスコの IEEE MST 標準の実装には、標準の要件を満たす機能だけでなく、すでに公開されている標準には含まれていない一部の(要望されている)先行標準の機能が含まれています。
ポートの役割名の変更
境界の役割は最終的に MST 標準に含まれませんでしたが、境界の概念自体はシスコの実装に投影されています。ただし、リージョン境界にある MST インスタンスのポートは、対応する CIST ポートのステートに必ずしも従うわけではありません。現状、次の 2 通りの事例が考えられます。
• 境界ポートが CIST リージョナル ルートのルート ポートである場合:CIST インスタンス ポートを提案されて同期中の場合、対応するすべての MSTI ポートの同期を取り終わった後であれば(フォワーディングします)、その場合のみ合意を返信してフォワーディング ステートに移行できます。MSTI ポートには、特別な マスター の役割があります。
• 境界ポートが CIST リージョナル ルートのルート ポートでない:MSTI ポートは、CIST ポートのステートおよび役割に従います。標準では提供される情報が少ないため、MSTI ポートが BPDU(M レコード)を受信しない場合、MSTI ポートが BPDU を代わりにブロックできる理由がわかりにくい場合があります。この場合、境界の役割自体は存在していませんが、 show コマンドで見ると、出力される type カラムで、ポートが境界ポートとして認識されていることがわかります。
レガシー スイッチと標準スイッチの相互運用
先行標準のスイッチでは先行標準のポートを自動検出ができないため、インターフェイス コンフィギュレーション コマンドを使用して認識させます。標準と先行標準の間にあるリージョンは形成できませんが、CIST を使用することで相互運用できます。このような特別な方法を採用しても、失われる機能は、異なるインスタンス上のロード バランシングのみです。ポートが先行標準の BPDU を受信すると、CLI(コマンドライン インターフェイス)にはポートの設定に応じて異なるフラグが表示されます。また、スイッチが、先行標準の BPDU 転送の設定がされてないポートで先行標準の BPDU を初めて受信すると、Syslog メッセージにも表示されます。
図 21-2 に、このシナリオを示します。A を標準スイッチ、B を先行標準のスイッチと仮定してください。両方とも同じリージョンに設定されています。A が CIST のルート スイッチのため、B にセグメント X のルート ポート(BX)とセグメント Y の代替ポート(BY)があります。セグメント Y がフラップして、先行標準の単一の BPDU を送信する前に BY のポートが代替ポートになった場合、AY は Y に接続している先行標準のスイッチを検出できないため、標準の BPDU を送信し続けます。ポート BY は境界に固定され、A と B の間でのロードバランスは不可能になります。セグメント X にも同じ問題がありますが、B は TC を送信することがあります。
図 21-2 標準スイッチおよび先行標準のスイッチでの相互運用
(注) 規格 MST 実装と準規格 MST 実装間の相互作用を最低限に抑えることを推奨します。
単一方向リンクの失敗の検出
IEEE MST 標準にはこの機能が存在していませんが、Cisco IOS Release には加えられています。ソフトウェアは、受信した BPDU でポートのロールおよびステートの一貫性をチェックし、ブリッジング ループの原因となることがある単方向リンク障害を検出します。
指定ポートで矛盾が検出された場合、役割には従いますが、ブリッジ処理のループを引き起こすよりは、矛盾による接続中断の方が望ましい状態のため、廃棄ステートへ戻ります。
図 21-3 に、一般的にブリッジング ループになる単一方向リンク障害を示します。スイッチ A はルート スイッチです。スイッチ B へ向かうリンク上で、BPDU が紛失しています。RSTP および MST BPDU には、送信側ポートの役割とステートが含まれます。この情報があれば、スイッチ A は、送信した優位 BPDU にスイッチ B が反応しないこと、さらにスイッチ B はルート スイッチではなく指定スイッチであることを検出できます。結果として、スイッチ A は自身のポートをブロックし(またはブロックを維持して)、ブリッジ処理のループを回避します。
図 21-3 単一方向リンク障害の検出
IEEE 802.1D STP との相互運用性
MSTP が稼働しているスイッチは、IEEE 802.1D 準拠のレガシー スイッチとの相互運用を可能にする組み込み型のプロトコル移行メカニズムをサポートします。このスイッチは、レガシー IEEE 802.1D コンフィギュレーション BPDU(プロトコルバージョンが 0 に設定されている BPDU)を受信すると、そのポート上では IEEE 802.1D BPDU のみを送信します。また、MSTP スイッチは、レガシー BPDU、別のリージョンに関連付けられている MSTP BPDU(バージョン 3)、または RSTP BPDU(バージョン 2)を受信することによって、ポートがリージョンの境界に位置していることを検出できます。
ただし、レガシー スイッチが指定スイッチでない場合、レガシー スイッチがリンクから削除されているかどうか検出できないので、スイッチは IEEE 802.1D BPDU を受け取らなくなった場合でも、自動的に MSTP モードには戻りません。さらにスイッチは、接続先スイッチがリージョンに加入した場合であっても、引き続きポートに境界の役割を指定する可能性があります。プロトコル移行プロセスを再起動する(ネイバー スイッチとの再ネゴシエーションを強制する)には、 clear spanning-tree detected-protocols 特権 EXEC コマンドを使用します。
リンク上のすべてのレガシー スイッチが RSTP スイッチであれば、これらのスイッチは、RSTP BPDU 同様に MSTP BPDU を処理できます。したがって、MSTP スイッチは、バージョン 0 コンフィギュレーションと TCN BPDU またはバージョン 3 MSTP BPDU のいずれかを境界ポートで送信します。境界ポートは、指定スイッチがシングル スパニングツリー スイッチまたは異なる MST コンフィギュレーションを持つスイッチのいずれかである LAN に接続されます。
RSTP
RSTP は、ポイントツーポイントの配線を利用して、スパニングツリーの高速コンバージェンスを実現します。また、1 秒未満の間に、スパニングツリーを再構成できます(IEEE 802.1D スパニングツリーのデフォルトに設定されている 50 秒とは異なります)。
ポートの役割およびアクティブ トポロジー
RSTP は、ポートに役割を割り当てて、アクティブ トポロジを学習することによって高速コンバージェンスを実現します。「スパニングツリー トポロジと BPDU」で説明したように、RSTP は、IEEE 802.1D STP に基づき、スイッチ プライオリティが最も高い(プライオリティの値が最も小さい)スイッチをルート スイッチに選択します。RSTP はさらに、各ポートに次のいずれか 1 つの役割を割り当てます。
• ルート ポート:スイッチからルート スイッチへパケットを転送する場合の最適パス(最も低コストなパス)を提供します。
• 指定ポート:指定スイッチに接続します。これにより、LAN からルート スイッチへパケットを転送するときのパス コストが最小になります。指定スイッチが LAN に接続するポートのことを指定ポートと呼びます。
• 代替ポート:現在のルート ポートが提供したパスに代わるルート スイッチへの代替パスを提供します。
• バックアップ ポート:指定ポートが提供した、スパニングツリーのリーフに向かうパスのバックアップとして機能します。バックアップ ポートが存在できるのは、2 つのポートがポイントツーポイント リンクによってループバックで接続されている場合、または 1 つのスイッチに共有 LAN セグメントへの接続が 2 つ以上ある場合です。
• ディセーブル ポート:スパニングツリーの動作において何も役割が与えられていません。
ルート ポートまたは DP の役割があるポートは、アクティブ トポロジーに組み込まれます。代替ポートまたはバックアップ ポートのロールがあるポートは、アクティブ トポロジから除外されます。
ネットワーク全体のポートの役割に矛盾のない安定したトポロジでは、RSTP は、すべてのルート ポートおよび指定ポートがただちにフォワーディング ステートに移行し、代替ポートとバックアップ ポートが必ず廃棄ステート(IEEE 802.1D のブロッキング ステートと同じ)になるように保証します。ポートのステートにより、転送処理および学習処理の動作が制御されます。 表 21-2 に、IEEE 802.1D と RSTP のポート ステートの比較を示します。
表 21-2 ポート ステートの比較
|
STP ポート ステート(IEEE 802.1D)
|
|
|
イネーブル |
ブロッキング |
廃棄 |
No |
イネーブル |
リスニング |
廃棄 |
No |
イネーブル |
ラーニング |
ラーニング |
Yes |
イネーブル |
フォワーディング |
フォワーディング |
Yes |
ディセーブル |
ディセーブル |
廃棄 |
No |
Cisco STP の実装との一貫性を保つため、このマニュアルでは、ポート ステートを 廃棄 ではなく ブロッキング として定義します。DP はリスニング ステートから開始します。
高速コンバージェンス
RSTP を使用すると、スイッチ、スイッチ ポート、または LAN に障害が発生しても、ただちに接続を回復できます。エッジ ポート、新しいルート ポート、ポイントツーポイント リンクで接続したポートに、高速コンバージェンスが次のように提供されます。
• エッジ ポート: spanning-tree portfast インターフェイス コンフィギュレーション コマンドを使用して、RSTP スイッチ上の 1 つのポートをエッジ ポートに設定すると、そのエッジ ポートはただちにフォワーディング ステートになります。エッジ ポートは Port Fast 対応ポートと同じであり、単一エンド ステーションに接続しているポートだけでイネーブルにする必要があります。
• ルート ポート:RSTP は、新しいルート ポートを選択した場合、古いルート ポートをブロックし、新しいルート ポートをフォワーディング ステートにすぐに移行します。
• ポイントツーポイント リンク:ポイントツーポイント リンクで別のポートにポートを接続し、ローカル ポートが DP になると、提案と合意のハンドシェークを使用して別のポートと高速移行がネゴシエーションされ、ループがないトポロジーが確保されます。
図 21-4 では、スイッチ A とスイッチ B はポイントツーポイント リンクを通じて接続され、すべてのポートがブロッキング ステートになっています。スイッチ A のプライオリティ値がスイッチ B のプライオリティ値より小さい数値である場合、 スイッチ A はスイッチ B に提案メッセージ(提案フラグが設定されたコンフィギュレーション BPDU)を送信し、スイッチ A 自身が指定スイッチになることを提案します。
スイッチ B は、提案メッセージを受信すると、提案メッセージを受信したポートを新しいルート ポートとして選択し、すべての非エッジ ポートをブロッキング ステートにします。さらに、新しいルート ポート経由で合意メッセージ(合意フラグが設定された BPDU)を送信します。
スイッチ A は、スイッチ B の合意メッセージを受信すると、ただちに自身の指定ポートをフォワーディング ステートにします。スイッチ B はその非エッジ ポートをすべてブロックし、またスイッチ A とスイッチ B はポイントツーポイント リンクで接続されているので、ネットワークにループは形成されません。
スイッチ C がスイッチ B に接続された場合も、同様のハンドシェイク メッセージが交換されます。スイッチ C はスイッチ B に接続されたポートをルート ポートとして選択し、両端のポートはただちにフォワーディング ステートに移行します。アクティブ トポロジにスイッチが追加されるたびに、このハンドシェイク プロセスが実行されます。ネットワークが収束すると、この提案/合意ハンドシェイクがルートからスパニングツリーのリーフへと進みます。
スイッチはポートのデュプレックス モードによってリンク タイプを学習します。全二重ポートはポイントツーポイント接続と見なされ、半二重接続は共有接続と見なされます。 spanning-tree link-type インターフェイス コンフィギュレーション コマンドを使用すると、デュプレックス設定によって制御されるデフォルト設定を無効にすることができます。
図 21-4 高速コンバージェンスの提案と合意のハンドシェーク
ポートの役割の同期
スイッチのポートの 1 つで提案メッセージが受信され、そのポートが新しいルート ポートに選択されると、RSTP は他のすべてのポートを新しいルートの情報に同期させます。
他のすべてのポートが同期化されると、スイッチはルート ポートで受信した優位のルート情報に同期化されます。スイッチ上の個々のポートは次の場合に同期化された状態となります。
• ポートがブロッキング ステートである。
• エッジ ポートである(ネットワークのエッジに存在するように設定されたポート)。
DP は、フォワーディング ステートになっていてエッジ ポートとして設定されていない場合、RSTP によって DP が強制的に新しいルート情報で同期化すると、DP がブロッキング ステートに移行します。一般的に RSTP がルート情報でポートを強制的に同期化し、ポートが上の条件を満たしていない場合、そのポート ステートはブロッキングに設定されます。
スイッチは、すべてのポートが同期化されたことを確認すると、そのルート ポートに対応する指定スイッチに合意メッセージを送信します。ポイントツーポイント リンクで接続されたスイッチがポートの役割について互いに合意すると、RSTP はポート ステートをただちにフォワーディング ステートに移行させます。イベントのシーケンスについては、図 21-5 を参照してください。
図 21-5 高速コンバージェンス中のイベントのシーケンス
ブリッジ プロトコル データ ユニットの形式および処理
RSTP BPDU のフォーマットは、プロトコル バージョンが 2 に設定されている点を除き、IEEE 802.1D BPDU のフォーマットと同じです。新しい 1 バイトのバージョン 1 の Length フィールドは 0 に設定されます。これはバージョン 1 のプロトコルの情報がないことを示しています。 表 21-3 に、RSTP のフラグ フィールドを示します。
表 21-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 が示されます。ただし、IEEE 802.1D スイッチとの相互運用性を保つために、RSTP スイッチは TCN BPDU の処理と生成を行います。
ラーニング フラグおよびフォワーディング フラグは、送信側ポートのステートに従って設定されます。
優位 BPDU 情報の処理
現在保存されているルート情報よりも優位のルート情報(小さいスイッチ ID、低パス コストなど)をポートが受信すると、RSTP は再構成を開始します。ポートが新しいルート ポートとして提案されて選択されると、RSTP は強制的にその他すべてのポートを同期化します。
受信した BPDU が提案フラグの設定された RSTP BPDU である場合、スイッチは他のすべてのポートを同期化した後、合意メッセージを送信します。BPDU が IEEE 802.1D BPDU である場合、スイッチは提案フラグを設定せずに、そのポートの転送遅延タイマーを起動します。新しいルート ポートでは、フォワーディング ステートに移行するために、2 倍の転送遅延時間が必要となります。
ポートで優位の情報が受信されたために、そのポートがバックアップ ポートまたは代替ポートになる場合、RSTP はそのポートをブロッキング ステートに設定し、合意メッセージは送信しません。DP は、転送遅延タイマーが失効するまで、提案フラグを設定して BPDU を送信し続け、転送遅延タイマーの失効時に、ポートはフォワーディング ステートに移行します。
下位 BPDU 情報の処理
指定ポートの役割フラグが設定された下位 BPDU(そのポートに現在保存されている値より大きいスイッチ ID、高いパス コストなど)を指定ポートが受信した場合、その指定ポートは、ただちに現在の自身の情報を応答します。
トポロジの変更
ここでは、スパニングツリー トポロジの変更処理について、RSTP と IEEE 802.1D の相違を説明します。
• 検出:IEEE 802.1D ではブロッキングとフォワーディング ステート間での すべての 移行によってトポロジの変更が生じますが、RSTP ではトポロジの変更が生じるのは、ブロッキングからフォワーディングにステートが移行する場合 のみ です(トポロジの変更と見なされるのは、相互接続性が向上する場合だけです)。エッジ ポートにおけるステート変更は、TC の原因になりません。RSTP スイッチは、トポロジの変更を検出すると、そのスイッチのすべての非エッジ ポート(TC 通知を受信したポートを除く)で学習した情報を削除します。
• 通知:IEEE 802.1D は TCN BPDU を使用しますが、RSTP は使用しません。ただし、IEEE 802.1D との相互運用性を保つために、RSTP スイッチは TCN BPDU の処理と生成を行います。
• 確認:RSTP スイッチは、指定ポートで IEEE 802.1D スイッチから TCN メッセージを受信した場合、TCA ビットが設定された IEEE 802.1D コンフィギュレーション BPDU で応答します。ただし、IEEE 802.1D スイッチに接続されたルート ポートで TC 時間タイマー(IEEE 802.1D のトポロジ変更タイマーと同じ)がアクティブであり、TCA ビットが設定されたコンフィギュレーション BPDU が受信された場合、TC 時間タイマーはリセットされます。
この処理は、IEEE 802.1D スイッチをサポートする目的でのみ必要とされます。RSTP BPDU は TCA ビットが設定されていません。
• 伝播:RSTP スイッチは、指定ポートまたはルート ポートを介して別のスイッチから TC メッセージを受信すると、自身のすべての非エッジ ポート、指定ポート、およびルート ポート(この TC メッセージを受信したポートを除く)に変更を伝播します。スイッチは、これらのすべてのポートの TC 時間タイマーを起動し、これらのポート上で学習した情報を削除します。
• プロトコルの移行:IEEE 802.1D スイッチとの下位互換性を保つため、RSTP は IEEE 802.1D コンフィギュレーション BPDU および TCN BPDU をポート単位で必要に応じて送信します。
ポートが初期化されると、移行遅延タイマーが開始され(RSTP BPDU が送信される最低時間を指定)、RSTP BPDU が送信されます。このタイマーがアクティブな間、スイッチはそのポートで受信したすべての BPDU を処理し、プロトコル タイプを無視します。
スイッチはポートの移行遅延タイマーが満了した後に IEEE 802.1D BPDU を受信した場合、IEEE 802.1D スイッチに接続されていると想定し、IEEE 802.1D BPDU のみの使用を開始します。ただし、RSTP スイッチが 1 つのポートで IEEE 802.1D BPDU を使用していて、タイマーが満了した後に RSTP BPDU を受信した場合、タイマーが再起動し、そのポートで RSTP BPDU の使用が開始されます。
MSTP のデフォルト設定
表 21-4 MSTP のデフォルト設定
|
|
スパニングツリー モード |
PVST+(Rapid PVST+ と MSTP はディセーブル) |
スイッチ プライオリティ(CIST ポートごとに設定可能) |
32768 |
スパニングツリー ポート プライオリティ(CIST ポート単位で設定可能) |
128 |
スパニングツリー ポート コスト(CIST ポート単位で設定可能) |
1000 Mbps:4 100 Mbps:19 10 Mbps:100 |
hello タイム |
2 秒 |
転送遅延時間 |
15 秒 |
最大エージング タイム |
20 秒 |
最大ホップ カウント |
20 ホップ |
MSTP 設定時の注意事項
ここでは、MSTP の設定時の注意事項を説明します。
• spanning-tree mode mst グローバル コンフィギュレーション コマンドを使用して、MST をイネーブルにすると、RSTP が自動的にイネーブルになります。
• 2 つ以上のスイッチを同じ MST リージョンに設定するには、その 2 つのスイッチに同じ VLAN/インスタンス マッピング、同じコンフィギュレーション リビジョン番号、同じ名前を設定しなければなりません。
• スイッチは最大 65 の MST インスタンスをサポートします。特定の MST インスタンスにマッピング可能な VLAN 数に制限はありません。
• PVST+、Rapid PVST+、および MSTP はサポートされますが、アクティブにできるのは 1 つのバージョンだけです (たとえば、すべての VLAN で PVST+ を使用するか、すべての VLAN で Rapid PVST+ を使用するか、またはすべての VLAN で MSTP を使用することになります)。詳細については、「スパニングツリーの相互運用性と下位互換性」を参照してください。
• MST コンフィギュレーションの VTP 伝播機能はサポートされません。ただし、コマンドライン インターフェイス(CLI)または SNMP(簡易ネットワーク管理プロトコル)サポートを通じて、MST リージョン内の各スイッチで MST コンフィギュレーション(リージョン名、リビジョン番号、および VLAN とインスタンスのマッピング)を手動で設定することは可能です。
• ネットワークの冗長パスでロードバランスを実現するには、すべての VLAN とインスタンスのマッピング割り当てが一致する必要があります。一致しない場合、すべてのトラフィックは単一リンクを流れます。
• すべての MST 境界ポートは、PVST+ と MST クラウドの間、または高速 PVST+ および MST クラウドの間におけるロードバランスのために転送する必要があります。そのためには、MST クラウドの IST マスターが CST のルートを兼ねている必要があります。MST クラウドが複数の MST リージョンから構成されている場合、いずれかの MST リージョンに CST ルートを含める必要があり、その他すべての MST リージョンに、PVST+ クラウドまたは高速 PVST+ クラウドを通るパスよりも、MST クラウド内に含まれるルートへのパスが良くする必要があります。クラウド内のスイッチを手動で設定しなければならない場合もあります。
• ネットワークを多数のリージョンに分割することは推奨できません。ただし、どうしても分割せざるを得ない場合は、スイッチド LAN をルータまたは非レイヤ 2 デバイスで相互接続された小規模な LAN に分割することを推奨します。
• UplinkFast および BackboneFast の設定時情報については、「オプションのスパニングツリー機能の設定に関する情報」を参照してください。
ルート スイッチ
スイッチは、スパニングツリー インスタンスを VLAN グループとマッピングして維持します。各インスタンスには、スイッチ プライオリティとスイッチの MAC アドレスからなるスイッチ ID が対応付けられます。最小のスイッチ ID を持つスイッチがその VLAN グループのルート スイッチになります。
特定のスイッチがルートになるように設定するには、 spanning-tree mst instance-id root グローバル コンフィギュレーション コマンドを使用して、スイッチ プライオリティをデフォルト値(32768)からきわめて小さい値に変更します。これにより、そのスイッチが指定されたスパニングツリー インスタンスのルート スイッチになることができます。このコマンドを入力すると、スイッチは、ルート スイッチのスイッチ プライオリティを確認します。拡張システム ID のサポートのため、スイッチは指定されたインスタンスについて、自身のプライオリティを 24576 に設定します(この値によって、このスイッチが指定されたスパニングツリー インスタンスのルートになる場合)。
指定されたインスタンスのルート スイッチに、24576 に満たないスイッチ プライオリティが設定されている場合は、スイッチは自身のプライオリティを最小のスイッチ プライオリティより 4096 だけ小さい値に設定します (4096 は 4 ビット スイッチ プライオリティの最下位ビットの値です。表 20-1 を参照)。
ネットワーク上に拡張システム ID をサポートするスイッチとサポートしないスイッチが混在する場合は、拡張システム ID をサポートするスイッチがルート スイッチになることはほぼありません。拡張システム ID によって、旧ソフトウェアが稼働する接続スイッチのプライオリティより VLAN 番号が大きくなるたびに、スイッチ プライオリティ値が増大します。
各スパニングツリー インスタンスのルート スイッチは、バックボーン スイッチまたはディストリビューション スイッチにする必要があります。アクセス スイッチをスパニングツリーのプライマリ ルートとして設定しないでください。
レイヤ 2 ネットワークの直径(つまり、レイヤ 2 ネットワーク上の任意の 2 つのエンド ステーション間の最大スイッチ ホップ カウント)を指定するには、 diameter キーワードを指定します(MST インスタンス 0 の場合のみ使用可)。ネットワークの直径を指定すると、その直径のネットワークに最適な hello タイム、転送遅延時間、および最大エージング タイムをスイッチが自動的に設定するので、コンバージェンスの所要時間を大幅に短縮できます。 hello キーワードを使用して、自動的に計算される hello タイムを上書きすることができます。
セカンダリ ルート スイッチ
拡張システム ID をサポートするスイッチをセカンダリルートとして設定すると、スイッチ プライオリティはデフォルト値(32768)から 28672 に変更されます。その結果、プライマリ ルート スイッチに障害が発生した場合に、このスイッチが、指定されたインスタンスのルート スイッチになる可能性が高くなります。これは、他のネットワーク スイッチがデフォルトのスイッチ プライオリティ 32768 を使用し、ルート スイッチになる可能性が低いことが前提です。
複数のスイッチでこのコマンドを実行すると、複数のバックアップ ルート スイッチを設定できます。 spanning-tree mst instance-id root primary グローバル コンフィギュレーション コマンド でプライマリ ルート スイッチを設定したときと同じネットワーク直径および hello タイム値を使用してください。
ポートのプライオリティ
ループが発生した場合、MSTP はポート プライオリティを使用して、フォワーディング ステートにするインターフェイスを選択します。最初に選択されるインターフェイスには高いプライオリティ値(小さい数値)を割り当て、最後に選択されるインターフェイスには低いプライオリティ値(高い数値)を割り当てることができます。すべてのインターフェイスに同じプライオリティ値が与えられている場合、MSTP はインターフェイス番号が最小のインターフェイスをフォワーディング ステートにし、他のインターフェイスをブロックします。
パス コスト
MSTP パス コストのデフォルト値は、インターフェイスのメディア速度に基づきます。ループが発生した場合、MSTP はコストを使用して、フォワーディング ステートにするインターフェイスを選択します。最初に選択されるインターフェイスには低いコスト値を割り当て、最後に選択されるインターフェイスには高いコスト値を割り当てることができます。すべてのインターフェイスに同じコスト値が与えられている場合、MSTP はインターフェイス番号が最小のインターフェイスをフォワーディング ステートにし、他のインターフェイスをブロックします。
高速移行を保障するリンク タイプ
ポイントツーポイント リンクでポート間を接続し、ローカル ポートが DP になると、RSTP は提案と合意のハンドシェークを使用して別のポートと高速移行をネゴシエーションし、「高速コンバージェンス」で説明したようなループがないトポロジーを保証します。
デフォルトの場合、リンク タイプはインターフェイスのデュプレックス モードから制御されます。全二重ポートはポイントツーポイント接続、半二重ポートは共有接続と見なされます。MSTP が稼働しているリモート スイッチ上の 1 つのポートと物理的にポイントツーポイントで接続されている半二重リンクが存在する場合は、リンク タイプのデフォルト設定値を変更して、フォワーディング ステートへの高速移行をイネーブルにできます。
ネイバー タイプ
トポロジには、先行標準に準拠したデバイスと IEEE 802.1s 標準準拠のデバイスの両方を加えることができます。デフォルトの場合、ポートは準規格デバイスを自動的に検出できますが、規格 BPDU および準規格 BPDU の両方を受信できます。デバイスとそのネイバーの間に不一致がある場合は、CIST だけがインターフェイスで動作します。
準規格 BPDU だけを送信するようにポートを設定できます。先行標準のフラグは、ポートが STP 互換モードにある場合でも、すべての show コマンドで表示されます。
プロトコル移行プロセスの再開
MSTP が稼働しているスイッチは、IEEE 802.1D 準拠のレガシー スイッチとの相互運用を可能にする組み込み型のプロトコル移行メカニズムをサポートします。このスイッチは、レガシー IEEE 802.1D コンフィギュレーション BPDU(プロトコルバージョンが 0 に設定されている BPDU)を受信すると、そのポート上では IEEE 802.1D BPDU のみを送信します。また、MSTP スイッチは、レガシー BPDU、別のリージョンに関連付けられている MST BPDU(バージョン 3)、または RST BPDU(バージョン 2)を受信することによって、ポートがリージョンの境界に位置していることを検出できます。
ただし、レガシー スイッチが指定スイッチでない場合、レガシー スイッチがリンクから削除されているかどうか検出できないので、スイッチは IEEE 802.1D BPDU を受け取らなくなった場合でも、自動的に MSTP モードには戻りません。さらにスイッチは、接続先スイッチがリージョンに加入した場合であっても、ポートに対して引き続き、境界の役割を割り当てる可能性もあります。