はじめに
CCNAの取得に向けてネットワーク技術について勉強していた際に、ある疑問がふと湧いてきました。
『よく聞くスパニングツリープロトコル(STP)って何なの?』
そこで、スパニングツリープロトコル(STP)について調べたのでまとめました。
スパニングツリープロトコル(STP)とは
スパニングツリープロトコル(STP)は、ループ状に構成されたネットワークにおいてデータがネットワーク内を意図せずに流れ続けてしまう現象を防止するプロトコルです。
STPが必要になるネットワーク
- クライアントAがクライアントBと通信したい場合、クライアントBのMACアドレスを知る必要があるためARPリクエストをブロードキャストします。
- ARPリクエストを受信したスイッチAは、送信元(クライアントA)のMACアドレスをMACアドレステーブルに学習した後に、隣接しているスイッチBとスイッチCにフラッディングします。
スパニングツリープロトコルが無効な場合
- スイッチBはスイッチAから受信したデータを隣接しているスイッチCにフラッディングします。
- スイッチCもスイッチBから受信したデータを隣接しているスイッチAとクライアントBにフラッディングします。(もちろん、スイッチAから受信したデータを隣接しているスイッチBとクライアントBにフラッディングします。)
すると、スイッチAから送信したデータがスイッチAに戻ってきたことになり、スイッチAはそのデータを再びフラッディングしてしまうため、ループが発生します。(この状態をブロードキャストストームと言います。)
ブロードキャストストームが発生すると、ネットワークの帯域を著しく消費するだけでなく、ブロードキャストストームを処理する機器の負荷も上昇するため、通信ができない状態に陥ります。
スパニングツリープロトコルが有効な場合
ブロードキャストストームの発生を防ぐためには、ループ状に構成されたネットワークのいずれかのスイッチのポートを無効化して、データを転送できないようにする必要があります。
この仕組みを実現するのがSTPです。
STPを使用すると特定のポートは無効化した状態になりますが、障害発生時には自動的に有効化されます。
- スイッチBはスイッチAから受信したデータを隣接しているスイッチCにフラッディングしますが、スイッチCではスイッチBと接続しているポートをSTPによって無効化しているため、データを受信しません。
- スイッチCはスイッチAから受信したデータを隣接しているクライアントBにフラッディングします。
今回はここまでです。