スパニングツリーは非常に便利な機能でありながら、設定をミスるととんでもないトラブルに見舞われやすい機能でもあります。
ここではスパニングツリープロトコルについて解説していきたいと思います。
スパニングツリー(以下STP)はIEEE 802.1dで定義されています。最近はさらに高速化に改良されたラピッドスパニングツリー(RSTP)というIEEE 802.1wで定義された仕様もあります。
上記の様なネットワーク構成があったとして、Aのスイッチの配下のPCからDのスイッチ配下のPCまで通信を行う場合どのような経路で通信するでしょうか?
考えられる経路は2通りあります。
1.PC → A → B → D → PC
2.PC → A → C → D → PC
以上2経路ですね。
「何が問題なの?冗長性もあるし問題ないんじゃないっすか?」とおっしゃるあなた。 たしかにネットワーク構成的には問題ないように見えますが、このまま運用するととんでもないことになります。
例えば先ほどと同様にAのスイッチの配下のPC(以下PC-A)からDのスイッチ配下のPC(以下PC-D)まで通信を行う場合を例にして実際の通信を行うやりとりを見てみましょう。
PC-AからPC-Dへの通信を行う場合、PC-AはPC-DのMACアドレスが自身のARPテーブル内に存在するかどうかをチェックします。
そこで仮にPC-DのMACアドレスが存在しなかった場合どうするでしょう?
そうです、PC-AはARPリクエストをネットワークに送出してPC-DのMACアドレスを調査しようとします。
ハイここで勘の良いかたは分かったかとおもいます。 そうですARPリクエストは相手のMACアドレスを知りたくて送信しているわけですから、宛先は当然ブロードキャストになります。
スイッチはブロードキャストに関しては受け取ったポート以外の全てのポートに転送してしまいます。
するとどうなるでしょう。
スイッチAからブロードキャストを受け取ったスイッチBはスイッチCとスイッチDに転送します。 受け取ったスイッチCはスイッチBへ転送 それを受け取ったスイッチBはまたスイッチCへ・・・ というようにスイッチBとスイッチCの間でブロードキャストがグリングリン回ってしまいますね~。
このようなブロードキャストパケットがループしてしまう現象をブロードキャストストームと呼びます。 こうなると伝送路上にはブロードキャストパケットで帯域が一杯になってしまうし、大量のブロードキャストを処理するスイッチの負荷も激増してしまいます。
この状況を止めるにはスイッチBかCの電源を落とすしか方法はありません。
冗長性を確保しつつループにならないようにするにはどうすればよいでしょうか? そこでようやくスパニングツリーの登場でごぜえます。 スパニングツリーとはその名の通りネットワークを論理的にツリー状にすることによりループを防ぐ機能です。 例えば先ほどの構成の場合、
スイッチDの1つのポートを論理的に切断することで以下のようなツリー構成になります。
ここでスイッチBとスイッチDの間で障害が発生したとすると、スパニングツリーは障害を検知し物理的にはスイッチCとスイッチDは繋がっているので、
このようなツリー構成になり自動的に経路が切り替わります。
ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!
これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。
もちろん無料です!!
↓メールマガジン購読はこちら↓