【初心者向け】Packet Tracerでネットワークを学ぶ(STP)

STP(Spanning Tree Protocol)はブロードキャストストームを防止するためにポートの通信を行わない状態に遷移させるプロトコルです。

ブロードキャストストームとはスイッチがループになったネットワークでずっとブロードキャスト通信であるARP要求を送り続ける状態のことをいいます。

1. STPとは

STP(Spanning Tree Protocol)はブロードキャストストームを防止するためにポートの通信を行わない状態に遷移させるプロトコルです。

ブロードキャストストームとはスイッチがループになったネットワークでずっとブロードキャスト通信であるARP要求を送り続ける状態のことをいいます。

例えば以下のような環境があったとします。


PCAからPCBの経路は障害が発生した場合のための経路を冗長化しています。

経路1 Switch1→Switch2

経路2 Switch1→Switch3→Switch2


このネットワークでSTPが無効になっていた場合、PCAからSwitch1に通信を行うとSwitch1はARP要求をSwitch2とSwitch3の両方に発信します(ブロードキャスト通信)。

ARP要求を受け取ったSwitch2は更にARP要求をSwitch3に、Switch3はSwitch2へARP要求を行います。

Switch2はSwitch3からきたARP要求をSwitch1に送り、Switch3はSwitch2からきたARP要求をSwitch1に送ります。

そしてSwitch2とSwitch3からきたARP要求をSwitch1はまたSwitch2とSwitch3に送ってしまうというブロードキャストキャストの通信が延々に発生してしまう状態がブロードキャストキャストストームです。


STPはポートに役割を持たせます。

その役割の内、非指定ポートと呼ばれる役割を割り当てられたポートは通信を行わないポートになります。

非指定ポートになることでARP要求が送られてきても受け取らず、また非指定ポートから通信を発信することがなくなるのでブロードキャストストームを防止することができます。


2. ポートの役割の決め方


ポートには非指定ポートの他にルートポート、指定ポートという役割があります。

役割を決定するにはいくつかの手順を踏む必要があります。

2-1. スイッチの情報交換を行う

まずスイッチが他のスイッチと比較できるよう情報交換を行います。

ここで情報交換を行う仕組みがBPDU(Bridge Protocol Data Unit)です。

BPDUはルートID、ブリッジIDなど様々パラメータを持っておりこれを比較することで ポートの選出を決定づけます。

2-2. ルートブリッジの決定

冗長構成となっているスイッチの代表となるのがルートブリッジです。

交換されたBPDUはスイッチに設定されているブリッジIDを比較して一番小さいブリッジIDを持つスイッチをルートブリッジに決定します。

2-3. ルートポートの決定

ルートポートはルートブリッジから一番近いポートです。

各スイッチのポートの内、最短のパスコストのポートがルートポートとなります。

パスコストは帯域幅ごとにコストが決まっています。

ロング法とショート法がありデフォルトはショート法です。

ルートポートはルートブリッジを除くスイッチで必ず一つ選出されます。


帯域幅 コスト(ショート法)

10Mbps 100

100Mbps 19

1Gbps 4

10Gbps 2


パスコストは他のスイッチを経由するとその分、パスコストが累積されます。

ポート毎でパスコストを比較し最小のパスコストを持つポートがそのスイッチの ルートポートになります。

パスコストを比較して同じ値だった場合は送信元のブリッジIPを比較して最小のBPDUを受け取ったポートがルートポートになります。

送信元ブリッジIDでも差がない場合は送信元ポートIDを比較します。

ポートIDはポートプライオリティとポート番号の組み合わせでポートプライオリティをまず比較し、差がない場合はポート番号を比較します。

2-4. 指定ポートの決定

指定ポートは各スイッチ間(セグメント)でルートブリッジに一番近いポートです。

セグメントで接続されているスイッチの持っているパスコストで一番小さいもの同士を比較します。

比較した最小のパスコストもスイッチのポートが指定ポートになります。

パスコストで決定できない場合は送信元ブリッジIDを比較し、それでも決定しなければ送信元ポートIDで比較して指定ポートを決定します。

2-5. 非指定ポート

ルートポート、指定ポートを決定後、どの役割にも当てはまらなかったポートが非指定ポートとなります。

3. STPの確認

CiscoのCatalystスイッチではSTPはデフォルトで動作します。

実際に確認コマンドを使ってSTPの状態を確認してみます。

環境は先程と同じ構成でPCは全てVLAN2に所属しています。


4. STPの状態の確認

STPの状態の確認には特権EXECモードにて以下のコマンドを入力します。

#show spanning-tree [vlan ]


vlanを省略することで全てのvlanのSTP状態を確認することができます。

入力することで以下の内容が表示されます。(以下はSwitch1は実行した図)


4-1. ①Spanning tree enabled protocol ieee

STPのモードの情報が分かります。

ieeeはPVST+、rstpはrapid-pvstというモードになります。

4-2. ②Root ID

ルートブリッジの情報が表示されている。

Priority
ルートブリッジのブリッジプライオリティです。
プライオリティ値+VLAN IDが表示されています。
例はデフォルト値の32768+VLAN 2の合計値です。

Address
ルートブリッジのMACアドレス

Cost
ルートブリッジまでのパスコストです。
ルートブリッジでは「This bridge is the root」と表示されます。

Port
ルートブリッジに向かうためのポートです。

4-3. ③自身の情報

コマンドを入力したスイッチ自身の情報が表示されます。

4-4. ④各インターフェースの情報

インターフェース毎の情報が確認できます。

Role
役割を確認できます。
Rootはルートポート、Desgは指定ポート、Altnは非指定ポートです。

Sts
インターフェースの状態を確認できます。
FWDはフォワーディング、LISはリスニング、LRNはラーニング、BLKはブロッキング。
データが転送できる状態はフォワーディング、非指定ポートとないデータが転送できない状態がブロッキングとなります。

Cost
ポートのパスコストが確認できます。

Prio.Nbr
ポートのプライオリティとポート番号が表示されます。
128はデフォルトの値です。

Type
ポートのタイプが表示されます。
ポイントツーポイントのP2p、間にハブなどが接続されているshared、PortFastが設定されているP2p Edge


先程の図でルートブリッジではないSwitch1のSTP状態を確認しました。

内容を確認したところPort3となっています。

Fa0/3の接続先がルートブリッジとなるので 接続されているSwitch3のSTPの状態を確認してみます。


Root IDの部分を見てみると先程はCostとPortの行がありましたが変わりに「This bridge is the root」となっています。

またRole部分を確認してみるとDesgとなっています。

ルートブリッジはルートポートを持たず全て指定ポートとなります。