STAGE 03 / STP

PortFast・BPDUガード・PVST+

考えてみよう

パソコンをスイッチのアクセスポートにつないだとき、STPの状態遷移(ブロッキング→リスニング→ラーニング→フォワーディング)をそのまま待たされたら、どんな不便が起きるでしょう?

前回、この状態遷移には最大50秒程度かかることもあると学びました。パソコンを起動してケーブルを挿すたびに、ネット接続が使えるまで数十秒待たされたら……。DHCPで住所をもらう前にタイムアウトしてしまうかもしれませんね。

STPの「律儀さ」が仇になる場面

STPはループを防ぐために慎重に状態遷移を行いますが、この律儀さが、末端の機器をつなぐアクセスポートにとっては過剰な足かせになってしまいます。パソコンやプリンターをつなぐだけのポートでループが生まれる心配は通常ありません。それなのに毎回30〜50秒待たされては、業務に支障が出てしまいます。

そこで登場するのがPortFastです。

PortFast:アクセスポートを一気に転送状態へ

PortFastを設定したポートは、STPの通常の状態遷移をスキップし、リンクアップ後すぐにフォワーディング状態へ移行します。受付の行列を無視して、VIP専用レーンでまっすぐ入場できるようなイメージです。

Switch(config)# interface FastEthernet0/1
Switch(config-if)# spanning-tree portfast

重要な注意点は、PortFastはアクセスポート(末端の機器につながるポート)専用の機能だということです。スイッチ同士をつなぐようなポートにPortFastを設定してしまうと、本来防ぐべきループが発生する危険があります。あくまで「ループが起こり得ない、末端機器専用のポート」に限定して使うのが鉄則です。

確認問題

PortFastは、スイッチ同士を接続するトランクポートに設定してもよいでしょうか?

答えを見る

いいえ、原則として設定すべきではありません。PortFastはアクセスポート(末端の機器につながるポート)専用の機能です。スイッチ間の接続にPortFastを設定すると、ループ検出の遅延によって実際にループが発生するリスクが高まります。

BPDUガード:PortFastの安全装置

PortFastを設定したポートに、万が一スイッチや不正な機器が接続され、BPDUを受信してしまったらどうなるでしょうか。それはSTPのループ防止の観点から見るとあってはならない事態です。そこで組み合わせて使うのがBPDUガードです。

Switch(config)# interface FastEthernet0/1
Switch(config-if)# spanning-tree bpduguard enable

BPDUガードを有効にしたポートがBPDUを受信すると、そのポートは即座にerr-disabled(エラーによる無効化)状態になり、シャットダウンされます。「アクセスポートのはずなのにスイッチらしき機器がつながった、これはおかしい」と判断して、自動的に遮断してくれる安全装置です。PortFastとBPDUガードは、セットで設定するのが定石です。

確認問題

PortFastを設定したポートで、もしBPDUを受信してしまった場合、BPDUガードはどのように動作するでしょうか?

答えを見る

そのポートをerr-disabled状態にしてシャットダウンします。アクセスポートであるはずの場所からBPDUが届くのは異常事態(誤ってスイッチが接続された、あるいは悪意ある攻撃)とみなし、ループのリスクを未然に防ぎます。

PVST+:VLANごとに個別のスパニングツリー

ここまでのSTPの説明は、ネットワーク全体で1つのスパニングツリーを作る前提で進めてきました。しかし複数のVLANを運用している環境では、シスコ独自の拡張であるPVST+(Per-VLAN Spanning Tree+)がよく使われます。

PVST+では、VLANごとに独立したスパニングツリーインスタンスが動作します。つまりVLAN10とVLAN20で、それぞれ別のスイッチをルートブリッジに選び、別々のリンクをブロックする、といった柔軟な設計が可能になります。これにより、VLANごとにトラフィックの負荷分散を図ることもできます(あるリンクはVLAN10のフォワーディング用、別のリンクはVLAN20のフォワーディング用、というように使い分ける)。

試験でのポイント

CCNA試験では、PortFastが「アクセスポート専用」であること、BPDUガードが「BPDU受信時にerr-disabledにする安全装置」であること、そしてPVST+が「VLANごとに独立したスパニングツリーを持つシスコ独自拡張」であることが、それぞれ独立した設問として問われやすいポイントです。「PortFastだけ設定すればBPDUガードは不要」といった思い込みに注意し、2つはセットで使う設計が推奨される点も覚えておきましょう。

ゆみちゃん
ゆみ

PortFastでアクセスポートを即座にフォワーディングにして、BPDUガードで万が一の異常を検知する。この2つはセットで覚えておくとテストでも実務でも役立つよ。PVST+はVLANごとにツリーを持てるから、リンクの使い方をVLAN単位で最適化できるのも面白いところだね。次はEtherChannel、複数のリンクを束ねて使う技術を見ていくよ。