KENスクールブログ | パソコン教室・パソコン講座なら個別指導のKENスクール

BLOGKENスクールブログ

  1. KENスクール TOP >
  2. KENスクールブログ > ネットワーク > CCNA資格対策!STP(Spanning Tree Protocol)とは?

ネットワーク

CCNA資格対策!STP(Spanning Tree Protocol)とは?

Cisco Systems社認定資格であるCCNA(Cisco Certified Network Associate)出題範囲における技術について、定期的にご紹介します。

 

CCNA資格は【ICND1】【ICND2】の2つの試験に合格することで取得できます。
今回の記事ではICND2の出題範囲であるSTPによる冗長スイッチングテクノロジーについてご紹介します。

 

STP概要

 

配線を冗長構成にし、かつループを発生させずに冗長リンクを作り出すプロトコルを、STP(スパニングツリープロトコル)といいます。

STPは、ブロッキングポートとよばれるポートを作成することで、単一なアクティブパスを作り出します。

 

なお、STPはL2デバイスであるスイッチが登場する以前からの技術であり、STPの様々な用語では「ブリッジ」という言葉が使用されます。 STPにおいては「ブリッジ = スイッチ」と捉えます。

 

 

STPの仕組み(1)

STPは、ネットワーク内に親となるスイッチ(ルートブリッジ)を1台定義し、スイッチドネットワークが1本のツリーとして成立しているかどうかを常に監視しています。

 

STPの仕組み(2)

STPは、ブロッキングポートを作成することでループを防ぎます。

上図において、SW-AとSW-B間がダウンした場合、ブロッキングポートを開放することでツリーを正常に維持するようにします。

この動作により、ネットワークを二重化することができ、ネットワークに冗長性を提供しています。

 

BPDU(Bridge Protocol Data Unit)

STPを有効にしたスイッチは、BPDU(Bridge Protocol Data Unit)とよばれるフレームを送信します。

BPDUは、well-known STPマルチキャストアドレス「01-80-c2-00-00-00」を宛先アドレスとして、2秒に1回すべてのポートから送信されます。

このBPDUにはブリッジID、パスコスト、ポートIDなど、STP計算に必要な様々なパラメータが含まれており、スイッチはこのBPDUを送受信することで、他のスイッチの存在やネットワークの状況を把握することができます。

◆コンフィグレーションBPDU

通常のスパニングツリーの計算に使用され、以下の情報が含まれます。

    • Root ID

      発信するスイッチが学習している最小のブリッジIDを持つスイッチのID

    • Root Path Cost

      ルートブリッジまでのパスコスト

    • Bridge ID

      発信するスイッチのブリッジID

 

◆TCN(Topology Change Notification)BPDU

ネットワークトポロジーが変化したときの通知に使用されます。

 

STPパスコスト

STPでは、ループを防止するのと同時にアクティブなパスを形成します。 そのアクティブパスは、ツリーの根となるルートブリッジから効率のいい通信ができるパス、つまり最短パスとなります。

ここで言う「ルートブリッジに最短」とは、スイッチを経由する数ではなく、ポート速度に依存した「STPパスコスト」とよばれる値が最小ということを意味します。

スイッチのSTPパスコストは、デフォルト値が設定されており、かつては旧コストの算出方法「100Mbps/帯域幅」が用いられていましたが、現在では旧コストによる算出方法では最適なルートが選ばれないことがあるため、帯域幅によって予め定義されている新しいコスト値が使用されます。

上記の表は新コスト値を示しています。

また、ポートのコスト値は、設定により変更することも可能です。

 

ブリッジIDとルートブリッジの選出

STPでは、ネットワーク内に存在する複数のスイッチから1台を「ルートブリッジ」として選出し、ツリーの根(ルート)として動作させます。

ルートブリッジの選出時には、BPDU内に含まれるブリッジIDが比較されます。

ブリッジIDは、「STPプライオリティ値」と「MACアドレス」より構成されており、プライオリティ値は設定変更が可能です。(デフォルト値:32768)

 

ルートブリッジの選出は、まずブリッジID内のプライオリティ値が比較され、プライオリティ値が最小の値を持つスイッチがルートブリッジとなります。

各スイッチにデフォルトのプライオリティの値(32768)が設定されている場合は、次にブリッジID内のMACアドレスが比較され、最小の値を持つスイッチがルートブリッジとなります。

上図の構成では各スイッチのプライオリティ値は同じため、MACアドレスの値が最小の値を持つSW1がルートブリッジとなります。

 

ルートポートの選出

 

ルートブリッジが選出されると、次にパスコストを基にルートポートが選出されます。

上図において、SW1がルートブリッジとした場合、SW2とSW3上でルートブリッジに最短のポートが1つ選択され、ルートブリッジの位置が確認されます。

ルートブリッジが決定すると、ルートブリッジから枝葉のスイッチに向かいBPDUが送信されます。

コストは、全てのスイッチのポートに設定されていますが、ルートブリッジは、自分自身が根となるためコスト(パスコスト)は0です。 よって、ルートブリッジはBPDU内のコスト情報を「0」にして転送します。 スイッチはBPDUを受信すると、入力ポートのコスト値を加算してルートブリッジまでの最短ポートを決定します。

SW2に注目すると、SW2がBPDUを受信する可能性があるポートは2つあります。 1つはルートブリッジに直接接続しているポートで、コスト0のBPDUを受信します。 もう1つはSW3を経由するポートで、コスト19のBPDUを受信します。 SW2は、それぞれ受信ポートのコスト値を加算して2つの値を比較し、加算した値が小さい方のポートをルートブリッジに近いと判断して、ルートポートとします。

上図の場合、ルートブリッジと直接接続されたポートでは、コスト値は0+19=19となります。 SW3を経由するポートでは、コスト値は19+19=38となります。 よって、ルートブリッジに直接接続されたポートがルートポートとなります。

同様にSW3もルートポートを判断します。 この動作によりスイッチはルートブリッジの位置を把握し、ルートブリッジまでの最短のポートを選出します。

このように、ルートブリッジから流れたBPDU内のコスト情報は、スイッチを通過するたびにコストが加算され転送されていきます。 ルートブリッジまでの最短距離となるコスト値の合計を、ルートパスコストといいます。

 

指定ポートの選出

STPではツリーが成立しているかどうかを常に監視しており、ルートブリッジからBPDUを枝葉に送信することで実現しています。

よって、各スイッチ上で、BPDUをどのポートから送信すれば枝葉に向かうのかを知る必要があります。

このポートは指定ポートとよばれ、BPDUを流すために選出されるポートで、無条件でルートブリッジのポートは指定ポートとなります。 また、ルートブリッジが存在しない場所では、セグメント毎に1つ選出されます。 各セグメントでルートブリッジに最短のポートを選出することにより、BPDUを送出するポートが決定されます。

上図において、SW1はルートブリッジのため、SW1のポートは無条件で指定ポートとなります。

次に、SW2とSW3間のセグメントでは、お互いにルートパスコストが19であるBPDUを受信することになります。

このように条件が同じ場合は、お互いのブリッジIDが比較され、ブリッジIDの小さいスイッチが送信したBPDUが優先されます。

よって、この場合はSW2のBPDUが優先され、SW2とSW3間ではSW2側のポートが指定ポートとして選出されます。

 

ブロッキングポートの選出

最後まで、ルートポートにも指定ポートにも選ばれなかったポートが、ブロッキングポートとなります。

ブロッキングポートに選出されたポートはBPDUの送信を停止し、受信のみ行うようになります。

また、ブロッキングポートでは、ユーザーデータの送受信も一切行いません。

 

ブロッキングポートが決定された後も、ルートブリッジからは定期的にBPDUを送信し、ツリー構成が保たれているかを監視します。 また、ネットワークに何らかの変化(新規スイッチの追加、障害発生)があった場合には、BPDUを使用して検出し、STA(スパニングツリーアルゴリズム)に従い再計算が行われます。

 

STPポートステート

STPにより、ツリー構成が確定するまでには、4つのポートステートがあります。

 

◆ブロッキング

ポートがリンクUPすると、ブリッジングループが発生しないように、ポートはブロッキングステートに置かれます。 ブロッキングステートでは、データの送受信およびMACアドレスの学習もせず、隣接スイッチからBPDUのみを受信します。

◆リスニング

ポートをルートポートまたは指定ポートとして選択してもよいとスイッチが判断すると、そのポートはブロッキングからリスニングへ移行します。 リスニングステートにあるポートは、まだデータの送受信は行いませんが、スパニングツリートポロジーの形成プロセスに参加できるように、BPDUの送受信を行います。 スイッチがBPDUを他のスイッチに送信することで、アドバタイズすることができるようになるため、ポートはルートポートまたは指定ポートになることができます。

◆ラーニング

スイッチは、引き続きBPDUを送受信します。 このステートでスイッチは、新しいMACアドレスを学習でき、ある程度のアドレス情報を収集することができます。 しかし、まだデータの送受信は行いません。

◆フォワーディング

データの送受信を開始します。 MACアドレスを収集してテーブルに保存し、BPDUの送受信も行います。

 

いかがでしたでしょうか。

ぜひお勉強の際にお役立て下さい。

 

この記事に関連する講座

ネットワークエンジニアへの登竜門!

詳しくはこちら