スパニングツリー(STP)では、各スイッチがルートブリッジに一番近い経路を見つけて、ルートポートを決めます。では「ルートブリッジに一番近い」とは、何をもとに計算するのでしょうか。
それは、経路上のポートのパスコスト(リンクコスト)の合計です。パスコストはポートの速度から決まる値で、速度が速いほど小さくなります。合計が大きいほど、ルートブリッジから遠いと考えます。この記事では、このパスコストの計算方法を、例を使って説明します。
- ポートの速度とパスコストの対応
- BPDU の Root Path Cost で、ルートブリッジまでのコストが伝わっていく流れ
- コストを足すのは、BPDU を受信したポートであること
パスコストの計算
次のような構成を考えます。SW1 をルートブリッジとして、SW2〜SW4 が 1Gbps、100Mbps、10Mbps とさまざまな速度のインターフェースでつながっています。
インターフェースの速度とパスコストは、次のように対応します。
| 速度 | パスコスト |
|---|---|
| 1Gbps | 4 |
| 100Mbps | 19 |
| 10Mbps | 100 |
この表の値は、Cisco のスイッチで既定の「ショート」方式のパスコストです。IEEE 802.1D-2004 では、より高速なリンクまで区別できるよう、値の大きい「ロング」方式(例:1Gbps は 20,000、100Mbps は 200,000、10Mbps は 2,000,000)が定義されています。Cisco のスイッチでは spanning-tree pathcost method で方式を選べます。使われている値は、機種やバージョン、設定によって変わるので、show spanning-tree で確認してください。
BPDU の中には Root Path Cost という項目があり、送信するスイッチからルートブリッジまでのコストが入ります。この値が BPDU に乗って、隣のスイッチへ順に伝わっていきます。
SW1 から SW2 へ
SW1 は自分がルートブリッジなので、ルートブリッジまでのコストは 0 です。この値(Root Path Cost 0)を BPDU に入れて SW2 に送ります。
SW2 はこの BPDU を受信します。受信したインターフェースの速度は 1Gbps なので、パスコストは既定で 4 です。SW2 は、受信した BPDU の Root Path Cost(0)に、受信したインターフェースのパスコスト(4)を足して、ルートブリッジまでのコストを 4 と計算します。
SW2 から SW3 へ
SW2 は、ルートブリッジまでのコスト 4 を BPDU に入れて SW3 に送ります。
SW3 はこの BPDU を受信します。受信したインターフェースの速度は 100Mbps なので、パスコストは既定で 19 です。受信した Root Path Cost(4)に 19 を足して、ルートブリッジまでのコストは 23 になります。
SW3 から SW4 へ
SW4 も同じように考えます。SW3 から Root Path Cost 23 の BPDU を受信し、受信したインターフェース(10Mbps)のパスコスト 100 を足して、ルートブリッジまでのコストは 123 になります。
この例でわかるように、パスコストを足すのは BPDU を受信したときです。BPDU を受信したインターフェースのパスコストを足し、その結果を自分のルートブリッジまでのコストとして、次のスイッチへの BPDU に入れます。BPDU を送信するインターフェースのコストは足しません。
まとめ
| スイッチ | 受信した Root Path Cost | 受信ポートのコスト | ルートブリッジまでのコスト |
|---|---|---|---|
| SW1(ルートブリッジ) | ― | ― | 0 |
| SW2 | 0 | 4(1Gbps) | 4 |
| SW3 | 4 | 19(100Mbps) | 23 |
| SW4 | 23 | 100(10Mbps) | 123 |
ルートブリッジまでの経路が複数あるときは、この合計がもっとも小さい経路のポートがルートポートになります。合計が同じときの決め方は、ポート ID の記事で説明しています。
コメント