Перед использованием инструкции, вы должны ознакомиться и настроить DNS сервер по инструкции настройки DNS сервера bind.
Подготовка master сервера
Открываем на редактирование конфигурационный файл bind:
# vi /etc/named.conf
и редактируем следующее в блоке options:
allow-recursion { none; };
Находим и закомменитуем строку
dnssec-validation yes;
Рассмотрим подробнее, то что мы написали:
allow-recursion { none; }— Отключаем использование рекурсивных запросов т.к. это сильно снижает скорость работы, да и нее имеет смысла опрашивать вышестоящие DNS сервера по поводу зоны которую сами же и обслуживаем.
Добавьте строки в блоки ваших локальных зон
allow-transfer {<ip адрес реплики>;}; allow-update {<ip адрес реплики>;}; notify yes;
Давайте разберемся, что мы туда добавили
allow-transfer {<ip адрес реплики>;} -разрешаем передачу данной зоны на остальные наши DNS сервера.
allow-update {<ip адрес реплики>;} — разрешаем обновление.
notify yes -включаем автоматическое уведомление подчиненных серверов об обновлении файла настроек DNS зоны.
Перезагрузите bind.
# systemctl restart bind
Настройка slave сервера.
Устанавливаем все обновления.
Если вы используете РЕД ОС версии 7.1 или 7.2, выполните команду:
# yum update
Если вы используете РЕД ОС версии 7.3 и старше, выполните команду:
# dnf update
Устанавливаем утилиту для синхронизации времени, отключаем cronyd и запускаем ntpd:
для РЕД ОС версии 7.1 или 7.2:
# yum install ntp # systemctl disable chronyd # systemctl enable ntpd # systemctl stop chronyd # systemctl start ntpd
для РЕД ОС версии 7.3 и старше:
# dnf install ntp # systemctl disable chronyd # systemctl enable ntpd # systemctl stop chronyd # systemctl start ntpd
Cинхронизируем время с внешним сервером:
# ntpdate ntp.ipa.test
Устанавливаем DNS-сервер следующей командой:
для РЕД ОС версии 7.1 или 7.2:
# yum install bind
для РЕД ОС версии 7.3 и старше:
# dnf install bind
Разрешаем автозапуск:
# systemctl enable named
Запускаем сервис имен:
# systemctl start named
И проверяем, что он работает корректно:
# systemctl status named
Открываем на редактирование конфигурационный файл bind:
# vi /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 зоны, откройте её файл и отредактируйте параметр 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