HPE changes
The NP7 host protection engine (HPE) has been redesigned to apply DDoS protection according to each NPU host queue. This new design should result in more accurate and reliable protection for different network topologies
Use the following command to configure the NP7 host protection engine (HPE) to apply DDoS protection by limiting the number of packets per second received for various packet types per host queue by each NP7 processor. This rate limiting is applied very efficiently because it is done in hardware by the NP7 processor.
config system npu
config hpe
set all-protocol <packets-per-second>
set tcpsyn-max <packets-per-second>
set tcpsyn-ack-max <packets-per-second>
set tcpfin-rst-max <packets-per-second>
set tcp-max <packets-per-second>
set udp-max <packets-per-second>
set icmp-max <packets-per-second>
set sctp-max <packets-per-second>
set esp-max <packets-per-second>
set ip-frag-max <packets-per-second>
set ip-others-max <packets-per-second>
set arp-max <packets-per-second>
set l2-others-max <packets-per-second>
set high-priority <packets-per-second>
set enable-shaper {disable | enable}
end
Command | Description | Default |
---|---|---|
enable-shaper {disable | enable}
|
Enable or disable HPE DDoS protection. | disable |
|
Maximum packet rate of each host queue for all traffic except high priority traffic. The range is 0 to 40000000 pps. Set to 0 to disable. |
400000 |
tcpsyn-max
|
Limit the maximum number of TCP SYN packets received per second. The range is 1000 to 40000000 pps. | 40000 |
|
Prevent SYN_ACK reflection attacks by limiting the number of TCP SYN_ACK packets received per second. The range is 1000 to 40000000 pps. TCP SYN_ACK reflection attacks consist of an attacker sends large amounts of SYN_ACK packets without first sending SYN packets. These attacks can cause high CPU usage because the firewall assumes that these SYN_ACK packets are the first packets in a session, so the packets are processed by the CPU instead of the NP7 processors. |
40000 |
|
Limit the maximum number of TCP FIN and RST packets received per second. The range is 1000 to 40000000 pps. |
40000 |
tcp-max
|
Limit the maximum number of TCP packets received per second that are not filtered by tcpsyn-max , tcpsyn-ack-max , or tcpfin-rst-max . The range is 1000 to 40000000 pps. |
40000 |
udp-max
|
Limit the maximum number of UDP packets received per second. The range is 1000 to 40000000 pps. | 40000 |
icmp-max
|
Limit the maximum number of ICMP packets received. The range is 1000 to 40000000 pps. | 20000 |
sctp-max
|
Limit the maximum number of SCTP packets received. The range is 1000 to 40000000 pps. | 20000 |
esp-max
|
Limit the maximum number of ESP packets received. The range is 1000 to 40000000 pps. | 20000 |
ip-frag-max
|
Limit the maximum number of fragmented IP packets received. The range is 1000 to 40000000 pps. | 20000 |
ip-others-max
|
Limit the maximum number of other types of IP packets received. Other packet types cannot be set with other HPE options. The range is 1000 to 40000000 pps. | 20000 |
arp-max
|
Limit the maximum number of ARP packets received. The range is 1000 to 40000000 pps. | 20000 |
l2-others-max
|
Limit the maximum number of other layer-2 packets that are not ARP packets. The range is 1000 to 40000000 pps. This option limits the following types of packets: HA heartbeat and session sync, LACP/802.3ad, FortiSwitch heartbeat, and wireless-controller CAPWAP. | 20000 |
high-priority
|
Set the maximum overflow limit for high priority traffic. The range is 1000 to 40000000 pps. This overflow is applied to the following types of traffic that are treated as high-priority by the NP7 processor:
This option adds an overflow for high priority traffic, causing the HPE to allow more of these high priority packets to be accepted by the NP7 processor. The overflow is added to the maximum number of packets allowed by HPE based on the other HPE settings. For example, the NP7 processor treats IKE traffic as high priority; so the HPE limits IKE traffic to In some cases, you may not want the overflow to apply to BGP, SLBC or BFD traffic. See HPE changes for details. |
40000 |
HPE diagnose command
Use the following command to display HPE configuration and status information The command displays information for a single NP7 processor, by default NP7_0. You can optionally include the NP ID to display information for one of the other NP7 processors. The following command displays information for NP7_2..
diagnose npu np7 hpe 2 [NP7_2] Queue Type NPU-min NPU-max CFG-min(pps) CFG-max(pps) Pkt-credit 0 high-priority39731 39731 40000 40000 0 0 TCP-syn 39731 39731 40000 40000 0 0 TCP-synack 39731 39731 40000 40000 0 0 TCP-finrst 39731 39731 40000 40000 0 0 TCP 39731 39731 40000 40000 0 0 UDP 39731 39731 40000 40000 0 0 ICMP 19865 19865 20000 20000 0 0 SCTP 19865 19865 20000 20000 0 0 ESP 19865 19865 20000 20000 0 0 IP-Frag 19865 19865 20000 20000 0 0 IP_others 19865 19865 20000 20000 0 0 ARP 19865 19865 20000 20000 0 0 l2_others 19865 19865 20000 20000 0 0 all-protocol 39731 39731 40000 40000 0 --------------------------------------------------------------------------- HPE HW pkt_credit:11080 , tsref_inv:50000, tsref_gap:32, hpe_refskip:0 , hif->nr_ring:40 Note: NPU-min and NPU-max: The register reading of max and min value for each queue in NPU. CFG-min(pps): the setting value of hpe configuration in CLI command and it is packet per second rate limit for each host rx queue of NPU. CFG-max(pps): The value is CFG-min of hpe configuration in CLI command.
Monitoring HPE activity
You can use the following command to generate event log messages when the HPE drops packets:
config monitoring npu-hpe
set status {disable | enable}
set interval <interval>
set multipliers <12*multipliers>
end
status
enable or disable HPE status monitoring.
interval
HPE status check interval in seconds. The range is 1 to 60 seconds. The default interval is 1 second.
multipliers
set 12 multipliers to control how often an even log is generated for each HPE option in the following order:
-
tcpsyn-max
default 4 -
tcpsyn-ack-max
default 4 -
tcpfin-rst-max
default 4 -
tcp-max
default 4 -
udp-max
default 8 -
icmp-max
default 8 -
sctp-max
default 8 -
esp-max
default 8 -
ip-frag-max
default 8 -
ip-others-max
default 8 -
arp-max
default 8 -
l2-others-max
default 8
An event log is generated after every (interval
* multiplier
) seconds for each HPE option when drops occur for that HPE type. Increase the interval or individual multipliers to generate fewer event log messages.
An attack log is generated after every (4 * multiplier
) continuous event logs.