CCNA受験料と試験概要
Cisco IOS Storm Control ネットワークループ err-disabled 障害対応

ネットワークループが発生すると、ブロードキャストやマルチキャストが雪だるま式に増加し、スイッチのCPU負荷が急上昇してネットワーク全体が通信不能に陥ります。原因が特定できるまでの間も被害は広がり続けるため、「自動的に封じ込める仕組み」を事前に設定しておくことが非常に重要です。

CiscoスイッチのStorm Control機能を使えば、トラフィックが一定の閾値を超えた際に自動的にポートをerr-disabled状態にし、被害を最小限に抑えることができます。この記事では、Storm Controlの仕組みから設定例・閾値の考え方・復旧方法・運用ルールまで、実務目線で解説します。

👷 現場での体験談

以前担当した現場で、早朝に「ネットワークが全部つながらない」という連絡が入りました。確認するとスイッチのCPU使用率が100%近くになっており、show interfacesを見るとブロードキャストカウンタが異常な速度で増加していました。原因はフロアのHUBにケーブルが二重接続されてループが発生していたことでした。

その後、Storm Controlをスイッチ全ポートに設定しました。数週間後に同様のループが発生したときは、該当ポートだけがerr-disabledになり、他の機器への影響はほぼゼロでした。事前設定の有無でこれだけ差が出ることを痛感した経験です。

ネットワークループとブロードキャストストームとは

Storm Controlの設定を理解するために、まず「なぜループがこれほど危険なのか」を整理します。

ループ発生のメカニズム

スイッチはブロードキャストパケットを受信すると、そのパケットを受信ポート以外の全ポートにフラッディングします。ループ構成(A→B→C→Aのような経路の輪)があると、フラッディングされたブロードキャストが再びスイッチに戻り、また全ポートにフラッディングされます。これが繰り返されることで、パケット数が爆発的に増加します。

この状態を「ブロードキャストストーム」と呼びます。帯域幅を使い切り、スイッチのCPUが過負荷になり、最終的にはネットワーク全体が通信不能になります。STPが設定されていない環境やSTPの設定ミスがある環境では、この被害が全スイッチに伝播します。

図1:ループ発生後のブロードキャストトラフィック増加イメージ

ループの主な発生原因

🔌
ケーブルの二重接続
HUBやスイッチのポート間をケーブルで誤って二重に配線してしまうケース。最も多い原因
💻
PC上でのループ
PCにNICが複数あり、両方をスイッチに接続してブリッジ設定になっているケース
⚙️
STPの設定ミス
PortFastやBPDU Guardの設定ミスにより、本来ブロックされるべきポートが転送状態になる
🔄
機器の無断増設
エンドユーザーが管理外のHUBやスイッチを勝手に追加してループを作るケース

Storm Controlとは何か・仕組みの解説

Storm Controlは、Ciscoスイッチのポートごとに設定できるトラフィック制御機能です。ポートを流れるブロードキャスト・マルチキャスト・未知のユニキャストトラフィックの割合または帯域幅を監視し、設定した閾値を超えた場合に指定したアクションを実行します。

監視対象のトラフィック種別

種別設定キーワード説明ループ時の増加
ブロードキャストbroadcast全機器宛てのパケット急激に増加
マルチキャストmulticastグループ宛てのパケット増加することあり
未知のユニキャストunicastMACテーブルにない宛先へのパケットMACフラッピング時に増加

実行できるアクション

アクション設定コマンド動作推奨度
シャットダウンaction shutdownポートをerr-disabledにする。最も封じ込め効果が高いループ対策に最適
トラップ通知のみaction trapSNMPトラップを送信するが通信は継続監視目的向け
アクションなし(抑制のみ)(デフォルト)閾値超過パケットをドロップするがポートは維持軽微な制御向け

ループ発生時のerr-disabled確認

Storm Controlがアクションを実行すると、対象ポートがerr-disabled状態になります。まず現状を把握するための確認コマンドを覚えておきましょう。

① ポートの状態一覧確認

Switch# show interfaces status

Port      Name               Status         Vlan       Duplex  Speed Type
Gi0/1                        connected      10         a-full  a-1000 10/100/1000BaseTX
Gi0/2                        err-disabled   10         a-full  a-1000 10/100/1000BaseTX
Gi0/3                        connected      10         a-full  a-1000 10/100/1000BaseTX

Status列にerr-disabledと表示されていれば、そのポートは管理的に無効化されており通信できない状態です。

② err-disabledの原因確認

複数の機能がerr-disabledを発生させる場合があります。以下のコマンドで原因を特定できます。

Switch# show interfaces GigabitEthernet0/2
GigabitEthernet0/2 is err-disabled
  Line protocol is down (err-disabled)
  ...

Switch# show errdisable recovery
ErrDisable Reason            Timer Status
-----------------            --------------
storm-control                Enabled (300 seconds)

③ Storm Controlの統計確認

Storm Controlが実際に動作しているかどうかは、以下のコマンドで確認できます。

Switch# show storm-control GigabitEthernet0/2
Interface  Filter State   Upper        Lower        Current
---------  -------------  -----------  -----------  ----------
Gi0/2      Forwarding     1.00%        1.00%        0.01%

Filter StateがForwardingなら正常動作中、Blockingならトラフィックが閾値を超えて抑制中です。

Storm Controlの設定例

基本設定(ループ対策に推奨)

アクセスポートのループ対策として最も一般的な設定例です。

Switch(config)# interface GigabitEthernet0/2
! ブロードキャストトラフィックが1%以上になったら制限
Switch(config-if)# storm-control broadcast level 1.00
! マルチキャストトラフィックが1%以上になったら制限
Switch(config-if)# storm-control multicast level 1.00
! 閾値超過時の動作をポートshutdownに設定
Switch(config-if)# storm-control action shutdown

上記設定により、指定ポートでループが発生してブロードキャスト/マルチキャストが閾値を超えると、自動的にポートがerr-disabledになります。

上限・下限閾値(leveling)の設定

Storm Controlでは上限(rising threshold)と下限(falling threshold)の2段階で閾値を設定できます。閾値を超えたらトラフィック抑制を開始し、下限を下回ったら抑制を解除する、という段階的な制御が可能です。

! 上限2%を超えたら抑制開始、0.5%を下回ったら抑制解除
Switch(config-if)# storm-control broadcast level 2.00 0.50

全アクセスポートへの一括設定(interface rangeの活用)

エンドユーザーが接続するアクセスポートには、一括でStorm Controlを設定するのが効率的です。

Switch(config)# interface range GigabitEthernet0/1 - 24
Switch(config-if-range)# storm-control broadcast level 1.00
Switch(config-if-range)# storm-control multicast level 1.00
Switch(config-if-range)# storm-control action shutdown
⚠ アップリンクポートには設定しない Storm Controlはエンドユーザー接続のアクセスポートに設定するものです。コアスイッチへのアップリンクポートや、サーバーが接続された基幹ポートに設定すると、正常なトラフィックが閾値を超えた際に誤ってerr-disabledになるリスクがあります。ポートの役割を確認した上で設定してください。

閾値の考え方と設定値の目安

Storm Controlの閾値設定は、平常時のトラフィックを把握した上で設定することが大原則です。低すぎると通常通信でもポートが停止し、高すぎるとループを検知できません。

閾値の単位

単位コマンド例内容
帯域幅の割合(%)level 1.00ポートの帯域幅に対する割合。最もよく使われる
bps指定level bps 1000000絶対値(bps)で指定。1Mbpsなど具体的な値で管理したい場合
pps指定level pps 1000パケット数(pps)で指定。機種によって使用可否が異なる

環境別の推奨閾値の目安

図2:環境別の推奨ブロードキャスト閾値の目安(帯域幅に対する割合)
環境推奨閾値の目安理由
一般的なオフィスPC1〜2%通常のPC通信でブロードキャストが1%を超えることはほぼない
DHCP多用の環境3〜5%DHCP Discoverはブロードキャストのため、低すぎると誤作動の恐れ
AP(無線LAN)接続ポート3〜5%多数の端末が接続するためブロードキャストが多め
サーバー接続ポート設定しないか10%以上サーバーは正常動作でも大量のブロードキャストを出す場合があり、誤検知リスクが高い
ℹ 閾値設定の前にベースラインを測定する 設定前に show interfaces GigabitEthernet0/X でinput/output rateを確認し、平常時のブロードキャスト量をおおよそ把握してから閾値を設定するのがベストプラクティスです。

err-disabledからの復旧方法

Storm Controlによってerr-disabledになったポートを復旧させる方法は2つあります。どちらの場合もループの原因を取り除いてから復旧させることが絶対条件です。

① 手動復旧(推奨)

ループの原因(二重配線・不正機器など)を確認・解消してから手動でポートを復旧させます。確認作業を挟めるため、最も安全な復旧方法です。

! ループ原因を除去してから実施すること
Switch# configure terminal
Switch(config)# interface GigabitEthernet0/2
Switch(config-if)# shutdown
Switch(config-if)# no shutdown

② 自動復旧の設定

遠隔地の拠点や夜間に作業員がいない環境など、手動復旧が困難な場合は自動復旧を設定することもできます。設定した時間が経過すると、自動的にポートが復旧します。

! storm-controlが原因のerr-disabledの自動復旧を有効化
Switch(config)# errdisable recovery cause storm-control
! 300秒(5分)後に自動復旧
Switch(config)# errdisable recovery interval 300
🚨 自動復旧の注意点 自動復旧を使う場合、ループの原因が解消されていない状態でポートが復旧すると再びerr-disabledになります。これを繰り返すと「定期的に通信が途絶する」という断続的な障害になります。自動復旧を使う場合は、必ず監視ツールでアラートを設定し、ループ原因の早期発見・解消ができる体制を整えてください。

Storm Controlと他のループ対策機能との使い分け

Storm ControlはCiscoスイッチが持つループ対策機能の1つですが、STPやBPDU Guardなど他の機能と組み合わせることでより強固な対策ができます。

図3:ループ対策機能の特性比較
機能動作タイミング特徴設定難易度
Storm Controlストーム発生後に検知・封じ込めループが起きても被害を最小化。事後対応型低〜中
STP(スパニングツリー)ループを論理的に防止(予防型)正しく設定されていれば最も根本的な対策中〜高
BPDU GuardBPDUを受信したポートを即シャットダウンPortFastポートへの不正スイッチ接続を防ぐ
Loop GuardBPDUが届かなくなったポートをブロックSTPの片方向障害によるループを防ぐ

理想的な構成はSTP + BPDU Guard + Storm Controlの組み合わせです。STPで予防し、BPDU Guardで不正スイッチの接続を遮断し、それでもループが起きた場合にStorm Controlが封じ込めるという多層防御の考え方です。

運用上の注意点まとめ

注意点内容・対策
閾値は平常時トラフィック基準で設定設定前にshow interfacesでブロードキャストの平常値を把握し、その5〜10倍程度を閾値にするのが安全
低すぎる閾値は正常通信でも停止する恐れ0.1%など極端に低い値を設定するとDHCP更新やARPなどの正常なブロードキャストでもerr-disabledになる
アップリンクポートには設定しないコアスイッチへの上流ポートや基幹ポートには設定しない。トラフィック量が多く誤検知リスクが高い
自動復旧はループ原因解消後に使う原因未解消のまま自動復旧すると、err-disabled→復旧→再びerr-disabledを繰り返す断続障害になる
show storm-controlで定期的に統計を確認Blockingが頻発しているポートは閾値が低すぎるか、ループの予兆がある可能性がある
STPやBPDU Guardと組み合わせるStorm Control単体ではなく多層防御としてSTP・BPDU Guardとセットで設計するのがベスト

まとめ

Storm Controlは、ループやトラフィック異常時にポートをerr-disabledにしてネットワーク全体の停止を防ぐ有効な機能です。設定自体はシンプルですが、閾値の設定と運用ルールの整備がセットで必要です。

  • Storm Controlはブロードキャスト・マルチキャスト・未知のユニキャストを監視し、閾値超過でアクションを実行する
  • action shutdown を設定すると閾値超過でポートがerr-disabledになる
  • 閾値は平常時のトラフィックを計測した上で、環境に合った値を設定する
  • 復旧時は必ずループ原因を取り除いてからshutdown/no shutdownを実施する
  • STP・BPDU Guardと組み合わせることで多層的なループ対策になる
  • アクセスポートへの設定が基本。アップリンクポートへの設定は慎重に判断する

Storm Controlを設定しておくだけで、ループ発生時の被害範囲を劇的に小さくできます。大規模ネットワークほど、正しい閾値設定と運用ルールの整備をセットで導入することが効果的です。