この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章の内容は、次のとおりです。
コントロール プレーン ポリシング(CoPP)はコントロール プレーンを保護し、それをデータ プレーンから分離することによって、ネットワークの安定性、到達可能性、およびパケット配信を保証します。
この機能により、コントロール プレーンにポリシー マップを適用できるようになります。このポリシー マップは通常の QoS ポリシーのように見え、ルータまたはレイヤ 3 スイッチの任意の IP アドレスに宛てられたすべてのトラフィックに適用されます。ネットワーク デバイスへの一般的な攻撃ベクトルは、過剰なトラフィックがデバイス インターフェイスに転送されるサービス拒絶(DoS)攻撃です。
Cisco NX-OS デバイスは、DoS 攻撃がパフォーマンスに影響しないようにするために CoPP を提供します。このような攻撃は誤って、または悪意を持って実行される場合があり、通常は、スーパーバイザ モジュールまたは CPU 自体に宛てられた大量のトラフィックが含まれます。
スーパーバイザ モジュールは、管理対象のトラフィックを次の 3 つの機能コンポーネント(プレーン)に分類します。
スーパーバイザ モジュールには、マネージメント プレーンとコントロール プレーンの両方が搭載され、ネットワークの運用にクリティカルなモジュールです。スーパーバイザ モジュールの動作が途絶したり、スーパーバイザ モジュールが攻撃されたりすると、重大なネットワークの停止につながります。たとえばスーパーバイザに過剰なトラフィックが加わると、スーパーバイザ モジュールが過負荷になり、NX-OS デバイス全体のパフォーマンスが低下する可能性があります。またたとえば、スーパーバイザ モジュールに対する DoS 攻撃は、コントロール プレーンに対して非常に高速に IP トラフィック ストリームを生成することがあります。これにより、コントロール プレーンは、これらのパケットを処理するために大量の時間を費やしてしまい、本来のトラフィックを処理できなくなります。
次に、DoS 攻撃の例を示します。
これらの攻撃によりデバイスのパフォーマンスが影響を受け、次のようなマイナスの結果をもたらします。
サービス品質の低下(音声、ビデオ、または重要なアプリケーション トラフィックの低下など)
ルート プロセッサまたはスイッチ プロセッサの高い CPU 使用率
ルーティング プロトコルのアップデートまたはキープアライブの消失によるルート フラップ
不安定なレイヤ 2 トポロジ
CLI との低速な、または応答を返さない対話型セッション
メモリやバッファなどのプロセッサ リソースの枯渇
着信パケットの無差別のドロップ
![]() 注意 | コントロール プレーンの保護策を講じることで、スーパーバイザ モジュールを偶発的な攻撃や悪意ある攻撃から確実に保護することが重要です。 |
コントロール プレーンを保護するために、Cisco NX-OS デバイスはコントロール プレーンに向かうさまざまなパケットを異なるクラスに分離します。クラスの識別が終わると、Cisco NX-OS デバイスはパケットをポリシングします。これにより、スーパーバイザ モジュールに過剰な負担がかからないようになります。
コントロール プレーンには、次のような異なるタイプのパケットが到達します。
これらのさまざまなパケットはすべて、コントロール プレーンへの悪意ある攻撃に利用され、Cisco NX-OS デバイスに過剰な負荷をかける可能性があります。CoPP は、これらのパケットを異なるクラスに分類し、これらのパケットをスーパーバイザが受信する速度を個別に制御するメカニズムを提供します。
効果的に保護するために、Cisco NX-OS デバイスはスーパーバイザ モジュールに到達するパケットを分類して、パケット タイプに基づいた異なるレート制御ポリシーを適用できるようにします。たとえば、Hello メッセージなどのプロトコル パケットには厳格さを緩め、IP オプションがセットされているためにスーパーバイザ モジュールに送信されるパケットには厳格さを強めることが考えられます。クラス マップとポリシー マップを使用して、パケットの分類およびレート制御ポリシーを設定します。
パケットの分類には、次のパラメータを使用できます。
パケットの分類が終わると、Cisco NX-OS デバイスにはスーパーバイザ モジュールに到達するパケットのレートを制御するメカニズムがあります。
ポリシング レートは 1 秒間あたりのパケット(PPS)という形式で指定されます。分類されたそれぞれのフローは、PPS で表すポリシング レート制限を指定することによって個別にポリシングできます。
Cisco NX-OS デバイスの初回起動時には、DoS 攻撃からスーパーバイザ モジュールを保護するためのデフォルト copp-system-policy が Cisco NX-OS ソフトウェアによってインストールされます。最初のセットアップ ユーティリティで、次のいずれかの CoPP ポリシー オプションを選択することにより、展開シナリオの CoPP ポリシー テンプレートを選択できます。
Default:レイヤ 2 およびレイヤ 3 ポリシー。CPU にバインドされているスイッチド トラフィックとルーテッド トラフィックの間で適切なポリシング バランスを提供します。
Layer 2:レイヤ 2 ポリシー。CPU にバインドされているレイヤ 2 トラフィック(たとえば BPDU)により多くのプリファレンスを与ます。
Layer 3:レイヤ 3 ポリシー。CPU にバインドされているレイヤ 3 トラフィック(たとえば、BGP、RIP、OSPF など)により多くのプリファレンスを与えます。
オプションを選択しなかった場合や、セットアップ ユーティリティを実行しなかった場合には、Cisco NX-OS ソフトウェアにより Default ポリシングが適用されます。最初はこのデフォルト ポリシーを使用し、必要に応じて CoPP ポリシーを変更することを推奨します。
デフォルトの copp-system-policy ポリシーには、基本的なデバイス操作に最も適した値が設定されています。使用する DoS に対する保護要件に適合するよう、特定のクラスやアクセス コントロール リスト(ACL)を追加する必要があります。
default、Layer 2 および Layer 3 テンプレートを切り替えるには、setup コマンドを使って設定ユーティリティを再び入力することができます。
このポリシーは、スイッチにデフォルトで適用されます。これには、ほとんどのネットワーク導入に適したポリサー レートを持つクラスが含まれています。このポリシー テンプレートを変更することはできませんが、デバイスの CoPP 設定を変更できます。セットアップ ユーティリティを実行してデフォルトの CoPP ポリシー プロファイルをセットアップすると、CoPP ポリシーに対して既に行われたすべての変更が削除されます。
このポリシーの設定は次のとおりです。
policy-map type control-plane copp-system-policy class copp-s-default police pps 400 class copp-s-ping police pps 100 class copp-s-l3destmiss police pps 100 class copp-s-glean police pps 500 class copp-s-l3mtufail police pps 100 class copp-s-ttl1 police pps 100 class copp-s-ip-options police pps 100 class copp-s-ip-nat police pps 100 class copp-s-ipmcmiss police pps 400 class copp-s-ipmc-g-hit police pps 400 class copp-s-ipmc-rpf-fail-g police pps 400 class copp-s-ipmc-rpf-fail-sg police pps 400 class copp-s-dhcpreq police pps 300 class copp-s-dhcpresp police pps 300 class copp-s-igmp police pps 400 class copp-s-routingProto2 police pps 1300 class copp-s-eigrp police pps 200 class copp-s-pimreg police pps 200 class copp-s-pimautorp police pps 200 class copp-s-routingProto1 police pps 1000 class copp-s-arp police pps 200 class copp-s-ptp police pps 1000 class copp-s-bpdu police pps 12000 class copp-s-cdp police pps 400 class copp-s-lacp police pps 400 class copp-s-lldp police pps 200 class copp-icmp police pps 200 class copp-telnet police pps 500 class copp-ssh police pps 500 class copp-snmp police pps 500 class copp-ntp police pps 100 class copp-tacacsradius police pps 400 class copp-stftp police pps 400 class copp-ftp police pps 100 class copp-http police pps 100
このポリシー テンプレートを変更することはできませんが、デバイスの CoPP 設定を変更できます。セットアップ ユーティリティを実行してレイヤ 2 CoPP ポリシー プロファイルをセットアップすると、CoPP ポリシーに対して行われたすべての変更が削除されます。
このポリシーの設定は次のとおりです。
policy-map type control-plane copp-system-policy class copp-s-default police pps 400 class copp-s-ping police pps 100 class copp-s-l3destmiss police pps 100 class copp-s-glean police pps 500 class copp-s-l3mtufail police pps 100 class copp-s-ttl1 police pps 100 class copp-s-ip-options police pps 100 class copp-s-ip-nat police pps 100 class copp-s-ipmcmiss police pps 400 class copp-s-ipmc-g-hit police pps 400 class copp-s-ipmc-rpf-fail-g police pps 400 class copp-s-ipmc-rpf-fail-sg police pps 400 class copp-s-dhcpreq police pps 300 class copp-s-dhcpresp police pps 300 class copp-s-igmp police pps 400 class copp-s-routingProto2 police pps 1200 class copp-s-eigrp police pps 200 class copp-s-pimreg police pps 200 class copp-s-pimautorp police pps 200 class copp-s-routingProto1 police pps 900 class copp-s-arp police pps 200 class copp-s-ptp police pps 1000 class copp-s-bpdu police pps 12300 class copp-s-cdp police pps 400 class copp-s-lacp police pps 400 class copp-s-lldp police pps 200 class copp-icmp police pps 200 class copp-telnet police pps 500 class copp-ssh police pps 500 class copp-snmp police pps 500 class copp-ntp police pps 100 class copp-tacacsradius police pps 400 class copp-stftp police pps 400 class copp-ftp police pps 100 class copp-http police pps 100
このポリシー テンプレートを変更することはできませんが、デバイスの CoPP 設定を変更できます。セットアップ ユーティリティを実行してレイヤ 3 CoPP ポリシー プロファイルをセットアップすると、CoPP ポリシーに対して行われたすべての変更が削除されます。
このポリシーの設定は次のとおりです。
policy-map type control-plane copp-system-policy class copp-s-default police pps 400 class copp-s-ping police pps 100 class copp-s-l3destmiss police pps 100 class copp-s-glean police pps 500 class copp-s-l3mtufail police pps 100 class copp-s-ttl1 police pps 100 class copp-s-ip-options police pps 100 class copp-s-ip-nat police pps 100 class copp-s-ipmcmiss police pps 400 class copp-s-ipmc-g-hit police pps 400 class copp-s-ipmc-rpf-fail-g police pps 400 class copp-s-ipmc-rpf-fail-sg police pps 400 class copp-s-dhcpreq police pps 300 class copp-s-dhcpresp police pps 300 class copp-s-igmp police pps 400 class copp-s-routingProto2 police pps 4000 class copp-s-eigrp police pps 200 class copp-s-pimreg police pps 200 class copp-s-pimautorp police pps 200 class copp-s-routingProto1 police pps 4000 class copp-s-arp police pps 200 class copp-s-ptp police pps 1000 class copp-s-bpdu police pps 6000 class copp-s-cdp police pps 200 class copp-s-lacp police pps 200 class copp-s-lldp police pps 200 class copp-icmp police pps 200 class copp-telnet police pps 500 class copp-ssh police pps 500 class copp-snmp police pps 500 class copp-ntp police pps 100 class copp-tacacsradius police pps 400 class copp-stftp police pps 400 class copp-ftp police pps 100 class copp-http police pps 100
使用可能なスタティック CoPP クラスは次のとおりです。
copp-s-default
パケットに関して copy-to-CPU が設定されており、パケットに関する他のより詳細な CoPP クラスで一致がない場合は、トラフィックの Catch-all CoPP クラスです。
class-map copp-s-default (match-any) police pps 400 OutPackets 0 DropPackets 0
copp-s-l2switched
パケットに関して CPU ポートが選択されているときに他の明示的な CoPP クラスで一致がない場合は、レイヤ 2 トラフィックの Catch-all CoPP クラスです。
class-map copp-s-l2switched (match-any) police pps 200 OutPackets 0 DropPackets 0
copp-s-l3destmiss
ハードウェア レイヤ 3 転送テーブルにルックアップのミスがあるレイヤ 3 トラフィックです。
class-map copp-s-l3destmiss (match-any) police pps 100 OutPackets 0 DropPackets 0
copp-s-glean
IP アドレスに関する ARP 解決が提供されない直接接続サブネットの IPアドレスへのレイヤ 3 トラフィックで、ソフトウェアでの ARP 解決をトリガーするために使用されます。
class-map copp-s-glean (match-any) police pps 500 OutPackets 0 DropPackets 0
copp-s-selfip
他のより詳細な CoPP クラスで一致がない場合は、ルータ インターフェイスのいずれかの IP アドレスに対して着信するパケットのデフォルトの CoPP クラスです。
class-map copp-s-selfIp (match-any) police pps 500 OutPackets 4 DropPackets 0
copp-s-l3mtufail
フラグメンテーションまたは ICMP メッセージの生成に関してソフトウェア処理を必要とする MTU チェック エラーがあるレイヤ 3 パケットです。
class-map copp-s-l3mtufail (match-any) police pps 100 OutPackets 0 DropPackets 0
copp-s-ttl1
ルータのいずれかのインターフェイス IP アドレスに着信する、TTL=1 のレイヤ 3 パケットです。
class-map copp-s-ttl1 (match-any) police pps 100 OutPackets 0 DropPackets 0
copp-s-ipmsmiss
マルチキャスト転送ルックアップに関するハードウェア レイヤ 3 転送テーブルにルックアップのミスがあるマルチキャスト パケットです。これらのデータ パケットは、マルチキャスト パケットのハードウェア転送に関するハードウェア転送テーブル エントリのインストールをトリガーできます。
class-map copp-s-ipmcmiss (match-any) police pps 400 OutPackets 0 DropPackets 0
copp-s-l3slowpath
ソフトウェアで渡す必要のある他のパケットの例外ケースにヒットするレイヤ 3 パケットです(IP オプション パケットなど)。
class-map copp-s-l3slowpath (match-any) police pps 100 OutPackets 0 DropPackets 0
copp-s-dhcpreq
DHCP 要求 パケットの CoPP クラスです。デフォルトでは、このクラスは、このクラスのパケットの CoPP レートをプログラムするためにのみ使用されます。「CPU へのコピー」は、DHCP スヌーピングまたはリレーが設定されるまで有効になりません。
class-map copp-s-dhcpreq (match-any) police pps 300 OutPackets 0 DropPackets 0
copp-s-dai
ARP インスペクション代行受信パケットの CoPP クラスです。デフォルトでは、このクラスは、このクラスのパケットの CoPP レートをプログラムするためにのみ使用されます。「CPU へのコピー」は、IP ARP インスペクション機能が設定されるまで有効になりません。
class-map copp-s-dai (match-any) police pps 300 OutPackets 0 DropPackets 0
copp-s-pimautorp
この CoPP クラスは、PIM auto-rp パケットを CPU(IP マルチキャスト グループ 224.0.1.39 および 224.0.1.40)にコピーするために使用されます。
class-map copp-s-pimautorp (match-any) police pps 200 OutPackets 0 DropPackets 0
copp-s-arp
CPU にコピーされる ARPと ND の要求パケットおよび応答パケットの CoPP クラスです。
class-map copp-s-arp (match-any) police pps 200 OutPackets 0 DropPackets 0
copp-s-ptp
Precision Time Protocol(PTP)パケットの CoPP クラスです。
class-map copp-s-ptp (match-any) police pps 1000 OutPackets 0 DropPackets 0
copp-s-vxlan
この CoPP クラスは、NV オーバーレイ機能が設定されている場合およびリモート ピア IP アドレス ラーニングのためにパケットが CPU にコピーされる場合に使用されます。
class-map copp-s-vxlan (match-any) police pps 1000 OutPackets 0 DropPackets 0
copp-s-bfd
CPU にコピーされるBidirectional Forwarding Detection(BFD)パケット (BFD プロトコル UDP ポートにより、ルータ インターフェイス IP アドレスに着信するパケット)の CoPP クラスです。
class-map copp-s-bfd (match-any) police pps 600 OutPackets 0 DropPackets 0
copp-s-bpdu
CPU にコピーされる BPDU クラスのパケットの CoPP クラスです(STP、CDP、LLDP、LACP、UDLD パケットなど)。
class-map copp-s-bpdu (match-any) police pps 15000 OutPackets 100738 DropPackets 0
copp-s-dpss
ポリシーが punt-to-CPU アクションによって設定される場合に、プログラム可能機能の onePK およびオープンフローに関して使用される CoPP クラスです(データ パス サービス セット、オープンフロー punt-to-controller アクションなど)。
class-map copp-s-dpss (match-any) police pps 1000 OutPackets 0 DropPackets 0
copp-s-mpls
MPLS ラベル除去アクションのためにタップ アグリゲーション機能に関して使用されます。このクラスは、ラベル除去アクションのために、パケットを CPU にコピーして MPLS ラベル情報およびプログラムをラーニングするために使用されます。
class-map copp-s-mpls (match-any) police pps 100 OutPackets 0 DropPackets 0
![]() (注) | copp-s-x という名前のクラスはスタティック クラスです。 ACL は、スタティックとダイナミックの両方のクラスに関連付けることができます。 |
特定のポリシーの 1 秒間あたりのパケット(PPS)の合計(ポリシーの各クラス部分の PPS の合計)の上限は、PPS のクレジット制限(PCL)の上限になります。特定のクラスの PPS が増加して PCL 超過すると、設定が拒否されます。目的の PPS を増やすには、PCL を超える PPS の分を他のクラスから減少させる必要があります。
Cisco NX-OS デバイスは、管理インターフェイス(mgmt0)をサポートしないハードウェア ベースの CoPP だけをサポートします。アウトオブバンド mgmt0 インターフェイスは CPU に直接接続するため、CoPP が実装されているインバンド トラフィック ハードウェアは通過しません。
mgmt0 インターフェイスで、ACL を設定して、特定タイプのトラフィックへのアクセスを許可または拒否することができます。
この機能には、ライセンスは必要ありません。ライセンス パッケージに含まれていない機能はすべて Cisco NX-OS システム イメージにバンドルされており、追加費用は一切発生しません。NX-OS ライセンス方式の詳細については、『Cisco NX-OS Licensing Guide』を参照してください。
CoPP に関する注意事項と制約事項は次のとおりです。
7.0(3)I2(1) よりも前のリリースでは、copp-s-igmp.用のポートで PIM が有効になっていなくても、常に、レイヤ 3 ポートで PIM-IGMP class-id が設定されていました。そのため、PIM が有効になっていない場合でも、IGMP パケットが CPU に着信していました。7.0(3)I2(1) 以降では、PIM が有効になっている場合にのみ、ポートで PIM_IGMP class-id が設定されます。PIM が有効になっていない場合はレイヤ 3 ポートで CPU に IGMP パケットをパントする必要がないため、feature pim を設定し、copp-s-igmp キューでパケットを取得するポートの PIM を有効にする必要があります。
導入のシナリオに応じてデフォルト、L2、または L3 ポリシーを選択し、観察された動作に基づいて、CoPP ポリシーを後で変更することを推奨します。
fast-reload を実行した後、トラフィックが完全に収束してから、トラフィックにおいて +/- 2 ~ 5 % の不規則性が約 30 ~ 40 秒間発生する場合は、ARP パケットに関する CoPP 値を大きくします。
CoPP のカスタマイズは継続的なプロセスです。CoPP を設定するときには、特定の環境で使用されるプロトコルや機能に加えて、サーバ環境に必要なスーパーバイザ機能を考慮する必要があります。これらのプロトコルや機能が変更されたら、CoPP を変更する必要があります。
Release 6.0(2)U6(1) の場合、write erase コマンドとリロードにより、copp-s-bfd コマンドに関して、ポリシングの 1 秒間あたりのパケット(PPS)のデフォルト値が 900 に変更されます。
CoPP を継続的にモニタすることを推奨します。ドロップが発生した場合は、CoPP がトラフィックを誤ってドロップしたのか、または誤動作や攻撃に応答してドロップしたのかを判定してください。どちらの場合も、状況を分析して、別の CoPP ポリシーを使用するか、またはカスタマイズ済み CoPP ポリシーを変更する必要があるかどうかを評価します。
Cisco NX-OS ソフトウェアは、出力 CoPP とサイレント モードをサポートしません。CoPP は入力だけでサポートされます。service-policy output copp は、コントロール プレーン インターフェイスには適用できません。
新しい CoPP ポリシーの作成はサポートされていません。
insert-before オプションを使用して新しい CoPP クラス マップが CoPP ポリシー マップに挿入される場合、実行コンフィギュレーションにおけるクラス マップの順序は維持されます。ただし、write erase コマンドを実行し、スイッチをリロードすると、デフォルトの CoPP ポリシーが適用され、クラス マップがデフォルトの順序に並べ替えられます。ファイルを実行コンフィギュレーションにコピーすると、それが既存の CoPP ポリシーの変更操作となり、新しいクラス マップが最後に挿入されます。同様に、ファイルにおいてデフォルト クラス マップの順序変更がある場合、それは有効になりません。クラス マップの順序を保存するには、コンフィギュレーションをスタートアップにコピーして、リロードします。
IPv6 と IPv4 の CoPP ACL エントリでは、別々の TCAM リージョンを使用します。IPv6 CoPP が動作するには、IPv6 ACL SUP TCAM リージョン(ipv6-sup)がゼロ以外のサイズに切り分けられている必要があります。詳細については、ACL TCAM リージョンおよびACL TCAM リージョン サイズの設定のトピックを参照してください。
CoPP には、すべての IPv4 CoPP ACL、IPv6 CoPP ACL および ARP ACL で最大 76 個のエントリを設定できます。システムは、72 個のスタティック エントリでプログラムされます(20 個の内部エントリ、43 個の IPv4 ACL エントリ、および 9 つの IPv6 ACL エントリ)。残りの 4 つのエントリを設定できます。さらにエントリを作成する必要がある場合は、未使用のスタティックな CoPP ACE を削除する必要があります。その後、追加エントリを作成します。
Release 6.0(2)U5(1) 以降では、トンネルが設定されていない場合、Cisco Nexus 3000 シリーズ スイッチは、すべてのパケットをドロップします。また、トンネルが設定されている場合でも、トンネル インターフェイスが設定されていないか、トンネル インターフェイスがシャットダウン状態のときは、パケットがドロップされます。
ポイントツーポイント トンネル(送信元と宛先):Cisco Nexus 3000 シリーズ スイッチは、feature tunnel コマンドが設定されており、着信パケットの外部送信元および宛先アドレスと一致するトンネル送信元および宛先アドレスによって設定されている使用可能なトンネル インターフェイスが存在する場合に、そのスイッチを宛先とするすべての IP-in-IP パケットのカプセル化を解除します。送信元および宛先パケットが一致しない場合またはインターフェイスがシャットダウン状態の場合は、パケットがドロップされます。
トンネルのカプセル化解除(送信元のみ):Cisco Nexus 3000 シリーズ スイッチは、feature tunnel コマンドが設定されており、着信パケットの外部宛先アドレスと一致するトンネル送信元アドレスによって設定されている使用可能なトンネル インターフェイスが存在する場合に、そのスイッチを宛先とするすべての IP-in-IP パケットのカプセル化を解除します。送信元パケットが一致しない場合またはインターフェイスがシャットダウン状態の場合は、パケットがドロップされます。
CoPP 機能をサポートしない Cisco NX-OS リリースから CoPP 機能をサポートする Cisco NX-OS リリースにアップグレードする場合は、スイッチの起動時にデフォルト ポリシーを使って CoPP が自動的にイネーブルにされます。別のポリシー(デフォルト、 l3、 l2)をイネーブルにするには、アップグレード後にセットアップ スクリプトを実行する必要があります。CoPP 保護を設定しない場合、NX-OS デバイスは DoS 攻撃に対して脆弱な状態のままになります。
CoPP 機能をサポートする Cisco NX-OS リリースから、新しいプロトコルの追加クラスを含む CoPP 機能をサポートする Cisco NX-OS リリースにアップグレードする場合は、CoPP の新しいクラスを使用可能にするためにセットアップ ユーティリティを実行する必要があります。
セットアップ スクリプトは、CPU に着信するさまざまなフローに対応するポリシング レートを変更するため、デバイスにトラフィックが発生する時間ではなく、スケジュールされたメンテナンス期間にセットアップ スクリプトを実行することを推奨します。
CoPP の設定
コントロール プレーン ポリシーのコントロール プレーン クラス マップを設定する必要があります。
トラフィックを分類するには、既存の ACL に基づいてパケットを照合します。ACL キーワード permit および deny は、マッチング時には無視されます。
IPv4 または IPv6 パケットのポリシーを設定できます。
クラス マップ内で ACE ヒット カウンタを使用する場合は、IP ACL が設定してあることを確認します。
CoPP のポリシー マップを設定する必要があります。ポリシー マップにはポリシング パラメータを含めます。クラスのポリサーを設定しなかった場合、デフォルトの PPS をサポートします。
IPv4 または IPv6 パケットのポリシーを設定できます。
コントロール プレーン クラス マップが設定してあることを確認します。
コマンドまたはアクション | 目的 | |||
---|---|---|---|---|
ステップ 1 | configure terminal 例: switch# configure terminal switch(config)# |
グローバル コンフィギュレーション モードを開始します。 | ||
ステップ 2 | policy-map type control-planepolicy-map-name 例: switch(config)# policy-map type control-plane copp-system-policy switch(config-pmap)# |
コントロール プレーン ポリシー マップを指定し、ポリシー マップ コンフィギュレーション モードを開始します。ポリシー マップ名は大文字と小文字が区別されます。
| ||
ステップ 3 | class {class-map-name [insert-beforeclass-map-name2] | class} 例: switch(config-pmap)# class ClassMapA switch(config-pmap-c)# |
コントロール プレーン クラス マップ名またはクラス デフォルトを指定し、コントロール プレーン クラス コンフィギュレーション モードを開始します。 | ||
ステップ 4 | police [pps] {pps-value} [bc] burst-size [bytes | kbytes | mbytes | ms | packets | us] 例: switch(config-pmap-c)# police pps 100 bc 10 |
1 秒間あたりのパケット(PPS)およびコミット済みバースト(BC)に関するレート制限を指定します。PPS の範囲は 0 ~ 20,000 です。デフォルト PPS は 0 です。BC の範囲は 0 ~ 512000000 です。デフォルト BC サイズの単位はバイトです。 | ||
ステップ 5 | police [cir] {cir-rate [rate-type]} または police [cir] {cir-rate [rate-type]}[ bc] burst-size [burst-size-type] または police [cir] {cir-rate [rate-type]} conform transmit [violate drop] 例: switch(config-pmap-c)# police cir 3400 kbps bc 200 kbytes |
同じ CIR に BC と一致(conform)アクションを指定できます。一致アクションのオプションは次のとおりです。 | ||
ステップ 6 | exit 例: switch(config-pmap-c)# exit switch(config-pmap)# |
ポリシー マップ クラス コンフィギュレーション モードを終了します。 | ||
ステップ 7 | exit 例: switch(config-pmap)# exit switch(config)# |
ポリシー マップ コンフィギュレーション モードを終了します。 | ||
ステップ 8 | show policy-map type control-plane [expand] [nameclass-map-name] 例: switch(config)# show policy-map type control-plane | (任意)
コントロール プレーン ポリシー マップの設定を表示します。 | ||
ステップ 9 | copy running-config startup-config 例: switch(config)# copy running-config startup-config | (任意)
実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。 |
コントロール プレーン ポリシー マップを設定します。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 | configure terminal 例: switch# configure terminal switch(config)# |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 | control-plane 例: switch(config) # control-plane switch(config-cp)# | コントロール プレーン コンフィギュレーション モードを開始します。 |
ステップ 3 | [no] service-policy input policy-map-name 例: switch(config-cp)# service-policy input copp-system-policy | 入トラフィックのポリシー マップを指定します。 |
ステップ 4 | exit 例: switch(config-cp)# exit switch(config)# | コントロール プレーン コンフィギュレーション モードを終了します。 |
ステップ 5 | show running-config copp [all] 例: switch(config)# show running-config copp | (任意) CoPP 設定を表示します。 |
ステップ 6 | copy running-config startup-config 例: switch(config)# copy running-config startup-config | (任意)
リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。 |
CoPP の設定情報を表示するには、次の show コマンドのいずれかを入力します。
コマンド |
目的 |
---|---|
show ip access-lists [acl-name] |
CoPP の ACL を含め、システム内で設定されているすべての IPv4 ACL を表示します。 |
show class-map type control-plane [class-map-name] |
このクラス マップにバインドされている ACL を含め、コントロール プレーン クラス マップの設定を表示します。 |
show ipv6 access-lists |
CoPP IPv6 ACL を含め、デバイス上で設定されているすべての IPv6 ACL を表示します。 |
show arp access-lists |
CoPP ARP ACL を含め、デバイス上で設定されているすべての ARP ACL を表示します。 |
show policy-map type control-plane [expand] [name policy-map-name] |
コントロール プレーン ポリシー マップと関連するクラス マップおよび PPS の値を表示します。 |
show running-config copp [all] |
実行コンフィギュレーション内の CoPP 設定を表示します。 |
show running-config aclmgr [all] |
実行コンフィギュレーションのユーザ設定によるアクセス コントロール リスト(ACL)を表示します。all オプションを使用すると、実行コンフィギュレーションのデフォルト(CoPP 設定)とユーザ定義による ACL の両方が表示されます。 |
show startup-config copp [all] |
スタートアップ コンフィギュレーション内の CoPP 設定を表示します。 |
show startup-config aclmgr [all] |
スタートアップ コンフィギュレーションのユーザ設定によるアクセス コントロール リスト(ACL)を表示します。all オプションを使用すると、スタートアップ コンフィギュレーションのデフォルト(CoPP 設定)とユーザ定義による ACL の両方が表示されます。 |
コマンドまたはアクション | 目的 |
---|
次に、CoPP 設定ステータスを表示する例を示します。
switch# show copp status
コマンドまたはアクション | 目的 |
---|
次に、CoPP をモニタする例を示します。
switch# show policy-map interface control-plane Control Plane service-policy input: copp-system-policy-default class-map copp-system-class-igmp (match-any) match protocol igmp police cir 1024 kbps , bc 65535 bytes conformed 0 bytes; action: transmit violated 0 bytes; class-map copp-system-class-pim-hello (match-any) match protocol pim police cir 1024 kbps , bc 4800000 bytes conformed 0 bytes; action: transmit violated 0 bytes; ....
switch# show policy-map interface control-plane Control Plane service-policy input: copp-system-policy class-map copp-s-selfIp (match-any) police pps 500 OutPackets 268 DropPackets 0
CoPP クラスに対するレート制限がディセーブルにされていると、CPU が大量のトラフィックを受けやすい状態になります。
CPU が保護されていること、および過剰な外部トラフィックがデバイス インターフェイス、スーパーバイザ モジュールおよび CPU に送信されていないことを確認してください。
コマンドまたはアクション | 目的 | |
---|---|---|
ステップ 1 | configure terminal 例: switch# configure terminal switch(config)# |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 | copp rate-limit disable 例: switch(config)# copp rate-limit disable | CPU に送信されるデフォルトの 1 秒あたりのパケット数をディセーブルにし、各キューで最大限のレートで CPU にパケットを送信できるようにします。 このコマンドを実行すると、CoPP レート制限がすべてのクラスに対してディセーブルにされたことを通知する警告メッセージが表示されます。したがって、CPU はトラフィック攻撃を受けやすくなります。できるだけ早く no copp rate-limit disable コマンドを実行してください。 |
ステップ 3 | show policy-map interface control-plane 例: switch(config)# show policy-map interface control-plane | (任意) 適用された CoPP ポリシーの一部であるすべてのクラスに関して、パケット レベルの統計情報を表示します。 統計情報は、OutPackets(コントロール プレーンに対して許可されたパケット)と DropPackets(レート制限によってドロップされたパケット)に関して指定します。 |
ステップ 4 | no copp rate-limit disable 例: switch(config)# no copp rate-limit disable | 各キューで CPU に送信されるパケットのレート制限をデフォルト値にリセットします。 |
ステップ 5 | exit 例: switch(config)# exit |
グローバル コンフィギュレーション モードを終了します。 |
コマンドまたはアクション | 目的 |
---|
次に、インターフェース環境で、CoPP 統計情報をクリアする例を示します。
switch# show policy-map interface control-plane switch# clear copp statistics
ip access-list copp-sample-acl permit udp any any eq 3333 permit udp any any eq 4444
次に、着信パケットに適合する使用可能なトンネルが存在しない場合にすべての IP-in-IP(プロトコル 4)パケットを即座にドロップするように CoPP ポリシーを変更する例を示します。次の例に示すように、デフォルトの copp-s-selfip ポリシーの前に copp-s-ipinip を作成します。
ip access-list copp-s-ipinip 10 permit 4 any any class-map type control-plane match-any copp-s-ipinip match access-group name copp-s-ipinip policy-map type control-plane copp-system-policy class copp-s-ipinip police pps 0 class copp-s-selfIp police pps 500 class copp-s-default police pps 400
次に、CoPP の新規クラスおよび関連する ACL を作成する例を示します。
class-map type control-plane copp-sample-class match access-group name copp-sample-acl
次に、CoPP ポリシーにクラスを追加する例を示します。
policy-map type control-plane copp-system-policy Class copp-sample-class Police pps 100
次に、既存のクラス(copp-s-bpdu)の PPS を変更する例を示します。
policy-map type control-plane copp-system-policy Class copp-s-bpdu Police pps <new_pps_value>
ipv6 access-list copp-system-acl-eigrp6 10 permit 88 any ff02::a/128
class-map type control-plane copp-s-eigrp match access-grp name copp-system-acl-eigrp6
policy-map type control-plane copp-system-policy class copp-s-eigrp police pps 100
ARP ACL では ARP TCAM を使用します。この TCAM のデフォルト サイズは 0 です。ARP ACL を CoPP で使用するには、その前に、この TCAM をゼロ以外のサイズに切り分ける必要があります。
hardware profile tcam region arpacl 128 copy running-config startup-config reload
arp access-list copp-arp-acl permit ip 20.1.1.1 255.255.255.0 mac any
ARP ACL をクラスに関連付けて、CoPP ポリシーにそのクラスを追加する手順は、IP ACL の場合の手順と同じです。
class-map type control-plane copp-sample-class match access-group name copp-arp-acl
policy-map type control-plane copp-system-policy no class-abc
no class-map type control-plane copp-abc
policy-map type control-plan copp-system-policy class copp-ping insert-before copp-icmp
次に、ACL、クラス、ポリシー、および個別のクラス ポリシングの CoPP の設定例を示します。
IP access list copp-system-acl-eigrp
10 permit eigrp any 224.0.0.10/32
IP access list copp-system-acl-icmp
10 permit icmp any any
IP access list copp-system-acl-igmp
10 permit igmp any any
IP access list copp-system-acl-ntp
10 permit udp any any eq ntp
20 permit udp any eq ntp any
IP access list copp-system-acl-pimreg
10 permit pim any any
IP access list copp-system-acl-ping
10 permit icmp any any echo
20 permit icmp any any echo-reply
IP access list copp-system-acl-routingproto1
10 permit tcp any gt 1024 any eq bgp
20 permit tcp any eq bgp any gt 1024
30 permit udp any 224.0.0.0/24 eq rip
40 permit tcp any gt 1024 any eq 639
50 permit tcp any eq 639 any gt 1024
70 permit ospf any any
80 permit ospf any 224.0.0.5/32
90 permit ospf any 224.0.0.6/32
IP access list copp-system-acl-routingproto2
10 permit udp any 224.0.0.0/24 eq 1985
20 permit 112 any 224.0.0.0/24
IP access list copp-system-acl-snmp
10 permit udp any any eq snmp
20 permit udp any any eq snmptrap
IP access list copp-system-acl-ssh
10 permit tcp any any eq 22
20 permit tcp any eq 22 any
IP access list copp-system-acl-stftp
10 permit udp any any eq tftp
20 permit udp any any eq 1758
30 permit udp any eq tftp any
40 permit udp any eq 1758 any
50 permit tcp any any eq 115
60 permit tcp any eq 115 any
IP access list copp-system-acl-tacacsradius
10 permit tcp any any eq tacacs
20 permit tcp any eq tacacs any
30 permit udp any any eq 1812
40 permit udp any any eq 1813
50 permit udp any any eq 1645
60 permit udp any any eq 1646
70 permit udp any eq 1812 any
80 permit udp any eq 1813 any
90 permit udp any eq 1645 any
100 permit udp any eq 1646 any
IP access list copp-system-acl-telnet
10 permit tcp any any eq telnet
20 permit tcp any any eq 107
30 permit tcp any eq telnet any
40 permit tcp any eq 107 any
IP access list copp-system-dhcp-relay
10 permit udp any eq bootps any eq bootps
IP access list test
statistics per-entry
10 permit ip 1.2.3.4/32 5.6.7.8/32 [match=0]
20 permit udp 11.22.33.44/32 any [match=0]
30 deny udp 1.1.1.1/32 any [match=0]
IPv6 access list copp-system-acl-dhcpc6
10 permit udp any any eq 546
IPv6 access list copp-system-acl-dhcps6
10 permit udp any ff02::1:2/128 eq 547
20 permit udp any ff05::1:3/128 eq 547
IPv6 access list copp-system-acl-eigrp6
10 permit 88 any ff02::a/128
IPv6 access list copp-system-acl-v6routingProto2
10 permit udp any ff02::66/128 eq 2029
20 permit udp any ff02::fb/128 eq 5353
IPv6 access list copp-system-acl-v6routingproto1
10 permit 89 any ff02::5/128
20 permit 89 any ff02::6/128
30 permit udp any ff02::9/128 eq 521
class-map type control-plane match-any copp-icmp
match access-group name copp-system-acl-icmp
class-map type control-plane match-any copp-ntp
match access-group name copp-system-acl-ntp
class-map type control-plane match-any copp-s-arp
class-map type control-plane match-any copp-s-bfd
class-map type control-plane match-any copp-s-bpdu
class-map type control-plane match-any copp-s-dai
class-map type control-plane match-any copp-s-default
class-map type control-plane match-any copp-s-dhcpreq
match access-group name copp-system-acl-dhcps6
class-map type control-plane match-any copp-s-dhcpresp
match access-group name copp-system-acl-dhcpc6
match access-group name copp-system-dhcp-relay
class-map type control-plane match-any copp-s-eigrp
match access-group name copp-system-acl-eigrp
match access-group name copp-system-acl-eigrp6
class-map type control-plane match-any copp-s-glean
class-map type control-plane match-any copp-s-igmp
match access-group name copp-system-acl-igmp
class-map type control-plane match-any copp-s-ipmcmiss
class-map type control-plane match-any copp-s-l2switched
class-map type control-plane match-any copp-s-l3destmiss
class-map type control-plane match-any copp-s-l3mtufail
class-map type control-plane match-any copp-s-l3slowpath
class-map type control-plane match-any copp-s-pimautorp
class-map type control-plane match-any copp-s-pimreg
match access-group name copp-system-acl-pimreg
class-map type control-plane match-any copp-s-ping
match access-group name copp-system-acl-ping
class-map type control-plane match-any copp-s-ptp
class-map type control-plane match-any copp-s-routingProto1
match access-group name copp-system-acl-routingproto1
match access-group name copp-system-acl-v6routingproto1
class-map type control-plane match-any copp-s-routingProto2
match access-group name copp-system-acl-routingproto2
class-map type control-plane match-any copp-s-selfIp
class-map type control-plane match-any copp-s-ttl1
class-map type control-plane match-any copp-s-v6routingProto2
match access-group name copp-system-acl-v6routingProto2
class-map type control-plane match-any copp-snmp
match access-group name copp-system-acl-snmp
class-map type control-plane match-any copp-ssh
match access-group name copp-system-acl-ssh
class-map type control-plane match-any copp-stftp
match access-group name copp-system-acl-stftp
class-map type control-plane match-any copp-tacacsradius
match access-group name copp-system-acl-tacacsradius
class-map type control-plane match-any copp-telnet
match access-group name copp-system-acl-telnet
policy-map type control-plane copp-system-policy
class copp-s-selfIp
police pps 500
class copp-s-default
police pps 400
class copp-s-l2switched
police pps 200
class copp-s-ping
police pps 100
class copp-s-l3destmiss
police pps 100
class copp-s-glean
police pps 500
class copp-s-l3mtufail
police pps 100
class copp-s-ttl1
police pps 100
class copp-s-ipmcmiss
police pps 400
class copp-s-l3slowpath
police pps 100
class copp-s-dhcpreq
police pps 300
class copp-s-dhcpresp
police pps 300
class copp-s-dai
police pps 300
class copp-s-igmp
police pps 400
class copp-s-routingProto2
police pps 1300
class copp-s-v6routingProto2
police pps 1300
class copp-s-eigrp
police pps 200
class copp-s-pimreg
police pps 200
class copp-s-pimautorp
police pps 200
class copp-s-routingProto1
police pps 1000
class copp-s-arp
police pps 200
class copp-s-ptp
police pps 1000
class copp-s-bfd
police pps 350
class copp-s-bpdu
police pps 12000
class copp-icmp
police pps 200
class copp-telnet
police pps 500
class copp-ssh
police pps 500
class copp-snmp
police pps 500
class copp-ntp
police pps 100
class copp-tacacsradius
police pps 400
class copp-stftp
police pps 400
control-plane
service-policy input copp-system-policy
セットアップ ユーティリティを使用して、デフォルト CoPP ポリシーを変更または再適用する例を次に示します。
switch# setup ---- Basic System Configuration Dialog ---- This setup utility will guide you through the basic configuration of the system. Setup configures only enough connectivity for management of the system. *Note: setup is mainly used for configuring the system initially, when no configuration is present. So setup always assumes system defaults and not the current system configuration values. Press Enter at anytime to skip a dialog. Use ctrl-c at anytime to skip the remaining dialogs. Would you like to enter the basic configuration dialog (yes/no): yes Create another login account (yes/no) [n]: n Configure read-only SNMP community string (yes/no) [n]: n Configure read-write SNMP community string (yes/no) [n]: n Enter the switch name : switch Continue with Out-of-band (mgmt0) management configuration? (yes/no) [y]: n Configure the default gateway for mgmt? (yes/no) [y]: n Enable the telnet service? (yes/no) [n]: y Enable the ssh service? (yes/no) [y]: n Configure the ntp server? (yes/no) [n]: n Configure CoPP System Policy Profile ( default / l2 / l3 ) [default]: l2 The following configuration will be applied: switchname switch telnet server enable no ssh server enable policy-map type control-plane copp-system-policy ( l2 ) Would you like to edit the configuration? (yes/no) [n]: n Use this configuration and save it? (yes/no) [y]: y [########################################] 100%
![]() (注) | このセクションは、N3K モードでの Cisco Nexus 3000 シリーズ スイッチおよび Cisco Nexus 3100シリーズ スイッチのみに適用されます。 |
一部のサーバでは、アクティブな NIC が集約スイッチにアクセスできることを確認するために、デフォルト ゲートウェイに対する ICMP ping を使用しています。その結果として CoPP 値が超過すると、CoPP はすべてのネットワークに対してトラフィックのドロップを開始します。正しく機能していないサーバが大量の ICMP ping を送信すると、ある集約ブロック内にあるすべてのサーバでアクティブな NIC が失われ、NIC の切り替えが開始されます。
使用しているサーバがこのように設定されている場合は、サブネットまたはサブネットのグループに基づいて ICMP ping を分割することにより、CoPP のオーバーフローを最小限に抑えることができます。その後、サーバで障害が発生して CoPP がオーバーフローした場合でも、スーパーバイザが一部のサブネットワークでのみ ICMP ping に応答します。
クラス マップまたはポリシー マップの最後のエントリは、指定されていないネットワークでのすべての ICMP ping を特定する必要があります。これらのカウンタが増えることは、ICMP の既存の ACL で指定されていない新しいネットワークが追加されたことを意味します。この場合は、ICMP に関連する ACL を更新する必要があります。
![]() (注) | デフォルト CoPP ごとに、ICMP ping が copp-system-p-class-monitoring に分類されます。 |
次に、ICMP ping を分割して、CoPP のオーバーフローを回避する例を示します。
最初に、アプリケーションの調査の結果に基づいてグループ化するネットワークを識別する新しい ACL を追加します。
ip access-list copp-icmp-1 statistics per-entry 10 permit icmp 10.2.1.0 255.255.255.0 any 20 permit icmp 10.2.2.0 255.255.255.0 any 30 permit icmp 10.2.3.0 255.255.255.0 any ip access-list copp-icmp-2 statistics per-entry 10 permit icmp 10.3.1.0 255.255.255.0 any 10 permit icmp 10.3.2.0 255.255.255.0 any 10 permit icmp 10.3.3.0 255.255.255.0 any ip access-list copp-icmp-3 statistics per-entry 10 permit icmp 10.4.1.0 255.255.255.0 any 10 permit icmp 10.4.2.0 255.255.255.0 any 10 permit icmp 10.4.3.0 255.255.255.0 any ... ip access-list copp-icmp-10 10 permit icmp any any
CoPP の新しいクラス マップにこれらの ACL を追加します。
class-map type control-plane match-any copp-cm-icmp-1 match access-group name copp-icmp-1 class-map type control-plane match-any copp-cm-icmp-2 match access-group name copp-icmp-2 class-map type control-plane match-any copp-cm-icmp-3 match access-group name copp-icmp-3 ... class-map type control-plane match-any copp-cm-icmp-10 match access-group name copp-icmp-10
先に作成したクラス マップを持つ新しいポリシーを追加することにより、CoPP ポリシー マップを変更します。
policy-map type control-plane copp-system-p-policy class copp-cm-icmp-1 police cir X pps bc X conform transmit violate drop class copp-cm-icmp-2 police cir X pps bc X conform transmit violate drop class copp-cm-icmp-3 police cir X pps bc X conform transmit violate drop class copp-cm-icmp-4 police cir X pps bc X conform transmit violate drop class copp-cm-icmp-10 police cir X pps bc X conform transmit violate drop
既存のクラス マップから ICMP を削除します。
class-map type control-plane match-any copp-system-p-class-monitoring no match access-grp name copp-system-p-acl-icmp
ここでは、CoPP の実装に関する追加情報について説明します。
関連項目 |
マニュアル タイトル |
---|---|
ライセンス |
|
コマンド リファレンス |