LAN スイッチング : スパニング ツリー プロトコル

Catalyst スイッチでのスパニング ツリー プロトコル(STP)についての説明と設定方法

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2008 年 7 月 21 日) | 英語版 (2015 年 10 月 20 日) | フィードバック


目次


概要

Spanning-Tree Protocol(STP; スパニングツリー プロトコル)は、ブリッジおよびスイッチで動作するレイヤ 2 プロトコルです。 STP の仕様は IEEE 802.1D と呼ばれます。 STP の主な目的は、ネットワークが冗長パスを備えている場合、ループが発生しないようにすることです。 ループはネットワークにとって致命的な状態です。

前提条件

要件

このドキュメントに関する固有の要件はありません。

使用するコンポーネント

このドキュメントでは Catalyst 5500/5000 スイッチを使用していますが、このドキュメントに記述されているスパニング ツリーの原理は、STP をサポートしている、ほとんどすべてのデバイスに適用できます。

例として、このドキュメントでは次の機器を使用しています。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。 ネットワークが稼働中の場合は、コマンドが及ぼす潜在的な影響を十分に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景理論

このドキュメントの設定は、Catalyst OS(CatOS)が稼働している Catalyst 2926G、2948G、2980G、4500/4000、5500/5000 および 6500/6000 スイッチに適用できます。 他のスイッチ プラットフォームでの STP の設定については、次のドキュメントを参照してください。

ネットワーク図

このドキュメントでは、次のネットワーク構成を使用しています。

/image/gif/paws/5234/5-a.gif

概念

STP は 802.1D に準拠したブリッジおよびスイッチ上で動作します。 STP には各種の派生版がありますが、802.1D が最も一般的であり、広く実装されています。 STP はネットワークでのループを回避するためにブリッジおよびスイッチに実装します。 冗長リンクが必要な状況で、ループを避けるために STP を使用します。 冗長リンクは、ネットワークでのフェールオーバーに備えるものとして、バックアップと同様に重要です。 プライマリが故障した場合には、引き続きユーザがネットワークを使用できるように、バックアップ リンクがアクティブになります。 ブリッジおよびスイッチで STP が動作していない場合、このような障害によってループが発生する場合があります。 接続されている 2 台のスイッチで異なる派生版の STP が稼働している場合、コンバージには異なるタイミングが必要です。 スイッチで異なる派生版が使用されている場合、ブロッキング ステートとフォワーディング ステートの間でタイミングの問題が発生します。 したがって、同じ派生版の STP を使用することを推奨いたします。 次のネットワークについて考えます。

5-b.gif

このネットワークでは、スイッチ A とスイッチ B の間に冗長リンクが計画されています。 しかし、この設定ではブリッジング ループが発生する可能性があります。 たとえばステーション M からステーション N 宛てに送信されたブロードキャスト パケットやマルチキャスト パケットは、両方のスイッチ間で繰り返し循環し続けるだけになります。

しかし、両方のスイッチで STP が動作している場合、ネットワークは論理的に次のようになります。

/image/gif/paws/5234/5-c.gif

ネットワーク図内のシナリオには、次の情報が適用されています。

  • スイッチ 15 はバックボーン スイッチである。

  • スイッチ 12、13、14、16、および 17 は、ワークステーションおよび PC に接続しているスイッチである。

  • このネットワークでは、次の VLAN が定義されている。

    • 1

    • 200

    • 201

    • 202

    • 203

    • 204

  • 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 のオプション機能の設定を参照してください。

  • PortFast

  • ルート ガード

  • ループ ガード

  • BPDU ガード

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 内の情報量が最も少ないポートを使用してルート スイッチに到達します。 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 ループが発生するためです。

手順説明

次の手順を実行します。

  1. スイッチで稼働しているソフトウェア バージョンを表示するには、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 のネットワークのルート スイッチとして最適な選択肢です。

  2. 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)

    このコマンドの同じ効果のある短縮版を次に示します。

    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)

    set spantree priority コマンドは、ルート スイッチを指定するための第 3 の方法です。

    Switch-15> (enable)set spantree priority 8192 1
    Spantree 1 bridge priority set to 8192.
    Switch-15> (enable)

    このシナリオでは、すべてのスイッチはクリアな設定で起動します。 したがって、すべてのスイッチがブリッジ優先度 32768 で起動しています。 ネットワーク内のすべてのスイッチの優先度が 8192 より大きいかどうかが不明の場合は、目的のルート ブリッジの優先度を 1 に設定します。

  3. set spantree portfast mod_num/port_num enable コマンドを発行して、スイッチ 12、13、14、16、および 17 の PortFast 設定を行います。

    この設定はワークステーションまたは PC に接続されているポート上でのみ行います。 他のスイッチに接続されているポート上では PortFast を有効にしないでください。

    この例では、スイッチ 12 だけを設定します。 他のスイッチも同じ方法で設定できます。 スイッチ 12 のポート接続を次に示します。

    • ポート 2/1 がスイッチ 13 に接続

    • ポート 2/2 がスイッチ 15 に接続

    • ポート 2/3 がスイッチ 16 に接続

    • ポート 3/1 ~ 3/24 が PC に接続

    • ポート 4/1 ~ 4/24 が UNIX ワークステーションに接続

    この情報に基づいて、ポート 3/1 ~ 3/24 およびポート 4/1 ~ 4/24 に対して set spantree portfast コマンドを発行します。

    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)
  4. show spantree vlan_id コマンドを発行して、スイッチ 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 のブリッジ ID MAC アドレス 00-10-0d-b1-78-00 と同じです。 さらに、指定ルート ポートが 1/0 であることによっても、このスイッチが指定ルートであることが示されています。

    スイッチ 12 からの出力は、スイッチ 12 がスイッチ 15 を VLAN 1 の指定ルートとして、認識したことを示しています。

    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 の指定ルートであることが示されています。

確認

このセクションでは、設定が正しく動作していることを確認するための方法について説明します。

Output Interpreter Tool(OIT)(登録ユーザ専用)では、特定の show コマンドがサポートされています。 OIT を使用して、show コマンド出力の解析を表示できます。

  • show spantree vlan_id:このコマンドを発行したスイッチから見た、この VLAN ID に対するスパニング ツリーの現在の状態を示します。

  • show spantree summary:接続されているスパニング ツリー ポートの要約を VLAN ごとに表示します。

トラブルシューティング

ここでは、設定のトラブルシューティングに役立つ情報について説明します。

ポート速度/デュプレックスが変化した場合に STP パス コストが自動的に変化する

STP では、スイッチ間のリンクのメディア速度(帯域幅)と、フレームを転送する各ポートのポート コストに基づいてパス コストが計算されます。 スパニリングツリーでは、このパス コストに基づいてルート ポートが選択されます。 ルート ブリッジへのパス コストが最低であるポートがルート ポートになります。 ルート ポートは、常にフォワーディング ステートになります。

ポートの速度/デュプレックスが変化した場合、スパニリングツリーは自動的にパス コストを再計算します。 パス コストが変化すると、スパニングツリー トポロジが変更される可能性があります。

ポート コストの計算方法についての詳細は、「スパニング ツリーの設定」の「ポート コストの計算と割り当て」セクションを参照してください。

トラブルシューティングのためのコマンド

Output Interpreter Tool(OIT)(登録ユーザ専用)では、特定の show コマンドがサポートされています。 OIT を使用して、show コマンド出力の解析を表示できます。

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 1


関連情報


Document ID: 5234