パソコンをスイッチのアクセスポートにつないだとき、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、複数のリンクを束ねて使う技術を見ていくよ。