How many mb/s or pps can this handle on a average server while still having the server be able to respond to legitimate requests? ( lets say a average server is a quad core, 3.5ghz , 8gb ram)
How many mb/s or pps can this handle on a average server while still having the server be able to respond to legitimate requests? ( lets say a average server is a quad core, 3.5ghz , 8gb ram)
- Anycast to divide the attack among different datacenters
- Multiple filtering devices with +10Gbps uplinks at the edge
- Then things like SYNPROXY and this synsanity at the final servers
My point being: I don't think asking how effective is synsanity against larger synfloods is a complete question.
Many hardware load balancers can do +100M SYN cookies per second (assuming a proxy/gateway deployment instead of DSR).
So SYN cookie solutions do work; they just don't work great on stock Linux.
Edit: Add clarification about LB deployment. Won't work with DSR.
Agreed. We use Solarflare cards but we don't syncookie when we get a large flood. We identify the flood and drop it. There's little point firing back millions of useless SYN ACKs per second.
How do you know what to drop without SYN cookies? If the attacker isn't advanced, sure all the SYN's will look the same. What if the attacker is smart and the SYN's look legit and are spoofed? If you drop those SYN's, you'll run the risk of also dropping legit traffic if you don't use cookies.
Thats why I was asking about how efficient this was on a per-server basis and why I think a answer would be beneficial. Most DDoS attacks are not the multi-gig reflection attacks you read about and defending against those types of attacks is much more complicated.
Regardless, I am not debating if ddos prevention has to be in depth or not. Im asking how efficient this is on a single server.
Also, anycasting to deflect an attack is easier said that done. It works, but it takes a lot of work to get there, and you really have to be well coordinated and planned out.
In general in the order of a hundred thousand PPS per core is easily possible, but it really depends how busy the server is, since it primarily comes down to how much CPU is being used to generate the syncookies instead of being allocated to the application.