Как создать и настроить вторичную (slave) зону в BIND сервере
* Инструкция написана на примере операционных систем CentOS 7 и Ubuntu. Но она подходит к любому дистрибутиву Linux.
На сервере Master
Чтобы разрешить передачу зоны на вторичный сервер с первичного, необходимо на последнем (master) настроить соответствующее разрешение.
Для этого открываем конфигурационный файл с настройкой зоны.
CentOS:
vi /etc/named.conf
Ubuntu:
vi /etc/bind/named.conf.local
И добавляем allow-transfer. Получится, примерно, следующее:
zone "dmosk.ru" {
type master;
file "master/dmosk.ru";
allow-transfer { 192.168.0.15; };
};
* где dmosk.ru — домен, для которого настраивается зона; 192.168.0.15 — IP-адрес вторичного сервера, на который будет разрешена зонная передача.
Применяем настройки одной из команд:
systemctl reload named
systemctl reload bind
service bind9 reload
Если используется брандмауэр iptables, создаем разрешающее правило для зонной передачи:
iptables -I INPUT 1 -p tcp -m tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
На сервере Slave
Открываем на редактирование конфигурационный файл bind.
CentOS:
vi /etc/named.conf
Ubuntu:
vi /etc/bind/named.conf.local
И дописываем туда следующее:
zone "dmosk.ru" {
type slave;
file "slaves/dmosk.ru";
masters { 192.168.0.10; };
};
* где dmosk.ru — зона (домен); slave — указание, что эта зона вторичная; slave/dmosk.ru — файл с записями зоны. Стоит обратить внимание, что используется относительный путь до файла — это значит, что каталог slave должен находиться в рабочей папке bind (ее путь определяется опцией directory). Можно также прописать абсолютный путь, например, /etc/bind/slave/dmosk.ru; 192.168.0.10 — IP-адрес первичного сервера, с которого будут вытянуты записи для созданной зоны.
Создаем каталог для хранения вторичных зон.
CentOS:
mkdir /var/named/slaves
Ubuntu:
mkdir /var/cache/bind/slaves
* используемые в нашем примере каталоги применяются по умолчанию, но в Вашем случае они могут быть другими. Сверяйте данные по опции directory.
Чтобы настройки применились, необходимо перезапустить вторичный bind-сервер одной из команд:
systemctl reload named
systemctl reload bind
service bind9 reload
и перечитать информацию о настроенных DNS-зонах:
rndc reload
Проверяем, что файл с записями появился в базе bind:
CentOS:
ls /var/named/slaves/
Ubuntu:
ls /var/cache/bind/slaves
* команда выведет список файлов, среди которых должен быть наш (в конкретном примере, dmosk.ru).
Чтобы проверить работоспособность вторичного сервера BIND, запускаем консоль на любом компьютере в сети и вводим команду:
nslookup dmosk.ru 192.168.0.15
* где dmosk.ru — домен, который мы создали; 192.168.0.15 — IP-адрес резервного DNS-сервера, на котором мы и создавали slave-зону (в моем примере).