ストームコントロール(storm control)について

ストームコントロールとは

ストームコントロールとは、ネットワーク上でのブロードキャストやマルチキャスト、不正なフラッディングトラフィックなどの増加を防ぐための機能です。ストームコントロールはこのようなトラフィックの急増を監視して、閾値を超えた場合にはトラフィックを制限するかドロップすることでネットワークを保護します。

ストームコントロールの種類

ストームコントロールは、次の3種類のトラフィックに対して制御を行います。

  1. ブロードキャストトラフィック:
    • ブロードキャストフレーム(すべてのホストが受信するトラフィック)が大量に発生した際、これを制限します。通常、ARPリクエストなどがこのトラフィックに該当します。
  2. マルチキャストトラフィック:
    • マルチキャストアドレスを宛先とするトラフィックを制御します。大量のマルチキャストフレームが発生すると、マルチキャストグループに参加しているホストやネットワークに負担をかけます。
  3. ユニキャストトラフィック(未知のユニキャスト):
    • 送信先のMACアドレスがスイッチのMACアドレステーブルに登録されていない(未知の)ユニキャストトラフィックを制御します。このトラフィックは、MACアドレスが不明なため、スイッチはブロードキャストのようにすべてのポートにフレームを送信してしまいます。

ストームコントロールの設定

基本構文

ストームコントロールを設定するインターフェイスを指定します。
Switch(config)#interface interface-id

ブロードキャスト、マルチキャスト、またはユニキャストのストーム制御の設定をします。
Switch(config-if)#storm-control {broadcast |multicast |unicast } level { level [ level-low ] | bps bps [ bps-low ] | pps pps [ pps-low ]}

コマンド内容
broadcast |multicast |unicast ブロードキャスト、マルチキャスト、またはユニキャスト トラフィックを指定します。
level { level [ level-low ]上昇しきい値レベルを帯域幅のパーセンテージを指定します。level-lowを使用すると、下限閾値を指定できます。
bps bps [ bps-low ]昇しきい値レベルをビット/秒で指定します。bps-lowを使用すると、下限閾値を指定できます。
pps pps [ pps-low ]}上昇しきい値レベルをパケット/秒で指定します。pps-lowを使用すると、下限閾値を指定できます。

ストームが検出されたときに実行されるアクションを指定します。デフォルトでは、トラフィックをフィルタリングし、トラップを送信しません。
Switch(config-if)#storm-control action { shutdown | trap }

コマンド内容
shutdownポートを無効にします。
trapsnmpトラップを生成します。

設定例

この設定では、インターフェースの帯域幅の70%を超えるブロードキャストトラフィックが発生するとトラフィックをフィルタリングしてシャットダウンします。

ストームコントロールの設定(オプション)

小さなフレームの検出

67 バイト未満の受信 VLAN タグ付きパケットは、小さいフレームとみなされます。この小さなフレームが指定されたレート(しきい値)で到着した場合にポートをエラー ディセーブルになるように設定できます。

スイッチのスモールフレームレート到着機能を有効にします。
Switch(config)#errdisable detect cause small-frame

指定した errdisable 状態から回復する時間を指定します。
Switch(config)#errdisable recovery interval interval

エラー ディセーブルのポートが小さなフレームの到着によってエラー ディセーブルになった後に自動的に再度イネーブルになるように、ポートの回復時間を設定します。
Switch(config)#errdisable recovery cause small-frame

インターフェイスのしきい値レートを設定して、受信パケットをドロップし、ポートをエラー ディセーブルにします。範囲は 1 ~ 10,000 パケット/秒 (pps) です。
Switch(config)#interface interface-id
Switch(config-if)#small-frame violation rate pps

保護されたポートの構成

保護ポートを構成すると、保護ポート同士では通信(ユニキャスト、マルチキャスト、ブロードキャスト)を転送せず、保護ポートと保護されていないポートの通信は通常通り通信を転送する動作になります。

switchport protectedコマンドを使用して保護ポートを構成します。
Switch(config)#interface interface-id
Switch(config-if)#switchport protected

ポートブロッキング

スイッチは宛先 MAC アドレスが不明なパケットをすべてのポートからフラッディングします。このようなパケットが保護されたポートに転送される場合、セキュリティ上の問題が発生する可能性があります。ポートブロッキングを使用することで、ポートが不明なパケットをほかのポートにフラッディングするのを防ぐことが出来ます。


Switch(config)#interface interface-id
Switch(config-if)#switchport block multicast
Switch(config-if)#switchport block unicast

プロトコルストームプロテクションの構成

特定のプロトコル(ARP、DHCP、IGMP)に対するパケット数制限(rate limiting)を設定することが出来ます。

Switch(config)#psp { arp | dhcp | igmp } pps value

コマンド内容
arp | dhcp | igmp制限したいプロトコルを指定します。
pps valueppsコマンドの後に数字を指定することで1秒当たりのパケット数の閾値を設定できます。範囲は5~50パケットです。

プロトコルストーム保護のエラーディセーブル検出を有効にします。この機能が有効な場合、仮想ポートはエラー ディセーブルになります。
Switch(config)#errdisable detect cause psp

エラーディセーブルになった時の自動回復時間を設定します。範囲は30~86400(秒)です。
Switch(config)#errdisable recovery interval time

参考文献

Chapter: Configuring Port-Based Traffic Control