【STP②】STPの意味とツリー構造

stp-part2

とりあえずSTPでブロッキングされるというのは分かったんだけど、ブロッキングポートはどうやって計算すれば良いのかな?

チャーチルさん

ポン先生

ちょっと待った!実際の計算方法の前にまずはSTPがどういう考え方なのか知る事から始めよう。

この記事ではSTPの考え方について勉強します。ある程度慣れてくれば構成図を見ただけでどこがブロッキングポートになるか予想が付きますが、そもそもの考え方が分かればさらに理解も深まります。

前回の記事を読んでいる事が前提となります。

STPの意味

この章の項目
  • STPのツリー構造

  • 最短ルートでの通信

STPのツリー構造

まず、STPはL2ネットワークの技術です。例えばルータの先の他ネットワークセグメントを巻き込んで動作はしないので認識しておきましょう。また、ネットワーク機器としてはスイッチの機能です。無線アクセスポイントやファイアウォールは機能としては持っていません。
※一部スイッチポートを持っているルータ(例えばCisco ISR891FJ)では、スイッチポートでのみSTPを設定することができます。

次にスパニングツリーと言う位なので木になっています。どういった事なのか見ていきます。

STPのツリー構造

例えば上記のように6台のスイッチでループ構成を作ると、STP機能でどこかのポートがブロッキングになります。この時テキトーなポートをブロッキングにしている訳ではなく、一定の法則でブロッキングポートを決めています。ざっくり言うと以下のようなことをしています。

ブロッキングポートの決め方
  1. このネットワーク内で親玉になるスイッチを決める
  2. 親玉スイッチからネットワーク的に一番遠いポートをブロッキングにする

この時「スイッチ同士がどのように接続されているのか」の情報を互いに交換しています。この接続情報をトポロジーと言います。親玉スイッチを中心に各スイッチへ繋がっている見た目なのでツリー構造と言います。また、親玉スイッチの事をルートブリッジと言います。

木そのものというよりも木の根っこみたいな形だね

チャーチルさん

STPとはツリー構造を作るための仕組みとも言えます。ループしているとツリーの形にならないのでブロッキングポートを作って不要な接続を切断します。また変な所をブロッキングにしてしまうとキレイなツリーにならず通信が遅くなる可能性もあるので、最適な位置にブロッキングポートを持ってくる必要があります。

最短ルートでの通信

前述の「2.親玉スイッチからネットワーク的に一番遠いポートをブロッキングにする」についても少し掘り下げます。
※あくまで概念・イメージとして見てください。

STP以外のプロトコルを含め一般的に「ネットワーク的に遠い = 通信に時間がかかる見込みがある」という事です。例えば他のルートは1Gbpsの線なのにそのルートだけ10Mbpsの線なので遅いという事かもしれないし、そのルートだけ途中の中継機器が多いので遅いという事かもしれません。このあたりは各プロトコルによって判断基準がありますが、いずれにしても見込みです。実際の速度を測定して判断している訳では無いのでその点は覚えておきましょう。

さて、STPに話を戻します。STPの判断基準は「ルートブリッジへ最短で到達できるかどうか」です。ループ構成なのであるスイッチからルートブリッジへ到達できる経路は複数あります。複数の選択肢の中で最短でルートブリッジへ到達できる経路がベストという訳です。

ではなぜ、ルートブリッジへの最短経路がベストなのでしょうか。主な理由は以下になります。
※あくまでも一般的な傾向の話です。構成によっては該当しないこともあるので参考までに^^;

ルートブリッジの優位点
  • 他スイッチと比較してハイスペック機器であることが多い
  • L3スイッチまたは他ネットワークとの接続点であることが多い

他スイッチと比較してハイスペック機器であることが多い

これは通信速度の観点です。ルートブリッジは一般的な構成であればコアスイッチに相当する機器です。その他のエッジスイッチよりも当然ハイエンドモデルであることが想定されスペックも高いので、

ルートブリッジ経由で転送した方が速いだろう

ということです。

最短ルートでの通信①

ポン先生

最近は1G, 10Gbpsのスイッチも当たり前だし、エッジスイッチでも十分な速度が出るから一般的な規模の拠点であればそこまで気になくても良いかもね。

ただ、そもそもまともな構成であればほぼ全ての通信はコアスイッチ経由になるから、ルートブリッジへの調達性自体は極自然な話だね。

L3スイッチまたは他ネットワークとの接続点であることが多い

STPはL2ネットワークの技術ですが実際のクライントの通信は殆どが他セグメントとの通信です。他セグメントとの接続点はルーティング機能を持つL3スイッチやルータです。ルートブリッジ=L3スイッチの時はもちろんですが、ルートブリッジ=コアスイッチ=L2スイッチの構成でもすぐ上位にルータが接続されている事が殆どなので

ルートブリッジへ最短で到達可能=他セグメントへ最短で到達可能

となる訳です。

最短ルートでの通信②

だいぶ話が長くなりましたが、兎にも角にもルートブリッジへ最短で到達できる事が最重要ということです。ブロッキングポートは上記から残った最短ルートではない経路から選ばれます。

大雑把なイメージで言うと各スイッチポートからルートブリッジへの距離を数値化して
①スイッチAポート01→ルートブリッジ:距離100
②スイッチAポート02→ルートブリッジ:距離50
③スイッチBポート10→ルートブリッジ:距離20
④スイッチCポート24→ルートブリッジ:距離300
・・・

という具合だったら距離が一番遠い④をブロッキングポートにするイメージです。つまりブロッキングポートは、「そのネットワークの全スイッチ・全ポート中でルートブリッジへの通信が最も遅い(であろう)ポート」と言える訳ですね。ブロックするポートの選び方としては効率的と言えます。
※具体的な計算方法等は別の記事で。

ポン先生


具体的な計算方法だけじゃなく背景や考え方を知ることもすごく大切だね。

まとめ

ポイント
  • STPのトポロジーはツリー構造で構成される

  • STPの親玉がルートブリッジ

  • ルートブリッジへの最短で到達できるよう設計される

  • 最短でない経路のポートからブロッキングポートが選ばれるので効率的

STPはブロッキングポートの計算方法については情報がたくさんありますが、考え方については少ないです。理由や背景を知ると理解が深まりますしやっぱり楽しいです。技術的には深い内容だからこそ、最初の部分をしっかり抑えておきましょう。