この章では、Catalyst 2960 スイッチ上でポート単位のトラフィック制御機能を設定する方法について説明します。
ストーム制御の設定
ストーム制御の概要
ストーム制御は、物理インターフェイスの 1 つで発生したブロードキャスト、マルチキャスト、またはユニキャスト ストームよって LAN 上のトラフィックが混乱することを防ぎます。LAN ストームは、LAN にパケットがフラッディングした場合に発生します。その結果、トラフィックが極端に増えてネットワーク パフォーマンスが低下します。プロトコルスタックの実装エラー、ネットワーク構成の間違い、またはユーザによって引き起こされる DoS(サービス拒絶)攻撃もストームの原因になります。
ストーム制御(またはトラフィック抑制)は、インターフェイスからスイッチング バスを通過するパケットをモニタし、パケットがユニキャスト、マルチキャスト、またはブロードキャストのいずれであるかを判別します。スイッチは、1 秒間に受け取った特定のタイプのパケットの数をカウントして、事前に定義された抑制レベルのスレッシュホールドとその測定結果を比較します。
ストーム制御は、次のうちのいずれかをトラフィック アクティビティの測定方法に使用します。
- ・ 帯域幅(ブロードキャスト、マルチキャスト、またはユニキャスト トラフィックが使用できるポートの総帯域幅の割合)
- ・ ブロードキャスト、マルチキャスト、またはユニキャスト パケットを受信する、1 秒あたりのトラフィック レート(パケット/秒)
- ・ ブロードキャスト、マルチキャスト、またはユニキャスト パケットを受信する、1 秒あたりのトラフィック レート(ビット/秒)
上記の方法のいずれを使用しても、スレッシュホールドに到達すると、ポートはトラフィックをブロックします。トラフィック レートが下限スレッシュホールド(指定されている場合)を下回らないかぎり、ポートはブロックされたままになり、その後、通常の転送が再開されます。下限抑制レベルが指定されていない場合、トラフィック レートが上限抑制レベルを下回らないかぎり、スイッチはすべてのトラフィックをブロックします。一般に、そのレベルが高ければ高いほど、ブロードキャスト ストームに対する保護効果は薄くなります。
図21-1 のグラフは、一定時間におけるインターフェイス上のブロードキャスト トラフィック パターンを示しています。この例は、マルチキャストおよびユニキャスト トラフィックにも当てはまります。この例では、T1 から T2、T4 から T5 のタイム インターバルで、転送するブロードキャスト トラフィックが設定されたスレッシュホールドを上回っています。指定のトラフィック量がスレッシュホールドを上回ると、次のインターバルで、そのタイプのトラフィックがすべて廃棄されます。したがって、T2 と T5 のあとのインターバルの間、ブロードキャスト トラフィックがブロックされます。その次のインターバル(たとえば、T3)では、スレッシュホールドを上回らないかぎり、ブロードキャスト トラフィックが再び転送されます。
図21-1 ブロードキャスト ストーム制御の例
ストーム制御抑制レベルと 1 秒間のインターバルを組み合わせて、ストーム制御アルゴリズムの動作を制御します。スレッシュホールドが高いほど、通過するパケット数が多くなります。スレッシュホールド値が 100% であれば、トラフィックに対する制限はありません。値を 0.0 にすると、そのポート上ではすべてのブロードキャスト、マルチキャスト、またはユニキャスト トラフィックがブロックされます。
各トラフィック タイプのスレッシュホールド値を設定するには、 storm-control インターフェイス コンフィギュレーション コマンドを使用します。
ストーム制御のデフォルト設定
デフォルトでは、ユニキャスト、ブロードキャスト、およびマルチキャスト ストーム制御はスイッチ インターフェイス上でディセーブルになります。したがって、抑制レベルは 100% です。
ストーム制御およびスレッシュホールド レベルの設定
ポートにストーム制御を設定し、特定のトラフィック タイプで使用するスレッシュホールド レベルを入力します。
ただし、ハードウェアの制約とともに、さまざまなサイズのパケットをどのように数えるかという問題があるので、スレッシュホールドの割合はあくまでも近似値です。着信トラフィックを形成するパケットのサイズによって、実際に適用されるスレッシュホールドは設定されたレベルに対して、数パーセントの差異が生じる可能性があります。
ストーム制御とスレッシュホールド レベルを設定するには、イネーブル EXEC モードで次の手順を実行します。
ストーム制御をディセーブルにするには、 no storm-control { broadcast | multicast | unicast } level インターフェイス コンフィギュレーション コマンドを使用します。
次に、ポート上で、上限抑制レベルを 87% 、下限抑制レベルを 65% に設定し、ユニキャスト ストーム制御をイネーブルにする方法を示します。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# storm-control unicast level 87 65
次に、ポート上で、ブロードキャスト アドレスのストーム制御を 20% のレベルでイネーブルにする例を示します。ブロードキャスト トラフィックが、トラフィック ストーム制御インターバル内にポートで使用できる総帯域幅のうち、設定された 20% のレベルを超えた場合、トラフィック ストーム制御インターバルが終わるまで、スイッチはすべてのブロードキャスト トラフィックを廃棄します。
Switch(config)# interface gigabitethernet0/1
Switch(config-if)# storm-control broadcast level 20
保護ポートの設定
アプリケーションによっては、あるネイバが生成したトラフィックが別のネイバにわからないように、同一スイッチ上のポート間でレイヤ 2 トラフィックが転送されないように設定する必要があります。このような環境では、保護ポートを使用すると、スイッチ上のポート間でユニキャスト、ブロードキャスト、またはマルチキャスト トラフィックの交換が確実になくなります。
- ・ 保護ポートは、同様に保護ポートである他のポートに、トラフィック(ユニキャスト、マルチキャスト、またはブロードキャスト)をすべて転送するわけではありません。レイヤ 2 では、保護ポート間でデータ トラフックを転送できません。CPU で処理されてソフトウェアで転送される、Protocol Independent Multicast(PIM)パケットのような制御トラフィックのみが転送されます。保護ポート間を通過するトラフィックはすべて、レイヤ 3 装置を介して転送しなければなりません。
- ・ 保護ポートと非保護ポートの間の転送動作は、通常どおりに進みます。
保護ポートのデフォルト設定
保護ポート設定時の注意事項
保護ポートは、物理インターフェイス(GigabitEthernet ポート 1 など)または EtherChannel グループ(port-channel 5 など)に設定できます。ポート チャネルで保護ポートをイネーブルにした場合は、そのポート チャネル グループ内のすべてのポートでイネーブルになります。
保護ポートの設定
ポートを保護ポートとして定義するには、イネーブル EXEC モードで次の手順を実行します。
保護ポートをディセーブルにするには、 no switchport protected インターフェイス コンフィギュレーション コマンドを使用します。
Switch(config)# interface gigabitethernet0/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
ポート セキュリティの設定
ポート セキュリティ機能を使用すると、ポートへのアクセスを許可するステーションの MAC アドレスを制限および識別して、インターフェイスへの入力を制限できます。セキュア ポートにセキュア MAC アドレスを割り当てると、ポートは定義されたアドレス グループ以外の送信元アドレスを持つパケットを転送しません。セキュア MAC アドレス数を 1 つに制限し、単一のセキュア MAC アドレスを割り当てると、そのポートに接続されたワークステーションに、ポートの帯域幅全体が保証されます。
セキュア ポートとしてポートを設定し、セキュア MAC アドレスが最大数に達した場合、ポートにアクセスを試みるステーションの MAC アドレスが識別されたセキュア MAC アドレスのいずれとも一致しないので、セキュリティ違反が発生します。また、あるセキュア ポート上でセキュア MAC アドレスが設定または学習されているステーションが、別のセキュア ポートにアクセスしようとしたときにも、違反のフラグが立てられます。
- ・ ポート セキュリティの概要
- ・ ポート セキュリティのデフォルト設定
- ・ ポート セキュリティの設定時の注意事項
- ・ ポート セキュリティのイネーブル化および設定
- ・ ポート セキュリティ エージングのイネーブル化および設定
ポート セキュリティの概要
セキュア MAC アドレス
ポートで許可されるセキュア アドレスの最大数を設定するには、 switchport port-security maximum value インターフェイス コンフィギュレーション コマンドを使用します。
スイッチは、次のセキュア MAC アドレス タイプをサポートします。
- ・ スタティック セキュア MAC アドレス ― switchport port-security mac-address mac-address インターフェイス コンフィギュレーション コマンドを使用して手動で設定され、アドレス テーブルに保存されたのち、スイッチの実行コンフィギュレーションに追加されます。
- ・ ダイナミック セキュア MAC アドレス ― 動的に設定されてアドレス テーブルにのみ保存され、スイッチの再起動時に削除されます。
- ・ スティッキー セキュア MAC アドレス ― 動的に学習することも、手動で設定することもできます。アドレス テーブルに保存され、実行コンフィギュレーションに追加されます。このアドレスがコンフィギュレーション ファイルに保存されていると、スイッチの再起動時にインターフェイスはこれらを動的に再設定する必要がありません。
スティッキー ラーニング をイネーブルにすると、ダイナミック MAC アドレスをスティッキー セキュア MAC アドレスに変換して実行コンフィギュレーションに追加するようにインターフェイスを設定できます。スティッキー ラーニングをイネーブルにするには、 switchport port-security mac-address sticky インターフェイス コンフィギュレーション コマンドを入力します。このコマンドを入力すると、インターフェイスはスティッキー ラーニングがイネーブルになる前に学習したものを含め、すべてのダイナミック セキュア MAC アドレスをスティッキー セキュア MAC アドレスに変換します。すべてのスティッキー セキュア MAC アドレスは実行コンフィギュレーションに追加されます。
スティッキー セキュア MAC アドレスは、コンフィギュレーション ファイル(スイッチが再起動されるたびに使用されるスタートアップ コンフィギュレーション)に、自動的には反映されません。スティッキー セキュア MAC アドレスをコンフィギュレーション ファイルに保存すると、スイッチの再起動時にインターフェイスはこれらを再び学習する必要がありません。スティッキー セキュア アドレスが保存されていない場合、アドレスは失われます。
スティッキー ラーニングをディセーブルにした場合、スティッキー セキュア MAC アドレスはダイナミック セキュア MAC アドレスに変換され、実行コンフィギュレーションから削除されます。
スイッチに設定可能なセキュア MAC アドレスの最大数は、システムで使用可能な MAC アドレスの最大数によって設定されます。この数字は、他のレイヤ 2 機能で使用されるアドレスやインターフェイスに設定された他のセキュア MAC アドレス等を含む、使用可能な MAC アドレスの総数です。
セキュリティ違反
次のいずれかの状況が発生すると、セキュリティ違反になります。
- ・ 最大数のセキュア MAC アドレスがアドレス テーブルに追加されている状態で、アドレス テーブルに未登録の MAC アドレスを持つステーションがインターフェイスにアクセスしようとした場合。
- ・ あるセキュア インターフェイスで学習または設定されたアドレスが、同一 VLAN(仮想 LAN)内の別のセキュア インターフェイスで使用された場合。
違反が発生した場合の対処に基づいて、次の 3 つの違反モードのいずれかにインターフェイスを設定できます。
- ・ protect(保護) ― セキュア MAC アドレスの数がポートで許可されている最大限度に達すると、最大値を下回るまで十分な数のセキュア MAC アドレスを削除するか、許可アドレス数を増やさないかぎり、未知の送信元アドレスを持つパケットは廃棄されます。セキュリティ違反が発生したことは通知されません。
- ・ restict(制限) ― セキュア MAC アドレスの数がポートで許可されている最大限度に達すると、最大値を下回るまで十分な数のセキュア MAC アドレスを削除するか、許可アドレス数を増やさないかぎり、未知の送信元アドレスを持つパケットは廃棄されます。このモードでは、セキュリティ違反が発生したことが通知されます。SNMP トラップが送信されて Syslog メッセージがログされ、違反カウンタが増加します。
- ・ shutdown(シャットダウン) ― ポート セキュリティ違反により、インターフェイスが errdisable になり、ただちにシャットダウンされます。そのあと、ポートの LED が消灯します。SNMP トラップが送信されて Syslog メッセージがログされ、違反カウンタが増加します。セキュア ポートが errdisable ステートの場合は、 errdisable recovery cause psecure-violation グローバル コンフィギュレーション コマンドを入力してこのステートを解除するか、 shutdown および no shutdown インターフェイス コンフィギュレーション コマンドを入力して手動で再びイネーブルにできます。これがデフォルトのモードです。
表21-1 に、ポート セキュリティをインターフェイスに設定した場合の違反モードおよび取られる処置について示します。
|
トラフィックの |
エラー メッセージの表示 2 |
|||||
|---|---|---|---|---|---|---|
ポート セキュリティのデフォルト設定
表21-2 に、インターフェイスに対するポート セキュリティのデフォルト設定を示します。
ポート セキュリティの設定時の注意事項
ポート セキュリティを設定するときには、次の注意事項に従ってください。
- ・ ポート セキュリティを設定できるのは、スタティック アクセス ポートまたはトランク ポートに限られます。セキュア ポートをダイナミック アクセス ポートにすることはできません。
- ・ セキュア ポートを Switched Port Analyzer(SPAN; スイッチド ポート アナライザ)の宛先ポートにすることはできません。
- ・ セキュア ポートをFast EtherChannel または Gigabit EtherChannel ポート グループに所属させることはできません。
- ・ 音声 VLAN も設定しているインターフェイス上でポート セキュリティをイネーブルにする場合、ポートで許容されるセキュア アドレスの最大数を、アクセス VLAN におけるセキュア アドレスの最大数に 2 を足した数に設定しなければなりません。ポートを 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 { protocol | restrict } インターフェイス コンフィギュレーション コマンドを使用します。
インターフェイスでスティッキー ラーニングをディセーブルにするには、 no switchport port-security mac-address sticky インターフェイス コンフィギュレーション コマンドを使用します。インターフェイスがスティッキー セキュア MAC アドレスをダイナミック セキュア アドレスに変換します。ただし、スティッキー MAC アドレスによる設定を保存した場合、 no switchport port-security mac-address sticky コマンドの入力後に設定をもう一度保存しないと、スイッチの再起動時にスティッキー アドレスが復元されます。
MAC アドレス テーブルからスイッチまたはインターフェイス上のセキュア アドレスすべてまたは特定(設定、ダイナミック、スティッキー)のセキュア アドレスすべてを削除するには、clear port-security { all | configured | dynamic | sticky } イネーブル EXEC コマンドを使用します。
アドレス テーブルから特定のセキュア MAC アドレスを削除するには、 no switchport port-security mac-address mac-address インターフェイス コンフィギュレーション コマンドを使用します。インターフェイス上のすべてのダイナミック セキュア アドレスをアドレス テーブルから削除するには、 no switchport port-security インターフェイス コンフィギュレーション コマンドのあとに、(インターフェイスでポート セキュリティを再びイネーブルにするために) switchport port-security コマンドを入力します。 no switchport port-security コマンドを使用する前に、 no switchport port-security mac-address sticky インターフェイス コンフィギュレーション コマンドを使用してスティッキー セキュア MAC アドレスをダイナミック セキュア MAC アドレスに変換した場合、手動で設定されたものを除き、インターフェイス上のすべてのセキュア アドレスが削除されます。
特定の設定済みのセキュア MAC アドレスをアドレス テーブルから削除する場合、 no switchport port-security mac-address mac-address インターフェイス コンフィギュレーション コマンドを使用しなければなりません。
次に、ポート上でポート セキュリティをイネーブルにし、セキュア アドレスの最大数を 50 に設定する例を示します。違反モードはデフォルトです。スタティック セキュア MAC アドレスは設定せず、スティッキー ラーニングはイネーブルです。
Switch(config)# interface gigabitethernet0/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
次に、ポートの VLAN 3 上にスタティック セキュア MAC アドレスを設定する例を示します。
Switch(config)# interface gigabitethernet0/2
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport port-security
Switch(config-if)# switchport port-security mac-address 0000.02000.0004 vlan 3
次に、ポートのスティッキー ポート セキュリティをイネーブルにする例を示します。データ VLAN および音声 VLAN の MAC アドレスを手動で設定し、セキュア アドレスの総数を 20 に設定します(データ VLAN に 10、音声 VLAN に 10 割り当てます)。
Switch(config)# interface FastEthernet0/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 アドレスを手動で削除しなくても、セキュア ポート上の装置を削除および追加し、なおかつポート上のセキュア アドレス数を制限できます。セキュア アドレスのエージングは、ポート単位でイネーブルまたはディセーブルにできます。
ポート セキュリティ エージングを設定するには、イネーブル EXEC モードで次の手順を実行します。
ポート上のすべてのセキュア アドレスに対してポート セキュリティ エージングをディセーブルにするには、no switchport port-security aging time インターフェイス コンフィギュレーション コマンドを使用します。静的に設定されたセキュア アドレスに対してだけエージングをディセーブルにするには、no switchport port-security aging static インターフェイス コンフィギュレーション コマンドを使用します。
次に、ポート上のセキュア アドレスのエージング タイムを 2 時間に設定する例を示します。
Switch(config)# interface gigabitethernet0/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 コマンドを使用すると、ストーム制御およびポート セキュリティの設定が表示されます。
トラフィックの制御情報を表示するには、 表21-4 のイネーブル EXEC コマンドを 1 つまたは複数使用します。
