В статье приводится описание процесса настройки основного и вспомогательного DNS-серверов минимальной конфигурации и размещения на них DNS-зоны
Будем считать, что имя делегированной нам DNS-зоны - domain.com, а IP-адреса основного и второстепенного серверов - 1.1.1.1 и 2.2.2.2 соответственно
Настройку будем выполнять на CentOS 7 с использованием BIND версии 9.9.4
Настройка основного DNS-сервера
- устанавливаем BIND из репозитория CentOS
- yum install bind-chroot
- удаляем содержимое файла /etc/named.conf и добавляем следующее
- 
options {
 listen-on port 53 { any; };
 directory "/var/named";
 dump-file "/var/named/data/cache_dump.db";
 statistics-file "/var/named/data/named_stats.txt";
 memstatistics-file "/var/named/data/named_mem_stats.txt";
 allow-query { any; };
 allow-query-cache { none; };
 recursion no;
 dnssec-enable no;
 dnssec-validation no;
 notify master-only;
 pid-file "/run/named/named.pid";
 };logging { 
 channel default_debug {
 file "/var/named/data/named.run";
 severity dynamic; };
 };zone "domain.com" IN { 
 type master;
 file "/etc/named/domain.com.zone";
 allow-transfer { 2.2.2.2; };
 };
- создаем файл зоны /etc/named/domain.com.zone следующего содержания
- 
$TTL 3600
 $ORIGIN domain.com
 domain.com. 3600 IN SOA ns1.domain.com. hostmaster.domain.com. (
 1352523645 ; serial
 3600 ; refresh
 900 ; retry
 2592000 ; expire
 3600 ; minimum
 )
 domain.com. 3600 IN NS ns1.domain.com.
 domain.com. 3600 IN NS ns2.domain.com.
 ns1.domain.com. 3600 IN A 1.1.1.1
 ns2.domain.com. 3600 IN A 2.2.2.2
- настраиваем владельца файла /etc/named/domain.com.zone и права доступа к нему
- 
chown root:named /etc/named/domain.com.zone
 chmod 640 /etc/named/domain.com.zone
- отключаем поддержку IPv6, для чего в файл /etc/sysconfig/named добавляем строку
- OPTIONS = "-4"
- настраиваем автоматический запуск BIND при старте системы
- systemctl enable named-chroot
- запускаем BIND
- service bind-chroot start
- Замечание: в результате в папке /var/named/chroot будут созданы ссылки на все используемые BIND файлы и папки, с учетом их расположения в файловой системе (например, для файла /etc/named/domain.com.zone будет создана ссылка /var/named/chroot/etc/named/domain.com.zone)
Настройка вспомогательного DNS-сервера
- устанавливаем BIND из репозитория CentOS
- yum install bind-chroot
- удаляем содержимое файла /etc/named.conf и добавляем следующее
- 
options {
 listen-on port 53 { any; };
 directory "/var/named";
 dump-file "/var/named/data/cache_dump.db";
 statistics-file "/var/named/data/named_stats.txt";
 memstatistics-file "/var/named/data/named_mem_stats.txt";
 allow-query { any; };
 allow-query-cache { none; };
 recursion no;
 dnssec-enable no;
 dnssec-validation no;
 notify master-only;
 pid-file "/run/named/named.pid";
 };logging { 
 channel default_debug {
 file "/var/named/data/named.run";
 severity dynamic; };
 };zone "domain.com" IN { 
 type slave;
 file "/var/named/slaves/domain.com.zone";
 masters { 1.1.1.1; };
 };
- отключаем поддержку IPv6, для чего в файл /etc/sysconfig/named добавляем строку
- OPTIONS = "-4"
- настраиваем автоматический запуск BIND при старте системы
- systemctl enable named-chroot
- запускаем BIND
- service bind-chroot start
- Замечание: в результате в папке /var/named/chroot будут созданы ссылки на все используемые BIND файлы и папки, с учетом их расположения в файловой системе, а также выполнена передача зон с основного сервера, информация о которых будет сохранена в файле /var/named/slaves/domain.com.zone
Замечание 1: для успешной передачи зоны с основного сервера на второстепенный при каждом ее изменении необходимо также увеличивать серийный номер зоны в SOA-записи
Замечание 2: на основном сервере должен быть разрешен входящий трафик как для протокола UDP, используемого клиентами для отправки запросов, так и для протокола TCP, который используется второстепенным сервером при передаче зоны с основного сервера (при этом уведомления об изменениях рассылаются основным сервером посредством протокола UDP). На второстепенном сервере достаточно разрешить только входящий UDP-трафик