スパニングツリー

ネットワークはループが発生すると通信不可になってしまうため、回避する技術があります。本項ではスパニングツリーについて説明します。

スパニングツリーの概要

 スイッチ間でループを形成した場合、ARP等全ての装置に送る必要があるフレームは全インターフェースに送出されるため永遠に回り続けます。

スパニングツリー1

 減る事がないためすぐに大量になり、スイッチの許容量を超えてフレームを処理しきれなくなるため、通信が殆ど出来ない状態になります。これをブロードキャストストームと言います

 スパニングツリーを設定すると、ループを形成した場合でも通信しないインターフェースを設ける事でブロードキャストストームになりません。

スパニングツリー2

 スパニングツリーは略してSTPと呼ばれます。

動作概要

 STPはBPDUというフレームをスイッチ間で送受信して設定で優先度の高く設定されたスイッチをルートブリッジに決めます。このBPDUのやり取りの中でループを検出し、どちらのインターフェースがルートブリッジにとって最短かを判断し、フレームを転送するフォワーディング、転送しないブロッキングというインターフェースを決めます。

スパニングツリー3

 スイッチの起動直後はループを発生させないように全てのインターフェースがフレームを転送しませんが、BDPUのやり取りの中でフォワーディングやブロッキングが決まってきます。このため、フレームを転送し始めるまで少し時間がかかります。

 又、この決定はルートブリッジにとって最短かであって通信にとって最短かではありません。但し、設定を行う事で優先度を変更し、異なるインターフェースをブロッキングにする事も可能です。この設定はコスト値と呼ばれます。

 コスト値10を設定した経路と100を設定した経路では10を設定した経路がフォワーディングになります。

 コスト値はインターフェースの帯域が大きい程、小さな数字がデフォルトで割り当てられています。

【コスト値のデフォルト】
速度 コスト
10Mbps 100
100Mbps 19
1Gbps 4
10Gbps 2

 ルートブリッジまで複数のスイッチがある場合、コスト値はスイッチを経由する毎に加算されるため、全て同じコスト値を設定した場合、ルートブリッジまで3台のスイッチがある経路と2台のスイッチがある経路では2台の経路がフォワーディングになります。

 尚、機種や使うスパニングツリーの種類によってはデフォルトでロングパスコストと言って大きな数字が割り当てられているものもあります。

【ロングパスコストのデフォルト】
速度 コスト
10Mbps 2,000,000
100Mbps 200,000
1Gbps 20,000
10Gbps 2,000

 ロングパスコストとそうでないコストが混在している場合、どちらかに合わせる必要があります。

STPで困る事

 STPではフレームを転送し始めるまで少し時間がかかると書きましたが、これはパソコン等でDHCPを使っている場合、困ります。フレームが転送されないのにDHCPでやり取りを始めるとIPアドレス等が取得出来ない可能性があります。又、サーバー等も起動するとなるべく速く通信可能な状態にする必要がある場合が多いと思います。

 このため、パソコンやサーバーが接続されたインターフェースではSTPを無効、若しくは早期に通信開始出来るような機能がある場合は有効にすると対応出来ます。

 又、BPDUはMacアドレス「01-80-c2-00-00-00」を宛先としています。これはスイッチ間でやりとりする事を前提としているため、スイッチで透過しないようになっています。

 全てのスイッチがSTPをサポートしていれば透過しなくても問題ありませんが、途中にSTPをサポートしていないスイッチがある場合、STPをサポートしているスイッチがループを検知出来ずに通信がループしてしまいます。

スパニングツリー4

 このため、最近ではSTPをサポートしていなくてもBPDUを透過出来るスイッチも出てきています。BPDUが透過出来ればSTPをサポートするスイッチでループを検知出来るため、通信がループしません。

スパニングツリー5

 このようにSTPを構成する際に、間にSTPをサポートしない機器を接続する場合はBPDUを透過出来るか確認が必要です。

切り替え

 フォワーディングのインターフェースが障害等で通信不可になった場合、BPDUのやり取りが出来なくなった事を検知し、ブロッキングのインターフェースがフォワーディングになります。

スパニングツリー6

 このようにSTPはループ構成を回避すると共に、BPDUを絶えず送受信する事で切り替わりの仕組みも持っています。

 尚、スパニングツリーでは障害が復旧すると元ブロッキングだったインターフェースをブロッキングするため、元の経路に戻ります。

 STPは通常全てのVLANでルートブリッジ、フォワーディング、ブロッキング等が共通ですが、PVST+ではBPDUにタグVLANを利用し、VLAN毎にBPDUを送受信する事でVLAN単位にSTPを構成出来ます。

 このため、VLAN毎に通信経路を変える事が出来ます。

スパニングツリー7

 通常のSTPはブロッキングからフォワーディングになるまで数十秒位時間がかかり、その間通信が出来ません。RSTPでは場合によっては一瞬で切り替えが可能です。

 RSTPはブロッキングの代わりに代替ポートやバックアップポートを作成します。フォワーディングしているインターフェースに障害があると代替ポートやバックアップポートが瞬時にフォワーディングを始める仕組みになっているためです。

 RSTPは通常のSTPと似た仕組みですが、このように高速に切り替える仕組みを持っています。

 又、VLAN単位でRSTPを構成するRapid PVST+もあります。

 PVST+はVLAN毎にSTPを構成出来ますが、BPDUがVLANの数流れてそれをスイッチが処理する必要があるため、VLANの数が多くなると処理しきれなくなってきます。このためVLAN10,20,30をグループ1、VLAN40,50をグループ2等グループ化して、グループ単位でSTPを構成すれば、VLANの数ではなくグループの数分処理すればよい事になり、スイッチの負荷が下がります。これをMSTPと言います。

スパニングツリー8

 MSTPはグル−プ1はVLAN10〜30、グループ2はVLAN40,50等といった設定をします。

 又、RSTPの高速切り替え機能も合わせ持っています。

STPの混在

 上記で示したSTPは混在も可能です。例えば、通常のSTPとPVST+ではスイッチ間がポートVLANになっていれば正常にSTPを構成出来ます。

スパニングツリー9

 PVST+はVLAN毎にBPDUを流しますが、VLANが1つの場合は通常のSTPと同じで1つしか流さないためです。

 逆にタグVLANの場合は正常にSTPが構成出来ない場合があります。

スパニングツリーa

 PVST+はVLAN毎にBPDUを流しますが、通常のSTPをサポートしているスイッチではタグを利用したBPDUは破棄してしまいます。PVST+側のスイッチがブロッキングになる場合、「STPで困る事」で示した通り、途中にBPDUを破棄するスイッチがいると通信がループしてしまいます。

 又、RSTPとSTP、又はRapid PVST+とPVST+で接続した場合、高速切り替えは出来ませんが、STPを正常に構成出来ます。

 このようにSTPの種類が混在する場合、正常に構成出来るパターン、制限があるパターン、構成出来ないパターンがあるため可能な限り同じ種類のSTPで統一する事が望ましいです。

  • このエントリーをはてなブックマークに追加