Автор Тема: Почему так по-разному работают dig и nslookup?  (Прочитано 4425 раз)

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
dig не отдает IP, а nslookup отдает. Инет есть, что видно по работе браузера и Skype. Для подключения используется маршрутизатор. Его IP - 192.168.10.1. Маршрутизатор раздает IPv4 по DHCP.

$ nslookup userbase.kde.org
Server:         192.168.10.1
Address:        192.168.10.1#53

Non-authoritative answer:
userbase.kde.org        canonical name = ro7dr.x.incapdns.net.
Name:   ro7dr.x.incapdns.net
Address: 192.230.78.99

При этом
$ dig userbase.kde.org

; <<>> DiG 9.9.7-P2 <<>> userbase.kde.org
;; global options: +cmd
;; connection timed out; no servers could be reached

$ cat /etc/resolv.conf
# Generated by resolvconf
# Do not edit manually, use
# /etc/net/ifaces/<interface>/resolv.conf instead.
nameserver 192.168.10.1

Для проверки наличия локального сервера имен использовал
$ netstat -tan
Ничего лишнего.

$ cat /etc/system-release
ALT Linux 7.0.5 KDesktop  (Centaurea Montana)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 368
$ dig userbase.kde.orgУ меня работает. Единственное, что в голову приходит, это вероятная разница в том, какое приложение какой resolv.conf использует. Что в /var/resolv/etc/resolv.conf ?
« Последнее редактирование: 08.01.2016 20:55:11 от asy »

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Что в /var/resolv/etc/resolv.conf ?
Содержимое одинаковое:
$ cat /var/resolv/etc/resolv.conf
# Generated by resolvconf
# Do not edit manually, use
# /etc/net/ifaces/<interface>/resolv.conf instead.
nameserver 192.168.10.1

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
А вот что выдаёт (от root):
resolvconf -l

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
# resolvconf -l
# resolv.conf from NetworkManager
# Generated by NetworkManager
nameserver 192.168.10.1

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Насколько я помню, dig привязан так-же к работе с локальными доменами (типа самбы и т.п.), а nslokoop не уммет с ними работать. возможно ваша проблема связана с этим.

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
dig привязан так-же к работе с локальными доменами (типа самбы и т.п.), а nslokoop не уммет с ними работать. возможно ваша проблема связана с этим
Нашел в старом описании nss-mdns:
Цитировать
Don't try to use the tools host or nslookup for these tests! They bypass the NSS and thus nss-mdns and issue their DNS queries directly.

Да, nslookup лезет к серверам имен напрямую и потому, я вижу верные IP по интересующим меня доменам.

Но как создалась проблема с dig? Это свежая установка, avahi-deamon запущен, значит на запросы mDNS отвечать есть чему. Чего же он тогда не отвечает?

Проверил /etc/nsswitch.conf. Там есть такое:hosts:      files mdns4_minimal [NOTFOUND=return] dns myhostname
Значит, сначала поиск хостов должен пойти по /etc/hosts, потом на mDNS (avahi) но только если я запросил что-то из .local, потом на внешний сервер имен.

Но dig висит даже на запросе localhost! Почему такое может быть?

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Вот читаю man (переводить не буду, т.к. с английским плохо, а на translate.. вы и сами можете закинуть):


Цитировать
DESCRIPTION
       dig (domain information groper) is a flexible tool for interrogating
       DNS name servers. It performs DNS lookups and displays the answers that
       are returned from the name server(s) that were queried. Most DNS
       administrators use dig to troubleshoot DNS problems because of its
       flexibility, ease of use and clarity of output. Other lookup tools tend
       to have less functionality than dig.

       Although dig is normally used with command-line arguments, it also has
       a batch mode of operation for reading lookup requests from a file. A
       brief summary of its command-line arguments and options is printed when
       the -h option is given. Unlike earlier versions, the BIND 9
       implementation of dig allows multiple lookups to be issued from the
       command line.

       Unless it is told to query a specific name server, dig will try each of
       the servers listed in /etc/resolv.conf. If no usable server addresses
       are found, dig will send the query to the local host.

       When no command line arguments or options are given, dig will perform
       an NS query for "." (the root).

       It is possible to set per-user defaults for dig via ${HOME}/.digrc.
       This file is read and any options in it are applied before the command
       line arguments.

       The IN and CH class names overlap with the IN and CH top level domain
       names. Either use the -t and -c options to specify the type and class,
       use the -q the specify the domain name, or use "IN." and "CH." when
       looking up these top level domains.

Т.е. если там всё правильно написано, то он обращается к DNS серверам, описанным в /etc/resolv.conf. Ну, если взглянуть на ваш, то
 192.168.10.1 не знает, что такое localhost.

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Читая его дальше, можно предложить вам напрямую задать используемый в dig сервер dns:

dig @8.8.8.8 www.ru
dig @ns1.yandex.ru www.ru
dig @ns1.yandex.ru www.ru
dig @192.168.10.1 www.ru

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
192.168.10.1 не знает, что такое localhost
На это я и не рассчитывал. При указании сервера я рассчитывал хотя бы на ответ, что такого нет, а получаю отсутствие сервера имен.

можно предложить вам напрямую задать используемый в dig сервер dns
Это я пробовал. Обращение к внешнему серверу имен проходит, а вот так нет:
$ dig @8.8.8.8 www.ru

; <<>> DiG 9.9.7-P2 <<>> @8.8.8.8 www.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4559
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.ru.                                IN      A

;; ANSWER SECTION:
www.ru.                 696     IN      A       217.112.35.75

;; Query time: 4 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Jan 16 10:30:50 MSK 2016
;; MSG SIZE  rcvd: 51

$ dig @192.168.10.1 www.ru

; <<>> DiG 9.9.7-P2 <<>> @192.168.10.1 www.ru
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached

$ nslookup www.ru 192.168.10.1
Server:         192.168.10.1
Address:        192.168.10.1#53

Non-authoritative answer:
Name:   www.ru
Address: 217.112.35.75

Т.е. с внешними серверами имен трудностей нет. Они вылезают когда идет обращение к 192.168.10.1. Причем для host и nslookup проблем никаких с этим сервером имен, а dig начинает кочевряжиться.

man на dig я и раньше прошел с десяток раз. Там вообще ничего о разнице между dig, host, nslookup. По этим статейкам в man они вообще одинаково должны себя вести. А на деле получается по-разному.

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Что выдаёт:
dig @192.168.10.1 www.ru

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Ой - интересно, dig не может попасть на 192.168.10.1 - а что
ping 92.168.10.1

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
Так похоже вам сам сервер не ответил:
Цитировать
(1 server found)

Оффлайн kiav

  • Участник
  • *
  • Сообщений: 535
  • Стич-спасатель
Так похоже вам сам сервер не ответил
А чего же он отвечает на host и nslookup?

$ ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_req=1 ttl=255 time=0.590 ms
64 bytes from 192.168.10.1: icmp_req=2 ttl=255 time=0.527 ms
64 bytes from 192.168.10.1: icmp_req=3 ttl=255 time=0.516 ms
64 bytes from 192.168.10.1: icmp_req=4 ttl=255 time=0.497 ms
64 bytes from 192.168.10.1: icmp_req=5 ttl=255 time=0.508 ms
^C
--- 192.168.10.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4000ms
rtt min/avg/max/mdev = 0.497/0.527/0.590/0.041 ms

Если бы все три программы так отвечали, было бы понятно. А пакостит только dig.

Онлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 361
  • Учиться .... Телепатами не рождаются, ими ....
А в логах сервера нельзя посмотреть?