DoS からの保護の機能概要
ここでは、DoS からの Catalyst 6500 シリーズ スイッチの保護の概要、およびいくつかの種類の DoS 攻撃シナリオについて説明します。
•
「PFC2 での DoS からの保護」
•
「PFC3 での DoS からの保護」
セキュリティ ACL
Catalyst 6500 シリーズ スイッチでは、セキュリティ Access Control List(ACL; アクセス制御リスト)を使用することで、DoS パケットをハードウェア内で拒否できます。セキュリティ ACL は、ハードウェア内で TCAM によってトラフィックに適用されます。このトラフィックは、レイヤ 3 またはレイヤ 4 データを使用して簡単に識別されます。セキュリティ ACL は、DoS 攻撃を受ける前に予防措置として適用することも、攻撃が検出されたあとに適用することもできます。
次に、セキュリティ ACL を使用して DoS パケットを廃棄する例を示します。
Router# clear mls ip mod 9
Router# show mls ip mod 9
Displaying Netflow entries in module 9
DstIP SrcIP Prot:SrcPort:DstPort Src i/f:AdjPtr
--------------------------------------------------------------------
Pkts Bytes Age LastSeen Attributes
---------------------------------------------------
192.168.0.0 192.168.1.0 0 :0 :0 0 : 0
1843 84778 2 02:30:17 L3 - Dynamic
192.168.1.0 192.168.0.0 0 :0 :0 0 : 0
2742416 126151136 2 02:30:17 L3 - Dynamic <======== Note: traffic flow identified
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# no access-list 199
Router(config)# access-list 199 deny ip host 192.168.0.0 any
Router(config)# access-list 199 permit ip any any
Router(config)# interface g9/1
Router(config-if)# ip access 199 in <======== Note: security ACL applied
1w6d: %SYS-5-CONFIG_I: Configured from console by console
Router# clear mls ip mod 9
Router# show mls ip mod 9
Displaying Netflow entries in module 9
DstIP SrcIP Prot:SrcPort:DstPort Src i/f:AdjPtr
--------------------------------------------------------------------
Pkts Bytes Age LastSeen Attributes
---------------------------------------------------
192.168.0.0 192.168.1.0 0 :0 :0 0 : 0
1542 70932 2 02:31:56 L3 - Dynamic
192.168.1.0 192.168.0.0 0 :0 :0 0 : 0
0 0 2 02:31:56 L3 - Dynamic <======== Note: hardware-forwarded
<======== Note: traffic stopped
Extended IP access list 199
deny ip host 192.168.0.0 any (100 matches)
Router# show access-list 199
Extended IP access list 199
deny ip host 192.168.0.0 any (103 matches
セキュリティ VACL
セキュリティ VACL は、レイヤ 2、レイヤ 3、およびレイヤ 4 情報に基づくセキュリティ強化ツールです。セキュリティ VACL によるパケット検索の結果は、許可(permit)、拒否(deny)、許可およびキャプチャ(permit and capture)、またはリダイレクト(redirect)のいずれかになります。セキュリティ VACL を特定の VLAN に関連付けると、トラフィックがこの VLAN に許可されるには、すべてのトラフィックにセキュリティ VACL による許可が必要になります。セキュリティ VACL はハードウェア内で適用されます。したがって、Catalyst 6500 シリーズ スイッチの VLAN にセキュリティ VACL を適用しても、パフォーマンス ペナルティは発生しません。
QoS ACL
QoS ACL を使用すると、セキュリティ ACL と異なり、フロー内のすべてのトラフィックへのアクセスを拒否することなく、トラフィック レートを制限できます。
次に、QoS ACL を使用して、スイッチに対する ping 攻撃を防止する例を示します。QoS ACL をすべてのインターフェイスに対して設定および適用することで、受信する ICMP パケットのレートを制限します。
Router# show ip ospf neighbors
Neighbor ID Pri State Dead Time Address Interface
6.6.6.122 1 FULL/BDR 00:00:30 6.6.6.122 Vlan46
Router# show ip eigrp neighbors
IP-EIGRP neighbors for process 200
H Address Interface Hold Uptime SRTT RTO Q Seq Type
0 4.4.4.122 Vl44 11 00:06:07 4 200 0 6555
Router# <======== Note: ping attack starts
Router# show proc cpu | include CPU utilization
CPU utilization for five seconds: 99%/90%; one minute: 48%; five minutes: 25%
2w0d: %OSPF-5-ADJCHG: Process 100, Nbr 6.6.6.122 on Vlan46 from FULL to DOWN, Neighbor Down: Dead timer expired
Router# show ip eigrp neighbors
IP-EIGRP neighbors for process 200
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# access-list 199 permit icmp any any echo
Router(config)# class-map match-any icmp
Router(config-cmap)# match access-group 199
Router(config-cmap)# exit
Router(config)# policy-map icmp
Router(config-pmap)# class icmp
Router(config-pmap-c)# police 96000 16000 16000 conform-action transmit exceed-action drop
Router(config-pmap-c)# exit
Router(config-pmap)# exit
Router(config)# interface range g4/1 - 9
Router(config-if-range)# service-policy input icmp <======== Note: policy applied
Router(config-if-range)# end
2w0d: %SYS-5-CONFIG_I: Configured from console by console
2w0d: %OSPF-5-ADJCHG: Process 100, Nbr 6.6.6.122 on Vlan46 from LOADING to FULL, Loading Done
Router# show ip eigrp neighbors
IP-EIGRP neighbors for process 200
H Address Interface Hold Uptime SRTT RTO Q Seq Type
0 4.4.4.122 Vl44 13 00:00:48 8 200 0 6565
FIB レート制限
Forwarding Information Base(FIB; 転送情報ベース)によるレート制限機能を使用すると、ソフトウェア処理の必要なすべてのパケットをレート制限できます。
次の例では、ローカルに接続したサブネット上の、存在しないホスト アドレス宛てのトラフィックを示します。通常は、Address Resolution Protocol(ARP; アドレス解決プロトコル)要求に対して ARP 応答が返され、このトラフィックに対する FIB 隣接テーブルが実装されます。ただし、この宛先サブネットに対する FIB の隣接テーブルは、転送およびソフトウェア処理の必要なトラフィックを受信し続けます。このトラフィックにレート制限を適用することで、ソフトウェア処理のために転送されるトラフィック レートを、管理可能な量にまで制限できます。
Router# show ip eigrp neighbors
IP-EIGRP neighbors for process 200
H Address Interface Hold Uptime SRTT RTO Q Seq Type
0 4.4.4.122 Vl44 11 00:00:26 8 200 0 6534
Router# show ip ospf neighbors
Neighbor ID Pri State Dead Time Address Interface
6.6.6.122 1 FULL/BDR 00:00:36 6.6.6.122 Vlan46
Router# <======== Note: attack starts
Router# show arp | include 199.2.250.250
Internet 199.2.250.250 0 Incomplete ARPA
1w6d: %OSPF-5-ADJCHG: Process 100, Nbr 6.6.6.122 on Vlan46 from FULL to DOWN, Neighbor Down: Dead timer expired
Router# show ip eigrp neighbors
IP-EIGRP neighbors for process 200
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# mls rate-limit unicast cef receive 1000 <======== Note: traffic rate limited to 1000 pps
1w6d: %SYS-5-CONFIG_I: Configured from console by console
1w6d: %OSPF-5-ADJCHG: Process 100, Nbr 6.6.6.122 on Vlan46 from LOADING to FULL, Loading Done
Router# show ip eigrp neighbors
IP-EIGRP neighbors for process 200
H Address Interface Hold Uptime SRTT RTO Q Seq Type
0 4.4.4.122 Vl44 12 00:00:07 12 200 0 6536
トラフィック ストーム制御
トラフィック ストームは、パケットが LAN でフラッディングする場合に発生するもので、過剰なトラフィックを生成し、ネットワークのパフォーマンスを低下させます。トラフィック ストーム制御機能は、ネットワーク設定の誤り、またはユーザによる DoS 攻撃の開始が原因となり、物理インターフェイス上のブロードキャスト、マルチキャスト、またはユニキャスト トラフィック ストームによって LAN ポートが中断されるのを防ぎます。トラフィック ストーム制御(トラフィック抑制とも呼ぶ)は、1 秒間のトラフィック ストーム制御インターバルにおいて受信するトラフィックのレベルをモニタします。このインターバルの間、設定済みのトラフィック ストーム制御レベルに対し、トラフィック レベルが比較されます。トラフィック ストーム制御レベルは、ポートの利用可能な帯域幅全体に対するパーセンテージです。各ポートには、すべてのタイプのトラフィック(ブロードキャスト、マルチキャスト、およびユニキャスト)用に使用されている単一のトラフィック ストーム制御レベルがあります。
トラフィック ストーム制御はインターフェイスに対して設定され、デフォルトではディセーブルにされています。次の設定例では、インターフェイス FastEthernet 2/3 上で、レベル 20% のブロードキャスト アドレス ストーム制御をイネーブルにしています。1 秒間のトラフィック ストーム制御インターバルで、ブロードキャスト トラフィックが、設定されたレベルであるポートの有効帯域幅合計の 20% を超えると、このトラフィック ストーム制御インターバルが終了するまで、すべてのブロードキャスト トラフィックが廃棄されます。
Router(config-if)# storm-control broadcast level 20
Catalyst 6500 シリーズ スイッチは、すべての LAN ポートでブロードキャスト ストーム制御をサポートし、ギガビット イーサネット ポートではユニキャスト ストーム制御をサポートします。
2 つまたは 3 つの抑制モードを同時に設定する場合は、同じレベル設定が共有されます。ブロードキャスト抑制をイネーブルにした場合に、マルチキャスト抑制もイネーブルにし、そのスレッシュホールドを 70% に設定すると、ブロードキャスト抑制にもこの 70% の設定が適用されます。
トラフィック ストーム制御の設定の詳細については、 第40章「トラフィック ストーム制御の設定」 を参照してください。
ARP スロットリング
ARP スロットリングは、ハードウェア ベースの FIB および隣接エントリを自動的にインストールし、ARP 解決の実行時にパケットを廃棄するために使用します。これらのほとんどのパケットは廃棄されますが、このうち少数のパケットは Multilayer Switch Feature Card(MSFC; マルチレイヤ スイッチ フィーチャ カード)に送信されます(レート制限)。
uRPF チェック
unicast Reverse Path Forwarding(uRPF)チェックをイネーブルにすると、スプーフィングされた IP 送信元アドレスなど、確認可能な送信元 IP アドレスを持たないパケットが廃棄されます。送信元アドレスと、これが受信されたインターフェイスとが、スーパーバイザ エンジンの FIB テーブルと一致しているかどうかを確認するには、Cisco Express Forwarding(CEF)テーブルが使用されます。
インターフェイス上で uRPF チェックをイネーブルにすると(VLAN 単位)、受信パケットは逆引き参照によって CEF テーブルと比較されます。いずれかのリバース パス ルートから受信されたパケットは転送されます。受信パケットに対し、インターフェイス上にリバース パス ルートが 1 つも存在しない場合は、このパケットは uRPF チェックに失敗したことになります。このパケットは、uRPF チェックに失敗したトラフィックに ACL が適用されるかどうかに応じて廃棄または転送されます。CEF テーブルに ACL が指定されていない場合は、偽装パケットはただちに廃棄されます。
uRPF チェックの ACL は、uRPF チェックに失敗したパケットにのみ指定できます。この ACL は、パケットをただちに廃棄するか、または転送するかをチェックします。ACL による uRPF チェックは、ハードウェア内の PFC3 ではサポートされません。uRPF ACL で拒否されたパケットは、ハードウェア内で転送されます。許可されたパケットは CPU に送信されます。
PFC2 では、uRPF チェックはハードウェア内でサポートされますが、リターン パスは 1 つだけです。ただし、uRPF チェックに失敗し、適用された ACL によって転送されるすべてのパケットは、MSFC に送信およびレート制限され、ICMP 到達不能メッセージを生成します。これらの動作は、すべてソフトウェアによって制御されます。ハードウェアでの uRPF チェックは、最大 2 つのリターン パス(インターフェイス)を持つルートに対してサポートされ、インターフェイス グループが設定された場合は最大 6 つのリターン パス(2 つは FIB テーブルから、4 つはインターフェイス グループから)を持つルートに対してサポートされます。
TCP インターセプト
TCP インターセプトは、TCP トラフィックの受信者を、TCP SYN フラッディング DoS 攻撃から保護する機能です。通常の TCP 接続は、スリーウェイ ハンドシェイクによって開始されます。ホスト A はホスト B に、新たな TCP セッションの開始を要求する SYN 要求を送信します。ホスト B は SYN 要求の受信を伝える確認応答として、SYN ACK を送信します。さらに、ホスト B の SYN ACK に対してホスト A が ACK を返信し、セッションが開始されます。SYN フラッディング攻撃とは、ハッカーが到達不能なリターン アドレスによる接続要求でサーバを過負荷にすることによって発生します。この場合、スリーウェイ ハンドシェイクは決して完了することがなく、接続が確立されません。サーバ ホストが応答すべきセッション要求の量によっては、サーバ ホストの処理能力が限界を超えてしまい、この結果、正規のユーザーが正規のサービス(Web サイト、E メール サーバなど)に接続できなくなる場合があります。
TCP インターセプトは、TCP 要求を代行受信および検証することで、SYN フラッディングを防止します。TCP インターセプトは以下のモードをサポートします。
•
インターセプト モード ― TCP インターセプト ソフトウェアは、拡張アクセス リストと一致するサーバ宛ての、クライアントからの TCP 同期(SYN)パケットを代行受信します。ソフトウェアは、宛先サーバに代わってクライアントと接続を確立します。これに成功すると、今度はクライアントに代わってサーバと接続を確立し、これらの 2 つの片側接続をトランスペアレントに接続します。到達不能ホストからの接続の試みが、サーバに到達することはありません。ソフトウェアは接続の間中、パケットの代行受信と転送を続行します。
潜在的なハッカーから不正な要求があった場合は、ソフトウェアはハーフオープン状態の接続に対するアグレッシブ タイムアウト、および TCP 接続要求のスレッシュホールドを使用して宛先サーバを保護しつつ、有効な要求は引き続き許可します。TCP インターセプトを使用してネットワーク セキュリティ ポリシーを構築する場合は、すべての要求を代行受信するのか、あるいは特定ネットワークからの要求、または特定サーバ宛ての要求だけを代行受信するのかを選択できます。また、接続レートや、未完了接続に対するスレッシュホールドも設定できます。
•
ウォッチ モード ― ソフトウェアは、スイッチ経由で伝送される接続要求を受動的にモニタします。設定可能なインターバルにおいて接続が確立できなかった場合は、ソフトウェアが仲介し、要求された接続を中止します。
TCP インターセプトは、アクティブなインターセプト モードでも、パッシブなウォッチ モードでも使用できます。したがって、どちらのモードがネットワークに適するかを判断し、それに従ってネットワークを構成することが重要です。TCP インターセプトは、PFC2 および PFC3(全タイプ)においてハードウェア補助される機能です。アクティブ インターセプト モードで多数の送信元および宛先サーバを指定すると、CPU のオーバーランが生じる可能性があるので、クリティカルなサーバだけをアクティブ インターセプト モードで保護することを推奨します。
処理のデフォルト モードはインターセプト モードです。インターセプト モードでは、ソフトウェアは送られてくる個々の接続要求(SYN)をアクティブに代行受信し、サーバの代わりに SYN-ACK を返信してから、クライアントからの ACK を待機します。こうした前処理が完了すると、元の SYN がサーバに送信され、ソフトウェアはサーバとのスリーウェイ ハンドシェイクを行います。こうして 2 つの片側接続が、1 つに結合されます。
ウォッチ モードでは、接続要求はスイッチを通過してサーバに送信されますが、接続が確立するまで監視されます。30 秒間(この値は設定可能)のうちに接続が確立できない場合は、ソフトウェアはサーバにリセット命令を送り、サーバの状態を消去します。スイッチをウォッチ モードで設定すると、インターセプト モードほど CPU に負荷がかかりません。ウォッチ モードでは、CPU はチェックを行わず、2 つの片側接続を結合します。CPU は接続を受動的にモニタし、処理が実際に行われたあとで、失敗した接続に対処します。
TCP インターセプトはグローバルに設定します。これには、まず代行受信するトラフィックに対して拡張アクセス リストを作成してから、TCP インターセプト リストを作成します。代行受信するトラフィックのタイプは、以下のいずれかです。
•
すべての要求
•
特定のネットワークから送信される要求のみ
•
特定のサーバ宛てに送信される要求のみ
次に、アクセス リストの送信元をすべて(any)と定義する例を示します。代行受信するパケットの送信元を正確に把握することは難しいため、ここでは送信元アドレスはフィルタリングしません。TCP SYN フラッド攻撃からの保護対象となる宛先サーバは指定します。アクセス リスト内のエントリと一致しないトラフィックは通過を許可され、それ以上のアクションは実行されません。
Router(config)# access-list 101 permit tcp any 10.1.1.1 0.0.0.255
Router(config)# ip tcp intercept list 101
表37-1 は、TCP インターセプトの設定に使用するコマンドの一覧を示します。
表37-1 TCP インターセプトの設定
|
|
Router(config)#
access-list
access-list-number {
deny |
permit }
tcp any
destination destination-wildcard
|
IP 拡張アクセス リストを定義します。 |
Router(config)#
ip tcp intercept list
access-list-number
|
TCP インターセプトをイネーブルにします。 |
Router(config)#
ip tcp intercept mode {
intercept |
watch }
|
TCP インターセプト モードを設定します。 |
Router(config)#
ip tcp intercept drop-mode {
oldest |
random }
|
廃棄モードを設定します。 |
Router(config)#
ip tcp intercept watch-timeout
seconds
|
接続確立状態に達するまでの許容時間を変更します。有効値の範囲は 1 ~ 2147483 秒です。 |
Router(config)#
ip tcp intercept finrst-timeout
seconds
|
リセット要求(reset)または接続終了要求(FIN-exchange)を受信してから、接続を廃棄するまでの時間を変更します。有効値の範囲は 1 ~ 2147483 秒です。 |
Router(config)#
ip tcp intercept connection-timeout
seconds
|
何の動作も行われなくなったあと、ソフトウェアが接続を管理する時間を変更します。有効値の範囲は 1 ~ 2147483 秒です。 |
Router(config)#
ip tcp intercept max-incomplete
low
number
|
ソフトウェアがアグレッシブ モードを終了する基準となる未完了接続数を定義します。有効値の範囲は 1 ~ 2147483647 秒です。 |
Router(config)#
ip tcp intercept max-incomplete high
number
|
ソフトウェアがアグレッシブ モードを開始するまでの、許容される未完了接続の最大数を定義します。有効値の範囲は 1 ~ 2147483647 秒です。 |
Router(config)#
ip tcp intercept one-minute low
number
|
ソフトウェアがアグレッシブ モードを終了する基準となる接続要求数を定義します。有効値の範囲は 1 ~ 2147483647 秒です。 |
Router(config)#
ip tcp intercept one-minute high
number
|
ソフトウェアがアグレッシブ モードを開始するまでの、最後の 1 分間のサンプリング期間中に受信する接続要求数を定義します。有効値の範囲は 1 ~ 2147483647 秒です。 |
Router#
show tcp intercept connections
|
未完了接続と確立された接続を表示します。 |
Router#
show tcp intercept statistics
|
TCP インターセプトの統計情報を表示します。 |
PFC2 のハードウェア ベース レート リミッタ
PFC2 では、ハードウェア ベースのレート リミッタを追加で使用できます。PFC2 は、新たなレート リミッタに対応する 4 つのレート リミッタ レジスタを備えています。これらはすべて、スイッチ上でグローバルに設定します。これらのレート リミッタ レジスタはレイヤ 3 転送エンジン(PFC)上にあり、使用可能な様々な設定済みレート リミッタと一致した各パケットに関する、レート制限情報の格納を行います。
4 つのレート リミッタ レジスタは、レイヤ 3 転送エンジン上のみに実装されているため、異なる複数のレート制限シナリオで、同一レジスタが強制的に共有される場合もあります。各レジスタは、先着順に割り当てられます。すべてのレジスタが使用されている場合、もう 1 つのレート リミッタを新たに設定する唯一の方法は、いずれか 1 つのレジスタを解放することです。
PFC2 で使用可能なハードウェア ベースのレート リミッタは、次のとおりです。
•
入力および出力 ACL ブリッジド パケット
•
FIB 受信および FIB 収集
•
VACL ログ
•
レイヤ 3 機能
入出力 ACL ブリッジド パケット(ユニキャストのみ)
このレート リミッタは、入出力 ACL ブリッジの結果として MSFC に送信されたパケットをレート制限します。スイッチはこの機能を実現するため、TCAM ブリッジの結果を表す既存および新規の ACL TCAM エントリを、MSFC をポイントするレイヤ 3 リダイレクトの結果に変更します。TCAM エントリが、変更したレイヤ 3 リダイレクト レート制限の結果と一致するパケットは、ネットワーク管理者が CLI(コマンドライン インターフェイス)で設定した指示に従ってレート制限されます。入力値および出力値は、いずれも同一のレート リミッタ レジスタを共有するため、同じ値となります。ACL ブリッジの入出力レート制限をディセーブルにすると、レイヤ 3 リダイレクトによるレート制限の結果は、ブリッジの結果に変換されます。
入力または出力 ACL ブリッジド パケットのレート制限は、1 つのレート リミッタ レジスタを共有します。この機能をオンにすると、入力および出力 ACL にはいずれも、同じレート リミッタ値が使用されます。
次の例では、入力 ACL ブリッジの結果からのユニキャスト パケットを 50000 pps(パケット/秒)に制限し、バースト値を 50 に制限します。
Router(config)# mls rate-limit unicast acl input 50000 50
次の例では、入力 ACL ブリッジの結果からのユニキャスト パケットを、出力 ACL ブリッジの結果と同じレート(50000 pps、バースト値 50)に制限します。
Router(config)# mls rate-limit unicast acl output 50000 50
入力または出力のいずれかでレート リミッタの値が変更されると(両方がイネーブルになっている場合)、両方の値が新しい値に変更されます。次の例では、出力レートが 40000 pps に変更されます。
Router(config)# mls rate-limit unicast acl output 40000 50
show mls rate-limit コマンドを入力すると、ACL ブリッジド入力(ACL BRIDGED IN)および出力(ACL BRIDGED OUT)の値がどちらも 40000 pps に変わっていることを確認できます。
Router# sh mls rate-limit
Load for five secs: 0%/0%; one minute: 0%; five minutes: 0% Time source is NTP, 10:32:15.584 PDT Fri Aug 5 2005
Rate Limiter Type Status Packets/s
----------------- ---------- ---------
FIB(CEF)受信および FIB 収集(ユニキャストのみ)
FIB 受信レート リミッタの機能は、宛先アドレスとして MSFC IP を保持するすべてのパケットをレート制限することです。レート リミッタは、正しいフレーム(good frame)と不正なフレーム(bad frame)を区別しません。
(注) Control Plane Policing(CoPP)を使用する場合は、FIB 受信レート リミッタをイネーブルにしないでください。FIB 受信レート リミッタは、CoPP ポリシーを上書きします。
次の例では、トラフィックを 25000 pps、およびバースト値 60 にレート制限します。
Router(config)# mls rate-limit unicast cef receive 25000 60
FIB 収集レート リミッタは ARP トラフィックを制限しません。しかし、アドレス解決(ARP)を必要とし、MSFC に送信されるトラフィックをレート制限する機能を備えます。この状況は、ポートに送られたトラフィックに含まれるホスト アドレスが、MSFC にローカル接続されているサブネット上のアドレスであり、この宛先ホストに対する ARP エントリが存在しない場合に発生します。この場合、この宛先ホストの MAC アドレスに対しては、直接接続されているサブネットが不明であるため、このサブネット上のどのホストからも回答がありません。したがって、[glean] 隣接が該当し、トラフィックは MSFC に直接送られ、ここで ARP 解決が行われます。このレート リミッタは、このような ARP 要求によって CPU を過負荷にする攻撃の可能性を制限します。
次の例では、MSFC に送信されるトラフィックを 20000 pps、およびバースト値 60 に制限します。
Router(config)# mls rate-limit unicast cef glean 20000 60
VACL ログ(ユニキャストのみ)
VACL ロギングの結果によって MSFC に送信されたパケットをレート制限すると、ロギング タスクによって CPU が過負荷になることを防止できます。VACL はハードウェア処理されますが、MSFC によるロギングが行われます。スイッチで VACL ロギングを設定しておくと、VACL で拒否された IP パケットに対するログ メッセージが生成されます。
次の例では、ロギング要求を 5000 pps(このレート リミッタの有効範囲は 10 ~ 5000 pps)に制限します。
Router(config)# mls rate-limit unicast acl vacl-log 5000
レイヤ 3 セキュリティ機能(ユニキャストのみ)
いくつかのセキュリティ機能では、パケットはまず MSFC に送信されてから処理されます。このようなセキュリティ機能では、MSFC に送信されるパケットの数をレート制限することで、過負荷の可能性を抑える必要があります。これは、認証プロキシ(auth-proxy)、IPSEC、検査などのセキュリティ機能です。
認証プロキシは、入力ユーザまたは出力ユーザ、またはその両方の認証に使用されます。通常これらのユーザはアクセス リストによってブロックされますが、認証プロキシを使用すると、ユーザはブラウザを開いてファイアウォールを通過し、IP アドレスに基づき Terminal Access Controller Access Control System Plus(TACACS+)または RADIUS サーバの認証を受けることができます。このサーバは追加のアクセス リスト エントリをスイッチに渡し、認証を受けたユーザの通過を許可します。これらの ACL はソフトウェア内で保存および処理されます。このため、認証プロキシを使用するユーザ数が多すぎると、MSFC が過負荷になる恐れがあります。このような場合にレート制限を行うと効果的です。
IPSec および検査も MSFC によって実行されるので、状況によってはレート制限が必要です。レイヤ 3 セキュリティ機能レート リミッタをイネーブルにすると、認証プロキシ、IPSec、および検証すべてが同時にイネーブルになります。
次の例では、セキュリティ機能を 100000 pps、およびバースト値 10 にレート制限します。
Router(config)# mls rate-limit unicast ip features 100000 10
セキュリティ ACL および VACL
ネットワークが実際に DoS 攻撃を受けた場合は、ターゲットに到達する前に DoS パケットを廃棄するための有効な手段として、ACL を使用できます。セキュリティ ACL は、特定のホストから攻撃が検出されたときに使用します。次の例では、ホスト 10.1.1.10 と、このホストからのすべてのトラフィックを拒否します。
Router(config)# access-list 101 deny ip host 10.1.1.10 any
Router(config)# access-list 101 permit ip any any
また、セキュリティ ACL はアドレスのスプーフィングも防止します。たとえば、ネットワークの内側、およびインターネットをポイントするスイッチインターフェイスの内側に、A という送信元アドレスがあるとします。この場合は、スイッチのインターネット インターフェイスに、送信元 A(内部アドレス)からのすべてのアドレスを拒否する入力 ACL を適用します。これで、内部のこの送信元アドレスを偽装する攻撃を防止できます。このようなパケットがスイッチインターフェイスに到達すると、このパケットは ACL と一致するため、被害が発生する前に廃棄されます。
Catalyst 6500 シリーズ スイッチとともに Cisco Intrusion Detection Module(CIDM)を使用すると、検知エンジンが攻撃を検知した時点で、セキュリティ ACL をダイナミックにインストールできます。
VACL は、レイヤ 2、レイヤ 3、およびレイヤ 4 情報に基づくセキュリティ強化ツールです。VACL によるパケット検索の結果は、許可(permit)、拒否(deny)、許可およびキャプチャ(permit and capture)、またはリダイレクト(redirect)のいずれかになります。VACL を特定の VLAN に関連付けると、トラフィックがこの VLAN に許可されるには、すべてのトラフィックが VACL によって許可されなければならなくなります。VACL はハードウェア内で適用されます。したがって Catalyst 6500 シリーズ スイッチの VLAN に VACL を適用しても、パフォーマンス ペナルティは発生しません。
QoS レート制限
QoS ACL は、MSFC3 によって処理される、特定の種類のトラフィックの量を制限します。MSFC に対して DoS 攻撃が開始されると、QoS ACL は DoS トラフィックが MSFC データ パスに到達し、輻輳を防ぎます。PFC3 は QoS をハードウェア内で実行します。この仕組みは、DoS トラフィックを制限して(DoS トラフィックの検知後)、スイッチが MSFC に影響を与えることを防ぐ上で効果的です。
たとえば、ネットワークが ping-of-death や smurf 攻撃などを受けた場合、管理者はこの DoS 攻撃に対処するため ICMP トラフィックをレート制限する必要がありますが、同時に正規のトラフィックのプロセッサ処理、または MSFC やホストへの転送を許可する必要があります。このレート制限は、レート制限の必要な個々のフローに設定し、レート制限ポリシー アクションをインターフェイスに適用する必要があります。
次の例に示すアクセス リスト 101 は、すべての送信元からすべての宛先にトラフィックとして流れる ping(エコー)ICMP メッセージを許可および識別します。ポリシー マップ内では、ポリシー ルールによって指定の Committed Information Rate(CIR; 認定情報速度)およびバースト値(96000 bps、16000 bps)を定義し、シャーシを通過する ping(ICMP)トラフィックをレート制限します。このポリシー マップは、インターフェイスまたは VLAN に適用されます。ping トラフィックがポリシー マップの適用された VLAN またはインターフェイスで指定のレートを超えると、このトラフィックはマークダウン マップに従って廃棄されます(この例では、通常のバースト設定に対するマークダウン マップは掲載していません)。
Router(config)# access-list 101 permit icmp any any echo
Router(config)# class-map match-any icmp_class
Router(config-cmap)# match access-group 101
Router(config-cmap)# exit
Router(config)# policy-map icmp_policer
Router(config-pmap)# class icmp_class
Router(config-pmap-c)# police 96000 16000 conform-action transmit exceed-action policed-dscp-transmit drop
Router(config-pmap-c)# exit
Router(config-pmap)# exit
uRPF チェック
unicast Reverse Path Forwarding(uRPF)チェックをイネーブルにすると、スプーフィングされた IP 送信元アドレスなど、確認可能な送信元 IP アドレスを持たないパケットが廃棄されます。送信元アドレスと、これが受信されたインターフェイスとが、スーパーバイザ エンジンの FIB テーブルと一致しているかどうかを確認するには、Cisco Express Forwarding(CEF)テーブルが使用されます。
インターフェイス上で uRPF チェックをイネーブルにすると(VLAN 単位)、受信パケットは逆引き参照によって CEF テーブルと比較されます。いずれかのリバース パス ルートから受信されたパケットは転送されます。受信パケットに対し、インターフェイス上にリバース パス ルートが 1 つも存在しない場合は、このパケットは uRPF チェックに失敗したことになります。このパケットは、uRPF チェックに失敗したトラフィックに ACL が適用されるかどうかに応じて廃棄または転送されます。CEF テーブルに ACL が指定されていない場合は、偽装パケットはただちに廃棄されます。
uRPF チェックの ACL は、uRPF チェックに失敗したパケットにのみ指定できます。この ACL は、パケットをただちに廃棄するか、または転送するかをチェックします。ACL による uRPF チェックは、ハードウェア内の PFC3 ではサポートされません。uRPF ACL で拒否されたパケットは、ハードウェア内で転送されます。許可されたパケットは CPU に送信されます。
PFC3 では、uRPF チェックはハードウェア内でサポートされます。PFC2 でもハードウェア内でサポートされますが、リターン パスは 1 つだけです。ただし、uRPF チェックに失敗し、適用された ACL によって転送されるすべてのパケットは、MSFC に送信およびレート制限され、ICMP 到達不能メッセージを生成します。これらの動作は、すべてソフトウェアによって制御されます。ハードウェアでの uRPF チェックは、最大 2 つのリターン パス(インターフェイス)を持つルートに対してサポートされ、インターフェイス グループが設定された場合は最大 6 つのリターン パス(2 つは FIB テーブルから、4 つはインターフェイス グループから)を持つルートに対してサポートされます。
トラフィック ストーム制御
トラフィック ストームは、パケットが LAN でフラッディングする場合に発生するもので、過剰なトラフィックを生成し、ネットワークのパフォーマンスを低下させます。トラフィック ストーム制御機能は、ネットワーク設定の誤り、またはユーザによる DoS 攻撃の開始が原因となり、物理インターフェイス上のブロードキャスト、マルチキャスト、またはユニキャスト トラフィック ストームによって LAN ポートが中断されるのを防ぎます。トラフィック ストーム制御(トラフィック抑制とも呼ぶ)は、1 秒間のトラフィック ストーム制御インターバルにおいて受信するトラフィックのレベルをモニタします。このインターバルの間、設定済みのトラフィック ストーム制御レベルに対し、トラフィック レベルが比較されます。トラフィック ストーム制御レベルは、ポートの利用可能な帯域幅全体に対するパーセンテージです。各ポートには、すべてのタイプのトラフィック(ブロードキャスト、マルチキャスト、およびユニキャスト)用に使用されている単一のトラフィック ストーム制御レベルがあります。
トラフィック ストーム制御はインターフェイスに対して設定され、デフォルトではディセーブルにされています。次の設定例では、インターフェイス FastEthernet 2/3 上で、レベル 20% のブロードキャスト アドレス ストーム制御をイネーブルにしています。1 秒間のトラフィック ストーム制御インターバルで、ブロードキャスト トラフィックが、設定されたレベルであるポートの有効帯域幅合計の 20% を超えると、このトラフィック ストーム制御インターバルが終了するまで、すべてのブロードキャスト トラフィックが廃棄されます。
Router(config-if)# storm-control broadcast level 20
Catalyst 6500 シリーズ スイッチは、すべての LAN ポートでブロードキャスト ストーム制御をサポートし、ギガビット イーサネット ポートではユニキャスト ストーム制御をサポートします。
2 つまたは 3 つの抑制モードを同時に設定する場合は、同じレベル設定が共有されます。ブロードキャスト抑制をイネーブルにした場合に、マルチキャスト抑制もイネーブルにし、そのスレッシュホールドを 70% に設定すると、ブロードキャスト抑制にもこの 70% の設定が適用されます。
SYN 攻撃を受けたネットワーク
SYN 攻撃を受けたネットワークは、簡単に見分けることができます。ターゲット ホストは極端に低速になるか、クラッシュするか、または処理が中断されます。ターゲット ホストから返されたトラフィックによって MSFC に問題が生じることもあります。これは、リターン トラフィックが、元のパケットからランダムに抽出された送信元アドレスに送信され、「本物」の IP トラフィックのローカル性が失われることで、ルート キャッシュまたは CEF テーブルでオーバーフローが生じる可能性があるためです。
ネットワークが SYN 攻撃を受けると、TCP インターセプト機能がアグレッシブな防御モードに変わります。スイッチ上でアグレッシブな動作が開始および終了するタイミングは、次の 2 つの要素によって決定されます。
•
未完了接続の合計数
•
最後の 1 分間のサンプリング期間における接続要求数
両方の要素には、最小値と最大値の両方を設定します。
未完了接続の数が 1,100 を超えると、または最後の 1 分間の接続数が 1,100 に達すると、新たな接続が確立されるたびに、最も古い部分接続(ランダム接続)が削除されるようになります。これはデフォルト値であり、変更できます。いずれかのスレッシュホールドが超過すると、サーバが攻撃を受けたとみなされ、TCP インターセプト機能はアグレッシブ モードに変わり、以下が行われます。
•
新たに接続が確立するたびに、最も古い部分接続(ランダムな部分接続)が削除されます。
•
最初の再送信タイムアウトが半減されて 0.5 秒となり、この結果、接続の確立を試みる合計時間も半減します。
•
ウォッチ モードでは、ウォッチ タイムアウトも半減されます。
(注) 設定した最小値を両方のスレッシュホールドが下回ると、アグレッシブ モードは終了します(デフォルト値はいずれも 900)。TCP インターセプト設定の詳細については、表37-1 を参照してください。
TCP フローは、PFC2 および PFC3(すべての PFC3 タイプ)においてハードウェア補助される機能です。
ARP ポリシング
悪意あるユーザが攻撃を仕掛ける際、ルーティング プロトコルや ARP パケットなどの制御パケットによって、MSFC CPU を過負荷にしようと試みる場合があります。このような特殊な制御パケットは、特定のルーティング プロトコルおよび ARP ポリシング機能によって、ハードウェアでレート制限することができます。これは、mls qos protocol コマンドによって設定します。RIP、BGP、LDP、OSPF、IS-IS、IGRP、EIGRP といったルーティング プロトコルがサポートされます。たとえば mls qos protocol arp police 32000 というコマンドは、ARP パケットをハードウェア内で 32,000 bps にレート制限します。このポリシング機能は、ラインレート ARP 攻撃などの攻撃から MSFC CPU を効果的に保護しますが、スイッチへのルーティング プロトコルおよび ARP パケットのポリシングだけにとどまらず、CoPP より低い粒度で機器を通過するトラフィックもポリシングします。
ポリシング メカニズムは、ポリシング回避メカニズムとルート設定を共有します。ポリシング回避メカニズムは、QoS ポリサーに到達したルーティング プロトコルおよび ARP パケットに対し、ネットワークの通過を許可します。このメカニズムを設定するには、mls qos protocol protocol pass-through コマンドを使用します。
次の例では、ARP ポリシングで使用可能なプロトコルを一覧表示する方法を示します。
Router(config)# mls qos protocol ?
次の例では、mls qos protocol arp コマンドで使用可能なキーワードを一覧表示する例を示します。
Router(config)# mls qos protocol arp ?
pass-through pass-through keyword
precedence change ip-precedence(used to map the dscp to cos value)
推奨されるレート リミッタ設定
レート リミッタは、次のように設定することを推奨します。
•
DoS 攻撃で使用される可能性が最も高い種類のトラフィックに対し、レート リミッタをイネーブルにします。
•
VACL ロギングを設定していない場合は、VACL ロギングにレート リミッタを使用しないでください。
•
ハードウェア転送をサポートするプラットフォーム(Catalyst 6500 シリーズ スイッチなど)では、リダイレクトの必要性が少なくされているため、リダイレクトをディセーブルにします。
•
ハードウェア転送をサポートするプラットフォーム(Catalyst 6500 シリーズ スイッチなど)では、到達不能メッセージの必要性が少なくされているため、到達不能レート リミッタをディセーブルにします。
•
すべてのインターフェイスの MTU が同じである場合は、MTU レート リミッタをイネーブルにしないでください。
•
レイヤ 2 Protocol Data Unit(PDU; プロトコル データ ユニット)レート リミッタを設定する場合は、次の点に注意してください。
–
有効な PDU の予測値(可能な値)を計算し、この値を 2 倍または 3 倍にします。
–
PDU には、BPDU、DTP、VTP、PAgP、LACP、UDLD などが含まれます。
–
各レート リミッタは、正しいフレーム(good frame)と不正なフレーム(bad frame)を区別しません。
PFC3 のハードウェア ベース レート リミッタ
PFC3 では、ハードウェア ベースのレート リミッタを追加で使用できます。PFC3 は、新たなレート リミッタに対応する 8 つのレート リミッタ レジスタを備えています。これらはすべて、スイッチ上でグローバルに設定します。これらのレート リミッタ レジスタはレイヤ 3 転送エンジン(PFC)上にあり、使用可能な様々な設定済みレート リミッタと一致した各パケットに関する、レート制限情報の格納を行います。
8 つのレート リミッタ レジスタは、PFC3 に実装されているため、異なる複数のレート制限シナリオで、同一レジスタが強制的に共有される場合もあります。各レジスタは、先着順に割り当てられます。すべてのレジスタが使用されている場合、もう 1 つのレート リミッタを新たに設定する唯一の方法は、いずれか 1 つのレジスタを解放することです。
PFC3 で使用可能なハードウェア ベースのレート リミッタは、次のとおりです。
•
入力および出力 ACL ブリッジド パケット
•
uRPF チェックの失敗
•
FIB 受信
•
FIB 収集
•
レイヤ 3 セキュリティ機能
•
ICMP リダイレクト
•
ICMP 到達不能(ACL 廃棄)
•
ルートなし(FIB 不一致)
•
VACL ログ
•
TTL 失敗
•
MTU 失敗
•
マルチキャスト IPv4
•
マルチキャスト IPv6
入出力 ACL ブリッジド パケット(ユニキャストのみ)
このレート リミッタは、入出力 ACL ブリッジの結果として MSFC に送信されたパケットをレート制限します。スイッチはこの機能を実現するため、TCAM ブリッジの結果を表す既存および新規の ACL TCAM エントリを、MSFC をポイントするレイヤ 3 リダイレクトの結果に変更します。TCAM エントリが、変更したレイヤ 3 リダイレクト レート制限の結果と一致するパケットは、ネットワーク管理者が CLI で設定した指示に従ってレート制限されます。入力値および出力値は、いずれも同一のレート リミッタ レジスタを共有するため、同じ値となります。ACL ブリッジの入出力レート制限をディセーブルにすると、レイヤ 3 リダイレクトによるレート制限の結果は、ブリッジの結果に変換されます。
入力または出力 ACL ブリッジド パケットのレート制限は、1 つのレート リミッタ レジスタを共有します。この機能をオンにすると、入力および出力 ACL にはいずれも、同じレート リミッタ値が使用されます。
バースト値は、1 度のバーストで許可されるパケット数を制限します。許可される個々のパケットは、それぞれ 1 つのトークンを使用します。1 つのパケットに対し 1 つのトークンが使用可能である必要があります。1 ミリ秒ごとに 1 つのトークンが生成されます。パケットが送られて来ないと、トークンは最大バースト値まで蓄積されます。たとえば、バースト値を 50 に設定している場合は、スイッチは最大 50 のトークンを蓄積でき、50 パケットのバーストを吸収できます。
次の例では、入力 ACL ブリッジの結果からのユニキャスト パケットを 50000 pps(パケット/秒)に制限し、バースト値を 50 に制限します。
Router(config)# mls rate-limit unicast acl input 50000 50
次の例では、入力 ACL ブリッジの結果からのユニキャスト パケットを、出力 ACL ブリッジの結果と同じレート(50000 pps、バースト値 50)に制限します。
Router(config)# mls rate-limit unicast acl output 50000 50
入力または出力のいずれかでレート リミッタの値が変更されると(両方がイネーブルになっている場合)、両方の値が新しい値に変更されます。次の例では、出力レートが 40000 pps に変更されます。
Router(config)# mls rate-limit unicast acl output 40000 50
show mls rate-limit コマンドを入力すると、ACL ブリッジド入力(ACL BRIDGED IN)および出力(ACL BRIDGED OUT)の値がどちらも 40000 pps に変わっていることを確認できます。
Router# show mls rate-limit
Rate Limiter Type Status Packets/s Burst
--------------------- ---------- --------- -----
MCAST DFLT ADJ On 100000 100
ACL BRIDGED IN On 40000 50
ACL BRIDGED OUT On 40000 50
uRPF チェックの失敗
uRPF チェック失敗のレート リミッタを使用すると、uRPF チェックに失敗したために MSFC に送信する必要のあるパケットのレートを設定できます。uRPF チェックは、インターフェイスの受信したパケットが有効な送信元からのものであるかどうかを検証する機能です。これにより、偽装アドレスを使用するユーザからの DoS 攻撃の潜在的な脅威を最小にできます。uRPF チェックに失敗した偽装パケットは、MSFC に送信されることがあります。uRPF チェック レート リミッタを使用すると、uRPF チェックの失敗が発生した場合に、MSFC CPU にブリッジされる 1 秒あたりのパケット数をレート制限できます。
次の例では、uRPF チェックに失敗し、MSFC に送信されるパケットを、100000 pps およびバースト パケット 100 にレート制限します。
Router(config)# mls rate-limit unicast ip rpf-failure 100000 100
TTL 失敗
このレート リミッタは、Time to Live(TTL)チェックに失敗したために MSFC に送信されるパケットをレート制限します。次の例の all キーワードからもわかるように、このレート リミッタはマルチキャストおよびユニキャスト トラフィックの両方に適用されます。
(注) TTL 失敗のレート リミッタは、IPv6 マルチキャストではサポートされません。
次の例では、TTL に失敗したパケットを 70000 pps、およびバースト値 150 にレート制限します。
Router(config)# mls rate-limit all ttl-failure 70000 150
ICMP 到達不能(ユニキャストのみ)
ICMP 到達不能攻撃では、攻撃対象の装置(この場合は MSFC)からは到達できない宛先アドレスを持つパケットを大量に送りつけることで、この装置を過負荷にします。ICMP 到達不能レート リミッタを使用すると、到達不能なアドレスを持ち、MSFC に送信されるパケットをレート制限できます。
次の例では、ACL 廃棄によって MSFC に送信されるパケットを、10000 pps および バースト値 100 にレート制限します。
Router(config)# mls rate-limit unicast ip icmp unreachable acl-drop 10000 100
次の例では、FIB との不一致によって到達不能 ICMP メッセージの生成が必要となるパケットを、80000 pps および バースト値 70 にレート制限します。
Router(config)# mls rate-limit unicast ip icmp unreachable no-route 80000 70
ICMP 到達不能(ルートなし)、ICMP 到達不能(ACL 廃棄)、IP エラー、および IP RPF 失敗の 4 つのレート リミッタは、同一のレート リミッタ レジスタを共有します。このいずれかのリミッタをイネーブルにすると、4 つのリミッタすべては同じ値を共有し、状況によっては同じ状態を共有します(ON/ON/ON など)。レート リミッタの内容を確認すると、このレジスタのメンバーが別の機能の設定によってイネーブルにされている場合は、ステータスは ON ではなく ON-Sharing と表示されます。ただし、TTL 失敗のレート リミッタは例外です。この機能を手動でイネーブルにしている場合は、この値はレジスタ内の他のメンバーと同じ値を共有します。
FIB(CEF)受信(ユニキャストのみ)
FIB 受信レート リミッタの機能は、宛先アドレスとして MSFC IP を保持するすべてのパケットをレート制限することです。レート リミッタは、正しいフレーム(good frame)と不正なフレーム(bad frame)を区別しません。
(注) CoPP を使用する場合は、FIB 受信レート リミッタをイネーブルにしないでください。FIB 受信レート リミッタは、CoPP ポリシーを上書きします。
次の例では、トラフィックを 25000 pps、およびバースト値 60 にレート制限します。
Router(config)# mls rate-limit unicast cef receive 25000 60
FIB 収集(ユニキャストのみ)
FIB 収集レート リミッタは ARP トラフィックを制限しません。しかし、アドレス解決(ARP)を必要とし、MSFC に送信されるトラフィックをレート制限する機能を備えます。この状況は、ポートに送られたトラフィックに含まれるホスト アドレスが、MSFC にローカル接続されているサブネット上のアドレスであり、この宛先ホストに対する ARP エントリが存在しない場合に発生します。この場合、この宛先ホストの MAC アドレスに対しては、直接接続されているサブネットが不明であるため、このサブネット上のどのホストからも回答がありません。したがって、[glean] 隣接が該当し、トラフィックは MSFC に直接送られ、ここで ARP 解決が行われます。このレート リミッタは、このような ARP 要求によって CPU を過負荷にする攻撃の可能性を制限します。
次の例では、MSFC に送信されるトラフィックを 20000 pps、およびバースト値 60 に制限します。
Router(config)# mls rate-limit unicast cef glean 20000 60
レイヤ 3 セキュリティ機能(ユニキャストのみ)
いくつかのセキュリティ機能では、パケットはまず MSFC に送信されてから処理されます。このようなセキュリティ機能では、MSFC に送信されるパケットの数をレート制限することで、過負荷の可能性を抑える必要があります。これは、認証プロキシ(auth-proxy)、IPSEC、検査などのセキュリティ機能です。
認証プロキシは、入力ユーザまたは出力ユーザ、またはその両方の認証に使用されます。通常これらのユーザはアクセス リストによってブロックされますが、認証プロキシを使用すると、ユーザはブラウザを開いてファイアウォールを通過し、IP アドレスに基づき Terminal Access Controller Access Control System Plus(TACACS+)または RADIUS サーバの認証を受けることができます。このサーバは追加のアクセス リスト エントリをスイッチに渡し、認証を受けたユーザの通過を許可します。これらの ACL はソフトウェア内で保存および処理されます。このため、認証プロキシを使用するユーザ数が多すぎると、MSFC が過負荷になる恐れがあります。このような場合にレート制限を行うと効果的です。
IPSec および検査も MSFC によって実行されるので、状況によってはレート制限が必要です。レイヤ 3 セキュリティ機能レート リミッタをイネーブルにすると、認証プロキシ、IPSec、および検証すべてが同時にイネーブルになります。
次の例では、セキュリティ機能を 100000 pps、およびバースト値 10 にレート制限します。
Router(config)# mls rate-limit unicast ip features 100000 10
ICMP リダイレクト(ユニキャストのみ)
ICMP リダイレクト レート リミッタを使用すると、ICMP トラフィックをレート制限できます。たとえば、最適化されていないスイッチを経由してホストがパケットを送信すると、MSFC はこのホストに対し、送信パスを修正するように ICMP リダイレクト メッセージを送信します。このトラフィックが連続的に発生する場合、レート制限を行わないと、MSFC は ICMP リダイレクト メッセージを連続的に生成します。
次の例では、ICMP リダイレクトを 20000 pps、およびバースト パケット 20 にレート制限します。
Router(config)# mls rate-limit unicast ip icmp redirect 20000 20
VACL ログ(ユニキャストのみ)
VLAN-ACL ロギングの結果によって MSFC に送信されたパケットをレート制限すると、ロギング タスクによって CPU が過負荷になることを防止できます。VACL はハードウェア処理されますが、MSFC によるロギングが行われます。スイッチで VACL ロギングを設定しておくと、VACL で拒否された IP パケットに対するログ メッセージが生成されます。
次の例では、ロギング要求を 5000 pps(このレート リミッタの有効範囲は 10 ~ 5000 pps)に制限します。
Router(config)# mls rate-limit unicast acl vacl-log 5000
MTU 失敗
MTU 失敗のレート リミッタは TTL 失敗のレート リミッタと似ており、ユニキャストおよびマルチキャスト トラフィックの両方でサポートされます。MTU チェックに失敗したパケットは、MSFC CPU に送信されます。これにより、MSFC が過負荷になることがあります。
次の例では、MTU チェックに失敗し、MSFC に送信されるパケットを、10000 pps およびバースト値 10 にレート制限します。
Router(config)# mls rate-limit all mtu 10000 10
レイヤ 2 マルチキャスト IGMP スヌーピング
Internet Group Management Protocol(IGMP)スヌーピング レート リミッタは、スーパーバイザ エンジン宛てのレイヤ 2 IGMP パケットの数を制限します。IGMP スヌーピングは、ホストとスーパーバイザ エンジン間の IGMP メッセージを待ち受けます。Catalyst 6500 シリーズ スイッチが truncated モードで動作している場合は、レイヤ 2 PDU レート リミッタはイネーブルにできません。ファブリック対応モジュールとファブリック非対応モジュールの両方が搭載されている場合、スイッチはファブリック モジュール間のトラフィックに truncated モードを使用します。このモードでは、スイッチはスイッチ ファブリック チャネルを通じて、切り捨てた形のトラフィック(フレームの初めの 64 バイト)を送信します。
次の例では、IGMP スヌーピング トラフィックをレート制限します。
Router(config)# mls rate-limit multicast ipv4 igmp 20000 40
レイヤ 2 PDU
レイヤ 2 PDU レート リミッタを使用すると、MSFC CPU ではなくスーパーバイザ エンジン宛てに送信されたレイヤ 2 PDU プロトコル パケット(BPDU、DTP、PAgP、CDP、STP、および VTP パケット)の数をレート制限できます。Catalyst 6500 シリーズ スイッチが truncated モードで動作している場合は、レイヤ 2 PDU レート リミッタはイネーブルにできません。ファブリック対応モジュールとファブリック非対応モジュールの両方が搭載されている場合、スイッチはファブリック モジュール間のトラフィックに truncated モードを使用します。このモードでは、スイッチはスイッチ ファブリック チャネルを通じて、切り捨てた形のトラフィック(フレームの初めの 64 バイト)を送信します。
次の例では、レイヤ 2 PDU を 20000 pps、およびバースト パケット 20 にレート制限します。
Router(config)# mls rate-limit layer2 pdu 20000 20
レイヤ 2 プロトコル トンネリング
このレート リミッタは、スーパーバイザ エンジン宛てのレイヤ 2 プロトコル トンネリング パケット(制御 PDU、CDP、STP、および VTP パケット)をレート制限します。これらのパケットはソフトウェアによってカプセル化(PDU 内の宛先 MAC アドレスを書き換え)されてから、専用のマルチキャスト アドレス(01-00-0c-cd-cd-d0)に転送されます。Catalyst 6500 シリーズ スイッチが truncated モードで動作している場合は、レイヤ 2 PDU レート リミッタはイネーブルにできません。ファブリック対応モジュールとファブリック非対応モジュールの両方が搭載されている場合、スイッチはファブリック モジュール間のトラフィックに truncated モードを使用します。このモードでは、スイッチはスイッチ ファブリック チャネルを通じて、切り捨てた形のトラフィック(フレームの初めの 64 バイト)を送信します。
次の例では、レイヤ 2 プロトコル トンネリング パケットを 10000 pps、およびバースト パケット 10 にレート制限します。
Router(config)# mls rate-limit layer2 l2pt 10000 10
IP エラー
このレート リミッタは、IP チェックサム エラーおよび長さのエラーが生じたパケットを制限します。PFC3 に到達したパケットで、IP チェックサム エラーまたは長さの整合性エラーが発生している場合は、このパケットは追加処理のために MSFC に送信される必要があります。このように形式に誤りのあるパケットは、攻撃者によって DoS 攻撃の実行に悪用されることがありますが、ネットワーク管理者はこのようなパケットのレートを設定することで、制御パスを保護できます。
次の例では、IP エラーの生じたパケットを 1000 pps、およびバースト パケット 20 にレート制限します。
Router(config)# mls rate-limit unicast ip errors 1000 20
IPv4 マルチキャスト
このレート リミッタは、IPv4 マルチキャスト パケットを制限します。このレート リミッタでは、ハードウェア内のデータ パスから、ソフトウェア内のデータ パスまで送信されたパケットをレート制限できます。これを使用することで、ソフトウェア内の制御パスが輻輳することを防止し、設定したレートを超えたトラフィックを廃棄できます。IPv4 マルチキャスト レート リミッタは、設定可能な 3 つのレート リミッタから構成されます。FIB 不一致に対するレート リミッタ、マルチキャストで部分的にスイッチされるフローのレート リミッタ、およびマルチキャスト直接接続レート リミッタです。
FIB 不一致に対するレート リミッタを使用すると、mroute テーブル内のエントリと一致しないマルチキャスト トラフィックをレート制限できます。
部分的にスイッチされたフローに対するレート リミッタを使用すると、転送および複製のために MSFC3 宛てに送信されるフローをレート制限できます。マルチキャスト トラフィック フローにおいて、少なくとも 1 つの発信レイヤ 3 インターフェイスが多層的にスイッチングされ、少なくとも 1 つの発信インターフェイスが多層的にスイッチングされていない場合(ハードウェア スイッチの H ビットが設定されていない)は、このフローは部分的にスイッチングされたフロー、つまりパーシャル SC(パーシャル ショートカット)とみなされます。H ビット フラグが設定された発信インターフェイスはハードウェア内でスイッチングされ、残りのトラフィックは MSFC3 により、ソフトウェア内でスイッチングされます。このため、転送および複製のために MSFC3 に送信されるフローをレート制限することをお勧めします。レート制限をしないと、このフローによって CPU の稼働率が高くなる可能性があります。
マルチキャスト直接接続レート リミッタは、直接接続された送信元からのマルチキャスト パケットを制限します。
次の例では、マルチキャスト パケットを 30000 pps、およびバースト値 30 にレート制限します。
Router(config)# mls rate-limit multicast ipv4 connected 30000 30
ip-option キーワード、および IP オプション レート リミッタは、PFC3B または PFC3BXL モードのみでサポートされます。
次の例では、uRPF チェックに失敗した IPv4 マルチキャスト パケットのレート制限を設定する方法を示します。
Router(config)# mls rate-limit multicast ipv4 non-rpf 100
次の例では、マルチキャスト FIB 不一致パケットを 10000 pps、およびバースト値 10 にレート制限します。
Router(config)# mls rate-limit multicast ipv4 fib-miss 10000 10
次の例では、パーシャル ショートカット フローを 20000 pps、およびバースト パケット 20 にレート制限します。
Router(config)# mls rate-limit multicast ipv4 partial 20000 20
次の例では、マルチキャスト パケットを 30000 pps、およびバースト値 20 にレート制限します。
Router(config)# mls rate-limit multicast ipv4 connected 30000 20
次の例では、IGMP スヌーピング トラフィックをレート制限します。
Router(config)# mls rate-limit multicast ipv4 igmp 20000 40
IPv6 マルチキャスト
このレート リミッタは、IPv6 マルチキャスト パケットをレート制限します。 表37-2 は、IPv6 レート リミッタの一覧、および各レート リミッタが対応するトラフィック クラスを示します。
表37-2 IPv6 レート リミッタ
|
|
接続済み |
直接接続された送信元トラフィック |
デフォルト廃棄 |
* (*, G/m) SSM * (*, G/m) SSM non-rpf |
ルート制御 |
* (*, FF02::X/128) |
Starg ブリッジ |
* (*, G/128) SM * (*, G) が存在する場合は SM 非 rpf トラフィック |
Starg-M ブリッジ |
* (*, G/m) SM * (*, FF/8) * (*, G) が存在しない場合は SM 非 rpf トラフィック |
IPv6 マルチキャスト トラフィックのレート リミッタを設定するには、次のいずれかの方法を使用できます。
•
レート リミッタをトラフィック クラスに直接関連付け ― レートを選択して、このレートをレート リミッタに関連付けます。次の例では、1000 pps および 20 バースト パケットを選択して、このレートをデフォルト廃棄( default-drop )レート リミッタに関連付けます。
Router(config)# mls rate-limit multicast ipv6 default-drop 1000 20
•
レート リミッタを、設定済みの別のレート リミッタとスタティックに共有 ― 隣接関係に基づくレート リミッタが十分に確保できない場合は、すでに設定されたレート リミッタ(ターゲット レート リミッタ)とレート リミッタを共有できます。次の例では、ルート制御( route-cntl )レート リミッタを、デフォルト廃棄( default-drop )ターゲット レート リミッタと共有します。
Router(config)# mls rate-limit multicast ipv6 route-cntl share default-drop
ターゲット レート リミッタが未設定の場合は、ターゲット レート リミッタを別のレート リミッタと共有するには、ターゲット レート リミッタが設定されている必要があることを通知するメッセージが表示されます。
•
レート リミッタをダイナミックに共有 ― どのレート リミッタを共有すべきか判断しにくい場合は、 share auto キーワードを使用して、ダイナミック共有をイネーブルにします。ダイナミック共有をイネーブルにすると、事前設定されたレート リミッタが選択され、このレート リミッタが指定のレート リミッタと共有されます。次の例では、ルート制御(route-cntrl)レート リミッタに対してダイナミック共有を選択します。
Router(config)# mls rate-limit multicast ipv6 route-cntl share auto
次の例では、直接接続された送信元からの IPv6 マルチキャスト パケットのレート制限を設定する方法を示します。
Router(config)# mls rate-limit multicast ipv6 connected 1500 20
次の例では、レート リミッタをトラフィック クラスに直接関連付ける設定方法を示します。
Router(config)# mls rate-limit multicast ipv6 default-drop 1000 20
次の例では、事前設定された別のレート リミッタとレート リミッタをスタティックに共有する方法を示します。
Router(config)# mls rate-limit multicast ipv6 route-cntl share default-drop
次の例では、ルート制御レート リミッタに対してダイナミック共有をイネーブルにします。
Router(config)# mls rate-limit multicast ipv6 route-cntl share auto
DoS 攻撃からの保護における設定時の注意事項および制約事項
ここでは、次の設定における注意事項および制約事項について説明します。
•
「PFC2」
•
「PFC3」
PFC2
PFC2 を使用するシステムに対して DoS 攻撃からの保護を設定する場合は、次の注意事項および制約事項に従ってください。
•
セキュリティ ACL を使用して DoS パケットを廃棄する場合は、次の点に注意します。
–
セキュリティ ACL には、廃棄するトラフィック フローを指定する必要があります。
–
セキュリティ ACL は、保護する必要があるすべての外部インターフェイスに設定する必要があります。複数のインターフェイスにセキュリティ ACL を設定するには、 interface range コマンドを使用します。
•
QoS ACL を使用してパケットをレート制限する場合は、次の点に注意します。
–
QoS ACL には、レート制限するトラフィック フローを指定する必要があります。
–
QoS ACL がすでに設定されているインターフェイスに、さらに QoS ACL を追加してパケットをレート制限する場合は、次のいずれかを実行できます。
* レート制限する ACL を既存の QoS ACL と結合
* DoS ACL と一致する個別のクラスを定義し、このクラスをポリシー マップに関連付け
–
QoS ACL は、保護する必要があるすべての外部インターフェイスに設定する必要があります。複数のインターフェイスに ACL を設定するには、interface range コマンドを使用します。
•
CPU レート リミッタは、トラフィックの集約的な制限だけを行います。正しいパケットと不正なパケットは区別されません。
•
FIB レート制限を使用する場合は、次の注意事項に従います。
–
FIB レート制限では、ハードウェア内でのブロードキャスト トラフィック、または一部のマルチキャスト トラフィックはレート制限されません。
PFC3 は、個別のマルチキャスト レート リミッタを備えています。Supervisor Engine 2 は、個別のマルチキャスト レート リミッタを備えていません。
–
FIB レート制限では、正規のトラフィックと不正なトラフィックは区別されません(トンネル、Telnet など)。
–
FIB レート制限では、フローごとではなく、集約的なレート制限が適用されます。
PFC3
PFC3 を使用するシステムに対して DoS 攻撃からの保護を設定する場合は、CPU レート リミッタに関する次の注意事項および制約事項に従ってください。
(注) CoPP に関する注意事項および制約事項については、「CoPP 設定時の注意事項および制約事項」を参照してください。
•
PFC3A を使用して構成したシステムでマルチキャストをイネーブルにしている場合は、以下のレート リミッタは使用しないでください。
–
TTL 失敗
–
MTU 失敗
•
以下のレート リミッタは、PFC3B または PFC3BXL モードのみでサポートされます。
–
ユニキャスト IP オプション
–
マルチキャスト IP オプション
•
レイヤ 2 レート リミッタは以下のとおりです。
–
レイヤ 2 PDU
–
レイヤ 2 プロトコル トンネリング
–
レイヤ 2 マルチキャスト IGMP
•
8 つのレイヤ 3 レジスタ、および 2 つのレイヤ 2 レジスタを CPU レート リミッタとして使用できます。
•
CoPP を使用している場合は、CEF 受信リミッタは使用しないでください。CEF 受信リミッタは、CoPP トラフィックを上書きします。
•
レート リミッタは CoPP トラフィックを上書きします。
•
設定したレート制限は、個々の転送エンジンに適用されます(レイヤ 2 ハードウェア レート リミッタは例外的にグローバルに適用される)。
•
レイヤ 2 レート リミッタは、truncated モードではサポートされません。
•
入力および出力 ACL ブリッジド パケット レート リミッタを使用する場合は、次の制約事項があります。
–
入力および出力 ACL ブリッジド パケット レート リミッタは、ユニキャスト トラフィックのみで使用できます。
–
入力および出力 ACL ブリッジド パケット レート リミッタは、1 つのレート リミッタ レジスタを共有します。ACL ブリッジ入出力レート リミッタをイネーブルにすると、入出力 ACL はどちらも同一のレート リミッタ値を共有します。
•
ユニキャスト トラフィックをレート制限するには、mls rate-limit unicast コマンドを使用します。
•
マルチキャスト トラフィックをレート制限するには、mls rate-limit multicast コマンドを使用します。
•
レイヤ 2 マルチキャスト トラフィックをレート制限するには、mls rate-limit multicast layer 2 コマンドを使用します。
パケット廃棄統計情報のモニタ
着信または送信トラフィックをインターフェイス上でキャプチャし、このトラフィックのコピーを外部インターフェイスに送信して、トラフィック アナライザでモニタできます。トラフィックをキャプチャして外部インターフェイスに転送するには、monitor session コマンドを使用します。
トラフィックをキャプチャする場合は、次の制約事項が適用されます。
•
キャプチャした着信トラフィックはフィルタリングされません。
•
キャプチャする着信トラフィックは、キャプチャの実行場所までの転送時にレート制限されません。
Monitor Session コマンドによる廃棄パケットのモニタ
次の例では、monitor session コマンドを使用してトラフィックをキャプチャし、外部インターフェイスに転送する方法を示します。
Router# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)# monitor session 1 source vlan 44 both
Router(config)# monitor session 1 destination interface g9/1
2w0d: %SYS-5-CONFIG_I: Configured from console by console
次の例では、 show monitor session コマンドを使用して、宛先ポートの場所を表示する方法を示します。
Router# show monitor session 1
show tcam interface コマンドによる廃棄パケットのモニタ
PFC3B および PFC3BXL モードでは、ハードウェア内の ACL ヒット カウンタがサポートされます。 show tcam interface コマンドを使用すると、ACL TCAM 内の各エントリを表示できます。
次の例では、 show tcam interface コマンドを使用して、エントリがヒットした回数を表示します。
Router# show tcam interface fa5/2 acl in ip detail
-------------------------------------------------------------------------------------------------------------
DPort - Destination Port SPort - Source Port TCP-F - U -URG Pro - Protocol
I - Inverted LOU TOS - TOS Value - A -ACK rtr - Router
MRFM - M -MPLS Packet TN - T -Tcp Control - P -PSH COD - C -Bank Care Flag
- R -Recirc. Flag - N -Non-cachable - R -RST - I -OrdIndep. Flag
- F -Fragment Flag CAP - Capture Flag - S -SYN - D -Dynamic Flag
- M -More Fragments F-P - FlowMask-Prior. - F -FIN T - V(Value)/M(Mask)/R(Result)
X - XTAG (*) - Bank Priority
-------------------------------------------------------------------------------------------------------------
Interface: 1018 label: 1 lookup_type: 0
protocol: IP packet-type: 0
+-+-----+---------------+---------------+---------------+---------------+-------+---+----+-+---+--+---+---+
|T|Index| Dest Ip Addr | Source Ip Addr| DPort | SPort | TCP-F|Pro|MRFM|X|TOS|TN|COD|F-P|
+-+-----+---------------+---------------+---------------+---------------+------+---+----+-+---+--+---+---+
V 18396 0.0.0.0 0.0.0.0 P=0 P=0 ------ 0 ---- 0 0 -- --- 0-0
M 18404 0.0.0.0 0.0.0.0 0 0 0 ---- 0 0
R rslt: L3_DENY_RESULT rtr_rslt: L3_DENY_RESULT
V 36828 0.0.0.0 0.0.0.0 P=0 P=0 ------ 0 ---- 0 0 -- --- 0-0
M 36836 0.0.0.0 0.0.0.0 0 0 0 ---- 0 0
R rslt: L3_DENY_RESULT (*) rtr_rslt: L3_DENY_RESULT (*)
Router#
TTL または IP オプション カウンタを使用して、レイヤ 3 転送エンジンのパフォーマンスをモニタすることもできます。
次の例では、 show mls statistics コマンドを使用して、レイヤ 3 転送エンジンに関連付けられたパケット統計情報およびエラーを表示します。
Router# show mls statistics
Statistics for Earl in Module 6
Total packets Switched : 25583421
Total packets L3 Switched : 25433414 @ 24 pps
Total Packets Bridged : 937860
Total Packets FIB Switched : 23287640
Total Packets ACL Routed : 0
Total Packets Netflow Switched : 0
Total Mcast Packets Switched/Routed : 96727
Total ip packets with TOS changed : 2
Total ip packets with COS changed : 2
Total non ip packets COS changed : 0
Total packets dropped by ACL : 33
Total packets dropped by Policing : 0
MAC/IP length inconsistencies : 0
Short IP packets received : 0
IP header checksum errors : 0
<----------------- TTL counters
<------------------MTU failure counters
Total packets L3 Switched by all Modules: 25433414 @ 24 pps
VACL キャプチャによる廃棄パケットのモニタ
VACL キャプチャ機能を使用すると、キャプチャしたトラフィックを転送するように設定されたポートにトラフィックを転送できます。キャプチャ アクションを指定すると、転送されたパケットのキャプチャ ビットが設定され、キャプチャ機能がイネーブルであるポートがこれらのパケットを受信できるようになります。キャプチャできるのは、転送されたパケットのみです。
VACL キャプチャを使用すると、各 VLAN からのトラフィックを別のインターフェイスに割り当てることができます。
VACL キャプチャでは、ある種類のトラフィック(たとえば HTTP)をあるインターフェイスに、別の種類のトラフィック(たとえば DNS)を別のインターフェイスに送信することはできません。また、VACL キャプチャ粒度は、ローカルにスイッチされたトラフィックのみに適用できます。トラフィックをリモート スイッチに転送した場合は、この粒度は保存できません。
次の例では、VACL キャプチャを使用してトラフィックをキャプチャし、ローカル インターフェイスに転送する方法を示します。
Router(config-if)# switchport capture
Router(config-if)# switchport capture allowed vlan add 100
レート リミッタ情報の表示
show mls rate-limit コマンドを使用すると、設定したレート リミッタに関する情報を表示できます。
show mls rate-limit usage コマンドを使用すると、特定の種類のレート リミッタが使用したハードウェア レジスタを表示できます。どの種類のレート リミッタからも使用されていないレジスタの場合は、出力結果には Free と表示されます。ある種類のレート リミッタによって使用されているレジスタの場合は Used と表示され、このレート リミッタの種類が表示されます。
コマンドの結果、レート制限ステータスは次のいずれかとして出力されます。
•
特定の条件に対するレートが設定されている場合は「On」
•
この種類のレート リミッタが未設定であり、この条件に適合するパケットがレート制限されていない場合は「Off」
•
ある特定の条件(手動設定したものではない条件)が、同一の共有グループに属する別のレート リミッタの設定によって影響を受ける場合は「On/Sharing」
•
マルチキャスト パーシャル SC レート リミッタがディセーブルになっている場合は「-(ハイフン)」
コマンドの結果、レート制限共有については次の情報が出力されます。
•
共有がスタティックであるかダイナミックであるか
•
グループのダイナミック共有コード
設定したレート リミッタの情報を表示するには、 show mls rate-limit コマンドを使用します。
Router# show mls rate-limit
Sharing Codes: S - static, D - dynamic
Codes dynamic sharing: H - owner (head) of the group, g - guest of the group
Rate Limiter Type Status Packets/s Burst Sharing
--------------------- ---------- --------- ----- -------
MCAST DFLT ADJ On 100000 100 Not sharing
MCAST DIRECT CON Off - - -
ACL BRIDGED OUT Off - - -
ACL VACL LOG On 2000 1 Not sharing
MCAST PARTIAL SC On 100000 100 Not sharing
IP RPF FAILURE On 100 10 Group:0 S
ICMP UNREAC. NO-ROUTE On 100 10 Group:0 S
ICMP UNREAC. ACL-DROP On 100 10 Group:0 S
MCAST IP OPTION Off - - -
UCAST IP OPTION Off - - -
IP ERRORS On 100 10 Group:0 S
MCAST IPv6 DIRECT CON Off - - -
MCAST IPv6 *G M BRIDG Off - - -
MCAST IPv6 *G BRIDGE Off - - -
MCAST IPv6 SG BRIDGE Off - - -
MCAST IPv6 ROUTE CNTL Off - - -
MCAST IPv6 DFLT DROP Off - - -
MCAST IPv6 SECOND. DR Off - - -
ハードウェア レート リミッタの使用状況を表示するには、 show mls rate-limit usage コマンドを使用します。
Router# show mls rate-limit usage
Rate Limiter Type Packets/s Burst
--------------------- --------- -----
MCAST DFLT ADJ 100000 100
ICMP UNREAC. NO-ROUTE 100 10
ICMP UNREAC. ACL-DROP 100 10
RL# 8: Rsvd for capture - - -
CoPP 設定時の注意事項および制約事項
CoPP を設定する場合は、次の注意事項および制約事項に従ってください。
•
Release 12.2(18)SXE より前のリリースでは、PFC3 は MQC の class-default をハードウェアでサポートしていません。クラス デフォルトは、通常のクラス マップに置き換えられます。catch-all マップを定義すると、MQC class-default がハードウェアでサポートされます。
•
マルチキャストに一致するクラスは、ハードウェアではなくソフトウェアに適用されます。
•
CPP によるブロードキャスト パケット処理は、ハードウェアではサポートされません。ブロードキャスト DoS 攻撃からの保護を実現するには、ACL、トラフィック ストーム制御、および CPP ソフトウェア保護を組み合わせて使用します。
•
CoPP は ARP ポリシーをサポートしません。ARP ポリシング メカニズムは、ARP ストームからの保護を実現します。
•
CoPP は、デフォルトの非 IP クラス以外の非 IP クラスをサポートしません。非 IP トラフィックを廃棄するには、非 IP クラスの代わりに ACL を使用できます。また、RP CPU に到達する非 IP トラフィックを制限するには、デフォルトの非 IP CoPP クラスを使用できます。
•
CoPP ポリシー ACLでは、 log キーワードは使用しないでください。
•
PFC3A では、出力 QoS と CoPP を同時に設定することはできません。この状況では、CoPP はソフトウェア内で実行されます。出力 QoS と CoPP を同時に設定できないことを伝える警告メッセージが表示されます。
•
大規模な QoS 設定を使用すると、システムの TCAM 領域が足りなくなる可能性があります。この場合は、CoPP はソフトウェア内で実行されます。
•
他のインターフェイスに対する大規模な QoS 設定があると、領域が足りなくなる可能性があります。この場合は、CoPP がソフトウェア内で完全に実行され、パフォーマンス低下や CPU サイクル消費につながる可能性があります。
•
CoPP ポリシーによって、ルーティング プロトコルなどのクリティカルなトラフィック、またはスイッチへのインタラクティブなアクセスがフィルタリングされないように注意してください。このトラフィックをフィルタリングすると、スイッチへのリモート アクセスが禁止され、コンソール接続が必要となる場合があります。
•
PFC3 は、組み込みの special-case レート リミッタをサポートします。これは、ACL を使用できない状況(TTL、MTU、IP オプションなど)で便利です。special-case レート リミッタをイネーブルにする場合は、このレート リミッタが基準に適合するパケットに対し、CoPP ポリシーを上書きすることに注意してください。
•
mls qos コマンドによって MMLS QoS をグローバルにイネーブルにしないかぎり、CoPP はハードウェアでイネーブルにされません。mls qos コマンドを入力しないと、CoPP はソフトウェア内だけで動作し、ハードウェアに対する機能を果たせなくなります。
•
出力 CoPP、およびサイレント モードはサポートされません。CoPP は入力だけでサポートされます。サービス ポリシー出力 CoPP は、コントロール パネル インターフェイスには適用できません。
•
ハードウェア内の ACE ヒット カウンタは、ACL 論理のみに対応します。CPU トラフィックのトラブルシューティングおよび評価には、ソフトウェア ACL のヒット カウンタ、および show access-list、show policy-map control-plane、show mls ip qos コマンドが役立ちます。
•
CoPP は転送エンジン単位で実行され、ソフトウェア CoPP は集約的に実行されます。
•
CoPP によるマルチキャスト パケット処理は、ハードウェアではサポートされません。マルチキャスト DoS 攻撃からの保護を実現するには、ACL、マルチキャスト CPU レート リミッタ、および CoPP ソフトウェア保護を組み合わせて使用します。
•
CoPP では、ACE に log キーワードを使用できません。
•
CoPP はハードウェア QoS TCAM リソースを使用します。TCAM の利用率を確認するには、 show tcam utilization コマンドを入力します。
トラフィック分類の定義
ここでは、CoPP トラフィックを分類する方法について説明します。
•
「トラフィック分類の概要」
•
「トラフィック分類の注意事項」
•
「CoPP トラフィック分類の基本的な ACL の例」
トラフィック分類の概要
定義できるクラスの数に制限はありませんが、一般的にトラフィックは、相対的な重要度に基づくクラスに分類されます。次に、グループ分けの例を示します。
•
Border Gateway Protocol(BGP) ― BGP ルーティング プロトコルにおいて、隣接関係を維持するために重要なトラフィック。BGP キープ アライブ、ルーティング更新などです。BGP ルーティング プロトコルの維持は、ネットワーク内での接続、またはサービス プロバイダとの接続を維持する上で重要です。BGP を実行しないサイトでは、このクラスを使用する必要はありません。
•
Interior Gateway Protocol(IGP; 内部ゲートウェイ プロトコル) ― IGP ルーティング プロトコルを維持する上で重要なトラフィック。たとえば Open Shortest Path First(OSPF)、Enhanced Interior Gateway Routing Protocol(EIGRP)、Routing Information Protocol(RIP)などです。IGP ルーティング プロトコルの維持は、ネットワーク内の接続を維持する上で重要です。
•
管理 ― 日常業務で必要とされ、頻繁に使用される必須トラフィック。たとえば、リモート ネットワーク アクセスに使用するトラフィックや、Cisco IOS イメージの更新および管理トラフィックです。これには、Telnet、Secure Shell(SSH; セキュア シェル)、Network Time Protocol(NTP)、SNMP(簡易ネットワーク管理プロトコル)、Terminal Access Controller Access Control System(TACACS)、HTTP、Trivial File Transfer Protocol(TFTP; 簡易ファイル転送プロトコル)、FTP(ファイル転送プロトコル)などがあります。
•
レポート ― レポート目的で、ネットワーク パフォーマンスに関する統計情報の生成に使用されるトラフィック。たとえば、Cisco IOS IP サービス レベル アグリーメントを使用して、異なる DSCP 設定で ICMP を生成し、様々な QoS データ クラス内の応答時間をレポートできます。
•
モニタ ― スイッチのモニタに使用するトラフィック。このトラフィックは許可する必要がありますが、スイッチを危険にさらすことがあってはなりません。CoPP を使用すると、このトラフィックは許可されますが、低いレートに制限できます。たとえば、ICMP エコー要求(ping)、traceroute などです。
•
クリティカルなアプリケーション ― 特定のカスタマー環境に固有の、クリティカルなアプリケーション トラフィック。このクラスに分類するトラフィックは、ユーザに必要なアプリケーションの要件に合わせて、特別に調整する必要があります。マルチキャストを使用するカスタマーもいれば、IPSec または Generic Routing Encapsulation(GRE; 総称ルーティング カプセル化)を使用するカスタマーもいます。このトラフィックの例としては、GRE、Hot Standby Router Protocol(HSRP)、Virtual Router Redundancy Protocol(VRRP)、Session Initiation Protocol(SIP)、データ リンク スイッチング、Dynamic Host Configuration Protocol(DHCP)、Multicast Source Discovery Protocol(MSDP)、IGMP、Protocol Independent Multicast(PIM)、マルチキャスト トラフィック、IPsec などが挙げられます。
•
レイヤ 2 プロトコル ― ARP に使用されるトラフィック。ARP パケットが過剰に発生すると、MSFC リソースが独占され、他の重要なプロセスがリソース不足になってしまう可能性があります。CoPP を使用して ARP パケットをレート制限すると、このような状況を回避できます。現時点では、一致プロトコル分類基準を使用して明示的に分類可能な唯一のレイヤ 2 プロトコルが、ARP となります。
•
不要 ― MSFC へのアクセスを無条件で廃棄および拒否する必要のある、不正な、または悪意あるトラフィックを明示的に指定します。この分類は、スイッチ宛ての既知のトラフィックを常に拒否する必要があり、デフォルト カテゴリに含まれないようにする場合に便利です。トラフィックを明示的に拒否した場合は、 show コマンドを使用すると、拒否したトラフィックの概算統計情報を収集し、そのレートを見積もることができます。
•
デフォルト ― 他に分類されない、MSFC 宛ての残りのトラフィックすべてを収容。MQC はデフォルト クラスを備えているため、他のユーザ定義クラスでは明示的に識別されないトラフィックに適用する処理を指定できます。このトラフィックの MSFC へのアクセス レートは、大幅に制限されます。デフォルト分類を設定しておくと、統計情報をモニタして、通常であれば識別されないコントロール プレーン宛てトラフィックのレートを決定できます。このトラフィックを識別したあとは、追加の分析を行うことで該当カテゴリに分類できます。必要であれば、このトラフィックにも対応するように、他の CoPP ポリシー エントリを更新することもできます。
トラフィックの分類が完了すると、ACL は、ポリシーの定義に使用するトラフィック クラスを作成します。CoPP 分類に使用する基本的な ACL の例については、「CoPP トラフィック分類の基本的な ACL の例」を参照してください。
トラフィック分類の注意事項
トラフィック分類を定義する場合は、次の注意事項および制約事項に従ってください。
•
実際の CoPP ポリシーを作成する前に、どのトラフィックをどのクラスに分類するかを識別しておく必要があります。トラフィックは相対的な重要度に基づき、9 つのクラスに分類されます。実際に必要となるクラス数はこれとは異なる可能性があり、各自のローカルな要件、およびセキュリティ ポリシーに基づき選択する必要があります。
•
双方向的に一致するポリシーを定義する必要はありません。ポリシーは入力のみに適用されるため、トラフィックは一方向(ネットワークから MSFC へ)のみで識別します。
CoPP トラフィック分類の基本的な ACL の例
ここでは、CoPP 分類の基本的な ACL の例を示します。各例では、一般的に必要とされるトラフィックを、以下の ACL によって識別します。
•
ACL 120 ― クリティカルなトラフィック
•
ACL 121 ― 重要なトラフィック
•
ACL 122 ― 通常のトラフィック
•
ACL 123 ― 不要なトラフィックを明示的に拒否
•
ACL 124 ― その他すべてのトラフィック
次の例では、クリティカルなトラフィックに対する ACL 120 を定義します。
Router(config)# access-list 120 remark CoPP ACL for critical traffic
次の例では、既知のピアからスイッチ の BGP TCP ポートへの、BGP トラフィックを許可します。
Router(config)# access-list 120 permit tcp host 47.1.1.1 host 10.9.9.9 eq bgp
次の例では、ピアの BGP ポートからこのスイッチへの BGP トラフィックを許可します。
Router(config)# access-list 120 permit tcp host 47.1.1.1 eq bgp host 10.9.9.9
Router(config)# access-list 120 permit tcp host 10.86.183.120 host 10.9.9.9 eq bgp
Router(config)# access-list 120 permit tcp host 10.86.183.120 eq bgp host 10.9.9.9
次の例では、重要なクラスに対する ACL 121 を定義します。
Router(config)# access-list 121 remark CoPP Important traffic
次の例では、TACACS ホストからのリターン トラフィックを許可します。
Router(config)# access-list 121 permit tcp host 1.1.1.1 host 10.9.9.9 established
次の例では、サブネットからスイッチへの SSH アクセスを許可します。
Router(config)# access-list 121 permit tcp 10.0.0.0 0.0.0.255 host 10.9.9.9 eq 22
次の例では、指定のサブネット内のホストからスイッチへの Telnet フル アクセスを許可し、残りのサブネットをポリシングします。
Router(config)# access-list 121 deny tcp host 10.86.183.3 any eq telnet
Router(config)# access-list 121 permit tcp 10.86.183.0 0.0.0.255 any eq telnet
次の例では、NMS ホストからスイッチへの SNMP アクセスを許可します。
Router(config)# access-list 121 permit udp host 1.1.1.2 host 10.9.9.9 eq snmp
次の例では、既知のクロック ソースからの NTP パケットの受信をスイッチに許可します。
Router(config)# access-list 121 permit udp host 1.1.1.3 host 10.9.9.9 eq ntp
次の例では、通常のトラフィック クラスに対する ACL 122 を定義します。
Router(config)# access-list 122 remark CoPP normal traffic
次の例では、スイッチから送信される traceroute トラフィックを許可します。
Router(config)# access-list 122 permit icmp any any ttl-exceeded
Router(config)# access-list 122 permit icmp any any port-unreachable
次の例では、ping を発行したスイッチへの応答を受信することを許可します。
Router(config)# access-list 122 permit icmp any any echo-reply
次の例では、スイッチへの ping の送信を許可します。
Router(config)# access-list 122 permit icmp any any echo
次の例では、不要なクラスに対する ACL 123 を定義します。
Router(config)# access-list 123 remark explicitly defined "undesirable" traffic
(注) 次の例では、ACL 123 は分類およびモニタのための許可エントリであり、トラフィックは CoPP ポリシーの結果に基づいて廃棄されます。
この例では、UDP 1434 宛てに送信され、ポリシングの対象となるすべてのトラフィックを許可します。
Router(config)# access-list 123 permit udp any any eq 1434
次の例では、他のすべてのトラフィックに対する ACL 124 を定義します。
Router(config)# access-list 124 remark rest of the IP traffic for CoPP
Router(config)# access-list 124 permit ip any any