スパニングツリーとは

スパニングツリープロトコルは、同一ネットワーク(VLAN)内でのイーサネットフレームの転送経路を冗長化します。スパニングツリープロトコルは、レイヤ2レベルの冗長化技術なので、考えている範囲は同一ネットワーク内だけであるということはしっかりと把握しておいてください。IEEE802.1Dという規格で標準化されているので、異なるベンダの製品であってもスパニングツリープロトコルを利用することができます。

IEEE802.1Dの標準のスパニングツリープロトコルでは、転送経路の切り替えに時間がかかります。より高速に転送経路を切り替えるためにIEEE802.1w RSTPを利用します。

スパニングツリーによるイーサネットフレーム転送経路冗長化の概要

スパニングツリープロトコルの具体的な例として、次の図のネットワークを考えます。図では、PC1とサーバ1は同一ネットワークに接続されていて、PC1とサーバ1の間の転送経路は2つあります。

経路1:PC1→SW1→SW2→サーバ1
経路2:PC1→SW1→SW3→SW2→サーバ1

スパニングツリープロトコルを利用することで、通常時は経路1を利用してイーサネットフレームを転送します。イーサネットフレームを転送するときには、最短経路が望ましいからです。そして、イーサネットフレームの転送がループしないようにするために、正常時は経路2をブロックして使えなくしています。

もし、経路1に障害が発生して使えなくなったら経路2に切り替えて、PC1とサーバ1間のイーサネットフレームの転送を継続的に行えるようにします。

図 スパニングツリープロトコルの概要
図 スパニングツリープロトコルの概要
正常時の経路を経路1にして、バックアップ用の経路を経路2にするためには適切なスパニングツリープロトコルの設定が必要です。

ブロードキャストストーム

この図のようなループ構成になり冗長化されたイーサネットのネットワークでは、スパニングツリープロトコルを利用しないと、まともに通信ができなくなります。イーサネットにはループ防止の機能が備わっていないため、ARPリクエストなどのブロードキャストフレームが延々とループしてしまうからです。ブロードキャストフレームがループする現象をブロードキャストストームと呼びます。

図 ブロードキャストストーム
図 ブロードキャストストーム

レイヤ2スイッチはブロードキャストフレームだけではなく、マルチキャストフレームやUnknownユニキャストフレームもフラッディングします。ブロードキャストフレームでなくても、ブロードキャストストームが発生します。ブロードキャストストームが発生すると、レイヤ2スイッチのリンクLEDの点滅が激しくなり、リンクの帯域幅を使いきってしまいます。また、レイヤ2スイッチのMACアドレステーブルの情報が頻繁に書き換わってしまい、MACアドレステーブルが不安定な状態になってしまいます。MACアドレステーブルが頻繁に書き換わってしまうことをMACアドレステーブルのフラッピングと呼びます。

イーサネットフレームの転送経路を冗長化するということは、レイヤ2スイッチをループ構成に接続することになります。レイヤ2スイッチをループ構成にしても、スパニングツリープロトコルによって、バックアップ用の転送経路をブロックしてブロードキャストストームが発生しないようにします。そして、何らかの障害が発生するとイーサネットフレームの転送経路を切り替えられるようにできます。

スパニングツリープロトコルはしばしば「ループを防止するため」と解説されています。ただ、ループの防止は副次的な目的だと考えた方がよいです。転送経路を冗長化しただけだと、イーサネットフレームがループしてブロードキャストストームが起こってしまいます。そこで、ループ防止のためにバックアップ用の転送経路をブロックします。 ですが、ループの防止はスパニングツリープロトコルの主目的ではありません。冗長化された転送経路のうち、正常時に利用する経路とバックアップ用の経路を明確に決めることが主目的だと考えた方がわかりやすいです。

レイヤ2スイッチの仕組み