В состав репозитория РЕД ОС включен DNS-сервер bind, поддерживающий стандарты RFC 1034,1035, 2136. Поддерживает реализацию хост-систем на базе стека протоколов Internet, описанных в RFC 1123. Поддерживает механизм инкрементального переноса зон IXFR, описанный в RFC 1995 и механизм извещения ведомых серверов NOTIFY, RFC 1996.
Подготовка
Устанавливаем bind:
sudo dnf update dnf install bind -y
Открываем файл настройки и редактируем следующее в блоке options:
nano /etc/named.conf
listen-on port 53 { 127.0.0.1; 192.168.0.0; };
listen-on-v6 port 53 { none; };
allow-query { any; };
forward first;
forwarders { 8.8.8.8; };

* 192.168.0.0 — IP-адрес нашего DNS-сервера, на котором он будет принимать запросы;
listen-on-v6 port 53 присвоим значение none, тем самым отключив ipv6
allow-query разрешает выполнять запросы всем, но из соображений безопасности можно ограничить доступ для конкретной сети, например, вместо any написать 10.10.1.0/24.
forward с параметром first указывает, DNS-серверу пытаться разрешать имена с помощью DNS-серверов, указанных в параметре forwarders, и лишь в случае, если разрешить имя с помощью данных серверов не удалось, то будет осуществлять попытки разрешения имени самостоятельно.
forwarders перенаправляем запросы, которые сами не резолвим, на днс сервер гугла.

В нижней части файла добавьте следующее:
#Пример конфига зоны для файла named.conf
zone "example.org" {
type master;
file "master/example.org";
};
Настройка зон:
Создаём директорию и копируем шаблоны:
mkdir /var/named/master
cp /var/named/named.localhost /var/named/master/(название вашей прямой зоны)
cp /var/named/named.loopback /var/named/master/(название вашей обратной зоны)
chown -R root:named /var/named/master/
chown -R named:named /var/named
chown -R root:named /etc/named.conf
chmod 750 /var/named/
chmod 750 /var/named/master/
Прямая DNS зона
$TTL 604800 ;
example.org. IN SOA ns01.example.org. root.example.org. (
1 ; Serial
600 ; Refresh
3600 ; Retry
1w ; Expire
360 ; Minimum TTL
)
IN NS ns01.example.org.
IN NS ns02.example.org.
IN NS ns03.example.org.
ns01 IN A 192.168.10.50
ns02 IN A 192.168.10.60
ns03 IN A 192.168.10.70
www IN A 192.168.10.20
test IN A 192.168.10.12
Пример файла прямой зоны:

$TTL 604800 — время жизни (Time to Live, TTL) для всех записей зоны. Значение 604800 секунд означает, что кэшированные данные будут храниться 7 дней. По достижении установленного времени, кеширующий сервер запрашивает DNS-сервер, содержащий доменную зону, информацию о зоне. И при необходимости обновляет записи;
SOA (Start of Authority) — запись SOA определяет авторитетную информацию о зоне DNS;
ns01.example.org.— первичный DNS-сервер для этой зоны;
root.example.org.— адрес электронной почты администратора зоны;
1; Serial — серийный номер зоны, который увеличивается при каждом изменении записи;
600; Refresh — указывает подчиненным DNS-серверам как часто им обращаться, для поиска изменений к master-серверу (600 секунд);
3600; Retry— интервал повторной попытки запроса изменений после неудачной попытки обновления (1 час);
1w; Expire— срок жизни зоны на вторичном сервере (1 неделя). Если зона не обновляется в течение этого срока, она считается недействительной;
360; Minimum TTL — минимальный TTL для записей, которые не имеют явного значения TTL (6 минут);
NS ns01.example.org. — первый DNS-сервер;
NS ns02.example.org. — второй DNS-сервер;
NS ns03.example.org. — третий DNS-сервер;
A-записи — эти записи связывают имена хостов с IP-адресами;
ns01 IN A 192.168.10.50— имя хоста ns01 привязано к IP-адресу 192.168.10.50;
ns02 IN A 192.168.10.60— имя хоста ns02 привязано к IP-адресу 192.168.10.60;
ns03 IN A 192.168.10.70— имя хоста ns03 привязано к IP-адресу 192.168.10.70;
test IN A 192.168.10.12 — тестовый хост test имеет IP-адрес 192.168.10.12.
Обратная DNS зона
$TTL 3600
@ IN SOA example.org. root.example.org (
20060204 ; Serial
3600 ; Refresh
900 ; Retry
3600000 ; Expire
3600 ) ; Minimum
@ IN NS localhost.
50 IN PTR ns01
60 IN PTR ns02
70 IN PTR ns03
20 IN PTR www
12 IN PTR test
Пример файла обратной зоны:

Запуск сервиса:
systemctl enable --now namedsystemctl status named named-checkconf -z
Для полной работоспособности на всех устройствах нужно установить в качестве dns сервера наш сервер bind:
nano /etc/resolv.conf на всех устройствах должен иметь следующий вид:

resolvectl dns ens3 192.168.0.2
Для полной работоспособности на роутерах необходимо установить ваш сервер bind в качестве DNS-сервера:
ip name-server 192.168.0.2