Un DDoS funciona al hacer que un sistema se quede sin un recurso escaso. Lo que sucede entonces depende del recurso agotado.
Por ejemplo, el recurso puede ser CPU. Los atacantes envían muchas solicitudes y el servidor debe gastar algunos recursos de la CPU para responder a estas solicitudes. Cuando aumenta la carga, el servidor comienza a responder más lento, luego se vuelve lento, luego toma tanto tiempo para responder que se vuelve prácticamente inutilizable. Sin embargo, en ese caso, el núcleo del servidor todavía es perfectamente capaz de manejar la actividad de la red y puede conectarse a sistemas externos sin ningún problema. El código que se ejecuta en el servidor en sí tendrá bastante poca CPU con la que trabajar (por ejemplo, si hay 500 subprocesos simultáneos que claman por el tiempo de CPU, el código tendrá 1/500 de las capacidades normales de la máquina) pero esto puede ser suficiente, dependiendo de Qué intentas hacer con esa conexión.
Cuando el recurso es el ancho de banda de la red, las cosas serán más difíciles para su conexión saliente adicional. Una "red saturada" significa que al menos una de las instrucciones para el flujo de la red ("descargar" o "cargar", desde el punto de vista del servidor) está demasiado llena de paquetes para acomodar paquetes adicionales de manera oportuna. Sin embargo, una conexión TCP requiere paquetes en ambos , directamente desde el establecimiento de la conexión (el "protocolo de enlace de tres vías") y durante toda la vida de la conexión (ya que todos los bytes deben ser reconocidos).
Si desea que su conexión saliente continúe mientras los cables están saturados, necesita QoS : una forma de "etiquetar" "sus paquetes de tal manera que los enrutadores involucrados sepan que estos paquetes tienen prioridad. Esto se puede hacer de varias maneras; en particular, puede indicar a los enrutadores que envíen paquetes de prioridad relacionados con un número de puerto específico (lo haría con el puerto 22, para permitir el tráfico SSH desde y hacia su servidor web, incluso cuando el servidor web se ahoga bajo los pesados paquetes del puerto 80). ).
Posiblemente, podría configurar los enrutadores para que consideren que una conexión saliente es más importante que el tráfico entrante, pero esto es complicado: un enrutador puede decidir que una conexión dada es "saliente" solo si vio Los paquetes iniciales, y los recuerda. Una vez establecida la conexión, es bidireccional y simétrica; ya no hay un "cliente" y un "servidor", solo dos máquinas que se comunican entre sí. Si los enrutadores tienen que recordar cosas, entonces acaba de agregar otro recurso escaso (RAM en los enrutadores) que puede estar sujeto a DDoS.
Un punto crucial es que su servidor no está solo en un caso de DDoS de red: los pocos enlaces y enrutadores "cercanos" a su servidor (en la ruta de la red) también sufren el mismo ataque . Esto significa que si desea implementar QoS, debe hacerlo en varios enrutadores, desde su servidor hasta la "gran infraestructura" (que aquí se supone que es no-DoSable, en virtud de ser grande). No puedes arreglar eso de manera confiable al ajustar solo tu servidor; Los DDoS de red son un concepto de infraestructura que debe resolverse a nivel de infraestructura.