Bind9 зона не загружается: файл не найден

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

Моя зона Bind9 не загружается с этими 2 ошибками:

    зона example.com/IN: загрузка из мастер-файла etc/bind/zones/db.example.com не удалась: файл 
    не найден
    зона example.com/IN: не загружена из-за ошибок.

Вот named.conf.local

    зона "example.com" {
    тип master;
    файл "etc/bind/zones/db.example.com"; # путь к файлу зоны
    allow-transfer { 10.0.0.0/8; };
};

и файл зоны

    ; базовый файл зоны для example.com
$TTL 2d    ; значение по умолчанию TTL для зоны
$ORIGIN example.com. ; базовое доменное имя
; Начало записи авторитета RR, определяющее ключевые характеристики зоны (домена)
@         IN      SOA   ns1.example.com. hostmaster.example.com. (
                                2003080800 ; номер версии
                                12h        ; обновление
                                15m        ; повторное обновление
                                3w         ; срок действия
                                2h         ; минимум
                                )
; запись сервера имен RR для домена
           IN      NS      ns1.example.com.
; второй сервер имен является внешним для этой зоны (домена)
           IN      NS      ns2.example.net.
; записи почтовых серверов RR для зоны (домена)
        3w IN      MX  10  mail.example.com.
; второй почтовый сервер является внешним для зоны (домена)
           IN      MX  20  mail.example.net.
; доменные хосты включают записи NS и MX, определенные выше
; а также любые другие, которые требуются
; например, запрос пользователя для записи A RR joe.example.com вернет
; IPv4-адрес 192.168.254.6 из этого файла зоны
ns1        IN      A       10.12.0.14
mail       IN      A       192.168.254.4
joe        IN      A       192.168.254.6
www        IN      A       192.168.254.7
; псевдонимы ftp (ftp-сервер) для внешнего домена
ftp        IN      CNAME   ftp.example.net.

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

Причина, по которой ваш файл зоны не загружается с ошибкой "file not found", может быть связана с неправильным указанием пути к файлу зоны в конфигурации BIND9. Давайте рассмотрим, как исправить эту проблему шаг за шагом.

  1. Проверка пути к файлу зоны:
    В файле named.conf.local у вас указано:

    file "etc/bind/zones/db.example.com";

    Это предполагает, что файл db.example.com находится в папке etc/bind/zones. Однако, в большинстве случаев, путь к директориям должен начинаться с наклонной черты /. Проверьте, как выглядит путь к вашему файлу зоны. Если он действительно должен быть в папке etc/bind/zones, измените строку на:

    file "/etc/bind/zones/db.example.com";
  2. Проверка наличия файла зоны:
    Убедитесь, что файл db.example.com существует и доступен для чтения. Это можно сделать с помощью команды:

    ls -l /etc/bind/zones/db.example.com

    Если файл не существует, вы должны создать его или проверить, находится ли он в другой директории, и изменить путь в конфигурации соответственно.

  3. Проверка прав доступа:
    Если файл существует, проверьте, что процесс BIND имеет необходимые права доступа для чтения этого файла. Обычно, пользователь, под которым работает BIND, должен иметь права на чтение файла. Проверьте права с помощью:

    ls -l /etc/bind/zones/

    Если нужно, измените права доступа с помощью:

    sudo chown bind:bind /etc/bind/zones/db.example.com
    sudo chmod 644 /etc/bind/zones/db.example.com
  4. Перезагрузка сервиса BIND:
    После внесения изменений в конфигурацию или права, необходимо перезагрузить сервис BIND. Сделать это можно с помощью команды:

    sudo systemctl restart bind9
  5. Проверка логов:
    Если возникают дополнительные ошибки, обратитесь к логам BIND для получения дополнительной информации. Обычно они находятся в /var/log/syslog или в файле, указанном в конфигурации BIND для логирования. Вы можете просмотреть последние записи командой:

    tail -f /var/log/syslog
  6. Проверка конфигурации BIND:
    Убедитесь, что ваша конфигурация BIND синтаксически верна, запустив проверку:

    sudo named-checkconf
  7. Проверка файла зоны:
    Также стоит проверить корректность содержимого файла db.example.com с помощью команды:

    sudo named-checkzone example.com /etc/bind/zones/db.example.com

    Это обеспечит отсутствие синтаксических ошибок в самом файле зоны.

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

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

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