【STP⑥】RSTPとは 切り替わり時間の高速化について

stp-part6

STPでの切り替わりの仕組みや通信断時間については分かったのだけど、30秒とか50秒って結構長いのね。。。何かしらネットワークに変化が有る度にこれだけの時間止まってしまったらユーザは困ってしまうと思うけど・・・

チャーチルさん

ポン先生

実のところ、別のプロトコルを使えばもっと通信断時間を短くする事ができるよ。

この記事ではRSTPの仕組みや状態遷移について勉強します。前回の記事で解説したSTPは基本ではありますが、実環境で積極的に使われている訳ではありません。前述の通り切り替わりに時間がかかるので実際にはRSTPというプロトコルが利用されます。前回の記事とあわせて読むことでSTPとRSTPの違いを理解する事ができます。

前回の記事はこちら。

RSTPの状態遷移

この章の項目
  • STPの問題点 → 切り替わりに時間がかかる
  • 【RSTPの特徴①】ポートの役割は4種類
  • 【RSTPの特徴②】ポートの状態は3種類
  • 【RSTPの特徴③】Proposal BPDUとAgreement BPDU
  • トポロジーチェンジ(障害発生時)

STPの問題点 → 切り替わりに時間がかかる

前述の通りSTPは仕組み上切り替わりに時間がかかります。構成や障害ポイントによりますが30秒~50秒かかります。これはネットワークの規模に関わらず同じで、例えばエッジスイッチが1台でも20台でも同じです。(感覚的には違和感あるかもしれませんが、そういうモノです。)

しかし、言うてもL2スイッチの障害です。それでこれだけの時間切れてしまうのは困ってしまいますね。実際の所、障害でしっかりダウンしてくれれば良いのですが、定期的にリンクアップダウンを繰り返すと言った中途半端な壊れ方をするケースもあるので、その度に30秒以上の通信断が発生するのは頂けないですね。

そこでより高速に切り替わるプロトコルが開発されました。それがRSTP(Rapid STP)です。RSTPはSTPの上位互換的なプロトコルで、基本的な仕組みは踏襲しつつより高速になっています。実環境で最も使われていると言っても良いでしょう。次章ではその仕組について解説します。

ポン先生

因みに正式なプロトコルの名前は

STP    → IEEE 802.1d

RSTP → IEEE 802.1w

と言うよ。

【RSTPの特徴①】ポートの役割は4種類

RSTPにもSTP同様ポートの役割があります。STPではルートポート指定ポート非指定ポート(ブロッキングポート)の3種類でしたが、RSTPではルートポート指定ポート代替ポートバックアップポートの4種類です。

■RSTPポート役割
STPRSTPRSTPの説明
ルートポートルートポートルートブリッジに一番近いポート
※STPと同じ
指定ポート指定ポート各セグメント(リンク)ごとに選出されるルートブリッジに一番近いポート
※STPと同じ
ブロッキングポート代替ポートルートポートの予備ポート
ブロッキングポートバックアップポート指定ポートの予備ポート

※上記の内、ルートポートと指定ポートはSTPと同じです。詳しくは下記参照。

代替ポート(AP, Alternate Port)とはRSTPで追加されたポートの役割で、ルートポートの予備ポートです。ルートポートがダウンした際その役割を引き継ぎまず。通常時は通信を止めます。

もう一つ追加されたバックアップポート(BP, Backup Port)指定ポートの予備ポートです。指定ポートのダウン時に引き継ぎます。具体的にはリピータHUB等STP非対応機器とした際に考慮するポートです。通常時は通信を止めます。

代替ポートとバックアップポート

STPの時は障害が起きてから再計算だったのが、RSTPでは事前に切り替わり先を作っておくんだね。

チャーチルさん

【RSTPの特徴②】ポートの状態は3種類

STPではBlockingListeningLearningForwardingの4種類でしたが、RSTPではDiscardingLearningForwardingの3種類です。

■RSTPポート状態
STPRSTPBPDU受信BPDU送信MACアドレス学習データ転送
BlockingDiscarding
ListeningDiscarding
(Listeningのみ)
LearningLearning
ForwardingForwarding

STPのBlocking、ListeningはRSTPのDiscardingに統合、Learning、Forwardingは据え置きです。

※STPにおける各状態の詳細は下記参照。

【RSTPの特徴③】Proposal BPDUとAgreement BPDU

RSTPの独自機能としてProposal BPDUAgreement BPDUがあります。具体的には以下のプロセスでお互いのスイッチやポートの役割を決定します。

Proposal BPDUとAgreement BPDUのプロセス
  • スイッチを接続するとお互いにProposal BPDU(提案のBPDU)を送信する
  • Proposal BPDUの中身は「自分がルートブリッジかつ指定ポートである」という内容
  • 受信したProposal BPDUと自分の値を比較
    • 相手の方が有利な場合:
      • Agreement BPDUを送信する
      • 自身はルートポートに遷移しデータ転送開始
    • 自身の方が有利な場合:
      • 自身はルートブリッジ・指定ポートとする
      • 相手からのAgreement BPDUを受信しデータ転送開始
Proposal BPDUとAgreement BPDU

トポロジーチェンジ(障害発生時)

RSTPの一番の特徴は収束時間の短さです。以下2パターンで見てみましょう。

直接障害

下記構成でスイッチA⇔C間で障害が発生した場合、スイッチCの代替ポートは即座にルートポートに役割を変更します。元々ルートポートの予備なのでルートポートのダウンを検知したら新たなルートポートになります。そしてDiscarding状態からForwarding状態となり通信は復旧します。

RSTP状態遷移(スイッチA・C間障害)

間接障害

下記構成でスイッチA⇔B間で障害が発生した場合、スイッチBはTC(トポロジーの変更)を送信します。TCを受信したスイッチCはスイッチBとの間でProposal BPDUとAgreement BPDUのやり取りをし、各ポートの切り替えを行います

RSTP状態遷移(スイッチA・B間障害)

このようにRSTPでは障害検知~切り替え後の仕組みがSTPと大きく異なり、大幅にネットワーク断時間も短くなっています。

経験上、1秒程度の断で収束するため一般ユーザは気づかないレベルです。

因みにSTPのスイッチとRSTPのスイッチを繋いだらどうなるの?

チャーチルさん

ポン先生

実は互換性があるからちゃんとループ防止や障害時の切り替わりはできるよ。ただし収束速度はSTPに方に合わせる形になるからRSTPのメリットは無くなっちゃうね(つまり30秒 or 50秒)。

まとめ

ポイント
  • RSTPはSTPの上位互換のプロトコル

  • RSTPポートの4つの役割

    • ルートポート

    • 指定ポート

    • 代替ポート

    • バックアップポート

  • RSTPポートの3つの状態

    • Discarding

    • Learning

    • Forwarding

  • Proposal BPDUとAgreement BPDUで互いの役割を決定

  • 直接障害、間接障害どちらでも高速切り替わり

この記事ではRSTPの基本動作について勉強しました。実環境ではRSTPで動いているネットワークは非常に多いです(たまに昔STPで構築してそのままの会社もありますが・・・)。Bugや対抗機器との相性等の特例を除けばデメリットは殆ど無くSTPの上位互換なので採用プロトコルとしてはスタンダードです。構成がSTPなのかRSTPなのかでそのネットワークの対障害性は変わるのでぜひともRSTPを扱えるようになって欲しい所です。