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

スパニングツリー プロトコルのポート プライオリティを使用したトランク間の VLAN ロード バランシング

2003 年 4 月 23 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2005 年 8 月 30 日) | フィードバック

目次

概要
はじめに
     表記法
     前提条件
     使用するコンポーネント
トランク間の VLAN ロード バランシングの概要
     STP でブロックするポートを決定する方法
CatOS が動作する Catalyst スイッチでの VLAN ロード バランシングの設定
      portvlanpri コマンドの詳細
統合 IOS が動作する Catalyst スイッチでの VLAN ロード バランシングの設定
      port-priority コマンドと vlan port-priority コマンドの詳細
最後に
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

この文書にはトランク間での VLAN ロード バランシングの背景となるセオリーと、CatOS および統合 IOS が動作しているスイッチでの設定例が記載されています。

はじめに

表記法

文書の表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。

前提条件

この文書に関する特別な前提条件はありません。

使用するコンポーネント

この文書は特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

トランク間の VLAN ロード バランシングの概要

この文書内で使用するコマンドは、CatOS および統合 IOS が動作する Catalyst 4000、5000、および 6000 ファミリで使用します。 この文書の理論に関するセクションは、Spanning-Tree Protocol(STP; スパニングツリー プロトコル)に関連しており、プラットフォームには依存しません。

次に示す図 1 では、2 つのスイッチが複数のトランクを経由して直接接続されていますが、これは冗長性を確保する場合によくある設定です。 2 つのリンクのいずれかに障害が発生しても、もう 1 つのリンクを使用してトラフィックを伝送できます。両方のリンクが稼動している場合は、2 つのスイッチ間でブリッジ ループが発生するのを避けるために、Spanning-Tree Algorithm(STA; スパニングツリー アルゴリズム)によってどちらかのリンクが無効になります。

15a.gif

上の図 1 の設定では、Catalyst R と Catalyst D をリンクする 2 つのファースト イーサネット トランクを使用し、設定されたすべての VLAN に対して、STP は同じブロッキング ポートを選択します。 この場合、Catalyst R がルート ブリッジとなり、VLAN 1 と VLAN 2 の両方に対して Catalyst D がポート D2 をブロックします。この設計の主な問題点は、リンク R2-D2 が犠牲となり、2 つのスイッチ間で 100 Mb/秒しか使用できないことです。 両方のリンクを利用するには、VLAN 1 をリンク R1-D1 専用に、VLAN 2 をリンク R2-D2 専用にそれぞれ使用できるよう設定を変更します。

15b.gif

図 2 に示す変更後のネットワークでは、冗長性が失われています。 これで、両方のリンクは同時にフォワーディングとなり、2 つのスイッチ間で 200 Mb/秒を実際に使用できるようになります。 ただし、1 つのリンクに障害が発生すると、1 つの VLAN の接続性が完全に失われてしまいます。図 3 に、この問題の理想的な解決方法を示します。

15c.gif

図 3 では、2 つのスイッチ間でトランクを保持していますが、ポート D1 は VLAN 1 をブロッキングし、VLAN 2 をフォワーディングします。そして、ポート D2 は VLAN 2 をブロッキングし、VLAN 1 をフォワーディングします。この設計では、次のような図 1 と図 2 の最善の利点を保持できます。

  • 両方のリンクがフォワーディングとなり、2 つのスイッチ間に 200 Mb/秒の集約接続を提供します。

  • いずれかのリンクで障害が発生しても、残りのリンクが対応する VLAN のブロックを解除し、スイッチ間で両方の VLAN の接続性を維持します。

この文書では、STP 操作について簡単に触れた後で、このような設定のしかたを説明します。

STP でブロックするポートを決定する方法

STA の動作に関する詳しい説明はこの文書の範囲外ですが、 ここではポートをブロッキングとするかフォワーディングとするかを判断するアルゴリズムについて簡単に要約します。 1 つの VLAN のみを使用する最も単純な設定を想定してみましょう。この VLAN では、Catalyst R がルート ブリッジとなり、Catalyst D には Catalyst R に対する複数の冗長接続が存在します。Catalyst D は、ルート ポートを除き、Catalyst R に対してのすべてのポートをブロックします。 Catalyst D はルート ポートをどのように選択するのでしょうか。STA が動作するブリッジでは、リンク間で Bridge Protocol Data Unit(BPDU; ブリッジ プロトコル データ ユニット)が交換され、BPDU はその内容によって厳密に分類できます。 ある BPDU は、次の場合に他の BPDU よりも優先されます。

  1. ルート ブリッジ ID が低い。

  2. ルートへのパス コストが低い。

  3. 発信元ブリッジ ID が低い。

  4. 発信元ポート ID が低い。

上記の 4 つのパラメータは順に評価されます。つまり、比較する 2 つの BPDU でパラメータ 1 が同じ場合は、パラメータ 2 のみが関係します。 Catalyst D でルート ポートとして選択されたポートは、最優先 BPDU を受信するポートになります。

15d.gif

図 4 に示された特別のケースでは、Catalyst R によって送信されるすべての BPDU では、ルート ブリッジ ID、ルートへのパス コスト、および発信元ブリッジ ID がすべて同じです。したがって、残っている唯一のパラメータである発信元ポート ID によって、最優先の BPDU が選択されます。発信元ポート ID は 16 ビットのパラメータで、ポート プライオリティとポート インデックスという 2 つのフィールドに分割されます。 ポート プライオリティのデフォルト値は 32 で、ポート インデックスはスイッチ上のポートごとに固有の値になります。

 

ポート プライオリティ

ポート インデックス

ビット単位でのサイズ

6

10

デフォルト値

32

固有の固定値

図 4 に、BPDU のポート ID パラメータ を示します。 この場合、ポート インデックス R2 は R1 よりも小さいため、Catalyst D はポート D1 をルート ポートとして選択します。 D2 を最終的にフォワーディングにするには、D2 を強制的にルート ポートにする必要があります。この唯一の方法は、R2 のポート プライオリティ値を下げる(あるいは R1 のポート プライオリティ値を上げる)ことです。 図 5 に、この操作を示します。

15e.gif

次に、2 つのトランク間でロード バランシングを実現するために、Catalyst R で VLAN ごとにポート プライオリティを調整します。

CatOS が動作する Catalyst スイッチでの VLAN ロード バランシングの設定

ラボ図

15f.gif

Catalyst R での現在の STP 状態の表示

Catalyst R における現在の STP 状態を示します。VLAN 1 および 2 のルートであるため、すべてのポートがフォワーディングとなっています。

Catalyst_R> (enable) show spantree 3/1
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/1                     1    forwarding       19       32 disabled   0         
   3/1                     2    forwarding       19       32 disabled   0         
   Catalyst_R> (enable) show spantree 3/2
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/2                     1    forwarding       19       32 disabled   0         
   3/2                     2    forwarding       19       32 disabled   0        
   Catalyst_R> (enable)
   

Catalyst D での現在の STP 状態の表示

Catalyst D では、VLAN 1 および 2 の両方に対してポート 5/2 が予想どおりブロックされています。

Catalyst_D> (enable) show spantree 5/1
   Port      Vlan  Port-State     Cost   Priority  Fast-Start  Group-Method
   --------- ----  -------------  -----  --------  ----------  ------------
   5/1      1     forwarding        19        32   disabled              
   5/1      2     forwarding        19        32   disabled              
   Catalyst_D> (enable) show spantree 5/2
   Port      Vlan  Port-State     Cost   Priority  Fast-Start  Group-Method
   --------- ----  -------------  -----  --------  ----------  ------------
   5/2      1     blocking          19        32   disabled              
   5/2      2     blocking          19        32   disabled              
   Catalyst_D> (enable)
   

Catalyst R でのポート プライオリティの調整

ポート 3/2 で VLAN 1 のポート プライオリティ値を下げます。これにより、Catalyst D 上の対応するポート 5/2 で、ポート 5/1(ポート プライオリティ値は 32 のまま)で送信された BPDU よりも優先度の高い BPDU が受信されるようになります。

Catalyst_R> (enable) set spantree portvlanpri 3/2 16 1
   Port 3/2 vlans 1 using portpri 16.
   Port 3/2 vlans 2-1004 using portpri 32.
   Port 3/2 vlans 1005 using portpri 4.
   Catalyst_R> (enable)
   

Catalyst R での結果を確認

VLAN 1 のポート プライオリティ値が変更されたことが確認できます。

Catalyst_R> (enable) show spantree 3/1                
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/1                     1    forwarding       19       32 disabled   0         
   3/1                     2    forwarding       19       32 disabled   0         
   Catalyst_R> (enable) show spantree 3/2                
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/2                     1    forwarding       19       16 disabled   0         
   3/2                     2    forwarding       19       32 disabled   0         
   Catalyst_R> (enable)
   

Catalyst D での結果の確認

Catalyst D では、予想どおりに VLAN 1 のポート 5/1 がブロッキング、ポート 5/2 がフォワーディングとなったことを確認できます。

Catalyst_D> (enable) show spantree 5/1
   Port      Vlan  Port-State     Cost   Priority  Fast-Start  Group-Method
   --------- ----  -------------  -----  --------  ----------  ------------
   5/1      1     blocking          19        32   disabled              
   5/1      2     forwarding        19        32   disabled              
   Catalyst_D> (enable) show spantree 5/2
   Port      Vlan  Port-State     Cost   Priority  Fast-Start  Group-Method
   --------- ----  -------------  -----  --------  ----------  ------------
   5/2      1     forwarding        19        32   disabled              
   5/2      2     blocking          19        32   disabled              
   Catalyst_D> (enable)
   

portvlanpri コマンドの詳細

トランクごとのポート VLAN のプライオリティには 2 つの値のみが設定可能で、そのうちの 1 つのみを portvlanpri コマンドで設定できます。これは、トランクに次の 2 組の VLAN のグループが存在することを意味します。

  • 「グローバル」ポート プライオリティ値(デフォルト値は 32)を持つもの

  • portvlanpri コマンドで入力した「カスタム」値を持つもの

次に例を挙げて明確にします。 この例では 3 つ目の VLAN の追加を取り上げます。この VLAN は、デフォルトでは、グローバル ポート プライオリティ値(デフォルト値は 32)を持つグループに属します。

Catalyst_R> (enable) set vlan 3                       
   Vlan 3 configuration successful
   Catalyst_R> (enable) show spantree 3/2                  
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/2                     1    forwarding       19       16 disabled   0         
   3/2                     2    forwarding       19       32 disabled   0         
   3/2                     3    forwarding       19       32 disabled   0         
   Catalyst_R> (enable)
   

set spantree portpri コマンドを使用して、ポートのグローバル プライオリティを変更します。

Catalyst_R> (enable) set spantree portpri 3/2 48
   Bridge port  3/2 port priority set to 48.
   Catalyst_R> (enable) show spantree 3/2
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/2                     1    forwarding       19       16 disabled   0         
   3/2                     2    forwarding       19       48 disabled   0         
   3/2                     3    forwarding       19       48 disabled   0         
   Catalyst_R> (enable)
   

これで、「グローバル」グループに属するすべての VLAN のプライオリティが 48 に変わりました。ここで、VLAN 3 を VLAN の他の「カスタム」グループに割り当て、portvlanpri コマンドで値を 8 に設定します。

Catalyst_R> (enable) set spantree portvlanpri 3/2 8 3
   Port 3/2 vlans 1,3 using portpri 8.
   Port 3/2 vlans 2,4-1004 using portpri 48.
   Port 3/2 vlans 1005 using portpri 4.
   Catalyst_R> (enable) show spantree 3/2
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/2                     1    forwarding       19        8 disabled   0         
   3/2                     2    forwarding       19       48 disabled   0         
   3/2                     3    forwarding       19        8 disabled   0         
   Catalyst_R> (enable)
   

VLAN 3 だけでなく、「カスタム」グループのすべての VLAN のプライオリティが 8 に変わったことに注目してください。VLAN 3 をデフォルト グループに戻すには、clear spantree portvlanpri コマンドを使用します。

Catalyst_R> (enable) clear spantree portvlanpri 3/2 3
   Port 3/2 vlans 1 using portpri 8.
   Port 3/2 vlans 2-1004 using portpri 48.
   Port 3/2 vlans 1005 using portpri 4.
   Catalyst_R> (enable) show spantree 3/2
   Port                     Vlan Port-State    Cost  Priority Portfast   Channel_id
   ------------------------ ---- ------------- ----- -------- ---------- ----------
   3/2                     1    forwarding       19        8 disabled   0         
   3/2                     2    forwarding       19       48 disabled   0         
   3/2                     3    forwarding       19       48 disabled   0         
   Catalyst_R> (enable)
   

このコマンドには、1 つ制限が残っています。 「グローバル」グループに割り当てられた値は「カスタム」グループで設定したものより大きくなければならないというものです。

Catalyst_R> (enable) set spantree portvlanpri 3/2 62 3 
   Portvlanpri must be less than portpri. Portpri for 3/2 is 48.
   

まとめ

「グローバル」グループ

「カスタム」グループ

デフォルトでは、すべての VLAN がこのグループに属す。

set spantree portvlanpri コマンドで選択した VLAN がこのグループに属します。

これらの VLAN のプライオリティは set spantree port priority コマンドで設定されます。

これらすべての VLAN のプライオリティ値は set spantree portvlanpri コマンドで設定されます。

「グローバル」グループに設定したプライオリティ値は、「カスタム」グループに設定したものより大きくなければなりません。

clear spantree portvlanpri コマンドを使用して、このグループから他のグループに VLAN を戻すことができます。

統合 IOS が動作する Catalyst スイッチでの VLAN ロード バランシングの設定

注: この設定例は IOS が動作する Catalyst 2900/3500XL、Catalyst 2950、Catalyst 3550、Catalyst 4000 supervisor III/IV、Catalyst 6000 の各スイッチに適用されます。

ラボ図

15f.gif

Catalyst R での現在の STP 状態の表示

Catalyst R における現在の STP 状態を示します。VLAN 1 および 2 のルートであるため、すべてのポートがフォワーディングとなっています。

Catalyst_R#show spanning-tree interface FastEthernet 3/1
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19        128.129  P2p 
   VLAN0002         Desg FWD 19        128.129  P2p 
   Catalyst_R#show spanning-tree interface FastEthernet 3/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19        128.130  P2p 
   VLAN0002         Desg FWD 19        128.130  P2p 
   

Catalyst D での現在の STP 状態の表示

Catalyst D では、VLAN 1 および 2 の両方に対してポート 5/2 が予想どおりブロックされています。

Catalyst_D#show spanning-tree interface FastEthernet 5/1
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Root FWD 19        128.129  P2p 
   VLAN0002         Root FWD 19        128.129  P2p 
   Catalyst_D#show spanning-tree interface FastEthernet 5/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Altn BLK 19        128.130  P2p 
   VLAN0002         Altn BLK 19        128.130  P2p 
   

Catalyst R でのポート プライオリティの調整

ポート 3/2 で VLAN 1 のポート プライオリティ値を下げます。これにより、Catalyst D 上の対応するポート 5/2 で、ポート 5/1(ポート プライオリティ値は 128 のまま)で送信された BPDU よりも優先度の高い BPDU が受信されるようになります。

Catalyst_R#config terminal
   Catalyst_R(config)#interface FastEthernet 3/2       
   Catalyst_R(config-if)#spanning-tree vlan 1 port-priority 64 
   Catalyst_R(config-if)#end
   Catalyst_R#
   

Catalyst R での結果を確認

VLAN 1 のポート プライオリティ値が変更されたことを確認できます。

Catalyst_R#show spanning-tree interface FastEthernet 3/1
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19        128.129  P2p 
   VLAN0002         Desg FWD 19        128.129  P2p 
   Catalyst_R#show spanning-tree interface FastEthernet 3/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19         64.130  P2p 
   VLAN0002         Desg FWD 19        128.130  P2p 
   

Catalyst D での結果の確認

Catalyst D では、予想どおりに VLAN 1 のポート 5/1 がブロッキング、ポート 5/2 がフォワーディングとなったことを確認できます。

Catalyst_D#show spanning-tree interface FastEthernet 5/1
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Altn BLK 19        128.129  P2p 
   VLAN0002         Root FWD 19        128.129  P2p 
   Catalyst_D#show spanning-tree interface FastEthernet 5/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Root FWD 19        128.130  P2p 
   VLAN0002         Altn BLK 19        128.130  P2p 
   

port-priority コマンドと vlan port-priority コマンドの詳細

VLAN ポートのプライオリティを定義するには 2 通りの方法があります。

  • インターフェイスごとに port-priority コマンドで変更できる「グローバル」ポート プライオリティ値(デフォルトでは 128)

  • インターフェイスごとに、および VLAN ごとに VLAN port-priority コマンドで変更できる「VLAN 別」ポート プライオリティ値

次に例を挙げて明確にします。 この例では 3 つ目の VLAN の追加を取り上げます。この VLAN は、デフォルトでは、グローバル ポート プライオリティ値(デフォルト値は 128)を持つグループに属します。

Catalyst_R#show spanning-tree interface FastEthernet 3/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19         64.130  P2p 
   VLAN0002         Desg FWD 19        128.130  P2p 
   VLAN0003         Desg FWD 19        128.130  P2p 
   

spanning-tree port-priority インターフェイス設定コマンドを使用して、ポートのグローバル プライオリティを変更します。

Catalyst_R(config)#interface FastEthernet 3/2
   Catalyst_R(config-if)#spanning-tree port-priority 160
   Catalyst_R#
   Catalyst_R#show spanning-tree interface FastEthernet 3/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19         64.130  P2p 
   VLAN0002         Desg FWD 19        160.130  P2p 
   VLAN0003         Desg FWD 19        160.130  P2p 
   

「グローバル」グループに属するすべての VLAN で、プライオリティが 160 に変更されていることに注意してください。ここで、spanning-tree vlan port-priority インターフェイス コマンドで VLAN 3 のプライオリティを 48 に設定します。

Catalyst_R(config)#interface FastEthernet 3/2     
   Catalyst_R(config-if)#spanning-tree vlan 3 port-priority 48
   Catalyst_R#
   Catalyst_R#show spanning-tree interface FastEthernet 3/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19         64.130  P2p 
   VLAN0002         Desg FWD 19        160.130  P2p 
   VLAN0003         Desg FWD 19         48.130  P2p 
   

プライオリティを 48 に変更したのは VLAN 3 だけである点に注意してください。VLAN 3 をデフォルトのグループに戻すのには、no spanning-tree vlan port-priority インターフェイス コマンドを使用します。

Catalyst_R(config)#interface FastEthernet 3/2           
   Catalyst_R(config-if)#no spanning-tree vlan 3 port-priority 
   Catalyst_R#
   Catalyst_R#show spanning-tree interface FastEthernet 3/2
   Vlan             Role Sts Cost      Prio.Nbr Type
   ---------------- ---- --- --------- -------- --------------------------------
   VLAN0001         Desg FWD 19         64.130  P2p 
   VLAN0002         Desg FWD 19        160.130  P2p 
   VLAN0003         Desg FWD 19        160.130  P2p 
   

最後に

VLAN ロード バランシングをこのように設定すると、2 つの Catalyst 間で冗長トランクの使用が最適化されます。

STP のデフォルト値を保持することにより、2 つの Catalyst 間の冗長リンクがすべてブロッキング モードになります。 STP プライオリティを調整すると、別々の VLAN で、複数のリンクを同時に使用できます。 これにより、2 つのデバイス間での総帯域幅が増加します。 リンクで障害が発生すると、STP により、再コンバージの際に残りのトランクに VLAN が再度ディスパッチされます。

この設計に残された唯一の欠点は、トラフィックのロード バランシングを VLAN 単位でしか行えないことです。 前述の例で VLAN 1 を通過するトラフィック フローが 130 Mb/秒であっても、VLAN 2 のトラフィックが 10 Mb/秒しかなければ、Catalyst R と Catalyst D 間で理論的には 200 Mb/秒まで可能でも VLAN 1 でパケットをドロップすることになります。EtherChannel 機能では、複数のリンク間のロード バランシングをパケット単位で行うことによって、この問題に対応しています。 ハードウェアでサポートされている場合は、この文書で説明した設定ではなく FastEtherchannel(または GigabitEtherChannel)を使用してください。


関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 10555