この章では、Catalyst 3550スイッチにポートベースのトラフィック制御機能を設定する方法について説明します。
ストーム制御の設定
ストーム制御の概要
ストーム制御は、LAN上のトラフィックが、いずれかの物理インターフェイスのブロードキャスト、マルチキャスト、またはユニキャストのストームによって影響されないようにします。LANストームは、パケットがLANにフラッディングした場合に発生するもので、過剰なトラフィックが生成され、ネットワーク パフォーマンスが低下します。プロトコル スタックの実装、ネットワーク構成でのエラー、またはユーザによるDoS攻撃が、ストームの原因となります。
ストーム制御(またはトラフィック抑制)は、インターフェイスからスイッチング バスへ流れるパケットをモニタし、そのパケットがユニキャスト、マルチキャスト、またはブロードキャストのいずれであるかを判別します。スイッチは、1秒間で受信された指定されたタイプのパケット数をカウントし、あらかじめ定義された抑制レベル スレッシュホールドと計測値を比較します。
ストーム制御は、トラフィック アクティビティを測定するために次のいずれかの方法を使用します。
- 帯域幅 ― ブロードキャスト、マルチキャスト、またはユニキャスト トラフィックが使用できる、ポートの利用可能な総帯域幅に対する割合
- トラフィック速度 ― ブロードキャスト、マルチキャスト、またはユニキャスト パケットが受信されたときの1秒あたりのパケット数(Cisco IOS Release 12.1(22)EA1以降)
いずれの方法も、上限のスレッシュホールドに到達するとポートがトラフィックをブロックします。トラフィックの速度が下限スレッシュホールド(指定されている場合)を下回るまでポートはブロックされたままになり、下回ると通常の転送が再開されます。下限抑制レベルが指定されていない場合、スイッチはトラフィックの速度が上限抑制レベルを下回るまですべてのトラフィックをブロックします。一般的に、スレッシュホールドのレベルが高くなると、ブロードキャスト ストームに対する保護の効果が薄くなります。
図21-1 のグラフは、一定時間におけるインターフェイス上のブロードキャスト トラフィック パターンを示しています。この例は、マルチキャストおよびユニキャスト トラフィックにも適用できます。この例では、転送されているブロードキャスト トラフィックが、タイム インターバルT1〜T2間およびT4〜T5間で設定されたスレッシュホールドを上回っています。特定のトラフィックの量がスレッシュホールドを上回ると、そのタイプのすべてのトラフィックは次の一定時間にわたり、廃棄されます。したがって、ブロードキャスト トラフィックはT2およびT5のあとのインターバルではブロックされています。次のタイム インターバル(たとえばT3)では、ブロードキャスト トラフィックがスレッシュホールドを上回らなければ、再度転送されます。
図21-1 ブロードキャスト ストーム制御の例
ストーム制御抑制レベルと1秒のタイム インターバルの組み合わせにより、ストーム制御アルゴリズムの動作を制御します。スレッシュホールドが高いほど、通過できるパケットが多くなります。
各トラフィック タイプのスレッシュホールドの値を設定するには、 storm-control インターフェイス コンフィギュレーション コマンドを使用します。
ストーム制御のデフォルト設定
デフォルトでは、ユニキャスト、ブロードキャスト、およびマルチキャストのストーム制御はスイッチでディセーブルになっています。つまり抑制レベルは100%であり、トラフィックには制限がありません。
ストーム制御およびスレッシュホールド レベルの設定
ポートにストーム制御を設定して特定のタイプのトラフィックに使用するスレッシュホールド レベルを入力します。
ただし、ハードウェアの制約や、さまざまなサイズのパケットがカウントされる動作のため、スレッシュホールドの割合には誤差が生じます。着信トラフィックを構成するパケットのサイズによっては、実際のスレッシュホールドは、数パーセント程度、設定されたレベルと異なる場合があります。
ストーム制御とスレッシュホールド レベルを設定するには、イネーブルEXECモードで次の手順を実行します。
ストーム制御をディセーブルにするには、 no storm-control { broadcast | multicast | unicast } level インターフェイス コンフィギュレーション コマンドを使用します。
次に、ポートでユニキャスト ストーム制御をイネーブルにし、上限抑制レベルを87%、下限抑制レベルを65%にする例を示します。
Switch(config)# interface fastethernet0/1
Switch(config-if)# storm-control unicast level 87 65
次に、ポートでブロードキャスト アドレス ストーム制御をイネーブルにし、レベルを20%にする例を示します。ブロードキャスト トラフィックが、トラフィック ストーム制御インターバル内のポートの使用可能な総帯域幅の設定レベルの20%を超えた場合、スイッチはトラフィック ストーム制御インターバルが終了するまでブロードキャスト トラフィックをすべて廃棄します。
Switch(config)# interface fastethernet0/1
Switch(config-if)# storm-control broadcast level 20
保護ポートの設定
一部のアプリケーションでは、同一スイッチのポート間でトラフィックが転送されないようにすることにより、あるネイバによって生成されたトラフィックを別のネイバが認識しないようにする必要があります。このような環境では、保護ポートを使用すれば、スイッチのポート間でユニキャスト、ブロードキャスト、またはマルチキャスト トラフィックの交換は行われません。
- 保護ポートは、ほかの保護ポートにいかなるトラフィック(ユニキャスト、マルチキャスト、またはブロードキャスト)も転送しません。レイヤ2では、保護ポート間にデータ トラフィックを転送できません。PIMパケットのような制御トラフィックのパケットはCPUで処理されてからソフトウェアで転送されるため、これらのみが転送されます。保護ポート間を通過するすべてのデータ トラフィックは、レイヤ3デバイスを経由して転送する必要があります。
- 保護ポート/非保護ポート間の転送動作は、通常どおり行われます。
- IEEE 802.1Qトランクでは、保護ポートがサポートされています。
物理インターフェイスまたはEtherChannelグループに保護ポートを設定できます。ポート チャネルについて保護ポートをイネーブルにすると、ポート チャネル グループ内の全ポートがイネーブルになります。
ポートを保護ポートとして定義するには、イネーブルEXECモードで次の手順を実行します。
保護ポートをディセーブルにするには、 no switchport protected インターフェイス コンフィギュレーション コマンドを使用します。
Switch(config)# interface fastethernet0/1
Switch(config-if)# switchport protected
ポート ブロッキングの設定
デフォルトでは、宛先MACアドレスが不明のパケットは、すべてのポートにフラッディングされます。不明のユニキャストおよびマルチキャスト トラフィックが保護ポートに転送されると、セキュリティ上の問題が発生することがあります。
不明のユニキャストまたはマルチキャスト トラフィックがポート間で転送されないようにするため、不明のユニキャストまたはマルチキャスト パケットをブロックするようにポート(保護ポートまたは非保護ポート)を設定できます。
インターフェイスでのフラッディング トラフィックのブロック
マルチキャストおよびユニキャスト パケットのフラッディングをインターフェイスでディセーブルにするには、イネーブルEXECモードで次の手順を実行します。
インターフェイスをトラフィックがブロックされないデフォルトの状態に戻すには、 no switchport block { multicast | unicast }インターフェイス コンフィギュレーション コマンドを使用します。
次に、ポートでユニキャストおよびマルチキャスト フラッディングをブロックする例を示します。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# switchport block multicast
Switch(config-if)# switchport block unicast
ポートでの通常の転送の再開
ポート上で通常の転送を再開するには、イネーブルEXECモードで次の手順を実行します。
ポート セキュリティの設定
ポート セキュリティ機能を使用すると、ポートへのアクセスが許可されたステーションのMACアドレスを制限および識別してインターフェイスへの入力を制限できます。セキュア ポートにセキュアMACアドレスを割り当てると、ポートは、定義されたアドレス グループ以外の送信元アドレスを持つパケットを転送しません。
ポート セキュリティの概要
セキュアMACアドレス
スイッチでは、次のタイプのセキュアMACアドレスを設定できます。
- スタティック セキュアMACアドレス ― switchport port-security mac-address mac-address インターフェイス コンフィギュレーションを使用して手動で設定されます。これらはアドレス テーブルに格納され、スイッチの実行コンフィギュレーションに追加されます。
- ダイナミック セキュアMACアドレス ― ダイナミックに学習されます。これらはアドレス テーブル内にのみ格納され、スイッチが再起動するときに削除されます。
- 固定( sticky )セキュアMACアドレス ― ダイナミックに学習または手動で設定されます。これらはアドレス テーブル内に格納され、実行コンフィギュレーションに追加されます。これらのアドレスがコンフィギュレーション ファイルに保存されている場合は、スイッチを再起動しても、インターフェイスはダイナミックな学習を再度行う必要はありません。固定セキュア アドレスは手動で設定できますが、この方法は推奨しません。
固定学習 をイネーブルにすると、ダイナミックMACアドレスを固定セキュアMACアドレスに変換し、それらを実行コンフィギュレーションに追加するように、インターフェイスを設定できます。固定学習をイネーブルにするには、 switchport port-security mac-address sticky インターフェイス コンフィギュレーション コマンドを入力します。このコマンドを入力すると、インターフェイスはすべてのダイナミック セキュアMACアドレス(固定学習がイネーブルになる前にダイナミックに学習されたアドレスを含む)を、固定セキュアMACアドレスに変換します。
固定セキュアMACアドレスは、コンフィギュレーション ファイル(スイッチの再起動時に使用されるスタートアップ コンフィギュレーション)に、自動的には格納されません。コンフィギュレーション ファイルに固定セキュアMACアドレスが保存されている場合は、スイッチを再起動するときに、インターフェイスはこれらのアドレスを再学習する必要がありません。設定は保存しないと失われます。
固定学習がディセーブルの場合、固定セキュアMACアドレスはダイナミック セキュア アドレスに変換されて動作中のコンフィギュレーションから削除されます。
セキュア ポートまたはVLAN上の使用できるMACアドレスの最大数は、アクティブなSwitch Database Management(SDM)テンプレートによって決定されます。SDMテンプレートの設定については、 ユーザが選択した機能に対するシステム リソースの最適化 を参照してください。
セキュリティ違反
セキュリティ違反とは、次のいずれかの状況が発生したときです。
- セキュアMACアドレスが最大数までアドレス テーブルに追加され、アドレス テーブルにないMACアドレスを持つステーションが、インターフェイスにアクセスしようとした場合。
- あるセキュア インターフェイスで学習または設定されたアドレスが、同一VLAN内の別のセキュア インターフェイスで認識された場合。
違反発生時の対処方法に関して、次の3つの違反モードのいずれかにインターフェイスを設定できます。
- protect ― セキュアMACアドレスの数がポートに許容された限界に達した場合、十分な数のセキュアMACアドレスを削除するまで、不明の送信元アドレスを持つパケットは廃棄されます。セキュリティ違反の発生は通知されません。
- restrict ― セキュアMACアドレスの数がポートに許容された限界に達した場合、十分な数のセキュアMACアドレスを削除するか、または許容されるアドレスの最大数を増やすまで、不明の送信元アドレスを持つパケットは廃棄されます。セキュリティ違反の発生は通知されません。具体的には、SNMPトラップが送信され、Syslogメッセージが記録され、違反カウンタが増加します。
- shutdown ― このモードでは、ポートのセキュリティ違反が発生すると、インターフェイスが即座にエラーディセーブルになり、ポートLEDがオフになります。また、SNMPトラップを送信し、Syslogメッセージを記録し、違反カウンタが増加します。セキュア ポートがエラー ディセーブル ステートになった場合は、 errdisable recovery cause psecure-violation グローバル コンフィギュレーション コマンドを使用することにより、ステートを変更できます。また、 shutdown および no shutdown インターフェイス コンフィギュレーション コマンドを入力することにより、手動でポートをイネーブルに戻すこともできます。デフォルトはこのモードに設定されています。
表21-1 に、インターフェイスにポート セキュリティを設定した場合の、違反モードおよび動作を示します。
|
トラフィックの転送 1 |
エラー メッセージの表示 2 |
|||||
|---|---|---|---|---|---|---|
ポート セキュリティのデフォルト設定
表21-2 に、インターフェイスに対するポート セキュリティのデフォルト設定を示します。
ポート セキュリティ設定時の注意事項
ポート セキュリティの設定時は、次の注意事項に従ってください。
- ポート セキュリティは、スタティック アドレス ポート、トランク ポート、またはIEEE 802.1Qトンネル ポート上でのみ設定できます。
- セキュア ポートは、ダイナミック アクセス ポートにできません。
- セキュア ポートは、Switched Port Analyzer(SPAN;スイッチド ポート アナライザ)の宛先ポートにできません。
- セキュア ポートは、Fast EtherChannelやGigabit EtherChannelポート グループに属すことができません。
- 音声VLANも設定されたインターフェイス上でポート セキュリティをイネーブルにする場合は、ポート上で許可されるセキュア アドレスの最大数を2にして、さらにアクセスVLANに許可されているセキュア アドレスの最大数を加えます。ポートがCisco IP Phoneに接続されている場合、IP Phoneには最大で2つのMACアドレスが必要になります。IP Phoneアドレスは音声VLAN上で学習されますが、アクセスVLAN上で学習される場合もあります。PCをIP Phoneに接続する場合、追加のMACアドレスが必要になります。
- インターフェイスのセキュア アドレスの最大値として入力した値が古い値よりも大きい場合、新しい値が古い設定値よりも優先されます。新しい値が古い値よりも小さく、インターフェイスに設定されたセキュア アドレス数が新しい値を超えている場合、コマンドは拒否されます。
- スイッチでは、固定セキュアMACアドレスのポート セキュリティ エージングをサポートしません。
表21-3 は、ポート セキュリティとポートに設定されている他の機能との互換性を要約したものです。
|
ダイナミック アクセス ポート 5 |
|
|
音声VLANポート 6 |
|
ポート セキュリティのイネーブル化と設定
ポートへのアクセスが許可されたステーションのMACアドレスを制限および識別する方法でインターフェイスへの入力を制限するには、イネーブルEXECモードで次の手順を実行します。
インターフェイスをデフォルトの非セキュア ポートに戻すには、 no switchport port-security インターフェイス コンフィギュレーション コマンドを使用します。固定学習がイネーブルの場合にこのコマンドを入力すると、固定学習アドレスは実行コンフィギュレーション内に残りますが、アドレス テーブルからは削除されます。ここで、すべてのアドレスがダイナミックに学習されます。
インターフェイスのセキュアMACアドレス数をデフォルトに戻すには、 no switchport port-security maximum value インターフェイス コンフィギュレーション コマンドを使用します。
違反モードをデフォルトのshutdownモードに戻すには、 no switchport port-security violation { protect | restrict }インターフェイス コンフィギュレーション コマンドを使用します。
固定学習をディセーブルにするには、 no switchport port-security mac-address sticky インターフェイス コンフィギュレーション コマンドを実行します。インターフェイスは固定セキュアMACアドレスをダイナミック セキュア アドレスに変換します。
アドレス テーブルからスタティック セキュアMACアドレスを削除するには、 clear port-security configured address mac-address イネーブルEXECコマンドを使用します。インターフェイスまたはVLAN上のすべてのスタティック セキュアMACアドレスを削除するには、 clear port-security configured interface interface-id イネーブルEXECコマンドを使用します。
アドレス テーブルからダイナミック セキュアMACアドレスを削除するには、 clear port-security dynamic address mac-address イネーブルEXECコマンドを使用します。インターフェイスまたはVLAN上のすべてのダイナミック アドレスを削除するには、 clear port-security dynamic interface interface-id イネーブルEXECコマンドを使用します。
アドレス テーブルから固定セキュアMACアドレスを削除するには、 clear port-security sticky address mac-address イネーブルEXECコマンドを使用します。インターフェイスまたはVLAN上のすべての固定アドレスを削除するには、 clear port-security sticky interface interface-id イネーブルEXECコマンドを使用します。
次に、ポートでセキュリティをイネーブルにし、セキュア アドレスの最大数を50に設定する例を示します。違反モードはデフォルト設定、スタティック セキュアMACアドレスは設定なし、固定学習はイネーブルにします。
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface fastethernet0/1
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 50
Switch(config-if)# switchport port-security mac-address sticky
次に、ポートにスタティック セキュアMACアドレスを設定し、固定学習をイネーブルにする例を示します。
Enter configuration commands, one per line. End with CNTL/Z.
Switch(config)# interface fastethernet0/2
Switch(config-if)# switchport mode access
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security mac-address 0000.02000.0004
Switch(config-if)# switchport port-security mac-address sticky
次に、ポートのVLAN 5で、セキュアMACアドレスの最大数を8に設定する例を示します。
Switch(config-if)# switchport port-security maximum 8 vlan 5
次に、ポート上で固定ポート セキュリティをイネーブルにし、データVLANおよび音声VLANにMACアドレスを手動で設定し、セキュア アドレスの最大数の合計を20に設定する例を示します(うち10はデータVLAN、10は音声VLAN用です)。
Switch(config)# interface FastEthernet1/0/1
Switch(config-if)# switchport access vlan 21
Switch(config-if)# switchport mode access
Switch(config-if)# switchport voice vlan 22
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security maximum 20
Switch(config-if)# switchport port-security violation restrict
Switch(config-if)# switchport port-security mac-address sticky
Switch(config-if)# switchport port-security mac-address sticky 0000.0000.0002
Switch(config-if)# switchport port-security mac-address 0000.0000.0003
Switch(config-if)# switchport port-security mac-address sticky 0000.0000.0001 vlan voice
Switch(config-if)# switchport port-security mac-address 0000.0000.0004 vlan voice
Switch(config-if)# switchport port-security maximum 10 vlan access
Switch(config-if)# switchport port-security maximum 10 vlan voice
ポート セキュリティ エージングのイネーブル化と設定
ポート セキュリティ エージングを使用すると、ポート上のスタティックおよびダイナミック セキュア アドレスにエージング タイムを設定できます。ポートごとに2種類のエージングがサポートされています。
- absolute ― ポートのセキュア アドレスは、指定のエージング タイムの経過後、削除されます。
- inactivity ― ポートのセキュア アドレスが削除されるのは、指定したエージング タイムの間、そのセキュア アドレスが非アクティブであった場合だけです。
この機能を使用すると、既存のセキュアMACアドレスを手動で削除しなくても、セキュア ポートでPCの削除や追加を実行でき、ポートのセキュア アドレスの数を制限することもできます。また、スタティックに設定されたセキュア アドレスのエージングについても、ポート単位でイネーブルまたはディセーブルに設定できます。
ポート セキュリティのエージング タイムを設定するには、イネーブルEXECモードで次の手順を実行します。
ポート上のすべてのセキュア アドレスに対してポート セキュリティ エージングをディセーブルにするには、no switchport port-security aging time インターフェイス コンフィギュレーション コマンドを使用します。スタティックに設定されたセキュア アドレスに対してだけエージングをディセーブルにするには、no switchport port-security aging static インターフェイス コンフィギュレーション コマンドを使用します。
次の例では、ポートのセキュア アドレスのエージング タイムを2時間に設定する方法を示します。
Switch(config)# interface fastethernet0/1
Switch(config-if)# switchport port-security aging time 120
次の例では、エージング タイムを2分に設定し、エージング タイプをinactivityにして、このインターフェイスに設定されたセキュア アドレスのエージングをイネーブルにする方法を示します。
Switch(config-if)# switchport port-security aging time 2
Switch(config-if)# switchport port-security aging type inactivity
Switch(config-if)# switchport port-security aging static
設定したコマンドを確認するには、 show port-security interface interface-id イネーブルEXECコマンドを入力します。
ポートベースのトラフィック制御設定の表示
show interfaces interface-id switchport イネーブルEXECコマンドを使用すると、(各種の特性とともに)インターフェイスのトラフィック抑制および制御の設定が表示されます。 show storm-control および show port-security イネーブルEXECコマンドを使用すると、それぞれストーム制御とポート セキュリティ設定が表示されます。
トラフィック制御情報を表示するには、 表21-4 に示す1つまたは複数のイネーブルEXECコマンドを使用します。
