При возникновении проблем с DNS-сервером проведите диагностику первичного и вторичного DNS-сервера. В этой статье приведены способы диагностики и расположение основных конфигурационных и лог-файлов.

Файлы и логи DNS-серверов


ФайлыCentOSDebian, Ubuntu
Конфигурационный файл PowerDNS

/etc/pdns/pdns.conf

/etc/powerdns/pdns.conf

Записи доменных зон PowerDNS.

Записи хранятся в базах данных MySQL, отдельная база на каждое пространство имён.

Пространство по умолчанию — powerdns.Пространство по умолчанию — pdns.
Логи BIND и PowerDNS/var/log/messages/var/log/syslog

Диагностика первичного (master) DNS-сервера


DNS-сервер не отдаёт доменную зону

Проверьте, что первичный DNS-сервер отдаёт зону:

dig <домен> @<IP-адрес> ANY +short
CODE
Пояснения

<домен> — доменное имя.

<IP-адрес> — IP-адрес DNS-сервера, как правило, совпадает с основным IP-адресом сервера.

Ответ на запрос должен быть вида:

dig domain.name @1.1.1.1 ANY +short
mary.me. root.example.com. 2014041800 10800 3600 604800 86400
ns2.example.com.
ns1.example.com.
"v=spf1 ip4:1.1.1.1 a mx ~all"
10 mail.domain.name.
1.1.1.1
CODE

DNS-сервер не запущен или порт DNS (53) закрыт, если получен ответ вида:

dig domain.nam @1.1.1.1 ANY +short
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> domain.nam @1.1.1.1 ANY +short
;; global options: +cmd
;; connection timed out; no servers could be reached
CODE

Если получен пустой ответ, значит у DNS-сервера нет информации о домене. Возможно, он не смог загрузить доменную зону. В этом случае смотрите лог.

Диагностика вторичного (slave) DNS-сервера


Проверка связи с первичным DNS-сервером

Подключитесь к первичному серверу по telnet к 53 порту:

telnet <IP-адрес первичного сервера> 53
CODE

Если подключиться не удаётся, проверьте настройки файервола на первичном и вторичном серверах.

Проверка возможности передачи доменной зоны от первичного сервера к вторичному

Выполните команду:

dig <домен> @<IP-адрес> axfr
CODE
Пояснения

<домен> — доменное имя.

<IP-адрес> — адрес WWW-домена.

Ответ должен быть вида:

dig domain.name @1.1.1.1 axfr
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.23.rc1.el6_5.1 <<>> domain.name @1.1.1.1 axfr
;; global options: +cmd
domain.name.		3600	IN	SOA	mary.me. root.example.com. 2014041800 10800 3600 604800 86400
domain.name.		3600	IN	NS	ns1.example.com.
domain.name.		3600	IN	NS	ns2.example.com.
domain.name.		3600	IN	TXT	"v=spf1 ip4:1.1.1.1 a mx ~all"
domain.name.		3600	IN	MX	10 mail.domain.name.
domain.name.		3600	IN	A	1.1.1.1
ftp.domain.name.	3600	IN	A	1.1.1.1
mail.domain.name.	3600	IN	A	1.1.1.1
pop.domain.name.	3600	IN	A	1.1.1.1
smtp.domain.name.	3600	IN	A	1.1.1.1
www.domain.name.	3600	IN	A	1.1.1.1
domain.name.		3600	IN	SOA	mary.me. root.example.com. 2014041800 10800 3600 604800 86400
CODE

Частая причина проблемы: в файле доменной зоны DNS-сервера в allow-transfer указан приватный IP-адрес, который недоступен со вторичного сервера.