スパニングツリープロトコル(STP)とは?
スパニングツリープロトコルはL2スイッチを冗長化してネットワークの信頼性を高める技術の1つになります。
そのため、環状にL2スイッチをつなぐことになります。
なぜ、環状につなぐ必要があるかという点についてみていきましょう。
例えば、総務部⇔経理部⇔営業部がそれぞれのスイッチで1本の線でつながっていた場合のことを考えてみましょう。
経理部と営業部のケーブルが何らかの理由で断線した場合、営業部から通信、および総務部・経理部から営業部への通信ができなくなります。
単純に考えると以下の様に営業部と総務部の間をつないでおけば、経理部・営業部間の通信をつかって経理部⇒総務部→営業部という通信が可能になります。
しかし、一般的にはL2スイッチを環状につなぐと、正常に通信できなくなります。
それは、ブロードキャストフレームがグルグル永遠に回り続けることになるからです。
ブロードキャスト⇒受け取ったポート以外 全部のポートからフレームを出力(フラッディングという)
なので、いつまでたっても収束しないことになります。(例:ARP)
このようなことを「ブロードキャストストーム」といいます。
これを阻止するために、スパニングツリープロトコルを使います。
スパニングツリー はその名の通り 木構造を表します。
いつか必ず行き止まりになるのが木構造の原則になります。※ぐるっと回る経路のない構造
スパニングツリープロトコルは物理的には環状になっていても、論理的に行き止まりになっているようなイメージになります。
上記のように論理的に行き止まりにしているポートのことを「ブロッキングポート」といいます。
つまり通信をブロックして環状にならないようにしています(論理的に)
あくまでブロックなので仮に総務部と営業部の経路が断線等して通信できなくなった場合、ブロックされていた営業部⇔経理部の経路のブロックが外れ通信ができるようになります。
スパニングツリープロトコルでは、スイッチ間で情報をやり取りしてどれをブロッキングポートにするかを決めてくれます。
そのやりとりする情報フレームのことを「BPDU」といいます。
このスパニングツリープロトコルの規格は「IEE802.1D」です。
木構造の一番上になるものを「ルートブリッジ」といいます。
※ルートスイッチではなく、ルートブリッジといっているのが気になるかもしれませんが、昔からのなごりということでブリッジという言葉で覚えておきましょう。
障害が起きてから、ブロッキングポートが開放されて通信ができるようになるまでに最大で50秒かかります。
50秒は微妙に長いですよね・・これを早くしたものがRSTP(R⇒ラピット⇒早い)というSTPがあります。
スパニングツリープロトコルの動作
ルートブリッジを決める
ルートブリッジを決めるうえで必要になるのが「ブリッジID」になります。
ブリッジIDの最も小さいものがルートブリッジになります。
ですので、上記の図だとスイッチAがルートブリッジになります。
コストを確認する
次に各ポート間経路のコストを確認します。コストは通信速度が速いほど小さい値になります。
これでベースとなるネタができたのでBPDUをやり取りしながらブロッキングポートなどを決めていきます。
大まかな流れは以下となります。
①ルートブリッジの決定
優先度は(ブリッジID+MACアドレス)が最も小さいもの。ブリッジIDが同じ場合はMACアドレスが小さいものがルートブリッジになります。
②ポート(接続口)を以下のポートに分類する
R ルートポート
ルートブリッジに最も近いポート
D 指定ポート(代表ポート)
通常時使うもの(ルートポートでもブロッキングポートでもないも)
B ブロッキングポート ※非指定ポートとも言います
BPDUは行き来する 通常のデータフレームは通さない 行き止まり 通常時は使わないポート
ただし、BPDUは行き来します。
演習
ルートブリッジにはルートポートはありません。ルートポートにな代表ポートのみなります。
ルートポートを決めかた
①ルートポートを決める
※ルートブリッジにはルートポートはない
ブリッジ毎のポート単位
ルートブリッジ以外のブリッジごとに
ルートブリッジへ到着する経路のコストが最小となるポートを探す
例えばスイッチBの上側はコスト15
右は5+20+85=110なので上側がルートポート
コストに差がない場合は、送信元ブリッジIDを比較し最も小さいBPDUを受け取ったポートがルートポートとなります。それでも同じ場合は、送信音のポートIDも比較対象となり、ポートIDが小さいものがルートポートとなります。
②指定ポート(代表ポート)を決める
リンク(接続している回線)に着目すること!
接続単位でルートブリッジに近い方
※ルートブリッジに直接つながってるものは必ず代表ポートとなる
③ブロッキングポート
ルートポート 、指定ポートでもないもの
纏めると以下の様な感じになります。
スパニングツリープロトコルの状態遷移
先ほど、使えなくなってから経路の再計算(ブロッキングポートが使えるようになる)まで50秒かかるといいましたが、具体的には以下の状態遷移となります。
ブロッキング(Blocking)
↓ ※最大20秒
リスニング(Listening)
↓ ※最大15秒
ラーニング(Larning)
↓ ※最大15秒 ↓
フォワーディング(Fowarding) ブロッキング(Blocking)
※合計50秒
ブロッキング(Blocking)
・データ送受信不可能(MACアドレスの学習も無し)
・電源投入時の初期状態
・BPDUの受信のみ許可
・デフォルトで 20秒経過するかBPDUを受信するとリスニング(Listening)状態へ移行する
※20秒のタイマーを最大エージタイマーという
リスニング(Listening)
・データ送受信不可能(MACアドレスの学習も無し)
・BPDUの送受信を行う
・リスニング(Listening)状態からデフォルトで15秒待ってからラーニング(Larning)状態へ移行する
※この15秒間のタイマを転送遅延タイマという。
ラーニング(Larning)
・データ送受信不可能(MACアドレスの学習は可能)
・ラーニング(Larning)状態からデフォルトで15秒待ってフォワーディング(Fowarding)へ移行する
フォワーディング(Fowarding)
・データ送受信可能
・上記より全部で最大50秒間通信が不可となる。
ディセーブル(Disabled)
機器がシャットダウンしている(障害含む)状態をいいます。
シャットダウン状態なのでBPDUの送受信、MACアドレス学習共に行えません。
STPのブロッキング⇒フォワーディングになるのが50秒かかる問題解決したのが
ラピッドスパニングツリープロトコル(RSTP:Rapid Spanning Tree Protocol) で最大でも5秒以内に通信可能となります。
IEEE802.1wとして規格されています。
BPDUの一連のやり取りで機器の役割が決まった状態をコンバージェンス(収束)といいます。
BPDUの送信間隔(Helloタイマー)
BPDUの送信間隔はデフォルトで2秒となっています。このタイマーのことをHello Timeといいます。
BPDUの主な情報
主に以下の情報がやり取りされます。
・プロトコルID、バージョン
・ルートブリッジのブリッジID
・自分自身のブリッジID
・パスコスト(ルートブリッジに至るまでのパスコスト)
・自身のポートID
・Helloタイマーの値(BPDUの送信間隔)
マルチキャストで送信される。その時のアドレスは
0180.C200.0000 になります。
スパニングツリープロトコルの種類
先ほどRSTPについて少し触れましたが、スパニングツリープロトコルは大きく3種類あり。IEEE標準のものとCISCO独自のものがあります。IEEEのものはCISCO機器にも対応しています。
プロトコル | IEEE規格 | CISCO独自 |
STP | IEEE802.1d | PVST+ |
RSTP | IEEE802.1w | Rapid PVST+ |
MSTP | IEEE802.1s | ー |
RSTPについて
RSTPでは状態が3種類しかありません。
・ディスカーディング(Discarding)
↓
・ラーニング
↓
・フォワーディング
STPとの違いはディスカーディング(Discarding)になります。
STPのディセーブル、ブロッキング、リスニングが一つにまとまったイメージです。
ディスカーディングではMACアドレス学習・データ転送共に行いません。
ブリッジIDについての詳細
IEEE標準のブリッジIDは以下となります。
ブリッジプライオリティ(16bit)+MACアドレス(48bit)
※ブリッジプライオリティのデフォルト値は32768
Cisco独自のSTPのブリッジIDは 拡張システムIDが上記に追加になります。
ブリッジプライオリティ(4bit)+拡張システムID(12bit)+MACアドレス(48bit)
※ブリッジプライオリティはプライオリティは4096の倍数で指定する必要があります。
インスタンスについて
スパニングツリーでは、VLAN設定等のインスタンス(トポロジ)により以下の3種類に分類されます。
・CST (IEEE標準のSTP,RSTPで適用)
VLANにかかわらず全体で1つ
・PVST+ (CISCO独自規格で適用)
VLANごとに1つ
・MST (IEEE標準のMSTPで適用)
複数のVLANで一つ ※VLANをグルーピング化
ルートガード機能
例えば現在 スイッチA(ブリッジID10)がルートブリッジだった場合、BPDUのやりとりで他のスイッチのブリッジIDが5が来た場合、ブリッジIDが小さい方がルートブリッジになりますが、不整合がしょうじているので、そのポートを不整合という状態にして送受信をできないようにする機能になります。
PortFastとは
PCやサーバを接続しているアクセスポートをPortFastといいます。
上記図の赤枠の部分に該当します。
通常のスパニングツリー遷移状態をブロッキングから直接フォワーディング(使える状態)にする機能です。
PCやサーバは直接スパニングツリーに参加しないデバイスなので上記の対応をすることですぐに利用することが可能になります。
パスコストのデフォルト値について
以下の値がデフォルト値として設定されています。
帯域幅 | コスト |
10Gbps | 2 |
1Gbps | 4 |
100Mbps | 19 |
10Mbps | 100 |
RSTPについて
ブロッキングポートではなくバックアップポート ※要追記
コメント