BIND DNS на CentOS Stream 8.3

Описание быстрой настройки Master и Slave DNS серверов с использованием BIND в ОС CentOS Stream 8.3.

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# yum install bind-chroot bind-utils
# yum install bind-chroot bind-utils
# yum install bind-chroot bind-utils

в файрволле откроем порт 53 для обеспечения работы

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# firewall-cmd --permanent --zone=public --add-service=dns
# firewall-cmd --permanent --zone=public --add-service=dns
# firewall-cmd --permanent --zone=public --add-service=dns

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# firewall-cmd --reload
# firewall-cmd --reload
# firewall-cmd --reload

выключаем SELINUX — в файле /etc/sysconfig/selinux меняем

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELINUX=enforcing
SELINUX=enforcing
SELINUX=enforcing

на

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELINUX=disabled
SELINUX=disabled
SELINUX=disabled

сохраним файл /etc/named.conf по умолчанию — скопируем его как named.conf.old

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# cp /etc/named.conf /etc/named.conf.old
# cp /etc/named.conf /etc/named.conf.old
# cp /etc/named.conf /etc/named.conf.old

сгенерируем ключи

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndckey
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndckey
# dnssec-keygen -a HMAC-MD5 -b 128 -n USER rndckey

затем в файле /etc/sysconfig/network-scripts/ifcfg-enp0s3 исправим IP-адреса DNS-серверов:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
DNS1=192.168.1.45
DNS2=192.168.1.46
DNS1=192.168.1.45 DNS2=192.168.1.46
DNS1=192.168.1.45
DNS2=192.168.1.46

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# ifup enp0s3
# ifup enp0s3
# ifup enp0s3
  • 192.168.1.45 и 192.168.1.46 — заданные для примера IP-адреса серверов ns1 (master) и ns2 (slave) соответственно
  • enp0s3 — имя сетевого интерфейса

после этого в файле /etc/named.conf в секции options необходимо проверить наличие следующих строк:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
options {
...
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
...
}
options { ... recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; ... }
options {
	...
	recursion yes;
	dnssec-enable yes;
	dnssec-validation yes;
	dnssec-lookaside auto;
	...
}

если их нет или значения отличаются — добавляем или меняем.

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

зададим имя хоста ns1

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# hostnamectl set-hostname ns1
# hostnamectl set-hostname ns1
# hostnamectl set-hostname ns1

создадим каталог /etc/named/master и в нём файл зоны localserver12.ru

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# mkdir /etc/named/master
# touch /etc/named/master/localserver12.ru
# mkdir /etc/named/master # touch /etc/named/master/localserver12.ru
# mkdir /etc/named/master
# touch /etc/named/master/localserver12.ru

передадим для них права пользователю named группы named

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# chown -R named:named /etc/named/master
# chown -R named:named /etc/named/master/localserver12.ru
# chown -R named:named /etc/named/master # chown -R named:named /etc/named/master/localserver12.ru
# chown -R named:named /etc/named/master
# chown -R named:named /etc/named/master/localserver12.ru

в файле /etc/named.conf в секции options в параметре listen-on port 53 допишем IP-адрес машины в сети:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
options {
listen-on port 53 { 127.0.0.1; 192.168.1.45; };
...
}
options { listen-on port 53 { 127.0.0.1; 192.168.1.45; }; ... }
options {
	 listen-on port 53 { 127.0.0.1; 192.168.1.45; };
	 ...
}

а также в самом конце файла прописываем описание нашей зоны:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
zone "localserver12.ru" IN {
type master;
file "/etc/named/master/localserver12.ru";
allow-transfer { 192.168.1.46; };
notify yes;
};
zone "localserver12.ru" IN { type master; file "/etc/named/master/localserver12.ru"; allow-transfer { 192.168.1.46; }; notify yes; };
zone "localserver12.ru" IN {
	type master;
	file "/etc/named/master/localserver12.ru";
	allow-transfer { 192.168.1.46; };
	notify yes;
};

откроем файл /etc/named/master/localserver12.ru и зададим описание зоны, т.е. внесём основные записи:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$TTL 3600
@ IN SOA ns1.localserver12.ru. admin.localserver12.ru. (
20210419 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
; DNS servers
@ IN NS ns1.localserver12.ru.
@ IN NS ns2.localserver12.ru.
; A records
www IN A 192.168.1.50
win7 IN A 192.168.1.50
ns1 IN A 192.168.1.45
ns2 IN A 192.168.1.46
$TTL 3600 @ IN SOA ns1.localserver12.ru. admin.localserver12.ru. ( 20210419 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum ; DNS servers @ IN NS ns1.localserver12.ru. @ IN NS ns2.localserver12.ru. ; A records www IN A 192.168.1.50 win7 IN A 192.168.1.50 ns1 IN A 192.168.1.45 ns2 IN A 192.168.1.46
$TTL            3600
@                       IN      SOA     ns1.localserver12.ru.   admin.localserver12.ru. (
                                        20210419                ; Serial
                                        3600                    ; Refresh
                                        900                     ; Retry
                                        3600000                 ; Expire
                                        3600 )                  ; Minimum
; DNS servers
@                       IN      NS      ns1.localserver12.ru.
@                       IN      NS      ns2.localserver12.ru.
; A records
www                     IN      A       192.168.1.50
win7                    IN      A       192.168.1.50
ns1                     IN      A       192.168.1.45
ns2                     IN      A       192.168.1.46

запускаем службу named и вносим её в автозагрузку

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# systemctl start named
# systemctl enable named
# systemctl start named # systemctl enable named
# systemctl start named
# systemctl enable named

проверяем статус службы named

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# systemctl status named
# systemctl status named
# systemctl status named

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Loaded: loaded
Active: active (running)
Loaded: loaded Active: active (running)
Loaded: loaded
Active: active (running)

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

зададим имя хоста ns2

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# hostnamectl set-hostname ns2
# hostnamectl set-hostname ns2
# hostnamectl set-hostname ns2

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# mkdir /etc/named/slave
# chown -R named:named /etc/named/slave
# mkdir /etc/named/slave # chown -R named:named /etc/named/slave
# mkdir /etc/named/slave
# chown -R named:named /etc/named/slave

в файле /etc/named.conf в секции options в параметре listen-on port 53 допишем IP-адрес машины в сети:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
options {
listen-on port 53 { 127.0.0.1; 192.168.1.46; };
...
}
options { listen-on port 53 { 127.0.0.1; 192.168.1.46; }; ... }
options {
	 listen-on port 53 { 127.0.0.1; 192.168.1.46; };
	 ...
}

а также в самом конце файла прописываем описание нашей зоны:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
zone "localserver12.ru" {
type slave;
file "/etc/named/slave/localserver12.ru";
masters { 192.168.1.45; };
allow-transfer { 192.168.1.45; };
};
zone "localserver12.ru" { type slave; file "/etc/named/slave/localserver12.ru"; masters { 192.168.1.45; }; allow-transfer { 192.168.1.45; }; };
zone "localserver12.ru" {
	type slave;
	file "/etc/named/slave/localserver12.ru";
	masters { 192.168.1.45; };
	allow-transfer { 192.168.1.45; };
};

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

запускаем службу named и вносим её в автозагрузку

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# systemctl start named
# systemctl enable named
# systemctl start named # systemctl enable named
# systemctl start named
# systemctl enable named

проверяем статус службы named

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# systemctl status named
# systemctl status named
# systemctl status named

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Loaded: loaded
Active: active (running)
Loaded: loaded Active: active (running)
Loaded: loaded
Active: active (running)

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

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# dig @ns2.localserver12.ru localserver12.ru axfr
# dig @ns2.localserver12.ru localserver12.ru axfr
# dig @ns2.localserver12.ru localserver12.ru axfr

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> @ns2.localserver12.ru localserver12.ru axfr
; (1 server found)
;; global options: +cmd
localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
localserver12.ru. 3600 IN NS ns1.localserver12.ru.
localserver12.ru. 3600 IN NS ns2.localserver12.ru.
ns1.localserver12.ru. 3600 IN A 192.168.1.45
ns2.localserver12.ru. 3600 IN A 192.168.1.46
win7.localserver12.ru. 3600 IN A 192.168.1.50
www.localserver12.ru. 3600 IN A 192.168.1.50
localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
;; Query time: 3 msec
;; SERVER: 192.168.1.46#53(192.168.1.46)
;; WHEN: Вт апр 20 12:04:47 MSK 2021
;; XFR size: 8 records (messages 1, bytes 260)
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> @ns2.localserver12.ru localserver12.ru axfr ; (1 server found) ;; global options: +cmd localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600 localserver12.ru. 3600 IN NS ns1.localserver12.ru. localserver12.ru. 3600 IN NS ns2.localserver12.ru. ns1.localserver12.ru. 3600 IN A 192.168.1.45 ns2.localserver12.ru. 3600 IN A 192.168.1.46 win7.localserver12.ru. 3600 IN A 192.168.1.50 www.localserver12.ru. 3600 IN A 192.168.1.50 localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600 ;; Query time: 3 msec ;; SERVER: 192.168.1.46#53(192.168.1.46) ;; WHEN: Вт апр 20 12:04:47 MSK 2021 ;; XFR size: 8 records (messages 1, bytes 260)
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8_3.1 <<>> @ns2.localserver12.ru localserver12.ru axfr
; (1 server found)
;; global options: +cmd
localserver12.ru.       3600    IN      SOA     ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
localserver12.ru.       3600    IN      NS      ns1.localserver12.ru.
localserver12.ru.       3600    IN      NS      ns2.localserver12.ru.
ns1.localserver12.ru.   3600    IN      A       192.168.1.45
ns2.localserver12.ru.   3600    IN      A       192.168.1.46
win7.localserver12.ru.  3600    IN      A       192.168.1.50
www.localserver12.ru.   3600    IN      A       192.168.1.50
localserver12.ru.       3600    IN      SOA     ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
;; Query time: 3 msec
;; SERVER: 192.168.1.46#53(192.168.1.46)
;; WHEN: Вт апр 20 12:04:47 MSK 2021
;; XFR size: 8 records (messages 1, bytes 260)

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# dig @ns1.localserver12.ru localserver12.ru axfr
# dig @ns1.localserver12.ru localserver12.ru axfr
# dig @ns1.localserver12.ru localserver12.ru axfr

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
; <<>> DiG 9.11.26-RedHat-9.11.26-3.el8 <<>> @ns1.localserver12.ru localserver12.ru axfr
; (1 server found)
;; global options: +cmd
localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
localserver12.ru. 3600 IN NS ns1.localserver12.ru.
localserver12.ru. 3600 IN NS ns2.localserver12.ru.
ns1.localserver12.ru. 3600 IN A 192.168.1.45
ns2.localserver12.ru. 3600 IN A 192.168.1.46
win7.localserver12.ru. 3600 IN A 192.168.1.50
www.localserver12.ru. 3600 IN A 192.168.1.50
localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
;; Query time: 1 msec
;; SERVER: 192.168.1.45#53(192.168.1.45)
;; WHEN: Вт апр 20 12:06:17 MSK 2021
;; XFR size: 8 records (messages 1, bytes 260)
; <<>> DiG 9.11.26-RedHat-9.11.26-3.el8 <<>> @ns1.localserver12.ru localserver12.ru axfr ; (1 server found) ;; global options: +cmd localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600 localserver12.ru. 3600 IN NS ns1.localserver12.ru. localserver12.ru. 3600 IN NS ns2.localserver12.ru. ns1.localserver12.ru. 3600 IN A 192.168.1.45 ns2.localserver12.ru. 3600 IN A 192.168.1.46 win7.localserver12.ru. 3600 IN A 192.168.1.50 www.localserver12.ru. 3600 IN A 192.168.1.50 localserver12.ru. 3600 IN SOA ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600 ;; Query time: 1 msec ;; SERVER: 192.168.1.45#53(192.168.1.45) ;; WHEN: Вт апр 20 12:06:17 MSK 2021 ;; XFR size: 8 records (messages 1, bytes 260)
; <<>> DiG 9.11.26-RedHat-9.11.26-3.el8 <<>> @ns1.localserver12.ru localserver12.ru axfr
; (1 server found)
;; global options: +cmd
localserver12.ru.       3600    IN      SOA     ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
localserver12.ru.       3600    IN      NS      ns1.localserver12.ru.
localserver12.ru.       3600    IN      NS      ns2.localserver12.ru.
ns1.localserver12.ru.   3600    IN      A       192.168.1.45
ns2.localserver12.ru.   3600    IN      A       192.168.1.46
win7.localserver12.ru.  3600    IN      A       192.168.1.50
www.localserver12.ru.   3600    IN      A       192.168.1.50
localserver12.ru.       3600    IN      SOA     ns1.localserver12.ru. admin.localserver12.ru. 20210419 3600 900 3600000 3600
;; Query time: 1 msec
;; SERVER: 192.168.1.45#53(192.168.1.45)
;; WHEN: Вт апр 20 12:06:17 MSK 2021
;; XFR size: 8 records (messages 1, bytes 260)

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

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

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

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