Основной DNS-сервер нашей организации - это Windows Server 2008, установленный двумя серверами пересылки. Я случайно заметил на нашем брандмауэре, что этот сервер отправляет регулярные TCP-запросы к серверам пересылки в дополнение к стандартным UDP-запросам. Я запустил Wireshark на сервере и заметил, что скорость варьируется, но составляет около 2 пакетов в секунду. Все пакеты практически одинаковые:
<server> <forwarder> TCP 62 55148 > domain [SYN] Seq=0 Win=8192 Len=0 MSS=1460 SACK_PERM=1
Иногда сервер пересылки отвечает сбросом:
<forwarder> <server> TCP 60 domain > 55148 [RST, ACK] Seq=1 Ack=0 Win=0 Len=0
Это нормальное, ожидаемое поведение или мне следует беспокоиться? Я не вижу, чтобы другие наши DNS-серверы демонстрировали такое же поведение. Это наш единственный сервер Windows, который отправляет некоторые DNS-пакеты через TCP.
Если вы углубитесь в эти перехваты пакетов, вы, вероятно, обнаружите, что эти TCP-запросы следуют за усеченным ответом UDP размером 512 байт. В качестве альтернативы это может быть попытка выполнить передачу зоны, но тот факт, что вы сказали, что это был пересылщик, заставляет меня меньше верить в это.
При отсутствии работы EDNS по UDP программное обеспечение DNS обычно пытается повторить попытку TCP, чтобы получить полный пакет. [SYN]
с последующим [RST, ACK]
подразумевает, что удаленный сервер не прослушивает этот порт и возвращает классический «соединение отклонено».
Если это действительно так, вам нужно выяснить, почему удаленный сервер отклоняет сеансы TCP. Влияние того, что DNS-сервер не может получить полную полезную нагрузку ответа, будет полностью зависеть от того, какое приложение его запрашивает и как эти данные используются.