●スパニングツリーとは
参照
STP の設定
「Catalyst 3750 スイッチ ソフトウェア コンフィギュレーション ガイド」より
オプションのスパニング ツリー機能の設定
「Catalyst 3750 スイッチ ソフトウェア コンフィギュレーション ガイド」より
Rapid Spanning Tree Protocol(802.1W)の概要
ネットワークを構成する上で、冗長性を確保するために、ネットワークをループ状に接続する場合があります。
しかし、このような構成では、ブロードキャストをはじめ、ありとあらゆる通信データが、構成されたネットワーク上を永遠に循環することになります。
レイヤ2ヘッダには、TTL(Time To Live)値は、ありません。そのために、永遠にループし続けることになります。その結果、スイッチのCPU負荷が上がってしまい、スイッチの処理能力が限界を超えて、最悪の場合、暴走したり、ネットワークの帯域幅を浪費して、ネットワークがダウンしたりしてしまうこともあります。
そこで、この循環を防ぐために、スパニングツリープロトコル(STP)を使用します。スパニングツリープロトコル(以下、STPという)は、IEEE 802.1Dとして標準化されています。
STPは、与えられた優先順位を元に、ブリッジ間でBPDU(Bridge Protocol Data Unit)と呼ばれる制御情報をやり取りして、任意のポートをブロック状態にして、ブロックしたポートで、受信したデータフレームを破棄します。
これによって、物理的にループを構成にしているネットワークであっても、データフレームがループの中をいつまでも巡り続ける事態を防ぐことができます。
大規模なネットワークの場合は、障害時に迂回経路が確保できるという利点があるためスパニングツリーを構成するケースが多いようです。
●スパニングツリーの有効化・無効化
参照
スパニングツリーモードの変更
スパニングツリーのディセーブル化
Catalystスイッチでは、スパニングツリープロトコルがデフォルトで有効化されています。
したがって、有効化のための設定は最初は必要はありませんが、例えば、無効化の設定後、有効化するには以下のようにします。
●ルートブリッジの選出及びポート状態の設定
さて、そのSTPですが、STPには、IEEE802.1DとIEEE802.1Wという複数の種類が存在します。現在、主流になっているのは、IEEE802.1Wで、通称、RSTP(ラピッドスパニングツリープロトコル)と呼ばれています。
STPでは、下のように5つの状態を移行するので、最大で50秒(20秒+15秒+15秒)の通信断が発生します。
参照
スパニングツリーインターフェイスステート
・Disabled(無効)
↓(管理者によりポートがshutdownされている状態)
・Blocking
↓(最大経過時間20秒。データフレームを転送せずに、BPDUの受信のみ行う状態。
↓ 全てのポートは最初はブロッキング状態から開始する。)
・Listening
↓(転送遅延15秒。BPDUを送受信し合い、ルートブリッジ、ルートポート、指定ポートの
↓ 選出を行っている状態。MACアドレスも学習せず、データも転送しない状態。)
・Learning
↓(転送遅延15秒。BPDUを送受信し合う。非指定ポートになれば即座にブロッキングへ。
↓ 受信したフレームの送信元MACアドレスを学習しているが、データは転送しない。)
・Forwarding
最終的にルートポートまたは指定ポートになった状態。
この状態になると、ようやくそのポートで、ユーザのデータを転送するようになる。
その間、通信ができない状態になりますので、ミッションクリティカルな環境において、あまり向いているとは言えません。そこで、このSTPの弱点を克服するべく開発されたのが、RSTPです。
RSTPを使用すれば、スパニングツリーの再計算が1秒程度となり、非常に高速になります。RSTPは、STP(IEEE802.1D)とは互換性があるので、STPと混在環境でも動作可能です。
ここでは、IEEE802.1D(STP)でネットワークを構築してみることにします。
STPの動作ですが、電源を入れると、BPDUが、ブリッジID(BID)と共に送信され、まずは、ルートブリッジの選出が行われます。ちなみに、Cisco機器では、デフォルトで送信間隔が2秒になっています。
STPは最適パス(ルート パス)を次の順序で選択します。
◆ルートブリッジの選出
全てのスイッチが、BPDUを受信と確認を行い、最終的に最小のBID値を持つブリッジがルートブリッジとして選出されます。
◆ルートポート(Root Port)の選出
ルートスイッチでない各スイッチごとに、1つのポートをルートポートとして選出します。つまり、全ての非ルートブリッジはルートポートを必ず1つ持ち、ルートブリッジはルートポートを持たない唯一のスイッチとなります。ルートブリッジへの最小のコストを持つパスが最適パスを提供するルートポートになります。スイッチ上で最上位のBPDUを受信するポートになります。
◆代表ポート(Designated Port)の選出
スパニングツリーに参加するポートを選択する。 ここでも、ルートブリッジへの最小のコストを持つパスが最適パスを提供する代表ポートになります。
◆ブロッキングポートの決定
RP(Root Port)、DP(Designated Port)になっていない残ったポートがブロッキングポートになります。
●オプションのスパニングツリー機能の設定
スパニングツリー機能のデフォルト設定(Catalyst 3750)は下記のとおりです。
●スパニングツリー設定時の注意事項
各スタックメンバーは専用のスパニングツリーを稼動し、スタック全体はネットワークの他の部分からは単一のスイッチとして見なされます。
VTPにスパニングツリーインスタンスよりも多くのVLANが定義されている場合、PVST+またはRapid PVST+をイネーブルにできるのは、スイッチスタックあたり128のVLANに限られます。残りのVLANは、スパニングツリーがディセーブルの状態で動作します。ただし、MSTPを使用して複数のVLANを同一のスパニングツリーインスタンスにマッピングすることが可能です。詳細については、「MSTPの設定」を参照してください。
128のスパニングツリーインスタンスがすでに使用されている場合、VLANの1つでスパニングツリーをディセーブルにして、STPを稼動させたい別のVLANでイネーブルにできます。no spanning-tree vlan vlan-idグローバルコンフィギレーションコマンドを使用して、特定のVLANでスパニングツリーをディセーブルにし、spanning-tree vlan vlan-idグローバルコンフィギュレーションコマンドを使用して、所定のVLANでスパニングツリーをイネーブルにします。
●PortFast(Cisco独自)
シスコ製品では、STPの拡張機能としてPortFast、UplinkFast、BackboneFastを独自に開発しています。STPの拡張機能である PortFastを使用した場合、レイヤ2アクセスポートとして設定されたポートはListening状態とLearning状態をスキップして、直ちにBlocking状態からForwarding状態に移行します。
結果として、PortFastの設定されたポートに接続された機器は、直ちにリンクアップして通信接続することができます。PCやサーバが接続されたスイッチのアクセスポートでは、全てのSTP状態を経る必要はなく、PortFastを有効にするのが推奨です。
スイッチ間接続となるポートでPortFastを有効にするとブリッジングループが発生する可能性があり、そのようなポートでPortFastを必ず無効にしてください。
●UplinkFast(Cisco独自)
参照
アップリンク ファースト機能の説明と設定について
STPの拡張機能であるUplinkFastを使用した場合、レイヤ2の冗長リンクでダイレクトリンクに障害が発生した時に新しいルートポートを短時間で選択でき、そのルートポートは通常のSTP手順と異なり、Listening状態とLearning状態をスキップして、直ちにBlocking状態からForwarding状態に移行します。
UplinkFastでは高速コンバージェンスのためにアップリンクグループを使用しています。このグループは1つのルートポートと1つ以上のブロッキングポートから構成され、リンク障害が発生した場合は高速に代替パスを提供(1~5秒)します。このUplinkFastはアクセススイッチ側だけで必要となる設定です。
なお、RSTPではこの機能は自動的に有効になります。
●BackboneFast(Cisco独自)
STPの拡張機能であるBackboneFastを使用した場合、レイヤ2の冗長リンクで間接リンクに障害が発生した時に最大エージング(max-age)が満了するまで待たずに、直ちにListening状態に移行します。間接リンク障害とは直接接続されていないリンク(間接リンク)がダウンした事を意味します。
スイッチは指定スイッチから下位のBPDUを受信した場合、指定スイッチがルートスイッチとの接続を失ったこと(間接リンク障害)が発生したと認識します。ここで言う下位のBPDUとは同じスイッチがルートブリッジでも指定ブリッジでもあることを示すBPDUです。下位のBPDUを受信したポートがすでにブロッキングポートである場合は、ルートポートとブロッキングポートがルートスイッチに至る代替パスとなります。下位のBPDUを受信したポートがルートポートの場合も同様となりますが、ブロッキングポートがない場合は、自身をルートスイッチとして宣言し、ルートスイッチ選出プロセスを開始します。
下位のBPDUを受信したスイッチがルートスイッチに至る代替パスをもっている場合、その代替パスを使用してRLQ(Root Link Query)BPDUを送信します。このBPDUにより現在のルートスイッチが機能しているか確認します。ルートスイッチからRLQの応答があれば、下位のBPDUを受信したポートを最大エージング(max-age)タイムを待たずにListening状態へ移行させます。
結果、間接リンク障害が発生した場合、コンバージェンスタイムが最大50秒から最大30秒までへと短縮されることになります。
正常時が左下図の状態で、リンクL1がダウンしたとします。BackboneFastの設定が有効でない場合スイッチCはmax-ageで定義された時間が経過するまで、リンクL3上でBPDUの伝送を開始しません。BackboneFastの設定が有効である場合、スイッチは以下の①~⑥をのアクションを実行していきます。
●PortFastの設定
PortFastの設定はグローバルコンフィグ上またはインターフェース上で有効にすることができます。グローバルで有効にした場合、トランクポートを除く全てのポートでPortFast機能が有効になります。
インターフェースで有効にする場合、サーバやPCなどが接続されたポートに対して有効にするのが一般的です。
インターフェースで有効にする場合は非推奨ではありますが、トランクインターフェースに対してもPortFastを有効にできます。
●UplinkFastの設定
UplinkFastの設定はグローバルコンフィグで有効にします。UplinkFastを有効にするとスイッチ上の全てのVLANでUplinkFastが有効になります。ただし、スイッチ上でスイッチプライオリティの設定が「spanning-tree vlan vlan-id priority」定義されているVLANではUplinkFastは有効になりません。
UplinkFastではTCN(Topology Change Notification)を抑制する代わりに、上位スイッチがダウンしたリンクから新しいポートへ直ちにMACアドレステーブルエントリが移行できるように、接続されているデバイスのMACアドレスを送信元とするダミーのマルチキャストフレームをルートスイッチに向かって送信します。そのマルチキャストパケットは1秒間にデフォルトで150パケット(150pps)送信されますが spanning-tree uplinkfastのオプションコマンドであるmax-update-rateにより変更することができます。
●BackboneFastの設定
BackboneFastの設定はグローバルコンフィグで有効にします。BackboneFastを使用する場合はSTPネットワーク上の全てのスイッチ上でBackboneFastの設定を有効にする必要があります。
※ UplinkFastとBackboneFastの機能はRSTPのメカニズムの中に組み込まれているので、RSTPでは設定不要です。
●BPDUガード
BPDUガード機能はスイッチ上でグローバルにイネーブルにすることも、ポート単位でイネーブルにすることもできます。
ただし、これらの動作は次の点で異なります。
グローバルレベルの場合は、spanning-tree portfast bpduguard defaultグローバルコンフィギュレーションコマンドを使用して、PortFast対応ポート上でBPDUガードをイネーブルにできます。これらのポート上でBPDUが受信されると、スパニング ツリーは、PortFastで動作しているポートをシャットダウンします。設定が有効であれば、PortFast対応ポートはBPDUを受信しません。PortFast対応ポートがBPDUを受信した場合は、認可されていないデバイスの接続などの無効な設定が存在することを示しており、BPDUガード機能によってポートはerrdisableステートになります。この状態になると、スイッチは違反が発生したポート全体をシャットダウンします。
ポートをシャットダウンしないようにするには、errdisable detect cause bpduguard shutdown vlanグローバルコンフィギュレーションコマンドを使用して、違反が発生したポート上の原因となっているVLANだけをシャットダウンします。
インターフェイス レベルの場合は、PortFast機能をイネーブルにしなくても 、spanning-tree bpduguard enableインターフェイスコンフィギュレーション コマンドを使用して、任意のポート上でBPDUガードをイネーブルにできます。BPDUを受信したポートは、errdisableステートになります。
手動でインターフェイスを再び動作させなければならないので、BPDUガード機能は無効な設定に対する安全対策になります。サービスプロバイダーネットワーク内でアクセス ポートがスパニング ツリーに参加しないようにするには、BPDUガード機能を使用します。
●BPDUフィルタリング
BPDUフィルタリング機能はスイッチ上でグローバルにイネーブルにすることも、インターフェイス単位でイネーブルにすることもできます。ただし、これらの動作は次の点で異なります。
グローバルレベルの場合は、spanning-tree portfast bpdufilter defaultグローバルコンフィギュレーションコマンドを使用して、PortFast対応インターフェイス上でBPDUフィルタリングをイネーブルにできます。このコマンドを使用すると、PortFast動作ステートのインターフェイスはBPDUを送受信できなくなります。
ただし、リンクが確立してからスイッチが発信BPDUのフィルタリングを開始するまでの間に、このインターフェイスからBPDUがいくつか送信されます。これらのインターフェイスに接続されたホストがBPDUを受信しないようにするには、スイッチ上でBPDUフィルタリングをグローバルにイネーブルにする必要があります。BPDUを受信したPortFast対応インターフェイスではPortFast動作ステータスが解除され、BPDUフィルタリングがディセーブルになります。
インターフェイスレベルの場合は、PortFast機能をイネーブルにしなくても 、spanning-tree bpdufilter enableインターフェイスコンフィギュレーションコマンドを使用して、任意のインターフェイス上でBPDUフィルタリングをイネーブルにできます。このコマンドを実行すると、インターフェイスはBPDUを送受信できなくなります。
注意 BPDUフィルタリングを特定のインターフェイス上でイネーブルにすることは、そのインターフェイス上でスパニングツリーをディセーブルにすることと同じであり、スパニングツリーループが発生することがあります。
スイッチ全体または 1つのインターフェイスでBPDUフィルタリング機能をイネーブルにできます。
●ルートガード
ルートガードは、周囲のスイッチがルートスイッチになることを防止するための機能です。ルートガードが有効になっているポートで上位のBPDUを受信すると、そのポートはroot-inconsistentステートへ移行し、意図しない周囲のスイッチがルートスイッチにならないようにします。
左下図のような構成があるとします。右下図の構成通り、プライオリティ値が0のスイッチを追加されるとBPDUの内容に従ってSTPトポロジーが変化するので、収束による通信断が発生する可能性があります。ルートガードを使用すれば、ルートガードを適用したポートで上位BPDUを受信しても、root-inconsistentになりポートがブロックされることから、既存のSTPトポロジーは保護され、通信断の問題は発生しません。
●ループガード
参照
ループ ガードと BPDU スキュー検出機能によるスパニングツリー プロトコルの拡張機能
STPループガード機能により、レイヤ2フォワーディングループ(STPループ)に対する保護がいっそう確実なものになります。STPループは、冗長トポロジ内のSTPブロッキングポートが誤ってフォワーディングステートに移行した場合に形成されます。これは通常、物理的に冗長化されたトポロジのいずれかのポート(必ずしもSTPブロッキングポートとは限らない)でSTPBPDUが受信されなくなったために発生します。STPの動作は、ポートの役割に応じてBPDUが継続的に受信または送信されることによって成り立っています。指定ポートではBPDUが送信され、指定ポート以外のポートではBPDUが受信されます。
物理的に冗長化されたトポロジのいずれかのポートでBPDUが受信されなくなると、STPではトポロジにループがないと判断されます。しかしそのうちに、代替ポートまたはバックアップポートの中のブロッキングポートが指定ポートになり、フォワーディングステートに移行します。このような場合に、ループが形成されます。
ループガード機能では追加チェックが実施されます。指定ポート以外のポートでループガードが有効にされていて、BPDUが受信されない場合、そのポートはリスニング/ラーニング/フォワーディングステートに移行するのではなく、STPループ不整合ブロッキングステートに移行します。ループガード機能がなければ、そのポートでは指定ポートの役割があるものと判断されます。このポートはSTPフォワーディングステートに移行して、ループが形成されます。
ループガードによって不整合ポートがブロックされると、次のメッセージがログに記録されます。
ループガードが無効の場合は、max_ageタイマーの期限が切れた時点で、スイッチCのSTPブロッキングポートがSTPリスニングステートに移行し、さらにforward_delay時間が2回経過してからフォワーディングステートに移行します。このような場合に、ループが形成されます(図2)。
ループガードが有効になっている場合は、max_ageタイマーの有効期限が切れた時点で、スイッチCのブロッキングポートはSTPループ不整合ステートに移行します。STPループ不整合ステートのポートはユーザトラフィックを通過させないため、ループは形成されません(このループ不整合ステートは、事実上はブロッキングステートに等しくなります)(図3)。
ループガード機能はポート単位で有効になります。しかし、STPレベルでポートをブロックしている限り、ループガードではVLAN単位で不整合ポートがブロックされます(Per-VLANSTPのため)。つまり、トランクポートで、ある特定のVLANのBPDUが受信されない場合、そのVLANのみがブロックされます(ループ不整合STPステートに移行します)。同じ理由から、EtherChannelインターフェイスでループガードが有効になっている場合は、1つのリンクだけでなく、特定のVLANのチャネル全体がブロックされます(STPの観点では、EtherChannelは1つの論理ポートと見なされるため)。
それでは、どのポートでループガードを有効にすればよいのでしょうか。最も明白な答えはブロッキングポートです。ただし、これは全面的に正しいわけではありません。ループガードは、アクティブトポロジのどのような組み合せにおいても、指定ポート以外のポート(より正確には、ルートポートと代替ポート)で有効にする必要があります。ループガードがVLAN単位の機能でない限り、1つの(トランク)ポートが、あるVLANでは指定ポートになり、他のVLANでは指定ポートにならない可能性があります。想定されるフェールオーバーシナリオを考慮することも必要です。
デフォルトでは、ループガードは無効になっています。ループガードを有効にするには、次のコマンドを使用します。
●ループガードとUDLDの対比
ループガードとUnidirectional Link Detection(UDLD;単方向リンク検出)の両機能は、単方向リンクによって生じるSTP障害を防止するという意味で、部分的に共通するところがあります。ただし、これら2つの機能では、機能と問題へのアプローチ方法が異なっています。次の表は、ループガードとUDLDの機能を説明したものです。
設計上のさまざまな考慮事項に基づいて、UDLDとループガード機能のどちらかを選択できます。STPに関しては、2つの機能の最も顕著な違いは、ソフトウェアの問題が原因で発生するSTP障害に対する保護がUDLDにはない点です。その結果、指定スイッチからはBPDUが送信されません。ただし、この種の障害が起こる可能性は、単方向リンクによる障害よりも(桁違いに)低くなっています。その代わりに、EtherChannelでの単方向リンクの場合はUDLDの方が柔軟に対応できます。このケースでは、UDLDでは障害リンクだけが無効にされ、チャネルの残りのリンクは引き続き機能します。このような障害では、チャネル全体をブロックするために、ループガードではポートがループ不整合ステートにされます。
また、ループガードは、共有リンクやリンクアップ以降常にリンクが単方向の状況では機能しません。最後のケースでは、ポートはBPDUを受信せず、指定ポートになります。これは正常な動作である可能性があるため、この特別なケースはループガードでは対処できません。UDLDを使用すれば、このようなシナリオに対しても防止が可能です。
これまでの説明からわかるように、UDLDとループガードを両方とも有効にすれば最高レベルの保護が得られます
●ルートブリッジの配置
参照
ルートスイッチの設定
セカンダリルートスイッチの設定
ルートブリッジはネットワークの中心に配置するようにします。ネットワークの中心とは、L2スイッチを束ねる(コア)L3スイッチなどが該当することが多いはずです。そのため、障害時等に状況を分かりやすく判断できるように(コア)L3スイッチのブリッジプライオリティを「0」に設定して、例えば冗長化されたもう1台のL3スイッチはブリッジプライオリティを「4096」に設定するようにします。
そして、他のL2スイッチは、ブリッジプライオリティを設定せずデフォルトの「32768」とします。そうすることで、ルートブリッジ選出後、ルートポート、指定ポート、非指定ポートの選出は下図のようになり、推奨設計のSTP状態となります。
プライオリティ値は通常、ルートブリッジと指定する場合は推奨値として「4096」とします。
設定可能な値は0、4096、8192、12288、16384、20480、24576、28672、32768、36864、40960、45056、49152、53248、57344、61440です。
●VLANのスイッチプライオリティの設定
参照
VLANのスイッチプライオリティの設定
CatalystスイッチはPVST+に対応しているため、ブリッジプライオリティの値は、VLANごとに設定できます。
以下はVLAN 10にブリッジプライオリティを4096にする設定例です。
●ポートコストの設定
スパニングツリーでは、Forwarding状態にするポートを選択する時に、先ずポートコストを比較します。STPにて優先的にForwardingとしたいポートには、手動にて小さいコストを割り当てることができます。STPではインターフェースがアクセスポートである場合、ポートコスト値(spanning-tree cost)を使用して、トランクポートである場合、VLANポートコスト値(spanning-tree vlan vlan-id cost)を使用します。
●ポートプライオリティの設定
参照
ポートプライオリティの設定
スパニングツリーでは、Forwarding状態にするポートを選択する時に、先ずポートコストを比較します。次にブリッジIDを比較して次にポートプライオリティを比較します。ポートコストの設定同様にSTPではインターフェースがアクセスである場合ポートプライオリティ、トランクである場合VLANプライオリティを使用します。
対向スイッチから受信するBPDUでこれらの値(ポートコスト、ブリッジID、ポートプライオリティ)が全て同じ場合、対向スイッチのポート番号の情報を比較して小さいポート番号を[優先] とします。
●パスコスト
参照
パスコストの設定
RP、DPの選出で行われる、パスコストの計算には、以下の値が使われます。
新しい機器や古い機器での構成また異機種間での構成では、新コスト、旧コストが入り混じってしまうため、各機器でコストのカスタマイズが必要になる場合があります。
●スパニングツリープロトコルトポロジの変更
参照
スパニングツリー プロトコル トポロジの変更
新しいトポロジ変更メカニズム
STP(802.1D)の場合、ブリッジがトポロジ変更を検出すると信頼できるメカニズムを使用して、まずルートブリッジに通知します。
Topology Change Notification(TCN:トポロジ変更通知)
ルートブリッジがネットワークのトポロジ変更を認識すると、送信するBPDU上にTC(Topology Change:トポロジの変化)フラグを設定し、ネットワーク中の全ブリッジにリレーします。TCフラグビットが設定されたBPDUをブリッジが受信すると、ブリッジングテーブルのエージングタイムが転送遅延の秒数に減らされます。この処置により、古くなった情報が比較的迅速に、確実にフラッシュされるようになります。このトポロジ変更メカニズムは、RSTPでは大幅に改造されています。トポロジ変更の検出も、ネットワークを介した伝搬も、ともに進化しています。
max_age+forward_delayは、デフォルトでは20+15=35秒です。
RSTPでは、トポロジ変更が発生するのは、非エッジポートのforwarding状態への移行だけです。RSTPでは、802.1Dとは異なり、接続を失うことはもはやトポロジ変更とはみなされないということです(つまり、ブロッキング状態に移行するポートではTCを生成しないようになっています)。RSTPブリッジでトポロジ変更が検出されると、次のようになります。
ブリッジが近隣からTCビットが設定されたBPDUを受信すると、次のようになります。
わずか数秒(ハロータイムの数倍の時間)で、ネットワーク(VLAN)全体でCAMテーブルのエントリはほとんどフラッシュされます。このアプローチでは、一時的にフラッディングが増える可能性がありますが、一方では速やかな接続回復を妨げる陳腐化する可能性のある情報をクリアします。
●RSTP(802.1W)とSTP(802.1D)の互換性
RSTPは、レガシーSTPプロトコルと相互運用が可能です。しかし、レガシーブリッジと双方向で通信すると、802.1Wに備わるファーストコンバージェンスの利点が失われることに注意することは大切です。
各ポートは、対応するセグメント上でプロトコルが動作するよう定義した変数を維持しています。ポートがアップ状態になると、3秒の移行遅延タイマーも開始します。このタイマーが作動している間、ポートと関連した現在のSTPまたはRSTPモードはロックされます。移行遅延の時間が終了すると、ポートは次に受信するBPDUに対応するモードに適応します。ポートがBPDUを受信した結果、動作モードを変更する場合は、移行遅延が再起動されます。この動作により、モード変更の頻度が制限されます。
たとえば、前の図のブリッジAおよびBが両方ともRSTPを実行していて、スイッチAがセグメントに指定されていると仮定します。レガシーSTPブリッジCがこのリンクに導入されます。802.1DブリッジはRSTP BPDUを無視して破棄するので、Cはセグメント上に他にブリッジはないと見なして、不良802.1DフォーマットのBPDUを送信し始めます。スイッチAはこれらのBPDUを受信し、最大ハロータイムの2倍が経過した後、該当ポート上でだけモードを802.1Dに変更します。その結果、CはスイッチAのBPDUを理解できるようになり、セグメントの指定ブリッジとしてAを受け入れます。
この特定のケースでは、ブリッジCが削除されると、ブリッジAは、唯一の隣接ブリッジBとさらに効率の高いRSTPで動作可能であるにもかかわらず、そのポート上でSTPモードを実行します。これは、セグメントからブリッジCが削除されたことをAが認識していないからです。この特定の(まれな)ケースでは、ポートのプロトコル検出を手動で再開するために、ユーザの操作が必要になります。
ポートが802.1D互換モードの場合は、Topology Change Notification(TCN:トポロジ変更通知)BPDU、およびTCまたはTCAビットが設定されたBPDUも処理できます。
●STPの設定(その1)
使用するネットワーク機器は、Catalyst 3750(1台)、CentreCOM 8724SL(2台)で、すべてSTPを動作させます。
すべての機器において、プライオリティ値はデフォルト(32768)にします。
設定情報を確認します。
PVSTは、VLANごとにスパニング・ツリーを動作させる機能です。PVSTでは、従来16ビットあったプライオリティ値のうちの上位12ビットを「拡張システムID」として、ここにVLAN番号を記述するように再定義しました。そのため、プライオリティ値の32768に、VLAN番号の32が加わっているわけです。
fa1/0/5をshutdown(またはP1をdisable switch port=1)します。
今度は、fa1/0/5をno shutdown(またはP1をenable switch port=1)してみます。
●STPの設定(その2)
使用するネットワーク機器、Catalyst 3750(1台)、CentreCOM 8724SL(2台)です。
Catalyst 3750のプライオリティ値を4096に設定します。Catalyst 3750はSTPで動作しています。
設定情報を確認します。
経路の切り替わりを確認するために「debug spanning-tree events」を実行します。
この状態では、Catalyst 3750のFa1/0/5、Fa1/0/6は両方とも正常にリンクアップします。
では、Catalyst 3750とCentreCOM 8724SL_2の間のLANケーブルを抜いてみます。
Catalyst 3750のログにはポートのDOWNしか記録されません。
CentreCOM 8724SL_2のポートの状態を確認します。
●STPの設定(その3)
STPの設定(その3)の状態にL2SWを1台接続します。
CentreCOM 8724SL_1、CentreCOM 8724SL_2の状態を確認します。
では、CentreCOM 8724SL_1とL2SWとの間のLANケーブルを抜いてみます。
CentreCOM 8724SL_1の状態を確認してみます。
他のスイッチのポートの状態は変化しません。
では、元の状態に戻します。
次は、Catalyst 3750とCentreCOM 8724SL_1との間のLANケーブルを抜いてみます。
CentreCOM 8724SL_2の状態を確認します。
では、CentreCOM 8724SL_1の状態を確認します。
上記の状態からCentreCOM 8724SL_2とL2SWとの間のLANケーブルを抜いていみます。
CentreCOM 8724SL_1の状態を確認してみます。
●RSTPのポート状態
参照
Rapid Spanning Tree Protocol(802.1W)の概要
STPでは、BLOCKING、LISTENING、LEARNING、FORWARDINGという4つのポートが定義されています。
しかし、実際の動作はBLOCKINGとLISTENINGではどちらもフレームを廃棄し、MAC アドレスを学習することはありません。BLOCKINGとLISTENINGの違いはBPDUの送信が出来るかどうかです。
このような無駄を省く意味でもRSTPでは、BLOCKING、LISTENINGそしてDISABLEDの状態をまとめて、DISCARDING状態としています。
●RSTPポートの役割
RSTPのポートには、ルートポート、指定ポート、バックアップポート、代替ポートの4つの役割があります。
STPのポートには、ルートポート、指定ポート、ブロッキングポートの3つの役割があったので、STPに比べて1つ増えたことになります。STPのブロッキングポートが、バックアップポートと代替ポートに分割されました。
これらのポートの役割は、スイッチのポートから送信されるBPDU(Bridge Protocol Data Unit)によって決定されます。2つのスイッチが相互接続された時、お互いのBPDUを受け取りあって、その値を比較して各スイッチが、ルートポート、指定ポート、バックアップポート、代替ポートなのかを決めていくことになります。
●ルートポートの役割
ブリッジ上で最良のBPDUを受け取るポートがルートポートになります。つまり、パスコストの点からルートブリッジに最も近いポートです。STAは、ブリッジネットワーク全体から(VLANごとに)単一のルートブリッジを選択します。ルートブリッジが送信するBPDUは、他のブリッジが送信するものより有用です。ネットワーク中で、ルートポートを持たないブリッジはルートブリッジだけです。他のブリッジはすべて、少なくとも1つのポートからBPDUを受信します。
●指定ポートの役割
接続されたセグメントに最高のBPDUを送信できるポートは、指定ポートになります。802.1Dのブリッジでは、別々のセグメント(イーサネットセグメントなど)をリンクすることで、ブリッジドメインが作成されます。いずれのセグメント上でも、ルートブリッジに向かうパスは1つしか置けません。2つある場合は、ネットワークにブリッジループができています。任意のセグメントに接続しているブリッジはすべて相互にBPDUをリスニングし、最良のBPDUを送信しているブリッジをそのセグメントの指定ブリッジとして認識します。そのブリッジ上にある対応するポートが指定ポートです。
●代替ポートとバックアップポートの役割
この2つのポートの役割は、802.1Dのblocking状態に対応します。ブロッキングポートとは、指定ポートでもルートポートでもないと定義されます。ブロッキングポートは、セグメント上で、そのポートから送信されるBPDUよりも有用なBPDUを受信しています。ポートがブロックされた状態を維持するには、BPDUの受信が必須であることに注意してください。RSTPは、それを目的としてこの2つの役割を導入しました。
代替ポートとは、他のブリッジよりも有用なBPDUを受信していて、さらに、ブロックされているポートです。次の図に例を示します。
バックアップポートとは、自ブリッジからさらに有用度の高いBPDUを受信していて、さらに、ブロックされているポートです。次の図に例を示します。
802.1Dでは内部的にすでにこの区別はされていました。基本的に、それがシスコのUplinkFast機能の仕組みです。代替ポートはルートブリッジに代替パスを提供することにより、ルートポートに障害が発生した場合、代替できるという論理です。バックアップポートは同じセグメントに冗長接続を提供するので、ルートブリッジへの代替接続は保証できません。そのため、アップリンクグループからは除外されています。
その結果、RSTPは、802.1Dと同じ基準でスパニングツリーの最終トポロジを計算します。別なブリッジやポートの優先順位が使用される方法にはいっさい変更がありません。シスコのインプリメンテーションでは、discarding状態を表すためにblockingという名称を使用しています。CatOSリリース7.1以降では、listening状態とlearning状態が引き続き表示されます。そのため、ポートに関して、IEEE標準で義務付けられている以上の情報が得られるようになっています。しかし、新しい機能では、プロトコルがポートに割り当てた役割と現在の状態は別なものになっています。たとえば、ポートが指定ポートでありながら、同時にblocking状態になることが今では完全に有効です。通常このようなことが起きるのはごく短時間の間で、このポートが指定forwarding状態に移行段階にあることを意味していることになります。
●RSTPの設定(その1)
使用するネットワーク機器、Catalyst 3750(1台)、CentreCOM 8724SL(2台)です。
すべての機器において、プライオリティ値はデフォルト(32768)で使用します。Catalyst 3750はRSTPで動作しています。
設定情報を確認します。
PVSTは、VLANごとにスパニング・ツリーを動作させる機能です。PVSTでは、従来16ビットあったプライオリティ値のうちの上位12ビットを「拡張システムID」として、ここにVLAN番号を記述するように再定義しました。そのため、プライオリティ値の32768に、VLAN番号の32が加わっているわけです。
CentreCOMの表示内容の詳細についてはSHOW STPを参照してください。
見てのとおりプライオリティ値はすべて「32768」です。
ブリッジIDは、「プライオリティ」と「MACアドレス」の二つの値によって成り立っています。プライオリティはどれも「32768」です。
したがって、MACアドレスが最小の機器(CentreCOM 8724SL_2)がルートブリッジになります。
経路の切り替わりを確認するために「debug spanning-tree events」を実行します。
では、Catalyst 3750とCentreCOM 8724SL_1の間のLANケーブルを抜いてみます。
元の状態に戻します。
今度は、CentreCOM 8724SL_1とCentreCOM 8724SL_2の間のLANケーブルを抜いてみます。
抜いたLANケーブルを接続し直します。
●RSTPの設定(その2)
Catalyst 3750(RSTP、Priority=4096)、CentreCOM 8724SL(RSTP、Priority=32768)、L2SWで構成します。
Catalyst 3750、CentreCOM 8724SL_1、CentreCOM 8724SL_2の状態を確認します。
PVSTは、VLANごとにスパニング・ツリーを動作させる機能です。PVSTでは、従来16ビットあったプライオリティ値のうちの上位12ビットを「拡張システムID」として、ここにVLAN番号を記述するように再定義しました。そのため、プライオリティ値の4096に、VLAN番号の32が加わっているわけです。
Catalyst 3750_2とCentreCOM 8724SL_1との間のLANケーブルを抜いてみます・
Catalyst 3750_2、CentreCOM 8724SL_1、CentreCOM 8724SL_2の状態を確認します。
上図の状態からCentreCOM 8724SL_1とCentreCOM 8724SL_2との間のLANケーブルを抜いてみます。
catalyst3750-2には変化はありません。
では、CentreCOM 8724SL_1とCentreCOM 8724SL_2との間のLANケーブルを元の状態(接続)に戻します。
上図の状態からCentreCOM 8724SL_2とL2SWとの間のLANケーブルを抜いてみます。
CentreCOM 8724SL_1とCentreCOM 8724SL_2の状態を確認します。
CentreCOM 8724SL 2台を利用したこの構成では間接リンク障害を瞬時に回復させる手段はありません。
機会があれば、CentreCOM 8724SL 2台をCisco機器に置き換えてBackbonefastにより収束時間が短くなるか確認してみたいと思います。
●RSTPの設定(その3)
Catalyst 3750(RSTP、Priority=4096)、CentreCOM 8724SL(RSTP、Priority=32768)、CentreCOM 908M(L2SW)で構成します。
工場出荷状態で8724SL_1と8724SL_2に接続したところ、下記のようにフラッピングが発生しました。
このメッセージが複数のMACアドレスに対して表示される場合は、正常な動作ではありません。MACアドレスはデフォルトのエージング時間に達する前に1つのポートから別のポートへすばやく移動するので、この動作はネットワークに問題が発生している可能性があることを示します。この問題が発生すると、ネットワーク上でトラフィックがループする可能性があります。一般的な症状には、次のものが含まれます。
上位のスイッチ(CentreCOM 8724SL_1及び8724SL_2)はRSTPが動作しています。つまり、BPDUが送信されています。
単なるL2SWではBPDUが通過していたためフラッピングは発生しませんでしたが、今回接続したL2SWはデフォルト状態で「BPDUを破棄する」状態のため、上記のような問題が発生しました。
●RSTPの設定(その4)
Catalyst 3750のFE1/0/11、12はVLAN 35に属します。したがって、まずCatalyst 2940の全ポートをVLAN 35に属させます。
Catalyst 3750(RSTP、Priority=4096)、Catalyst 2940(RSTP、Priority=32768)で構成します。
catalyst3750-2、catalyst2940-1の状態を確認します。
catalyst2940-1のポート3にPCを接続します。
catalyst2940-1の状態を確認します。
事前準備として、デバッグモードにしてスパニングツリーの状態をログに出力させます。
デバッグモードを停止させます。
ログを確認します。
では、ポート1に接続し直します。ログを確認します。
catalyst2940-1のポート3でportfastを設定します。
内容は、「PortFastは、1台のホストがつながるポートで使用しなければならない。このインターフェースにハブや他のスイッチ・ブリッジ等が接続されている場合、ループを起こす可能性があります。注意して使用してください。」というものです。
このメッセージのとおりPortFastの設定は、ポートの配下でループが発生しないと保証されているポート、つまりパソコンしか接続されないポートで使う機能ということになります。
デバッグモードにして、LANケーブルの抜き・差しをしてみます。
スパニングツリーの状態を確認します。
では、ポート1を元に戻します。
結論からすると、portfastとbpdufilterは共に設定(有効化)しておいがほうがよいということが分かります。
ポート3で「portfast」と「bpdufilter」を有効化、ポート1を抜く、ポート1を元に戻しポート2を抜く、ポート2を元に戻しポート3を抜く、ポート3を元に戻します。
●RSTPの設定(その5)
Catalyst 3750のFE1/0/11、12はVLAN 35に属します。したがって、まず各Catalyst 2940の全ポートをVLAN 35に属させます。
Catalyst 3750(RSTP、Priority=4096)、Catalyst 2940(RSTP、Priority=32768)3台で構成します。
Catalyst 2940間のLAN接続する各ポートは「mdix auto」を設定します。これを設定せずストレートケーブルで接続してもポートがリンクアップしません(クロスケーブルであればリンクアップします)。
また、catalyst2940-3のポート3はPCが接続されていますので「portfast」と「bpdufilter」を有効化します。
catalyst2940-3での設定を下記に示します。
catalyst2940-2とcatalyst2940-3の間のLANケーブルを抜きます。
catalyst2940-1~3の状態を確認します。
次は、catalyst3750-2とcatalyst2940-1との間のLANケーブルを抜きます。
catalyst2940-1~3の状態を確認します。
では、元の状態に戻します。
今度は、catalyst3750-2とcatalyst2940-2との間のLANケーブルを抜きます。
catalyst2940-1~3の状態を確認します。
また、PCからのpingは1回だけ途切れました。
configファイルはここからダウンロードできます。
●RSTPの設定(その6)
Catalyst 3750(RSTP、Priority=4096)、Catalyst 2940(RSTP、Priority=32768)3台で構成します。
パスコストを変更することにより、どのように経路が変化するかを確認します。パスコストはデフォルトで「19」になっています。
show spanning-tree detailコマンドで確認できます。catalyst2940-1で確認してみます。
catalyst2940-2のポート1にパスコスト「1」を設定します。
しかしながら、ポート遷移は発生しませんでした。
catalyst2940-2のポート1のパスコストを元に(「1」)戻します。
(catalyst2940-2のポート8にパスコスト「38」を設定します。→ 結果、変化なし)
今度は、catalyst2940-2のポート1にパスコスト「38」を設定します。
catalyst2940-1のポート6が指定ポートに変わっています。
catalyst2940-3のポート7がルートポートに、ポート8が代替ポート変わっています。
catalyst2940-1とcatalyst2940-3の間のLANケーブルを抜きます。
各スイッチの状態を確認します。
configファイルはここからダウンロードできます。
●RSTP構築が上手くいかない場合
まず、設定を保存後ネットワーク機器を再起動してみてください。
それでもダメな場合は、設定内容を再度確認してみましょう。
LANケーブルが破損、または該当ポートが故障しているかもしれません。
導入する機器及び導入する機器と相互接続する機器のIOSにRSTP(STP)に関するバグがないのかを確認して下さい。
最後に、新規導入または再構築などでダウンタイムが許されるのであれば、相互接続されている物理ケーブルを全て外し、spanning-tree mode rapid-pvstを再入力してリロードを実施して下さい。
以上のステップを踏むことによりRSTPのネットワークは問題なく構築できるはずです。
●MSTPの概要
MSTは、複数のVLANをインスタンスというグループにまとめて、そのインスタンスごとにスパニングツリーを動作させる技術です。MSTはIEEE802.1sで定義されています。MSTにおいて使用するプロトコルがMSTP(Multiple Spanning Tree Protocol)です。MSTPを使用することで、スイッチのCPU負荷を減少させ、またRSTP(Rapid Spanning Tree Protocol)も有効になり、高速なコンバージェンスが実現できます。
RSTPとMSTPは、(オリジナル)IEEE802.1Dスパニングツリー準拠デバイス、既存のシスコ独自のMultiple Instance STP(MISTP)、および既存のシスコPer-VLAN Spanning-Tree plus(PVST+)との下位互換性を保ちながら、スパニングツリーの動作を向上させます。
PVST+(Cisco)の場合
PVST+は文字通り、Per-VLANでVLAN単位ごとにSTPが構築され下図のように最適に負荷分散されます。しかし、PVST+の場合はVLANごとに1つのスパニングツリーインスタンスが保持されるため、最終的に1000ものインスタンスが必要となり、各インスタンスごとにVLANごとのBPDUが送信されるという欠点があります。このことにより帯域幅やネットワーク上の全てのスイッチCPUリソースが消費されます。
上記は、Rapid PVST+(Cisco)も同様です。
IEEE802.1Qの場合
IEEE802.1Q標準は、VLANの数に関係なくブリッジネットワーク全体で1つのスパニングツリーインスタンスだけがあると仮定するCST(Common Spanning Tree)インスタンスを定義しています。1つのインスタンスということはCPUリソース使用は少なくすみますが、Per-VLANでないことから負荷分散できません。
MST(IEEE802.1S)の場合
MSTは、PVST+とIEEE802.1Qのの両方の長所を兼ね備えてます。MSTは、複数のVLANを1つのスパニングツリーにマッピングすることで、インスタンスの数を減らせています。下図では、2つの論理トポロジーしかないため、必要なのは2つのスパニングツリーインスタンスだけとなります。
この設定では負荷分散がうまくでき、また、CPUリソースを有効利用できます。
PVST+、IEEE802.1Q、MST(IEEE802.1S)の比較
●MSTリージョン
同じコンフィギュレーション情報(リージョン名、リビジョン番号、MSTのVLAN番号と特定の1つのインスタンスへのマッピング)を持ちます。同じMSTコンフィギュレーションを持ち、相互接続されたスイッチの集合をMSTリージョンといいます。リージョンには、同一のMSTコンフィギュレーションを持った1つまたは複数のメンバーが必要です。さらに、各メンバーは、RSTP Bridge Protocol Data Unit(BPDU:ブリッジプロトコルデータユニット)を処理できる必要があります。ネットワーク内のMSTリージョンの数には制限はありませんが、各リージョンがサポートできるスパニングツリーインスタンスの数は65までです。インスタンスは0~4094の数字で識別されます。1つのVLANを同時に複数のスパニングツリーインスタンスに割り当てることはできません。
●IST、CIST、およびCST
すべてのスパニングツリーインスタンスが独立しているPVST+およびRapid PVST+とは異なり、MSTPは2種類のスパニングツリーを確立して維持します。
MSTリージョン内の動作
ISTは1つのリージョン内のすべてのMSTPスイッチを接続します。ISTが収束すると、ISTのルートは、図のように、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インスタンスに対するポートの役割のみを同期させます。
●MSTPの設定(その1)
各スイッチの状態を確認します。
catalyst3750-2がルートブリッジになるようにMST0で設定します。
catalyst2960-1及びcatalyst2960-2の状態を確認します。
catalyst2960-1及びcatalyst2960-2の状態を確認します。
catalyst2940-1、catalyst2940-2、catalyst2940-3がRSTPの状態で接続されています。
上記の状態から、catalyst2940-3、catalyst2940-2、catalyst2940-1の順番でMSTPに変更します。
まず、catalyst2940-3をMSTPに変更し、各スイッチの状態を確認します。
この時、catalyst2940-3のポート3に接続されているPCにpingを送信しつづけていたところ、一回だけ応答が返ってこない状態となりました。
pingの抜けは確認できませんでした。
pingの抜けは確認できませんでした。
●MSTPの設定(その2)
catalyst2960-1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2960-1(config)#spanning-tree mst configuration catalyst2960-1(config-mst)#name region1 catalyst2960-1(config-mst)#instance 1 vlan 110,210 catalyst2960-1(config-mst)#instance 2 vlan 120,220 catalyst2960-1(config-mst)#exit catalyst2960-1(config)#spanning-tree mst 0-1 root primary catalyst2960-1(config)#spanning-tree mst 2 root secondary catalyst2960-1(config)#^Z catalyst2960-2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2960-2(config)#spanning-tree mst configuration catalyst2960-2(config-mst)#name region1 catalyst2960-2(config-mst)#revision 10 catalyst2960-2(config-mst)#instance 1 vlan 110,210 catalyst2960-2(config-mst)#instance 2 vlan 120,220 catalyst2960-2(config-mst)#exit catalyst2960-2(config)#sp
●注意事項
spanning-tree mode コマンドでモードを変更するとネットワークダウンが発生します。
また、STPとRSTPの混在環境は原則提案してはいけません。STPとRSTPの混在環境を逆提案(or 提案される可能性もあります。その場合、スイッチネットワークの物理構成、論理構成におけるBPDUの流れや制御を完全に把握できる環境、あるいは新規または再構築したスイッチネットワークにBPDUを流す機器がユーザに勝手に追加されない環境である場合に限って、受け入れられる提案であると思います。
本来、RSTPとして動作するブリッジグループであってもSTPとして動作する理論上おかしなことになれば、IOSのバグ、未公開バグの問題であり、擬似環境での現象再現やCiscoTACに投げるなどして解決する必要があるのですが、結果的により非効率なネットワークシステムが構築されないよう、余計なトラブルに苦しまないよう、先に述べた環境であるのかをしっかり見極めましょう。
CatalystのRSTPは、802.1W 標準に基づくとはいえ、Rapid Per-VLAN Spanning-Tree plus(Rapid PVST+)プロトコルであり、
CatalystのSTPは、802.1D 標準に基づくとはいえ、Per-VLAN Spanning-Tree plus(PVST+)プロトコルであることをお忘れなく。
参照
STP の設定
「Catalyst 3750 スイッチ ソフトウェア コンフィギュレーション ガイド」より
オプションのスパニング ツリー機能の設定
「Catalyst 3750 スイッチ ソフトウェア コンフィギュレーション ガイド」より
Rapid Spanning Tree Protocol(802.1W)の概要
ネットワークを構成する上で、冗長性を確保するために、ネットワークをループ状に接続する場合があります。
しかし、このような構成では、ブロードキャストをはじめ、ありとあらゆる通信データが、構成されたネットワーク上を永遠に循環することになります。
レイヤ2ヘッダには、TTL(Time To Live)値は、ありません。そのために、永遠にループし続けることになります。その結果、スイッチのCPU負荷が上がってしまい、スイッチの処理能力が限界を超えて、最悪の場合、暴走したり、ネットワークの帯域幅を浪費して、ネットワークがダウンしたりしてしまうこともあります。

そこで、この循環を防ぐために、スパニングツリープロトコル(STP)を使用します。スパニングツリープロトコル(以下、STPという)は、IEEE 802.1Dとして標準化されています。
STPは、与えられた優先順位を元に、ブリッジ間でBPDU(Bridge Protocol Data Unit)と呼ばれる制御情報をやり取りして、任意のポートをブロック状態にして、ブロックしたポートで、受信したデータフレームを破棄します。
これによって、物理的にループを構成にしているネットワークであっても、データフレームがループの中をいつまでも巡り続ける事態を防ぐことができます。
大規模なネットワークの場合は、障害時に迂回経路が確保できるという利点があるためスパニングツリーを構成するケースが多いようです。
●スパニングツリーの有効化・無効化
参照
スパニングツリーモードの変更
スパニングツリーのディセーブル化
Catalystスイッチでは、スパニングツリープロトコルがデフォルトで有効化されています。
したがって、有効化のための設定は最初は必要はありませんが、例えば、無効化の設定後、有効化するには以下のようにします。
Router(config)# spanning-tree vlan vlan-id
無効化するには以下のようにします。
Router(config)# no spanning-tree vlan vlan-id
●ルートブリッジの選出及びポート状態の設定
さて、そのSTPですが、STPには、IEEE802.1DとIEEE802.1Wという複数の種類が存在します。現在、主流になっているのは、IEEE802.1Wで、通称、RSTP(ラピッドスパニングツリープロトコル)と呼ばれています。
STPでは、下のように5つの状態を移行するので、最大で50秒(20秒+15秒+15秒)の通信断が発生します。
参照
スパニングツリーインターフェイスステート
・Disabled(無効)
↓(管理者によりポートがshutdownされている状態)
・Blocking
↓(最大経過時間20秒。データフレームを転送せずに、BPDUの受信のみ行う状態。
↓ 全てのポートは最初はブロッキング状態から開始する。)
・Listening
↓(転送遅延15秒。BPDUを送受信し合い、ルートブリッジ、ルートポート、指定ポートの
↓ 選出を行っている状態。MACアドレスも学習せず、データも転送しない状態。)
・Learning
↓(転送遅延15秒。BPDUを送受信し合う。非指定ポートになれば即座にブロッキングへ。
↓ 受信したフレームの送信元MACアドレスを学習しているが、データは転送しない。)
・Forwarding
最終的にルートポートまたは指定ポートになった状態。
この状態になると、ようやくそのポートで、ユーザのデータを転送するようになる。
その間、通信ができない状態になりますので、ミッションクリティカルな環境において、あまり向いているとは言えません。そこで、このSTPの弱点を克服するべく開発されたのが、RSTPです。
RSTPを使用すれば、スパニングツリーの再計算が1秒程度となり、非常に高速になります。RSTPは、STP(IEEE802.1D)とは互換性があるので、STPと混在環境でも動作可能です。
ここでは、IEEE802.1D(STP)でネットワークを構築してみることにします。
STPの動作ですが、電源を入れると、BPDUが、ブリッジID(BID)と共に送信され、まずは、ルートブリッジの選出が行われます。ちなみに、Cisco機器では、デフォルトで送信間隔が2秒になっています。

STPは最適パス(ルート パス)を次の順序で選択します。
- パスコスト
- フォワーディングスイッチのブリッジID
- 最も低いポートプライオリティ
- 最も低い内部ポート番号
- ネットワークごとに1つのルートブリッジ
- ルートブリッジ以外のスイッチごとに1つのルートポート
- セグメントごとに1つの代表ポート
- ブロックするポートの決定
◆ルートブリッジの選出
全てのスイッチが、BPDUを受信と確認を行い、最終的に最小のBID値を持つブリッジがルートブリッジとして選出されます。
◆ルートポート(Root Port)の選出
ルートスイッチでない各スイッチごとに、1つのポートをルートポートとして選出します。つまり、全ての非ルートブリッジはルートポートを必ず1つ持ち、ルートブリッジはルートポートを持たない唯一のスイッチとなります。ルートブリッジへの最小のコストを持つパスが最適パスを提供するルートポートになります。スイッチ上で最上位のBPDUを受信するポートになります。
◆代表ポート(Designated Port)の選出
スパニングツリーに参加するポートを選択する。 ここでも、ルートブリッジへの最小のコストを持つパスが最適パスを提供する代表ポートになります。
◆ブロッキングポートの決定
RP(Root Port)、DP(Designated Port)になっていない残ったポートがブロッキングポートになります。
●オプションのスパニングツリー機能の設定
スパニングツリー機能のデフォルト設定(Catalyst 3750)は下記のとおりです。
機能 | デフォルト設定 |
---|---|
イネーブルステート | VLAN1上でイネーブル |
スパニングツリーモード | PVST+(Rapid PVST+とMSTPはディセーブル) |
スイッチ プライオリティ | 32768 |
スパニングツリーポートプライオリティ(インターフェイス単位で設定可能) | 128 |
スパニングツリーポートコスト(インターフェイス単位で設定可能) | 1000 Mb/s:4 100 Mb/s:19 10 Mb/s:100 |
スパニングツリーVLANポートプライオリティ(VLAN 単位で設定可能) | 128 |
スパニングツリーVLANポートコスト(VLAN 単位で設定可能) | 1000 Mb/s:4 100 Mb/s:19 10 Mb/s:100 |
スパニングツリータイマー | Hello タイム:2 秒 1転送遅延時間:15 秒 1最大エージング タイム:20 秒 1転送保留カウント:6 BPDU |
●スパニングツリー設定時の注意事項
各スタックメンバーは専用のスパニングツリーを稼動し、スタック全体はネットワークの他の部分からは単一のスイッチとして見なされます。
VTPにスパニングツリーインスタンスよりも多くのVLANが定義されている場合、PVST+またはRapid PVST+をイネーブルにできるのは、スイッチスタックあたり128のVLANに限られます。残りのVLANは、スパニングツリーがディセーブルの状態で動作します。ただし、MSTPを使用して複数のVLANを同一のスパニングツリーインスタンスにマッピングすることが可能です。詳細については、「MSTPの設定」を参照してください。
128のスパニングツリーインスタンスがすでに使用されている場合、VLANの1つでスパニングツリーをディセーブルにして、STPを稼動させたい別のVLANでイネーブルにできます。no spanning-tree vlan vlan-idグローバルコンフィギレーションコマンドを使用して、特定のVLANでスパニングツリーをディセーブルにし、spanning-tree vlan vlan-idグローバルコンフィギュレーションコマンドを使用して、所定のVLANでスパニングツリーをイネーブルにします。
●PortFast(Cisco独自)
シスコ製品では、STPの拡張機能としてPortFast、UplinkFast、BackboneFastを独自に開発しています。STPの拡張機能である PortFastを使用した場合、レイヤ2アクセスポートとして設定されたポートはListening状態とLearning状態をスキップして、直ちにBlocking状態からForwarding状態に移行します。
結果として、PortFastの設定されたポートに接続された機器は、直ちにリンクアップして通信接続することができます。PCやサーバが接続されたスイッチのアクセスポートでは、全てのSTP状態を経る必要はなく、PortFastを有効にするのが推奨です。
スイッチ間接続となるポートでPortFastを有効にするとブリッジングループが発生する可能性があり、そのようなポートでPortFastを必ず無効にしてください。

●UplinkFast(Cisco独自)
参照
アップリンク ファースト機能の説明と設定について
STPの拡張機能であるUplinkFastを使用した場合、レイヤ2の冗長リンクでダイレクトリンクに障害が発生した時に新しいルートポートを短時間で選択でき、そのルートポートは通常のSTP手順と異なり、Listening状態とLearning状態をスキップして、直ちにBlocking状態からForwarding状態に移行します。
UplinkFastでは高速コンバージェンスのためにアップリンクグループを使用しています。このグループは1つのルートポートと1つ以上のブロッキングポートから構成され、リンク障害が発生した場合は高速に代替パスを提供(1~5秒)します。このUplinkFastはアクセススイッチ側だけで必要となる設定です。

なお、RSTPではこの機能は自動的に有効になります。
●BackboneFast(Cisco独自)
STPの拡張機能であるBackboneFastを使用した場合、レイヤ2の冗長リンクで間接リンクに障害が発生した時に最大エージング(max-age)が満了するまで待たずに、直ちにListening状態に移行します。間接リンク障害とは直接接続されていないリンク(間接リンク)がダウンした事を意味します。
スイッチは指定スイッチから下位のBPDUを受信した場合、指定スイッチがルートスイッチとの接続を失ったこと(間接リンク障害)が発生したと認識します。ここで言う下位のBPDUとは同じスイッチがルートブリッジでも指定ブリッジでもあることを示すBPDUです。下位のBPDUを受信したポートがすでにブロッキングポートである場合は、ルートポートとブロッキングポートがルートスイッチに至る代替パスとなります。下位のBPDUを受信したポートがルートポートの場合も同様となりますが、ブロッキングポートがない場合は、自身をルートスイッチとして宣言し、ルートスイッチ選出プロセスを開始します。
下位のBPDUを受信したスイッチがルートスイッチに至る代替パスをもっている場合、その代替パスを使用してRLQ(Root Link Query)BPDUを送信します。このBPDUにより現在のルートスイッチが機能しているか確認します。ルートスイッチからRLQの応答があれば、下位のBPDUを受信したポートを最大エージング(max-age)タイムを待たずにListening状態へ移行させます。
結果、間接リンク障害が発生した場合、コンバージェンスタイムが最大50秒から最大30秒までへと短縮されることになります。
正常時が左下図の状態で、リンクL1がダウンしたとします。BackboneFastの設定が有効でない場合スイッチCはmax-ageで定義された時間が経過するまで、リンクL3上でBPDUの伝送を開始しません。BackboneFastの設定が有効である場合、スイッチは以下の①~⑥をのアクションを実行していきます。

- Switch CはSwitch Bから下位のBPDUを受信すると、間接リンク障害が発生したと認識します。
- Switch CはルートポートからRLQ(Root Link Query)BPDUを送信します。
- Switch AはRLQを受信します。また、自分をルートブリッジとして示すRLQ応答を送り返します。
- Switch CはRLQ応答を受信すると、ルートスイッチへの代替パスを保持している事を認識します。
- Switch Cはブロッキング状態のポートをMax-Ageタイムを待たずにリスニング状態へ移行します。
- ListeningからForwarding状態へ30秒後に移行し、Switch BからAへのパスを提供してくれます。
●PortFastの設定
PortFastの設定はグローバルコンフィグ上またはインターフェース上で有効にすることができます。グローバルで有効にした場合、トランクポートを除く全てのポートでPortFast機能が有効になります。
Router(config)# spanning-tree PortFastdefaultPortFastの設定はグローバルで有効にするのではなくインターフェースで有効にするのが一般的な設定です。
インターフェースで有効にする場合、サーバやPCなどが接続されたポートに対して有効にするのが一般的です。
インターフェースで有効にする場合は非推奨ではありますが、トランクインターフェースに対してもPortFastを有効にできます。
Catalyst(config-if)# spanning-tree PortFast[ trunk ]
●UplinkFastの設定
UplinkFastの設定はグローバルコンフィグで有効にします。UplinkFastを有効にするとスイッチ上の全てのVLANでUplinkFastが有効になります。ただし、スイッチ上でスイッチプライオリティの設定が「spanning-tree vlan vlan-id priority」定義されているVLANではUplinkFastは有効になりません。
Router(config)# spanning-tree uplinkfast [ max-update-rate pps ]UplinkFastを有効にすると、自動的に全てのVLANのプライオリティ値を49152に変更し、コスト値も3000追加することにより、UplinkFastを有効にしたスイッチがルートスイッチにならないようにします。
UplinkFastではTCN(Topology Change Notification)を抑制する代わりに、上位スイッチがダウンしたリンクから新しいポートへ直ちにMACアドレステーブルエントリが移行できるように、接続されているデバイスのMACアドレスを送信元とするダミーのマルチキャストフレームをルートスイッチに向かって送信します。そのマルチキャストパケットは1秒間にデフォルトで150パケット(150pps)送信されますが spanning-tree uplinkfastのオプションコマンドであるmax-update-rateにより変更することができます。
●BackboneFastの設定
BackboneFastの設定はグローバルコンフィグで有効にします。BackboneFastを使用する場合はSTPネットワーク上の全てのスイッチ上でBackboneFastの設定を有効にする必要があります。
Router(config)# spanning-tree backbonefast※ UplinkFastはsh spanning-tree uplinkfast、BackboneFastはsh spanning-tree backbonefastでステータス確認を。
※ UplinkFastとBackboneFastの機能はRSTPのメカニズムの中に組み込まれているので、RSTPでは設定不要です。
●BPDUガード
BPDUガード機能はスイッチ上でグローバルにイネーブルにすることも、ポート単位でイネーブルにすることもできます。
ただし、これらの動作は次の点で異なります。
グローバルレベルの場合は、spanning-tree portfast bpduguard defaultグローバルコンフィギュレーションコマンドを使用して、PortFast対応ポート上でBPDUガードをイネーブルにできます。これらのポート上でBPDUが受信されると、スパニング ツリーは、PortFastで動作しているポートをシャットダウンします。設定が有効であれば、PortFast対応ポートはBPDUを受信しません。PortFast対応ポートがBPDUを受信した場合は、認可されていないデバイスの接続などの無効な設定が存在することを示しており、BPDUガード機能によってポートはerrdisableステートになります。この状態になると、スイッチは違反が発生したポート全体をシャットダウンします。
ポートをシャットダウンしないようにするには、errdisable detect cause bpduguard shutdown vlanグローバルコンフィギュレーションコマンドを使用して、違反が発生したポート上の原因となっているVLANだけをシャットダウンします。
インターフェイス レベルの場合は、PortFast機能をイネーブルにしなくても 、spanning-tree bpduguard enableインターフェイスコンフィギュレーション コマンドを使用して、任意のポート上でBPDUガードをイネーブルにできます。BPDUを受信したポートは、errdisableステートになります。
手動でインターフェイスを再び動作させなければならないので、BPDUガード機能は無効な設定に対する安全対策になります。サービスプロバイダーネットワーク内でアクセス ポートがスパニング ツリーに参加しないようにするには、BPDUガード機能を使用します。

●BPDUフィルタリング
BPDUフィルタリング機能はスイッチ上でグローバルにイネーブルにすることも、インターフェイス単位でイネーブルにすることもできます。ただし、これらの動作は次の点で異なります。
グローバルレベルの場合は、spanning-tree portfast bpdufilter defaultグローバルコンフィギュレーションコマンドを使用して、PortFast対応インターフェイス上でBPDUフィルタリングをイネーブルにできます。このコマンドを使用すると、PortFast動作ステートのインターフェイスはBPDUを送受信できなくなります。
ただし、リンクが確立してからスイッチが発信BPDUのフィルタリングを開始するまでの間に、このインターフェイスからBPDUがいくつか送信されます。これらのインターフェイスに接続されたホストがBPDUを受信しないようにするには、スイッチ上でBPDUフィルタリングをグローバルにイネーブルにする必要があります。BPDUを受信したPortFast対応インターフェイスではPortFast動作ステータスが解除され、BPDUフィルタリングがディセーブルになります。

インターフェイスレベルの場合は、PortFast機能をイネーブルにしなくても 、spanning-tree bpdufilter enableインターフェイスコンフィギュレーションコマンドを使用して、任意のインターフェイス上でBPDUフィルタリングをイネーブルにできます。このコマンドを実行すると、インターフェイスはBPDUを送受信できなくなります。

注意 BPDUフィルタリングを特定のインターフェイス上でイネーブルにすることは、そのインターフェイス上でスパニングツリーをディセーブルにすることと同じであり、スパニングツリーループが発生することがあります。
スイッチ全体または 1つのインターフェイスでBPDUフィルタリング機能をイネーブルにできます。
●ルートガード
ルートガードは、周囲のスイッチがルートスイッチになることを防止するための機能です。ルートガードが有効になっているポートで上位のBPDUを受信すると、そのポートはroot-inconsistentステートへ移行し、意図しない周囲のスイッチがルートスイッチにならないようにします。
左下図のような構成があるとします。右下図の構成通り、プライオリティ値が0のスイッチを追加されるとBPDUの内容に従ってSTPトポロジーが変化するので、収束による通信断が発生する可能性があります。ルートガードを使用すれば、ルートガードを適用したポートで上位BPDUを受信しても、root-inconsistentになりポートがブロックされることから、既存のSTPトポロジーは保護され、通信断の問題は発生しません。


●ループガード
参照
ループ ガードと BPDU スキュー検出機能によるスパニングツリー プロトコルの拡張機能
STPループガード機能により、レイヤ2フォワーディングループ(STPループ)に対する保護がいっそう確実なものになります。STPループは、冗長トポロジ内のSTPブロッキングポートが誤ってフォワーディングステートに移行した場合に形成されます。これは通常、物理的に冗長化されたトポロジのいずれかのポート(必ずしもSTPブロッキングポートとは限らない)でSTPBPDUが受信されなくなったために発生します。STPの動作は、ポートの役割に応じてBPDUが継続的に受信または送信されることによって成り立っています。指定ポートではBPDUが送信され、指定ポート以外のポートではBPDUが受信されます。
物理的に冗長化されたトポロジのいずれかのポートでBPDUが受信されなくなると、STPではトポロジにループがないと判断されます。しかしそのうちに、代替ポートまたはバックアップポートの中のブロッキングポートが指定ポートになり、フォワーディングステートに移行します。このような場合に、ループが形成されます。
ループガード機能では追加チェックが実施されます。指定ポート以外のポートでループガードが有効にされていて、BPDUが受信されない場合、そのポートはリスニング/ラーニング/フォワーディングステートに移行するのではなく、STPループ不整合ブロッキングステートに移行します。ループガード機能がなければ、そのポートでは指定ポートの役割があるものと判断されます。このポートはSTPフォワーディングステートに移行して、ループが形成されます。
ループガードによって不整合ポートがブロックされると、次のメッセージがログに記録されます。
%SPANTREE-2-LOOPGUARD_BLOCK: Loop guard blocking port FastEthernet0/24 on VLAN0050.ループ不整合STPステートのポートでBPDUが受信されると、そのポートは別のSTPステートに移行します。受信されたBPDUに従うということは、復旧が自動的に行われ、人的介入が不要であることを意味します。復旧すると、次のメッセージがログに記録されます。
%SPANTREE-2-LOOPGUARD_UNBLOCK: Loop guard unblocking port FastEthernet0/24 on VLAN0050.スイッチAはルートスイッチです。スイッチBとスイッチCの間のリンクで単一方向リンク障害が発生しているため、スイッチCでは、スイッチBからのBPDUが受信されていません(図1)。

ループガードが無効の場合は、max_ageタイマーの期限が切れた時点で、スイッチCのSTPブロッキングポートがSTPリスニングステートに移行し、さらにforward_delay時間が2回経過してからフォワーディングステートに移行します。このような場合に、ループが形成されます(図2)。

ループガードが有効になっている場合は、max_ageタイマーの有効期限が切れた時点で、スイッチCのブロッキングポートはSTPループ不整合ステートに移行します。STPループ不整合ステートのポートはユーザトラフィックを通過させないため、ループは形成されません(このループ不整合ステートは、事実上はブロッキングステートに等しくなります)(図3)。

ループガード機能はポート単位で有効になります。しかし、STPレベルでポートをブロックしている限り、ループガードではVLAN単位で不整合ポートがブロックされます(Per-VLANSTPのため)。つまり、トランクポートで、ある特定のVLANのBPDUが受信されない場合、そのVLANのみがブロックされます(ループ不整合STPステートに移行します)。同じ理由から、EtherChannelインターフェイスでループガードが有効になっている場合は、1つのリンクだけでなく、特定のVLANのチャネル全体がブロックされます(STPの観点では、EtherChannelは1つの論理ポートと見なされるため)。
それでは、どのポートでループガードを有効にすればよいのでしょうか。最も明白な答えはブロッキングポートです。ただし、これは全面的に正しいわけではありません。ループガードは、アクティブトポロジのどのような組み合せにおいても、指定ポート以外のポート(より正確には、ルートポートと代替ポート)で有効にする必要があります。ループガードがVLAN単位の機能でない限り、1つの(トランク)ポートが、あるVLANでは指定ポートになり、他のVLANでは指定ポートにならない可能性があります。想定されるフェールオーバーシナリオを考慮することも必要です。
デフォルトでは、ループガードは無効になっています。ループガードを有効にするには、次のコマンドを使用します。
spanning-tree guard loop Router(config)#interface gigabitEthernet 1/1 Router(config-if)#spanning-tree guard loopCatalystソフトウェア(CatOS)のバージョン7.1(1)では、すべてのポートでグローバルにループガードを有効にできます。実際には、ループガードはすべてのポイントツーポイントリンクで有効になります。ポイントツーポイントリンクはリンクの二重モードによって検出されます。全二重の場合、そのリンクはポイントツーポイントリンクと見なされます。グローバル設定は、ポート単位で設定や上書きが可能です。
Router(config)#spanning-tree loopguard defaultループガードを無効にするには、次のコマンドを発行します。
Router(config-if)#no spanning-tree guard loopループガードをグローバルに無効にするには、次のコマンドを発行します。
Router(config)#no spanning-tree loopguard defaultループガードのステータスを確認するには、次のコマンドを発行します。
Router#show spanning-tree summary Switch is in pvst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is disabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is enabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is short Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- Total 0 0 0 0 0ルートガードはループガードと同時には使用できません。ルートガードは指定ポートで使用されるもので、ポートが指定ポート以外になることが防止されます。ループガードは指定ポート以外のポートで動作し、max_ageの期限切れによってポートが指定ポートになることが防止されます。ルートガードはループガードと同じポートで有効にすることはできません。あるポートにループガードが設定されると、そのポートではルートガードは無効になります。
●ループガードとUDLDの対比
ループガードとUnidirectional Link Detection(UDLD;単方向リンク検出)の両機能は、単方向リンクによって生じるSTP障害を防止するという意味で、部分的に共通するところがあります。ただし、これら2つの機能では、機能と問題へのアプローチ方法が異なっています。次の表は、ループガードとUDLDの機能を説明したものです。
機能 | ループガード | UDLD |
---|---|---|
設定 | ポート単位 | ポート単位 |
アクションの精度 | VLAN単位 | ポート単位 |
自動回復 | はい | はい、err-disableタイムアウト機能付き |
単方向リンクを原因とするSTP障害に対する保護 | はい、冗長トポロジのすべてのルートポートと代替ポート上で有効になっている場合 | はい、冗長トポロジのすべてのリンク上で有効になっている場合 |
ソフトウェアの問題を原因とするSTP障害に対する保護(指定スイッチがBPDUを送信しない) | はい | いいえ |
配線ミスに対する保護 | いいえ | はい |
設計上のさまざまな考慮事項に基づいて、UDLDとループガード機能のどちらかを選択できます。STPに関しては、2つの機能の最も顕著な違いは、ソフトウェアの問題が原因で発生するSTP障害に対する保護がUDLDにはない点です。その結果、指定スイッチからはBPDUが送信されません。ただし、この種の障害が起こる可能性は、単方向リンクによる障害よりも(桁違いに)低くなっています。その代わりに、EtherChannelでの単方向リンクの場合はUDLDの方が柔軟に対応できます。このケースでは、UDLDでは障害リンクだけが無効にされ、チャネルの残りのリンクは引き続き機能します。このような障害では、チャネル全体をブロックするために、ループガードではポートがループ不整合ステートにされます。
また、ループガードは、共有リンクやリンクアップ以降常にリンクが単方向の状況では機能しません。最後のケースでは、ポートはBPDUを受信せず、指定ポートになります。これは正常な動作である可能性があるため、この特別なケースはループガードでは対処できません。UDLDを使用すれば、このようなシナリオに対しても防止が可能です。
これまでの説明からわかるように、UDLDとループガードを両方とも有効にすれば最高レベルの保護が得られます
●ルートブリッジの配置
参照
ルートスイッチの設定
セカンダリルートスイッチの設定
ルートブリッジはネットワークの中心に配置するようにします。ネットワークの中心とは、L2スイッチを束ねる(コア)L3スイッチなどが該当することが多いはずです。そのため、障害時等に状況を分かりやすく判断できるように(コア)L3スイッチのブリッジプライオリティを「0」に設定して、例えば冗長化されたもう1台のL3スイッチはブリッジプライオリティを「4096」に設定するようにします。
そして、他のL2スイッチは、ブリッジプライオリティを設定せずデフォルトの「32768」とします。そうすることで、ルートブリッジ選出後、ルートポート、指定ポート、非指定ポートの選出は下図のようになり、推奨設計のSTP状態となります。

プライオリティ値は通常、ルートブリッジと指定する場合は推奨値として「4096」とします。
設定可能な値は0、4096、8192、12288、16384、20480、24576、28672、32768、36864、40960、45056、49152、53248、57344、61440です。
●VLANのスイッチプライオリティの設定
参照
VLANのスイッチプライオリティの設定
CatalystスイッチはPVST+に対応しているため、ブリッジプライオリティの値は、VLANごとに設定できます。
Router(config)# spanning-tree vlan vlan-id priority priority指定したVLAN IDに対するブリッジプライオリティ値を設定する例を示します。PVST+の場合、0~61440の範囲で4096単位で指定する必要があります。
以下はVLAN 10にブリッジプライオリティを4096にする設定例です。
Router(config)# spanning-tree vlan 10 priority 4096一般的には、例えばVLAN 10においてルートブリッジにしたいスイッチには、プライオリティ値を「0」にします。
Router(config)# spanning-tree vlan 10 priority 0VLAN 10においてセカンダリールートブリッジにしたいスイッチには、プライオリティ値を「4096」にします。セカンダリールートブリッジとは、ルートブリッジの障害時にルートブリッジの役割を引き継ぐスイッチのことです。
●ポートコストの設定
スパニングツリーでは、Forwarding状態にするポートを選択する時に、先ずポートコストを比較します。STPにて優先的にForwardingとしたいポートには、手動にて小さいコストを割り当てることができます。STPではインターフェースがアクセスポートである場合、ポートコスト値(spanning-tree cost)を使用して、トランクポートである場合、VLANポートコスト値(spanning-tree vlan vlan-id cost)を使用します。
Router(config-if)# spanning-tree cost cost Router(config-if)# spanning-tree vlan vlan-id cost costcostに指定できる範囲は1~200000000。cost値のデフォルト値はインターフェースのメディア速度に基づきます。cost値は低い値ほどプライオリティが高くなります。つまり、より優れたBPDUの位置づけとなります。
●ポートプライオリティの設定
参照
ポートプライオリティの設定
スパニングツリーでは、Forwarding状態にするポートを選択する時に、先ずポートコストを比較します。次にブリッジIDを比較して次にポートプライオリティを比較します。ポートコストの設定同様にSTPではインターフェースがアクセスである場合ポートプライオリティ、トランクである場合VLANプライオリティを使用します。
Router(config-if)# spanning-tree port-priority priority Router(config-if)# spanning-tree vlan vlan-id port-priority priorityprirotiyに指定できる範囲は0~240。priority値のデフォルト値は128。有効な値は0からはじまり16の倍数となる値。プライオリティ値は値が小さいほどプライオリティが高く(BPDU優先)になります。
対向スイッチから受信するBPDUでこれらの値(ポートコスト、ブリッジID、ポートプライオリティ)が全て同じ場合、対向スイッチのポート番号の情報を比較して小さいポート番号を[優先] とします。
●パスコスト
参照
パスコストの設定
RP、DPの選出で行われる、パスコストの計算には、以下の値が使われます。
帯域幅 | 新コスト | 旧コスト |
---|---|---|
10Mbps | 100 | 100 |
100Mbps | 19 | 10 |
1Gbps | 4 | 1 |
10Gbps | 2 | 1 |
新しい機器や古い機器での構成また異機種間での構成では、新コスト、旧コストが入り混じってしまうため、各機器でコストのカスタマイズが必要になる場合があります。
●スパニングツリープロトコルトポロジの変更
参照
スパニングツリー プロトコル トポロジの変更
新しいトポロジ変更メカニズム
STP(802.1D)の場合、ブリッジがトポロジ変更を検出すると信頼できるメカニズムを使用して、まずルートブリッジに通知します。

Topology Change Notification(TCN:トポロジ変更通知)
ルートブリッジがネットワークのトポロジ変更を認識すると、送信するBPDU上にTC(Topology Change:トポロジの変化)フラグを設定し、ネットワーク中の全ブリッジにリレーします。TCフラグビットが設定されたBPDUをブリッジが受信すると、ブリッジングテーブルのエージングタイムが転送遅延の秒数に減らされます。この処置により、古くなった情報が比較的迅速に、確実にフラッシュされるようになります。このトポロジ変更メカニズムは、RSTPでは大幅に改造されています。トポロジ変更の検出も、ネットワークを介した伝搬も、ともに進化しています。
max_age+forward_delayは、デフォルトでは20+15=35秒です。
RSTPでは、トポロジ変更が発生するのは、非エッジポートのforwarding状態への移行だけです。RSTPでは、802.1Dとは異なり、接続を失うことはもはやトポロジ変更とはみなされないということです(つまり、ブロッキング状態に移行するポートではTCを生成しないようになっています)。RSTPブリッジでトポロジ変更が検出されると、次のようになります。
- 必要に応じて、すべての非エッジ指定ポートおよびルートポートに対してハロータイムの2倍に等しい値でTC Whileタイマーが開始されます。
- これらのポートすべてに関連したMACアドレスをフラッシュします。
ブリッジが近隣からTCビットが設定されたBPDUを受信すると、次のようになります。
- トポロジ変更を受信したポートを除き、すべてのポート上で学習したMACアドレスがクリアされます。
- TC Whileタイマーを開始し、すべての指定ポートおよびルートポート上でTCを設定したBPDUを送信します(レガシーブリッジに通知が必要な場合を除き、RSTPはもう特定のTCN BPDUを使用しません)。

わずか数秒(ハロータイムの数倍の時間)で、ネットワーク(VLAN)全体でCAMテーブルのエントリはほとんどフラッシュされます。このアプローチでは、一時的にフラッディングが増える可能性がありますが、一方では速やかな接続回復を妨げる陳腐化する可能性のある情報をクリアします。
●RSTP(802.1W)とSTP(802.1D)の互換性
RSTPは、レガシーSTPプロトコルと相互運用が可能です。しかし、レガシーブリッジと双方向で通信すると、802.1Wに備わるファーストコンバージェンスの利点が失われることに注意することは大切です。
各ポートは、対応するセグメント上でプロトコルが動作するよう定義した変数を維持しています。ポートがアップ状態になると、3秒の移行遅延タイマーも開始します。このタイマーが作動している間、ポートと関連した現在のSTPまたはRSTPモードはロックされます。移行遅延の時間が終了すると、ポートは次に受信するBPDUに対応するモードに適応します。ポートがBPDUを受信した結果、動作モードを変更する場合は、移行遅延が再起動されます。この動作により、モード変更の頻度が制限されます。

たとえば、前の図のブリッジAおよびBが両方ともRSTPを実行していて、スイッチAがセグメントに指定されていると仮定します。レガシーSTPブリッジCがこのリンクに導入されます。802.1DブリッジはRSTP BPDUを無視して破棄するので、Cはセグメント上に他にブリッジはないと見なして、不良802.1DフォーマットのBPDUを送信し始めます。スイッチAはこれらのBPDUを受信し、最大ハロータイムの2倍が経過した後、該当ポート上でだけモードを802.1Dに変更します。その結果、CはスイッチAのBPDUを理解できるようになり、セグメントの指定ブリッジとしてAを受け入れます。
この特定のケースでは、ブリッジCが削除されると、ブリッジAは、唯一の隣接ブリッジBとさらに効率の高いRSTPで動作可能であるにもかかわらず、そのポート上でSTPモードを実行します。これは、セグメントからブリッジCが削除されたことをAが認識していないからです。この特定の(まれな)ケースでは、ポートのプロトコル検出を手動で再開するために、ユーザの操作が必要になります。
ポートが802.1D互換モードの場合は、Topology Change Notification(TCN:トポロジ変更通知)BPDU、およびTCまたはTCAビットが設定されたBPDUも処理できます。

●STPの設定(その1)
使用するネットワーク機器は、Catalyst 3750(1台)、CentreCOM 8724SL(2台)で、すべてSTPを動作させます。

すべての機器において、プライオリティ値はデフォルト(32768)にします。
設定情報を確認します。
◆catalyst3750 catalyst3750-2#conf t Enter configuration commands、one per line. End with CNTL/Z. catalyst3750-2(config)#spanning-tree mode pvst catalyst3750-2(config)#^Z catalyst3750-2#show spanning-tree vlan 32 VLAN0032 Spanning tree enabled protocol ieee ← ルートブリッジの情報 Address 0009.4168.d580 Cost 19 Port 7 (FastEthernet1/0/5) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32800 (priority 32768 sys-id-ext 32) ← 自分自身の情報 Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/5 Root FWD 19 128.7 P2p Fa1/0/6 Altn BLK 19 128.8 P2p ◆CentreCOM 8724SL_1 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Standard RSTP Type ............. (n/a) VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 26 Number Disabled ..... 0 Bridge Identifier ..... 32768 : 00-09-41-68-d5-80 Bridge Priority ....... 32768 Designated Root ....... 32768 : 00-09-41-68-d5-80 Root Port ............. (n/a) ← ルートブリッジ Root Path Cost ........ 0 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Hold Time ............. 1 TC .................... False TC Detected ........... False Number of TC .......... 17 Time since last TC .... 7408 --------------------------------------------------------------------------- ◆CentreCOM 8724SL_2 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Standard RSTP Type ............. (n/a) VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 26 Number Disabled ..... 0 Bridge Identifier ..... 32768 : 00-09-41-69-06-c0 Bridge Priority ....... 32768 Designated Root ....... 32768 : 00-09-41-68-d5-80 Root Port ............. 3 ← ルートポートの番号 Root Path Cost ........ 19 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Hold Time ............. 1 TC .................... False TC Detected ........... False Number of TC .......... 27 Time since last TC .... 7593 ---------------------------------------------------------------------------catalyst3750-2の表示を見ると、このスイッチのPriorityは32768ではなくて「32800」になっています。これは、CatalystはデフォルトでPVSTで動作するためです。
PVSTは、VLANごとにスパニング・ツリーを動作させる機能です。PVSTでは、従来16ビットあったプライオリティ値のうちの上位12ビットを「拡張システムID」として、ここにVLAN番号を記述するように再定義しました。そのため、プライオリティ値の32768に、VLAN番号の32が加わっているわけです。

fa1/0/5をshutdown(またはP1をdisable switch port=1)します。
catalyst3750-2#debug spanning-tree events catalyst3750-2#sh log (省略) May 25 13:31:23.085: STP: VLAN0032 new root port Fa1/0/6、cost 38 May 25 13:31:23.085: STP: VLAN0032 Fa1/0/6 -> listening May 25 13:31:23.085: STP[32]: Generating TC trap for port FastEthernet1/0/5 May 25 13:31:24.092: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan32, \ changed state to down May 25 13:31:25.090: %LINK-5-CHANGED: Interface FastEthernet1/0/5, \ changed state to administratively down May 25 13:31:25.090: STP: VLAN0032 sent Topology Change Notice on Fa1/0/6 May 25 13:31:26.096: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0/5, \ changed state to down May 25 13:31:33.386: %SYS-5-CONFIG_I: Configured from console by vty1 (1.0.0.12) May 25 13:31:38.092: STP: VLAN0032 Fa1/0/6 -> learning May 25 13:31:53.100: STP[32]: Generating TC trap for port FastEthernet1/0/6 May 25 13:31:53.100: STP: VLAN0032 Fa1/0/6 -> forwarding May 25 13:31:54.106: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan32, \ changed state to up (省略)ブロッキングポート(Fa1/0/6)が、リスニング→ラーニング→フォワーディングと遷移しているのがわかります。
今度は、fa1/0/5をno shutdown(またはP1をenable switch port=1)してみます。
(省略) May 25 13:33:32.396: set portid: VLAN0032 Fa1/0/5: new port id 8007 May 25 13:33:32.396: STP: VLAN0032 Fa1/0/5 -> listening May 25 13:33:32.664: STP: VLAN0032 new root port Fa1/0/5、cost 19 May 25 13:33:32.664: STP: VLAN0032 sent Topology Change Notice on Fa1/0/5 May 25 13:33:32.664: STP[32]: Generating TC trap for port FastEthernet1/0/6 May 25 13:33:32.664: STP: VLAN0032 Fa1/0/6 -> blocking May 25 13:33:32.773: %LINK-3-UPDOWN: Interface FastEthernet1/0/5、changed state to up May 25 13:33:33.646: %SYS-5-CONFIG_I: Configured from console by vty1 (1.0.0.12) May 25 13:33:33.864: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan32, \ changed state to down May 25 13:33:33.864: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet1/0/5, \ changed state to up (省略) catalyst3750-2#sh spanning-tree vlan 32 VLAN0032 Spanning tree enabled protocol ieee Root ID Priority 32768 Address 0009.4168.d580 Cost 19 Port 7 (FastEthernet1/0/5) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32800 (priority 32768 sys-id-ext 32) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 15 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/5 Root FWD 19 128.7 P2p Fa1/0/6 Altn BLK 19 128.8 P2pすぐに元の状態に戻ります。
●STPの設定(その2)
使用するネットワーク機器、Catalyst 3750(1台)、CentreCOM 8724SL(2台)です。

Catalyst 3750のプライオリティ値を4096に設定します。Catalyst 3750はSTPで動作しています。
設定情報を確認します。
catalyst3750-2#conf t catalyst3750-2(config)#spanning-tree vlan 32 priority 4096 catalyst3750-2(config)#^Z catalyst3750-2#sh spanning-tree vlan 32 VLAN0032 Spanning tree enabled protocol ieee Root ID Priority 4128 Address 0023.0492.2980 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 4128 (priority 4096 sys-id-ext 32) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 15 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/5 Desg FWD 19 128.7 P2p ← Forwarding Fa1/0/6 Desg FWD 19 128.8 P2p ← Forwarding ◆CentreCOM 8724SL_1 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Standard RSTP Type ............. (n/a) VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 26 Number Disabled ..... 0 Bridge Identifier ..... 32768 : 00-09-41-68-d5-80 Bridge Priority ....... 32768 Designated Root ....... 4128 : 00-23-04-92-29-80 Root Port ............. 1 ← ルートポートの番号 Root Path Cost ........ 19 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Hold Time ............. 1 TC .................... False TC Detected ........... False Number of TC .......... 19 Time since last TC .... 1960 --------------------------------------------------------------------------- Manager > show stp port=1,3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8007 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 3 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8003 VLAN membership ..... 1 Send RSTPBPDU...... TRUE --------------------------------------------------------------------------- ◆CentreCOM 8724SL_2 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Standard RSTP Type ............. (n/a) VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 26 Number Disabled ..... 0 Bridge Identifier ..... 32768 : 00-09-41-69-06-c0 Bridge Priority ....... 32768 Designated Root ....... 4128 : 00-23-04-92-29-80 Root Port ............. 1 ← ルートポートの番号 Root Path Cost ........ 19 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Hold Time ............. 1 TC .................... False TC Detected ........... False Number of TC .......... 29 Time since last TC .... 701 --------------------------------------------------------------------------- Manager > show stp port=1,3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 3 State ............... Blocking Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8003 VLAN membership ..... 1 Send RSTPBPDU...... TRUE ---------------------------------------------------------------------------下図のような状態になります。

経路の切り替わりを確認するために「debug spanning-tree events」を実行します。
この状態では、Catalyst 3750のFa1/0/5、Fa1/0/6は両方とも正常にリンクアップします。
では、Catalyst 3750とCentreCOM 8724SL_2の間のLANケーブルを抜いてみます。

Catalyst 3750のログにはポートのDOWNしか記録されません。
CentreCOM 8724SL_2のポートの状態を確認します。
Manager > show stp port=1,3
STP Port Information
---------------------------------------------------------------------------
STP ..................... default
STP Status ............ ON
Port .................. 1
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8001
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 38
Designated Bridge ... 32768 : 00-09-41-69-06-c0
Designated Port ..... 8001
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
Port .................. 3
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8003
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 19
Designated Bridge ... 32768 : 00-09-41-68-d5-80
Designated Port ..... 8003
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
---------------------------------------------------------------------------
ポート3がBlocking → Forwardingに変化しているのが分かります。
●STPの設定(その3)
STPの設定(その3)の状態にL2SWを1台接続します。

CentreCOM 8724SL_1、CentreCOM 8724SL_2の状態を確認します。
◆CentreCOM 8724SL_1 Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8007 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 2 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8002 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 3 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8003 VLAN membership ..... 1 Send RSTPBPDU...... TRUE --------------------------------------------------------------------------- ◆CentreCOM 8724SL_2 Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 2 State ............... Blocking Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8002 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 3 State ............... Blocking Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8003 VLAN membership ..... 1 Send RSTPBPDU...... TRUE ---------------------------------------------------------------------------CentreCOM 8724SL_2のポート2がBlockingされていることが分かります。

では、CentreCOM 8724SL_1とL2SWとの間のLANケーブルを抜いてみます。

CentreCOM 8724SL_1の状態を確認してみます。
◆CentreCOM 8724SL_1
Manager > show stp port=1-3
STP Port Information
---------------------------------------------------------------------------
STP ..................... default
STP Status ............ ON
Port .................. 1
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8001
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 0
Designated Bridge ... 4128 : 00-23-04-92-29-80
Designated Port ..... 8008
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
Port .................. 2
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8002
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 19
Designated Bridge ... 32768 : 00-09-41-69-06-c0
Designated Port ..... 8002
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
Port .................. 3
State ............... Blocking
Port Priority ....... 128
Port Identifier ..... 8003
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 19
Designated Bridge ... 32768 : 00-09-41-68-d5-80
Designated Port ..... 8003
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
---------------------------------------------------------------------------
ポート2がBlocking → Forwardingに変わっているのが分かります。
他のスイッチのポートの状態は変化しません。

では、元の状態に戻します。
次は、Catalyst 3750とCentreCOM 8724SL_1との間のLANケーブルを抜いてみます。

CentreCOM 8724SL_2の状態を確認します。
◆CentreCOM 8724SL_2 Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 2 State ............... Listening Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 3 State ............... Listening Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 VLAN membership ..... 1 Send RSTPBPDU...... TRUE --------------------------------------------------------------------------- Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 2 State ............... Learning Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 3 State ............... Learning Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 VLAN membership ..... 1 Send RSTPBPDU...... TRUE --------------------------------------------------------------------------- Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 2 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 VLAN membership ..... 1 Send RSTPBPDU...... TRUE Port .................. 3 State ............... Forwarding Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 19 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 19 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 VLAN membership ..... 1 Send RSTPBPDU...... TRUE ---------------------------------------------------------------------------CentreCOM 8724SL_2ではポート2、3ともにBlocking → Listening → Learning → Forwardingと変化しています。
では、CentreCOM 8724SL_1の状態を確認します。
◆CentreCOM 8724SL_1
Manager > show stp port=1-3
STP Port Information
---------------------------------------------------------------------------
STP ..................... default
STP Status ............ ON
Port .................. 1
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8001
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 38
Designated Bridge ... 32768 : 00-09-41-68-d5-80
Designated Port ..... 8001
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
Port .................. 2
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8002
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 19
Designated Bridge ... 32768 : 00-09-41-69-06-c0
Designated Port ..... 8002
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
Port .................. 3
State ............... Blocking
Port Priority ....... 128
Port Identifier ..... 8003
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 19
Designated Bridge ... 32768 : 00-09-41-69-06-c0
Designated Port ..... 8003
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
---------------------------------------------------------------------------
CentreCOM 8724SL_1ではポート3がBlockingに変化しています。

上記の状態からCentreCOM 8724SL_2とL2SWとの間のLANケーブルを抜いていみます。

CentreCOM 8724SL_1の状態を確認してみます。
◆CentreCOM 8724SL_1
Manager > show stp port=1-3
STP Port Information
---------------------------------------------------------------------------
STP ..................... default
STP Status ............ ON
Port .................. 1
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8001
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 38
Designated Bridge ... 32768 : 00-09-41-68-d5-80
Designated Port ..... 8001
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
Port .................. 2
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8002
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 38
Designated Bridge ... 32768 : 00-09-41-68-d5-80
Designated Port ..... 8002
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
Port .................. 3
State ............... Forwarding
Port Priority ....... 128
Port Identifier ..... 8003
Pathcost ............ 19 (auto configured)
Designated Root ..... 4128 : 00-23-04-92-29-80
Designated Cost ..... 19
Designated Bridge ... 32768 : 00-09-41-69-06-c0
Designated Port ..... 8003
VLAN membership ..... 1
Send RSTPBPDU...... TRUE
---------------------------------------------------------------------------
CentreCOM 8724SL_1のポート3がBlocking → Forwardingに変化しているのが分かります。

●RSTPのポート状態
参照
Rapid Spanning Tree Protocol(802.1W)の概要
STPでは、BLOCKING、LISTENING、LEARNING、FORWARDINGという4つのポートが定義されています。
しかし、実際の動作はBLOCKINGとLISTENINGではどちらもフレームを廃棄し、MAC アドレスを学習することはありません。BLOCKINGとLISTENINGの違いはBPDUの送信が出来るかどうかです。
このような無駄を省く意味でもRSTPでは、BLOCKING、LISTENINGそしてDISABLEDの状態をまとめて、DISCARDING状態としています。
STP(802.1D)のポートの状態 | RSTP(802.1W)のポートの状態 | ポートはアクティブなトポロジに含まれるか | MACアドレスの学習 |
---|---|---|---|
DISABLED | DISCARDING | いいえ |
いいえ |
BLOCKING | DISCARDING | いいえ |
いいえ |
LISTENING | DISCARDING | はい |
いいえ |
LEARNING | LEARNING | はい |
はい |
FORWARDING | FORWARDING | はい |
はい |
●RSTPポートの役割
RSTPのポートには、ルートポート、指定ポート、バックアップポート、代替ポートの4つの役割があります。
STPのポートには、ルートポート、指定ポート、ブロッキングポートの3つの役割があったので、STPに比べて1つ増えたことになります。STPのブロッキングポートが、バックアップポートと代替ポートに分割されました。
これらのポートの役割は、スイッチのポートから送信されるBPDU(Bridge Protocol Data Unit)によって決定されます。2つのスイッチが相互接続された時、お互いのBPDUを受け取りあって、その値を比較して各スイッチが、ルートポート、指定ポート、バックアップポート、代替ポートなのかを決めていくことになります。
●ルートポートの役割
ブリッジ上で最良のBPDUを受け取るポートがルートポートになります。つまり、パスコストの点からルートブリッジに最も近いポートです。STAは、ブリッジネットワーク全体から(VLANごとに)単一のルートブリッジを選択します。ルートブリッジが送信するBPDUは、他のブリッジが送信するものより有用です。ネットワーク中で、ルートポートを持たないブリッジはルートブリッジだけです。他のブリッジはすべて、少なくとも1つのポートからBPDUを受信します。

●指定ポートの役割
接続されたセグメントに最高のBPDUを送信できるポートは、指定ポートになります。802.1Dのブリッジでは、別々のセグメント(イーサネットセグメントなど)をリンクすることで、ブリッジドメインが作成されます。いずれのセグメント上でも、ルートブリッジに向かうパスは1つしか置けません。2つある場合は、ネットワークにブリッジループができています。任意のセグメントに接続しているブリッジはすべて相互にBPDUをリスニングし、最良のBPDUを送信しているブリッジをそのセグメントの指定ブリッジとして認識します。そのブリッジ上にある対応するポートが指定ポートです。

●代替ポートとバックアップポートの役割
この2つのポートの役割は、802.1Dのblocking状態に対応します。ブロッキングポートとは、指定ポートでもルートポートでもないと定義されます。ブロッキングポートは、セグメント上で、そのポートから送信されるBPDUよりも有用なBPDUを受信しています。ポートがブロックされた状態を維持するには、BPDUの受信が必須であることに注意してください。RSTPは、それを目的としてこの2つの役割を導入しました。
代替ポートとは、他のブリッジよりも有用なBPDUを受信していて、さらに、ブロックされているポートです。次の図に例を示します。

バックアップポートとは、自ブリッジからさらに有用度の高いBPDUを受信していて、さらに、ブロックされているポートです。次の図に例を示します。

802.1Dでは内部的にすでにこの区別はされていました。基本的に、それがシスコのUplinkFast機能の仕組みです。代替ポートはルートブリッジに代替パスを提供することにより、ルートポートに障害が発生した場合、代替できるという論理です。バックアップポートは同じセグメントに冗長接続を提供するので、ルートブリッジへの代替接続は保証できません。そのため、アップリンクグループからは除外されています。
その結果、RSTPは、802.1Dと同じ基準でスパニングツリーの最終トポロジを計算します。別なブリッジやポートの優先順位が使用される方法にはいっさい変更がありません。シスコのインプリメンテーションでは、discarding状態を表すためにblockingという名称を使用しています。CatOSリリース7.1以降では、listening状態とlearning状態が引き続き表示されます。そのため、ポートに関して、IEEE標準で義務付けられている以上の情報が得られるようになっています。しかし、新しい機能では、プロトコルがポートに割り当てた役割と現在の状態は別なものになっています。たとえば、ポートが指定ポートでありながら、同時にblocking状態になることが今では完全に有効です。通常このようなことが起きるのはごく短時間の間で、このポートが指定forwarding状態に移行段階にあることを意味していることになります。
●RSTPの設定(その1)
使用するネットワーク機器、Catalyst 3750(1台)、CentreCOM 8724SL(2台)です。
すべての機器において、プライオリティ値はデフォルト(32768)で使用します。Catalyst 3750はRSTPで動作しています。

設定情報を確認します。
●Catalyst 3750 catalyst3750-2#sh spanning-tree vlan 32 VLAN0032 Spanning tree enabled protocol rstp ← RSTP有効 Root ID Priority 32768 ← ルートブリッジの情報 Address 0009.4168.d580 Cost 19 Port 7 (FastEthernet1/0/5) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32800 (priority 32768 sys-id-ext 32) ← 自分自身の情報 Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/5 Root FWD 19 128.7 P2p Peer(STP) ← Forwarding Fa1/0/6 Altn BLK 19 128.8 P2p Peer(STP) ← Blocking ◆CentreCOM 8724SL_1 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Standard ← STP有効 RSTP Type ............. (n/a) VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 26 Number Disabled ..... 0 Bridge Identifier ..... 32768 : 00-09-41-68-d5-80 Bridge Priority ....... 32768 Designated Root ....... 32768 : 00-09-41-68-d5-80 Root Port ............. (n/a) ← ルートブリッジであること示す Root Path Cost ........ 0 ← ルートブリッジまでのパスコスト Max Age ............... 20 ← 最大エージタイム(秒) Hello Time ............ 2 ← ハロータイム(秒) Forward Delay ......... 15 ← フォワードディレイタイム(秒) Switch Max Age ........ 20 ↑ 本機の最大エージタイム設定値。ルートブリッジになったときにこの値が使用される Switch Hello Time ..... 2 ↑ 本機のハロータイム設定値。ルートブリッジになったときにこの値が使用される Switch Forward Delay .. 15 ↑ 本機のフォワードディレイタイム設定値。ルートブリッジになったときにこの値が使用される Hold Time ............. 1 ↑ ルートブリッジがConfigurationBPDUを送信するときの最小送信間隔(秒)。 この値は標準規格で規定されており、1秒固定に設定されている。 Standardモードのときだけ表示される。 TC .................... False TC Detected ........... False Number of TC .......... 1 Time since last TC .... 136332 --------------------------------------------------------------------------- Manager > show stp summary STP Name Mode Ports Enabled Ports Disabled Bridge Role --------------------------------------------------------------------------- default Standard 26 0 Root Bridge --------------------------------------------------------------------------- *補足 STP Name:STPドメイン名 Mode:STPの動作モード。Standard(802.1D)かRapid(802.1W) Ports Enabled:イネーブル状態のポート数 Ports Disabled:ディセーブル状態のポート数 Bridge Role:STPドメインにおける役割。None、Designated、Rootのいずれか ◆CentreCOM 8724SL_2 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Standard ← STP有効 RSTP Type ............. (n/a) VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 26 Number Disabled ..... 0 Bridge Identifier ..... 32768 : 00-09-41-69-06-c0 Bridge Priority ....... 32768 Designated Root ....... 32768 : 00-09-41-68-d5-80 Root Port ............. 3 ← ルートポートの番号 Root Path Cost ........ 19 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Hold Time ............. 1 TC .................... False TC Detected ........... False Number of TC .......... 4 Time since last TC .... 136850 --------------------------------------------------------------------------- Manager > show stp summary STP Name Mode Ports Enabled Ports Disabled Bridge Role --------------------------------------------------------------------------- default Standard 26 0 Desig Bridge ---------------------------------------------------------------------------catalyst3750-2の表示を見ると、このスイッチのPriorityは32768ではなくて「32800」になっています。これは、CatalystはデフォルトでPVSTで動作するためです。
PVSTは、VLANごとにスパニング・ツリーを動作させる機能です。PVSTでは、従来16ビットあったプライオリティ値のうちの上位12ビットを「拡張システムID」として、ここにVLAN番号を記述するように再定義しました。そのため、プライオリティ値の32768に、VLAN番号の32が加わっているわけです。

CentreCOMの表示内容の詳細についてはSHOW STPを参照してください。
見てのとおりプライオリティ値はすべて「32768」です。
ブリッジIDは、「プライオリティ」と「MACアドレス」の二つの値によって成り立っています。プライオリティはどれも「32768」です。
したがって、MACアドレスが最小の機器(CentreCOM 8724SL_2)がルートブリッジになります。

経路の切り替わりを確認するために「debug spanning-tree events」を実行します。
では、Catalyst 3750とCentreCOM 8724SL_1の間のLANケーブルを抜いてみます。

catalyst3750-2#show log
(省略)
May 25 02:28:12.992: RSTP(32): updt roles、root port Fa1/0/5 going down
May 25 02:28:12.992: RSTP(32): Fa1/0/6 is now root port
May 25 02:28:12.992: STP[32]: Generating TC trap for port FastEthernet1/0/6
May 25 02:28:13.177: RSTP(32): Fa1/0/6 received a tc ack
May 25 02:28:13.999: %LINEPROTO-5-UPDOWN: Line protocol
\ on Interface FastEthernet1/0/5、changed state to down
(省略)
catalyst3750-2#no debug spanning-tree events
catalyst3750-2#sh spanning-tree vlan 32
VLAN0032
Spanning tree enabled protocol rstp
Root ID Priority 32768
Address 0009.4168.d580
Cost 38
Port 8 (FastEthernet1/0/6)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32800 (priority 32768 sys-id-ext 32)
Address 0023.0492.2980
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa1/0/6 Root FWD 19 128.8 P2p Peer(STP)
Fa1/0/6がフォワーディングに変わっているのが分かります。
元の状態に戻します。
今度は、CentreCOM 8724SL_1とCentreCOM 8724SL_2の間のLANケーブルを抜いてみます。

catalyst3750-2#debug spanning-tree events
catalyst3750-2#show log
(省略)
May 25 02:54:00.251: RSTP(32): Fa1/0/6 rcvd info expired
May 25 02:54:00.251: RSTP(32): Fa1/0/6 is now designated
May 25 02:54:00.260: RSTP(32): updt roles、received superiorBPDUon Fa1/0/6
May 25 02:54:00.260: RSTP(32): Fa1/0/6 is now alternate
May 25 02:54:06.266: RSTP(32): Fa1/0/6 rcvd info expired
May 25 02:54:06.266: RSTP(32): Fa1/0/6 is now designated
May 25 02:54:06.274: RSTP(32): updt roles、received superiorBPDUon Fa1/0/6
May 25 02:54:06.274: RSTP(32): Fa1/0/6 is now alternate
May 25 02:54:12.281: RSTP(32): Fa1/0/6 rcvd info expired
May 25 02:54:12.281: RSTP(32): Fa1/0/6 is now designated
May 25 02:54:12.289: RSTP(32): updt roles、received superiorBPDUon Fa1/0/6
May 25 02:54:12.289: RSTP(32): Fa1/0/6 is now alternate
May 25 02:54:13.296: RSTP(32): Fa1/0/6 rcvd info expired
May 25 02:54:13.296: RSTP(32): Fa1/0/6 is now designated
May 25 02:54:13.304: RSTP(32): updt roles、received superiorBPDUon Fa1/0/6
May 25 02:54:13.304: RSTP(32): Fa1/0/6 is now alternate
May 25 02:54:14.286: RSTP(32): updt roles、received superiorBPDUon Fa1/0/6
May 25 02:54:14.286: RSTP(32): Fa1/0/6 is now designated
May 25 02:54:15.242: RSTP(32): Fa1/0/5 received a tc ack
May 25 02:54:29.293: RSTP(32): Fa1/0/6 fdwhile Expired
May 25 02:54:44.300: RSTP(32): Fa1/0/6 fdwhile Expired
May 25 02:54:44.300: STP[32]: Generating TC trap for port FastEthernet1/0/6
May 25 02:54:45.240: RSTP(32): Fa1/0/5 received a tc ack
(省略)
catalyst3750-2#sh spanning-tree vlan 32
VLAN0032
Spanning tree enabled protocol rstp
Root ID Priority 32768
Address 0009.4168.d580
Cost 19
Port 7 (FastEthernet1/0/5)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32800 (priority 32768 sys-id-ext 32)
Address 0023.0492.2980
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa1/0/5 Root FWD 19 128.7 P2p Peer(STP)
Fa1/0/6 Desg FWD 19 128.8 P2p Peer(STP)
Fa1/0/6の状態がブロッキングポートから代表ポートに変わっているのが分かります。
抜いたLANケーブルを接続し直します。
catalyst3750-2#debug spanning-tree events catalyst3750-2#show log (省略) May 25 03:11:36.255: RSTP(32): updt roles、received superiorBPDUon Fa1/0/6 May 25 03:11:36.255: RSTP(32): Fa1/0/6 is now alternate (省略) catalyst3750-2#sh spanning-tree vlan 32 VLAN0032 Spanning tree enabled protocol rstp Root ID Priority 32768 Address 0009.4168.d580 Cost 19 Port 7 (FastEthernet1/0/5) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32800 (priority 32768 sys-id-ext 32) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/5 Root FWD 19 128.7 P2p Peer(STP) Fa1/0/6 Altn BLK 19 128.8 P2p Peer(STP)あっという間に、Fa1/0/6がブロッキングポートとなります。
●RSTPの設定(その2)
Catalyst 3750(RSTP、Priority=4096)、CentreCOM 8724SL(RSTP、Priority=32768)、L2SWで構成します。

Catalyst 3750、CentreCOM 8724SL_1、CentreCOM 8724SL_2の状態を確認します。
catalyst3750-2#conf t catalyst3750-2(config)#spanning-tree mode rapid-pvst catalyst3750-2(config)#spanning-tree vlan 32 priority 4096 catalyst3750-2(config)#^Z catalyst3750-2#sh spanning-tree vlan 32 VLAN0032 Spanning tree enabled protocol rstp Root ID Priority 4128 Address 0023.0492.2980 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 4128 (priority 4096 sys-id-ext 32) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/5 Desg FWD 19 128.7 P2p Fa1/0/6 Desg FWD 19 128.8 P2p ◆CentreCOM 8724SL_1 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Rapid RSTP Type ............. Normal VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 3 Number Disabled ..... 23 Bridge Identifier ..... 32768 : 00-09-41-68-d5-80 Bridge Priority ....... 32768 Root Bridge ........... 4128 : 00-23-04-92-29-80 Designated Bridge ..... 4128 : 00-23-04-92-29-80 Root Port ............. 1 Root Path Cost ........ 200000 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Transmission Limit .... 3 Number of TC .......... 1 Time since last TC .... 37564 --------------------------------------------------------------------------- Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8007 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Designated State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Designated State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 --------------------------------------------------------------------------- ◆CentreCOM 8724SL_2 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Rapid RSTP Type ............. Normal VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 3 Number Disabled ..... 23 Bridge Identifier ..... 32768 : 00-09-41-69-06-c0 Bridge Priority ....... 32768 Root Bridge ........... 4128 : 00-23-04-92-29-80 Designated Bridge ..... 4128 : 00-23-04-92-29-80 Root Port ............. 1 Root Path Cost ........ 200000 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Transmission Limit .... 3 Number of TC .......... 1 Time since last TC .... 37617 --------------------------------------------------------------------------- Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Alternate State ............... Discarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Alternate State ............... Discarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 ---------------------------------------------------------------------------catalyst3750-2の表示を見ると、このスイッチのPriorityは4096ではなくて「4128」になっています。これは、CatalystはデフォルトでPVSTで動作するためです。
PVSTは、VLANごとにスパニング・ツリーを動作させる機能です。PVSTでは、従来16ビットあったプライオリティ値のうちの上位12ビットを「拡張システムID」として、ここにVLAN番号を記述するように再定義しました。そのため、プライオリティ値の4096に、VLAN番号の32が加わっているわけです。


Catalyst 3750_2とCentreCOM 8724SL_1との間のLANケーブルを抜いてみます・

Catalyst 3750_2、CentreCOM 8724SL_1、CentreCOM 8724SL_2の状態を確認します。
catalyst3750-2#sh spanning-tree vlan 32 VLAN0032 Spanning tree enabled protocol rstp Root ID Priority 4128 Address 0023.0492.2980 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 4128 (priority 4096 sys-id-ext 32) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/6 Desg FWD 19 128.8 P2p ◆CentreCOM 8724SL_1 Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Disabled State ............... Discarding Point To Point ...... No (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8001 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Alternate State ............... Discarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 --------------------------------------------------------------------------- ◆CentreCOM 8724SL_2 Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Designated State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Designated State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 ---------------------------------------------------------------------------状態は下図のように変化します。

上図の状態からCentreCOM 8724SL_1とCentreCOM 8724SL_2との間のLANケーブルを抜いてみます。

catalyst3750-2には変化はありません。
◆CentreCOM 8724SL_1 Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Disabled State ............... Discarding Point To Point ...... No (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8001 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Disabled State ............... Discarding Point To Point ...... No (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 400000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 --------------------------------------------------------------------------- ◆CentreCOM 8724SL_2 Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Designated State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Disabled State ............... Discarding Point To Point ...... No (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 ---------------------------------------------------------------------------CentreCOM 8724SL_1とCentreCOM 8724SL_2のポート3が両方とも「Disabled」に変化したのが分かります。

では、CentreCOM 8724SL_1とCentreCOM 8724SL_2との間のLANケーブルを元の状態(接続)に戻します。

上図の状態からCentreCOM 8724SL_2とL2SWとの間のLANケーブルを抜いてみます。

CentreCOM 8724SL_1とCentreCOM 8724SL_2の状態を確認します。
◆CentreCOM 8724SL_1 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Rapid RSTP Type ............. Normal VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 2 Number Disabled ..... 24 Bridge Identifier ..... 32768 : 00-09-41-68-d5-80 Bridge Priority ....... 32768 Root Bridge ........... 4128 : 00-23-04-92-29-80 Designated Bridge ..... 32768 : 00-09-41-69-06-c0 Root Port ............. 3 Root Path Cost ........ 400000 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Transmission Limit .... 3 Number of TC .......... 9 Time since last TC .... 127 --------------------------------------------------------------------------- Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Disabled State ............... Discarding Point To Point ...... No (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8001 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Designated State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 400000 Designated Bridge ... 32768 : 00-09-41-68-d5-80 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 --------------------------------------------------------------------------- ◆CentreCOM 8724SL_2 Manager > show stp STP Information --------------------------------------------------------------------------- Name .................. default Mode .................. Rapid RSTP Type ............. Normal VLAN members .......... default (1) vlan2 (2) vlan3 (3) Status ................ ON Number of Ports ....... 26 Number Enabled ...... 2 Number Disabled ..... 24 Bridge Identifier ..... 32768 : 00-09-41-69-06-c0 Bridge Priority ....... 32768 Root Bridge ........... 4128 : 00-23-04-92-29-80 Designated Bridge ..... 4128 : 00-23-04-92-29-80 Root Port ............. 1 Root Path Cost ........ 200000 Max Age ............... 20 Hello Time ............ 2 Forward Delay ......... 15 Switch Max Age ........ 20 Switch Hello Time ..... 2 Switch Forward Delay .. 15 Transmission Limit .... 3 Number of TC .......... 5 Time since last TC .... 146 --------------------------------------------------------------------------- Manager > show stp port=1-3 STP Port Information --------------------------------------------------------------------------- STP ..................... default STP Status ............ ON Port .................. 1 RSTP Port Role ...... Root State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8001 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 0 Designated Bridge ... 4128 : 00-23-04-92-29-80 Designated Port ..... 8008 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 2 RSTP Port Role ...... Disabled State ............... Discarding Point To Point ...... No (Auto) Port Priority ....... 128 Port Identifier ..... 8002 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8002 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 Port .................. 3 RSTP Port Role ...... Designated State ............... Forwarding Point To Point ...... Yes (Auto) Port Priority ....... 128 Port Identifier ..... 8003 Pathcost ............ 200000 (auto configured) Designated Root ..... 4128 : 00-23-04-92-29-80 Designated Cost ..... 200000 Designated Bridge ... 32768 : 00-09-41-69-06-c0 Designated Port ..... 8003 EdgePort ............ No VLAN membership ..... 1 Send RSTPBPDU...... TRUE Counters: Loopback Disabled 0 ---------------------------------------------------------------------------pingが通るようになるまでに(3回テストして3回とも)30秒かかりました。元の状態に戻した場合は、瞬断は発生しているように見えませんでした。
CentreCOM 8724SL 2台を利用したこの構成では間接リンク障害を瞬時に回復させる手段はありません。
機会があれば、CentreCOM 8724SL 2台をCisco機器に置き換えてBackbonefastにより収束時間が短くなるか確認してみたいと思います。

●RSTPの設定(その3)
Catalyst 3750(RSTP、Priority=4096)、CentreCOM 8724SL(RSTP、Priority=32768)、CentreCOM 908M(L2SW)で構成します。

工場出荷状態で8724SL_1と8724SL_2に接続したところ、下記のようにフラッピングが発生しました。
catalyst3750-2#sh log (省略) .Jun 3 16:26:18.004: %SW_MATM-4-MACFLAP_NOTIF: Host 0009.4169.06c0 / in vlan 32 is flapping between port Fa1/0/6 and port Fa1/0/5 .Jun 3 16:26:33.120: %SW_MATM-4-MACFLAP_NOTIF: Host 0009.4169.06c0 / in vlan 32 is flapping between port Fa1/0/6 and port Fa1/0/5 .Jun 3 16:26:42.818: %SW_MATM-4-MACFLAP_NOTIF: Host 0009.4168.d580 / in vlan 32 is flapping between port Fa1/0/6 and port Fa1/0/5 .Jun 3 16:26:48.186: %SW_MATM-4-MACFLAP_NOTIF: Host 0009.4169.06c0 / in vlan 32 is flapping between port Fa1/0/5 and port Fa1/0/6 .Jun 3 16:26:48.186: %SW_MATM-4-MACFLAP_NOTIF: Host 0009.4168.d580 / in vlan 32 is flapping between port Fa1/0/5 and port Fa1/0/6 .Jun 3 16:27:03.311: %SW_MATM-4-MACFLAP_NOTIF: Host 0009.4169.06c0 / in vlan 32 is flapping between port Fa1/0/5 and port Fa1/0/6 .Jun 3 16:27:03.311: %SW_MATM-4-MACFLAP_NOTIF: Host 0009.4168.d580 / in vlan 32 is flapping between port Fa1/0/6 and port Fa1/0/5 (省略)このメッセージは、元のポート以外のポートのContent-Addressable Memory(CAM)テーブルにすでに存在するMACアドレスが、Catalyst 3750スイッチで学習されたことを示しています。このような動作が短期間に繰り返し発生する場合は、ポート間のアドレスフラッピングが発生していることを意味します。
このメッセージが複数のMACアドレスに対して表示される場合は、正常な動作ではありません。MACアドレスはデフォルトのエージング時間に達する前に1つのポートから別のポートへすばやく移動するので、この動作はネットワークに問題が発生している可能性があることを示します。この問題が発生すると、ネットワーク上でトラフィックがループする可能性があります。一般的な症状には、次のものが含まれます。
- CPU使用率が高い
- ネットワーク全体のトラフィック速度が低下する
- スイッチのバックプレーン使用率が高い
上位のスイッチ(CentreCOM 8724SL_1及び8724SL_2)はRSTPが動作しています。つまり、BPDUが送信されています。
単なるL2SWではBPDUが通過していたためフラッピングは発生しませんでしたが、今回接続したL2SWはデフォルト状態で「BPDUを破棄する」状態のため、上記のような問題が発生しました。
Manager > show switch Switch Configuration ----------------------------------------------- Switch Address ............ **-**-**-**-**-** Ageingtimer ............... On Number of Fixed Ports ..... 8 Mirroring ................. Disabled Mirror port ............... None Ports mirroring on Rx ..... None Ports mirroring on Tx ..... None Ports mirroring on Both ... None BPDU Forwarding ........... Disabled EAP Forwarding ............ Disabled Powersaving ............... Disabled Ageingtime ................ 300 UpTime .................... 00:34:57 -----------------------------------------------この問題を解決させるため下記コマンドを実行しました。
Manager > enable switch bpduforwarding
●RSTPの設定(その4)
Catalyst 3750のFE1/0/11、12はVLAN 35に属します。したがって、まずCatalyst 2940の全ポートをVLAN 35に属させます。
Catalyst 3750(RSTP、Priority=4096)、Catalyst 2940(RSTP、Priority=32768)で構成します。

catalyst3750-2、catalyst2940-1の状態を確認します。
catalyst3750-2#sh spanning-tree vlan 35 VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 4131 (priority 4096 sys-id-ext 35) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/11 Desg FWD 19 128.13 P2p Fa1/0/12 Desg FWD 19 128.14 P2p catalyst2940-1#sh spanning-tree vlan 35 VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/2 Altn BLK 19 128.2 P2p以下のようになります。

catalyst2940-1のポート3にPCを接続します。

catalyst2940-1の状態を確認します。
catalyst2940-1#sh spanning-tree vlan 35 VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/2 Altn BLK 19 128.2 P2p Fa0/3 Desg FWD 19 128.3 P2pPCが接続されたポートが指定ポートとして選出されています。

事前準備として、デバッグモードにしてスパニングツリーの状態をログに出力させます。
catalyst2940-1#debug spanning-tree events Spanning Tree event debugging is onでは、ポート1を抜いてみましょう。

デバッグモードを停止させます。
catalyst2940-1#no debug spanning-tree events Spanning Tree event debugging is offcatalyst2940-1の状態を確認します。
catalyst2940-1#sh spanning-tree vlan 35 VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 2 (FastEthernet0/2) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/2 Root FWD 19 128.2 P2p Fa0/3 Desg FWD 19 128.3 P2p下図のように変化しています。

ログを確認します。
catalyst2940-1#sh log (省略) Jun 10 20:37:42.739: RSTP(35): updt roles, root port Fa0/1 is going down ↑ ルートポートがダウン Jun 10 20:37:42.739: RSTP(35): Fa0/2 is now root port ↑ Fa0/2がルートポートに Jun 10 20:37:42.739: RSTP(35): syncing port Fa0/3 ↑ Fa0/3をブロッキング Jun 10 20:37:42.759: RSTP(35): transmitting a proposal on Fa0/3 ↑ 指定ポートにプロポーザルを送信 Jun 10 20:37:42.827: RSTP(35): transmitting a proposal on Fa0/3 ↑ 指定ポートにプロポーザルを送信 Jun 10 20:37:43.739: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/1, changed state to down Jun 10 20:37:44.743: %LINK-3-UPDOWN: Interface FastEthernet0/1, \ changed state to down Jun 10 20:37:44.827: RSTP(35): transmitting a proposal on Fa0/3 ↑ 指定ポートにプロポーザルを送信 (アグリーメントを受信するか、タイムアウトまで繰り返す) Jun 10 20:37:46.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:37:48.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:37:50.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:37:52.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:37:54.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:37:56.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:37:57.743: RSTP(35): Fa0/3 fdwhile Expired Jun 10 20:37:58.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:38:00.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:38:02.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:38:04.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:38:06.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:38:08.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:38:10.827: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 20:38:12.743: RSTP(35): Fa0/3 fdwhile Expired ↑ ※ ルートポート以外の全てのポートがブロッキングになるか、 エッジポートなら、ループが発生しないので、アグリーメント送信後、 ルートポートは、フォワーディング ステートに移行します。 (省略)ログを見るとわかるように、RSTPなのに収束に30秒かかっています。
では、ポート1に接続し直します。ログを確認します。
catalyst2940-1#sh log (省略) Jun 10 22:11:02.087: %LINK-3-UPDOWN: Interface FastEthernet0/1, \ changed state to up Jun 10 22:11:03.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:03.087: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/1, changed state to up Jun 10 22:11:05.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:07.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:09.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:11.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:13.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:15.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:16.403: RSTP(35): Fa0/3 fdwhile Expired Jun 10 22:11:17.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:19.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:21.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:23.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:25.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:27.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:29.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:31.027: RSTP(35): transmitting a proposal on Fa0/3 Jun 10 22:11:31.403: RSTP(35): Fa0/3 fdwhile Expired (省略)やはり、こちらも戻るのに30秒かかっています。
catalyst2940-1のポート3でportfastを設定します。
catalyst2940-1#conf t catalyst2940-1(config)#interface fa0/3 catalyst2940-1(config-if)#spanning-tree portfast %Warning: portfast should only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc... to this interface when portfast is enabled, can cause temporary bridging loops. Use with CAUTION %Portfast has been configured on FastEthernet0/3 but will only have effect when the interface is in a non-trunking mode. catalyst2940-1(config-if)#^Z警告メッセージが表示されます。
内容は、「PortFastは、1台のホストがつながるポートで使用しなければならない。このインターフェースにハブや他のスイッチ・ブリッジ等が接続されている場合、ループを起こす可能性があります。注意して使用してください。」というものです。
このメッセージのとおりPortFastの設定は、ポートの配下でループが発生しないと保証されているポート、つまりパソコンしか接続されないポートで使う機能ということになります。
デバッグモードにして、LANケーブルの抜き・差しをしてみます。
catalyst2940-1#sh log (省略) Jun 11 19:58:37.325: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/3, changed state to down Jun 11 19:58:38.329: RSTP(35): initializing port Fa0/3 Jun 11 19:58:38.333: RSTP(35): Fa0/3 is now designated Jun 11 19:58:39.337: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/3, changed state to up (省略)ステータスがすぐに「up」になっているのが分かります。
スパニングツリーの状態を確認します。
catalyst2940-1#sh spanning-tree
VLAN0035
Spanning tree enabled protocol rstp
Root ID Priority 4131
Address 0023.0492.2980
Cost 19
Port 1 (FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32803 (priority 32768 sys-id-ext 35)
Address 0013.6063.7200
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 19 128.1 P2p
Fa0/2 Altn BLK 19 128.2 P2p
Fa0/3 Desg FWD 19 128.3 Edge P2p
この状態でポート1を抜いて、収束時間がどれくらいかかるか確認してみましょう。
catalyst2940-1#sh log (省略) Jun 12 00:10:03.216: RSTP(35): updt roles, root port Fa0/1 is going down Jun 12 00:10:03.216: RSTP(35): Fa0/2 is now root port Jun 12 00:10:04.216: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/1, changed state to down Jun 12 00:10:05.220: %LINK-3-UPDOWN: Interface FastEthernet0/1, \ changed state to down (省略)ログでも確認できるように、瞬時に切り替わっています。この時のcatalyst2940-1の状態は以下のとおりです。
catalyst2940-1#sh spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 2 (FastEthernet0/2) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/2 Root FWD 19 128.2 P2p Fa0/3 Desg FWD 19 128.3 Edge P2p元にもどしてみます。
catalyst2940-1#sh log (省略) Jun 12 00:41:02.262: RSTP(35): initializing port Fa0/1 Jun 12 00:41:02.266: RSTP(35): Fa0/1 is now designated Jun 12 00:41:02.270: RSTP(35): transmitting a proposal on Fa0/1 Jun 12 00:41:02.874: RSTP(35): transmitting a proposal on Fa0/1 Jun 12 00:41:03.478: RSTP(35): updt roles, superior bpdu on Fa0/1 (synced=0) Jun 12 00:41:03.478: RSTP(35): Fa0/1 is now root port Jun 12 00:41:03.478: RSTP(35): Fa0/2 blocked by re-root Jun 12 00:41:03.478: RSTP(35): Fa0/2 not in sync Jun 12 00:41:03.478: RSTP(35): Fa0/2 is now alternate Jun 12 00:41:03.482: RSTP(35): synced Fa0/1 Jun 12 00:41:03.486: RSTP(35): synced Fa0/1 Jun 12 00:41:03.486: RSTP(35): synced Fa0/1 Jun 12 00:41:03.494: RSTP(35): transmitting an agreement \ on Fa0/1 as a response to a proposal Jun 12 00:41:04.258: %LINK-3-UPDOWN: Interface FastEthernet0/1, \ changed state to up Jun 12 00:41:05.258: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/1, changed state to up (省略)やはり、瞬時に切り替わっています。おもしろいのは、ポート1のリンクがアップする前にRSTPのやりとりがなされているという点です。
catalyst2940-1#sh spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/2 Altn BLK 19 128.2 P2p Fa0/3 Desg FWD 19 128.3 Edge P2pポート3の「postfast」を無効にし、今度はポート3でBPDUをブロックして確認してみます。
catalyst2940-1#conf t Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-1(config)#int fa0/3 catalyst2940-1(config-if)#no spanning-tree portfast catalyst2940-1(config-if)#spanning-tree bpdufilter enable catalyst2940-1(config-if)#^Z catalyst2940-1#sh ru (省略) ! interface FastEthernet0/3 switchport access vlan 35 switchport mode access spanning-tree bpdufilter enable ! (省略) catalyst2940-1#sh spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/2 Altn BLK 19 128.2 P2p Fa0/3 Desg FWD 19 128.3 P2p catalyst2940-1#debug spanning-tree eventsでは、ポート1を抜いていみます。
catalyst2940-1#sh log
(省略)
Jun 12 00:54:07.021: RSTP(35): updt roles, root port Fa0/1 is going down
Jun 12 00:54:07.021: RSTP(35): Fa0/2 is now root port
Jun 12 00:54:07.021: RSTP(35): syncing port Fa0/3
↑ Fa0/3をブロッキング
Jun 12 00:54:08.021: %LINEPROTO-5-UPDOWN: Line protocol
\ on Interface FastEthernet0/1, changed state to down
Jun 12 00:54:09.025: %LINK-3-UPDOWN: Interface FastEthernet0/1,
\ changed state to down
Jun 12 00:54:22.025: RSTP(35): Fa0/3 fdwhile Expired
Jun 12 00:54:37.025: RSTP(35): Fa0/3 fdwhile Expired
(省略)
ポート2は瞬時にルートポートに変わりますが、ポート3はブロッキング状態になり30秒程度データ通信ができない状態となっています。
では、ポート1を元に戻します。
catalyst2940-1#sh log
(省略)
Jun 12 00:55:32.249: RSTP(35): initializing port Fa0/1
Jun 12 00:55:32.253: RSTP(35): Fa0/1 is now designated
Jun 12 00:55:32.257: RSTP(35): transmitting a proposal on Fa0/1
Jun 12 00:55:33.217: RSTP(35): updt roles, superior bpdu on Fa0/1 (synced=0)
Jun 12 00:55:33.217: RSTP(35): Fa0/1 is now root port
Jun 12 00:55:33.217: RSTP(35): Fa0/2 blocked by re-root
Jun 12 00:55:33.217: RSTP(35): syncing port Fa0/3
↑ Fa0/3をブロッキング
Jun 12 00:55:33.217: RSTP(35): Fa0/2 not in sync
Jun 12 00:55:33.217: RSTP(35): Fa0/2 is now alternate
Jun 12 00:55:33.225: RSTP(35): Fa0/3 not in sync
Jun 12 00:55:33.229: RSTP(35): synced Fa0/1
Jun 12 00:55:33.229: RSTP(35): synced Fa0/1
Jun 12 00:55:33.237: RSTP(35): transmitting an agreement
\ on Fa0/1 as a response to a proposal
Jun 12 00:55:34.245: %LINK-3-UPDOWN: Interface FastEthernet0/1,
\ changed state to up
Jun 12 00:55:35.245: %LINEPROTO-5-UPDOWN: Line protocol
\ on Interface FastEthernet0/1, changed state to up
Jun 12 00:55:48.221: RSTP(35): Fa0/3 fdwhile Expired
Jun 12 00:56:03.222: RSTP(35): Fa0/3 fdwhile Expired
(省略)
こちらも先ほどと同様で、ポート1は瞬時にルートポートに変わりますが、ポート3はブロッキング状態になり30秒程度データ通信ができない状態となっているのが分かります。
結論からすると、portfastとbpdufilterは共に設定(有効化)しておいがほうがよいということが分かります。
ポート3で「portfast」と「bpdufilter」を有効化、ポート1を抜く、ポート1を元に戻しポート2を抜く、ポート2を元に戻しポート3を抜く、ポート3を元に戻します。
catalyst2940-1#sh ru (省略) ! interface FastEthernet0/3 switchport access vlan 35 switchport mode access spanning-tree portfast spanning-tree bpdufilter enable ! (省略) catalyst2940-1#sh log (省略) Jun 12 01:53:34.309: %SYS-5-CONFIG_I: Configured from console by vty0 (1.0.0.12) Jun 12 01:53:59.373: RSTP(35): updt roles, root port Fa0/1 is going down ↑ ポート1が抜けた Jun 12 01:53:59.373: RSTP(35): Fa0/2 is now root port ↑ ポート2がルートポートに Jun 12 01:54:00.369: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/1, changed state to down Jun 12 01:54:01.377: %LINK-3-UPDOWN: Interface FastEthernet0/1, \ changed state to down ↑ 時間が少しずれてポート1のダウン検知 Jun 12 01:54:05.577: RSTP(35): initializing port Fa0/1 Jun 12 01:54:05.577: RSTP(35): Fa0/1 is now designated ↑ ポート1が指定ポートへ Jun 12 01:54:05.581: RSTP(35): transmitting a proposal on Fa0/1 Jun 12 01:54:05.657: RSTP(35): transmitting a proposal on Fa0/1 Jun 12 01:54:06.445: RSTP(35): updt roles, superior bpdu on Fa0/1 (synced=0) Jun 12 01:54:06.445: RSTP(35): Fa0/1 is now root port ↑ ポート1がルートポートへ Jun 12 01:54:06.445: RSTP(35): Fa0/2 blocked by re-root Jun 12 01:54:06.445: RSTP(35): Fa0/2 not in sync Jun 12 01:54:06.445: RSTP(35): Fa0/2 is now alternate ↑ ポート2が代替ポートへ Jun 12 01:54:06.449: RSTP(35): synced Fa0/1 Jun 12 01:54:06.453: RSTP(35): synced Fa0/1 Jun 12 01:54:06.453: RSTP(35): synced Fa0/1 Jun 12 01:54:06.461: RSTP(35): transmitting an agreement \ on Fa0/1 as a response to a proposal Jun 12 01:54:07.569: %LINK-3-UPDOWN: Interface FastEthernet0/1, \ changed state to up Jun 12 01:54:08.569: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/1, changed state to up ↑ 時間がずれてポート1のアップ検知 Jun 12 01:54:14.569: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/3, changed state to down Jun 12 01:54:15.573: %LINK-3-UPDOWN: Interface FastEthernet0/3, \ changed state to down ↑ ポート3のダウン検知 Jun 12 01:54:16.773: RSTP(35): initializing port Fa0/3 Jun 12 01:54:16.777: RSTP(35): Fa0/3 is now designated ↑ ポート3が指定ポートへ Jun 12 01:54:18.769: %LINK-3-UPDOWN: Interface FastEthernet0/3, \ changed state to up Jun 12 01:54:19.769: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/3, changed state to up ↑ 時間が少しずれてポート3のアップ検知 (省略)どの動作も瞬時に切り替わっているのが分かります。
●RSTPの設定(その5)
Catalyst 3750のFE1/0/11、12はVLAN 35に属します。したがって、まず各Catalyst 2940の全ポートをVLAN 35に属させます。
Catalyst 3750(RSTP、Priority=4096)、Catalyst 2940(RSTP、Priority=32768)3台で構成します。

Catalyst 2940間のLAN接続する各ポートは「mdix auto」を設定します。これを設定せずストレートケーブルで接続してもポートがリンクアップしません(クロスケーブルであればリンクアップします)。
また、catalyst2940-3のポート3はPCが接続されていますので「portfast」と「bpdufilter」を有効化します。
catalyst2940-3での設定を下記に示します。
catalyst2940-3#conf t Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-3(config)#spanning-tree mode rapid-pvst catalyst2940-3(config)#int fa 0/7 catalyst2940-3(config-if)#mdix auto catalyst2940-3(config-if)#int fa 0/8 catalyst2940-3(config-if)#mdix auto catalyst2940-3(config-if)#int fa 0/3 catalyst2940-3(config-if)#spanning-tree portfast %Warning: portfast should only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc... to this interface when portfast is enabled, can cause temporary bridging loops. Use with CAUTION %Portfast has been configured on FastEthernet0/3 but will only have effect when the interface is in a non-trunking mode. catalyst2940-3(config-if)#spanning-tree bpdufilter enable catalyst2940-3(config-if)#^Z catalyst2940-3#sh ru (省略) ! spanning-tree mode rapid-pvst no spanning-tree optimize bpdu transmission spanning-tree extend system-id ! ! (省略) ! interface FastEthernet0/3 switchport access vlan 35 switchport mode access spanning-tree portfast spanning-tree bpdufilter enable ! (省略) ! interface FastEthernet0/7 switchport access vlan 35 switchport mode access mdix auto ! interface FastEthernet0/8 switchport access vlan 35 switchport mode access mdix auto ! (省略)catalyst3750-2、catalyst2940-1の状態を確認します。
◆catalyst3750-2 catalyst3750-2#sh spanning-tree vlan 35 VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 4131 (priority 4096 sys-id-ext 35) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/11 Desg FWD 19 128.13 P2p Fa1/0/12 Desg FWD 19 128.14 P2p ◆catalyst2940-1 catalyst2940-1#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Altn BLK 19 128.6 P2p Fa0/7 Desg FWD 19 128.7 P2p ◆catalyst2940-2 catalyst2940-2#sh spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Desg FWD 19 128.6 P2p Fa0/8 Desg FWD 19 128.8 P2p ◆catalyst2940-3 catalyst2940-3#sh spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 38 Port 8 (FastEthernet0/8) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.607b.2540 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 19 128.3 Edge P2p Fa0/7 Altn BLK 19 128.7 P2p Fa0/8 Root FWD 19 128.8 P2p以下のようになります。

catalyst2940-2とcatalyst2940-3の間のLANケーブルを抜きます。

catalyst2940-1~3の状態を確認します。
◆catalyst2940-1
ポートの状態変わらず。
◆catalyst2940-2
catalyst2940-2#show spanning-tree
VLAN0035
Spanning tree enabled protocol rstp
Root ID Priority 4131
Address 0023.0492.2980
Cost 19
Port 1 (FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32803 (priority 32768 sys-id-ext 35)
Address 0013.6063.4180
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 19 128.1 P2p
Fa0/6 Desg FWD 19 128.6 P2p
catalyst2940-2#show logging
(省略)
Jun 14 02:40:01.941: %LINEPROTO-5-UPDOWN: Line protocol
\ on Interface FastEthernet0/8, changed state to down
Jun 14 02:40:01.945: %LINK-3-UPDOWN: Interface FastEthernet0/8,
\ changed state to down
(省略)
◆catalyst2940-3
catalyst2940-3#show spanning-tree
VLAN0035
Spanning tree enabled protocol rstp
Root ID Priority 4131
Address 0023.0492.2980
Cost 38
Port 7 (FastEthernet0/7)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32803 (priority 32768 sys-id-ext 35)
Address 0013.607b.2540
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/3 Desg FWD 19 128.3 Edge P2p
Fa0/7 Root FWD 19 128.7 P2p
catalyst2940-3#show logging
(省略)
Jun 14 02:40:00.988: RSTP(35): updt roles, root port Fa0/8 is going down
Jun 14 02:40:00.988: RSTP(35): Fa0/7 is now root port
Jun 14 02:40:01.988: %LINEPROTO-5-UPDOWN: Line protocol
\ on Interface FastEthernet0/8, changed state to down
Jun 14 02:40:02.992: %LINK-3-UPDOWN: Interface FastEthernet0/8,
\ changed state to down
(省略)
catalyst2940-3のポート7がルートポートに変わっています。この時、PCからのpingの瞬断はありませんでした。

次は、catalyst3750-2とcatalyst2940-1との間のLANケーブルを抜きます。

catalyst2940-1~3の状態を確認します。
◆catalyst2940-1
catalyst2940-1#show spanning-tree
VLAN0035
Spanning tree enabled protocol rstp
Root ID Priority 4131
Address 0023.0492.2980
Cost 38
Port 6 (FastEthernet0/6)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32803 (priority 32768 sys-id-ext 35)
Address 0013.6063.7200
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/6 Root FWD 19 128.6 P2p
Fa0/7 Desg FWD 19 128.7 P2p
catalyst2940-1#show logging
(省略)
Jun 14 02:44:54.442: RSTP(35): updt roles, root port Fa0/1 is going down
Jun 14 02:44:54.442: RSTP(35): Fa0/6 is now root port
Jun 14 02:44:54.442: RSTP(35): syncing port Fa0/7
Jun 14 02:44:54.458: RSTP(35): transmitting a proposal on Fa0/7
Jun 14 02:44:54.466: RSTP(35): received an agreement on Fa0/7
Jun 14 02:44:55.442: %LINEPROTO-5-UPDOWN: Line protocol
\ on Interface FastEthernet0/1, changed state to down
Jun 14 02:44:56.446: %LINK-3-UPDOWN: Interface FastEthernet0/1,
\ changed state to down
(省略)
◆catalyst2940-2
直前の状態から変化はありません。
◆catalyst2940-3
直前の状態から変化はありません。
catalyst2940-1のポート6がルートポートに変化しています。

では、元の状態に戻します。

今度は、catalyst3750-2とcatalyst2940-2との間のLANケーブルを抜きます。

catalyst2940-1~3の状態を確認します。
◆catalyst2940-1 catalyst2940-1#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Desg FWD 19 128.6 P2p Fa0/7 Desg FWD 19 128.7 P2p catalyst2940-1#show logging (省略) Jun 14 02:55:06.170: RSTP(35): updt roles, superior bpdu on Fa0/6 (synced=0) Jun 14 02:55:06.170: RSTP(35): Fa0/6 is now designated Jun 14 02:55:06.174: RSTP(35): transmitting a proposal on Fa0/6 Jun 14 02:55:06.186: RSTP(35): received an agreement on Fa0/6 (省略) ◆catalyst2940-2 catalyst2940-2#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 38 Port 6 (FastEthernet0/6) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/6 Root FWD 19 128.6 P2p Fa0/8 Desg FWD 19 128.8 P2p catalyst2940-2#show logging (省略) Jun 14 02:55:06.161: RSTP(35): updt roles, root port Fa0/1 is going down ↑ ルートポートだったFA1/0がダウン Jun 14 02:55:06.161: RSTP(35): we become the root bridge ↑ 自分がルートブリッジだと宣言(BPDU発信) Jun 14 02:55:06.173: RSTP(35): updt roles, superior bpdu on Fa0/6 (synced=0) ↑ しかし、Fa0/6で優先順位の高いBPDUを受信 Jun 14 02:55:06.173: RSTP(35): Fa0/6 is now root port ↑ だから、Fa0/6がルートポートに遷移 Jun 14 02:55:06.173: RSTP(35): syncing port Fa0/8 ↑ 同期(再構成)完了 Jun 14 02:55:06.173: RSTP(35): Fa0/8 not in sync ↑ しかし、Fa0/8は同期(再構成)未完了 Jun 14 02:55:06.177: RSTP(35): synced Fa0/6 ↑ Fa0/6同期(再構成)完了 Jun 14 02:55:06.185: RSTP(35): transmitting an agreement \ on Fa0/6 as a response to a proposal ↑ 変更提案の同意(アグリメント)をFa0/6から送信 Jun 14 02:55:06.185: RSTP(35): transmitting a proposal on Fa0/8 ↑ 受け取ったプロポーザルをFa0/8に送信 Jun 14 02:55:06.841: RSTP(35): transmitting a proposal on Fa0/8 ↑ 受け取ったプロポーザルをFa0/8に送信(以降、繰り返す) Jun 14 02:55:07.157: %LINEPROTO-5-UPDOWN: Line protocol \ on Interface FastEthernet0/1, changed state to down Jun 14 02:55:08.165: %LINK-3-UPDOWN: Interface FastEthernet0/1, \ changed state to down Jun 14 02:55:08.845: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:10.849: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:12.849: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:14.849: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:16.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:18.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:20.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:21.178: RSTP(35): Fa0/8 fdwhile Expired Jun 14 02:55:22.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:24.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:26.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:28.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:30.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:32.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:34.850: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:36.178: RSTP(35): Fa0/8 fdwhile Expired (省略)赤字部分は、接続先がスイッチですが代理ポートとしてブロッキングされているため応答がありません。結局のところ、30秒後にタイムアウトなっています。該当ポートに接続されているのがPCであればportfastを有効にするのですが、スイッチが接続されているため、今回はこのままの状態としておきます。
◆catalyst2940-3 catalyst2940-3#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 38 Port 7 (FastEthernet0/7) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.607b.2540 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 19 128.3 Edge P2p Fa0/7 Root FWD 19 128.7 P2p Fa0/8 Altn BLK 19 128.8 P2p catalyst2940-3#show logging (省略) Jun 14 02:55:06.163: RSTP(35): updt roles, superior bpdu on Fa0/8 (synced=0) Jun 14 02:55:06.163: RSTP(35): Fa0/7 is now root port Jun 14 02:55:06.163: RSTP(35): Fa0/8 blocked by re-root Jun 14 02:55:06.167: RSTP(35): Fa0/8 is now designated Jun 14 02:55:06.179: RSTP(35): transmitting a proposal on Fa0/8 Jun 14 02:55:06.179: RSTP(35): updt roles, superior bpdu on Fa0/8 (synced=0) Jun 14 02:55:06.179: RSTP(35): Fa0/8 is now alternate (省略)catalyst2940-1のポート6が指定ポートに、catalyst2940-2のポート6がルートポートに変化しています。catalyst2940-3のポート7がルートポートに、ポート8が代替ポートに変化しています。
また、PCからのpingは1回だけ途切れました。

configファイルはここからダウンロードできます。
●RSTPの設定(その6)
Catalyst 3750(RSTP、Priority=4096)、Catalyst 2940(RSTP、Priority=32768)3台で構成します。

パスコストを変更することにより、どのように経路が変化するかを確認します。パスコストはデフォルトで「19」になっています。
show spanning-tree detailコマンドで確認できます。catalyst2940-1で確認してみます。
catalyst2940-1#show spanning-tree detail VLAN0035 is executing the rstp compatible Spanning Tree protocol Bridge Identifier has priority 32768, sysid 35, address 0013.6063.7200 Configured hello time 2, max age 20, forward delay 15 Current root has priority 4131, address 0023.0492.2980 Root port is 1 (FastEthernet0/1), cost of root path is 19 Topology change flag not set, detected flag not set Number of topology changes 9 last change occurred 18:12:42 ago from FastEthernet0/6 Times: hold 1, topology change 35, notification 2 hello 2, max age 20, forward delay 15 Timers: hello 0, topology change 0, notification 0, aging 300 Port 1 (FastEthernet0/1) of VLAN0035 is root forwarding Port path cost 19, Port priority 128, Port Identifier 128.1. Designated root has priority 4131, address 0023.0492.2980 Designated bridge has priority 4131, address 0023.0492.2980 Designated port id is 128.13, designated path cost 0 Timers: message age 16, forward delay 0, hold 0 Number of transitions to forwarding state: 1 Link type is point-to-point by default BPDU: sent 7, received 32597 Port 6 (FastEthernet0/6) of VLAN0035 is alternate blocking Port path cost 19, Port priority 128, Port Identifier 128.6. Designated root has priority 4131, address 0023.0492.2980 Designated bridge has priority 32803, address 0013.6063.4180 Designated port id is 128.6, designated path cost 19 Timers: message age 15, forward delay 0, hold 0 Number of transitions to forwarding state: 3 Link type is point-to-point by default BPDU: sent 683, received 68492 Port 7 (FastEthernet0/7) of VLAN0035 is designated forwarding Port path cost 19, Port priority 128, Port Identifier 128.7. Designated root has priority 4131, address 0023.0492.2980 Designated bridge has priority 32803, address 0013.6063.7200 Designated port id is 128.7, designated path cost 19 Timers: message age 0, forward delay 0, hold 0 Number of transitions to forwarding state: 3 Link type is point-to-point by default BPDU: sent 33422, received 12LANケーブルが接続されているポート1、6、7すべて「19」になっていることが分かります。
catalyst3750-2#sh spanning-tree vlan 35 VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 4131 (priority 4096 sys-id-ext 35) Address 0023.0492.2980 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa1/0/11 Desg FWD 19 128.13 P2p Fa1/0/12 Desg FWD 19 128.14 P2p catalyst2940-1#sh span VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Altn BLK 19 128.6 P2p Fa0/7 Desg FWD 19 128.7 P2p catalyst2940-2#sh span VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Desg FWD 19 128.6 P2p Fa0/8 Desg FWD 19 128.8 P2p
catalyst2940-2のポート1にパスコスト「1」を設定します。

catalyst2940-1#debug spanning-tree events Spanning Tree event debugging is on catalyst2940-2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-2(config)#interface fastEthernet 0/1 catalyst2940-2(config-if)#spanning-tree vlan 35 cost 1 catalyst2940-2(config-if)#^Z catalyst2940-1#no debug spanning-tree events Spanning Tree event debugging is offcatalyst2940-2、catalyst2940-1のログ及び状態を確認します。
◆catalyst2940-2
catalyst2940-2#sh log
(省略)
Jun 15 19:02:55.740: RSTP(35): updt roles, superior bpdu on Fa0/1 (synced=1)
(省略)
◆catalyst2940-1
catalyst2940-1#sh log
(省略)
Jun 15 19:02:55.745: RSTP(35): updt roles, superior bpdu on Fa0/6 (synced=0)
(省略)
catalyst3750-2#sh spanning-tree vlan 35
VLAN0035
Spanning tree enabled protocol rstp
Root ID Priority 4131
Address 0023.0492.2980
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 4131 (priority 4096 sys-id-ext 35)
Address 0023.0492.2980
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa1/0/11 Desg FWD 19 128.13 P2p
Fa1/0/12 Desg FWD 19 128.14 P2p
catalyst2940-1#sh span
VLAN0035
Spanning tree enabled protocol rstp
Root ID Priority 4131
Address 0023.0492.2980
Cost 19
Port 1 (FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32803 (priority 32768 sys-id-ext 35)
Address 0013.6063.7200
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 19 128.1 P2p
Fa0/6 Altn BLK 19 128.6 P2p
Fa0/7 Desg FWD 19 128.7 P2p
catalyst2940-2#sh span
VLAN0035
Spanning tree enabled protocol rstp
Root ID Priority 4131
Address 0023.0492.2980
Cost 1
Port 1 (FastEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32803 (priority 32768 sys-id-ext 35)
Address 0013.6063.4180
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/1 Root FWD 1 128.1 P2p
Fa0/6 Desg FWD 19 128.6 P2p
Fa0/8 Desg FWD 19 128.8 P2p
catalyst2940-2のポート6のパスコストが「1」になっているのが分かります。
しかしながら、ポート遷移は発生しませんでした。

catalyst2940-2のポート1のパスコストを元に(「1」)戻します。

(catalyst2940-2のポート8にパスコスト「38」を設定します。→ 結果、変化なし)
今度は、catalyst2940-2のポート1にパスコスト「38」を設定します。

catalyst2940-2#debug spanning-tree events Spanning Tree event debugging is on catalyst2940-2#conf t Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-2(config)#int fa 0/8 catalyst2940-2(config-if)#spanning-tree vlan 35 cost 38 catalyst2940-2(config-if)#^Z catalyst2940-2#catalyst2940-1、catalyst2940-2、catalyst2940-3の状態を確認します。
catalyst2940-1#sh span VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Desg FWD 19 128.6 P2p Fa0/7 Desg FWD 19 128.7 P2p catalyst2940-2#sh span VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 38 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 38 128.1 P2p Fa0/6 Altn BLK 19 128.6 P2p Fa0/8 Desg FWD 19 128.8 P2p catalyst2940-3#sh spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 38 Port 7 (FastEthernet0/7) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.607b.2540 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 19 128.3 Edge P2p Fa0/7 Root FWD 19 128.7 P2p Fa0/8 Altn BLK 19 128.8 P2pcatalyst2940-1、catalyst2940-2、catalyst2940-3のログを確認します。
catalyst2940-1#sh log (省略) Jun 15 19:02:55.745: RSTP(35): updt roles, superior bpdu on Fa0/6 (synced=0) Jun 15 20:32:44.556: RSTP(35): updt roles, superior bpdu on Fa0/6 (synced=0) Jun 15 20:32:44.556: RSTP(35): Fa0/6 is now designated Jun 15 20:32:44.560: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:44.572: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:45.012: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:47.012: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:49.012: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:51.012: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:53.016: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:55.016: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:57.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:59.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:32:59.557: RSTP(35): Fa0/6 fdwhile Expired Jun 15 20:33:01.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:33:03.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:33:05.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:33:07.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:33:09.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:33:11.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:33:13.017: RSTP(35): transmitting a proposal on Fa0/6 Jun 15 20:33:14.557: RSTP(35): Fa0/6 fdwhile Expired (省略) catalyst2940-2#sh log (省略) Jun 15 20:32:44.547: RSTP(35): updt roles, other reason Jun 15 20:32:44.559: RSTP(35): updt roles, superior bpdu on Fa0/6 (synced=0) Jun 15 20:32:44.559: RSTP(35): Fa0/6 is now alternate (省略) catalyst2940-3#sh log (省略) Jun 15 20:32:44.554: RSTP(35): updt roles, superior bpdu on Fa0/8 (synced=0) Jun 15 20:32:44.554: RSTP(35): Fa0/7 is now root port Jun 15 20:32:44.554: RSTP(35): Fa0/8 blocked by re-root Jun 15 20:32:44.554: RSTP(35): Fa0/8 is now alternate (省略)catalyst2940-2のポート6が代替ポート(ブロッキング)に変わっています。
catalyst2940-1のポート6が指定ポートに変わっています。
catalyst2940-3のポート7がルートポートに、ポート8が代替ポート変わっています。

catalyst2940-1とcatalyst2940-3の間のLANケーブルを抜きます。

各スイッチの状態を確認します。
catalyst2940-1#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Desg FWD 19 128.6 P2p catalyst2940-2#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 38 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 38 128.1 P2p Fa0/6 Altn BLK 19 128.6 P2p Fa0/8 Desg FWD 19 128.8 P2p catalyst2940-3#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 57 Port 8 (FastEthernet0/8) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.607b.2540 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 19 128.3 Edge P2p Fa0/8 Root FWD 19 128.8 P2p以下のように各ポートが遷移しています。

configファイルはここからダウンロードできます。
●RSTP構築が上手くいかない場合
まず、設定を保存後ネットワーク機器を再起動してみてください。
それでもダメな場合は、設定内容を再度確認してみましょう。
LANケーブルが破損、または該当ポートが故障しているかもしれません。
導入する機器及び導入する機器と相互接続する機器のIOSにRSTP(STP)に関するバグがないのかを確認して下さい。
最後に、新規導入または再構築などでダウンタイムが許されるのであれば、相互接続されている物理ケーブルを全て外し、spanning-tree mode rapid-pvstを再入力してリロードを実施して下さい。
以上のステップを踏むことによりRSTPのネットワークは問題なく構築できるはずです。
●MSTPの概要
MSTは、複数のVLANをインスタンスというグループにまとめて、そのインスタンスごとにスパニングツリーを動作させる技術です。MSTはIEEE802.1sで定義されています。MSTにおいて使用するプロトコルがMSTP(Multiple Spanning Tree Protocol)です。MSTPを使用することで、スイッチのCPU負荷を減少させ、またRSTP(Rapid Spanning Tree Protocol)も有効になり、高速なコンバージェンスが実現できます。
RSTPとMSTPは、(オリジナル)IEEE802.1Dスパニングツリー準拠デバイス、既存のシスコ独自のMultiple Instance STP(MISTP)、および既存のシスコPer-VLAN Spanning-Tree plus(PVST+)との下位互換性を保ちながら、スパニングツリーの動作を向上させます。
PVST+(Cisco)の場合
PVST+は文字通り、Per-VLANでVLAN単位ごとにSTPが構築され下図のように最適に負荷分散されます。しかし、PVST+の場合はVLANごとに1つのスパニングツリーインスタンスが保持されるため、最終的に1000ものインスタンスが必要となり、各インスタンスごとにVLANごとのBPDUが送信されるという欠点があります。このことにより帯域幅やネットワーク上の全てのスイッチCPUリソースが消費されます。
上記は、Rapid PVST+(Cisco)も同様です。

IEEE802.1Qの場合
IEEE802.1Q標準は、VLANの数に関係なくブリッジネットワーク全体で1つのスパニングツリーインスタンスだけがあると仮定するCST(Common Spanning Tree)インスタンスを定義しています。1つのインスタンスということはCPUリソース使用は少なくすみますが、Per-VLANでないことから負荷分散できません。

MST(IEEE802.1S)の場合
MSTは、PVST+とIEEE802.1Qのの両方の長所を兼ね備えてます。MSTは、複数のVLANを1つのスパニングツリーにマッピングすることで、インスタンスの数を減らせています。下図では、2つの論理トポロジーしかないため、必要なのは2つのスパニングツリーインスタンスだけとなります。

この設定では負荷分散がうまくでき、また、CPUリソースを有効利用できます。
PVST+、IEEE802.1Q、MST(IEEE802.1S)の比較
スパニングツリーモードの種類 | |||
---|---|---|---|
動作モード | PVST+ / Rapid PVST+ | IEEE802.1Q | MST |
インスタンスの数 | VLANごとに1つ必要 | 全体で1つ必要 | 複数のVLANに対して1つ必要 |
VLANごとの負荷分散 | 可能 | 不可能 | 可能 |
●MSTリージョン
同じコンフィギュレーション情報(リージョン名、リビジョン番号、MSTのVLAN番号と特定の1つのインスタンスへのマッピング)を持ちます。同じMSTコンフィギュレーションを持ち、相互接続されたスイッチの集合をMSTリージョンといいます。リージョンには、同一のMSTコンフィギュレーションを持った1つまたは複数のメンバーが必要です。さらに、各メンバーは、RSTP Bridge Protocol Data Unit(BPDU:ブリッジプロトコルデータユニット)を処理できる必要があります。ネットワーク内のMSTリージョンの数には制限はありませんが、各リージョンがサポートできるスパニングツリーインスタンスの数は65までです。インスタンスは0~4094の数字で識別されます。1つのVLANを同時に複数のスパニングツリーインスタンスに割り当てることはできません。
●IST、CIST、およびCST
すべてのスパニングツリーインスタンスが独立しているPVST+およびRapid PVST+とは異なり、MSTPは2種類のスパニングツリーを確立して維持します。
-
同じMSTコンフィギュレーションを持ち、相互接続されたスイッチの集合をMSTリージョンといいます。
各MSTリージョン内のMSTPは複数のスパニングツリーインスタンスを維持しています。インスタンス0は、リージョンの特殊なインスタンスで、ISTと呼ばれています。その他のMSTインスタンスはすべて1~4094まで番号が付けられます。
ISTは、BPDUを送受信する唯一のスパニングツリーインスタンスです。他のスパニングツリーの情報はすべて、MSTP BPDU内にカプセル化されているMレコードに格納されています。MSTP BPDUはすべてのインスタンスの情報を伝送するので、複数のスパニングツリーインスタンスをサポートする処理が必要なBPDUの数を大幅に減少できます。
同一リージョン内のMSTインスタンスはすべて、同じプロトコルタイマーを共有しますが、各MSTインスタンスは独自のトポロジパラメータ(ルートスイッチID、ルートパスコストなど)を持っています。デフォルトでは、すべてのVLANがISTに割り当てられています。
MSTインスタンスはリージョンに対してローカルです。たとえば、リージョンAとリージョンBが相互接続されていても、リージョンAのMSTインスタンス1は、リージョンBのMSTインスタンス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リージョン内の動作
ISTは1つのリージョン内のすべてのMSTPスイッチを接続します。ISTが収束すると、ISTのルートは、図のように、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インスタンスに対するポートの役割のみを同期させます。

●MSTPの設定(その1)

各スイッチの状態を確認します。
●catalyst3750-2 catalyst3750-2#show spanning-tree MST0 Spanning tree enabled protocol mstp Root ID Priority 24576 Address 0022.bd49.2000 This bridge is the root Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 24576 (priority 24576 sys-id-ext 0) Address 0022.bd49.2000 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa2/0/1 Desg FWD 200000 128.57 P2p Bound(STP) Fa2/0/2 Desg FWD 200000 128.58 P2p Fa1/0/2 Desg FWD 200000 128.4 P2p ●catalyst2960-1 catalyst2960-1#show spanning-tree MST0 Spanning tree enabled protocol mstp Root ID Priority 24576 Address 0022.bd49.2000 Cost 200000 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 001a.a258.c900 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP) ●catalyst2960-2 catalyst2960-2#show spanning-tree MST0 Spanning tree enabled protocol mstp Root ID Priority 24576 Address 0022.bd49.2000 Cost 200000 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 001a.a266.9e80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP)catalyst3750-2がルートブリッジになっていないと、MSTP設定時にfa1/0/2またはfa2/0/2のいずれかブロックされてしまいます。
catalyst3750-2がルートブリッジになるようにMST0で設定します。
catalyst3750-2#configure terminal catalyst3750-2(config)#spanning-tree mst 0 priority 4096 catalyst3750-2(config)#exitpriorityが変わっていることが分かります。
catalyst2960-1及びcatalyst2960-2の状態を確認します。
catalyst3750-2#show spanning-tree
MST0
Spanning tree enabled protocol mstp
Root ID Priority 4096
Address 0022.bd49.2000
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 4096 (priority 4096 sys-id-ext 0)
Address 0022.bd49.2000
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa2/0/1 Desg FWD 200000 128.57 P2p Bound(STP)
Fa2/0/2 Desg FWD 200000 128.58 P2p
Fa1/0/2 Desg FWD 200000 128.4 P2p
Priorityが4096になっていることが分かります。
catalyst2960-1及びcatalyst2960-2の状態を確認します。
●catalyst2960-1 catalyst2960-1#show spanning-tree MST0 Spanning tree enabled protocol mstp Root ID Priority 4096 Address 0022.bd49.2000 Cost 200000 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 001a.a258.c900 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP) ●catalyst2960-2 catalyst2960-2#show spanning-tree MST0 Spanning tree enabled protocol mstp Root ID Priority 4096 Address 0022.bd49.2000 Cost 200000 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 001a.a266.9e80 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ------------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP)
catalyst2960-1#configure terminal catalyst2960-1(config)#spanning-tree mst configuration catalyst2960-1(config-mst)#name region1 catalyst2960-1(config-mst)#revision 1 catalyst2960-1(config-mst)#instance 1 vlan 110,210 catalyst2960-1(config-mst)#instance 2 vlan 210,220 catalyst2960-1(config-mst)#show pending Pending MST configuration Name [region1] Revision 1 Instances configured 3 Instance Vlans mapped -------- --------------------------------------------------------------------- 0 1-109,111-119,121-209,211-219,221-4094 1 110,210 2 120,220 ------------------------------------------------------------------------------- catalyst2960-1(config-mst)#exit catalyst2960-1(config)#spanning-tree mst 1 priority 0 catalyst2960-1(config)#spanning-tree mst 2 priority 4096 catalyst2960-1(config)#^Z catalyst2960-2#configure terminal catalyst2960-2(config)#spanning-tree mst configuration catalyst2960-2(config-mst)#name region1 catalyst2960-2(config-mst)#revision 1 catalyst2960-2(config-mst)#instance 1 vlan 110,210 catalyst2960-2(config-mst)#instance 2 vlan 210,220 catalyst2960-2(config-mst)#show pending Pending MST configuration Name [region1] Revision 1 Instances configured 3 Instance Vlans mapped -------- --------------------------------------------------------------------- 0 1-109,111-119,121-209,211-219,221-4094 1 110,210 2 120,220 ------------------------------------------------------------------------------- catalyst2960-2(config-mst)#exit catalyst2960-2(config)#spanning-tree mst 2 priority 0 catalyst2960-2(config)#spanning-tree mst 1 priority 4096 catalyst2960-2(config)#^Ztrunkの設定をします。
catalyst2960-1#configure terminal catalyst2960-1(config)#interface range fastEthernet 0/23-24 catalyst2960-1(config-if-range)#swi catalyst2960-1(config-if-range)#switchport trunk allowed vlan 110,120,210,220 catalyst2960-1(config-if-range)#switchport mode trunk catalyst2960-1(config-if-range)#no shutdown catalyst2960-2#configure terminal catalyst2960-2(config)#interface range fastEthernet 0/23-24 catalyst2960-2(config-if-range)#switchport trunk allowed vlan 110,120,210,220 catalyst2960-2(config-if-range)#switchport mode trunk catalyst2960-2(config-if-range)#no shutdown
catalyst2940-1、catalyst2940-2、catalyst2940-3がRSTPの状態で接続されています。

上記の状態から、catalyst2940-3、catalyst2940-2、catalyst2940-1の順番でMSTPに変更します。

まず、catalyst2940-3をMSTPに変更し、各スイッチの状態を確認します。
この時、catalyst2940-3のポート3に接続されているPCにpingを送信しつづけていたところ、一回だけ応答が返ってこない状態となりました。
◆catalyst2940-3 catalyst2940-3#config terminal catalyst2940-3(config)#spanning-tree mode mst catalyst2940-3#show spanning-tree MST00 Spanning tree enabled protocol mstp Root ID Priority 4131 Address 0023.0492.2980 Cost 200019 Port 8 (FastEthernet0/8) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 0013.607b.2540 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 200000 128.3 Edge P2p Fa0/7 Altn BLK 200000 128.7 P2p Bound(RSTP) Fa0/8 Root FWD 200000 128.8 P2p Bound(RSTP) catalyst2940-3#show spanning-tree summary Switch is in mst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is long Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- MST00 1 0 0 1 2 ---------------------- -------- --------- -------- ---------- ---------- 1 mst 1 0 0 1 2 catalyst2940-3#show spanning-tree mst ###### MST00 vlans mapped: 1-4094 Bridge address 0013.607b.2540 priority 32768 (32768 sysid 0) Root address 0023.0492.2980 priority 4131 (4096 sysid 35) port Fa0/8 path cost 200019 IST master this switch Operational hello time 2, forward delay 15, max age 20 Configured hello time 2, forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 200000 128.3 Edge P2p Fa0/7 Altn BLK 200000 128.7 P2p Bound(RSTP) Fa0/8 Root FWD 200000 128.8 P2p Bound(RSTP) ◆catalyst2940-2 catalyst2940-2#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Desg FWD 19 128.6 P2p Fa0/8 Desg FWD 19 128.8 P2p ◆catalyst2940-1 catalyst2940-1#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Altn BLK 19 128.6 P2p Fa0/7 Desg FWD 19 128.7 P2p次は、catalyst2940-2をMSTPに変更し、各スイッチの状態を確認します。
pingの抜けは確認できませんでした。
◆catalyst2940-2 catalyst2940-2#config terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-2(config)#spanning-tree mode mst catalyst2940-2(config)#exit catalyst2940-2#show spanning-tree MST00 Spanning tree enabled protocol mstp Root ID Priority 4131 Address 0023.0492.2980 Cost 200000 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP) Fa0/6 Altn BLK 200000 128.6 P2p Bound(RSTP) Fa0/8 Desg FWD 200000 128.8 P2p catalyst2940-2#show spanning-tree summary Switch is in mst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is long Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- MST00 1 0 0 2 3 ---------------------- -------- --------- -------- ---------- ---------- 1 mst 1 0 0 2 3 catalyst2940-2#show spanning-tree mst ###### MST00 vlans mapped: 1-4094 Bridge address 0013.6063.4180 priority 32768 (32768 sysid 0) Root address 0023.0492.2980 priority 4131 (4096 sysid 35) port Fa0/1 path cost 200000 IST master this switch Operational hello time 2, forward delay 15, max age 20 Configured hello time 2, forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP) Fa0/6 Altn BLK 200000 128.6 P2p Bound(RSTP) Fa0/8 Desg FWD 200000 128.8 P2p ◆catalyst2940-3 catalyst2940-3#show spanning-tree MST00 Spanning tree enabled protocol mstp Root ID Priority 4131 Address 0023.0492.2980 Cost 200000 Port 8 (FastEthernet0/8) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 0013.607b.2540 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 200000 128.3 Edge P2p Fa0/7 Altn BLK 200000 128.7 P2p Bound(RSTP) Fa0/8 Root FWD 200000 128.8 P2p catalyst2940-3#show spanning-tree summary Switch is in mst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is long Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- MST00 1 0 0 2 3 ---------------------- -------- --------- -------- ---------- ---------- 1 mst 1 0 0 2 3 catalyst2940-3#show spanning-tree mst ###### MST00 vlans mapped: 1-4094 Bridge address 0013.607b.2540 priority 32768 (32768 sysid 0) Root address 0023.0492.2980 priority 4131 (4096 sysid 35) port Fa0/8 path cost 200000 IST master address 0013.6063.4180 priority 32768 (32768 sysid 0) path cost 200000 rem hops 19 Operational hello time 2, forward delay 15, max age 20 Configured hello time 2, forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 200000 128.3 Edge P2p Fa0/7 Altn BLK 200000 128.7 P2p Bound(RSTP) Fa0/8 Root FWD 200000 128.8 P2p catalyst2940-1#show spanning-tree VLAN0035 Spanning tree enabled protocol rstp Root ID Priority 4131 Address 0023.0492.2980 Cost 19 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32803 (priority 32768 sys-id-ext 35) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 19 128.1 P2p Fa0/6 Desg FWD 19 128.6 P2p Fa0/7 Desg FWD 19 128.7 P2p次は、catalyst2940-1をMSTPに変更し、各スイッチの状態を確認します。
pingの抜けは確認できませんでした。
◆catalyst2940-1 catalyst2940-1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-1(config)#spanning-tree mode mst このあと、暫くcatalyst2940-1からの応答がなくなりました。 放っておいたら、応答が戻ってきました。 catalyst2940-1(config)#exit catalyst2940-1#show spanning-tree MST00 Spanning tree enabled protocol mstp Root ID Priority 4131 Address 0023.0492.2980 Cost 200000 Port 6 (FastEthernet0/6) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 0013.6063.7200 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Altn BLK 200000 128.1 P2p Bound(RSTP) Fa0/6 Root FWD 200000 128.6 P2p Fa0/7 Desg FWD 200000 128.7 P2p catalyst2940-1#show spanning-tree su catalyst2940-1#show spanning-tree summary Switch is in mst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is long Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- MST00 1 0 0 2 3 ---------------------- -------- --------- -------- ---------- ---------- 1 mst 1 0 0 2 3 catalyst2940-1#show spanning-tree mst ###### MST00 vlans mapped: 1-4094 Bridge address 0013.6063.7200 priority 32768 (32768 sysid 0) Root address 0023.0492.2980 priority 4131 (4096 sysid 35) port Fa0/6 path cost 200000 IST master address 0013.6063.4180 priority 32768 (32768 sysid 0) path cost 200000 rem hops 19 Operational hello time 2, forward delay 15, max age 20 Configured hello time 2, forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Altn BLK 200000 128.1 P2p Bound(RSTP) Fa0/6 Root FWD 200000 128.6 P2p Fa0/7 Desg FWD 200000 128.7 P2p ◆catalyst2940-3 catalyst2940-3#show spanning-tree MST00 Spanning tree enabled protocol mstp Root ID Priority 4131 Address 0023.0492.2980 Cost 200000 Port 8 (FastEthernet0/8) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 0013.607b.2540 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 200000 128.3 Edge P2p Fa0/7 Altn BLK 200000 128.7 P2p Fa0/8 Root FWD 200000 128.8 P2p catalyst2940-3#show spanning-tree summary Switch is in mst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is long Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- MST00 1 0 0 2 3 ---------------------- -------- --------- -------- ---------- ---------- 1 mst 1 0 0 2 3 catalyst2940-3#show spanning-tree mst ###### MST00 vlans mapped: 1-4094 Bridge address 0013.607b.2540 priority 32768 (32768 sysid 0) Root address 0023.0492.2980 priority 4131 (4096 sysid 35) port Fa0/8 path cost 200000 IST master address 0013.6063.4180 priority 32768 (32768 sysid 0) path cost 200000 rem hops 19 Operational hello time 2, forward delay 15, max age 20 Configured hello time 2, forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/3 Desg FWD 200000 128.3 Edge P2p Fa0/7 Altn BLK 200000 128.7 P2p Fa0/8 Root FWD 200000 128.8 P2p ◆catalyst2940-2 catalyst2940-2#show spanning-tree MST00 Spanning tree enabled protocol mstp Root ID Priority 4131 Address 0023.0492.2980 Cost 200000 Port 1 (FastEthernet0/1) Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 32768 (priority 32768 sys-id-ext 0) Address 0013.6063.4180 Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP) Fa0/6 Desg FWD 200000 128.6 P2p Fa0/8 Desg FWD 200000 128.8 P2p catalyst2940-2#show spanning-tree summary Switch is in mst mode Root bridge for: none EtherChannel misconfig guard is enabled Extended system ID is enabled Portfast Default is disabled PortFast BPDU Guard Default is disabled Portfast BPDU Filter Default is disabled Loopguard Default is disabled UplinkFast is disabled BackboneFast is disabled Pathcost method used is long Name Blocking Listening Learning Forwarding STP Active ---------------------- -------- --------- -------- ---------- ---------- MST00 0 0 0 3 3 ---------------------- -------- --------- -------- ---------- ---------- 1 mst 0 0 0 3 3 catalyst2940-2#show spanning-tree mst ###### MST00 vlans mapped: 1-4094 Bridge address 0013.6063.4180 priority 32768 (32768 sysid 0) Root address 0023.0492.2980 priority 4131 (4096 sysid 35) port Fa0/1 path cost 200000 IST master this switch Operational hello time 2, forward delay 15, max age 20 Configured hello time 2, forward delay 15, max age 20, max hops 20 Interface Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- Fa0/1 Root FWD 200000 128.1 P2p Bound(RSTP) Fa0/6 Desg FWD 200000 128.6 P2p Fa0/8 Desg FWD 200000 128.8 P2p
●MSTPの設定(その2)
◆catalyst3750-2 catalyst3750-2#conf t Enter configuration commands, one per line. End with CNTL/Z. catalyst3750-2(config)#int fa 1/0/17 catalyst3750-2(config-if)#switchport trunk encapsulation dot1q catalyst3750-2(config-if)#switchport mode trunk catalyst3750-2(config-if)#switchport trunk allowed vlan 110,120 catalyst3750-2(config-if)#int fa 1/0/18 catalyst3750-2(config-if)#switchport trunk encapsulation dot1q catalyst3750-2(config-if)#switchport mode trunk catalyst3750-2(config-if)#switchport trunk allowed vlan 210,220 catalyst3750-2(config-if)#int fa 1/0/19 catalyst3750-2(config-if)#switchport trunk encapsulation dot1q catalyst3750-2(config-if)#switchport mode trunk catalyst3750-2(config-if)#switchport trunk allowed vlan 310,320 catalyst3750-2(config-if)#int fa 1/0/23 catalyst3750-2(config-if)#switchport trunk encapsulation dot1q catalyst3750-2(config-if)#switchport mode trunk catalyst3750-2(config-if)#switchport trunk allowed vlan 110,120,210,220,310,320 catalyst3750-2(config-if)#int fa 1/0/24 catalyst3750-2(config-if)#switchport trunk encapsulation dot1q catalyst3750-2(config-if)#switchport mode trunk catalyst3750-2(config-if)#$trunk allowed vlan 110,120,210,220,310,320 catalyst3750-2(config-if)#^Z ◆catalyst3750-3 catalyst3750-3#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst3750-3(config)#int catalyst3750-3(config)#interface fastEthernet 1/0/17 catalyst3750-3(config-if)#switchport trunk encapsulation dot1q catalyst3750-3(config-if)#switchport trunk allowed vlan 110,120 catalyst3750-3(config-if)#switchport mode trunk catalyst3750-3(config-if)#interface fastEthernet 1/0/18 catalyst3750-3(config-if)#switchport trunk encapsulation dot1q catalyst3750-3(config-if)#switchport trunk allowed vlan 210,220 catalyst3750-3(config-if)#switchport mode trunk catalyst3750-3(config-if)#interface fastEthernet 1/0/19 catalyst3750-3(config-if)#switchport trunk encapsulation dot1q catalyst3750-3(config-if)#switchport trunk allowed vlan 310,320 catalyst3750-3(config-if)#switchport mode trunk catalyst3750-3(config-if)#interface fastEthernet 1/0/23 catalyst3750-3(config-if)#switchport trunk encapsulation dot1q catalyst3750-3(config-if)#switchport trunk allowed vlan 110,120,210,220,310,320 catalyst3750-3(config-if)#switchport mode trunk catalyst3750-3(config-if)#interface fastEthernet 1/0/24 catalyst3750-3(config-if)#switchport trunk encapsulation dot1q catalyst3750-3(config-if)#switchport trunk allowed vlan 110,120,210,220,310,320 catalyst3750-3(config-if)#switchport mode trunk catalyst3750-3(config-if)#^Z ◆catalyst2940-1 catalyst2940-1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-1(config)#interface fastEthernet 0/2 catalyst2940-1(config-if)#switchport trunk allowed vlan 110,120 catalyst2940-1(config-if)#switchport mode trunk catalyst2940-1(config-if)#no shutdown catalyst2940-1(config-if)#interface fastEthernet 0/2 catalyst2940-1(config-if)#switchport mode access catalyst2940-1(config-if)#switchport access vlan 110 catalyst2940-1(config-if)#no shutdown catalyst2940-1(config-if)#interface fastEthernet 0/5 catalyst2940-1(config-if)#switchport trunk allowed vlan 110,120 catalyst2940-1(config-if)#switchport mode trunk catalyst2940-1(config-if)#no shutdown catalyst2940-1(config-if)#interface fastEthernet fa0/6 catalyst2940-1(config-if)#switchport mode access catalyst2940-1(config-if)#switchport access vlan 220 catalyst2940-1(config-if)#^Z ◆catalyst2940-2 catalyst2940-2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2940-2(config)#interface fastEthernet 0/2 catalyst2940-2(config-if)#switchport mode trunk catalyst2940-2(config-if)#switchport trunk allowed vlan 210,220 catalyst2940-2(config-if)#no shutdown catalyst2940-2(config-if)#interface fastEthernet 0/2 catalyst2940-2(config-if)#switchport mode access catalyst2940-2(config-if)#switchport access vlan 210 catalyst2940-2(config-if)#no shutdown catalyst2940-2(config-if)#interface fastEthernet 0/5 catalyst2940-2(config-if)#switchport trunk allowed vlan 210,220 catalyst2940-2(config-if)#switchport mode trunk catalyst2940-2(config-if)#no shutdown catalyst2940-2(config-if)#interface fastEthernet fa0/6 catalyst2940-2(config-if)#switchport mode access catalyst2940-2(config-if)#switchport access vlan 220 catalyst2940-2(config-if)#^Z
catalyst2960-1#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2960-1(config)#spanning-tree mst configuration catalyst2960-1(config-mst)#name region1 catalyst2960-1(config-mst)#instance 1 vlan 110,210 catalyst2960-1(config-mst)#instance 2 vlan 120,220 catalyst2960-1(config-mst)#exit catalyst2960-1(config)#spanning-tree mst 0-1 root primary catalyst2960-1(config)#spanning-tree mst 2 root secondary catalyst2960-1(config)#^Z catalyst2960-2#configure terminal Enter configuration commands, one per line. End with CNTL/Z. catalyst2960-2(config)#spanning-tree mst configuration catalyst2960-2(config-mst)#name region1 catalyst2960-2(config-mst)#revision 10 catalyst2960-2(config-mst)#instance 1 vlan 110,210 catalyst2960-2(config-mst)#instance 2 vlan 120,220 catalyst2960-2(config-mst)#exit catalyst2960-2(config)#sp
●注意事項
spanning-tree mode コマンドでモードを変更するとネットワークダウンが発生します。
また、STPとRSTPの混在環境は原則提案してはいけません。STPとRSTPの混在環境を逆提案(or 提案される可能性もあります。その場合、スイッチネットワークの物理構成、論理構成におけるBPDUの流れや制御を完全に把握できる環境、あるいは新規または再構築したスイッチネットワークにBPDUを流す機器がユーザに勝手に追加されない環境である場合に限って、受け入れられる提案であると思います。
本来、RSTPとして動作するブリッジグループであってもSTPとして動作する理論上おかしなことになれば、IOSのバグ、未公開バグの問題であり、擬似環境での現象再現やCiscoTACに投げるなどして解決する必要があるのですが、結果的により非効率なネットワークシステムが構築されないよう、余計なトラブルに苦しまないよう、先に述べた環境であるのかをしっかり見極めましょう。
CatalystのRSTPは、802.1W 標準に基づくとはいえ、Rapid Per-VLAN Spanning-Tree plus(Rapid PVST+)プロトコルであり、
CatalystのSTPは、802.1D 標準に基づくとはいえ、Per-VLAN Spanning-Tree plus(PVST+)プロトコルであることをお忘れなく。