2.5.2.3 Настройка репликации DNS-сервера bind
Скачать документ Окружение
- Версия РЕД ОС: 7.3
- Конфигурация: Сервер минимальный
- Версия bind: bind-9.16.16
Предварительно необходимо ознакомиться и настроить DNS-сервер согласно нашей инструкции «Настройка DNS-сервера bind».
Подготовка master сервера
Открываем на редактирование конфигурационный файл bind:
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.
systemctl restart named
Настройка slave сервера.
Устанавливаем все обновления.
dnf update
Устанавливаем DNS-сервер следующей командой:
dnf install bind
Запускаем сервис и добавляем в автозапуск:
systemctl enable named --now
И проверяем, что он работает корректно:
systemctl status named
Открываем на редактирование конфигурационный файл bind:
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 адрес Мастер сервера, откуда будет производиться запрос файлов с настройками DNS зон.
- allow-transfer {none;} — Отключаем передачу зоны другим серверам, чтобы нельзя было получить все записи в домене
Впишите вышеописанные блоки для каждой зоны.
Перезагрузите DNS сервер.
systemctl restart named
Теперь должны появиться файлы DNS зон по пути, который указан.
Каждый раз, когда в настройки зоны на мастере вносятся изменения, к серийному номеру прибавляется единица, это делается для того чтобы подчиненные сервера увидели изменения в записях и приняли обновленный файл зоны, если после внесения изменений в файл, серийный номер остался прежним или уменьшился, то подчиненные DNS сервера НЕ станут подтягивать обновления считая что на мастер сервере изменений небыло!
Для редактирования серийного номера DNS зоны, откройте её файл и отредактируйте параметр serial.
Пример файла зоны:
... @ IN SOA ns0.ipa.test. postmaster.ipa.test. ( 2018042804 ;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
Дата последнего изменения: 10.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.