■STPの説明
冗長構成をとりながら、ループのないループフリー環境を作り出す
■BPDUが持つ情報(2秒に1回送信される)
・ルート情報・・・ルートに設定されたブリッジのID
・パスコスト・・・そのリンクのルートブリッジからの距離
・ブリッジ情報・・BPDUを送信したブリッジの情報
・ポート情報・・・BPDUを送信したポートの情報
・タイマ・・・・・スパニングツリーを構成するための時間
↓
ループが起きないように転送を停止するポートを決める
STPはルートブリッジを中心としてループの有無を判断する
■STPの順序
①ルートブリッジ の選択
最も小さいブリッジIDを持つものが、ルートブリッジとなる。
STPが稼動(enable)されているブリッジでは、BPDU(STPのHelloパケット)が交換される。
BPDUには、ブリッジID (※ブリッジのプライオリティ+ブリッジのMACアドレス)が含まれている。
このブリッジIDが最も小さい値を持つものが、ルートブリッジとなる。
※0~65535の値が入る。デフォルトはCatalystでは32768。Switchが起動した直後は全てのSwitchが
自分がRoot Bridgeであると認識している
1、各ブリッジは自分がルートブリッジだと思っている。
↓
2、自分のブリッジIDをBPDUにいれブロードキャストを発信
↓
3、他のブリッジが自分のブリッジIDよりも低いブリッジIDを受信
↓
4、自分よりも低いブリッジIDを受け取ったブリッジはルートブリッジ
を自分から他のブリッジに変更する。
↓
5、変更したルートブリッジ情報を今度から発信するようになり、これを
繰り返し全体の中のルートブリッジを決定する。
②Rootポートの選択
ブリッジから、ルートブリッジへ最短経路となるポートがRootポートになる。
最短経路とは通信速度のことであり、10Mbps と 100Mbps のポートでは、後者が最短経路のポートとなる。
通信速度が同じ場合、最も小さいブリッジIDを受け取ったポートがRootポートになる。
ブリッジIDも同じ場合、上位ブリッジの最も小さいポート番号と接続しているポートがRootポートになる。
※1)RootブリッジからRoot Path Cost = "0"のBPDUが下流のSwitchめがけて送信される
2)BPDUを受信したSwitchは受信したPortのCostをBPDUに付加する
3)新たなRoot Path CostとなったBPDUを更に下流のSwitchに対して送信する。
送信時にはPort Costは付加されない。
上述の作業を延々と繰り返し、複数のBPDUを受信し、最も値が小さかったBPDUを受信したPortが
Rootポートとなる。
③Designatedポート(代表ポート)とBlockedポートの選択
セグメントから、ルートブリッジへ最短経路となるポートがDesignatedポートになる。
RootポートにもDesignatedポートにも選択されなかったポートが、Blockedポートになる。
ループ構成のポートにおいて、ルートブリッジの全てのポートはDesignatedポートになる。
代表ポートは、ネットワークループを防ぐためのもので、各セグメントへのパスが複数ある場合に
選択される。
※ルートポートは上から下(つまり、ルートブリッジから各スイッチ)をイメージし、
代表ポートは下から上(つまり、各スイッチからルートブリッジをイメージ)
■さまざまなリンク速度のスパニングツリー パスコスト
リンク速度 |
コスト(改正後のIEEE仕様) |
コスト(改正前のIEEE仕様) |
10Gbps |
2 |
1 |
1Gbps |
4 |
1 |
100Mbps |
19 |
10 |
10Mbps |
100 |
100 |
■STPステータスの移行
初期納入時等では、全てのBridgeが自身をRootと認識しているためRootが複数存在していると
いったような状態となり、全てのBridgeのInterfaceが常にForwarding状態であったとした場合
深刻な Loop 障害を引き起こす原因となってしまう。
こういった障害を防ぐため、STPには5つの状態があり、まず、Blocking状態から開始し
BPDUの受信のみを行いデータフレームの転送は実施しない。
Loop状態にならない事を確認した上で初めてPortはForwarding状態となり、データフレームの
転送を可能にする。
①ブロッキング状態(20秒)
Switchの電源投入時にはSwitchのどれかのPortからBPDUを受信するのを待つ。
BPDUを自身のどのPortからも受信しなかった場合、Switchは自分がRootであると判断する。
自分以外の他のSwitchからBPDUを受信した場合には、BPDUを受信したPortはListening状態となり
BLocking状態から解除される。
・Neighbore Segment から受信したFrameを破棄する
・自身の他のPortから内部SwitchingされたFrameを破棄する
・MAC Addressの学習を行わない
・BPDUを受信のみ実施し、Sytem Moduleに転送する
・System Moduleから受信したBPDUを送信しない
②リスニング状態(15秒)
ブロッキング状態の次にSTPはListening Stateの状態になる。
この状態からBPDUの送受信を行う事が出来るようになり、Root情報の比較による、Rootの決定
Cost等の比較による最適経路を決定する。
・Neighbore Segment から受信したFrameを破棄する
・自身の他のPortから内部SwitchingされたFrameを破棄する
・MAC Addressの学習を行わない
・BPDUを受信しSystem Moduleに転送する
・System Moduleから受信したBPDUを処理する
・Network 管理メッセージを受信して応答する
③ラーニング状態(15秒)
リスニング状態が終了すると、次はラーニング状態となる。
この状態でもPortはまだ監視状態であり、Frameの転送は行えない。
但し、リスニング状態とは異なりMACアドレスの情報を学習し、
Frame転送の準備を行います。
・Neighbore Segment から受信したFrameを破棄する
・自身の他のPortから内部SwitchingされたFrameを破棄する
・MAC Addressの学習を行う
・BPDUを受信しSystem Moduleに転送する
・System Moduleから受信したBPDUを処理して送信する
・Network 管理メッセージを受信して応答する
④フォワーディング状態
最終的にフォワーディング状態になるとSwitchは初めてData Frameの送受信を行う事が
出来るようになる。
・Neighbore Segment から受信したFrameを転送する
・自身の他のPortから内部SwitchingされたFrameを転送する
・MAC Addressの学習を行う
・BPDUを受信しSystem Moduleに転送する
・System Moduleから受信したBPDUを処理して送信する
・Network 管理メッセージを受信して応答する