スパニングツリー

スパニングツリー

1. 機能概要

スパニングツリーは、ネットワーク上の経路の冗長性を確保しつつ、ループを防止する機能です。
通常、L2スイッチは、ブロードキャストパケットを隣接するスイッチへフラッディングします。
ループ状にネットワークが構成されていた場合、スイッチは互いにフラッディングし合うため、ループが発生してしまいます。
これにより帯域幅とスイッチのCPUリソースは大幅に減少してしまいます。
スパニングツリーは、このような物理的にループ状に構成された場合でも、論理的にはツリー構造になるように各ポートの役割を決め、ブロードキャストパケットが回り続けることのない構成にします。
またリンク障害が発生した場合でも、障害を検出しツリーを再構築することで回復します。
本製品では、STP, RSTP, MSTPをサポートしています。

  • スパニングツリー機能概要

    image

2. 用語の定義

STP:Spanning Tree Protocol (802.1d)

スパニングツリープロトコル(STP)は、BPDU(ブリッジプロトコルデータユニット)メッセージを交換することで、ループを回避できるようにします。
本製品では、 IEEE802.1dRFC4188 をサポートしています。

RSTP:Rapid Spanning Tree Protocol (802.1w)

ラピッドスパニングツリープロトコル(RSTP)は、STPを拡張したもので、構成の変更やリンク障害があった場合に、STPよりも高速にスパニングツリーを回復できます。
本製品では、 IEEE802.1wRFC4318 をサポートしています。

MSTP:Multiple Spanning Tree Protocol (802.1s)

マルチプルスパニングツリープロトコル(MSTP)は、STPとRSTPを更に拡張したもので、VLANをインスタンスというグループにまとめ、そのグループ単位でスパニングツリーを構成します。
これにより経路の負荷を分散することができます。
本製品では、 IEEE802.1s をサポートしています。

3. 機能詳細

本製品は、MSTP によるルート構成を柔軟にするため、以下の機能に対応します。

  • プライオリティの設定

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

    • ポートプライオリティの設定

  • パスコストの設定

  • タイムアウトの設定

    • 転送遅延時間の設定

    • 最大エージング時間の設定

  • エッジポートの指定 (Port Fast設定)

  • BPDU ガード

  • BPDU フィルタリング

  • ルートガード

4. 関連コマンド

関連コマンドについて、以下に示します。
コマンドの詳細は、コマンドリファレンスを参照願います。

操作項目 操作コマンド

システムのスパニングツリーの設定

spanning-tree shutdown

転送遅延時間の設定

spanning-tree forward-time

最大エージング時間の設定

spanning-tree max-age

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

spanning-tree priority

インターフェースのスパニングツリーの設定

spanning-tree

インターフェースのリンクタイプの設定

spanning-tree link-type

インターフェースのBPDUフィルタリングの設定

spanning-tree bpdu-filter

インターフェースのBPDUガードの設定

spanning-tree bpdu-guard

インターフェースのパスコストの設定

spanning-tree path-cost

インターフェースのプライオリティの設定

spanning-tree priority

インターフェースのエッジポートの設定

spanning-tree edgeport

スパニングツリーの状態の表示

show spanning-tree

スパニングツリーのBPDUの統計情報の表示

show spanning-tree statistics

プロトコル互換モードのクリア

clear spanning-tree detected protocols

MSTモードへの移行

spanning-tree mst configuration

MSTインスタンスの生成

instance

MSTインスタンスに対するVLANの設定

instance vlan

MSTインスタンスのプライオリティの設定

instance priority

MSTリージョン名の設定

region

MSTリージョンのリビジョン番号の設定

revision

インターフェースに対するMSTインスタンスの設定

spanning-tree instance

MSTインスタンスにおけるインターフェースのプライオリティの設定

spanning-tree instance priority

MSTインスタンスにおけるインターフェースのパスコストの設定

spanning-tree instance path-cost

MSTリージョン情報の表示

show spanning-tree mst config

MSTP情報の表示

show spanning-tree mst

MSTインスタンス情報の表示

show spanning-tree mst instance

5. コマンド実行例

5.1. MSTP 設定例

本製品を使用して、下図の構成を実現します。
image

  • MSTインスタンスを使用してスパニングツリーを構成します。

  • 負荷分散のため、MSTインスタンス(VLAN)ごとに経路が異なるように設定します。

  • PCが接続されるLANポートはエッジポートにします。

■設定手順

  1. [スイッチ#A] VLAN #2 と VLAN #3 を定義します。

    Yamaha(config)#vlan database
    Yamaha(config-vlan)#vlan 2 (1)
    Yamaha(config-vlan)#vlan 3 (2)
    Yamaha(config-vlan)#exit
    1 VLAN #2 の定義
    2 VLAN #3 の定義
  2. [スイッチ#A] CISTのプライオリティを設定します。

    Yamaha(config)#spanning-tree priority 8192 (1)
    1 CISTのプライオリティを8192にする
  3. [スイッチ#A] MSTの設定を行います。

    Yamaha(config)#spanning-tree mst configuration
    Yamaha(config-mst)#region Sample (1)
    Yamaha(config-mst)#revision 1 (2)
    Yamaha(config-mst)#instance 2 vlan 2 (3)
    Yamaha(config-mst)#instance 3 vlan 3 (4)
    Yamaha(config-mst)#exit
    1 MSTリージョン名を「Sample」にする
    2 MSTリビジョン番号を1にする
    3 MSTインスタンス #2 を定義し、VLAN #2 と関連付ける
    4 MSTインスタンス #3 を定義し、VLAN #3 と関連付ける
  4. [スイッチ#A] LANポート #1 〜 #2 をトランクポートに設定し、VLAN #2 〜 #3 に所属させます。
    また、MSTインスタンス #2 〜 #3 を設定します。

    Yamaha(config)#interface port1.1
    Yamaha(config-if)#switchport mode trunk (1)
    Yamaha(config-if)#switchport trunk allowed vlan add 2,3 (2)
    Yamaha(config-if)#spanning-tree instance 2 (3)
    Yamaha(config-if)#spanning-tree instance 3 (4)
    Yamaha(config-if)#exit
    (上記設定をLANポート #2に対しても行います。)
    1 トランクポートに設定する
    2 VLAN #2 〜 #3 に所属させる
    3 MSTインスタンス #2 を設定する
    4 MSTインスタンス #3 を設定する
  5. [スイッチ#A] LANポート #3 をアクセスポートに設定し、VLAN #2 に所属させます。
    また、MSTインスタンス #2 を設定し、エッジポートにします。

    Yamaha(config)#interface port1.3
    Yamaha(config-if)#switchport mode access (1)
    Yamaha(config-if)#switchport access vlan 2 (2)
    Yamaha(config-if)#spanning-tree instance 2 (3)
    Yamaha(config-if)#spanning-tree edgeport (4)
    Yamaha(config-if)#exit
    1 アクセスポートに設定する
    2 VLAN #2 に所属させる
    3 MSTインスタンス #2 を設定する
    4 エッジポートに設定する
  6. [スイッチ#A] LANポート #4 をアクセスポートに設定し、VLAN #3 に所属させます。
    また、MSTインスタンス #3 を設定し、エッジポートにします。

    Yamaha(config)#interface port1.4
    Yamaha(config-if)#switchport mode access (1)
    Yamaha(config-if)#switchport access vlan 3 (2)
    Yamaha(config-if)#spanning-tree instance 3 (3)
    Yamaha(config-if)#spanning-tree edgeport (4)
    Yamaha(config-if)#exit
    1 アクセスポートに設定する
    2 VLAN #3 に所属させる
    3 MSTインスタンス #3 を設定する
    4 エッジポートに設定する
  7. [スイッチ#B] VLAN #2 と VLAN #3 を定義します。

    Yamaha(config)#vlan database
    Yamaha(config-vlan)#vlan 2 (1)
    Yamaha(config-vlan)#vlan 3 (2)
    Yamaha(config-vlan)#exit
    1 VLAN #2 の定義
    2 VLAN #3 の定義
  8. [スイッチ#B] CISTのプライオリティを設定します。

    Yamaha(config)#spanning-tree priority 16384 (1)
    1 CISTのプライオリティを16384にする
  9. [スイッチ#B] MSTの設定を行います。

    Yamaha(config)#spanning-tree mst configuration
    Yamaha(config-mst)#region Sample (1)
    Yamaha(config-mst)#revision 1 (2)
    Yamaha(config-mst)#instance 2 vlan 2 (3)
    Yamaha(config-mst)#instance 2 priority 8192 (4)
    Yamaha(config-mst)#instance 3 vlan 3 (5)
    Yamaha(config-mst)#instance 3 priority 16384 (6)
    Yamaha(config-mst)#exit
    1 MSTリージョン名を「Sample」にする
    2 MSTリビジョン番号を1にする
    3 MSTインスタンス #2 を定義し、VLAN #2 と関連付ける
    4 MSTインスタンス #2 のプライオリティを8192にする
    5 MSTインスタンス #3 を定義し、VLAN #3 と関連付ける
    6 MSTインスタンス #3 のプライオリティを16384にする
  10. [スイッチ#B] LANポート #1 〜 #2 をトランクポートに設定し、VLAN #2 〜 #3 に所属させます。
    また、MSTインスタンス #2 〜 #3 を設定します。

    Yamaha(config)#interface port1.1
    Yamaha(config-if)#switchport mode trunk (1)
    Yamaha(config-if)#switchport trunk allowed vlan add 2,3 (2)
    Yamaha(config-if)#spanning-tree instance 2 (3)
    Yamaha(config-if)#spanning-tree instance 3 (4)
    Yamaha(config-if)#exit
    (上記設定をLANポート #2に対しても行います。)
    1 トランクポートに設定する
    2 VLAN #2 〜 #3 に所属させる
    3 MSTインスタンス #2 を設定する
    4 MSTインスタンス #3 を設定する
  11. [スイッチ#B] LANポート #3 をアクセスポートに設定し、VLAN #2 に所属させます。
    また、MSTインスタンス #2 を設定し、エッジポートにします。

    Yamaha(config)#interface port1.3
    Yamaha(config-if)#switchport mode access (1)
    Yamaha(config-if)#switchport access vlan 2 (2)
    Yamaha(config-if)#spanning-tree instance 2 (3)
    Yamaha(config-if)#spanning-tree edgeport (4)
    Yamaha(config-if)#exit
    (5)
    1 アクセスポートに設定する
    2 VLAN #2 に所属させる
    3 MSTインスタンス #2 を設定する
    4 エッジポートに設定する
    5 上記設定をLANポート #4に対しても行います。
  12. [スイッチ#C] VLAN #2 と VLAN #3 を定義します。

    Yamaha(config)#vlan database
    Yamaha(config-vlan)#vlan 2 (1)
    Yamaha(config-vlan)#vlan 3 (2)
    Yamaha(config-vlan)#exit
    1 VLAN #2 の定義
    2 VLAN #3 の定義
  13. [スイッチ#C] MSTの設定を行います。

    Yamaha(config)#spanning-tree mst configuration
    Yamaha(config-mst)#region Sample (1)
    Yamaha(config-mst)#revision 1 (2)
    Yamaha(config-mst)#instance 2 vlan 2 (3)
    Yamaha(config-mst)#instance 2 priority 16384 (4)
    Yamaha(config-mst)#instance 3 vlan 3 (5)
    Yamaha(config-mst)#instance 3 priority 8192 (6)
    Yamaha(config-mst)#exit
    1 MSTリージョン名を「Sample」にする
    2 MSTリビジョン番号を1にする
    3 MSTインスタンス #2 を定義し、VLAN #2 と関連付ける
    4 MSTインスタンス #2 のプライオリティを16384にする
    5 MSTインスタンス #3 を定義し、VLAN #3 と関連付ける
    6 MSTインスタンス #3 のプライオリティを8192にする
  14. [スイッチ#C] LANポート #1 〜 #2 をトランクポートに設定し、VLAN #2 〜 #3 に所属させます。
    また、MSTインスタンス #2 〜 #3 を設定します。

    Yamaha(config)#interface port1.1
    Yamaha(config-if)#switchport mode trunk (1)
    Yamaha(config-if)#switchport trunk allowed vlan add 2,3 (2)
    Yamaha(config-if)#spanning-tree instance 2 (3)
    Yamaha(config-if)#spanning-tree instance 3 (4)
    Yamaha(config-if)#exit
    (上記設定をLANポート #2に対しても行います。)
    1 トランクポートに設定する
    2 VLAN #2 〜 #3 に所属させる
    3 MSTインスタンス #2 を設定する
    4 MSTインスタンス #3 を設定する
  15. [スイッチ#C] LANポート #3 をアクセスポートに設定し、VLAN #3 に所属させます。
    また、MSTインスタンス #3 を設定し、エッジポートにします。

    Yamaha(config)#interface port1.3
    Yamaha(config-if)#switchport mode access (1)
    Yamaha(config-if)#switchport access vlan 3 (2)
    Yamaha(config-if)#spanning-tree instance 3 (3)
    Yamaha(config-if)#spanning-tree edgeport (4)
    Yamaha(config-if)#exit
    (5)
    1 アクセスポートに設定する
    2 VLAN #3 に所属させる
    3 MSTインスタンス #3 を設定する
    4 エッジポートに設定する
    5 上記設定をLANポート #4に対しても行います。
  16. LANケーブルを接続します。

  17. [スイッチ#A] CISTの構成を確認します。

    Yamaha>show spanning-tree |include Root Id
    % Default: CIST Root Id 200100a0deaeb920 (1)
    % Default: CIST Reg Root Id 200100a0deaeb920
    
    Yamaha>show spanning-tree |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Designated - State Forwarding
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Designated - State Forwarding
    %   port1.3: Port Number 907 - Ifindex 5003 - Port Id 0x838b - Role Designated - State Forwarding
    %   port1.4: Port Number 908 - Ifindex 5004 - Port Id 0x838c - Role Designated - State Forwarding
    %   port1.5: Port Number 909 - Ifindex 5005 - Port Id 0x838d - Role Disabled - State Discarding
    %   port1.6: Port Number 910 - Ifindex 5006 - Port Id 0x838e - Role Disabled - State Discarding
    %   port1.7: Port Number 911 - Ifindex 5007 - Port Id 0x838f - Role Disabled - State Discarding
    %   port1.8: Port Number 912 - Ifindex 5008 - Port Id 0x8390 - Role Disabled - State Discarding
    %   port1.9: Port Number 913 - Ifindex 5009 - Port Id 0x8391 - Role Disabled - State Discarding
    %   port1.10: Port Number 914 - Ifindex 5010 - Port Id 0x8392 - Role Disabled - State Discarding
    1 プライオリティが高いスイッチ #A がCISTのルートブリッジになる
  18. [スイッチ#B] CISTの構成を確認します。

    Yamaha>show spanning-tree |include Root Id
    % Default: CIST Root Id 200100a0deaeb920 (1)
    % Default: CIST Reg Root Id 200100a0deaeb920
    
    Yamaha>show spanning-tree |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Rootport - State Forwarding
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Designated - State Forwarding
    %   port1.3: Port Number 907 - Ifindex 5003 - Port Id 0x838b - Role Designated - State Forwarding
    %   port1.4: Port Number 908 - Ifindex 5004 - Port Id 0x838c - Role Designated - State Forwarding
    %   port1.5: Port Number 909 - Ifindex 5005 - Port Id 0x838d - Role Disabled - State Discarding
    %   port1.6: Port Number 910 - Ifindex 5006 - Port Id 0x838e - Role Disabled - State Discarding
    %   port1.7: Port Number 911 - Ifindex 5007 - Port Id 0x838f - Role Disabled - State Discarding
    %   port1.8: Port Number 912 - Ifindex 5008 - Port Id 0x8390 - Role Disabled - State Discarding
    %   port1.9: Port Number 913 - Ifindex 5009 - Port Id 0x8391 - Role Disabled - State Discarding
    %   port1.10: Port Number 914 - Ifindex 5010 - Port Id 0x8392 - Role Disabled - State Discarding
    1 プライオリティが高いスイッチ #A がCISTのルートブリッジになる
  19. [スイッチ#C] CISTの構成を確認します。

    Yamaha>show spanning-tree |include Root Id
    % Default: CIST Root Id 200100a0deaeb920 (1)
    % Default: CIST Reg Root Id 200100a0deaeb920
    
    Yamaha>show spanning-tree |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Alternate - State Discarding (2)
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Rootport - State Forwarding
    %   port1.3: Port Number 907 - Ifindex 5003 - Port Id 0x838b - Role Designated - State Forwarding
    %   port1.4: Port Number 908 - Ifindex 5004 - Port Id 0x838c - Role Designated - State Forwarding
    %   port1.5: Port Number 909 - Ifindex 5005 - Port Id 0x838d - Role Disabled - State Discarding
    %   port1.6: Port Number 910 - Ifindex 5006 - Port Id 0x838e - Role Disabled - State Discarding
    %   port1.7: Port Number 911 - Ifindex 5007 - Port Id 0x838f - Role Disabled - State Discarding
    %   port1.8: Port Number 912 - Ifindex 5008 - Port Id 0x8390 - Role Disabled - State Discarding
    %   port1.9: Port Number 913 - Ifindex 5009 - Port Id 0x8391 - Role Disabled - State Discarding
    %   port1.10: Port Number 914 - Ifindex 5010 - Port Id 0x8392 - Role Disabled - State Discarding
    1 プライオリティが高いスイッチ #A がCISTのルートブリッジになる
    2 プライオリティが低いスイッチ #C のLAN #1 ポートがCISTの代替ポートになる
  20. [スイッチ#A] MSTインスタンス #2 の構成を確認します。

    Yamaha>show spanning-tree mst instance 2 |include Root Id
    % Default: MSTI Root Id 200200a0deaeb879 (1)
    
    Yamaha>show spanning-tree mst instance 2 |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Rootport - State Forwarding
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Alternate - State Discarding (2)
    %   port1.3: Port Number 907 - Ifindex 5003 - Port Id 0x838b - Role Designated - State Forwarding
    1 プライオリティが高いスイッチ #B がMSTインスタンス #2 のルートブリッジになる
    2 プライオリティが低いスイッチ #A のLAN #2 ポートがMSTインスタンス #2 の代替ポートになる
  21. [スイッチ#B] MSTインスタンス #2 の構成を確認します。

    Yamaha>show spanning-tree mst instance 2 |include Root Id
    % Default: MSTI Root Id 200200a0deaeb879 (1)
    
    Yamaha>show spanning-tree mst instance 2 |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Designated - State Forwarding
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Designated - State Forwarding
    %   port1.3: Port Number 907 - Ifindex 5003 - Port Id 0x838b - Role Designated - State Forwarding
    %   port1.4: Port Number 908 - Ifindex 5004 - Port Id 0x838c - Role Designated - State Forwarding
    1 プライオリティが高いスイッチ #B がMSTインスタンス #2 のルートブリッジになる
  22. [スイッチ#C] MSTインスタンス #2 の構成を確認します。

    Yamaha>show spanning-tree mst instance 2 |include Root Id
    % Default: MSTI Root Id 200200a0deaeb879 (1)
    
    Yamaha>show spanning-tree mst instance 2 |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Rootport - State Forwarding
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Designated - State Forwarding
    1 プライオリティが高いスイッチ #B がMSTインスタンス #2 のルートブリッジになる
  23. [スイッチ#A] MSTインスタンス #3 の構成を確認します。

    Yamaha>show spanning-tree mst instance 3 |include Root Id
    % Default: MSTI Root Id 200300a0deaeb83d (1)
    
    Yamaha>show spanning-tree mst instance 3 |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Alternate - State Discarding (2)
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Rootport - State Forwarding
    %   port1.4: Port Number 908 - Ifindex 5004 - Port Id 0x838c - Role Designated - State Forwarding
    1 プライオリティが高いスイッチ #C がMSTインスタンス #3 のルートブリッジになる
    2 プライオリティが低いスイッチ #A のLAN #1 ポートがMSTインスタンス #3 の代替ポートになる
  24. [スイッチ#B] MSTインスタンス #3 の構成を確認します。

    Yamaha>show spanning-tree mst instance 3 |include Root Id
    % Default: MSTI Root Id 200300a0deaeb83d (1)
    
    Yamaha>show spanning-tree mst instance 3 |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Designated - State Forwarding
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Rootport - State Forwarding
    1 プライオリティが高いスイッチ #C がMSTインスタンス #3 のルートブリッジになる
  25. [スイッチ#C] MSTインスタンス #3 の構成を確認します。

    Yamaha>show spanning-tree mst instance 3 |include Root Id
    % Default: MSTI Root Id 200300a0deaeb83d (1)
    
    Yamaha>show spanning-tree mst instance 3 |include Role
    %   port1.1: Port Number 905 - Ifindex 5001 - Port Id 0x8389 - Role Designated - State Forwarding
    %   port1.2: Port Number 906 - Ifindex 5002 - Port Id 0x838a - Role Designated - State Forwarding
    %   port1.3: Port Number 907 - Ifindex 5003 - Port Id 0x838b - Role Designated - State Forwarding
    %   port1.4: Port Number 908 - Ifindex 5004 - Port Id 0x838c - Role Designated - State Forwarding
    1 プライオリティが高いスイッチ #C がMSTインスタンス #3 のルートブリッジになる

6. 注意事項

  • 本製品の STPRSTP は、 MSTPの下位互換 により対応します。

7. 関連文書