PowerDNS не разрешает имя хоста компьютера

Вопрос или проблема

Я только что закончил настраивать PowerDNS, чтобы не приходилось запоминать все свои IP-адреса, и, похоже, все работает довольно хорошо, большинство имен хостов разрешаются без проблем, но не то, что запущено на PowerDNS (названное musicbox, IP 192.168.1.22). Когда я пытаюсь запинговать его с любого другого компьютера, я получаю только сообщение об ошибке неизвестный хост. Используя dig, я получаю правильный IP-адрес. Запуск ping musicbox.local также работает нормально, но не ping musicbox.

#dig musicbox.local

; <<>> DiG 9.9.5-3-Ubuntu <<>> musicbox.local
;; глобальные опции: +cmd
;; Получен ответ:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45271
;; флаги: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; СЕКЦИЯ ВОПРОСА:
;musicbox.local.                        IN      A

;; СЕКЦИЯ ОТВЕТА:
musicbox.local.         3600    IN      A       192.168.1.22

;; Время запроса: 5 мс
;; СЕРВЕР: 192.168.1.22#53(192.168.1.22)
;; ДАТА: Вс Дек 07 19:54:23 CET 2014
;; РАЗМЕР СООБЩЕНИЯ: 48 байт

Это мой bindbackend.conf:

  one "local" {
  type master;
  file "/etc/powerdns/bind/local.zone";
  allow-update { none; };
  };

Это мой зоновый файл, local.zone:

$ORIGIN local     ; база для неквалифицированных имен
$TTL 1h                 ; время жизни по умолчанию
@                       IN      SOA ns.local hostmaster.local (
                                1; серийный номер
                                1d; обновление
                                2h; повтор
                                4w; истечение
                                1h; минимальное время жизни
                        )
                        IN      NS      ns
                        IN      A       192.168.1.22
musicbox                IN      CNAME   ns
haddock                 IN      A       192.168.1.29
tintin                  IN      A       192.168.1.68
snowy                   IN      A       192.168.1.99
castafiore              IN      A       192.168.1.73

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

musicbox является псевдонимом для ns:

musicbox                IN      CNAME   ns

Однако для ns нет записи A, поэтому musicbox не разрешается. Все остальные имена хостов имеют записи A, поэтому они разрешаются без проблем.

Вы можете либо добавить запись A для ns

ns          IN    A    [IP ns]

… либо запись A для musicbox напрямую:

musicbox    IN    A    [IP musicbox]

Из того, что я вижу из вашего файла, я предполагаю, что ваш хост ns имеет 192.168.1.22 (упомянут как @, local, в вашем зонном файле). Хотя вы определяете IP вашего хоста, связи между вашим хостом (@, local) и ns нет. Я бы порекомендовал следующие изменения:

$ORIGIN local
$TTL 1h
@                       IN      SOA ns.local. hostmaster.local. (
                                1; серийный номер
                                1d; обновление
                                2h; повтор
                                4w; истечение
                                1h; минимальное время жизни
                        )

                        IN      NS      ns

                        IN      A       192.168.1.22
ns                      IN      A       192.168.1.22

haddock                 IN      A       192.168.1.29
tintin                  IN      A       192.168.1.68
snowy                   IN      A       192.168.1.99
castafiore              IN      A       192.168.1.73
musicbox                IN      CNAME   ns

Этот файл создаст следующие ассоциации:

  • local. находится по адресу 192.168.1.22.
  • ns.local. находится по адресу 192.168.1.22.
  • haddock.local. находится по адресу 192.168.1.29.
  • tintin.local. находится по адресу 192.168.1.68
  • snowy.local. находится по адресу 192.168.1.99.
  • castafiore.local. находится по адресу 192.168.1.73.
  • musicbox.local. находится по адресу 192.168.1.22 (псевдоним ns.local.).

(не забывайте о завершающих ., когда вы используете полные домены, такие как ns.local.)

Ответ или решение

Решение проблемы с разрешением имени хоста в PowerDNS

Если вы только что завершили настройку PowerDNS и столкнулись с проблемой, когда имя хоста musicbox (IP 192.168.1.22) не разрешается, несмотря на то что другие имена хостов работают корректно, это может быть связано с некорректной конфигурацией DNS. Давайте подробно рассмотрим вашу ситуацию и предложим пути ее решения.

Анализ текущей конфигурации

Сначала рассмотрим ваши конфигурационные файлы, чтобы лучше понять проблему.

1. Файл конфигурации bindbackend.conf:

one "local" {
  type master;
  file "/etc/powerdns/bind/local.zone";
  allow-update { none; };
};

2. Файл зоны local.zone:

$ORIGIN local     ; base for unqualified names
$TTL 1h           ; default time-to-live
@                   IN      SOA ns.local hostmaster.local (
                                1; serial
                                1d; refresh
                                2h; retry
                                4w; expire
                                1h; minimum time-to-live
                        )
                        IN      NS      ns
                        IN      A       192.168.1.22
musicbox                IN      CNAME   ns
haddock                 IN      A       192.168.1.29
tintin                  IN      A       192.168.1.68
snowy                   IN      A       192.168.1.99
castafiore              IN      A       192.168.1.73

Вы указали, что musicbox — это CNAME для ns, однако в вашем файле нет записи A для ns, из-за чего musicbox не может быть разрешен.

Рекомендации по исправлению

Чтобы решить проблему, вам нужно добавить запись A для ns, а также удостовериться, что все ссылки корректно настроены. Вот как это может выглядеть:

$ORIGIN local
$TTL 1h
@                       IN      SOA ns.local. hostmaster.local. (
                                1; serial
                                1d; refresh
                                2h; retry
                                4w; expire
                                1h; minimum time-to-live
                        )

                        IN      NS      ns
                        IN      A       192.168.1.22

ns                      IN      A       192.168.1.22    ; запись для ns

haddock                 IN      A       192.168.1.29
tintin                  IN      A       192.168.1.68
snowy                   IN      A       192.168.1.99
castafiore              IN      A       192.168.1.73
musicbox                IN      CNAME   ns

Пояснение изменений

  1. Запись ns A 192.168.1.22: Эта запись связывает имя ns с IP-адресом вашего сервера (192.168.1.22). Это позволит разрешаться имени musicbox через CNAME, указывающий на ns.

  2. Используйте полные доменные имена: Не забывайте об окончательных . в полных доменных именах, таких как ns.local. Это помогает избежать путаницы в разрешении имен.

Проверка после внесения изменений

После внесения всех изменений следует перезапустить службу PowerDNS:

sudo systemctl restart pdns

Затем проверьте конфигурацию с помощью утилиты dig:

dig @192.168.1.22 musicbox

Эта команда должна вернуть IP-адрес 192.168.1.22 без ошибок.

Заключение

Использование PowerDNS значительно упрощает управление адресами в вашей сетевой инфраструктуре, однако важно следить за тем, чтобы все записи были правильно настроены. Надеюсь, предложенные изменения помогут вам успешно разрешить имя хоста musicbox и завершить настройку вашей DNS-системы.

Оцените материал
Добавить комментарий

Капча загружается...