SystemdDoctor
служба не работает разрешение имён права

Служба имён не загружает зону: нет прав или ошибка в файле

Службе имён нужен доступ не только к файлу зоны, но и к каталогу: при динамических обновлениях она создаёт рядом журнал изменений. Права только на файл дают отказ, который выглядит как ошибка в самой зоне.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Нет права записи в каталог зоны

    При динамических обновлениях служба создаёт журнал изменений рядом с файлом зоны. Без права записи в каталог загрузка отказывает.

  2. Ошибка в файле зоны

    Служба проверяет файл при загрузке. Неверная запись или отсутствие обязательных полей отклоняют зону целиком.

  3. Серийный номер зоны не увеличен

    Без увеличения серийного номера подчинённые серверы не заберут изменения. Зона расходится между серверами.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Проверка настроек службы имён.

sudo named-checkconf 2>&1 | tail -5

Проверка конкретного файла зоны.

sudo named-checkzone example.org /etc/bind/zones/db.example.org 2>&1 | tail

Сообщения службы о загрузке зон.

journalctl -u named -u bind9 -n 30 --no-pager 2>/dev/null

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Нет права записи в каталог зоны
Почему происходит
При динамических обновлениях служба создаёт журнал изменений рядом с файлом зоны. Без права записи в каталог загрузка отказывает.
Как проверить
Посмотрите права каталога и пользователя службы.
sudo ls -ld /var/lib/bind /etc/bind/zones 2>/dev/null
systemctl show named -p User 2>/dev/null || systemctl show bind9 -p User 2>/dev/null
Как исправить
Держите изменяемые зоны в каталоге, доступном службе для записи. Статические зоны можно оставить только для чтения.
2. Ошибка в файле зоны
Почему происходит
Служба проверяет файл при загрузке. Неверная запись или отсутствие обязательных полей отклоняют зону целиком.
Как проверить
Проверьте файл зоны отдельной командой.
sudo named-checkzone example.org /etc/bind/zones/db.example.org 2>&1 | tail -5
Как исправить
Исправьте ошибку по сообщению проверки. Проверять зону стоит до перезагрузки службы: иначе зона выпадет из обслуживания.
3. Серийный номер зоны не увеличен
Почему происходит
Без увеличения серийного номера подчинённые серверы не заберут изменения. Зона расходится между серверами.
Как проверить
Сравните серийные номера на серверах.
dig @localhost example.org SOA +short 2>/dev/null
dig @подчинённый example.org SOA +short 2>/dev/null
Как исправить
Увеличивайте серийный номер при каждой правке зоны. Это единственный признак изменения, на который смотрят подчинённые серверы.

Пример вывода

Нет права записи в каталог зоны. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

named[12900]: zone example.org/IN: loading from master file /etc/bind/zones/db.example.org failed: permission denied
named[12900]: zone example.org/IN: not loaded due to errors.
named[12900]: /etc/bind/named.conf.local:12: journal rollforward failed: create failed

Связанные ошибки

Где встречается чаще всего

Источники

  • named-checkzone(8)
    Проверка файлов зон до загрузки.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено каталогом зоны без права записи для службы.
    собственная проверка, systemd 255
    сверено 15 сентября 2026