世界一易しい?Spanning-Treeの超基本

Networkエンジニアをやっていると、忘れた頃に必ずやってくるSpanning-Treeの仕組みについて。
Spanning-Treeは難しいことを言い出せばキリがないのですが、今回は超基本についてまとめておきたいと思います。

Spannint-Tree Protocolとは?

Spanning-Tree ProtocolはSTPと略されます。
Layer2 Networkで誤って(もしくは意図的に)ループ構成となってしまった場合に、L2ブロードキャスト、マルチキャストパケットは永遠に複製し続けられ、最終的にはNetworkが飽和状態になってしまいます。

このようなループ構成を防止するためにSTPが用意されSwitch間をBPDUと呼ばれるフレームパケットを送信しループの自動検出およびPortのBlockを行えるようになりました。

今日はSTPの超基本なので、STPの説明はここまでにしておきたいと思います。

BlockとなるPortが選出されるまでの流れ

STPで自動でループが検知され、それを防止するためにPortがBlockになるにしても勝手に的となPortがBlockされてしまっては困ります。
L2 Networkをデザインする際にはSTPの基本動作を理解したNWエンジニアが各NW機器にSTPの設定調整を行いデザイン上意図したPortをBlockingすることになります。

STPの3つの要素

STPでは(ざっくりと)3つの要素を利用してBlocking Portが選出されます。
・Bridge Priority
・Path Cost
・Port Priorty
これらの3つの要素がどのように計算されるのかをまとめます。

1. Bridge Priority

STPを動作させるためにはそのNetworkで中心となる機器(Root Bridge)を選出する必要があります。
一般的にはCore SwitchのPrimary機(いわゆる1号機)をRoot Bridgeにすることが一般的です。
このRoot Bridgeは各ネットワーク機器に設定されたBridge Priorityの最も小さな数字を持った機器が選定されます。
Bridge Priorityは0から61440の数値で設定されます。
この数値は適当に設定できるものではなく4096の倍数の数字のみが有効となります。
"0"が設定された場合は最もRootにしたい機器に設定します。

単純に設定されたBridge Priorityの一番小さい機器がRoot Bridgeに設定されることになるのですが、複数の機器で最小のBridge Prioriyが設定された場合はどうなるでしょうか?
答えとしてはそのような場合はその中の最小のMacアドレスを持った機器が選出されることになります。

 

2.Path Cost

Root Bridgeが選択されたら、次に各Network機器はRoot Bridgeまでの距離を計算します。
これは物理的な距離ではなく、Root Bridgeまでの帯域(Bandwidth)の合計をPath Costの数値として導き出します。

このCostはDefaultで設定されており、
・10Gbps : 2
・1Gbps : 4
・100Mbps : 19
・10Mbps : 100
となっています。

Switchを3つ直列に接続した場合は、

となります。

これをトライアングルの構成にすると、

となり、それぞれの機器のどのPortがRoot Bridgeに最も近い(コストの数値が小さい)のかが分かることになります。

このままですとループ構成になったままとなりますので、コストが大きいInterfaceのSwitch間でBridge Priorityの小さい方が優先となり、大きい方のSwitchのポートがBlockとなります。

3.Port Priority

上記までのBridge PriorityとPath CostにてSTPのBlockとなるPortが決定となります。
それを踏まえて下図の構成の場合はどのPortがBlockとなるでしょうか?

まずはお互いのBridge Priorityを確認し、小さい方がRoot Bridgeとなるので上のスイッチがRoot Bridgeになることはすぐに分かると思います。
また、2つのリンクともに1GbpsとなるのでどちらもRoot BridgeまでのPath Costは4であることになります。

このような場合にPort Priorityが利用されます。
Port Priorityは設定可能な数値とPort番号の組みわせで利用されます。
一般的には全てのPort(Interface)で128がDefaultで一律設定されています。
ですので、意図的にPort Priorityを変更しない限りはPort番号の小さい方が優先されることになります。

まとめ

Spanning-Treeを限りなく簡単にまとめてみました。

1. Bridge Priorityの最も小さな数値の機器がRoot Bridgeに選出
2.Root BridgeまでのCostを算出し遠い(数字の大きい)PortがBlockになる
3.Root Bridgeまでで同Costが存在する場合、Port Priorityの小さい方が選出

という基本動作が理解できれば今日の内容としてはバッチリです。