2.2 Настройка репликации bind

Перед использованием инструкции, вы должны ознакомиться и настроить DNS сервер по инструкции настройки DNS сервера bind.

Подготовка master сервера

Открываем на редактирование конфигурационный файл bind:

# vi /etc/named.conf

и редактируем следующее в блоке options:

allow-recursion { none; };

Находим и закомменитуем строку

dnssec-validation yes;

Рассмотрим подробнее, то что мы написали:
version «Super DNS server»; -Уровень болтливости сервера, вместо названия сервера выдаст Super DNS server (можно написать что-то свое).
allow-recursion { none; }; — Отключаем использование рекурсивных запросов т.к. это сильно снижает скорость работы, да и нее имеет смысла опрашивать вышестоящие DNS сервера по поводу зоны которую сами же и обслуживаем.

Добавьте строки в блоки ваших локальных зон

allow-transfer {<ip адрес реплики>;};
allow-update {<ip адрес реплики>;};
notify yes;

Давайте разберемся, что мы туда добавили
allow-transfer {<ip адрес реплики>;}; -разрешаем передачу данной зоны на остальные наши DNS сервера.
allow-update {<ip адрес реплики>;}; — разрешаем обновление.
notify yes; -включаем автоматическое уведомление подчиненных серверов об обновлении файла настроек DNS зоны.

В файлах зон добавьте строки

                IN               NS       dns-replica.ipa.test.
dns-replica.ipa.test.     IN        A         <ip адрес реплики>

где:
IN     NS    dns-replica.ipa.test. — NS сервер который обслуживает эту зону
dns-replica     IN   A       <ip адрес реплики>  «А» запись для поиска NS сервера.

Перезагрузите bind.

# systemctl restart bind

Настройка slave сервера.

Устанавливаем все обновления:

# yum update

Устанавливаем утилиту для синхронизации времени, отключаем cronyd и запускаем ntpd

# yum install ntp
# systemctl disable chronyd
# systemctl enable ntpd
# systemctl stop chronyd
# systemctl start ntpd

Cинхронизируем время с внешним сервером:

# ntpdate ntp.ipa.test

Устанавливаем DNS-сервер следующей командой:

# yum 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 "ipa.test" IN {
         type slave;
         file "/var/named/slaves/db.ipa.test";
         masters { <ip адрес мастера>; };
         allow-transfer {"none";};
};

Рассмотрим подробнее изменения:
type slave;-тип зоны подчиненная
file /var/named/slaves/db.ipa.test»; -путь к файлу с настройками, в этот раз в имени файла указано slave.example.org.db чтобы было понятно на каком сервере вы находитесь.
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 192.168.0.1

* данной командой мы пытаемся узнать IP-адреса сайта rgu.ipa.test через сервер 192.168.0.1.

Должно получиться, примерно, следующее:

Server:      192.168.0.1
Address:     192.168.0.1#53
Name:        test.example.org
Address: 192.168.10.12

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.