【CCNA・CCNP試験対策】ネットワークの基礎から学んでいこう!【STP解説編】Part 4


【CCNA・CCNP試験対策】ネットワークの基礎から学んでいこう!【STP解説編】Part 4

CCNA,CCNPの勉強をしている方に向けて、今回も解説編ということで引き続きSTP(スパニングツリープロトコル)の解説をしていこうと思います。今回はSTPの保護に関連した拡張機能について解説していこうと思います。

【目次】

  1. STPの保護機能
  2. まとめ

STPの保護機能

前回の解説編では、STPの種類について紹介しました。また、Part2.5では、STPの拡張機能としてコンバージェンスを高速化する仕組みについて紹介しました。
今回もSTPの拡張機能についての紹介ですが、以前とは少し違って「STPのトポロジーを保護するための」拡張機能となります。具体的には、「ルートガード」「BPDUガード」「BPDUフィルター」「ループガード」の4つです。これらは、CCNPの試験で詳しく出題されますので、CCMPを学習中の方はもちろん、CCNA学習中の方も覚えておいて損はないと思います。名前が似ているので、それぞれの機能や仕組みをしっかりと区別できるようにしておきましょう!

ルートガード

ルートガードは、簡単に言えば「新規に追加されたスイッチがルートブリッジになることを防ぐ機能」です。STPが動作しているトポロジーで新規にスイッチを追加した際に、そのスイッチのブリッジIDが既存のルートブリッジよりも小さい値の場合、新規に追加したスイッチがルートブリッジになってしまい、管理者が意図していた経路とは異なった経路を取ってしまう可能性があります。それを防ぐことが出来る機能がルートガードです。

それでは、具体的な動作について説明していきます。
ルートガードは、スイッチのポートで設定を行います。ルートガードを有効にしたポートで上位のBPDU(既存のルートブリッジよりも優先度の高いブリッジIDを持ったBPDU)を受け取ると、そのポートを「ルート不整合(root-inconsistent)」という状態にします。この状態になると、上位のBPDUをブロックするようになります。ルート不整合状態は、一時的にブロックしているだけですので、上位のBPDUを受信しなくなると、自動的に回復してポートは元の状態に戻ります。

〈Cisco機器での設定コマンド〉

ルートガードの設定はインターフェース単位でのみ可能になっていて、デフォルトでは無効になっています。
設定には次のコマンドを使用します。
(config-if)#spanning-tree guard root

BPDUガード

BPDUガード・BPDUフィルターは主にPortfastと併用することが多い機能です。BPDUガードは「Portfastを設定したポートの誤った接続によるループを防ぐ機能」です。Portfastは、以前にも説明したようにPC等のBPDUを送信してこない機器と接続するポートでは、STPの計算が必要ないため即座にフォワーディングにしてコンバージェンスを高速化する機能でした。このPortfastの設定したポートを誤ってスイッチに接続した場合、本来であればブロッキングになるはずのポートがフォワーディングになってしまい、ループが発生してしまう可能性があります。これを防ぐための機能がBPDUガードです。
具体的な動作について説明していきます。
BPDUガードを有効にしたポートでBPDUを受け取った場合、そのポートが「err-disable」状態に置かれ、強制的なシャットダウン状態になります。こちらは、特殊なシャットダウン状態ですので、復旧させる場合は管理者が手動で解除するか自動的に復旧するように、あらかじめ errdisable recovery causeコマンドで設定をしておく必要があります。

〈Cisco機器での設定コマンド〉

スイッチでの設定方法にはインターフェース単位で有効化する方法とスイッチ全体で有効化する方法の2種類があります。それぞれのコマンドの違いや設定されるポートの違いには注意が必要です。

  • インターフェース単位で有効化する場合

    BPDUガードをインターフェース単位で有効化する場合、次のコマンドを使用します。また、ポートにPortfastの設定を行っていなくてもBPDUガードの設定を行うことが出来ます。
    (config-if)#spanning-tree bpduguard enable

  • スイッチ全体で有効化する場合

    BPDUガードをスイッチ全体で有効化する場合、次のコマンドを使用します。スイッチ全体で有効化すると、そのスイッチのPortfastが設定されているポートでBPDUガードが適用されます。
    (config)#spanning-tree portfast bpduguard default

BPDUフィルター

BPDUフィルターは、先ほどのBPDUガードの項目でも書きましたが、Portfastと併用されることが多い機能です。BPDUフィルターは設定したポートで「BPDUの送信を停止する機能」です。Portfastを設定するポートは、PCやサーバが接続されることになっています。そのため、STPに参加する必要がありません。そのようなポートでBPDUの送信をしないようにする機能がBPDUフィルターです。

〈Cisco機器での設定コマンド〉

スイッチでの設定方法にはインターフェース単位で有効化する方法とスイッチ全体で有効化する方法の2種類があります。それぞれのコマンドの違いや設定されるポートの違い、BPDUを受け取った際の動作が違うので、注意が必要です。

  • インターフェース単位で有効化する場合

    BPDUフィルターをインターフェース単位で有効化する場合、Portfastの設定を行っている必要はありません。また、BPDUを受信した際も解除されることはなく、BPDUの送受信を完全にストップします。
    BPDUフィルターをインターフェース単位で有効化する際には次のコマンドを使用します。
    (config-if)#spanning-tree bpdufilter enable

  • スイッチ全体で有効化する場合

    BPDUフィルターをスイッチ全体で有効化する場合、そのスイッチのPortfastが設定されているポート全てでBPDUフィルターが適用されます。また、スイッチが接続されBPDUを受信した場合には、BPDUフィルターの設定が解除され、BPDUの送受信を開始します。
    BPDUフィルターをスイッチ全体で有効化する際には次のコマンドを使用します。
    (config)#spanning-tree portfast bpdufilter default

ループガード

ループガードは、簡単に言うと「ブロッキング状態のポートでBPDUを受信しなくなった場合にループが発生することを防ぐ機能」です。
具体的な仕組みを書いていきます。
スイッチ間の接続で、単一方向リンク障害(送受信のうちどちらか片方が出来ていない障害)や、BPDUフィルターの設定ミスなどが起こると、ブロッキング状態のポートにBPDUが送られてこなくなる場合があります。
その時、スイッチはBPDUが送られてこないことから相手がPCやサーバーなどのSTPが必要ない機器が接続されていると勘違いしてしまい、フォワーディング状態になってしまい、ループが発生してしまう可能性があります。これを防ぐ機能がループガードです。
ループガードが有効になっていると、ブロッキング状態のポートでBPDUを受信しなくなるとフォワーディング状態ではなく「ループ不整合」という状態に遷移させ、通信をブロックします。これによって、ループが発生するのを防ぐことが出来ます。ループガードはデフォルトでは、全てのポートで無効になっています。
ループ不整合の状態になっているポートで再びBPDUを受信すると、自動で復旧します。

〈Cisco機器での設定コマンド〉

スイッチでの設定方法にはインターフェース単位で有効化する方法とスイッチ全体で有効化する方法の2種類があります。それぞれのコマンドの違いに注意が必要です。

  • インターフェース単位で有効化する場合

    ループガードをインターフェース単位で有効化する場合、次のコマンドを使用します。
    (config-if)#spanning-tree guard loop

  • スイッチ全体で有効化する場合

    ループガードをスイッチ全体で有効化する場合、次のコマンドを使用します。
    (config)#spanning-tree loopguard default

まとめ

今回の記事では、STPの保護に関する拡張機能について書いてきました。
今回のポイントをまとめました。

  • ルートガード : 新規に追加されたスイッチがルートブリッジになることを防ぐ機能
  • BPDUガード : Portfastを設定したポートの誤った接続によるループを防ぐ機能
  • BPDUフィルター : 設定したポートでBPDUの送信を停止する機能
  • ループガード : ブロッキング状態のポートでBPDUを受信しなくなった場合にループが発生することを防ぐ機能

名前が似ているので、それぞれの機能についてしっかりと区別できるようにしておきましょう!

  • このエントリーをはてなブックマークに追加

PAGE TOP