nslookup находит ip, а ping - нет

53

Я знаю, что это похоже на все другие вопросы "может пинговать по ip, но не через dns", но они мне совсем не помогли.

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

У меня установлен сервер ldap + dns, и я хочу, чтобы компьютеры в моей сети проходили аутентификацию на сервере ldap.

Часть ldap работает нормально, и я могу зайти на сервер ldap с учетными данными ldap.

Проблема возникает с клиентскими компьютерами, клиент настроен на использование DNS-сервера (в данном случае 192.168.0.243), и если я попадаю в терминал и делаю nslookup, он находит сервер ldap просто отлично.

fernando@desktest:~$ nslookup ldap.mynet.local
Server:     192.168.0.243
Address:    192.168.0.243#53

Name:   ldap.mynet.local
Address: 192.168.0.243

Но когда я пингую его, он не находит IP-адрес. Он просто висит там и выглядит красиво, пока я не нажму CTRL-C.

Конечно, пинг по IP-адресу работает просто отлично.

Вот файлы зоны для DNS-сервера:

fernando@ldap:~$ cat /etc/bind/named.conf.local
zone "mynet.local" {
    type master;
    file "/etc/bind/db.mynet.local";
};

zone "0.168.192.in-addr.arpa" {
    type master;
    notify no;
    file "/etc/bind/db.192";
};
fernando@ldap:~$ cat /etc/bind/db.mynet.local 
;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns.mynet.local. root.mynet.local. (
                  7     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
         604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.mynet.local.
ns  IN  A   192.168.0.243
server  IN  A   192.168.0.250
desktest    IN  A   192.168.0.249
remote  IN  A   192.168.0.248
winserver   IN  A   192.168.0.247
web         IN  A   192.168.0.246
tempfs  IN  A   192.168.0.245
ldap    IN  A   192.168.0.243
antenarfb   IN  A   192.168.0.253
antenapan   IN  A   10.82.223.7
adslgvt IN  A   192.168.0.1
fernando@ldap:~$ cat /etc/bind/db.192 
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@   IN  SOA mynet.local. root.mynet.local. (
                  6     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.
1   IN  PTR ns.mynet.local.
2   IN  PTR server.mynet.local.
3   IN  PTR desktest.mynet.local.
4   IN  PTR remote.mynet.local.
5   IN  PTR winserver.mynet.local.
6   IN  PTR web.mynet.local.
7   IN  PTR tempfs.mynet.local.
8   IN  PTR ldap.mynet.local.
9   IN  PTR antenarfb.mynet.local.
10  IN  PTR antenapan.mynet.local.
11  IN  PTR adslgvt.mynet.local.
fernando@ldap:~$ 

Я действительно в недоумении, что делать, и любая помощь будет принята с благодарностью.

---- редактировать ----

прежде чем кто-нибудь спросит, да сервер работает :)

root@ldap:/etc/bind# rndc status
version: 9.7.0-P1
CPUs found: 1
worker threads: 1
number of zones: 16
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

---- конец редактирования ----

Фернандо
источник
После дополнительного тестирования я почти уверен, что делаю что-то не так на серверной части DNS. Это host ldapдает мне ошибку «Не найден узел» (даже на терминале DNS-сервера). То же самое происходит при использовании dig, то же самое происходит и с host 192.168.0.243моей машиной ldap.mynet.local.
Фернандо
делать host ldap.mynet.localна клиентском компьютере дает мне правильный IP-адрес: /
Фернандо

Ответы:

89

Я полагаю, что это вызвано mdns - multicast dns для автоконфигурации домена .local.

Если вы зарегистрируетесь /etc/nsswitch.conf, вы, вероятно, увидите:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

mdns4 это то, что делает многоадресный днс. Попробуйте изменить это на:

hosts: files dns

И посмотри, имеет ли это какое-то значение. Если это работает, вы можете удалить mdns навсегда с помощью:

Пытаться apt-get remove libnss-mdns

Который также сделает nsswitch.confизменения для вас.

В качестве альтернативы, не используйте .local - используйте .lan или что-то вместо этого.

цезий
источник
1
Отлично! работал как шарм! Большое спасибо. Обратный DNS по-прежнему дает мне ошибку, но это еще одна проблема, я думаю :)
Фернандо
4
Чувак, ты потрясающий !!!!!
Тайский Тран
Это было реальное решение моей проблемы с Ubuntu Saucy / 13.10.
beerbajay
2
В чем логика? Почему это конфигурация по умолчанию?
Крис
1
Отличный ответ! У меня также работала над новой установкой Ubuntu 16.
T-Heron
3

Просто чтобы завершить вещи:

  1. nslookup просто запрашивает у заданного DNS-сервера назначенную A-запись, но НЕ гарантирует, что устройство, стоящее за этой записью, действительно имеет этот IP.

  2. Даже если устройство имеет правильный IP-адрес (например, фиксированный IP-адрес устройства совпадает с IP-адресом, предоставленным DNS) - это не гарантирует, что устройство настроено на ответ на эхо-запросы. Это общая точка разочарования. (Я говорю о вас, брандмауэр Windows)

  3. Когда вы пересекаете подсети, маршрутизатор / шлюз / брандмауэр также может ограничивать трафик ICMP (это и есть пинг).

Поэтому вам всегда нужно проверять всю цепочку обслуживания от отправителя к получателю и наоборот. В третьем случае могут быть такие настройки, как а) шлюз по умолчанию или б) (по умолчанию) задействованные маршруты. Поэтому добавьте их в свой контрольный список.

Извините за то, что выкопал эту старую, но, учитывая заголовок, она показалась мне частью информации, от которой кто-то мог получить прибыль.

Greetz.

Кей Урбах
источник
2
OP упоминает «но когда я пингую, он не находит IP-адрес». Речь идет не о пакетах, не достигающих места назначения, а о том, что сам ping не может определить IP-адрес.
Андрас Гомрей
Сам пинг не использует разрешение имен. Ссылаясь на stackoverflow.com/questions/17161005/… .
Кей Урбах
2

Еще одна вещь, которая, как я видел, мешает работе DNS, это установка winbind. Кажется , поставить winsзапись перед [NOTFOUND=return]в /etc/nsswitch.conf, что приводит к DNS потерпеть неудачу, но может быть исправлено путем перемещения winsв после «NOTFOUND» частей, а также, предпочтительно после днса таким образом , чтобы поиск DNS бывает первым, смотрите это:

http://ubuntuforums.org/showthread.php?t=1496488

(хотя не уверен, почему это происходит по умолчанию; комментарии приветствуются!)

Latanius
источник