8 votos

Tcptrack muestra conexiones en estado SYN_SENT, ¿eso significa que el paquete SYN llegó al servidor?

Nuestro servidor sufrió un grave problema de tiempo de espera de conexión, por lo que rastreamos la conexión TCP con tcptrack

Descubrimos que, si el cliente comenzaba a conectarse al servidor, tcptrack mostraba la conexión, pero en estado SYN_SENT, y netstat -nat no mostraba nada. (tcptrack y netstat se ejecutan en el servidor)

  1. ¿Significa esto que la solicitud SYN llegó al servidor? ¿Y que no se envió ninguna respuesta SYN/ACK?
  2. ¿Por qué tcptrack podía reportar esta conexión pero netstat no podía?
  3. ¿Cuál podría ser el problema por el cual un servidor apache general no pudo establecer una conexión con el cliente?

Hice una prueba de rendimiento utilizando ab en la misma intranet, en la NIC especificada, manejó 10000 conexiones simultáneas y 400000 solicitudes correctamente

PD: esto no sucede cada vez, pero ocurrió muchas veces

PPD: ¿Hay alguna herramienta buena para rastrear dónde se perdió la conexión TCP?

0 votos

No mencionó que, tcptrack y netstat se ejecutan en el servidor

4voto

David Schwartz Puntos 22683

Significa que el SYN fue enviado por el cliente y o no alcanzó el servidor, el servidor no respondió a él, o el servidor optó por responder a él sin llevar un registro de él. El servidor no necesita llevar un registro de cada respuesta SYN que envía (y puede usar cookies SYN) porque pueden ser falsificados y hacerlo crea un riesgo de ataques de denegación de servicio.

0 votos

`/proc/sys/net/ipv4/tcp_syncookies` está ajustado a 1

0 votos

¿Entonces el paquete syn llegó al servidor de todos modos? tcptrack muestra la conexión syn_sent, pero netstat muestra lo contrario, ¿cuál está diciendo la verdad? La conexión tcp falló en establecerse, ¿porque el servidor no recibió la solicitud syn o falló en responderla?

0 votos

Otra posibilidad es: el servidor no respondió todavía aún (es decir, darle tiempo al servidor para recibir el paquete, procesarlo y enviar la respuesta de vuelta) (en otras palabras, si ves algunos "syn_sent" en netstat -an, podría ser solo que interrogaste la conexión justo antes de que el servidor tuviera tiempo de responder).

1voto

Henry Puntos 1

Cuando recibo tráfico 'no deseado', es decir, tráfico que ha sido específicamente bloqueado por reglas de IPTABLES (es decir, siendo DROPpeado), el tcptrack muestra la dirección IP de origen junto con el estado SYN_SENT (junto con el tiempo de conexión y la tasa de datos de 0b/seg). Esa lista se mantiene allí durante unos segundos hasta que se borra.

Entonces, es posible que las conexiones que estás viendo estén bloqueadas por alguna razón. Las direcciones IP que aparecen con SYN_SENT podrían estar bloqueadas debido a DROPs de IPTABLES. Podrías desactivar IPTABLES por un momento y ver si continúa. Si es así, asegúrate de que las direcciones que están siendo bloqueadas lo deben estar.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X