Как установить и настроить DNS-сервер BIND на CentOS или Rocky Linux
Обновлено: 18.02.2023 Опубликовано: 14.10.2016
Используемые термины: DNS, BIND, Linux, CentOS, Rocky Linux. Мы рассмотрим небольшой обзор по установке DNS-сервера bind на системы типа RPM (Rocky Linux, CentOS, Oracle Linux и так далее).
Подготовка сервера
Установка и запуск BIND
Базовая настройка DNS-сервера
* где 192.168.166.155 — IP-адрес нашего NS-сервера, на котором он будет принимать запросы; allow-query разрешает выполнять запросы всем, но из соображений безопасности можно ограничить доступ для конкретной сети, например, вместо any написать 192.168.166.0/24. Для применения настроек выполните команду:
Для начала проверим работу сервиса с локального компьютера. Для этого установим nslookup и выполним команду:
Для проверки работоспособности сервера с другого компьютера сети (например, на Windows) выполняем команду:
* данной командой мы пытаемся узнать IP-адреса сайта dmosk.ru через сервер 192.168.166.155. Должно получиться, примерно, следующее:
Описание глобальных опций
Перечисленные ниже параметры являются глобальными по отношению к DNS и всем настроенным зонам. Они задаются в конфигурационном файле named.conf, директиве options <>.
Опции | Описания |
---|---|
directory | Указывает рабочий каталог сервера bind. Если не указан, /var/named |
forwarders | Перечисляет серверы, на которые будет переведен запрос, в случае, если наш сервер не сможет его обработать (нет соответствующей зоны.) |
forward | Переопределяет способ обработки запроса. Принимает два значения — ONLY или FIRST. Первое указывает на то, что сервер не будет пытаться искать совпадения среди локальных зон. Второе — сервер сначала будет перенаправлять запрос и если он не будет успешно обработан, искать соответствия во внутренней базе. |
listen-on | На каких интерфейсах будет слушать bind |
allow-transfer | Указание на список серверов на которые будут разрешены зонные передачи (репликация на вторичные NS) |
allow-query | Список узлов, с которых разрешено обращаться к серверу. Если не задана, разрешено всем. |
allow-notify | Перечисленным серверам разрешает отправку уведомлений об изменениях в настройках зоны. |
allow-recursion | Задает список хостов, для которых разрешены рекурсивные запросы, остальным — будут разрешены итеративные. Если не задана, для всех рекурсивно. |
Пример глобальных настроек
Зоны bind
- Первичная, она же master, она же локальная. База, которая пополняется и редактируется на текущем сервере. Подробнее как настроить первичную зону bind.
- Вторичная или slave. База копирует настройки с первичной зоны на другом сервере. Подробнее как настроить вторичную зону bind.
- Заглушка или stub. Хранит у себя только записи NS, по которым все запросы переводятся на соответствующие NS-серверы.
- Кэширующая или hint. Не хранит на сетбе никаких записей — только результаты уже обработанных запросов для ускорения ответов на повторные обращения.
Решение проблем с помощью log-файлов
По умолчанию, сервер Bind под CentOS хранит логи в файле /var/named/data/named.run.
Для его непрерывного просмотра вводим следующую команду:
tail -f /var/named/data/named.run
Степень детализации логов можно настроить в конфигурационном файле:
logging channel default_debug file «data/named.run»;
severity dynamic;
>;
>;
* где file — путь к log-файлу; severity — уровень чувствительности к возникающим событиям. Возможны следующие варианты для severity:
- critical — критические ошибки.
- error — ошибки и выше (critical).
- warning — предупреждения и выше. Предупреждения не говорят о наличии проблем в работе сервиса, однако это такие событтия, которые могут привести с ошибкам, поэтому не стоит их игнорировать.
- notice — уведомления и выше.
- info — информация.
- debug — отладка (подробный лог).
- dynamic — тот же debug.
Напротив, чтобы отключить ведение лога, в конфигурационном файле должна быть настройка:
После изменения конфигурационного файла перезапускаем сервис:
Лог запросов
Если мы хотим также видеть в логе все запросы, которые приходят на bind, в командной строке вводим:
Для отключения еще раз повторяем команду:
Читайте также
Дополнительная информация по bind: