内容

概要

はじめに

表記法

前提条件

使用するコンポーネント

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

SSTP がブロックするポートを決定する方法

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

portvlanpri コマンドの詳細

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

port-priority および vlan port-priority コマンドの詳細

結論

関連情報

概要

このドキュメントでは、トランク間の VLAN ロード バランシングの背景理論を説明し、CatOS と統合 IOS が稼働しているスイッチの設定例を紹介します。

はじめに

表記法

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

前提条件

このドキュメントに関しては個別の前提条件はありません。

使用するコンポーネント

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

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

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

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

上の図 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 専用にそれぞれ使用できるよう設定を変更します。

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

図 3 では、2 つのスイッチ間のトランクは保持されていますが、ポート D1 は VLAN 1 をブロックし、VLAN 2 を転送します。ポートD2はVLAN 2をブロックし、VLAN 1を転送しています。この設計では、図1と図2の最善の機能を維持します。

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

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

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

SSTP がブロックするポートを決定する方法

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 を受信するポートになります。

このような場合、図 4 に示すように、Catalyst R によって送信されるすべての BPDU は、同じルート ブリッジ ID、ルートへの同じパス コスト、同じ発信元ブリッジ ID を持っています。このとき、残りのパラメータの中で最良の選択肢は発信元ポート ID のみです。発信元ポート ID は 16 ビットのパラメータで、ポート プライオリティとポート インデックスの 2 つのフィールドに分割されます。ポート プライオリティのデフォルト値は 32 で、ポート インデックスはスイッチ上のポートごとに固有の値になります。

ポートの優先度

ポート インデックス

ビット単位でのサイズ

6

10

デフォルト値

32

固有の固定値

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

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

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

ラボ図

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

次に、Catalyst R での現在の STP 状態を示します。これは、VLAN 1 と VLAN 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 での結果を確認

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

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のプライオリティが、VLAN 3だけでなく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スーパーバイザIII/IV、およびCatalyst 6000を実行しているスイッチに適用されます。

ラボ図

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

次に、Catalyst R での現在の STP 状態を示します。これは、VLAN 1 と VLAN 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 での結果を確認

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

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 種類あります。

- 「グローバル」ポート プライオリティ値（デフォルト値は 128）は、port-priority コマンドで、インターフェイスごとに変更できます。

- 「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

VLAN 3のみがプライオリティを48に変更していることに注目してください。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 単位でしか行えないことです。前記の例では、理論上は Catalyst R と Catalyst D の間で 200 Mbps のトラフィック フローを達成するはずですが、VLAN 1 のトラフィック フローは 130 Mbps で、VLAN 2 ではわずか 10 Mbps のトラフィックしかなく、VLAN 1 でパケットがドロップされています。このような場合は、EtherChanneling 機能を使用して、パケットごとに複数のリンク間のロード バランシングを行います。ハードウェアでサポートされている場合は、この文書で説明した設定ではなく FastEtherchannel（または GigabitEtherChannel）を使用してください。

関連情報

- スパニング ツリー プロトコルに関するサポート ページ

- スイッチ製品に関するサポート ページ

- LAN スイッチング テクノロジーに関するサポート ページ

- テクニカル サポートとドキュメント – Cisco Systems