A denial-of-service (DoS) attack is any attempt to deny valid users access to network or server resources by using up all the resources of the network element or server. Denial of service protection provides reactive prevention from attack and determines whether the source of traffic is valid or invalid. DoS protection includes diagnostic tools and configuration options. DoS protection groups provide a simple policy that can be applied to interfaces, which can specify a set of parameters to tune behavior.
Figure 29 shows an example of the state of a flow with DoS protection using suspicious control flow detection (SCFD).
Figure 29: Typical Control Packet Processing

To reduce the chance of a successful denial of service (DoS) attack and to provide diagnostic abilities while undergoing an attack, the system can detect suspicious control flows and keep state on those flows. A flow is a specific control protocol on a specific interface from a particular source. When the system determines that a control flow is suspicious, it can take corrective action on that control flow.
Keeping full state on each control flow can use a large number of resources. Instead, the system detects which flows have suspicious traffic. If a control flow is marked as suspicious, every packet associated with the flow is considered suspicious. When a packet is marked as suspicious, it is dropped based on drop probability before being delivered to the control processor.
When a distributed DoS attack occurs on a line module, suspicious flow control resources can be exhausted. To provide further counter measures, you can enable the group feature, where flows are grouped together and treated as a whole. If you do not use the group feature, suspicious flows can fill up the suspicious flow table and prevent detection of additional attacking flows.
Each protocol has a per-protocol rate limit. The rate limiter is used to limit the rate of packets that proceed to the control processor for the specific protocol. Per-protocol rate limiting is also used to begin the process by which flows of the specific protocol are monitored.
Each priority has a per-priority rate limit. The rate limiter limits the rate of packets that proceed to the control processor for the specific priority. It also begins the process by which flows of the specific priority are monitored.
All protocols on each line module have a rate limit. Each protocol is associated with a given priority, which is also provided with a rate limit. When a slot comes under attack, the first lines of defense are the protocol and priority rate limiters. If the line module determines that a specific protocol or priority is under attack (because the rate has been exceeded), it proceeds to monitor all flows from the problem protocol or priority. Initially, a control flow is marked as nonsuspicious.
After a control flow is placed in the suspicious flow table, the system inspects all packets that belong to the flow. The interface controller (IC) and forwarding controller (FC) monitor the table to determine whether the suspicious flow has a packet rate above the suspicious level. If the packet rate is above this level, the flow is marked as suspicious. Marking a control flow as suspicious affects only a particular protocol on a particular interface. When a flow is marked as suspicious, all packets belonging to that flow are marked as suspicious and trapped at the forwarding controller.
Suspicious control flows are continually monitored. The flow can be restored if the flow goes below the low threshold level. The flow can also be restored based on a backoff timer. The flow is removed from the suspicious flow table if the related interface is removed.
Approximately 2000 flows can be monitored as suspicious at any time for each line module. When the suspicious flow table on a particular line module reaches its maximum and the system is not set to group flows, flows that should be marked as suspicious proceed as nonsuspicious. When you return a suspicious flow to a nonsuspicious state or delete it, the flows that did not fit into the table are added to the table.
By default, the system groups flows when the suspicious flow table size is exceeded on a line module. When the flow table is full, instead of marking a specific flow in that group as suspicious and providing information on each flow on that line module, the system groups flows based on group membership and provides information on the group instead of each flow. This flow information is useful under severe distributed DoS attacks. Group membership is based on physical port and control protocol; all flows in that group are considered suspicious.
You can configure the following options for suspicious flow detection:
You can also clear the following:
For monitoring purposes, you can:
The system generates a trap and a log message under the following conditions:
You can control trap and log messages using CLI or SNMP commands.
Use the commands described in this section to regulate suspicious control flows.
baseline suspicious-control-flow-detection counts
- host1#baseline suspicious-control-flow-detection
counts
clear suspicious-control-flow-detection
- host1#clear suspicious-control-flow-detection
interface atm 1/0.1 ppp Control address
0000.0001.0002
suspicious-control-flow-detection grouping-off
- host1(config)#suspicious-control-flow-detection
grouping-off
suspicious-control-flow-detection off
- host1(config)#suspicious-control-flow-detection
off
suspicious-control-flow-detection protocol backoff-time
- host1(config)#suspicious-control-flow-detection
protocol iposi backoff-time 300
suspicious-control-flow-detection protocol low-threshold
- host1(config)#suspicious-control-flow-detection
protocol iposi low-threshold 512
suspicious-control-flow-detection protocol threshold
- host1(config)#suspicious-control-flow-detection
protocol iposi threshold 1024
Use the commands described in this section to monitor suspicious control flows.
show suspicious-control-flow-detection counts
host1(config)#show suspicious-control-flow-detection counts
Suspicious Flow Detection System Counts
Number of suspicious flows total: 0
Number of suspicious flows current: 0
Number of groups total: 0
Number of groups current: 0
Number of false negatives total: 0
Number of false negatives current: 0
Number of table overflows: 0
show suspicious-control-flow-detection flows
host1(config)# show suspicious-control-flow-detection flows
Suspicious Flow Detection System Flows
Peak Time
In Rate Rate since
Interface Protocol MAC address Slot (pps) (pps) Create
----------------- ------- ------------ ----- --- ------- -------
GigabitEthernet 1/0/7 Ethernet ARP 0000.0100.0002 --- 1000030 1000050 00:00:32
*group 3 slot 1 EthernetArpMiss 0000.0100.0003 --- 1000 3000 00:10:10
show suspicious-control-flow-detection info
host1(config)#show suspicious-control-flow-detection info slot 2
Suspicious Flow Detection System Information
Suspicious Flow Detection System is enabled
Using Groups
The suspicious control flow system is not in overflow state or using groups
Protocol Information
Protocol State Transitions
--------------------------------------- ---------- -----------
Ppp Echo Request OK 0
Ppp Echo Reply OK 0
Ppp Echo Reply Fastpath OK 0
Ppp Control OK 0
Atm Control (ILMI) OK 0
Atm OAM OK 0
Atm Dynamic Interface Column Creation OK 0
Atm Inverse ARP OK 0
Frame Relay LMI Control OK 0
Frame Relay Inverse Arp OK 0
Pppoe Control OK 0
Pppoe Config Dynamic Interface Column OK 0
Creation
Ethernet ARP Miss OK 0
Ethernet ARP OK 0
Ethernet LACP packet OK 0
Ethernet Dynamic Interface Column OK 0
Creation
Slep SLARP OK 0
MPLS TTL Exceeded On Receive OK 0
MPLS TTL Exceeded On Transmit OK 0
MPLS MTU Exceeded OK 0
Ipsec Transport Mode L2tp Control OK 0
NAT/Firewall Payload OK 0
NAT/Firewall Update Table OK 0
DHCP External OK 0
IP OSI OK 0
IP TTL Expired OK 0
IP Options Other OK 0
IP Options Router Alert OK 0
IP Multicast/Broadcast Other OK 0
IP Multicast DHCP (SC) OK 0
IP Multicast Control (SC) OK 0
IP Multicast Control (IC) OK 0
IP Multicast VRRP OK 0
IP Mulitcast Cache Miss OK 0
IP Multicast Cache Miss Auto Reply OK 0
IP Multicast Wrong Interface OK 0
IP Local DHCP (SC) OK 0
IP Local Dhcp (IC) OK 0
IP Local Icmp Echo OK 0
IP Local Icmp Other OK 0
IP Local LDP OK 0
IP Local BGP OK 0
IP Local OSPF OK 0
IP Local RSVP OK 0
IP Local PIM OK 0
IP Local COPS OK 0
IP Local L2tp Control (SC) OK 0
IP Local L2tp Control (IC) OK 0
IP Local Other OK 0
IP Local Subscriber Interface Miss OK 0
IP Route To SRP Ethernet OK 0
IP Route No Route Exists OK 0
IP Normal Path MTU OK 0
IP Neighbor Discovery OK 0
IP Neighbor Discovery Miss OK 0
IP Search Error OK 0
IP MLD OK 0
IP Local PIM Assert OK 0
IP Local BFD OK 0
IP IKE OK 0
IP Reassembly OK 0
IP Local Icmp Frag OK 0
IP Local Frag OK 0
IP Application Classifier HTTP Redirect OK 0
Priority Information
Priority State Transitions
------------ ---------- -----------
Hi-Green-IC OK 0
Hi-Yellow-IC OK 0
Lo-Green-IC OK 0
Lo-Yellow-IC OK 1
Hi-Green-SC OK 0
Hi-Yellow-SC OK 0
Lo-Green-SC OK 0
Lo-Yellow-SC OK 0
show suspicious-control-flow-detection protocol
host1(config)#show suspicious-control-flow-detection protocol Protocol Threshold Lo-Threshold Backoff-Time ------------------------------ --------- ------------ ------------ Ppp Echo Request 10 5 300 Ppp Echo Reply 10 5 300 Ppp Echo Reply Fastpath 10 5 300 Ppp Control 10 5 300 Atm Control (ILMI) 10 5 300 Atm OAM 10 5 300 Atm Dynamic Interface Column 10 5 300 Creation Atm Inverse ARP 10 5 300 Frame Relay LMI Control 10 5 300 Frame Relay Inverse Arp 10 5 300 Pppoe Control 512 256 300 Pppoe Config Dynamic Interface 10 5 300 Column Creation Ethernet ARP Miss 128 64 300 Ethernet ARP 128 64 300 Ethernet LACP packet 10 5 300 Ethernet Dynamic Interface 512 256 300 Column Creation Slep SLARP 128 64 300 MPLS TTL Exceeded On Receive 10 5 300 MPLS TTL Exceeded On Transmit 10 5 300 MPLS MTU Exceeded 10 5 300 Ipsec Transport Mode L2tp 2048 1024 300 Control NAT/Firewall Payload 512 256 300 NAT/Firewall Update Table 512 256 300 DHCP External 1024 512 300 IP OSI 2048 1024 300 IP TTL Expired 10 5 300 IP Options Other 512 256 300 IP Options Router Alert 2048 1024 300 IP Multicast/Broadcast Other 512 256 300 IP Multicast DHCP (SC) 512 256 300 IP Multicast Control (SC) 2048 1024 300 IP Multicast Control (IC) 512 256 300 IP Multicast VRRP 512 256 300 IP Mulitcast Cache Miss 128 64 300 IP Multicast Cache Miss Auto Reply 128 64 300 IP Multicast Wrong Interface 10 5 300 IP Local DHCP (SC) 512 256 300 IP Local Dhcp (IC) 512 256 300 IP Local Icmp Echo 512 256 300 IP Local Icmp Other 128 64 300 IP Local LDP 2048 1024 300 IP Local BGP 2048 1024 300 IP Local OSPF 64 32 300 IP Local RSVP 2048 1024 300 IP Local PIM 2048 1024 300 IP Local COPS 2048 1024 300 IP Local L2tp Control (SC) 2048 1024 300 IP Local L2tp Control (IC) 512 256 300 IP Local Other 512 256 300 IP Local Subscriber Interface Miss 512 256 300 IP Route To SRP Ethernet 512 256 300 IP Route No Route Exists 10 5 300 IP Normal Path MTU 10 5 300 IP Neighbor Discovery 128 64 300 IP Neighbor Discovery Miss 128 64 300 IP Search Error 10 5 300 IP MLD 512 256 300 IP Local PIM Assert 512 256 300 IP Local BFD 1024 512 300 IP IKE 512 256 300 IP Reassembly 2048 1024 300 IP Local Icmp Frag 512 256 300 IP Local Frag 512 256 300 IP Application Classifier HTTP 128 64 300 Redirect
show snmp interfaces
host1#show snmp interfaces Compressed(Removed) Interface Types: HDLC, FT1, ATM, ATM1483 Armed Interface Numbering Mode: RFC1213, maxIfIndex=65535, maxIfNumber=65535 Interface Description Setting: proprietary
A DoS protection group provides a simple policy that can be applied to interfaces. This policy can specify a complete set of parameters to tune the behavior of the DoS protection groups. The system uses these parameters to determine the priority and rates for various control protocols. The rate of traffic for a particular protocol is unlikely to be the same on all ports in the system. A configuration can have several types of interfaces, such as DHCP access clients, PPPoE access clients, and uplink interfaces. Each of these interfaces requires a different DoS configuration. All interfaces are associated with a default DoS protection group, which has standard system defaults. The maximum rates are per line module, and the drop probability is 100 percent (all suspicious packets are dropped).
DoS protection groups support the following set of parameters:
By default, each interface belongs to the default DoS protection group. The name is the only non-configurable aspect of the default DoS protection group.
The DoS protection group is a configurable parameter for all Layer 2 and IP interfaces. Similar to other configurable interface parameters, the DoS protection group can be set using profiles.
Because all newly created interfaces default to using the default DoS protection group, they do not inherit any DoS protection group association from a higher or lower interface binding.
The DoS group applies to all types of control flows for the specific interface. For example, an IP interface supports a variety of control protocols, each of which can be separately mapped to a priority and drop probability, but to a single DoS protection group.
Table 55 and Table 56 list the protocols mapped within DoS protection groups.
Table 55: Layer 2-Related Protocols
Table 56: IP-Related Protocols
![]() |
Note: To configure a DoS protection group for an interface, you must configure the settings under the default group, which is the only group that is currently supported. |
To configure a DoS protection group for an interface:
- host1(config)#dos-protection-group default
- host1(config-dos-protection)#protocol AtmOam
rate 512
- host1(config-dos-protection)#protocol PppoeControl
rate 512
- host1(config-dos-protection)#protocol IpLocalOther
rate 512
To display the configuration:
- host1#show dos-protection-group default
default (canned-group: defaultCanned) *modified -- no references
Protocol Dest Mod Rate Burst Weight DropProb Priority Skip
-------------------- ---- --- ----- ----- ------ -------- --------- ----
Ppp Echo Request IC - 2048 1024 100 100 HI green Y
Ppp Echo Reply IC - 2048 1024 100 100 HI green Y
Ppp Echo Reply Fastp FC - 0 0 100 100 Data path Y
path
Ppp Control IC - 2048 1024 100 100 HI green N
Atm Control (ILMI) IC - 2048 1024 100 100 HI green Y
Atm OAM IC * 512 512 100 100 LO green N
Atm Dynamic Interfac IC - 1024 512 100 100 HI yellow N
e Column Creation
Atm Inverse ARP IC - 256 128 100 100 LO yellow N
Frame Relay Control IC - 2048 1024 100 100 HI green Y
(LMI)
Frame Relay Inverse IC - 256 128 100 100 LO yellow N
Arp
Pppoe Control IC * 512 512 100 100 HI yellow N
Pppoe Ppp Config Dyn IC - 1024 512 100 100 HI yellow N
amic Interface Colum
n Creation
Ethernet ARP Miss IC - 256 128 100 100 LO yellow N
Ethernet ARP IC - 256 128 100 100 LO yellow N
Use the commands described in this section to create DoS protection groups and attach them to different types of interfacesatm dos-protection-group
- host1(config-if)#atm dos-protection-group
group1
bridge1483 dos-protection-group
- host1(config-if)#bridge1483 dos-protection-group
group1
dos-protection-group
- host1(coonfig)#dos-protection-group default
ethernet dos-protection-group
- host1(config-if)#ethernet dos-protection-group
group1
frame-relay dos-protection-group
- host1(config-if)#frame-relay dos-protection-group
group1
hdlc dos-protection-group
- host1(config-if)#hdlc dos-protection-group
group1
ip dos-protection-group
- host1(config-if)#ip dos-protection-group group1
- host1(config)#dos-protection-group default
- host1(config-dos-protection)#protocol AtmOam
rate 512
- host1(config-dos-protection)#protocol PppoeControl
rate 512
- host1(config-dos-protection)#protocol IpLocalOther
rate 512
ipv6 dos-protection-group
- host1(config-if)#ipv6 dos-protection-group
group1
lag dos-protection-group
- host1(config-if)#lag dos-protection-group
group1
ppp dos-protection-group
- host1(config-if)#ppp dos-protection-group
group1
pppoe dos-protection-group
- host1(config-if)#pppoe dos-protection-group
group1
priority burst
- host1(config-dos-protection)#priority Hi-Green-IC
burst 32
priority over-subscription-factor
- host1(config-dos-protection)#priority Hi-Green-IC
over-subscription-factor 100
priority rate
- host1(config-dos-protection)#priority Hi-Green-IC
rate 6000
protocol burst
- host1(config-dos-protection)#protocol IpLocalDhcpIc
burst 65535
protocol drop-probability
- host1(config-dos-protection)#protocol IpLocalDhcpIc
drop-probability 100
protocol priority
- host1(config-dos-protection)#protocol IpLocalDhcpIc
priority hiGreen
protocol rate
- host1(config-dos-protection)#protocol IpLocalDhcpIc
rate 100
protocol skip-priority-rate-limiter
- host1(config-dos-protection)#protocol IpLocalDhcpIc
skip-priority-rate-limiter
protocol weight
- host1(config-dos-protection)#protocol IpLocalDhcpIc
weight 100
use canned-group
- host1#use canned-group group1
vlan dos-protection-group
- host1(config-if)#vlan dos-protection-group
Use the commands described in this section to monitor DoS protection groups.
show dos-protection-group
host1(config)#show dos-protection-group DOS Protection Groups: Default (canned-group: “ default” ) *modified* Uplink (canned-group: “ link” } ATM (canned-group: “ pppoe” ) *modified* VLAN (canned-group: “ mixed-access” )