本記事ではBPDUガードの設定変更の方法についてご紹介させて頂きます。
>>参考記事: 「STPの基本〜応用まで!STPの仕様と検証結果の記事をまとめました!」
【BPDUガード 設定方法/設定例】検証前提
設定要件及び検証ネットワークは以下の通りです。
設定要件
以下の要件に基づきBPDUガードの設定を実装する。
- SW1のE0/0(PC向けポート)にPortfast・BPDUガードを設定する事。
- SW1のE0/1(SW向けポート)にPortfast・BPDUガードを設定する事。
- ポートエラー状態(err-disabled)時は自動復旧させない事。
ネットワーク図
【BPDUガード 設定方法/設定例】事前確認
検証前の各機器の設定内容及び各種ログは以下の通りです。
SW1設定確認
以下の通り、事前の設定値を確認します。
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
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で動いている事を意味する
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ガードの有効化を意味する
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ガード」である事を確認
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のポート復旧作業を実施する。
SW1(config)#int e0/1
SW1(config-if)#no spanning-tree portfast <—Portfastの無効化
SW1(config-if)#no spanning-tree bpduguard enable <—BPDUガードの無効化
SW1(config)#int e0/1
SW1(config-if)#shutdown <—shutdownコマンドでポートエラー状態(err-disabled)を解消
SW1(config-if)#no shutdown <—no shutdownコマンドでポート解放
復旧している事を確認する
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ガードを有効化する場合」の検証内容を紹介しております。