スパニングツリーのポート状態

スパニングツリーを構成するときに、スパニングツリーに関与するポートはいくつかの状態遷移を行います。スパニングツリーのポートの状態は次のとおりです。

  • ブロッキング状態
  • リスニング状態
  • ラーニング状態
  • フォワーディング状態

ブロッキング状態

すべてのポートは、まずブロッキング状態です。スパニングツリーの計算が終了するまでは、ネットワーク上にループが存在する可能性があるためです。ただし、ブロッキング状態はデータの転送をブロックしているだけでポートがまったく使えないということではありません。ブロッキング状態のポートで受信したフレームは、他のポートに転送されませんし、他のポートで受信したフレームをブロッキング状態のポートには転送しません。

リスニング状態

BPDUを「聞いて」、ルートブリッジの選出やルートポート、代表ポートの決定など、実際のスパニングツリーの計算を行っている状態です。リスニング状態においても、フレームの転送はブロックされています。また、リスニング状態では、受信したフレームの送信元MACアドレスをMACアドレステーブルに登録することはありません。転送遅延タイマの間、ポートはリスニング状態となります。

ラーニング状態

リスニング状態でスパニングツリーの計算は完了するのですが、すぐにイーサネットフレームの転送を行いません。レイヤ2スイッチはUnknownユニキャストフレームをフラッディングします。もし、すぐにフレームを転送しようとするとMACアドレスを学習していないのでフラッディングが多発する恐れがあります。そこで、ラーニング状態では受信したフレームの送信元MACアドレスからMACアドレステーブルを構築していきます。しかし、フレームの転送はやはりブロックされています。転送遅延タイマを経過すると、ルートポートおよび代表ポートに決まったポートはフォワーディング状態へと移行します。ルートポートでも代表ポートでもないポートは、ブロッキング状態に戻ります。

フォワーディング状態

フォワーディング状態においてのみ、フレームの転送を行うことができます。フォワーディング状態となるポートは、ルートポートと代表ポートです。

ポートの状態遷移

これらのポートを次のように遷移します。

  • ブロッキング状態からリスニング状態 (最大エージタイマ 20秒)
  • リスニング状態からラーニング状態 (転送遅延タイマ 15秒)
  • ラーニング状態からフォワーディング状態もしくはブロッキング状態(転送遅延タイマ 15秒)
図 スパニングツリーのポートの状態遷移
図 スパニングツリーのポートの状態遷移

スパニングツリーの「コンバージェンス」

初期のブロッキング状態からリスニング状態、ラーニング状態を経て、フォワーディング状態もしくはブロッキング状態へ至り、スパニングツリーが完成することを「コンバージェンスする(収束する)」といいます。また、ネットワーク構成が変更されて、スパニングツリーを再計算して、最終的にポートの役割が決定した場合もコンバージェンスです。

コンバージェンスという言葉は、スパニングツリープロトコルだけでなく、ルーティングプロトコルでもよく利用されます。一般的に「コンバージェンス」とは「安定した状態に至ること」を指していると考えてください。また、コンバージェンスに要する時間を「コンバージェンス時間」といいます。そして、コンバージェンス時間が短いことを指して、「コンバージェンス速度が速い」や「コンバージェンスが高速」と表現します。

スパニングツリープロトコルのコンバージェンス時間は、標準では最大エージタイマ(20秒)+転送遅延タイマ(15秒)+転送遅延タイマ(15秒)=50秒です。

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