#Что означает сообщение
Zone not loaded
Проверьте зону named-checkzone, увеличьте serial и выполните rndc reload.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Ошибка синтаксиса | Отдельно проверьте фактор «Ошибка синтаксиса» в момент, когда возникает описанная неисправность; сравните с работой исправного устройства или настройки. Отслеживайте результат по журналу нужной службы, не по соседним сайтам. | Если проверка подтверждает «Ошибка синтаксиса», исправьте только относящийся к нему элемент, сохранив прежнее значение и возможность возврата. |
| Не увеличен serial | Отдельно проверьте фактор «Не увеличен serial» в момент, когда возникает описанная неисправность; сравните с работой исправного устройства или настройки. | Если проверка подтверждает «Не увеличен serial», исправьте только относящийся к нему элемент, сохранив прежнее значение и возможность возврата. |
| Нет NS | Отдельно проверьте фактор «Нет NS» в момент, когда возникает описанная неисправность; сравните с работой исправного устройства или настройки. | Если проверка подтверждает «Нет NS», исправьте только относящийся к нему элемент, сохранив прежнее значение и возможность возврата. |
| Права на файл | Сравните права текущего пользователя и ограничения именно для нужной операции, файла или устройства; посмотрите сообщение об отказе. | Измените только необходимое разрешение, если это одобрено владельцем системы, вместо предоставления полных прав всем пользователям. |
#Пошаговое решение
- Найдите ошибку конфигурации namedАдминистратору BIND: на DNS-сервере по SSH выполните
sudo named-checkconfи посмотрите точное сообщение об ошибке файла и строки. Затем проверьте конфигурацию конкретной зоны и путь к файлу вnamed.confлибо подключаемых файлах. До правок сделайте копию файла зоны и конфигурации. Не изменяйте одновременно serial, права и DNSSEC, пока не выявлена причина отказа. - Проверьте конкретную DNS-зонуВыполните
sudo named-checkzone example.com /путь/к/файлу/зоны, подставив реальную зону и фактический путь из конфигурации. Исправьте указанную синтаксическую ошибку: например, пропущенную точку в абсолютном имени, скобку или тип записи. Снова выполнитеnamed-checkzoneи убедитесь, что проверка завершаетсяOK; только после этого увеличьте SOA serial при изменении содержимого. - Сверьте файл, права доступа и serialЕсли синтаксис корректен, проверьте, доступен ли процессу named файл зоны для чтения, и совпадает ли путь в конфигурации с расположением файла. Просмотрите
sudo journalctl -u named -b --no-pager | tail -80либо журнал вашей установки (на Debian служба может называться bind9). Не меняйте права каталога рекурсивно без причины. На вторичных серверах отдельно проверяйте serial и успешность переноса зоны. - Проверьте SOA после перезагрузки зоныПосле успешных проверок конфигурации выполните
sudo rndc reload example.com, заменив домен на конкретную зону, либо используйте штатный способ перезагрузки вашей установки. Проверьте ответ у авторитетного сервера черезdig @АДРЕС_NS example.com SOA +norecurse; заглушку замените реальным адресом. Если вывод и SOA serial не обновились, изучите журнал BIND: HTTP-коды сайтов к загрузке DNS-зоны отношения не имеют.
#На что обратить внимание
Не переписывайте SOA и NS вслепую: ошибки делегирования не устраняются простой перезагрузкой. После загрузки сравните ответ авторитетного сервера с ожидаемым набором записей.
Linux · Терминал (Bash)Команда
Проверка зоны.
named-checkzone example.com /etc/bind/db.example.com