В статье приводится описание процесса настройки основного и вспомогательного 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-трафик