Назад | Перейти на главную страницу

Принимает ли Linux ответ DNS, который приходит после настроенного тайм-аута, если он находится в середине следующей попытки?

/etc/resolv.conf настроен с помощью:

options timeout:1 attempts:5 rotate
nameserver A
nameserver B

Оба настроенных сервера имен имеют задержку 3 секунды. Происходит следующий обмен сообщениями:

Примет ли распознаватель Linux ответ на запрос №1, поскольку он все еще обрабатывает адрес, или все ответы, превышающие первоначальный тайм-аут в 1 секунду, отбрасываются?

К сожалению, человек resolf.conf не совсем проясняет это.

Я проверил поведение в своей лаборатории. Решатель Linux действительно примет успешный ответ, если он придет, пока он все еще решает домен, даже если ответ приходит с задержкой более 1 секунды. В своей лабораторной работе я установил задержку DNS-сервера на 3 секунды, и с установленным параметром {{options timeout: 1 попытки: 5}} клиент все равно разрешил домен. Захват пакетов подтвердил, что ответ был получен после того, как клиент уже отправил несколько запросов к обоим настроенным DNS-серверам.

Изменение значений по умолчанию или {{options timeout: 5 попыток: 1}} на {{options timeout: 5 попыток: 1}}, следовательно, уменьшает задержку переключения DNS-сервера, в то же время позволяя медленным DNS-серверам предоставлять ответ в то же время.

Запросы DNS также основаны на RTT (время приема-передачи), как и ICMP. RTT DNS-запроса - это измерение задержка между запрос DNS выпущен и время ответ получили, что означает, что ответ (в вашем случае - ответ на № 1, полученный от A) должен прибыть до настроенного максимального тайм-аута, чтобы он считался действительным. Это полностью идентично тому, как работает ICMP.

Технически RTT - это время, необходимое для отправки сигнала, плюс время, необходимое для получения подтверждения этого сигнала.