このページの本文へ

入門Ethernet 第6回

ネットワークの制御技術とは?

IEEE802.1で実現するいろいろなLAN

2009年07月16日 09時00分更新

文● 遠藤哲

  • この記事をはてなブックマークに追加
  • 本文印刷

STPの概念

 基本的に、スイッチによるネットワークはツリー型にすることになっている。トポロジとして見た場合のツリー構造の特徴は、接続されている各スイッチはツリーの起点(root、ルート)に向かう経路が1つしかないことである。見た目はすっきりしてよいが、ループ構造を持つネットワークと違ってリンクの障害が発生した場合に迂回経路がなく、ネットワークが分断されてしまうというデメリットがある。

 一方STPとは、図2のようなループの存在するネットワークを、論理的にツリー型ネットワークとして使うプロトコルである。これは、ループの原因となっているスイッチ間の接続を論理的に切断し、トラフィックの送受信を行なうポートを決めることで実現される。

図2 スパニングツリーの概念

 もし、このネットワークのどこかでリンクが切れた場合、STPは新しい論理ネットワークを構築しようとする。その結果、ループとなっていた部分が活性化し、迂回路として使えるようになるわけだ。

 ここで、STPで用いる専門用語を説明しよう。まずツリーの起点となるスイッチを「ルートブリッジ」と呼ぶ。続いてルートブリッジから、外へ向かって接続されているリンクをたどると1つのスイッチに行き着く。このスイッチを代表ブリッジ(Designated Bridge、または指定ブリッジ)と呼び、代表ブリッジにつながる上流のポートを「代表ポート(Designated Port、または指定ポート)」と呼ぶ。このためルートブリッジに接続されているポートはすべて代表ポートとなる。

 ルート以外の場所では、各スイッチから(ルートブリッジから見た)外側に接続されているスイッチが代表ブリッジであり、代表ブリッジを接続しているポートが代表ポートである。逆にルートブリッジへ向かう代表ブリッジのポートを「ルートポート」と呼ぶ。

 このようにして見ていくと、スパニングツリーでは代表ポートとルートポートだけでトラフィックの送受信を行なうことがわかる。

 それではルートブリッジを決定し、代表ポートとルートポートを決めていく仕組みについて説明を進めよう。

STPの動作

 STPでは、スイッチが接続されると定期的にBPDU(Bridge Protocol Data Unit)という情報をマルチキャスト用のMACアドレスで送信する。送信元はBPDUを送信したスイッチのMACアドレスである。

 STPではBPDUをスイッチ間で交わすことにより、ルートブリッジを決定する。そのために参照されるのが「ブリッジID」である。ブリッジIDは2バイトのプライオリティとスイッチのMACアドレスで構成されている。プライオリティは意図的に特定のスイッチをルートにしたい場合に設定する情報で、特に指定がなければ設定しなくてよい。初期値は16進数で0800となっている。

 ルートブリッジの決め方は簡単で、もっとも小さいブリッジIDを持つスイッチがルートブリッジになる。最初はすべてのスイッチが自分のブリッジIDをルートIDに設定してBPDUを交換するが、受け取ったBPDUのブリッジIDと比較して、小さいほうがルートブリッジのIDとしてスイッチに保存される。そのあと定期的に送信されるBPDUのルートIDには新たなルートブリッジのIDが設定され、やがてルートブリッジと直接リンクを持たないスイッチへと伝搬する。そして、最終的にすべてのスイッチに正しいルートブリッジが設定される。

 ルートブリッジが決まると、各スイッチからルートブリッジまでの経路長をルートブリッジまでの「パスコスト」という値で評価し、これによってブロックするポートを決定する。パスコスト値は定数をルートポートのリンクスピードで割った商が推奨値となっている。この値は管理者がスイッチに設定することもできる。ただしルートブリッジは自身がルートなのでルートポートを持たない。そのため、ルートブリッジのパスコストは0となる。つまり、パスコスト値は各代表ブリッジで計算して設定することになる。

 各スイッチのルートポートで受信したBPDUには、ルートブリッジからのパスコスト値が含まれている。その値に、ルートポートのリンクスピードから求めたパスコスト値を加えた値がそのスイッチのルートパスコストとなる。

 1つのスイッチに2カ所以上の接続先スイッチがある場合、それぞれの接続先からBPDUを受信することになる。その中でもっともルートパスコストの小さいポートを活かし、そのほかのポートをブロック状態にする。ツリーはルートに向かって1つの経路しか存在しないので、この方法によりスパニングツリーが完成するのである。

STPとRSPTの違い

 STPはアクティブなリンクが障害になった場合に、それまでブロック(無効化)していたリンクを活性化する。しかし、実際はポートの接続状態が変化すると、タイマーで時間を取ってから、各パラメータの再計算を行なってポートをフォワード(有効状態)へ切り替える。そのため、各タイマーを初期値のままで運用すると、経路切り替えに50秒もかかってしまう。

 これではあまりにも時間がかかるので、ポートの状態遷移をタイミングによって行なうのではなく、直接接続しているスイッチとのやり取りで高速化したのがRSTPである。

 RSTPでは、リンクの障害を検知するとすぐ変更通知を出し、そのあと「プロポーザル(予約)」と「アグリーメント(合意)」のメッセージを交わすだけで経路切り替えが完了する。このように高速な経路切り替えが行なえるのは、あらかじめブロッキング状態のポートの役割を決めておき、変更に対して即座に対応できるようにしているためである。また経路切り替えにSTPのようにタイマーを使っていないので、経路切り替え処理が高速化できた。

(次ページ、「1つの物理ネットワークを複数のLANとして使うVLAN」に続く)


 

カテゴリートップへ

この連載の記事