らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

ACI 5.x で CoPP Interface を設定してコントロールプレーンを保護する

Cisco ACI では DoS 攻撃などのトラフィックからコントロールプレーンを保護する為に以下の選択肢があります。

  1. CoPP Prefilter
  2. CoPP Interface (PPPi-CoPP = Per Protocol Per Interface Control Plane Policing)

今回は CoPP Interface の設定方法についてメモしておきます。 検証は ACI バージョン 5.1(1h) で行いました。

Step.1

FabricAccess PoliciesPoliciesInterfaceCoPP Interface から Create Per interface per protocol CoPP policy をクリックします。

f:id:sig9:20201108141629p:plain

Step.2

Name は任意の値を入力します。 CoPP policy Protocol の右側にある + マークをクリックします。

f:id:sig9:20201108141632p:plain

Step.3

制限したいトラフィックを入力します。 Rate / Burst には 10 ~ 4,398,046,510,080 (0x3fffffffc00) の値を設定可能です。

f:id:sig9:20201108141636p:plain

Rate / Burst に関してヘルプには以下のように書かれていました。

Rate

Desired bandwidth, specified as a bit rate or a percentage of the link rate. The unit options are Bits or Packets per second.

Burst

Size of a traffic burst that can exceed the Committed Information Rate (CIR) within a given unit of time and not impact scheduling. The unit options are Bytes or Packets.

Step.4

CoPP Interface Policy が作成出来たら Interface Policy Group から参照されるように設定します。 更にこれを Interface Profile から参照し、最終的には Switch Profile から参照されるようにします。 これで設定は完了です。

f:id:sig9:20201108141640p:plain

動作確認

設定が完了したので動作確認します。 Bridge Domain をふたつ作成し、双方向からサイズを大きくした ICMP パケットを短い間隔で送信します。

1. PC-1 側にのみ、CoPP Interface を設定する

PC-2 (CoPP Interface 未設定のネットワーク) から受信したトラフィックに対しては CoPP 保護の制御が効いていない点に注意します。

f:id:sig9:20201108151836p:plain

CoPP Interface の設定内容は Leaf 上で show copp policy per-interface を実行することで確認出来ます。

leaf# show copp policy per-interface
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
COPP CLASS           COPP RATE            COPP BURST           COPP INTF            OPERST               OPERSTQUAL           COPP PROTO GIVEN    
                                                                                                                              COPP PROTO ERR      
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pppi:ICMP            10                   20                   eth1/1               up                   none                 icmp

CoPP Interface によって許可された / 拒否されたパケットの統計情報は Leaf 上で show copp policy per-interface-stats を実行することで確認出来ます。

leaf# show copp policy per-interface-stats
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   CLASS         INTF           ARP            ICMP             CDP            LLDP            LACP             BGP             STP             BFD            OSPF      
                             A   |  Dr       A   |  Dr       A   |  Dr       A   |  Dr       A   |  Dr       A   |  Dr       A   |  Dr       A   |  Dr       A   |  Dr   
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 pppi:ICMP      eth1/1      --   |  --    478323212|4620078   --   |  --      --   |  --      --   |  --      --   |  --      --   |  --      --   |  --      --   |  --

2. PC-1/2 両方に CoPP Interface を設定する

PC-1/2 両方と接続しているインターフェイスに CoPP Interface 設定を行うと以下の結果になりました。

f:id:sig9:20201108151841p:plain

3. PC-1/2 両方に CoPP Interface を設定し、VRF で BD Enforcement Status を有効化する

更に VRF で BD Enforcement Status を有効化すると以下の結果になりました。 BD Enforcement Status については ACI で BD Subnet 宛通信を「同一ネットワーク」のみに制限する BD Enforcement Status 設定 で書きました。

f:id:sig9:20201108151844p:plain