STP の基本設定 – Cisco スイッチ

ネットワーク機器、操作・設定

CiscoスイッチにはSTP(Spanning-Tree Protocol)という機能によりループを防止するためのプロトコルがあります。うまく設定することでループを防止しつつ障害時の迂回経路を設計することができます。ここではSTPの基本設定を事前検討から設定完了後の動作確認まで行います。

STP 設定の目的

STP(スパニングツリープロトコル) を利用すると、複数の L2 スイッチで冗長構成をつくり、ループになった構成上でブロードキャストストームを防止しながら、障害時の迂回経路を確保することができます。

ループ構成上で STP が有効になっていると、スイッチ同士が情報を連携し合い優先順位に利用する値や MAC アドレス、ポート速度などをもとにループを防止するポイントが自動で計算されて決まります。

このように STP を有効にしているだけでも、ループは防止できますが、優先順位に利用する設定値を変更することでデータをブロックするポイントやデータの流れを考慮した設計が可能になります。

STP の基本設定で事前に検討すること

STP を設定する上で意識する必要のある重要な点は、主に以下の2点です。

① ルートスイッチの決定
② ブロッキングポートの位置

①のどのスイッチをルートスイッチに決定するかは最も重要な設定になります。接続されたすべてのスイッチはルートスイッチの位置を基準に計算されて自身の各種ステータスが決定されることになります。

一般的にエンド機器が接続されるスイッチに対してデータが流れてくる上流側のスイッチをルートスイッチに設定します。

また、ルートスイッチの障害時に役割を引き継ぐセカンダリルートスイッチも決めておきます。

②のブロッキングポートの位置は、ルートスイッチを基準に自動的に設定されますが、効率的なデータの流れを確保するために調整が必要な場合があります。

STP の基本設定

以下のサンプル構成を参考に、SwitchA~Cの3台のスイッチをループ状に接続して、VLAN1に対してプライオリティ値で優先順位をつけることで、ルートスイッチおよびセカンダリルートスイッチを設定する。

STPの基本設定の構成
STPの基本設定の構成

STP モードの設定。 ※デフォルトでPVST+が有効。

STPモードの設定

コマンド実行例: PVST+ モードに設定します。 ※デフォルトで有効。

SwitchB (config)# spanning-tree mode pvst

STP の有効化設定。 ※デフォルトで有効。

STPの有効化設定

コマンド実行例:VLAN1のSTPを有効にします。※デフォルトで有効。

(config)# spanning-tree 1

コマンド実行例:あえて無効にする場合 no を最初に入力

(config)# no spanning-tree 1

ブリッジプライオリティの設定

スイッチAとスイッチBに対してプライオリティ値を設定します。

STPブリッジプライオリティの設定
STP値のプライオリティ値の設定

VLANごとに最小のブリッジIDを持ったスイッチがルートスイッチになります。ブリッジIDは、以下で設定するプライオリティ値とMACアドレスの組み合わせとなります。プライオリティ値が同じ場合はMACアドレスが最小のスイッチがルートスイッチに選出されます。

コマンド実行例: SwitchAへプライオリティ値4096を設定

SwitchA# configure terminal
SwitchA(config)# spanning-tree vlan 1 priority 4096
SwitchA(config)#

※プライオリティ値の設定値をミスした場合、以下のように有効な値を設定するよう求められます。

SwitchA(config)# spanning-tree vlan 1 priority 10
% Bridge Priority must be in increments of 4096.
% Allowed values are:
0 4096 8192 12288 16384 20480 24576 28672
32768 36864 40960 45056 49152 53248 57344 61440

ルートスイッチの障害時に役割を引き継ぐセカンダリルートスイッチを設定します。

コマンド実行例: SwitchBへプライオリティ値8192を設定

SwitchB# configure terminal
SwitchB(config)# spanning-tree vlan 1 priority 8192
SwitchB(config)#

STP設定完了後のブロッキングポートの位置

設定が完了し、ルートスイッチが決定されると各スイッチでSTPの計算によりルートポートや指定ポート、非指定ポートは以下の図のように決定され最終的にプロッキングポートの位置が確定します。

STPブロッキングポートの位置

RP(Root Port)=ルートポート
DP(Designated Port)=指定ポート
NDP (Non Designated Port) =非指定ポート ,ブロッキングポート

SwitchAがルートスイッチのこの構成では、すべてのリンクで 1Gbps を使用しているため、SwitchB と SwitchC のルートポート(RP)はパスコストが最も低くなるルートスイッチと直接接続するポートになります。

SwitchAはルートスイッチなので、すべてのポートが指定ポート(DP)となります。

SwitchB と SwtichC はどちらもルートスイッチまでの距離(パスコスト)が等しいので、プライオリティ値の低い(優先順位が高い) SwitchB側のポートが指定ポート(DP)となり、SwitchC 側のポートが非指定ポート(NDP)となりブロッキング状態となります。

STP ステータスの確認

以下の接続インターフェイスの情報を追記したものを参考にステータスを確認します。

コマンド実行例:

Root ID ではルートスイッチの各情報が表示されていて、プライオリティ値や MAC アドレスなどが確認できます。
プライオリティ値は、設定した値(4096)と VLAN ID(1)を足した値になります。
SwitchA は、自身がルートスイッチなので、「This bridge is the root」と表示されます。
その他、各種タイマー(Hello Time, Max Age, Forward Delay)の設定が確認できますが、この例ではデフォルトの設定値になります。

Bridge ID では自身の情報が確認できます。自身がルートスイッチなので上の情報と同じになります。

つづくInterfaceの項目では、STPに参加している自身のインターフェイスのスパニングツリーステータスが確認できます。上の結果では、

Gi1/0/1, Gi1/0/2 ともに、指定ポート(Desg)として動作しており、 Forwarding (FWD) のステータスになっていることなどがわかります。

続いて SwitchB と SwitchC を順に確認します。

コマンド実行例:

SwitchCではGi0/2のステータスがBLK(Blocking)されていていることがわかります。

冗長経路の切り替わり動作

STP は利用している経路に障害があれば検知して再計算された結果、冗長経路として存在しているブロッキングポートを自動で開放して転送可能な状態にします。たとえば、以下のようなリンク障害の場合、ループ構成はなくなるので、ブロッキングポートはリスニングとラーニングのステータスを経由して約30秒でフォワーディング(FWD)状態になり使用できるようになります。

上記の個所がリンクダウンした場合、STP のステータスは以下のようになります。

SwitchAでは、リンクダウンしたGi1/0/1がなくなっています。

SwitchBでは、特にステータスに変化はありません。

SwitchCでは、リンクダウンしたGi1/0/1がなくなり、Gi1/0/2 がブロッキング(BLK)からフォワーディング(FWD)に切り替わりました。

参考リンク

STP(スパニングツリープロトコル) 拡張機能と設定 – Cisco スイッチ

STP(Spanning Tree Protocol)とは – 概要と仕組み

ネットワークループの発生時に原因個所を特定する方法


コメント