Почему host и nslookup могут разрешить имя, а dig - нет?

27

Может кто-нибудь сказать мне, почему это происходит? Я могу разрешить имя хоста, используя host и / или nslookup, но прямой поиск не работает с dig; обратные поиски делают:

musashixxx@box:~$ host someserver
someserver.somenet.internal has address 192.168.0.252
musashixxx@box:~$ host 192.168.0.252
252.0.168.192.in-addr.arpa domain name pointer someserver.somenet.internal.
musashixxx@box:~$ nslookup someserver
Server:     192.168.0.253
Address:    192.168.0.253#53

Name:   someserver.somenet.internal
Address: 192.168.0.252
musashixxx@box:~$ nslookup 192.168.0.252
Server:     192.168.0.253
Address:    192.168.0.253#53

252.0.168.192.in-addr.arpa  name = someserver.somenet.internal.

musashixxx@box:~$ dig someserver

; <<>> DiG 9.8.1-P1 <<>> someserver
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55306
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;someserver.            IN  A

;; Query time: 0 msec
;; SERVER: 192.168.0.253#53(192.168.0.253)
;; WHEN: Wed Oct  3 15:47:38 2012
;; MSG SIZE  rcvd: 27

musashixxx@box:~$ dig -x 192.168.0.252

; <<>> DiG 9.8.1-P1 <<>> -x 192.168.0.252
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28126
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;252.0.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
252.0.168.192.in-addr.arpa. 3600 IN PTR someserver.somenet.internal.

;; Query time: 0 msec
;; SERVER: 192.168.0.253#53(192.168.0.253)
;; WHEN: Wed Oct  3 15:49:11 2012
;; MSG SIZE  rcvd: 86

Вот как выглядит мой resolv.conf:

nameserver 192.168.0.253
search somenet.internal

Это нормальное поведение? Есть предположения?

musashiXXX
источник

Ответы:

36

Поведение dig по умолчанию не использовать опцию поиска.

Со страницы руководства:

   +[no]search
       Use [do not use] the search list defined by the searchlist or
       domain directive in resolv.conf (if any). The search list is not
       used by default.

Редактировать: просто добавьте, +searchчтобы он работал, как dig +search myhost.

Александр Янссен
источник
Я единственный, кто считает это немного нелогичным? :-) В любом случае, большое спасибо!
musashiXXX
5
@musashiXXX Ну, это зависит :-) Большинство людей используют digдля отладки DNS, и в этом случае неплохо отключить все, что может испортить ответы из DNS. Я думаю, что это довольно хорошая идея; большинство людей используют hostи в nslookupконце концов. :-)
Александр Янссен
7

У меня была такая же проблема. После проверки пакетов, отправленных как из nslookup, так и с помощью wireshark, я обнаружил проблему.

dig устанавливает бит достоверных данных в запросе. Согласно справочной странице, «это запрашивает у сервера возвращение, все ли разделы с ответами и полномочиями были проверены как безопасные в соответствии с политикой безопасности сервера». Запустив dig с + noadflag, он вернул те же результаты, что и nslookup.

Боб Фрэнсис
источник
3
Была та же проблема, но другой результат был вызван ednsрасширением. Когда я сделал запрос с +noendsdig вернул тот же результат, что и хост.
Слава Бачериков
7

В моем случае это ошибка в Microsoft DNS Server, где он возвращает FORMERRответ (ошибка формата запроса) для запросов с EDNS Cookieустановленным параметром. Более новые версии dig(9.11 и выше) по умолчанию используют dns-cookies. Это может быть предотвращено +nocookieили +noednsфлаг копать:

$ dig +nocookie DOMAIN @SERVER

Источник: https://kevinlocke.name/bits/2017/01/20/formerr-from-microsoft-dns-server-for-dig/

Таха Джахангир
источник
1

Вы можете использовать файл .digrc в вашем домашнем каталоге со строкой

+ поиск

на случайное поведение по умолчанию

dudacgf
источник
0

Я столкнулся с этой проблемой в моей домашней сети Wi-Fi, пытаясь решить проблему google.comс помощью виртуальной машины Ubuntu, работающей на хосте Windows 7, с digтайм-аутом, но nslookupмгновенно вернувшим результат.

Решение для меня было добавить +noedns: $ dig +noedns google.com.

wberry
источник