スパニングツリープロトコル

読み:すぱにんぐつりーぷろとこる / 英語表記:Spanning Tree Protocol

スイッチ(ブリッジ)をループ状に接続したネットワークで、一部のポートをブロックして論理的に木構造にし、フレームが回り続けるのを防ぐプロトコル。IEEE 802.1Dで定められている。

イマシルちゃんの解説

スイッチを輪っかのようにつなぐと、1本ケーブルが切れても別の道で通信できて安心だよね。
でも、そのままだとブロードキャストのフレームが輪っかの中をぐるぐる回り続けて、
ネットワークがパンクしちゃうんだ。これをブロードキャストストームっていうよ。

そこでスパニングツリーは、輪っかのどこか1か所を「通行止め」にして、ループをなくすんだ。
しかも、使っている道が切れたら、通行止めを自動で解除して迂回路にしてくれる。
冗長性とループ防止を両立する、かしこい仕組みなんだよ!

より深い解説

定義

スパニングツリープロトコル(STP)は、レイヤ2のネットワークに物理的なループがあるとき、ブリッジ同士でBPDU(Bridge Protocol Data Unit)という制御フレームを交換し、ループのない木構造(スパニングツリー)を論理的に作るプロトコルである。木に含まれないポートは、データのフレームを転送しないブロッキング状態にする。

なぜループが問題なのか

イーサネットのフレームには、IPのTTLのような「寿命」がない。ループがあると、次の問題が起こる。

問題内容
ブロードキャストストームブロードキャストのフレームが、ループを回りながら増え続け、帯域を使い尽くす
MACアドレステーブルの不安定同じ送信元MACアドレスのフレームが、別々のポートから届き、学習内容が書き換わり続ける
フレームの重複同じフレームが宛先に何度も届く

スパニングツリーの作り方

  1. ルートブリッジを選ぶ

ブリッジID(ブリッジプライオリティ+MACアドレス)が最も小さいブリッジが、木の根(ルートブリッジ)になる

  1. ルートポートを選ぶ

ルートブリッジ以外の各ブリッジで、ルートブリッジまでのルートパスコスト(経由するリンクのコストの合計)が最小になるポートを、ルートポートにする

  1. 指定ポートを選ぶ

各リンク(セグメント)で、ルートブリッジまでのコストが最小のブリッジのポートを、そのリンクの指定ポートにする。ルートブリッジのポートはすべて指定ポートになる

  1. 残りをブロックする

ルートポートでも指定ポートでもないポートを、ブロッキングポートにする

コストが同じ場合は、相手のブリッジID、ポートIDの小さいほうが優先される。

コストから木を求める考え方

ルートポートの選び方は、「ルートブリッジから各ブリッジまでの最短経路」を求めることと同じである。そのため、各区間のコストが与えられた図からスパニングツリーを求めるには、ルートを始点にしたダイクストラ法の要領で、近いブリッジから順に「最短でたどり着く経路」を決めていけばよい。各ブリッジについて、最短経路の最後の区間が木に含まれる辺になる。

例:ルートをR、区間のコストを R─X (2)、R─Y (6)、X─Y (3)、X─Z (5)、Y─Z (1) とする

ブリッジルートまでの最小コスト経路木に入る区間
X2R→XR─X
Y5R→X→YX─Y
Z6R→X→Y→ZY─Z

木に入らないR─Y、X─Zの区間は、どちらかの端のポートがブロックされる。直接つながっている区間でも、コストが大きければ木に含まれないことに注意する。

パスコストの標準値(IEEE 802.1D-1998)

リンク速度コスト
10Mbit/s100
100Mbit/s19
1Gbit/s4
10Gbit/s2

速いリンクほどコストが小さく、ルートへの経路として選ばれやすい。

ポートの状態遷移(802.1D)

状態フレームの転送MACアドレスの学習BPDUの処理
ブロッキングしないしない受信のみ
リスニングしないしない送受信
ラーニングしないする送受信
フォワーディングするする送受信

ブロッキングからフォワーディングに移るまで、リスニングとラーニングにそれぞれ転送遅延(標準15秒)がかかる。障害を検知するまでの最大エージ(標準20秒)を合わせると、切り替えに最大50秒程度かかる。この遅さを改善したのがRSTPである。

スパニングツリーの弱点

このため、データセンターなどでは、リンクアグリゲーションやスタック、レイヤ3の冗長化と組み合わせて、STPに頼らない設計も増えている。

実際の試験ではここに出る!

この用語が出てくる記事

↑