GOADBULL

CCNA勉強 STPについて詳しく

STP(スパニングツリープロトコル)とは、レイヤ2ネットワークでレイヤ2のループを防ぐためのプロトコル。
IEEE802.1D で標準化されたプロトコル。STPでは、ループが発生しないようにSTA (スパニングツリーアルゴリズム)を使用する。
ブロッキングポートと呼ばれるポートを作成する。ブロッキングポートは、データフレームを転送しないことによりループを防ぐ。
リンクの障害児時に、自動で経路を切り替えるという機能もある。

対象 選出場所 選出方法
ルートブリッジ L2ネットワークに1つ 最小ブリッジID
DP 指定ポート 各セグメントに1つ 最小ルートパスコスト
RP (ルートポート) 各スイッチに1つ 最小ルートパスコスト
BP ブロッキングポート L2ループ毎に1つ RP、DP以外のポート

ルートブリッジ

定期的にBPDU(デフォルトでは2秒間隔)をマルチキャストする。
BPDUの働き ・ルートブリッジの選出
・STPの状態監視(定期的にBDPUをマルチキャストする)
・ネットワーク変更の通知
・ループ位置の判別

ブリッジID

STPが有効なスイッチは、一意のブリッジIDを持つ


最小のプライオリティを持つスイッチがルートブリッジに選定される。

ルートパスコストの出し方

ルートポート(RP)はルーとパスコストの値によって決まる。

ルートパスコストのデフォルト値 ・10Gbps ... 2
・1Gbps ... 4
・100Mbps ... 19
・10Mbps ... 100

ルートブリッジから足して行って、一番コストの低いルートをコストを算出する。「例:スイッチ4までのルートが2つあって、ルートパスコストが19と4のものがあったら4の方を選択する」

RP(ルートポート)

ルートブリッジに最も近いポート。ルートブリッジに対して、パスコストが最も小さいもの

ルートポートの決定方法
①ルートパスコストを比較
②送信元ブリッジIDを比較
③送信元ポートIDを比較

DP(指定ポート)

各セグメントでルートブリッジに最も近いポート。ルートブリッジの全てのポートは必ず指定ポートになる。
最も小さいルートパスコストのRPを持つスイッチ側のポート

非指定ポート

ルートポート、指定ポートにも選出されなかった残りのポート

代替ポート

非指定ポートのこと。MACアドレスの学習やデータ転送を行わない状態のことをディスカーニング状態という。

ブリッジプライオリティの設定

構文 (config)#spanning-tree vlan {vlan ID} priority {priority}

ルートブリッジにしたい

特定のスイッチをルートブリッジに指定する。    構文 (config)#spanning-tree vlan {vlan ID} root priority
直でvlanを指定できるところが賢い。

STPポートの状態「」内は人間のタイプで表現しています。

ブロッキング    BPDUを受信し、データフレームを送受信しない状態、アドレス学習もしない「完全拒否野郎」
リスニング    BPDUを送受信し、データフレームを送受信しない状態、アドレス学習もしない「消極的だが、空気は読む人間」
ラーニング    MACアドレスの学習はするものの、データフレームを送受信しない状態「超人見知り人間」
フォワーディング    通信できる状態。データの転送をおこなう。「何でもかんでも受け入れる人間」
通信できるようにするためには、「ブロッキング」→「リスニング」→「ラーニング」→「フォワーディング」というような状態遷移をする必要がある。
このような遷移をすると、フォワーディングになるまで50秒かかってしまうので、非常に遅い。
通信できる状態にすることを「コンバージェンスを安定させる」という。

Portfast

   即座にコンバージェンスを安定させるためのCisco独自の拡張機能。欠点:計算なしにフォワーディング状態にするので、接続を間違えるとループが発生する。
端末が接続されているポートなど、ループが発生しないことがわかっているポートに設定する。
スイッチ間のポートでPortfastを有効にしたら、ループが発生しちゃう!
なので、スイッチ間の通信で使うトランクポートには設定することがないが、WLCとの接続点では、設定できる。

トランクポートでPortfastを有効化する。   構文 (config-if)#spanning-tree portfast trunk
全てのアクセスポートでPortfastを有効化する   構文 (config)#spanning-tree portfast default
特定のポート上でPortfastを有効化する   構文 (config-if)#spanning-tree portfast

エッジポート

RSTPでスイッチに接続されていないポートのこと。
誤ってスイッチが接続されるとループが起こる可能性があるので、BDPUを受信した瞬間に標準ポートに変身する。このとき、トポロジが変わったことを認識して、TCNBDPUを生成して、ほかのスイッチに通知します

エッジポートの設定   構文 (config-if)#spanning-tree portfast edge
ディスカーニング状態 MACアドレスの学習やデータ転送を行わないポート BDPUガード Portfastが有効なポートでBDPUを受信した時、そのポートを無効にする機能。誤って、スイッチのポートでPortfastを有効にしてしまった場合に起こるループを防ぐことができる

全てのPortFastポートでBDPUガードを有効化する   構文 (config)#spanning-tree portfast bdpuguard default
特定のポートでBDPUガードを有効化する   構文 (config)#spanning-tree portfast bdpuguard enable
BDPUフィルタ   portfastが有効なポートでBDPUを受信しないようにする機能。
Uplinkfast   ブロッキングポートを持つスイッチで障害が発生した場合、ブロッキングになっているポートを即座にフォワーディングに切り替えるという機能。

Backbonefast   ブロッキングポート以外のスイッチ(間接リンク)で障害が発生した場合、最大エージタイマーを待たずに即座に再計算を始める機能。不良BDPUを受信した時に、ルートブリッジに確認して再計算をする。

あらゆるスパニングツリープロトコル

  • RSTP STPのコンバージェンスの遅さを改善するために、IEEE802.1Wとして標準化された。BPDUの処理やポートの役割などを新しく定義して、PtoPの場合は、タイマーに依存しないため、高速コンバージェンスが実現される。STPと相互運用可能。
    また別名でRapid-PVSTともいう。 RSTPの有効化   構文 (config)#spanning-tree mode rapid-pvst
  • PVST+  VLANごとに異なるスパニングツリーを構成することができる。ルーとブリッジの位置を最適化でき、負荷分散することができる。(表示ではrstp)
  • RPVST+ RSTPとPVAT+を連動させたもの。 障害が発生した際にパスの切り替えに時間がかかてしまうため、素早くパスの切り替えをする機能を追加。PVST+と同じく、VLANごとに異なるスパニングツリーを構成することができる
  • MSTP 大規模用スパニングツリー。複数のVLANをグループ化し、グループごとに経路を構成できる。
  • PVST+

    VLANごとに異なるスパニングツリーを構成することができる。ルーとブリッジの位置を最適化でき、負荷分散することができる。
    ルートブリッジの位置を瞬時に変更でき、処理を分散できる。(あちこち移動することで、データを受けやすい位置に移動)
    あちこち移動することで、CPUに負担がかかるデメリットもある。




    コメントや要望があれば、下記のツイッターにDMをください。
      CCNA メモ4
      参考サイト
      ネットワークエンジニアとして 
      TCP/IPとは?通信プロトコルの階層モデルを図解で解説
      3分ネットワーキング 

      CCNA学習

      CCNA 本まとめ
      CCNA メモ 0
      CCNAメモ 1
      CCNAメモ 2
      CCNAメモ 3
      CCNAメモ 4
      CCNAメモ 5

      他のサイト

        AWS クラウドプラクティショナー

        クラウドプラクティショナー 自宅受験(PSI)

        AWS ソリューションアーキテクト アソシエイト



        ソリューションアーキテクト(SAA) メモ1
        ソリューションアーキテクト(SAA) メモ2

        AWS アドミニストレーター アソシエイト


        アドミニストレータ メモ1
        アドミニストレータ メモ2
        アドミニストレータ オリジナルテスト01 10問
        アドミニストレータ オリジナルテスト02 10問
        アドミニストレータ オリジナルテスト03 10問
        アドミニストレータ オリジナルテスト04 10問
        アドミニストレータ オリジナルテスト05 10問
        アドミニストレータ サンプル問題2


        AWS デベロッパー アソシエイト


        デベロッパー メモ1
        デベロッパー メモ2
        デベロッパー メモ3
        デベロッパー範囲 Code〇〇
        デベロッパー範囲 ElasticBeantalk
        デベロッパー範囲 X-Ray
        デベロッパー範囲 Cognito
        デベロッパー範囲 Lambda
        デベロッパー オリジナルテスト01 10問
        デベロッパー オリジナルテスト02 10問
        デベロッパー オリジナルテスト03 10問
        デベロッパー オリジナルテスト04 10問
        デベロッパー オリジナルテスト05 10問
        デベロッパー オリジナルテスト06 10問
        デベロッパー オリジナルテスト07 10問
        デベロッパー オリジナルテスト08 10問
        デベロッパー オリジナルテスト09 10問

        その他

        Route53 独自ドメイン購入 エラー
        独自ドメイン CloudFront エラー

        著者の他のサイト

        駆け出しインフラエンジニア

        おすすめサイト

        DynamoDBのキーをわかりやすく。
        育児の合間に認定デベロッパー アソシエイト