Сервер DNS

DNS является основным компонентом сетевой инфраструктуры, обеспечивающим преобразование доменных имен в IP-адреса и обратно. DNS является критическим элементом сетевой инфраструктуры, и его правильная настройка и управление играют важную роль в обеспечении работоспособности сетей.

В качестве сервера, реализующего DNS, в ОС используется сервер Bind.

Установка

Перед установкой сервера необходимо обновить Систему:

dnf --refresh distro-sync

Далее перейдем к установке сервера Bind, исполняемый файл которого называется named. Следует обратить внимание, что все конфигурационные файлы/сервисы будут называться с префиксом named*.

Далее для настройки DNS-сервера необходимо настроить параметр systemdresolved в файле /etc/systmd/resolved.conf.

Перед настройкой также следует запросить команду:

lsof -i :53

Исправить нужно следующие строки:

DNS=127.0.0.1
FallbackDNS=
DNSSEC=no
LLMNR=resolve
DNSStubListener=no

где:

  • DNS=127.0.0.1 – задает локальный IP-адрес, на котором будет работать будущий DNS-сервер;
  • FallbackDNS= – данный параметр оставить пустым, чтобы systemd-resolved не переключался на fallback DNS-сервера;
  • DNSSEC=no – отключает DNSSEC;
  • LLMNR=resolve – перевести LLMNR в режим resolve;
  • DNSStubListener=no – задать параметр no, чтобы systemd-resolved не прослушивал порт 53.

Остальные опции в этом файле следует оставить как есть и произвести перезапуск systemd-resolved:

systemctl restart systemd-resolved

После запуска вновь требуется запросить команду (вывод команды должен быть пустой):

lsof -i :53

Если вывод действительно пустой, значит всё сделано корректно и можно приступать к настройке и запуску bind.

Настройка

Основной конфигурационный файл сервиса bind – named.conf.

Для настройки нужно выполнить следующие действия:

  1. открыть конфигурационный файл named.conf и для минимальной работы DNS-сервера исправить следующие строки:
options {
listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; . . . . .
allow-query { any; };

где:

  • listen-on port 53 { any; }; – задать параметр any для прослушивания на всех IPv4 хоста;
  • listen-on-v6 port 53 { any; }; – задать параметр any для прослушивания на всех IPv6 хоста;
  • allow-query { any; }; – разрешить любые запросы к серверу.
  1. запустить bind:
systemctl start named.service
  1. проверить, какие службы прослушивают порт 53:
lsof -i :53

Если в выводе прописан параметр named, то все настроено правильно.

  1. проверить работу DNS-сервера с помощью команды, например с адресом yandex.ru:
dig @127.0.0.1 yandex.ru

или

nslookup yandex.ru

Должны быть выведены IP-адреса yandex.ru.

  1. включить DNS-сервис в автозагрузку:
systemctl enable named.service

Переадресация

Чтобы настроить bind для переадресации (forward) запросов к другим DNS-серверам нужно выполнить следующие шаги:

  1. открыть конфигурационный файл named.conf и для минимальной работы DNS-сервера исправить следующие строки:
options {
. . . . .
recursion yes; . . . . .
forward only; forwarders {
77.88.8.8;
77.88.8.1;
};

где:

  • forward – режим перенаправления:
    • forward only – все запросы на настраиваемый DNS-сервер будут перенаправляться на другие DNS-сервера, прописанные в следующей опции "forwarders {}";
    • forward first – все запросы на настраиваемый DNS-сервер будут перенаправляться на другие DNS-сервера, прописанные в следующей опции "forwarders {}", и если с помощью них не удастся разрешить запрос, то запрос будет пытаться разрешаться настраиваемым DNS-сервером локально;
  • forwarders { 77.88.8.8; 77.88.8.1; } – список DNS-серверов, для перенаправления запросов.
  1. запустить DNS-сервер:
systemctl start named.service

В результате DNS-сервер будет настроен для минимальной работы.