2026-09-19

Вторичная (slave) зона в BIND: настройка репликации DNS

Вторичная (slave) зона BIND хранит копию зоны с первичного (master) сервера и автоматически обновляет её по зонной передаче (AXFR/IXFR). Это даёт отказоустойчивость DNS и распределение нагрузки. Инструкция подходит для CentOS/Rocky, Ubuntu и других дистрибутивов Linux.


На сервере Master

Разрешаем передачу зоны на вторичный сервер. Открываем конфиг зоны.

CentOS:

vi /etc/named.conf

Ubuntu:

vi /etc/bind/named.conf.local

Добавляем allow-transfer:

zone "imaxis.ru" {
        type master;
        file "master/imaxis.ru";
        allow-transfer { 192.168.0.15; };
};

где imaxis.ru — домен, 192.168.0.15 — адрес вторичного сервера, которому разрешена передача.

Применяем настройки:

systemctl reload named
# или
systemctl reload bind
# или
service bind9 reload

При использовании iptables открываем TCP/53 для передачи зоны:

iptables -I INPUT 1 -p tcp -m tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT

На сервере Slave

Открываем конфиг.

CentOS:

vi /etc/named.conf

Ubuntu:

vi /etc/bind/named.conf.local

Добавляем:

zone "imaxis.ru" {
        type slave;
        file "slaves/imaxis.ru";
        masters { 192.168.0.10; };
};

где:

  • imaxis.ru — зона (домен);
  • type slave — вторичная зона;
  • slaves/imaxis.ru — файл записей. Путь относительный — значит, каталог slaves должен находиться в рабочем каталоге BIND (опция directory). Можно указать абсолютный путь, например /etc/bind/slaves/imaxis.ru;
  • 192.168.0.10 — адрес первичного сервера.

Создаём каталог для вторичных зон.

CentOS:

mkdir /var/named/slaves

Ubuntu:

mkdir /var/cache/bind/slaves

Указанные каталоги применяются по умолчанию; сверяйтесь с опцией directory.

Перезапускаем и перечитываем зоны:

systemctl reload named
rndc reload

Проверяем, что файл зоны появился:

CentOS:

ls /var/named/slaves/

Ubuntu:

ls /var/cache/bind/slaves

В списке должен быть файл imaxis.ru.

Проверяем работу вторичного сервера:

nslookup imaxis.ru 192.168.0.15

где imaxis.ru — созданный домен, 192.168.0.15 — адрес резервного DNS-сервера.


Тонкости и подводные камни

  • allow-transfer обязателен — без него master откажет в передаче (Transfer failed).
  • Права на каталог slaves — пользователь bind/named должен иметь право записи, иначе файл зоны не создастся.
  • directory и относительные пути — путь slaves/imaxis.ru считается от рабочего каталога BIND.
  • SOA и NS — во вторичной зоне их не задают; они приходят с master. На master в NS должны быть указаны оба сервера.
  • TCP/53 — зонная передача идёт по TCP, не забудьте открыть порт в брандмауэре.
  • NOTIFY — master уведомляет slave об изменениях; при проблемах проверьте доступность по TCP/53 в обе стороны.
  • rndc reload vs systemctl reload — первый перечитывает зоны без перезапуска процесса; используйте его для проверки.

Шпаргалка

# MASTER
vi /etc/bind/named.conf.local
# zone "imaxis.ru" { type master; file "master/imaxis.ru"; allow-transfer { 192.168.0.15; }; };
systemctl reload bind9

# SLAVE
vi /etc/bind/named.conf.local
# zone "imaxis.ru" { type slave; file "slaves/imaxis.ru"; masters { 192.168.0.10; }; };
mkdir -p /var/cache/bind/slaves
systemctl reload bind9
rndc reload
ls /var/cache/bind/slaves
nslookup imaxis.ru 192.168.0.15

Проверено на: Ubuntu 22.04/24.04/26.04, CentOS/Rocky + BIND 9.18+.
Дата: Сентябрь 2026.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *