この章では、Catalyst 3550 スイッチにポートベースのトラフィック制御機能を設定する方法について説明します。
ストーム制御の設定
ストーム制御の概要
ストーム制御は、LAN 上のトラフィックが、いずれかの物理インターフェイスのブロードキャスト、マルチキャスト、またはユニキャストのストームによって影響されないようにします。LAN ストームは、パケットが LAN にフラッディングした場合に発生するもので、過剰なトラフィックが生成され、ネットワーク パフォーマンスが低下します。プロトコル スタックの実装、ネットワーク構成でのエラー、またはユーザによるDoS攻撃が、ストームの原因となります。
ストーム制御(またはトラフィック抑制)は、インターフェイスからスイッチング バスへ流れるパケットをモニタし、そのパケットがユニキャスト、マルチキャスト、またはブロードキャストのいずれであるかを判別します。スイッチは、1 秒間で受信された指定タイプのパケット数をカウントし、あらかじめ定義された抑制レベル スレッシュホールドと計測値を比較します。
ストーム制御は、トラフィック アクティビティを測定するために次のいずれかの方法を使用します。
- ・ 帯域幅 ― ブロードキャスト、マルチキャスト、またはユニキャスト トラフィックが使用できる、ポートの利用可能な総帯域幅に対する割合
- ・ トラフィック速度 ― ブロードキャスト、マルチキャスト、またはユニキャスト パケットが受信されたときの 1 秒あたりのパケット数(Cisco IOS Release 12.1(22)EA1 以降)
いずれの方法も、上限のスレッシュホールドに到達するとポートがトラフィックをブロックします。トラフィックの速度が下限スレッシュホールド(指定されている場合)を下回るまでポートはブロックされたままになり、下回ると通常の転送が再開されます。下限抑制レベルが指定されていない場合、スイッチはトラフィックの速度が上限抑制レベルを下回るまですべてのトラフィックをブロックします。一般的に、スレッシュホールドのレベルが高くなると、ブロードキャスト ストームに対する保護の効果が薄くなります。
図22-1 のグラフは、一定時間におけるインターフェイス上のブロードキャスト トラフィック パターンを示しています。この例は、マルチキャストおよびユニキャスト トラフィックにも適用できます。この例では、転送されているブロードキャスト トラフィックが、タイム インターバル T1 〜 T2 間および T4 〜 T5 間で設定されたスレッシュホールドを上回っています。特定のトラフィックの量がスレッシュホールドを上回ると、そのタイプのすべてのトラフィックは次の一定時間にわたり、廃棄されます。したがって、ブロードキャスト トラフィックは T2 および T5 のあとのインターバルではブロックされています。次のタイム インターバル(たとえば T3)では、ブロードキャスト トラフィックがスレッシュホールドを上回らなければ、再度転送されます。
図22-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 インターフェイス コンフィギュレーション コマンドを入力することにより、手動でポートをイネーブルに戻すこともできます。デフォルトはこのモードに設定されています。
表22-1 に、インターフェイスにポート セキュリティを設定した場合の、違反モードおよび動作を示します。
|
トラフィックの転送 1 |
エラー メッセージの表示 2 |
|||||
|---|---|---|---|---|---|---|
ポート セキュリティのデフォルト設定
表22-2 に、インターフェイスに対するポート セキュリティのデフォルト設定を示します。
|
ディセーブル。エージング タイムは 0 です。イネーブルの場合、デフォルトの type は absolute になります。 |
ポート セキュリティ設定時の注意事項
ポート セキュリティの設定時は、次の注意事項に従ってください。
- ・ ポート セキュリティは、スタティック アドレス ポート、トランク ポート、または IEEE 802.1Q トンネル ポート上でのみ設定できます。
- ・ セキュア ポートは、ダイナミック アクセス ポートにできません。
- ・ セキュア ポートは、Switched Port Analyzer(SPAN; スイッチド ポート アナライザ)の宛先ポートにできません。
- ・ セキュア ポートは、Fast EtherChannel や Gigabit EtherChannel ポート グループに属すことができません。
- ・ 音声 VLAN と共に設定されているインターフェイス上でポート セキュリティをイネーブルにする場合、ポート上に設定可能な最大セキュア アドレスを 2 に設定します。ポートが Cisco IP Phone に接続されている場合、IP Phone には 1 つの MAC(メディア アクセス制御)アドレスが必要になります。Cisco IP Phone アドレスは音声 VLAN 上で学習されますが、アクセス VLAN 上では学習されません。1 つの PC を Cisco IP Phone に接続する場合、追加の MAC アドレスは不要です。複数の PC を Cisco IP Phone に接続する場合、各 PC と IP Phone に 1 つずつ使用できるように、十分な数のセキュア アドレスを設定する必要があります。
- ・ インターフェイスのセキュア アドレスの最大値として入力した値が古い値よりも大きい場合、新しい値が古い設定値よりも優先されます。新しい値が古い値よりも小さく、インターフェイスに設定されたセキュア アドレス数が新しい値を超えている場合、コマンドは拒否されます。
- ・ スイッチでは、固定セキュア MAC アドレスのポート セキュリティ エージングをサポートしません。
表22-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 分に設定して、このインターフェイスに設定されたセキュア アドレスのエージングをイネーブルにする例を示します。
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 コマンドを使用すると、それぞれストーム制御とポート セキュリティ設定が表示されます。
トラフィック制御情報を表示するには、 表22-4 に示す 1 つまたは複数のイネーブル EXEC コマンドを使用します。
