3.2.3 Настройка репликации 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 сервера.
Устанавливаем все обновления.
Если вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:
yum update
Если вы используете РЕД ОС версии 7.3 и старше, выполните команду:
dnf update
Устанавливаем DNS-сервер следующей командой:
для РЕД ОС версии 7.1 или 7.2:
yum install bind
для РЕД ОС версии 7.3 и старше:
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
Дата последнего изменения: 15.05.2023
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.