BPDUガードの設定方法/設定例(spanning-tree bpduguard)【検証】

本記事ではBPDUガードの設定変更の方法についてご紹介させて頂きます。

▼ あなたにオススメな記事 ▼

>>参考記事: STPの基本〜応用まで!STPの仕様と検証結果の記事をまとめました!

【BPDUガード 設定方法/設定例】検証前提

設定要件及び検証ネットワークは以下の通りです。

設定要件

以下の要件に基づきBPDUガードの設定を実装する。

  • SW1のE0/0(PC向けポート)にPortfast・BPDUガードを設定する事。
  • SW1のE0/1(SW向けポート)にPortfast・BPDUガードを設定する事。
  • ポートエラー状態(err-disabled)時は自動復旧させない事。

ネットワーク図

BPDUガードの検証

【BPDUガード 設定方法/設定例】事前確認

検証前の各機器の設定内容及び各種ログは以下の通りです。

SW1設定確認

以下の通り、事前の設定値を確認します。

SW1#show running-config interface e0/0
interface Ethernet0/0
 switchport access vlan 5
 switchport mode access

SW1#show running-config interface e0/1
interface Ethernet0/1
switchport access vlan 5
switchport mode access

SW1#show spanning-tree vlan 5 | begin Interface
Interface           Role Sts Cost      Prio.Nbr Type
——————- —- — ——— ——– ——————————–
Et0/0               Desg FWD 100       128.1    Shr <—STPで動いている事を意味する
Et0/1               Root FWD 100       128.2    Shr <—STPで動いている事を意味する
SW1#show spanning-tree interface e0/0 detail | include BPDU
   BPDU: sent 1912, received 0 <—PC向けポートではBPDU受信カウントは0 (BPDUガードは発動しない想定)

SW1#show spanning-tree interface e0/1 detail | include BPDU
   BPDU: sent 102, received 104 <—SW向けポートではBPDU受信カウントは1以上(BPDUガードにてポートエラ状態になる想定)

【BPDUガード 設定方法/設定例】設定変更作業

以下の通り、Portfast及びBPDUガードを有効化します。

【設定コマンド】
SW1(config)#int range e0/0-1
SW1(config-if-range)#spanning-tree portfast  <—Portfastの有効化

↓↓Portfastの設定をすると以下の警告(接続機器がSW等でないかメッセージ)が出力される。
%Warning: portfast should only be enabled on ports connected to a single host.
 Connecting hubs, concentrators, switches, bridges, etc… to this interface when portfast is enabled, can cause temporary bridging loops.
 Use with CAUTION

%Portfast has been configured on Ethernet0/0 but will only have effect when the interface is in a non-trunking mode.

SW1(config-if-range)#spanning-tree bpduguard enable <—BPDUガードの有効化
↓↓e0/1(SW向けポート)ではBPDUを受信した事により、ポートエラー状態へ遷移
*Nov  5 18:01:54.658: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Et0/1 with BPDU Guard enabled. Disabling port.
*Nov  5 18:01:54.658: %PM-4-ERR_DISABLE: bpduguard error detected on Et0/1, putting Et0/1 in err-disable state

【BPDUガード 設定方法/設定例】正常性確認

要件通り設定変更がされているか確認します。

SW1設定確認

検証後の各機器の設定内容及び各種ログは以下の通りです。

SW1#show running-config interface e0/0
interface Ethernet0/0
switchport access vlan 5
switchport mode access
 spanning-tree portfast <—Portfastの有効化を意味する
 spanning-tree bpduguard enable <—BPDUガードの有効化を意味する

SW1#show running-config interface e0/1
interface Ethernet0/1
switchport access vlan 5
switchport mode access
 spanning-tree portfast <—Portfastの有効化を意味する
 spanning-tree bpduguard enable <—BPDUガードの有効化を意味する

SW1#show spanning-tree vlan 5 | begin Interface
Interface           Role Sts Cost      Prio.Nbr Type
——————- —- — ——— ——– ——————————–
Et0/0               Desg FWD 100       128.1    Shr Edge  <—「Shr Edge」=Portfastの有効化を意味する

SW1#show interfaces status err-disabled 
Port      Name               Status       Reason               Err-disabled Vlans
Et0/1                        err-disabled bpduguard <— e0/0のerr-disabledの原因が「BPDUガード」である事を確認

SW1#show spanning-tree interface e0/0 detail | include BPDU
   BPDU: sent 2010, received 0<—Portfast設定後のBPDU送出カウントを確認

SW1#show spanning-tree interface e0/1 detail | include BPDU
   e0/1はerr-disabled状態の為、出力されない。

【BPDUガード 設定方法/設定例】ポートエラー状態(err-disabled)からの復旧検証

e0/1ポートはSW(STPが有効化されているSW)が接続されている為、Portfast及びBPDUガードを無効化する。その後、e0/1のポート復旧作業を実施する。

【Portfast・BPDUガードの無効化設定】
SW1(config)#int e0/1
SW1(config-if)#no spanning-tree portfast  <—Portfastの無効化
SW1(config-if)#no spanning-tree bpduguard enable <—BPDUガードの無効化
【e0/1のポート復旧設定】
SW1(config)#int e0/1
SW1(config-if)#shutdown <—shutdownコマンドでポートエラー状態(err-disabled)を解消
SW1(config-if)#no shutdown <—no shutdownコマンドでポート解放

復旧している事を確認する

SW1#show interfaces status err-disabled
e0/1はerr-disabled状態から復旧したの為、出力されない。 

SW1#show interfaces e0/1 | include line protocol
Ethernet0/1 is up, line protocol is up (connected)<—UPしている事を確認

【BPDUガード 設定方法/設定例】まとめ

最後までお読み頂きましてありがとうございます。

BPDUガードの設定変更方法について以下の点は理解しておきましょう!

▼BPDUガードの設定方法はコチラ!▼

・Portfastが設定されている全ポートでBPDUガードを有効化する場合(グローバルで有効化)

【設定コマンド】
SW(config)# spanning-tree portfast bpduguard default

・Portfastの設定問わず各ポート単位でBPDUガードを有効化する場合(各ポートで有効化)

【設定コマンド】
SW(config)# interface [インターフェース名&番号]
SW(config-if)# spanning-tree bpduguard enable

※本記事では「各ポートでBPDUガードを有効化する場合」の検証内容を紹介しております。