【Cataslytスイッチのエラー対応】誤接続によるBPDUガードをshut/no shutで直す

スポンサーリンク




ネトエンの仕事の話

Catalystスイッチでたまに発生するBPDUガードのエラー。

エラー発生中は通信ができない状態になるので早めの対応が必要です。

この記事は、

  • BPDUガードが出たが何を確認すればいいか分からない
  • BPDUガードの原因が分からない
  • BPDUガードの解除方法が分からない

こんな方に向けてBPDUガードについて説明します。

 

 

スポンサーリンク

BPDUガードの対処法

BPDUガードはポートをエラーディセーブルという状態にして強制的にダウンさせる動きをします。
ダウンしたポートは手動による無効化・有効化によってエラーディセーブルを解除でき、再度使えるようになります。

BPDUガードは特定のポートで発生するので、そのポートを使わない通信は問題なく使用できます。

無効化・有効化の解除は、エラーディセーブルになっているポートのインターフェースコンフィグレーションモードでこの2行を実行します。

shutdown
no shutdown

 

ですが、BPDUガードが発生したからといってすぐに手動による解除はオススメできません。
ループ防止機能なので、意図せずループとなる接続になってないか確認を行ってから解除するようにしてください。

 

BPDUガードとは

そもそもBPDUガードは何か、再確認します。

BPDUガードとはスイッチがBPDUフレームを受信した際にそれを検知する機能です。

BPDUフレームは、ネットワーク機器のスイッチが出す情報です。
スパニングツリーというネットワークのループを未然に防止するプロトコルです。

事務所に設置するようなL2スイッチは主にパソコンを接続します。通常ネットワーク機器を接続しないポートについてはループの危険が無いのですぐにリンクアップするPortFastという設定を行います。
この設定がないとリンクアップまで10秒ほどかかってしまいます。
それくらいなら・・と思うかもしれませんが、Skypeで通話中にLANケーブルが抜けてしまった時に再接続して通話できるまでの10秒は長いです。

ですがPortFastの設定を行うと、誤ってネットワーク機器を接続した場合でもすぐにリンクアップしてしまうので、接続方法によってはループが発生してしまいます。

そこでBPDUガードを設定することにより、ネットワーク機器が接続されたポートをダウンさせてループを未然に防止します。

 

BPDUガードが発生した時のログ

まずはshow loggingでBPDUガードのログを確認します。

show logging
BPDUガードが発生した場合はこのようなログが出力されます。
NOV 1 xx:xx:xx.xxx: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU on port Gi1/0/1 with BPDU Guard enabled.Disabling port.
NOV 1 xx:xx:xx.xxx: %PM-4-ERR_DISABLE: bpduguard error detected on Gi1/0/1, putting Gi1/0/1 in err-disable state

 

1行目はGi1/0/1のポートでBPDUパケットを受信したというメッセージ
2行目はBPDUガードによりGi1/0/1のポートを無効化させたというメッセージ

この2つのメッセージが出ていればBPDUパケットを受信した事によって、その受信したポートが無効になった事がわかります。

ポートが無効になっているのでそのポートに接続されている機器とは通信ができない状態ですが、このエラーは新たに機器が接続されたときに発生するので元々できていた通信については影響が無いと考えていいでしょう。

 

自動で復旧する設定か確認する

BPDUガードによるエラーディセーブルは自動復旧させる設定もあります。
デフォルトで自動回復は無効になっているので念のため確認しましょう。

確認コマンド

show running-config

自動復旧の設定値

errdisable recovery cause bpduguard

この設定値がある場合は自動でエラーディセーブルが解除されます。

エラーの原因になっているBPDUフレームを受信し続けている限り、解除後すぐにエラーディセーブルを繰り返すことになります。

解除までのデフォルトの時間は5分なので急いでいる場合は、手動で解除します。

 

原因を排除する

BPDUガードの原因を排除せずエラーディセーブルを解除しても再度BPDUガードが発生するだけで解決になりません。

繰り返しになりますがBPDUガードの原因は、

スイッチの誤接続です。

まずはエラーが発生したスイッチのポートにLANケーブルを挿した人がいないかを確認します。
そして、LANケーブルを抜いてもらいましょう。
そこまで確認ができたら解除に進みます。

自動解除の設定がある場合は、5分間経過して使えるようようになっているか確認しても良いです。

 

手動で解除する

手動で解除する前にインタフェースの状態を確認します。

ポートがGi1/0/1だった場合の確認コマンド

show interface gigabitethernet1/0/1

エラーディセーブルの状態

gigabitethernet1/0/1 is down, line protocol is down (err-disabled)

err-disabledが表示されていることを確認しましょう。

この確認を飛ばして思い込みで解除コマンドを実行すると、正常なポートを無効化する事になるので必ず確認します。

ポートがGi1/0/1だった場合の解除コマンドです。
エラーディセーブルになっているスイッチへログインして、enableで特権モードに移行してから実行してください。

configer terminal
interface gigabitethernet1/0/1
shutdown
no shutdown
quit
1行目のconfiger terminalで編集モードに変更
2行目のinterface gigabitethernet1/0/1でインターフェースモードに変更
黄色の線のあるgigabitethernet1/0/1はエラーディセーブルが発生しているポートに書き換えてください。
3行目のshutdownで無効化
4行目のno shutdownで有効化
5行目のquitで特権モードまで戻る

まとめ

BDPUガードはループを未然に防止してくれる安全装置です。
エラーになったらまず状態の確認を行ってから手動で解除を行いましょう。
解除自体に難しいコマンドはないので、一度対応すると次からは資料を見なくても対応できるかもしれません。

 

参考:Cisco公式ページ

タイトルとURLをコピーしました