Protecting Against TCP Out-of-Order DoS Attacks

You can use the group of tcp resequence-buffers commands to help protect the router from TCP out-of-order packet DoS attacks.

TCP guarantees that applications receive data in order. This means that TCP buffers any out-of-order packets it receives until ordered delivery can occur.

To prevent connections from consuming too many resources, TCP limits the amount of data it accepts to the number of data bytes that the receiver is willing to receive and buffer. TCP does not take into account the buffering scheme that the receiver uses. If the receiver uses a fixed-size receive buffer (that is, buffering all packets) regardless of length, a packet that contains only one data byte might consume many data bytes of buffer space, but only one byte of TCP space.

Under these conditions, an attacker can send a large number of 1-byte packets to an E Series router in which each packet is buffered, consuming an entire packet buffer and eventually consuming a large amount of resources.

To defend against this sort of attack, you can set defaults and limits on the number of outstanding buffers on reordering queues. You can configure these defaults and limits on a per-router, per-virtual router, or per-connection within the virtual router basis.

You can protect the router from TCP out-of-order packet DoS attacks with the following tasks:

Limiting TCP Resequence Buffers per Router

To limit the number of outstanding buffers on the entire router:

Limiting TCP Resequence Buffers per Virtual Router

You can limit the number of outstanding buffers on existing or newly established virtual routers using the tcp resequence-buffers vr-maximum command and tcp resequence-buffers default-vr-maximum commands.

To specify the default buffer limit assigned to all virtual routers when the virtual router is established:

To define the maximum number of buffers that the current or specified virtual router can use:

Limiting TCP Resequence Buffers per Connection

You can limit the number of outstanding buffers on existing or newly established connections using the tcp resequence-buffers connection-maximum command and tcp resequence-buffers default-connection-maximum commands.

To define the maximum number of buffers that connections on the current or specified virtual router can use:

To specify the default buffer limit assigned to all TCP connections on a virtual router unless a specific limit is set for the virtual router in which the connection is established.

Related Documentation