STPは、LANのループ状態を回避するためのプロトコルで、安定的なネットワークを構成する上で不可欠な設定です。
この記事では、STPについて、そもそものネットワークの仕組みのところから、初心者にもわかりやすく解説していきます。
STP(スパニングツリープロトコル)とは?
STPとは、「Spanning Tree Protocol」の略称で、LANのループ状態を回避するためのプロトコルです。
物理的に接続されているループ状のネットワークを一部論理的に切り離すことで、通信がループ状にぐるぐる回り続けてしまう現象(=ブロードキャストストーム)を防ぎます。
といってもよくわからないと思うので、根本から説明していきます。
そもそも…ループ状態とは?
LANのループ状態とは、その名の通り、LAN内のスイッチが円環(ループ)状に接続されている状態のことです。
この状態でARPやDHCPでブロードキャスト通信が行われた場合、通信が永遠にループ状に周り、帯域幅を大きく消費して通信ができなくなってしまいます。この現象をブロードキャストストームと言います。「ブロードキャストの嵐」、つまりブロードキャストが嵐のようにぐるぐるとLAN内を回り続けるイメージですね。
もう少し技術的な話をすると、ブロードキャスト通信をPCから受け取ったスイッチは、通常他のスイッチに転送し、それを受け取ったスイッチはまたそれを次のスイッチへ転送していくのですが、それがループ状の場合、また自分の元に戻ってきてぐるぐると終わらなくなります。
そもそも…なぜループ状態にする必要があるのか?
じゃあそもそもループ状の構成にしなければいいじゃん、と思うかもしれませんが、安定的なネットワークを実現するためには、冗長化が不可欠です。
例えば、PC1からPC2への通信がもし直線状に接続されていた場合、その間のスイッチが一つでも壊れた場合、通信自体ができなくなってしまいます。
しかし、ネットワークをループ状にすれば、もしどれかのスイッチが壊れてしまった際も、逆周りから通信でき、通信を継続することが可能になります。
と、ここまで基本的なネットワークの仕組みの話になりましたが、この「冗長化のためにループ構成にする」かつ「ブロードキャストストームを防ぐ」両方を実現するために必要な設定が、STP(スパニングツリープロトコル)というわけなのです。
ちなみに、このSTPはIEEE 802.1dで定義されたプロトコルで、最近はIEEE 802.1wで定義されたさらに高速化したRSTP(ラピッドスパニングツリープロトコル)も登場しています。
STP(スパニングツリープロトコル)の仕組みは?
STPがどんなものでなぜ必要なのかわかっていただけたところで、もう少し技術的な仕組みについて、解説します。STPは、 ループ状態の経路のうち、一部を論理的に切り離すことで、ループ状態を回避します。また、障害発生時は、その論理的に切り離されていたルートを自動で有効化することで、通信を継続します。この際、BPDU(Bridge Protocol Data Unit)というフレームが使われます。
以下が主な処理の流れになります。
①ルートブリッジの決定
最初に行われるのが、ルートブリッジの決定です。ルートブリッジとは、簡単に言うと、ツリーの根に当たるような、起点となるスイッチのことです。このルートブリッジがどうやって決められるのかは少しややこしいので詳細は省きますが、優先度(=ブリッジIDと呼ばれる)の数値が高いスイッチを選んでいる、と思っておけば大丈夫です。
②ルートポート(経路)の決定
次に、ルートポート(経路)の決定です。①で決めたルートブリッジから一番距離が近いルートをデフォルトのルートポートとして選択します。この距離の計算には、パスコストという値が使われます。
③ブロッキングポートの決定
最後に、ブロッキングポートの決定です。②でルートポートが決まったら、そのルートに必要のないポートを論理的にブロックします。ブロッキングポートはBPDUの送信を停止し、受信のみ行うようになります。
そして、ネットワークが故障した場合は、BPDUを使用して検知し、ポートを遮断の状態から自動で開放して通信をできるようにします。
このブロッキングポートの存在によって、ループ状態、ブロードキャストストームを回避できるのです。
おわりに
いかがだったでしょうか。STPは安定的なネットワーク構築には不可欠なプロトコルなので、仕組みをしっかり理解しておきましょう。
コメント