はじめに
このドキュメントでは、ネットワークに冗長パスが存在する場合にループが発生しないようにするため、スパニングツリープロトコル(STP)を使用する方法について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。
このドキュメントに記載されているスパニングツリーの原則は、STPをサポートするほぼすべてのデバイスに適用できます。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
背景説明
Spanning-Tree Protocol(STP; スパニングツリー プロトコル)は、ブリッジおよびスイッチで動作するレイヤ 2 プロトコルです。STP の仕様は IEEE 802.1D と呼ばれます。STP の主な目的は、ネットワーク内に冗長パスがある場合にループが作成されないようにすることです。ループはネットワークにとって致命的な状態です。
このドキュメントの設定は、Catalyst OS(CatOS)が稼働している Catalyst 2926G、2948G、2980G、4500/4000、5500/5000 および 6500/6000 スイッチに適用できます。他のスイッチ プラットフォームでの STP の設定については、次のドキュメントを参照してください。
ネットワーク図
このドキュメントでは、次のネットワーク セットアップを使用します。
コンセプト
STP は 802.1D に準拠したブリッジおよびスイッチ上で動作します。STP には各種の派生版がありますが、802.1D が最も一般的であり、広く実装されています。STP はネットワークでのループを回避するためにブリッジおよびスイッチに実装します。冗長リンクが必要な状況で、ループを避けるために STP を使用します。冗長リンクは、ネットワークでのフェールオーバーに備えるものとして、バックアップと同様に重要です。プライマリが故障した場合には、引き続きユーザがネットワークを使用できるように、バックアップ リンクがアクティブになります。ブリッジおよびスイッチで STP が動作していない場合、このような障害によってループが発生する場合があります。接続された2台のスイッチが異なる種類のSTPを実行している場合、コンバージェンスには異なるコントロールが必要です。スイッチで異なる派生版が使用されていると、ブロッキングステートとフォワーディングステートの間で制御の問題が発生します。したがって、同じ派生版の STP を使用することを推奨いたします。次のネットワークについて考えます。
このネットワークでは、冗長リンクは、スイッチAとスイッチBの間にプロットされます。しかし、この設定ではブリッジング ループが発生する可能性があります。たとえばステーション M からステーション N 宛てに送信されたブロードキャスト パケットやマルチキャスト パケットは、両方のスイッチ間で繰り返し循環し続けるだけになります。
しかし、両方のスイッチで STP が動作している場合、ネットワークは論理的に次のようになります。
ネットワーク図内のシナリオには、次の情報が適用されています。
-
スイッチ 15 はバックボーン スイッチである。
-
スイッチ 12、13、14、16、および 17 は、ワークステーションおよび PC に接続しているスイッチである。
-
このネットワークでは、次の VLAN が定義されている。
-
VLAN トランク プロトコル(VTP)のドメイン名は STD-Doc である。
このような望ましいパスの冗長化を実現するとともに、ループ状態が発生しないようにするため、STP では拡張ネットワーク内のすべてのスイッチを範囲とするツリーを定義します。STP によって、特定の冗長データ パスが、強制的にスタンバイ(ブロック)ステートになりますが、そのほかのパスはフォワーディング ステートのままです。フォワーディング ステートのリンクが使用できなくなると、STP によるネットワークの再構成が実行され、適切なスタンバイ状態のパスをアクティブ化することによって、データ パスの再ルーティングが行われます。
テクノロジーの説明
STP で重要なことは、ネットワーク内のすべてのスイッチによってルート ブリッジが選出され、そのルート ブリッジがネットワークの中心点になることです。どのポートをブロックし、どのポートをフォワーディング モードにするかなど、ネットワーク内のそのほかの決定は、このルート ブリッジを中心に決定されます。ブリッジの環境とは異なって、スイッチド環境では、ほとんどの場合、複数の VLAN が対象になります。通常、スイッチド ネットワークに実装されるルート ブリッジは、ルート スイッチと呼ばれます。各 VLAN は別々のブロードキャスト ドメインであるため、各 VLAN には固有のルート ブリッジが必要となります。1 台のスイッチに異なる VLAN のルートをすべて置くこともできますし、あるいは別々のスイッチに置くこともできます。
注:特定のVLANに対するルートスイッチの選択は非常に重要です。ルート スイッチはシステム管理者が選択できます。またはスイッチ自身に選択させることができますが、これにはリスクがあります。ルートの選択処理を管理しない場合は、最適ではないパスがネットワーク上にできる可能性があります。
すべてのスイッチでは、ルート スイッチの選択時に使用する情報のほか、以降のネットワーク コンフィギュレーションに使用する情報が互いに交換されます。この情報は、Bridge Protocol Data Unit(BPDU; ブリッジ プロトコル データ ユニット)によって搬送されます。各スイッチでは、ネイバーに送信した BPDU 内のパラメータと、ネイバーから受信した BPDU 内のパラメータとが比較されます。
STP のルート選択処理では、数値が小さい方が優れていると見なされます。スイッチ B がアドバタイズしたルート ID よりも小さい数値のルート ID をスイッチ A がアドバタイズすると、スイッチ A からの情報の方が優れていることになります。Switch B は自分のルート ID のアドバタイズメントを停止し、Switch A のルート ID を受け入れます。
次に示すようなSTPのオプション機能についての詳細は、『STPのオプション機能』を参照してください。
-
ポートファスト
-
ルート ガード
-
ループ ガード
-
BPDU Guard
STP の動作
タスク
前提条件
STP を設定する前に、スパニングツリーのルートとなるスイッチを選択します。このスイッチは最も高性能なスイッチである必要はありませんが、ネットワークで最も中央に配置されているスイッチを選択してください。ネットワークを往来するデータフローはこのスイッチが中心となります。また、ネットワーク上で最も外部介入の少ないスイッチを選択してください。バックボーン スイッチには通常は端末が接続されないため、多くの場合はスパニングツリーのルートとなります。さらに、ネットワーク内で移動または変更を行っても、これらのスイッチに影響が及ぶことはほとんどありません。
どのスイッチをルート スイッチにするかを決めたら、そのスイッチをルート スイッチとして指定するために適切な変数を設定します。設定する必要がある変数はbridge priority だけです。このスイッチに、他のすべてのスイッチよりも低い bridge priority が設定されていると、他のスイッチによってこのスイッチが自動的にルート スイッチとして選択されます。
スイッチ ポート上のクライアント(端末)
ポートごとにset spantree portfast コマンドを発行することもできます。portfast 変数をポートで有効にすると、ポートはただちにブロッキングモードからフォワーディングモードに切り替わります。portfast を有効にすると、Novell Netwareを使用しているクライアントや、IPアドレスの取得にDHCPを使用しているクライアントで、タイムアウトを回避するのに役立ちます。ただし、スイッチ間接続がある場合は、このコマンドを使用しないでください。この場合、このコマンドを実行するとループが発生します。ブロッキング モードからフォワーディング モードへの移行する場合には 30 ~ 60 秒の遅延が発生します。この遅延によって、2 台のスイッチを接続する際のネットワーク内での一時的なループ状態の発生が防止されます。
その他の STP 変数のほとんどは、デフォルト値のままにしておきます。
動作規則
このセクションでは、STP の動作方法に関する規則を一覧しています。スイッチの最初の起動時に、ルート スイッチの選択処理が開始されます。各スイッチは、VLAN を単位として、直接接続されているスイッチに BPDU を送信します。
BPDU がネットワーク全体に行き渡ると、各スイッチは自身が送出した BPDU と、ネイバーから受信した BPDU とを比較します。この後、スイッチ間でどのスイッチがルート スイッチになるかの合意が取られます。ネットワーク内で最も低いブリッジ ID を持つスイッチが、この選出プロセスで選出されます。
注:VLANごとに1つのルートスイッチが識別されることに注意してください。ルートスイッチの識別が終わると、スイッチはこれらのルールに従います。
-
STP 規則 1:ルート スイッチの全ポートは、フォワーディング モードである必要があります。
注:セルフループポートを含む一部の稀なケースでは、このルールの例外があります。
次に、各スイッチはルートへの到達に最適なパスを決定します。各スイッチは、各自のすべてのポートで受信したすべての BPDU に含まれている情報値を比較することによって、このパスを決定します。スイッチでは、ルート スイッチへの到達に、BPDU に含まれる情報値が最も小さいポートを使用します。このポートがルート ポートになります。ルート ポートを決定すると、スイッチは規則 2 に進みます。
-
STP 規則 2:ルート ポートはフォワーディング モードに設定する必要があります。
さらに、LAN セグメントごとのスイッチ間で相互に通信が行われ、どのスイッチが、セグメントからルート ブリッジへのデータの移動に最適であるかが判断されます。このスイッチのことを代表スイッチと呼びます。
-
STP 規則 3:単一の LAN セグメントでは、その LAN セグメントに接続している代表スイッチのポートは、必ずフォワーディング モードになります。
-
STP 規則 4:VLAN 固有のすべてのスイッチにあるその他のポートは、すべてブロッキング モードにする必要があります。この規則が適用されるのは、他のブリッジやスイッチに接続しているポートに対してだけです。ワークステーションや PC に接続しているポートが STP の影響を受けることはありません。これらのポートは転送されます。
注:STPがPer-VLAN Spanning Tree(PVST/PVST+)モードで動作しているときにVLANを追加または削除すると、そのVLANインスタンスに対してスパニングツリーの再計算がトリガーされ、そのVLANに対してのみトラフィックが中断されます。トランク リンクのその他の VLAN 部分は通常どおりトラフィックを転送できます。存在している Multiple Spanning Tree(MST)インスタンスの VLAN を追加または削除すると、そのインスタンスのスパニングツリーの再計算が行われ、その MST インスタンスのすべての VLAN 部分でトラフィックが中断します。
注:デフォルトでは、スパニングツリーはすべてのポートで実行されます。スパニングツリー機能はスイッチ内でポートごとにオフにすることはできません。VLAN ごとに、またはスイッチ上でグローバルに STP をオフにすることができますが、これは推奨できません。スパニングツリーを無効にすると、ネットワーク内にレイヤ2ループが作成されるので、常に細心の注意を払う必要があります。
手順説明
次のステップを実行します。
-
スイッチで稼働しているソフトウェアバージョンを表示するには、show version コマンドを発行します。
注:すべてのスイッチで同じソフトウェアバージョンが稼働しています。
Switch-15> (enable)show version
WS-C5505 Software, Version McpSW: 4.2(1) NmpSW: 4.2(1)
Copyright (c) 1995-1998 by Cisco Systems
NMP S/W compiled on Sep 8 1998, 10:30:21
MCP S/W compiled on Sep 08 1998, 10:26:29
System Bootstrap Version: 5.1(2)
Hardware Version: 1.0 Model: WS-C5505 Serial #: 066509927
Mod Port Model Serial # Versions
--- ---- ---------- --------- ----------------------------------------
1 0 WS-X5530 008676033 Hw : 2.3
Fw : 5.1(2)
Fw1: 4.4(1)
Sw : 4.2(1)
このシナリオでは、スイッチ 15 はバックボーン スイッチであるため、すべての VLAN のネットワークのルート スイッチとして最適な選択肢です。
set spantree root vlan_id
-
コマンドを発行して、vlan_id 指定したVLANのスイッチの優先度を8192に設定します。
注:スイッチのデフォルトのプライオリティは32768です。このコマンドで優先順位を設定すると、スイッチ 15 が最低の優先順位を持つことになるため、スイッチ 15 をルート スイッチとして選択されるように指定することになります。
Switch-15> (enable)set spantree root 1
VLAN 1 bridge priority set to 8192.
VLAN 1 bridge max aging time set to 20.
VLAN 1 bridge hello time set to 2.
VLAN 1 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 1.
Switch-15> (enable)
Switch-15> (enable)set spantree root 200
VLAN 200 bridge priority set to 8192.
VLAN 200 bridge max aging time set to 20.
VLAN 200 bridge hello time set to 2.
VLAN 200 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 200.
Switch-15> (enable)
Switch-15> (enable)set spantree root 201
VLAN 201 bridge priority set to 8192.
VLAN 201 bridge max aging time set to 20.
VLAN 201 bridge hello time set to 2.
VLAN 201 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 201.
Switch-15> (enable)
Switch-15> (enable)set spantree root 202
VLAN 202 bridge priority set to 8192.
VLAN 202 bridge max aging time set to 20.
VLAN 202 bridge hello time set to 2.
VLAN 202 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 202.
Switch-15>
Switch-15> (enable)set spantree root 203
VLAN 203 bridge priority set to 8192.
VLAN 203 bridge max aging time set to 20.
VLAN 203 bridge hello time set to 2.
VLAN 203 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 203.
Switch-15>
Switch-15> (enable)set spantree root 204
VLAN 204 bridge priority set to 8192.
VLAN 204 bridge max aging time set to 20.
VLAN 204 bridge hello time set to 2.
VLAN 204 bridge forward delay set to 15.
Switch is now the root switch for active VLAN 204.
Switch-15> (enable)
このコマンドの同じ効果のある短縮版を次に示します。
set spantree priority Switch-15> (enable)set spantree root 1,200-204
VLANs 1,200-204 bridge priority set to 8189.
VLANs 1,200-204 bridge max aging time set to 20.
VLANs 1,200-204 bridge hello time set to 2.
VLANs 1,200-204 bridge forward delay set to 15.
Switch is now the root switch for active VLANs 1,200-204.
Switch-15> (enable)
コマンドは、ルートスイッチを指定するための第3の方法です。
Switch-15> (enable)set spantree priority 8192 1
Spantree 1 bridge priority set to 8192.
Switch-15> (enable)
注:このシナリオでは、すべてのスイッチはクリアな(デフォルト)設定で起動しています。したがって、すべてのスイッチがブリッジ優先度 32768 で起動しています。ネットワーク内のすべてのスイッチの優先度が 8192 より大きいかどうかが不明の場合は、目的のルート ブリッジの優先度を 1 に設定します。
set spantree portfast mod_num/port_num enable
-
コマンドを発行して、スイッチ12、13、14、16、および17のPortFast設定を行います。
注:この設定は、ワークステーションまたはPCに接続するポートでのみ行ってください。他のスイッチに接続されているポート上では PortFast を有効にしないでください。
この情報に基づいて、ポート3/1 ~ 3/24およびポート4/1 ~ 4/24に対してset spantree portfastコマンドを発行します。
show spantree vlan_id Switch-12> (enable)set spantree portfast 3/1-24 enable
Warning: Spantree port fast start should
only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc.
to a fast start port can cause temporary spanning-tree loops. Use with caution. Spantree ports 3/1-24 fast start enabled.
Switch-12> (enable) Switch-12> (enable)set spantree portfast 4/1-24 enable Warning: Spantree port fast start should
only be enabled on ports connected to a single host. Connecting hubs, concentrators, switches, bridges, etc.
to a fast start port can cause temporary spanning-tree loops. Use with caution. Spantree ports 4/1-24 fast start enabled. Switch-12> (enable)
-
コマンドを発行して、スイッチ15が該当するすべてのVLANのルートであることを確認します。
このコマンドの出力を使用して、ルート スイッチになっているスイッチの MAC アドレスと、コマンドを発行したスイッチの MAC アドレスとを比較します。両方のアドレスが一致すれば、操作しているスイッチが VLAN のルート スイッチであることがわかります。また、ルート ポートが 1/0 の場合も、ルート スイッチで操作していることを意味します。次に、コマンドの出力例を示します。
Switch-15> (enable)show spantree 1
VLAN 1
spanning-tree enabled
spanning-tree type ieee
Designated Root 00-10-0d-b1-78-00
!--- This is the MAC address of the root switch for VLAN 1.
Designated Root Priority 8192
Designated Root Cost 0
Designated Root Port 1/0
Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Bridge ID MAC ADDR 00-10-0d-b1-78-00
Bridge ID Priority 8192
Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
この出力は、スイッチ15がVLAN 1.のスパニングツリーのルートであることを示します。指定ルートスイッチのMACアドレス00-10-0d-b1-78-00は、スイッチ15,00-10-0d-b1-78-00のブリッジID MACアドレスと同じです。さらに、指定ルート ポートが 1/0 であることによっても、このスイッチが指定ルートであることが示されています。
スイッチ12のこの出力では、スイッチ15がVLAN 1のDesignated Rootとして認識されています。
Switch-12> (enable)show spantree 1
VLAN 1
spanning-tree enabled
spanning-tree type IEEEDesignated Root 00-10-0d-b1-78-00
!--- This is the MAC address of the root switch for VLAN 1.
Designated Root Priority 8192
Designated Root Cost 19
Designated Root Port 2/3
Root Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
Bridge ID MAC ADDR 00-10-0d-b2-8c-00
Bridge ID Priority 32768
Bridge Max Age 20 sec Hello Time 2 sec Forward Delay 15 sec
注:他のスイッチとVLANに対するshow spantree vlan_idコマンドの出力でも、スイッチ15がすべてのVLANの指定ルートであることが示されています。
確認
このセクションでは、設定が正しく動作していることを確認するために使用できる情報を示します。
トラブルシュート
このセクションでは、設定のトラブルシューティングに役立つ情報を紹介します。
ポート速度/デュプレックスが変化した場合に STP パス コストが自動的に変化する
STP では、スイッチ間のリンクのメディア速度(帯域幅)と、フレームを転送する各ポートのポート コストに基づいてパス コストが計算されます。スパニリングツリーでは、このパス コストに基づいてルート ポートが選択されます。ルート ブリッジへのパス コストが最低であるポートがルート ポートになります。ルート ポートは、常にフォワーディング ステートになります。
ポートの速度/デュプレックスが変化した場合、スパニリングツリーは自動的にパス コストを再計算します。パス コストが変化すると、スパニングツリー トポロジが変更される可能性があります。
ポートコストの計算方法についての詳細は、『スパニングツリーの設定』の「ポートコストの計算と割り当て」セクションを参照してください。
トラブルシューティングのためのコマンド
注:debug コマンドを使用する前に、『debug コマンドの重要な情報』を参照してください。
コマンドの概要
構文: |
show version |
この文書での使用例: |
show version |
構文: |
set spantree root [vlan_id] |
この文書での使用例: |
set spantree root 1 |
|
set spantree root 1,200-204 |
構文: |
set spantree priority [vlan_id] |
この文書での使用例: |
set spantree priority 8192 1 |
構文: |
set spantree portfast mod_num/port_num {enable | disable} |
この文書での使用例: |
set spantree portfast 3/1-24 enable |
構文: |
show spantree [vlan_id] |
この文書での使用例: |
show spantree |
関連情報