【テクニカル・上級編】 STPパスコスト(Path Cost)とポート役割の決定プロセス – インフラ・物理&L2/L3ネットワーク基礎実践ガイド

STPの「パスコスト」という名の静かなる統治者:レイヤ2ループを回避する決定論理の深淵

ネットワークインフラの現場に立つエンジニアにとって、Spanning Tree Protocol(STP)は「古臭い遺物」のように思われがちだ。しかし、データセンターの足元で、何千ものパケットがミリ秒単位で転送されるその裏側で、STPは今なおネットワークの「死」――つまりブロードキャストストーム――を未然に防ぐ静かなる守護神として君臨している。

今回は、STPがどのようにして「どこの道を通るべきか」を決定するのか、そのパスコストの論理と、そこから派生するパフォーマンス最適化の勘所を紐解いていこう。

—

1. パスコスト:リンク速度という名の「物理的格差」

STPの決定論理において、最も重要な指標が「パスコスト(Path Cost)」だ。ルートブリッジへの道のりを評価する際、スイッチはリンクの帯域幅に基づいたコストを積み上げていく。

かつてIEEE 802.1Dが策定された当初、コストは「1000 Mbps / リンク帯域」という単純な計算式に基づいていた。しかし、現代の10Gbps、40Gbps、あるいは100Gbps環境では、この古い計算式は破綻する。そのため、現在では long モード(32bit値)を使用するのがデファクトスタンダードだ。

帯域とコストの対応表(推奨値)

| リンク速度 | 推奨コスト値 |
| :— | :— |
| 10 Mbps | 2,000,000 |
| 100 Mbps | 200,000 |
| 1 Gbps | 20,000 |
| 10 Gbps | 2,000 |
| 100 Gbps | 200 |

この数値を理解せずにデフォルト設定を放置することは、ハイパフォーマンスなバックボーンを設計する上で致命的だ。例えば、10Gbpsのリンクが複数並ぶ構成で、物理的な接続ミスにより意図しない「遅いリンク」が論理的に選定されてしまうと、トランスポート層のTCPウィンドウサイズやRTT(Round Trip Time)に悪影響を及ぼし、スループットが劇的に低下する。

—

2. ポート役割の選定:パケットが「通るべき道」はどう決まるか

STPがネットワークのトポロジを決定する際、各ポートには役割(Role)が割り当てられる。このプロセスは以下の優先順位で厳密に実行される。

1. ルートポート(Root Port)の選定: 各非ルートブリッジにおいて、ルートブリッジへの「最小累積パスコスト」を持つポート。
2. 指定ポート(Designated Port)の選定: 各セグメントにおいて、ルートブリッジへ最も近いコストで到達できるポート。
3. 非指定(Blocking)ポート: 上記のいずれにも該当しないポート。これらがシャットダウン(論理的遮断)されることでループを回避する。

もしコストが同点の場合は、以下のタイブレーカーが順次参照される。

  • 送信元ブリッジID(Bridge ID): より小さいBIDを持つものが優先。
  • 送信元ポート優先度(Port Priority): より小さい値が優先。
  • 送信元ポートID(Port ID): 物理的なポート番号が小さい方が優先。

—

3. インフラアーキテクトが意識すべき「隠れたパフォーマンス劣化」

STPの挙動は、上位レイヤのTCPスタックにも波及する。例えば、トポロジ変更が発生し Topology Change Notification (TCN) が発報されると、スイッチはMACアドレステーブルの保持時間を強制的に短縮する。これにより一時的なフラッディング(ユニキャストパケットの全ポート転送)が発生し、これが微細なRTTの揺らぎ(ジッター)を生む。

トラブルを防ぐためのCLI設定(Cisco IOS例)

無駄な再計算を防ぐために、エッジポートには必ず portfast を適用し、かつ bpduguard で不正なスイッチ接続を拒絶する設計が不可欠だ。

! エッジポート(PCやサーバー接続用)の設定
interface GigabitEthernet1/0/1
 description Server_Node_01
 switchport mode access
 spanning-tree portfast          # TCNを発生させず即座に転送状態へ
 spanning-tree bpduguard enable  # 万が一のループを物理的に防ぐ
!
! パスコストを手動でチューニングする際は慎重に
interface TenGigabitEthernet1/0/49
 spanning-tree cost 2000         # 10Gbpsであることを明示的に定義

—

4. セキュリティと極限パフォーマンスへの洞察

現代のネットワークでは、STPのパスコスト管理以上に、TCPバッファの最適化とTLSハンドシェイクの高速化がレイヤ2の安定性に依存している。

  • RTT削減の重要性: ネットワークが安定していない(STPが頻繁に収束している)と、TCPの Slow Start アルゴリズムが正しく機能せず、スループットが頭打ちになる。
  • ヘッダー圧縮とTLS: 1-RTTハンドシェイクを成功させるには、そもそもパケットロスのないクリーンなレイヤ2パスが必須だ。STPの設定が不適切で「パケットの順序入れ替わり(Out-of-order)」が多発すると、TCPの再送制御が働き、TLSのハンドシェイクに余計な遅延が生じる。

現場からの提言

もしあなたがテックリードなら、STPのパスコストを「自動」に任せるのではなく、トポロジ図に合わせて手動で確定させることを強く推奨する。物理リンクの速度が速いにもかかわらず、STPコストの計算基準が古いまま放置されていると、トラフィックが意図しないリンクに押し寄せ、ボトルネックによるパケットドロップを誘発するからだ。

まとめ

STPは単なるループ防止機構ではない。それは、ネットワークにおける「情報の通り道」を定義し、上位レイヤのトランスポート効率を左右する、極めて重要な制御プレーンである。

「たかがスイッチのパスコスト」と侮るなかれ。その背後にある決定論理を理解し、手動で設計を制御することこそが、高可用性と低遅延を両立させるプロフェッショナルなインフラアーキテクトの第一歩なのだ。

コメント

タイトルとURLをコピーしました