CoPP: the firewall your router's CPU deserves
Your router forwards millions of packets per second in hardware without breaking a sweat. But the packets addressed to the router itself — routing updates, SSH, SNMP, pings — all get punted to a comparatively tiny CPU. Flood that CPU and the adjacencies drop, the network unconverges, and your SSH session dies right when you need it most.
Control Plane Policing (CoPP) is exactly what it sounds like: QoS applied to the path between the forwarding hardware and the CPU.
The recipe
CoPP is built from pieces you already know — class maps, policy maps, and a service policy — just attached somewhere unusual:
ip access-list extended MGMT-TRAFFIC
permit tcp 10.0.0.0 0.0.0.255 any eq 22
ip access-list extended ROUTING-TRAFFIC
permit ospf any any
permit tcp any any eq bgp
permit tcp any eq bgp any
class-map match-any CM-MGMT
match access-group name MGMT-TRAFFIC
class-map match-any CM-ROUTING
match access-group name ROUTING-TRAFFIC
policy-map PM-COPP
class CM-ROUTING
police 512000 conform-action transmit exceed-action transmit
class CM-MGMT
police 256000 conform-action transmit exceed-action drop
class class-default
police 128000 conform-action transmit exceed-action drop
control-plane
service-policy input PM-COPP
Note the asymmetry: routing traffic conforms and exceeds to transmit — you police it to observe it, but you never want to be the person whose CoPP policy dropped their own OSPF hellos. Management and default traffic get real limits.
Verify before you trust it
R1# show policy-map control-plane
Control Plane
Service-policy input: PM-COPP
Class-map: CM-ROUTING (match-any)
1042 packets, 81276 bytes
police:
rate 512000 bps, burst 16000 bytes
conformed 1042 packets; actions: transmit
exceeded 0 packets; actions: transmit
Watch the counters while the network is healthy so you know what normal looks like. A CoPP policy you've never read the counters of is a time bomb with your name on the change record.
Blueprint notes
- Start with
class-defaultpolicing generously; tighten after observing. - Fragments, TTL-expired packets and traffic needing ARP resolution also punt — the CPU path is busier than you think.
- On platforms with hardware CoPP, the policer runs in TCAM: zero CPU cost until packets actually exceed.
Security on the blueprint isn't just firewalls — it's making sure the boxes running your IGP stay reachable while someone floods them. CoPP is table stakes.