Part1では,まず「スパニング・ツリーとは何か?」を知り,「どこで何のために使う機能なのか?」といった背景を理解しよう。スパニング・ツリーがネットワークに欠かせない理由を確認する。

イーサはループがないのが大前提

 スパニング・ツリーとは,LANのネットワーク上でやりとりしているデータ(MACフレーム)が永遠に回り続けることを防ぐLANスイッチの機能である。LANスイッチでスパニング・ツリーを有効にしていると,もしネットワークがループ構成になっていても,LANスイッチがポートを自動的にブロックし,論理的にはループのない構成を作ってくれる(図1-1)。

図1-1●スパニング・ツリーとは?
図1-1●スパニング・ツリーとは?
MACフレームが回り続けることを防ぐLANスイッチの機能である。

 なぜ,LANのネットワークをループのない構成にする必要があるのか。

 そもそもイーサネットLANは,1本のケーブルをみんなで共有することを前提に誕生した。ネットワークにつながっている各端末は,常にケーブル上を流れるデータを確認して,自分あての通信がないか,自分の送った通信がうまくいったか,いつ通信すればいいか,といった判断をしている。もしネットワーク上にループしている場所が存在すると,同じ通信内容が何度も伝わることになり,正常な通信ができなくなってしまう。

 ループ構成の禁止という制約は,LANスイッチを使うのが一般的となった現在のイーサネットLANでも変わらない。

 LANスイッチはMACフレームを受信すると,その中に書いてあるあて先MACアドレスと自身が管理しているアドレス・テーブル*1を参照して,そのフレームを適切なポートに転送する。ただし,LANスイッチは受信したフレームを常に一つのポートのみに転送しているわけではない。例えば,全マシンをあて先とするブロードキャスト通信*2のフレームが入ってきたら,LANスイッチは全ポートにコピーして送信する。

 もし,LANにループ構成の経路があったとしたら,ブロードキャストのフレームは一度通過したLANスイッチにいずれ戻ってきてしまう。そして,このスイッチでまたすべてのポートに送信される。つまり,LANスイッチを使ったネットワークでも,ループ構成になっている個所が存在すると,ブロードキャスト通信のフレームは,いつまでもぐるぐると回り続けてしまう。

 回り続ける危険があるのはブロードキャストだけではない。アドレス・テーブルに情報がなく出力ポートがわからないフレームも,LANスイッチは全ポートに送る。この処理は「フラッディング」などと呼ばれる。転送された先のLANスイッチでも出力ポートがわからなければ,またフラッディングされ,ネットワークがループ構成になっていたら,いったん通過したLANスイッチに戻ってくる可能性がある。

ループしない構成を作ってくれる

 このようにフレームが永遠に回り続ける状況は「ブロードキャスト・ストーム」などと呼ばれる。イーサネットでは,IPアドレスから相手のMACアドレスを調べるARP*3をはじめとして,ブロードキャスト通信を多用している。このため,ネットワークがループ状に構成されていたら,あっという間にLAN内にフレームが溢れかえり,ケーブルを抜くかLANスイッチの電源を切るしかなくなってしまう。

 これを防ぐためにLANスイッチが用意している機能が,今回取り上げるスパニング・ツリーだ。スパニング・ツリー機能は多くのLANスイッチが装備しており,標準で有効になっている製品も多い。スパニング・ツリー機能が有効になっていると,ネットワークがループ構成になっている部分があっても,実際には通信を受け付けないようにLANスイッチがポート設定を変更する。そうして,論理的にはループしない構成にしてくれるのである。

イーサのフレームには寿命がない

 ここまで読んで「パケットには寿命があったのでは?」と思っている人もいるだろう。確かにIPパケットにはTTL*4と呼ばれるパケットの寿命に関する情報が入っている。

 IPパケット内のTTLは,ルーターで中継するたびに値が減っていき,0になったらそのパケットは廃棄される。また,ルーターはそもそも,あて先がわからないパケットを受け取ると,そのパケットを廃棄するようになっている。このため,ネットワークがループ状に構成されていても,いつまでもネットワークにパケットが残るということはない。

 ただし,これはルーターが扱うIPパケットの話である。LANスイッチが扱うMACフレームには,TTLのような寿命を示す情報は存在しない(図1-2)。LANスイッチは,ブロードキャストはもちろん,あて先がわからないフレームも廃棄せずに全ポートに転送する。そのため,ループ構成のあるLANのネットワークでは,永遠にフレームが回り続けてしまう恐れがあるのだ。

図1-2●イーサネットには回り続けているフレームを見つけて廃棄する方法がない
図1-2●イーサネットには回り続けているフレームを見つけて廃棄する方法がない
イーサネットのMACフレームには,IPパケットのTTL(time to live)のようにフレームを廃棄するしくみがない。そのため,経路がループ構成になっているとフレームが永久に回り続けてしまう。
[画像のクリックで拡大表示]