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

Команда хоста пробует несколько серверов

У меня есть DNS-сервер (pfSense) для моей локальной сети, он работает отлично, но возникают таймауты, которые я не могу объяснить. В частности, команда host сразу дает правильный ответ, но затем пытается еще 2 раза с таймаутом:

charles3@cluj:~ » host -v cluj.int.acme.fr
Trying "cluj.int.acme.fr"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14189
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;cluj.int.acme.fr.      IN  A

;; ANSWER SECTION:
cluj.int.acme.fr.   1   IN  A   192.168.1.113

Received 52 bytes from 192.168.1.1#53 in 0 ms
Trying "cluj.int.acme.fr"
;; connection timed out; no servers could be reached
Trying "cluj.int.acme.fr"
;; connection timed out; no servers could be reached

Таймауты происходят в течение последних 4 строк вывода. Это происходит на двух разных машинах, которые у меня есть (Mac и Linux).

Как я могу узнать, почему проводится два испытания, если ответ уже дан?

Полный ответ от host может включать адреса IPv6. strace -f host в Linux предполагайте, что они поступают в отдельном пакете.

Похоже, хост также запрашивает адреса MX (kernel.org mail is handled by 30 ns4.kernel.org.), что требует еще одного пакета.

Это объясняет, как можно получить еще два запроса после первого. Т.е. вопрос первого уровня, как это вообще возможно :).

Dnsmasq, используемый на потребительских маршрутизаторах, имел ошибку, вызванную шаблоном одновременных запросов ipv4 / ipv6, используемых веб-прокси polipo, и результатом ipv6. Я думаю, что второй запрос был проигнорирован и время ожидания истекло.

Я не знаю, что еще могло бы вызвать это. Должен быть возвращен рабочий локальный преобразователь SERVFAIL если необходимо. Надеюсь, форумы поддержки pfsense узнают больше.

Вы можете подтвердить / немного сузить его

# ipv4 only
host -t A cluj.int.acme.fr

# simulate the 3 default queries with separate instances
for type in A AAAA MX; do host -t $type cluj.int.acme.fr; done

man host

Параметр -a (all) эквивалентен настройке параметра -v и просьбе хоста сделать запрос типа ANY.

Лучше использовать -a вариант, если вы хотите выполнить ЛЮБОЙ запрос, потому что -v отправляет несколько запросов.

host -a example.com

IP 10.104.11.40.53236 > 10.104.254.250.domain: 36007+ **ANY?** example.com. (28)
IP 10.104.254.250.domain > 10.104.11.40.53236: 36007 3/0/2 A 93.184.216.34, MX mail.example.com. 10, AAAA 2606:2800:220:1:248:1893:25c8:1946 (137)

host -v example.com

IP 10.104.11.40.62407 > 10.104.254.250.domain: 50385+ **A?** example.com. (28)
IP 10.104.254.250.domain > 10.104.11.40.62407: 50385 1/0/0 A 93.184.216.34 (44)
IP 10.104.11.40.57813 > 10.104.254.250.domain: 42995+ **AAAA?** example.com. (28)
IP 10.104.254.250.domain > 10.104.11.40.57813: 42995 1/0/0 AAAA 2606:2800:220:1:248:1893:25c8:1946 (56)
IP 10.104.11.40.62687 > 10.104.254.250.domain: 8222+ **MX?** example.com. (28)
IP 10.104.254.250.domain > 10.104.11.40.62687: 8222 1/0/2 MX mail.example.com. 10 (93)

Проверьте свой брандмауэр, есть ли какие-либо правила, которые могут блокировать последовательные запросы DNS (порт 53).