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

Ошибка nslookup

Я пытаюсь понять, почему nslookup не может найти имя локального хоста.

КОНФИГУРАЦИЯ Я пытаюсь настроить авторитетный сервер имен, работающий с «DNS и BIND», с запущенным bind9, на Debian 5.0, в chroot «тюрьме». bind запускается нормально, так как в syslog нет сообщений об ошибках. имя хоста сообщает "мастерская.example.net", имя хоста -f сообщает полное доменное имя как то же самое. В файле / etc / hosts есть строка: «xx.xx.xxx.xxshops.example.netshops»

Файл /etc/resolv.conf может быть проблемой; когда я перезагружаюсь, в строке его домена устанавливается недопустимое значение. Но nslookup по-прежнему не работает после того, как я изменил строку на «domain example.net» и перезапустил bind9.

ВЫВОД NSLOOKUP nslookup дает адрес СЕРВЕРА для сервера имен по умолчанию, но сообщает: «Не удается найти домен мастерской: NX».

QUERY Что здесь может быть не так?

Возможно ли, что проблема в регистрации хостов и серверов имен домена? Я не уверен, что правильно установил значения у регистратора. Но я бы подумал, что nslookup должен найти адрес локального хоста, если я правильно настроил привязку и различные файлы host и resolv.conf.

ОБНОВЛЕНИЕ Вот результат команды dig: Команда: dig A @workshopshop.example.net

Вывод:

; <<>> DiG 9.5.1-P2 <<>> A @workshop workshop.example.net
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11327
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;workshop.example.net. IN A

;; ANSWER SECTION:
workshop.example.net. 3600 IN A   72.14.190.80

;; AUTHORITY SECTION:
example.net. 3600 IN      NS      workshop.example.net.

;; Query time: 0 msec
;; SERVER: 72.14.190.80#53(72.14.190.80)
;; WHEN: Tue Jul  7 00:25:58 2009
;; MSG SIZE  rcvd: 82

Я не знаю, что здесь ищу, но IP-адрес в разделе ОТВЕТ - это то, что я ожидал.

ОБНОВЛЕНИЕ - 2 Хорошо, похоже, это исправлено.

Теперь файл resolve.conf выглядит следующим образом:

domain example.net             # This was domain members.linode.net
#search members.linode.com     # Previously, not commented out
nameserver 127.0.0.1           # This line added
nameserver 72.14.179.5
nameserver 72.14.188.5

Это отражает три изменения по сравнению с нерабочим состоянием: 1) Домен ранее был members.linode.com - я изменил его на имя своего домена, что, как я полагаю, помогает, добавив example.net в конец «семинара». '. 2) Я закомментировал строку поиска, которая, как я предполагаю, отправляла преобразователь в домен members.linode.com для поиска "мастерской". 3) Я добавил сервер имен 127.0.0.1, что, как я полагаю, означает, что преобразователь сначала смотрит на локальный сервер имен, прежде чем перейти к другим.

Я не совсем понимаю, какой вывод я получаю от «семинара», но я собираюсь взглянуть на dig, прежде чем задавать какие-либо вопросы по этому поводу.

Большое спасибо всем, кто потрудился взглянуть на это и отгадать проблему.

QUERY Что здесь может быть не так?

Несколько вещей замышляют против вас. :-(

Файл /etc/resolv.conf может быть проблемой; когда я перезагружаюсь, в строке его домена устанавливается недопустимое значение.

Как твое /etc/resolv.conf создается / заселяется?

Я предполагаю, что ваш IP-адрес назначается DHCP-сервером. Как часть назначения IP-адреса, ваш DHCP-клиент переписывает /etc/resolv.conf с domain и nameserver назначается DHCP-сервером. Отсюда и "несоответствующее" значение после перезагрузки.

ВЫВОД NSLOOKUP nslookup дает адрес СЕРВЕРА для сервера имен по умолчанию, но сообщает: «Не удается найти домен мастерской: NX».

Это потому что ваш дефолт DNS-сервер не является вашим локальным DNS-сервером - это один из DNS-серверов, назначенных вам DHCP-сервером. Этот «другой» DNS-сервер не знает о вашем домене.

Но nslookup по-прежнему не работает после того, как я изменил строку на «domain example.net» и перезапустил bind9.

Это потому, что вам нужно добавить свой локальный DNS-сервер в список серверов имен в /etc/resolv.conf. Непосредственно перед любым другим nameserver запись, добавить ...

nameserver 127.0.0.1

Теперь, когда вы используете nslookup, ваш локальный DNS-сервер должен быть вашим дефолт DNS-сервер. nslookup теперь должна быть возможность разрешить "мастерскую".

ОБНОВЛЕНИЕ Вот результат команды dig: Команда: dig A @workshopshop.example.net

Это подтверждает, что ваш домен правильно настроен на локальном DNS-сервере привязки.

Как вы уже заметили, ваши изменения в /etc/resolv.conf будут перезаписаны при следующей перезагрузке. У вас есть два варианта:

  • Измените конфигурацию вашего компьютера на использование статического IP-адреса. /etc/resolv.conf больше не будут перезаписаны, поэтому ваши изменения сохранятся после перезагрузки.

  • Измените конфигурацию вашего DHCP-клиента, чтобы он не перезаписывал /etc/resolv.conf. Эта ветка должен указать вам правильное направление.

bind не будет использовать ваш файл / etc / hosts. И nslookup будет запрашивать источники, перечисленные в "/etc/nsswitch.conf".

Строка домена из /etc/resolv.conf используется только для завершения имен хостов без домена, например: "nslookupshops".

Для дальнейшего тестирования я бы предложил использовать dig:

dig A @server workshop.example.net

Это запросит у dns-сервера «server» запись A для «shops.example.net ».

Находится ли мастерская.example.com в файле зоны для example.com? bind не читает ваши / etc / hosts, только файлы зон.

Вы можете настроить nslookup на использование режима отладки. Поскольку у вас есть копать, я предполагаю, что здесь Linux-подобный сервер.

> set debug
> www.yourdomain.net
Server:          [your primary dns]
Address:         [your primary dns]

--------------
[whole bunch of data]

Вывод может дать вам больше информации. "set debug2" работает на некоторых платформах, чтобы предоставить дополнительную информацию (например, в WinXP он сообщит вам значение TTL для возвращаемых результатов, удобно!)

ВЫВОД NSLOOKUP nslookup дает адрес СЕРВЕРА для сервера имен по умолчанию, но сообщает: «Не удается найти домен мастерской: NX».

Сервер по умолчанию, который использует nslookup, отличается от того, который вы настраиваете? В приведенных вами выходных данных раскопок вы специально запросили сервер «мастерская» и получили правильный ответ. Команда nslookup для выполнения того же самого будет nslookup workshop.example.net server.

Если это сработает, вам просто нужно заставить ваш компьютер использовать ваш сервер. /etc/resolv.conf будет первым местом, где это можно сделать.