はじめに
このドキュメントでは、アクセススイッチとディストリビューションスイッチ間のパスコストの不一致によるスパニングツリープロトコル(STP)ルートの不一致について説明します。
前提条件
要 件
STPの概念に関する知識があることが推奨されます。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
機能説明
ルート ガード機能には、ネットワークにルート ブリッジを強制的に配置する方法があります。
ルート ガードにより、ルート ガードがイネーブルであるポートが確実に指定ポートになります。通常、ルート ブリッジの 2 つ以上のポートが互いに接続されている場合を除き、ルート ブリッジのポートはすべて指定ポートになります。ルート ガードがイネーブルにされたポート上で、ブリッジが上位の STP Bridge Port Data Unit(BPDU; ブリッジ ポート データ ユニット)を受信した場合、ルート ガードはこのポートを root-inconsistent の STP ステートに移行させます。root-inconsistent ステートは、実質的にはリスニング ステートと同じです。このポートからはトラフィックは転送されません。このようにして、ルート ガードではルート ブリッジの位置が指定されます。
問題
このセクションの例は、アクセススイッチとディストリビューションスイッチの間でパスコストのミスマッチがある場合に、ネットワークに新しいアクセススイッチを追加すると、ルートガードポートがディストリビューションスイッチ上でルートの不一致状態に入る仕組みを示しています。
図1では、スイッチ1と2がネットワークのディストリビューションレイヤを構成し、スイッチ1が偶数VLANのルートブリッジとして機能し、スイッチ2が奇数VLANのルートブリッジとして機能します。スイッチ1とスイッチ2の間にレイヤ2 PortChannelが確立されている。スイッチ3はアクセスレイヤスイッチとして機能します。スイッチ1とスイッチ3の間のリンクは、奇数のVLANではスイッチ3側でブロックされ、偶数のVLANではスイッチ2とスイッチ3の間のリンクはスイッチ3側でブロックされます。
図 1.ディストリビューションおよびアクセススイッチの接続
SW1のすべてのVLANがフォワーディングステートである
Vlan10およびVlan20のSW1スパニングツリー
SW2のすべてのVLANがフォワーディングステートである
Vlan20のSW2スパニングツリー
SW3でブロックされたポートの詳細(VLANの奇数と偶数)
SW3ルートポートの詳細:VLANの奇数と偶数
Vlan10およびVlan20のSW3スパニングツリー
Switch3 Eth0/1ポートで取得されたパケットキャプチャは、VLAN20のSwitch1から受信されたSTPフレームが、ルートブリッジに到達するためのルートパスコストが0であることを示しています。
SW3のEth0/1ポートでのVlan20のパケットキャプチャ
Switch3 Eth0/2ポートで取得されたパケットキャプチャは、VLAN20のSwitch2から受信されたSTPフレームが、ルートブリッジに到達するためのルートパスコストが1000000であることを示しています。
SW3のEth0/2ポートでVlan20のパケットキャプチャ
Switch3 Eth0/1ポートで取得されたパケットキャプチャは、VLAN10のSwitch1から受信されたSTPフレームが、ルートブリッジに到達するためのルートパスコストが1000000であることを示しています。
SW3のEth0/1ポートでのVlan10のパケットキャプチャ
Switch3 Eth0/2ポートで取得されたパケットキャプチャは、VLAN10のSwitch2から受信されたSTPフレームがルートブリッジに到達するためのルートパスコストが0であることを示しています。
SW3のEth0/2ポートでVlan10のパケットキャプチャ
これで、アクセススイッチ – スイッチ3で障害が発生し、新しいアクセススイッチに置き換えられました。新しいアクセススイッチ(スイッチ3)をネットワークに追加すると、ディストリビューションスイッチ上のポートがSTPによってブロックされ、スイッチ1とスイッチ2の指定ポートが「ルートの不一致」状態に移行することが確認されています。
図2:スイッチ2のEth0/2ポートがブロッキングステートに移行
次の図は、スイッチ2のEth0/2ポートが偶数のVLANに対してブロッキングモードになることを示しています。
スイッチ1はVLAN 20、40、60のルートブリッジで、スイッチ2のルートブリッジにPO1経由で到達するコストは1000000で、Eth0/2経由で到達するコストは2000100(2000000+100)です。
スイッチ3には、ルートブリッジに到達するためのEth0/1上のコスト100と、ルートブリッジに到達するためのEth0/2経由のコスト1000100があります。
スイッチ2のEth0/2のコストが高いため、VLAN 20、40、60のポートEth0/2がブロックされました。
2月10日04:31:55.516: %SPANTREE-2-ROOTGUARD_BLOCK:ブリッジaabb.cc00.0500から上位のSTP BPDUを受信しました。ルートガードがVLAN0060のポートEthernet0/2をブロックしている。 2月10日04:32:26.086: %SPANTREE-2-ROOTGUARD_BLOCK:ブリッジaabb.cc00.0500から上位STP BPDUを受信した。VLAN0040上のEthernet0/2ポートをブロックするルートガード
SW2のルート不整合ポートの詳細(VLANの偶数)
SW3のすべてのVLANがフォワーディングステートである
図3:スイッチ1のEth0/1ポートがブロッキングステートに移行
次の図は、スイッチ1のEth0/1ポートが奇数のVLANに対してブロッキングモードになることを示しています。
Switch 2はVLAN 10、30、50、70のルートブリッジで、Switch 1上のルートブリッジにPO1経由で到達するコストは1000000で、Eth0/1経由で到達するコストは2000100(2000000+100)です。
スイッチ3には、ルートブリッジに到達するためのEth0/2上のコスト100と、ルートブリッジに到達するためのEth0/1経由のコスト1000100があります。
スイッチ1のEth0/1のコストが高いため、VLAN 10、30、50、70のポートEth0/2がブロックされました。
2月10日14:49:58.952:%SPANTREE-2-ROOTGUARD_BLOCK:ブリッジaabb.cc00.0500から上位のSTP BPDUを受信しました。ルートガードはVLAN0010のポートEthernet0/1をブロックします。
SW1ルートの不一致ポートの詳細(VLANの奇数)
スイッチ1のEth0/1ポートで取得されたパケットキャプチャは、VLAN10のスイッチ3から受信されたSTPフレームがルートブリッジに到達するためのルートパスコストが100であることを示しています。
SW1 Eth0/1でVlan10に対して取得されたパケットキャプチャ
スイッチ2のEth0/2ポートで取得されたパケットキャプチャは、VLAN20のスイッチ3から受信されたSTPフレームが、ルートブリッジに到達するためのルートパスコストが100であることを示しています。
Vlan20のSW2 Eth0/2ポートで取得されたパケットキャプチャ
スイッチ3は、「ショート」として指定されたパスコスト方式を使用してネットワークに統合されました。 これに対して、スイッチ1とスイッチ2では、「長い」カテゴリのパスコスト方式が使用されました。 スイッチ3は、上位のBPDUをスイッチ1とスイッチ2の両方に送信しました。上位のBPDUを受信すると、ルートガードによってポートがroot-inconsistent STPステートに設定されます。
ソリューション
この問題は、アクセススイッチ3でパスコスト設定が「short」から「long」に変更されたときに解決されました。
SW3(config)#spanning-tree pathcost method long
SW1#
*Feb 10 08:07:40.188: %SPANTREE-2-ROOTGUARD_UNBLOCK: Root guard unblocking port Ethernet0/1 on VLAN0010.
SW2#
*Feb 10 08:07:39.188: %SPANTREE-2-ROOTGUARD_UNBLOCK: Root guard unblocking port Ethernet0/2 on VLAN0020
*Feb 10 08:07:40.188: %SPANTREE-2-ROOTGUARD_UNBLOCK: Root guard unblocking port Ethernet0/2 on VLAN0040
SW3 Eth0/2がVlanの偶数の場合にブロッキング状態に移行しました
SW3 Eth0/1はVLANの奇数に対してブロッキング状態に移行しました