コントロール プレーンのポリシングおよび保護

コントロールプレーンポリシング(CoPP)とは

コントロールプレーンポリシング(Control Plane Policing、CoPP)は、Ciscoルータやスイッチのコントロールプレーン(制御プレーン)への不要または悪意のあるトラフィックを制限・管理するためのセキュリティ機能です。コントロールプレーンとは、デバイスがネットワークの制御に関するタスクを実行する部分であり、ルーティングプロトコルの処理、管理トラフィックの処理、またはネットワークの制御を行うためのパケット処理が行われる領域です。

CoPPの概要

  • 目的: コントロールプレーンに対する不要なトラフィックや攻撃を防ぎ、ルータやスイッチの安定性を保つため。
  • 動作: CoPPはACL(アクセスコントロールリスト)やQoS(Quality of Service)と連携し、特定のトラフィックをフィルタリングまたは制限します。これにより、コントロールプレーンに過剰な負荷がかかるのを防ぎます。
  • 実装方法: クラスマップとポリシーマップを使って、どのトラフィックが許可されるべきか、どのトラフィックがドロップまたはレート制限されるべきかを定義します。

CoPPの使用例

  1. DoS攻撃の防止: 大量のトラフィックがコントロールプレーンに送られることで、ルータやスイッチが正常に機能しなくなることを防ぎます。
  2. 管理トラフィックの保護: SSH、SNMP、BGP、OSPFなどの重要な管理トラフィックを保護し、ネットワークの安定性を維持します。
  3. パフォーマンスの向上: 不要なトラフィックを制限することで、ネットワークデバイスのパフォーマンスが向上し、重要なタスクにリソースを集中できます。

コントロールプレーンポリシングの設定

基本構文

コントロール プレーン設定モードに入り、 QoS サービス ポリシーをアタッチします。
Device(config)#control-plane
Device(config-cp)#service-policy {input output policy-map-name}

DOS攻撃を軽減するためのコントロールプレーンポリシングの設定

1.アクセスリストの定義

フィルタリングするプロトコル番号を持つパケットを設定します。
Device(config)#access-list access-list-number permit protocol {any | host {address | name}} {any | host {address | name}}

フィルタリングするポート番号を持つパケットを設定します。
Device(config)#access-list access-list-number permit protocol {tcd | udp } {any | host {source-addr | name}} eq port number {any | host {source-addr | name}} eq port number

2.クラスマップの定義

クラス マップを作成して、適用するアクセス グループを指定します。
Device(config)#class-map class-map-name
Device(config-cmap)#match access-group access-list-index

3.ポリシーマップの定義

QoS ポリシー マップを設定します。(任意のポリシーの名前を指定します)
Device(config)#policy-map policy-map-name

QoSポリシーマップクラスを指定します。(クラスマップの定義で作成した名前を指定します)
Device(config-pmap-)#class class-map-name

指定されたレートでコントロール プレーン宛のトラフィックを制御します。
Device(config-pmap-c)#police rate units pps

ポリシング レート制限に準拠するパケットに対して実行するアクションを指定します。
Device(config-pmap-c-police)#conform-action action

コマンド内容
transmit許可されたトラフィックをそのまま転送します。
drop許可されたトラフィックを破棄(ドロップ)します。
set-clp-transmitCell Loss Priority(CLP)をセットし、転送します。
set-dscp-transmitトラフィックに対してDSCP(Differentiated Services Code Point)を設定し、転送します。
set-prec-transmitトラフィックのIPプレシデンス値を設定し、転送します。

4.コントロールプレーンへの適用

デバイスのコントロール プレーンに関連付けられている属性を関連付けます。
Device(config)#control plane [host | transit | cef-exception ]

コマンド内容
hostデバイス自体が処理するトラフィック(ルータのCPUに到達するトラフィック)を制御します。
transitデバイスを単に経由するトラフィック(転送されるトラフィック)を制御します。
cef-exceptionCEFによって高速転送できない例外トラフィックを制御します。

ポリシー マップをコントロール プレーンにアタッチします。
Device(config-cp)#service-policy {input | output } policy-map-name

設定例

以下の設定例はルータのコントロールプレーンに到達するICMPトラフィックを1秒当たり10パケットに制限する設定例です。制限を超えるトラフィックはドロップします。

参考文献

Control Plane Policing