Вопрос или проблема
Я только что закончил настраивать 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.68snowy.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
Пояснение изменений
-
Запись
ns A 192.168.1.22
: Эта запись связывает имяns
с IP-адресом вашего сервера (192.168.1.22). Это позволит разрешаться имениmusicbox
через CNAME, указывающий наns
. -
Используйте полные доменные имена: Не забывайте об окончательных
.
в полных доменных именах, таких какns.local.
Это помогает избежать путаницы в разрешении имен.
Проверка после внесения изменений
После внесения всех изменений следует перезапустить службу PowerDNS:
sudo systemctl restart pdns
Затем проверьте конфигурацию с помощью утилиты dig
:
dig @192.168.1.22 musicbox
Эта команда должна вернуть IP-адрес 192.168.1.22 без ошибок.
Заключение
Использование PowerDNS значительно упрощает управление адресами в вашей сетевой инфраструктуре, однако важно следить за тем, чтобы все записи были правильно настроены. Надеюсь, предложенные изменения помогут вам успешно разрешить имя хоста musicbox
и завершить настройку вашей DNS-системы.