スパニングツリーとは?冗長化の仕組みや役割を知って構成してみよう

スパニングツリーとは?冗長化の仕組みや役割を知って構成してみよう

スパニングツリーとは?


スパニングツリーは、L2ネットワークにおけるループを防止をするための機能です。スパニングツリーを使えばループを防止しながらネットワークを冗長化でき、耐障害性が向上します。

信頼性の高いL2ネットワークを構築するためには、機器に障害が発生しても迂回できるように、複数のスイッチを使用したNW構成にします。しかし冗長化をした場合にスパニングツリーを有効にしなければ、ブロードキャストやマルチキャストという種類のトラフィックが延々を回り続けてしまうという問題が発生します。(ループという)

スパニングツリーの主な役割と注意点

スパニングツリーを有効化すると、装置に設定したブリッジ優先度などを使用して、ルートブリッジやポートの役割が自動的に決定されます。また、そのアルゴリズムによりあるポートが自動的にブロッキング状態になりループを防ぎます。しかし障害発生時は自動的に障害を検知し、そのポートが有効化して迂回路を形成し耐障害性を発揮します。

スパニングツリーにはSTP、PVST、RSTP、RPVST、MSTPと色々な種類があり、ベンダー間で互換性がない物もありますので、どの種類を採用するかは注意が必要です。

スパニングツリーが開発された目的

ブロードキャストストームという現象があります。2つ以上のスイッチでループ状に接続されたネットワークでは、ブロードキャストしたデータが送信元のスイッチへ戻り、またブロードキャストされるというループに陥ります。ループは永遠に繰り返されてしまい、ネットワークはその処理の重さに耐えきれず機能を停止してしまいます。ブロードキャストストームとは、このような状態をさします。

このように、ネットワーク機能を停止させてしまう、ブロードキャストストームの原因であるループを引き起こさないように開発されたのが、スパニングツリーです。

スパニングツリーの仕組み


スパニングツリーとは、その名の通りスパニングツリーアルゴリズム(STA)を用います。BPDUというフレームに基づいたLANスイッチをツリー状の冗長構成とすることで、ブロードキャストストームに陥る原因のループ構造になることを防ぎます。

ここでは冗長構成、LANスイッチ、BPDUとは何か、詳しく解説します。

1:冗長構成

冗長構成とは、システムに障害が起きた時のために、バックアップとして予備の装置を設置しておくことをいいます。

スイッチに不具合が起きた、LANケーブルが切断してしまったなど、構成が破綻するような状態になった時でも、予備の装置のルートに切り替え、障害が起きたルートを迂回することで、データの送受信を行うことができます。

しかし前述したとおり、スパニングツリーを導入しないとループに陥る危険性があります。スパニングツリーを用いることで、ループを遮断しつつ冗長構成にすることができるのです。

2:LANスイッチ

スパニングツリーを構成するには、まず複数あるLANスイッチの中からブリッジIDの値が一番小さいものを選出し、それを「ルートスイッチ」として設定し起点とします。

そして、そのルートスイッチを起点とした経路の中で、距離が一番近い経路を「ルートポート」とします。この時の距離とは、後述するBPDUのパスコストのことを示しています。

次に、スイッチにそれぞれ接続されている両方のスイッチのルートパスコストを測定し、値が小さい方のルートを「指定ポート」として設定します。

最後に、「ルートポート」にも「指定ポート」にも選出されなかったルートが「非指定ポート」となり、ブロッキングされます。パスコストが一番大きい値のルートをブロッキングの対象ルートとすることで、ループしてしまう構造になるのを防いでいるのです。

3:BPDU

BPDUとは「Bridge Protocol Data Unit」の頭文字をとったもので、マックアドレスやプライオリティー値からなるブリッジIDやルートスイッチまでの距離を表すパスコストというものがまとまっているフレームのことを指します。

このフレームを送受信することにより、スイッチ同士のルート設定を決定することができるのです。

ブリッジID

ブリッジIDとは、マックアドレス(6バイト)とプライオリティー値(2バイト)からなるルートブリッジの決定の元となる値をいいます。

プライオリティー値自体は、プライオリティ(4ビット)と拡張システムID(12ビット)で構成されています。

パスコスト

パスコストとは、スイッチ間のリンクの帯域幅を基準に、ルートブリッジまでの距離を累積した値のことです。

スパニングツリーではパスコストの値が低いほうのスイッチが優先されます。設計者がパスコストを設定することができるため、スパニングツリー構造でどのルートを選択するかを、このパスコストに基づいて設定することができます。

それぞれの帯域幅とそれに対するパスコストは、以下の通りです。
帯域幅:パスコスト
・10Mbps:100
・100Mbps:19
・1Gbps:4
・10Gbps:2

スパニングツリーで出来ること


スパニングツリーには、どこかのスイッチまたはリンクに障害が起きてしまった際でも、ネットワーク機能を停止することなく稼働することができる冗長機能が備わっています。

また、スパニングツリーはループを起こすこともないので、ネットワークを正常に機能し続ける事が可能です。

ループ構成の遮断

2つ以上のスイッチからなるループ構成でブロードキャストが行われると、必ず元のスイッチにブロードキャストされたデータが戻り、またそこからブロードキャストされ、データがループし続けてしまいます。するとネットワークが負担に耐えられなくなり、ブロードキャストストームを起こします。

ループ構成の遮断とは、ブロードキャストストームを防ぐことであるともいえます。

障害時の迂回経路を自動で切り替える冗長機能

スパニングツリーは冗長構成をとっています。この冗長機能とは、万が一スイッチやリンク部分に障害が起きるなどしてメインのルートが不能になった時でも自動で別のルートを選択し、ネットワークの機能を維持するものです。

スパニングツリーをとることで、障害やトラブルにも強いネットワークにすることができるのです。

スパニングツリーの種類


スパニングツリーにはいくつか種類があり、それぞれ構成する対象や構成方法が異なるため種類が分かれています。それではそれぞれの種類を選ぶメリットとはなんでしょうか。

1:STP

STPとは、シングルスパニングツリーのことをいいます。シングルスパニングツリーとは、VLAN全体を対象としており、ルートポート、代表ポート、非指定ポートからなるスパニングツリーのことをいいます。

挙動としてスイッチ起動から数十秒はループを起こさないため、フレームのやりとりができません。そのため起動直後の動きが多少遅いというデメリットがあります。

2:RSTP

RSTPとは、ラピッドスパニングプロコトルのことをさしています。ツリーの構成手順としてはSTPと同様です。しかし、STPでは非指定ポートというものが構成の中に存在しますが、RSTPでは代替ポートとバックアップポートが存在します。

この違いにより、スイッチ起動後またはブロッキング後の挙動として、STPのようにルート設定に数十秒間をかけることなく、たった数秒でフレームのやりとりを行うことが可能になります。

またRSTPにはSTPへの下位互換性があるため、それぞれのモードのスイッチを接続することができます。

3:MSTP

MSTPとは、マルチスパニングツリープロコトルのことをいい、その名の通り複数のVLANを対象としたスパニングツリー構成のことをいいます。

STPとRSTPについてはVLANごとでスパニングツリー構成をとるのに対し、MSTPは一定のVLANのまとまりであるインスタンスごとにスパニングツリー構成をとります。そのため、スイッチひとつのCPUあたりにかかる負担を減らすことができるため、大規模なネットワーク構成に向いています。

一方で複数でない場合、MSTPを構成することができないため、小・中規模のネットワークには向いていません。

スパニングツリーの構成手順


ここまではスパニングツリーとは何か、その仕組みや特徴について説明してきました。ここからは実際にスパニングツリー構成を組む際の手順について解説します。

どのような方法で構成するのかを把握できれば、今までの仕組みや特徴についても深く理解することができるでしょう。

1:ルートスイッチの選出

ルートスイッチとは、ルートの起点となるスイッチのことをいいます。具体的には、リンクで繋がれているスイッチ全体でBPDUの情報をやりとりし、BPDUフレーム内のブリッジID(プライオリティー値とマックアドレスからなる値)が最も小さいスイッチを優先度が一番高いスイッチとして判断し、ルートスイッチとして選出します。

2:ポートの役割の決定

ルートスイッチが選出された後、ルートポート、代表ポート、非指定ポートの順番でそれぞれのポートの役割を決定していきます。

これら3つのポートとはどのようなものなのか、1つずつ解説します。

ルートポート

ルートポートとは、それぞれのスイッチのルートスイッチから、最も近い距離のルートのことをさします。

このときの距離とはリンク間の距離ではなく、スイッチ同士でやりとりされるBPDUフレームにあるパスコストに基づいた距離のことをいいます。

代表ポート

代表ポートとは、各スイッチのリンクの両端にあるスイッチのうち、距離が短い方のポートのことをさします。このときの距離とは、ルートパスコストのことをいいます。

これにより、ルートスイッチからなるポートはすべてが代表ポートとなります。

非指定ポート

非指定ポートとは、ルートポートの代表ポートを決定した後、最後に残ったポートのことをいいます。すなわちルートポートから一番距離の遠いポートが、非指定ポートとなります。

非指定ポートに選出されると、データの送受信がブロッキングされます。このブロッキングがループの発生を防ぎます。

3:スパニングツリー構成の確認

以上の手順を踏むことで、スパニングツリーを構成することができます。これによりルートポートで障害がおきるとスパニングツリーの再計算が行われ、その結果、非指定ポートのブロッキングが解除されデータの送受信が再開されるようになります。

構成を確認するためにルートポートのリンクを遮断し、非指定ポートが正常にブロッキング解除されるのかを検証する必要があります。

スパニングツリーでトラブルのないネットワークを構築しよう


ここまで「スパニングツリーとは」という疑問に答えてきました。スパニングツリー構成の脆弱性をついたスパニングツリー攻撃というものも存在しますが、ciscoなどが販売しているスイッチでトリガーの設定等をすることで防ぐことができます。そのため、脆弱性の面をクリアすることができるでしょう。

ぜひネットワークにスパニングツリー対応を行い、障害に強いネットワークを構成してみてください。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。

合わせて読みたい

show environment hbspt.cta.load(20723875, '3d7ab56d-5a0b-4419-a613-23dafc69bc3e', {"useNewLoader":"true","region":"na1"}); 読み方 show environment (ショウ エンバイロンメント) 使用...
LB (ロードバランサ) ロードバランサとは? ロードバランサとは高い負荷を複数のサーバに分散させ、処理を低減させる装置です。 インターネットから各種サーバーにアクセスがあると、サーバーはその機器に搭載されているCPUやメモリーなどのリソースを使って指示を処理します。しかしアクセスが集中し処理数が激増すると、応答が極...
エンジニアと関連の深い5G基地局のメーカー紹介その3【ノキア】... hbspt.cta.load(20723875, '940941f2-198d-419e-b8bd-967ea4e44d02', {"useNewLoader":"true","region":"na1"}); 5Gの基地局メーカーに参入しているのは国内メーカーだけではありません。 本記事で...
エンジニアと関連の深い5G基地局のメーカー紹介その4【エリクソン】... hbspt.cta.load(20723875, '940941f2-198d-419e-b8bd-967ea4e44d02', {"useNewLoader":"true","region":"na1"}); 2020年春には、日本でもいよいよ5Gのサービスが提供開始される予定です。 それ...
エンジニアと関連の深い5G基地局のメーカー紹介その2【NEC】... hbspt.cta.load(20723875, '940941f2-198d-419e-b8bd-967ea4e44d02', {"useNewLoader":"true","region":"na1"}); エンジニア注目の5Gですが、日本国内の基地局メーカーのひとつが「NEC」です。5G...