3.5.2.3 Настройка репликации DNS-сервера bind
Подготовка master-сервера
Настройка slave-сервера
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Сервер минимальный
- Версия bind: bind-32:9.18.28-1
Предварительно необходимо ознакомиться и настроить DNS-сервер согласно нашей инструкции «Настройка DNS-сервера bind».
Подготовка master-сервера
Откройте на редактирование конфигурационный файл bind:
sudo nano /etc/named.conf
Отредактируйте следующее в блоке options:
allow-recursion { none; };
Найдите и закомментируйте строку:
dnssec-validation yes;
Добавьте строки в блоки ваших локальных зон:
allow-transfer { <ip_адрес_реплики>; };
allow-update { <ip_адрес_реплики>; };
notify yes;
Рассмотрим подробнее, что означают строки:
- allow-recursion { none; } — отключаем использование рекурсивных запросов т.к. это сильно снижает скорость работы, да и нее имеет смысла опрашивать вышестоящие DNS сервера по поводу зоны которую сами же и обслуживаем;
- allow-transfer {<ip_адрес_реплики>;} — разрешаем передачу данной зоны на остальные наши DNS-сервера;
- allow-update {<ip_адрес_реплики>;} — разрешаем обновление;
- notify yes — включаем автоматическое уведомление подчиненных серверов об обновлении файла настроек DNS-зоны.
Перезагрузите bind:
sudo systemctl restart named
Настройка slave-сервера
Установите все обновления:
sudo dnf update
Установите DNS-сервер следующей командой:
sudo dnf install bind
Запустите сервис и добавьте в автозапуск:
sudo systemctl enable named --now
Проверьте, что он работает корректно:
systemctl status named
Откройте на редактирование конфигурационный файл bind:
sudo nano /etc/named.conf
Отредактируйте следующее в блоке options:
listen-on port 53 { 127.0.0.1; <ip_данного_сервера>;};
listen-on-v6 port 53 { none; };
allow-query { any; };
forward first;
forwarders {8.8.8.8;};
allow-recursion { none; };
Найдите и закомментируйте строку:
dnssec-validation yes;
Добавьте запись:
zone "example.org" IN {
type slave;
file "/var/named/slaves/slave.example.org";
masters { <ip_адрес_мастера>; };
allow-transfer { "none"; };
};
Рассмотрим подробнее изменения:
- type slave; — параметр указывает, что данная зона является подчиненной;
- file /var/named/slaves/slave.example.org" — путь к файлу с настройками, в этот раз в имени файла указано slave.example.org, чтобы было понятно, на каком сервере вы находитесь;
- masters { <ip_адрес_мастера>; } — IP-адрес master-сервера, откуда будет производиться запрос файлов с настройками DNS-зон;
- allow-transfer {none;} — отключаем передачу зоны другим серверам, чтобы нельзя было получить все записи в домене.
Впишите вышеописанные блоки для каждой зоны.
Перезагрузите DNS-сервер.
sudo systemctl restart named
Теперь должны появиться файлы DNS-зон по пути, который указан.
Каждый раз, когда в настройки зоны на мастере вносятся изменения, к серийному номеру прибавляется единица, это делается для того, чтобы подчиненные сервера увидели изменения в записях и приняли обновленный файл зоны, если после внесения изменений в файл, серийный номер остался прежним или уменьшился, то подчиненные DNS-сервера НЕ станут подтягивать обновления, считая, что на master-сервере изменений не было!
Для редактирования серийного номера DNS-зоны откройте её файл и отредактируйте параметр serial.
Пример файла зоны:
...
@ IN SOA ns0.ipa.test. postmaster.ipa.test. (
2025032003 ;serial
...
Это значение нужно увеличивать каждый раз при редактировании файла доменной зоны. Оно записано в формате YY-MM-DD + наращиваемый порядковый номер.
Для проверки работоспособности сервера с другого компьютера сети выполняем команду:
nslookup test.example.org <ip_адрес_реплики>
* данной командой мы пытаемся узнать IP-адреса сайта test.example.org через сервер репликации DNS.
Должно получиться, примерно, следующее:
Server: 192.168.0.1 Address: 192.168.0.1#53 Name: test.example.org Address: 192.168.10.12
Дата последнего изменения: 20.03.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.