スパニングツリー プロトコルの概要
この項では、スパニングツリー機能の仕組みについて説明します。内容は次のとおりです。
STP の概要
STP は、ネットワーク上でループを防止しながら、パスの冗長性を実現するレイヤ 2 リンク管理プロトコルです。レイヤ 2 イーサネット ネットワークが正常に動作するには、任意の 2 つのステーション間で存在できるアクティブ パスは 1 つだけです。スパニングツリーはエンド ステーションに対して透過的に動作するため、エンド ステーションが単一の LAN セグメントに接続されているのか、複数セグメントから成る LAN に接続されているのかを検出することはできません。
フォールトトレラントなインターネットワークを作成する場合、ネットワーク上のすべてのノード間にループフリー パスを構築する必要があります。スパニングツリー アルゴリズムは、レイヤ 2 ネットワーク全体でループのない最適なパスを計算します。無線access point/bridgeやスイッチなどのインフラストラクチャ デバイスは、ブリッジ プロトコル データ ユニット(BPDU)というスパニングツリーのフレームを一定間隔で送受信します。デバイスはこれらのフレームを転送せずに、ループのないパスを構成するために使用します。
エンド ステーション間に複数のアクティブ パスがあると、ネットワークにループが生じます。このループがネットワークに発生すると、エンド ステーションにメッセージが重複して到着する可能性があります。また、インフラストラクチャ デバイスでも、複数のレイヤ 2 インターフェイス上でエンド ステーションの MAC アドレスを学習する場合があります。このような状況によって、ネットワークが不安定になります。
STP は、レイヤ 2 ネットワーク内のルート ブリッジと、ルートからすべてのインフラストラクチャ デバイスまでのループのないパスでツリーを定義します。
(注) STP の説明において、ルートという用語は 2 つの概念を指して使用されます。1 つは、スパニングツリーの中央ポイントとして機能するネットワーク上のブリッジのことで、ルート ブリッジと呼ばれます。もう 1 つは、各ブリッジでルート ブリッジまでの最も効率的なパスを提供するポートのことで、ルート ポートと呼ばれます。これらの意味は、ルートおよび非ルートのオプションを持つ無線ネットワーク設定の役割とは区別されます。無線ネットワーク設定の役割がルート ブリッジとなっているブリッジが、必ずしもスパニングツリーのルート ブリッジになるわけではありません。この章では、スパニングツリーのルート ブリッジをスパニングツリー ルートと呼びます。
STP は冗長データ パスを強制的にスタンバイ(ブロック)ステートにします。スパニングツリーのネットワーク セグメントでエラーが発生したときに冗長パスが存在する場合は、スパニングツリー アルゴリズムがスパニングツリー トポロジを再計算し、スタンバイ パスをアクティブにします。
ブリッジ上の 2 つのインターフェイスがループの一部を形成する場合、スパニングツリー ポートの優先順位およびパス コストの設定により、2 つのうちフォワーディング ステートにするインターフェイスと、ブロッキング ステートにするインターフェイスが決まります。ポートの優先順位の値は、ネットワーク トポロジにおけるインターフェイスの位置を表し、その位置がトラフィックを渡すのにどの程度適しているかを示します。パス コスト値はメディアの速度を表します。
access point/bridgeは、Per-VLAN Spanning Tree(PVST)と VLAN を使用しない単一の 802.1q スパニングツリーの両方をサポートします。access point/bridgeは、複数の VLAN を 1 つのインスタンスのスパニングツリーにマッピングする 802.1s MST または 802.1d Common Spanning Tree を実行できません。
access point/bridgeは、設定されているアクティブな VLAN ごとに個別のスパニングツリー インスタンスを保持します。ブリッジの優先順位およびaccess point/bridgeの MAC アドレスから成るブリッジ ID は、各インスタンスに関連付けられます。VLAN ごとに、最も小さいaccess point/bridge ID を持つaccess point/bridgeが、その VLAN のスパニングツリー ルートになります。
アクセス ポイント/ブリッジのプロトコル データ ユニット
安定して有効なネットワークのスパニングツリー トポロジは、次の要素によって決まります。
- 各無線access point/bridge上の各 VLAN に関連付けられた固有のaccess point/bridge ID(無線access point/bridgeの優先順位および MAC アドレス)
- スパニングツリー ルートまでのスパニングツリー パス コスト
- 各レイヤ 2 インターフェイスに対応付けられたポート ID(ポート プライオリティおよび MAC アドレス)
ネットワーク内のaccess point/bridgeに電源が入ると、各access point/bridgeは STP ルートとして機能します。access point/bridgeは、イーサネット ポートおよび無線ポートを使用してコンフィギュレーション BPDU を送信します。BPDU によって通信が行われ、スパニングツリー トポロジが計算されます。各コンフィギュレーション BPDU には、次の情報が含まれます。
- 送信側のaccess point/bridgeがスパニングツリー ルートとして識別する無線access point/bridgeの固有のaccess point/bridge ID
- ルートまでのスパニングツリー パス コスト
- 送信側のaccess point/bridgeのaccess point/bridge ID
- メッセージ エージ
- 送信側インターフェイス ID
- hello タイマー、転送遅延タイマー、および max-age プロトコル タイマーの値
access point/bridgeは、 上位 の情報(より小さいaccess point/bridge ID やパス コストなど)を含むコンフィギュレーション BPDU を受信すると、そのポートの情報を保存します。この BPDU をaccess point/bridgeのルート ポート上で受信した場合、そのaccess point/bridgeが指定access point/bridgeとなっているすべての接続 LAN に、更新したメッセージを付けて BPDU を転送します。
access point/bridgeは、そのポートに現在保存されている情報よりも 下位 の情報を含むコンフィギュレーション BPDU を受信した場合は、その BPDU を廃棄します。access point/bridgeが下位 BPDU を受信した LAN の指定access point/bridgeである場合、そのポートに保存されている最新情報を含む BPDU をその LAN に送信します。このようにして下位情報は廃棄され、優位情報がネットワークで伝播されます。
BPDU の交換によって、次の処理が行われます。
- スパニングツリー ルートとしてaccess point/bridgeが 1 つ選択されます。
- access point/bridgeごとに(スパニングツリー ルートを除く)ルート ポートが 1 つ選択されます。このポートは、access point/bridgeからスパニングツリー ルートにパケットを転送するときの最適パス(最小コスト)を提供します。
- スパニングツリー ルートへの最短距離は、パス コストに基づいてaccess point/bridgeごとに計算されます。
- LAN セグメントごとに指定access point/bridgeが選択されます。指定access point/bridgeは、その LAN からスパニングツリー ルートにパケットを転送するときの最小パス コストを提供します。指定access point/bridgeを LAN に接続しているポートのことを指定ポートと呼びます。
- スパニングツリー インスタンスに含めるインターフェイスが選択されます。ルート ポートおよび指定ポートは、フォワーディング ステートになります。
- スパニングツリーに含まれないすべてのインターフェイスはブロックされます。
スパニングツリー ルートの選択
STP に参加しているレイヤ 2 ネットワークのすべてのaccess point/bridgeは、BPDU データ メッセージの交換を通して、ネットワーク内の他のaccess point/bridgeに関する情報を集めます。このメッセージ交換により、次の操作が発生します。
- スパニングツリー インスタンスごとに固有のスパニングツリー ルートを選択
- LAN セグメントごとに指定access point/bridgeを 1 つずつ選択
- 冗長リンクに接続されたレイヤ 2 インターフェイスをブロックすることにより、ネットワーク内のループを排除
VLAN ごとに、access point/bridgeの優先順位が最も高いaccess point/bridge(最も小さい数字の優先順位の値)がスパニングツリー ルートとして選択されます。すべてのaccess point/bridgeがデフォルトの優先順位(32768)で設定されている場合、VLAN 内で MAC アドレスの最も小さいaccess point/bridgeがスパニングツリー ルートになります。access point/bridgeの優先順位の値は、access point/bridge ID の最上位ビットに該当します。
access point/bridgeの優先順位の値を変更すると、access point/bridgeがルート access point/bridgeとして選択される確率が変化します。大きい値を設定すると可能性が低下し、値が小さいと可能性が増大します。
スパニングツリー ルートは、スパニングツリー トポロジにおいて論理的な中心に位置します。ネットワーク内のどこからもスパニングツリー ルートに到達する必要のないすべてのパスは、スパニングツリーのブロッキング モードになります。
BPDU には、access point/bridgeおよび MAC アドレス、access point/bridgeの優先順位、ポートの優先順位、およびパス コストを含む、送信側access point/bridgeとそのポートに関する情報が含まれます。STP はこの情報を使用して、ネットワークのスパニングツリー ルートとルート ポート、および各 LAN セグメントのルート ポートと指定ポートを選択します。
スパニングツリー タイマー
表 8-1 で、スパニングツリーのパフォーマンス全体を左右するタイマーについて説明します。
表 8-1 スパニングツリー タイマー
|
|
ハロー タイマー |
access point/bridgeが hello メッセージを他のaccess point/bridgeにブロードキャストする頻度が決まります。 |
転送遅延タイマー |
インターフェイスが転送を開始するまでに、リスニング ステートおよびラーニング ステートがそれぞれ持続する時間が決まります。 |
最大エージング タイマー |
access point/bridgeがインターフェイス上で受信したプロトコル情報を保存する時間が決まります。 |
スパニングツリー トポロジの作成
図 8-1 では、すべてのaccess point/bridgeの優先順位がデフォルト(32768)に設定されていて、ブリッジ 4 の MAC アドレスが最も小さいため、ブリッジ 4 がスパニングツリー ルートとして選択されています。ただし、トラフィック パターン、転送インターフェイスの数、またはリンク タイプが原因で、ブリッジ 4 が理想的なスパニングツリー ルートではない場合もあります。理想的なブリッジがスパニングツリー ルートになるように優先順位を上げる(数値を小さくする)ことにより、強制的にスパニングツリーを再計算させて、理想的なブリッジをスパニングツリー ルートとして使用する新しいトポロジを構成します。
図 8-1 スパニングツリー トポロジ
スパニングツリー インターフェイス ステート
プロトコル情報が無線 LAN を通過する場合、伝播遅延が生じる可能性があります。結果として、その時々やさまざまな場所で、トポロジの変更が行われる場合があります。インターフェイスがスパニングツリー トポロジに含まれていない状態からフォワーディング ステートに直接移行すると、一時的にデータ ループが形成されることがあります。インターフェイスは、LAN 経由で伝播される新しいトポロジ情報を待ってから、フレームの転送を開始しなければなりません。インターフェイスはさらに、古いトポロジで使用されていた転送フレームのフレーム存続時間を満了させることも必要です。
スパニングツリーを使用しているaccess point/bridge上の各インターフェイスは、次のいずれかのステートで存在します。
- ブロッキング:インターフェイスはフレーム転送に関与しません。
- リスニング:スパニングツリーでインターフェイスがフレーム転送に参加する必要があると判断された場合、ブロッキング ステートの次に最初に遷移するステート。
- ラーニング:インターフェイスはフレーム転送に関与する準備をしている状態です。
- フォワーディング:インターフェイスはフレームを転送します。
- ディセーブル:インターフェイスはスパニングツリーに含まれません。シャットダウン ポートであるか、ポート上にリンクがないか、またはポート上でスパニングツリー インスタンスが稼働していないためです。
インターフェイスは次のように、ステートを移行します。
- 初期化からブロッキング
- ブロッキングからリスニングまたはディセーブル
- リスニングからラーニングまたはディセーブル
- ラーニングからフォワーディングまたはディセーブル
- フォワーディングからディセーブル
図 8-2 図 8-2 に、インターフェイスがステートをどのように移行するかを示します。
図 8-2 スパニングツリー インターフェイス ステート
access point/bridgeで STP を有効にすると、イーサネット インターフェイスおよび無線インターフェイスは一度ブロッキング ステートになってから、リスニングおよびラーニングの一時的なステートに遷移します。スパニングツリーは、フォワーディング ステートまたはブロッキング ステートで各インターフェイスを安定させます。
スパニングツリー アルゴリズムがレイヤ 2 インターフェイスをフォワーディング ステートにする場合、次のプロセスが発生します。
1. インターフェイスをブロッキング ステートに遷移させるプロトコル情報をスパニングツリーが待っている間、そのインターフェイスはリスニング ステートの状態です。
2. スパニングツリーは転送遅延タイマーの満了を待ち、インターフェイスをラーニング ステートに移行させ、転送遅延タイマーをリセットします。
3. ラーニング ステートの間、access point/bridgeが転送データベースのエンド ステーションの位置情報を学習しているとき、インターフェイスはフレーム転送をブロックし続けます。
4. 転送遅延タイマーが満了すると、スパニングツリーはインターフェイスをフォワーディング ステートに移行させ、このときラーニングとフレーム転送の両方が可能になります。
ブロッキング ステート
ブロッキング ステートのインターフェイスは、フレーム転送に参加しません。初期化後、BPDU はaccess point/bridgeのイーサネット ポートおよび無線ポートに送信されます。access point/bridgeは、他のaccess point/bridgeと BPDU を交換するまで、最初にスパニングツリー ルートとして機能します。この交換によって、ネットワーク内でスパニングツリー ルートになるaccess point/bridgeが確立されます。ネットワークにaccess point/bridgeが 1 つだけしかない場合、交換は行われず、転送遅延タイマーが切れた後にインターフェイスがリスニング ステートに遷移します。STP を有効にすると、インターフェイスは常にブロッキング ステートから開始されます。
ブロッキング ステートのインターフェイスは次のように動作します。
- ポートで受信したフレームを廃棄します。
- アドレスを学習しません。
- BPDU を受信します。
(注) access point/bridgeの 1 つのポートがブロックされている場合、ブロードキャスト パケットやマルチキャスト パケットは同じaccess point/bridge上のフォワーディング ポートに到達するため、ブリッジング ロジックによって、ブロック ポートでパケットがドロップされる前に、一時的にブロック ポートがリスニング ステートに切り替わることがあります。
リスニング ステート
リスニング ステートは、インターフェイスがブロッキング ステートの次に開始する最初のステートです。インターフェイスは、STP によってインターフェイスがフレーム転送に参加する必要があると判断された場合、このステートを開始します。
リスニング ステートのインターフェイスは次のように動作します。
- ポートで受信したフレームを廃棄します。
- アドレスを学習しません。
- BPDU を受信します。
ラーニング ステート
ラーニング ステートのインターフェイスは、フレーム転送に参加する準備を行います。インターフェイスはリスニング ステートからラーニング ステートに移行します。
ラーニング ステートのインターフェイスは次のように動作します。
- ポートで受信したフレームを廃棄します。
- アドレスを学習します。
- BPDU を受信します。
フォワーディング ステート
フォワーディング ステートのインターフェイスは、フレームを転送します。インターフェイスはラーニング ステートからフォワーディング ステートに移行します。
フォワーディング ステートのインターフェイスは次のように動作します。
- ポート上でのフレームの受信と受信したフレームを転送します。
- アドレスを学習します。
- BPDU を受信します。
ディセーブル ステート
ディセーブル ステートのインターフェイスは、フレーム転送にもスパニングツリーにも参加しません。ディセーブル ステートのインターフェイスは動作不能です。
無効のインターフェイスは次のように動作します。
- ポートで受信したフレームを廃棄します。
- アドレスを学習しません。
- BPDU を受信しません。
STP 機能の設定
access point/bridgeに STP を設定するには、3 つの主要な手順を完了させます。
1. 必要に応じて、インターフェイスおよびサブインターフェイスをブリッジ グループに割り当てます。
2. ブリッジ グループごとに STP を有効にします。
3. ブリッジ グループごとに STP の優先順位を設定します。
次の各項にはスパニングツリーの設定情報が含まれています。
STP のデフォルト設定
STP はデフォルトでは無効に設定されています。 表 8-2 に、STP を有効に設定したときのデフォルトの STP 設定を示します。
表 8-2 STP を有効にしたときのデフォルトの STP 値
|
|
ブリッジ プライオリティ |
32768 |
ブリッジの最大経過時間 |
20 |
ブリッジの hello タイム |
2 |
ブリッジの転送遅延 |
15 |
イーサネット ポートのパス コスト |
19 |
イーサネット ポートの優先順位 |
128 |
無線ポートのパス コスト |
33 |
無線ポートの優先順位 |
128 |
access point/bridge上の無線インターフェイス、イーサネット インターフェイス、およびネイティブ VLAN は、デフォルトではブリッジ グループ 1 に割り当てられます。STP を有効にして、ブリッジ グループ 1 の優先順位を割り当てると、無線インターフェイス、イーサネット インターフェイス、およびプライマリ VLAN 上で STP が有効になり、これらのインターフェイスはブリッジ グループ 1 に割り当てられている優先順位を採用します。サブインターフェイスのブリッジ グループを作成し、そのブリッジ グループに異なる STP 設定を割り当てることができます。
STP の設定
特権 EXEC モードから、次の手順に従ってaccess point/bridgeに STP を設定します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface { dot11radio number | fastethernet number | GigabitEthernet number} |
無線またはイーサネットのインターフェイスまたはサブインターフェイスのインターフェイス コンフィギュレーション モードを開始します。 2.4GHz 無線および 2.4GHz 802.11n 無線は 0 です。 5GHz 無線および 5GHz 802.11n 無線は 1 です。 ファスト イーサネット インターフェイスは 0 です。 |
ステップ 3 |
bridge-group number |
インターフェイスをブリッジ グループに割り当てます。ブリッジ グループには 1 ~ 255 の範囲で番号を付けることができます。 |
ステップ 4 |
no bridge-group number spanning-disabled |
ブリッジ グループに対して STP を自動的に無効にするコマンドを抑制します。bridge n protocol ieee コマンドを入力すると、STP がインターフェイス上で有効になります。 |
ステップ 5 |
exit |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
bridge number protocol ieee |
ブリッジ グループに対して STP を有効にします。bridge-group コマンドを使用して作成するブリッジ グループごとに STP を有効にする必要があります。 |
ステップ 7 |
bridge number priority priority |
(任意)ブリッジ グループに優先順位を割り当てます。優先順位を低くすると、ブリッジがスパニングツリー ルートになる可能性が高くなります。 |
ステップ 8 |
end |
特権 EXEC モードに戻ります。 |
ステップ 9 |
show spanning-tree bridge |
入力内容を確認します。 |
ステップ 10 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
STP の設定例
次の設定例では、VLAN の使用する場合と使用しない場合それぞれで、ルートおよび非ルートのaccess point/bridgeに STP を有効に設定する方法を示します。
VLAN を使用しないルート ブリッジ
次に、VLAN が設定されていないルート ブリッジに STP を有効に設定する例を示します。
hostname master-bridge-south
bridge-group 1 subscriber-loop-control
bridge-group 1 block-unknown-source
no bridge-group 1 source-learning
no bridge-group 1 unicast-flooding
bridge-group 1 subscriber-loop-control
bridge-group 1 block-unknown-source
no bridge-group 1 source-learning
no bridge-group 1 unicast-flooding
interface GigabitEthernet0
no bridge-group 1 source-learning
ip address dhcp client-id GigabitEthernet0
VLAN を使用しない非ルート ブリッジ
次に、VLAN が設定されていない非ルート ブリッジに STP を有効に設定する例を示します。
hostname client-bridge-north
interface GigabitEthernet0
bridge-group 1 path-cost 40
ip address dhcp client-id GigabitEthernet0
VLAN を使用するルート ブリッジ
次に、VLAN が設定されているルート ブリッジに STP を有効に設定する例を示します。
hostname master-bridge-hq
encapsulation dot1Q 1 native
bridge-group 1 subscriber-loop-control
bridge-group 1 block-unknown-source
no bridge-group 1 source-learning
no bridge-group 1 unicast-flooding
bridge-group 2 subscriber-loop-control
bridge-group 2 block-unknown-source
no bridge-group 2 source-learning
no bridge-group 2 unicast-flooding
bridge-group 3 subscriber-loop-control
bridge-group 3 path-cost 500
bridge-group 3 block-unknown-source
no bridge-group 3 source-learning
no bridge-group 3 unicast-flooding
encapsulation dot1Q 1 native
bridge-group 1 subscriber-loop-control
bridge-group 1 block-unknown-source
no bridge-group 1 source-learning
no bridge-group 1 unicast-flooding
bridge-group 2 subscriber-loop-control
bridge-group 2 block-unknown-source
no bridge-group 2 source-learning
no bridge-group 2 unicast-flooding
bridge-group 3 subscriber-loop-control
bridge-group 3 path-cost 500
bridge-group 3 block-unknown-source
no bridge-group 3 source-learning
no bridge-group 3 unicast-flooding
interface GigabitEthernet0
interface GigabitEthernet0.1
encapsulation dot1Q 1 native
no bridge-group 1 source-learning
interface GigabitEthernet0.2
no bridge-group 2 source-learning
interface GigabitEthernet0.3
no bridge-group 3 source-learning
ip address dhcp client-id GigabitEthernet0
VLAN を使用する非ルート ブリッジ
次に、VLAN が設定されている非ルート ブリッジに STP を有効に設定する例を示します。
hostname client-bridge-remote
encapsulation dot1Q 1 native
encapsulation dot1Q 1 native
bridge-group 3 path-cost 500
interface GigabitEthernet0
interface GigabitEthernet0.1
encapsulation dot1Q 1 native
interface GigabitEthernet0.2
interface GigabitEthernet0.3
bridge-group 3 path-cost 400
ip address dhcp client-id GigabitEthernet0