Вопрос или проблема
У нас проблема с соединением после перезапуска DHCP.
- После перезапуска DHCP клиент отправляет HTTP CONNECT на URL с включенными RST + SYN.
- Затем сервер отправляет ACK на этот CONNECT-запрос.
- Но позже он отправляет сброс TCP.
- Следующая попытка CONNECT также отправляется с включенными RST + SYN,
- И сервер отвечает сбросом TCP,
- Это происходит в цикле, и клиент не может подключиться к URL.
Из ссылки, https://www.ibm.com/support/pages/apar/PQ70634
я могу наблюдать, что “Слой TCP определяет, что соединение должно быть сброшено и
формирует исходный пакет с установленным флагом RST. Флаги SYN и
FIN из предыдущего исходящего пакета на соединении
остаются неизменными. Это может привести к тому, что флаг SYN/RST или FIN/RST
будут установлены в пакете. Это сочетание флагов
не является нарушением протокола TCP.
Существует несколько ссылок в интернете, которые указывают на то, что
сочетание флагов может быть попыткой вторжения и должно быть
игнорировано.”
Но я не смог найти никаких документов RFC, объясняющих сочетания флагов, кто-то может помочь мне со стандартной ссылкой или объяснить, как мы можем избежать этой проблемы – это было бы очень полезно.
Ответ или решение
Почему сервер постоянно сбрасывает соединение с использованием RST, ACK для запроса CONNECT с SYN, RST?
Проблема, описанная вами, касается TCP-соединений, которые не работают должным образом после перезапуска DHCP. Давайте разберем процесс, а также осуществим диагностику того, что может происходить в данном сценарии.
Описание проблемы
После перезапуска DHCP клиент отправляет HTTP CONNECT запрос к URL, используя RST + SYN флаги. Сервер отвечает ACK на этот запрос, но затем возвращает TCP сброс (RST). Эта последовательность повторяется, что приводит к невозможности клиенту установить соединение с указанным URL.
Анализ поведения TCP
Когда клиент инициирует CONNECT запрос с установленными флагами RST и SYN, это может вызывать нестандартное поведение на стороне сервера и в сети:
-
Состояние соединения: После сброса соединения, сервер может воспринимать это как конфликтующее состояние, где клиент пытается установить новое соединение, когда уже существует предыдущее состояние. Использование флага RST указывает, что клиент явно хочет сбросить текущее соединение, что может привести к ответам сервера с флагом RST.
-
Флаги TCP: Комбинации флагов SYN и RST, хотя и не противоречат стандарту TCP (RFC 793), могут восприниматься как потенциальная угроза. Серверы или сетевые устройства (например, межсетевые экраны) могут интерпретировать это как подозрительное поведение и автоматически сбрасывать соединение. Как указано в упомянутом вами документе от IBM, TCP может формировать пакеты с несоответствующими флагами, что может вызывать нежелательные реакции со стороны сетевой инфраструктуры.
Причины возникновения проблемы
-
Неправильное управление состоянием соединения: После перезапуска DHCP, клиенту может потребоваться заново инициализировать соединение, и использование RST в запросах может привести сервер к сбросу.
-
Проблемы с NAT или межсетевыми экранами: Если в сети присутствуют NAT или межсетевые экраны, они могут неправильно обрабатывать такие пакеты, что приводит к сбросу.
-
Конфигурации сервера: На стороне сервера могут быть установлены специфические настройки, которые предотвращают соединение при наличии конфликтных флагов. Это также касается систем обнаружения вторжений, которые могут отказываться обрабатывать такие запросы.
Решения и рекомендации
-
Изменение конфигурации клиента: Убедитесь, что клиентское приложение правильно инициализирует соединение, не устанавливая ненужные флаги. Используйте стандартные SYN без комбинирования с RST для начала нового TCP соединения.
-
Мониторинг сетевого трафика: Запишите и проанализируйте трафик между клиентом и сервером с помощью инструментов, таких как Wireshark. Это поможет понять, что именно происходит на уровне TCP и какие пакеты отправляются и принимаются.
-
Настройка сервера и сети: Проверьте настройки межсетевых экранов и правил NAT, чтобы убедиться, что они не блокируют или не сбрасывают пакеты с необычными флагами.
-
Справочная документация: Изучите RFC 793 и другие документы, связанные с TCP/IP, для лучшего понимания его работы. Флаги SYN и RST имеют свои спецификации, которые могут помочь вам разобраться в этом процессе.
Заключение
Каждая из вышеперечисленных рекомендаций должна помочь в устранении проблемы с сбросом соединения. Если эти шаги не решают ситуацию, возможно, стоит обратиться за поддержкой к вашему системному администратору или сетевому специалисту для более глубокого анализа и исправления конфигураций.