BIND DNS на Debian 10.9

Статья описывает быструю настройку Master и Slave DNS серверов с использованием BIND в ОС Debian GNU/Linux 10.9.

На всех серверах сделаем следующее:

установим необходимые пакеты

# apt install bind9 bind9utils dnsutils

если включён файрволл, необходимо разрешить использование DNS

# firewall-cmd --permanent --zone=public --add-service=dns
# firewall-cmd --reload

переходим в каталог /etc/bind и откроем здесь файл named.conf

# cd /etc/bind
# nano named.conf

в самом конце впишем строчку:

include "/etc/bind/named.conf.zones";

теперь создадим файл /etc/bind/named.conf.zones

# touch /etc/bind/named.conf.zones

и при необходимости отдадим права пользователю root группы bind

# chown -R root:bind /etc/bind/named.conf.zones

в настройках сетевого интерфейса /etc/network/interfaces в параметре dns-nameservers поменяем IP-адреса на наши DNS-сервера:

dns-nameservers 192.168.1.47 192.168.1.48

также в файле /etc/resolv.conf закомментируем все строчки решёткой и добавим наши DNS-сервера:

nameserver 192.168.1.47
nameserver 192.168.1.48

192.168.1.47 и 192.168.1.48 — заданные для примера IP-адреса серверов ns1 (master) и ns2 (slave) соответственно

перезапускаем сетевой интерфейс

# systemctl restart networking

и проверяем его

# ip a

после этого сгенерируем ключи

# /usr/sbin/dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndckey

Переходим к настройкам на сервере ns1:

в файле /etc/bind/named.conf.options стираем строчку

dnssec-validation auto;

и на её месте напишем:

listen-on port 53 { 127.0.0.1; 192.168.1.47; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

в файле /etc/bind/named.conf.zones пропишем описание нашей зоны:

zone "localserver34.ru" IN {
	type master;
	file "/etc/bind/db.localserver34.ru";
	allow-transfer { 192.168.1.48; };
	notify yes;
};

в файле /etc/bind/db.localserver34.ru зададим описание зоны, т.е. внесём основные записи:

$TTL		3600
@			IN		SOA		ns1.localserver34.ru.	admin.localserver34.ru.	(
							20210420		; Serial
							3600			; Refresh
							900			; Retry
							3600000			; Expire
							3600 )			; Minimum
; DNS servers
@			IN		NS		ns1.localserver34.ru.
@			IN		NS		ns2.localserver34.ru.
; A records
www			IN		A		192.168.1.50
win7			IN		A		192.168.1.50
ns1			IN		A		192.168.1.47
ns2			IN		A		192.168.1.48

перезапускаем службу bind9

# systemctl restart bind9

и проверяем её состояние

# systemctl status bind9

ответ должен содержать:

Loaded: loaded
Active: active

Затем переходим к настройке сервера ns2:

в файле /etc/bind/named.conf.options стираем строчку

dnssec-validation auto;

и на её месте напишем:

listen-on port 53 { 127.0.0.1; 192.168.1.48; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

в файле /etc/bind/named.conf.zones пропишем описание нашей зоны:

zone "localserver34.ru" {
	type slave;
	file "/etc/bind/slave/db.localserver34.ru";
	masters { 192.168.1.47; };
	allow-transfer {192.168.1.47; };
};

теперь создадим каталог /etc/bind/slave и отдадим на него права пользователю bind группы bind

# mkdir /etc/bind/slave
# chown -R bind:bind /etc/bind/slave

при этом здесь файл зоны создавать не нужно — он автоматически подтянется из мастера

перезапускаем службу bind9

# systemctl restart bind9

и проверяем её состояние

# systemctl status bind9

ответ должен содержать:

Loaded: loaded
Active: active

Проверяем работу DNS-серверов с помощью утилиты dig:

на ns1 (Master DNS) запускаем

# dig @ns2.localserver34.ru localserver34.ru axfr

ответ должен быть таким:

; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> @ns2.localserver34.ru localserver34.ru axfr
; (1 server found)
;; global options: +cmd
localserver34.ru.       3600    IN      SOA     ns1.localserver34.ru. admin.localserver34.ru. 20210420 3600 900 3600000 3600
localserver34.ru.       3600    IN      NS      ns1.localserver34.ru.
localserver34.ru.       3600    IN      NS      ns2.localserver34.ru.
ns1.localserver34.ru.   3600    IN      A       192.168.1.47
ns2.localserver34.ru.   3600    IN      A       192.168.1.48
win7.localserver34.ru.  3600    IN      A       192.168.1.50
www.localserver34.ru.   3600    IN      A       192.168.1.50
localserver34.ru.       3600    IN      SOA     ns1.localserver34.ru. admin.localserver34.ru. 20210420 3600 900 3600000 3600
;; Query time: 8 msec
;; SERVER: 192.168.1.48#53(192.168.1.48)
;; WHEN: Ср апр 21 09:02:35 MSK 2021
;; XFR size: 8 records (messages 1, bytes 260)

на ns2 (Slave DNS) запускаем

# dig @ns1.localserver34.ru localserver34.ru axfr

ждём такого ответа:

; <<>> DiG 9.11.5-P4-5.1+deb10u3-Debian <<>> @ns1.localserver34.ru localserver34.ru axfr
; (1 server found)
;; global options: +cmd
localserver34.ru.       3600    IN      SOA     ns1.localserver34.ru. admin.localserver34.ru. 20210420 3600 900 3600000 3600
localserver34.ru.       3600    IN      NS      ns1.localserver34.ru.
localserver34.ru.       3600    IN      NS      ns2.localserver34.ru.
ns1.localserver34.ru.   3600    IN      A       192.168.1.47
ns2.localserver34.ru.   3600    IN      A       192.168.1.48
win7.localserver34.ru.  3600    IN      A       192.168.1.50
www.localserver34.ru.   3600    IN      A       192.168.1.50
localserver34.ru.       3600    IN      SOA     ns1.localserver34.ru. admin.localserver34.ru. 20210420 3600 900 3600000 3600
;; Query time: 3 msec
;; SERVER: 192.168.1.47#53(192.168.1.47)
;; WHEN: Ср апр 21 09:03:54 MSK 2021
;; XFR size: 8 records (messages 1, bytes 260)

Если ошибок нет, значит настройка прошла успешно.

Теперь IP-адреса этих серверов можно прописывать на клиентских машинах в сети.

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

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