Вопрос: tcptrack показывает соединения SYN_SENT, означает ли это, что пакет SYN достиг сервера?


наш сервер понес серьезную проблему с таймаутом соединения, поэтому мы отслеживаем соединение tcp с tcptrack

мы выяснили, что если клиент начал подключаться к серверу, tcptrack показывает соединение, но в статусе SYN_SENT и netstat -nat ничего не показывает. (tcptrack & netstat все работает на сервере)

  1. означает ли это, что запрос syn достиг сервера? и никакой syn / ack не был отправлен обратно?
  2. почему tcptrack может сообщить об этом соединении, но netstat не смог?
  3. что может быть проблемой, что общий апач не смог установить соединение с клиентом?

я выполнил тестовый тест, используя ab в той же интрасети, к указанному сетевому адаптеру, он обрабатывал 10000 одновременных соединений и 400000 запросов в порядке

ps: это не случается каждый раз, но произошло много

pps: есть ли хорошие инструменты для отслеживания того, где было потеряно соединение tcp?


7
2017-11-07 03:54


Источник


не упоминалось, что tcptrack & netstat все работает на сервере - xpu


Ответы:


Это означает, что SYN был отправлен клиентом и либо не дошел до сервера, сервер не ответил на него, либо сервер решил ответить на него, не отслеживая его. Серверу не нужно отслеживать каждый ответ SYN, который он отправляет (и может использовать SYN cookie), потому что они могут быть подделаны, и это создает риск атак на отказ в обслуживании.


5
2017-11-07 05:40



/ proc / sys / net / ipv4 / tcp_syncookies устанавливается в 1 - xpu
так и пакет syn достигает сервер? tcptrack показывает соединение syn_sent, но netstat показывает иначе, какой из них говорит правду? соединение tcp не удалось установить, поскольку сервер не получил запрос syn или не ответил на него? - xpu
Другая возможность: сервер не ответил на него все же (то есть, пусть время для сервера получит пакет, обработает его и отправит ответ) (например, если вы видите несколько «syn_sent» в netstat -an, может быть, просто вы должны допросить соединение juste до того, как сервер успел ответить) - Olivier Dulac


Когда я получаю «нежелательный» трафик, как и в трафике, который был специально заблокирован правилами IPTABLES (как в DROPped), tcptrack показывает входящий IP-адрес вместе со статусом SYN_SENT (вместе со временем соединения и скоростью передачи данных 0b / сек). Это перечисление остается там в течение нескольких секунд, пока оно не очистится.

Таким образом - возможно, что соединения, которые вы видите, по какой-то причине заблокированы. IP-адреса, которые появляются с SYN_SENT, могут быть заблокированы из-за IPTABLES DROP. Вы можете немного отключить IPTABLES и посмотреть, продолжает ли он. Если да, убедитесь, что заблокированные адреса должны быть.


2
2017-09-05 14:28