この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章では、NX-OS デバイス上で Control Plane Policing(CoPP; コントロール プレーン ポリシング)を設定する手順を説明します。
NX-OS デバイスは、DoS 攻撃によるパフォーマンスへの影響を防ぐために CoPP を備えています。
スーパーバイザ モジュールは、管理する対象のトラフィックを次の 3 つの機能コンポーネント( プレーン )に分類します。
• データ プレーン ― すべてのデータ トラフィックを処理します。NX-OS デバイスの基本的な機能は、インターフェイス間でパケットを転送することです。スイッチ自身に向けられたものでないパケットは、中継パケット呼ばれます。データ プレーンで処理されるのはこれらのパケットです。
• コントロール プレーン ― ルーティング プロトコルのすべての制御トラフィックを処理します。Border Gateway Protocol(BGP; ボーダー ゲートウェイ プロトコル)や OSPF などのルーティング プロトコルは、装置間で制御パケットを送信します。これらのパケットはルータのアドレスを宛先とし、コントロール プレーン パケットと呼ばれます。
• マネージメント プレーン ― CLI(コマンドライン インターフェイス)や SNMP など、NX-OS デバイスを管理する目的のコンポーネントを実行します。
スーパーバイザ モジュールには、マネージメント プレーンとコントロール プレーンの両方が搭載され、ネットワークの運用にクリティカルなモジュールです。スーパーバイザ モジュールの動作が途絶したり、スーパーバイザ モジュールが攻撃されたりすると、重大なネットワークの停止につながります。たとえばスーパーバイザに過剰なトラフィックが加わると、スーパーバイザ モジュールが過負荷になり、NX-OS デバイス全体のパフォーマンスが低下する可能性があります。スーパーバイザ モジュールへの攻撃には、DoS 攻撃のようにコントロール プレーンを流れる IP トラフィック ストリームが非常に高いレートで発生するものなど、さまざまな種類があります。攻撃によってコントロール プレーンはこれらのパケットの処理に大量の時間を費やしてしまい、本来のトラフィック処理が不可能になります。
• Internet Control Message Protocol(ICMP; インターネット制御メッセージ プロトコル)エコー要求
これらの攻撃により装置のパフォーマンスが影響を受け、次のようなマイナスの結果をもたらします。
• キープアライブ メッセージおよびルーティング プロトコル アップデートが紛失します。これによりルート フラップおよび大規模なネットワークの停止につながります。
• 高い CPU 利用率により、CLI を使用する対話型セッションが遅くなったり、まったく応答がなくなったりします。
• メモリやバッファなどのリソースを正規の IP データ パケットに使用できなくなることがあります。
• パケット キューがいっぱいになり、種類を問わずパケットがドロップします。
• 「MQC」
コントロール プレーンを保護するため、NX-OS デバイスはコントロール プレーンに向かうさまざまなパケットを異なるクラスに分離します。クラスの識別が終わると、NX-OS デバイスはパケットをポリシングまたはマーク付けします。これにより、スーパーバイザ モジュールに過剰な負担がかからならないようになります。
• 「分類」
コントロール プレーンには、次のような異なるタイプのパケットが到達します。
• 受信パケット ― ルータの宛先アドレスを持つパケット。宛先アドレスには、レイヤ 2 アドレス(ルータ MAC アドレスなど)やレイヤ 3 アドレス(ルータ インターフェイスの IP アドレスなど)があります。これらのパケットには、ルータ アップデートとキープアライブ メッセージも含まれます。ルータが使用するマルチキャスト アドレス宛てに送信されるマルチキャスト パケットも、このカテゴリに入ります。
• 例外パケット ― スーパーバイザ モジュールによる特殊な処理を必要とするパケット。たとえば、宛先アドレスが Forwarding Information Base(FIB; 転送情報ベース)に存在せず、結果としてミスとなった場合は、スーパーバイザ モジュールが送信側に到達不能パケットを返します。ほかには、IP オプションがセットしたパケットもあります。
• リダイレクト パケット ― スーパーバイザ モジュールにリダイレクトされるパケット。DHCP スヌーピングやダイナミック Address Resolution Protocol(ARP; アドレス解決プロトコル)検査などの機能は、パケットをスーパーバイザ モジュールにリダイレクトします。
• グリーニング パケット ― 宛先 IP アドレスのレイヤ 2 MAC アドレスが FIB に存在していない場合は、スーパーバイザ モジュールがパケットを受信し、ARP 要求をそのホストに送信します。
これらのさまざまなパケットは、コントロール プレーンへの悪意ある攻撃に利用され、NX-OS デバイスに過剰な負荷をかける可能性があります。CoPP は、これらのパケットを異なるクラスに分類し、これらのパケットをスーパーバイザが受信する速度を個別に制御するメカニズムを提供します。
効果的に保護するために、NX-OS デバイスはスーパーバイザ モジュールに到達するパケットを分類して、パケット タイプに基づいた異なるレート制御ポリシーを適用できるようにします。たとえば、Hello メッセージなどのプロトコル パケットには厳格さを緩め、IP オプションがセットしているためにスーパーバイザ モジュールに送信されるパケットには厳格さを強めることが考えられます。パケットの分類に使用できるパラメータは、次のとおりです。
パケットの分類が終わると、NX-OS デバイスにはスーパーバイザ モジュールに到達するパケットのレートを制御するメカニズムがあります。スーパーバイザ モジュールへのトラフィックのレート制御には 2 つのメカニズムを使用します。1 つはポリシング、もう 1 つはレート制限と呼ばれるものです。
ハードウェア ポリシーを使用すると、トラフィックが所定の条件に一致する場合、超過する場合、または違反する場合のそれぞれについて異なるアクションを定義できます。このアクションには、パケットの送信、パケットのマーク付け、およびパケットのドロップがあります。
• Committed information rate(CIR; 認定情報速度)
• PIR(Peak Information Rate; 最大情報レート)
• Committed burst(Bc; 認定バースト)サイズ
• Extended burst(Be; 拡張バースト)サイズ
さらに、一致トラフィック、超過トラフィック、および違反トラフィックに対して、送信またはドロップなどの異なるアクションを設定できます。
デフォルト ポリシーは、NX-OS デバイスを初回に起動したときに選択できます。NX-OS ソフトウェアには、コントロール プレーンの保護に使用できるデフォルト ポリシーがいくつか用意されています。最初のセットアップ スクリプトで、次のいずれかの CoPP ポリシー オプションを選択できます。
オプションを選択しなかった場合や、セットアップ スクリプトを実行しなかった場合には、strict ポリシングが適用されます。CoPP ポリシーは、必要に応じてあとで変更できます。
CoPP は、Modular QoS(Quality of Service)CLI(MQC)を使用します。MQC は CLI の構造を持っています。MQC を使用すると、トラフィック クラスの定義、トラフィック ポリシー(ポリシー マップ)の作成、およびインターフェイスへのトラフィック ポリシーの適用が可能になります。トラフィック ポリシーには、トラフィック クラスに適用する CoPP 機能を含めます。
ステップ 1 class-map コマンドを使用して、トラフィック クラスを定義します。トラフィック クラスは、トラフィックの分類に使用します。
ステップ 2 policy-map コマンドを使用して、トラフィック ポリシーを定義します。トラフィック ポリシー(ポリシー マップ)には、トラフィック クラスと、トラフィック クラスに適用する 1 つまたは複数の CoPP 機能を含めます。トラフィック ポリシー内の CoPP の機能で、分類されたトラフィックの処理方法が決まります。
ステップ 3 control-plane コマンドおよび service-policy コマンドを使用して、トラフィック ポリシー(ポリシー マップ)をコントロール プレーンに適用します。
CoPP はデフォルト Virtual Device Context(VDC)でのみ設定できますが、その CoPP 設定は NX-OS デバイス上のすべての VDC に適用されます。VDC の詳細については、『 Cisco NX-OS Virtual Device Context Configuration Guide, Release 4.0 』を参照してください。
|
|
---|---|
CoPP にライセンスは必要ありません。ライセンス パッケージに含まれない機能はすべて、Cisco NX-OS システム イメージにバンドルされており、無償で提供されます。NX-OS のライセンス方式の詳細については、『 Cisco NX-OS Licensing Guide, Release 4.0 』を参照してください。 |
CoPP には、次の構成に関する注意事項と制限事項があります。
• CoPP は、デフォルトの非 IP クラス以外の非 IP クラスをサポートしません。非 IP トラフィックをドロップする場合は、非 IP クラスの代わりに ACL を使用できます。また、スーパーバイザ モジュールに到達する非 IP トラフィックを制限する場合は、デフォルトの非 IP CoPP クラスを使用できます。
• CoPP ポリシ- ACL ではロギングをイネーブルにできません。
• CoPP ポリシーによって、ルーティング プロトコルなどのクリティカルなトラフィック、またはシリーズへのインタラクティブなアクセスがフィルタリングされないように注意してください。このトラフィックをフィルタリングすると、NX-OS デバイスへのリモート アクセスが禁止され、コンソール接続が必要となる場合があります。
• NX-OS ソフトウェアは、出力 CoPP とサイレント モードをサポートしません。CoPP は入力だけでサポートされます。サービス ポリシー出力 CoPP は、コントロール パネル インターフェイスには適用できません。
• ハードウェアの Access Control Entry(ACE; アクセス コントロール エントリ)ヒット カウンタは、ACL 論理にのみ使用できます。CPU のトラフィックを評価する場合は、ソフトウェアの ACE ヒット カウンタおよび show access-lists と show policy-map type control-plane コマンドを使用してください。
• NX-OS デバイスのハードウェアは、フォワーディング エンジン単位で CoPP を実行します。CoPP は分散ポリシーをサポートしていません。したがって、レートを選択する場合は、集約トラフィックでスーパーバイザ モジュールに過剰な負荷をかけることのない値にしてください。
(注) Cisco IOS CLI の知識があるユーザは、この機能に関する Cisco NX-OS のコマンドが Cisco IOS のコマンドで使用されるものと異なる場合があることに注意してください。
デフォルト VDC にいることを確認します(または switchto vdc コマンドを使用)。
クラス マップ内に ACE ヒット カウンタを使用する場合は、IP ACL( 第 10 章「IP ACL の設定」 を参照)または MAC ACL( 第 11 章「MAC ACL の設定」 を参照)が設定してあることを確認します。
2. class-map type control-plane [ match-all | match-any ] class-map-name
3. match access-group name access-list-name
match exception ip icmp redirect
match exception ip icmp unreachable
CoPP のポリシー マップを設定する必要があります。ポリシー マップにはポリシング パラメータを含めます。クラスのポリサーを設定しなかった場合、デフォルトのポリサー一致アクションは、ドロップです。グリーニング パケットはデフォルト クラスを使用してポリシングされます。NX-OS ソフトウェアは、1 レート 2 カラー ポリシングと 2 レート 3 カラー ポリシングをサポートします。
デフォルト VDC にいることを確認します(または switchto vdc コマンドを使用)。
コントロール プレーン クラス マップが設定してあることを確認します(コントロール プレーン クラス マップの設定を参照)。
2. policy-map type control-plane policy-map-name
3. class { class-map-name [ insert-before class-map-name ] | class-default }
4. police [ cir ] cir-rate [ bps | gbps | kbps | mbps | pps ]
police [ cir ] cir-rate [ bps | gbps | kbps | mbps | pps ] [ bc ] burst-size [ bytes | kbytes | mbytes | ms | packets | us ]
police [ cir ] cir-rate [ bps | gbps | kbps | mbps | pps ]
conform { drop | set-cos-transmit cos-value | set-dscp-transmit dscp-value | set-prec-transmit prec-value | transmit } [ exceed { drop | set dscp dscp table cir-markdown-map | transmit }] [ violate { drop | set dscp dscp table pir-markdown-map | transmit }]
police [ cir ] cir-rate [ bps | gbps | kbps | mbps | pps ]
pir pir-rate [ bps | gbps | kbps | mbps | pps ] [[ be ] extended-burst-size [ bytes | kbytes | mbytes | ms | packets | us ]]
5. (任意) set cos [ inner ] cos-value
6. (任意) set dscp [ tunnel ] { dscp-value | af11 | af12 | af13 | af21 | af22 | af23 | af31 | af32 | af33 | af41 | af42 | af43 | cs1 | cs2 | cs3 | cs4 | cs5 | cs6 | cs7 | sf | default }
7. (任意) set precedence [ tunnel ] prec-value
10. show policy-map type control-plane [ expand ] [ name policy-map-name ]
デフォルト VDC にいることを確認します(または switchto vdc コマンドを使用)。
コントロール プレーン ポリシー マップが設定してあることを確認します(コントロール プレーン ポリシー マップの設定を参照)。
3. service-policy input policy-map-name
|
|
|
---|---|---|
|
|
|
---|---|---|
このコマンドの出力に表示されるフィールドの詳細については、『 Cisco NX-OS Security Command Reference, Release 4.0 』を参照してください。
|
|
|
---|---|---|
CoPP の設定情報を表示するには、次の作業のいずれかを行います。
|
|
---|---|
show policy-map type control-plane [ expand ] [ name policy-map-name ] |
|
このコマンドの出力に表示されるフィールドの詳細については、『 Cisco NX-OS Security Command Reference, Release 4.0 』を参照してください。
次に、IP ACL と MAC ACL を使用する CoPP を設定する例を示します。
表20-1 に、CoPP パラメータのデフォルト設定を示します。
CoPP の実装に関連する詳細情報については、次を参照してください。
• 「関連資料」
• 「規格」
|
|
---|---|
|
|
---|---|