【スパニングツリー】リンクコスト計算をわかりやすく解説

スパニングツリー(STP)では、各スイッチがルートブリッジに一番近い経路を見つけて、ルートポートを決めます。では「ルートブリッジに一番近い」とは、何をもとに計算するのでしょうか。

それは、経路上のポートのパスコスト(リンクコスト)の合計です。パスコストはポートの速度から決まる値で、速度が速いほど小さくなります。合計が大きいほど、ルートブリッジから遠いと考えます。この記事では、このパスコストの計算方法を、例を使って説明します。

この記事でわかること
  1. ポートの速度とパスコストの対応
  2. BPDU の Root Path Cost で、ルートブリッジまでのコストが伝わっていく流れ
  3. コストを足すのは、BPDU を受信したポートであること

パスコストの計算

次のような構成を考えます。SW1 をルートブリッジとして、SW2〜SW4 が 1Gbps、100Mbps、10Mbps とさまざまな速度のインターフェースでつながっています。

1Gbps コスト 4 100Mbps コスト 19 10Mbps コスト 100 SW1 SW2 SW3 SW4 ルートブリッジ
図1 検証構成

インターフェースの速度とパスコストは、次のように対応します。

速度パスコスト
1Gbps4
100Mbps19
10Mbps100
補足

この表の値は、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 になります。

1Gbps 100Mbps 10Mbps SW1 SW2 SW3 SW4 ルートブリッジ BPDU Root Path Cost 0 BPDU Root Path Cost 4 BPDU Root Path Cost 23 ルートまでのコスト 0 ルートまでのコスト 0 + 4 = 4 ルートまでのコスト 4 + 19 = 23 ルートまでのコスト 23 + 100 = 123 BPDU を受信したポート(このポートのコストを足す)
図2 BPDU の Root Path Cost と、各スイッチのルートブリッジまでのコスト

この例でわかるように、パスコストを足すのは BPDU を受信したときです。BPDU を受信したインターフェースのパスコストを足し、その結果を自分のルートブリッジまでのコストとして、次のスイッチへの BPDU に入れます。BPDU を送信するインターフェースのコストは足しません。

まとめ

スイッチ受信した Root Path Cost受信ポートのコストルートブリッジまでのコスト
SW1(ルートブリッジ)――0
SW204(1Gbps)4
SW3419(100Mbps)23
SW423100(10Mbps)123

ルートブリッジまでの経路が複数あるときは、この合計がもっとも小さい経路のポートがルートポートになります。合計が同じときの決め方は、ポート ID の記事で説明しています。

 

コメント