L2でネットワークのループを解消するためのプロトコル
スパニングツリープロトコル(spanning tree protocol、STP)は、LAN内でループ構成を回避するためのデータリンク層の通信プロトコルである。
IEEE 802.1Dで定義、および規格化されている。概要
本プロトコルはDECで働いていたラディア・パールマンによって発明されたアルゴリズムを基礎としている。
LANを点と線によって構成されるグラフとみなし、LAN接続の一部をあえて利用禁止とすることでスパニング木を構成する。
すると、木構造はループ(閉路)を持たないことから、LAN内部でのループが回避されたことになる。STPの標準にはIEEEとDECが制定した2つの異なる規格が存在するが、コンピュータネットワークにおいて一般的に利用されるのはIEEEのものである。
これらの間に互換性はなく、両方のSTPを同時に運用した場合は正常に動作しない。スパニングツリープロトコルの動作
本プロトコルは、BPDU(bridge protocol data unit)と呼ばれるフレームのやり取りによって、木構造の根となるブリッジ(ルートブリッジ)を定める。
その上でさらにBPDUを交換することでルートブリッジまでの仮想的な距離をしらべ、その情報をもとに不要な経路を遮断する。BPDUはブリッジID(ブリッジの優先度とMACアドレスで構成)とパスコスト(通信速度などを基に設定)から成り立つ。
- 各ブリッジはBPDUを交換し、その内部に含まれるブリッジIDの比較により、ルートブリッジを決定する。
- さらにBPDUを交換し、ルートブリッジまでのパスコスト(仮想的な距離。リンク速度に応じて決められた値を合計して求める)を計算する。
- 各ブリッジにおいて、最もルートブリッジに近いポートをルートポート(Root Port、RP)とする。ただし、ルートブリッジにいたるルートが複数存在する場合は、リンク速度から求められるコストの和を比較することで、最短ルートを選ぶ。
- 各セグメントにおいて、最もルートブリッジに近いポートを指定ポート(Designated Port、DP)とする。
- その他のポートは非指定ポート(Non Designated Port、NDP)とする。
- 非指定ポートを閉塞することでスパニング木を形成する。