#author("2024-04-11T02:41:10+09:00;2024-04-10T21:44:37+09:00","default:tanopro","tanopro")
#author("2024-04-11T03:24:17+09:00;2024-04-10T21:44:37+09:00","default:tanopro","tanopro")
#html{{
<h1 style="color: red; background-color: #FFFFCC; padding: 20px;">
STP
</h1>

<div class="alert alert-warning" role="alert">
Spanning Tree Protocol
</div>
}}

// 概要
- L2でネットワークのループを解消するためのプロトコル
- Ethernet の経路冗長化の技術
- L2の冗長化技術としては、[[STP]]や[[RSTP]]よりも[[スタック]]や[[リンクアグリゲーション]]の方が優れた技術なので、最近ではSTPやRSTPは使われなくなった

//----------------------------------------
#contents
//----------------------------------------

*検索 [#xc91ad63]
-Spanning Tree Protocol - Google 検索
https://www.google.com/search?q=Spanning+Tree+Protocol

*説明 [#j65f3278]
[[ネスペ教科書]] p.33

L2スイッチを複数接続して経路を冗長化すると、経路がループ構成になります。
こうなると、フレームがループを無限に流れ続け、通信ができなくなります。
そこで、IEEE 802.1Dで規定されているデータリンク層のプロトコルであるSTP(スパニングツリープロトコル)を有効にします。
STPは、ループ構成になった経路の一部をフレームが流れないようにブロックすることで、フレームのループを防ぎます。

** STPの目的 [#v1e1727c]
+ ループの回避
+ 信頼性向上(冗長性の確保)

** L2の冗長化技術 [#p2fd782d]
[[ネスペR3]] p.36

レイヤ2の冗長化技術としてはSTP(および[[RSTP]])よりは[[スタック]]と[[リンクアグリゲーション]]の技術のほうが優れています。
実際の現場でも、STPやRSTPは利用されません。

** STPの用語 [#v686cd9a]
-Geminiによる説明
https://gemini.google.com/app/1ccf5f9ca03a5b06
>質問:STP(Spanning Tree Protocol)に出てくるポートの種類を全て列挙してください。

STP(Spanning Tree Protocol)に出てくるポートの種類
STP(Spanning Tree Protocol)では、以下の5種類のポートがあります。

*** 1. ルートポート (Root Port) [#p3ebe9e5]
- ルートブリッジに最も近いポート
- 1つのスイッチに1つだけ存在
- データフレームの送受信を行う

*** 2. 指定ポート (Designated Port) [#e145435f]
- 同じLANセグメント上のスイッチ間で、ルートブリッジまでのパスコストが最小のポート
- 1つのLANセグメントに1つだけ存在
- データフレームの送受信を行う

*** 3. 代替ポート (Alternate Port) [#ed7b6e8b]
- 冗長経路として使用されるポート
- 複数存在する可能性がある
- 通常はブロッキング状態だが、ルートポートや指定ポートに障害が発生した場合にフォワーディングを行う

*** 4. バックアップポート (Backup Port) [#ne3f2f90]
- 代替ポートと似ているが、より高速なフェイルオーバーを提供する
- 複数存在する可能性がある
- 通常はブロッキング状態だが、ルートポートや指定ポート、代替ポートに障害が発生した場合にフォワーディングを行う

*** 5. 非指定ポート (Non-Designated Port) [#k71c5f53]
- 上記4種類のポートに該当しないポート
- データフレームの送受信は行われない
- ブロッキング状態

--補足
RSTP(Rapid Spanning Tree Protocol)では、代替ポートとバックアップポートが追加されました。

それぞれのポートの詳細については、以下の情報をご覧ください。
- STP - スパニングツリープロトコルの動作 - ネットワークエンジニアとして: https://www.infraexpert.com/study/stpz2.html
- RSTP - ラピッドスパニングツリープロトコルとは: https://www.infraexpert.com/study/stpz8.html

*参考 [#j1f74de7]
-スパニングツリープロトコル - Wikipedia
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%91%E3%83%8B%E3%83%B3%E3%82%B0%E3%83%84%E3%83%AA%E3%83%BC%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB
>スパニングツリープロトコル(spanning tree protocol、STP)は、LAN内でループ構成を回避するためのデータリンク層の通信プロトコルである。
[[IEEE 802.1D]]で定義、および規格化されている。
>概要
本プロトコルはDECで働いていたラディア・パールマンによって発明されたアルゴリズムを基礎としている。
LANを点と線によって構成されるグラフとみなし、LAN接続の一部をあえて利用禁止とすることでスパニング木を構成する。
すると、木構造はループ(閉路)を持たないことから、LAN内部でのループが回避されたことになる。
>STPの標準にはIEEEとDECが制定した2つの異なる規格が存在するが、コンピュータネットワークにおいて一般的に利用されるのはIEEEのものである。
これらの間に互換性はなく、両方のSTPを同時に運用した場合は正常に動作しない。
>スパニングツリープロトコルの動作
本プロトコルは、[[BPDU]](bridge protocol data unit)と呼ばれるフレームのやり取りによって、木構造の根となるブリッジ(ルートブリッジ)を定める。
その上でさらにBPDUを交換することでルートブリッジまでの仮想的な距離をしらべ、その情報をもとに不要な経路を遮断する。
>BPDUはブリッジID(ブリッジの優先度とMACアドレスで構成)とパスコスト(通信速度などを基に設定)から成り立つ。
+各ブリッジはBPDUを交換し、その内部に含まれるブリッジIDの比較により、ルートブリッジを決定する。
+さらにBPDUを交換し、ルートブリッジまでのパスコスト(仮想的な距離。リンク速度に応じて決められた値を合計して求める)を計算する。
+各ブリッジにおいて、最もルートブリッジに近いポートをルートポート(Root Port、RP)とする。ただし、ルートブリッジにいたるルートが複数存在する場合は、リンク速度から求められるコストの和を比較することで、最短ルートを選ぶ。
+各セグメントにおいて、最もルートブリッジに近いポートを指定ポート(Designated Port、DP)とする。
+その他のポートは非指定ポート(Non Designated Port、NDP)とする。
+非指定ポートを閉塞することでスパニング木を形成する。

-スパニングツリープロトコルの発展形
>スパニングツリーの動作上の欠点として、収束までの時間が長いことや、VLANを構成する環境での動作が難しいことが挙げられる。
収束までの時間短縮を図った規格として、IEEE 802.1wにラピッドスパニングツリープロトコル(Rapid Spanning Tree Protocol、[[RSTP]])が、またVLAN環境での動作を考慮した規格として、IEEE 802.1sにマルチプルスパニングツリープロトコル(Multiple Spanning Tree Protocol、[[MSTP]])が、それぞれ規定されている。
なお、IEEE 802.1s は後に IEEE 802.1Q に統合されている。
>RSTPによって、通常のSTPが(ネットワークの大きさにもよるが)40〜50秒かかる収束時間を、数秒に抑えることができる。


- 【暗記いらず】分かりやすいSTP(スパニングツリー)の本質とアルゴリズム | SEの道標
https://milestone-of-se.nesuke.com/nw-basic/stp/stp-summary/
>近年は LinkAggregation という技術により、L2 の経路冗長と同時に負荷分散も可能になりましたので、実装されることは少なくなってきています。


-STPの役割決定手順 - ネットワーク入門サイト
https://beginners-network.com/supplement/stp_role.html


-STP - スパニングツリープロトコルの動作
https://www.infraexpert.com/study/stpz2.html


*関連 [#o8091775]
- [[LAN]]
- [[BPDU]]
- [[RSTP]]
- [[MSTP]]
- [[スタック]]
- [[リンクアグリゲーション]]
- [[マルチホーミング]]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS