Ubuntu установка dns сервера. Установка и настройка DNS на Ubuntu Server

Блог Элмора…

Все установки пакетов и редактирование файлов конфигурации производятся с правами суперпользователя.

Права суперпользователя действуют до следующей перезагрузки.

1. Исходные настройки сети.

Диапазон: 192.168.0.1/255.255.255.0
Спектр DHCP: 192.168.0.101 — 192.168.0.199
Основной шлюз: 192.168.0.1
Наружные DNS-сервера: 8.8.8.8, 8.8.4.4, 204.194.232.200, 204.194.234.200
Имя нашего сервера: ns1
Статический IP-адрес сервера: 192.168.0.2
Имя домена: team.local

2. Установка bind9 и dhcp3-server

Команды для установки:

apt-getinstall dhcp3-server

3. Создание секретного ключа

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

dnssec-keygen-aHMAC-MD5-b128-r/dev/urandom-nUSER DHCP_UPDATER

После завершения команды в текущем каталоге покажутся два файла один с расширением .key , иной .private .
В тексте этих файлов содержится скрытый ключ вида:

Он нам и пригодиться в дальнейшем.

4. Настройка сетевого соединения со статическим IP

Внесите конфигурации в файл /etc/network/interfaces. Статический, агрессивно прописанный адресок, нужен хотя бы для того, чтоб сервис dhcp стартовал при перезапуске сервера. По другому, не увидев поднятых интерфейсов во время перезапуска, dhcp не запустится.

        address192.168.0.2
        #hwaddress ether 00:01:2e:2c:d6:70
        netmask255.255.255.0
        network192.168.0.0
        broadcast192.168.0.255
        gateway192.168.0.1
        dns-nameservers192.168.0.2
# The secondary network interface
#        address 192.168.0.12
#        #hwaddress ether 00:25:d3:f0:c2:92
#        netmask 255.255.255.0
#        gateway 192.168.0.1

Адрес DNS сервера можно задать в файле /etc/network/interfaces , но вообщем управление адресами DNS серверов в Ubuntu осуществляется через файл /etc/resolv.conf. Принципиально не запамятовать его поправить. Он должен иметь вид:

        domain team.local
        search team.local
        nameserver127.0.0.1

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

/etc/init.d/networking restart

5. Настраиваем BIND9

Файлы конфигурации лежат в каталоге: /etc/bind
Нам необходимо отредактировать два файла: named.conf.options и named.conf.local
Правим named.conf.options:

        forwarders{
                8.8.8.8;
                8.8.4.4;
                204.194.232.200;
                204.194.234.200;
        };
        listen-on{
                127.0.0.1;
                192.168.0.2;
        };

Этим мы указываем серверу куда передавать неизвестные нам имена «на опознание» и по каким адресам «слушать» DNS-запросы клиентов нашей сети.
Файл named.conf.local правится дальше по тексту.

Читайте также  Интеркросс icxeth5670ne прошивка. Настройка WiFi роутера Интеркросс ICxETH5670NE

6. Создание прямой и обратной зоны для сети

Создаём файлы прямой и обратной зоны для нашей локальной сети.
Файлы наших локальных зон должны лежать в директории: /var/lib/bind.
Ежели поместить эти файлы в папку /etc/bind, где уже лежат файлы описания корневых зон,то обновление записей для локальных зон производиться не будет, так-как локальная группа [bind] по умолчанию не имеет права на запись в эту директорию.
Итак, в папке /var/lib/bind создаём файл для прямой зоны, назовём его например: forward.bind. Файл употребляется DNS-сервером для преобразования имени компов локальной сети в ip-адрес.
forward.bind

$TTL86400      ;       1day
team.local.    IN      SOA      ns1.team.local.admin.team.local.(
                                20110103        ;Serial
                                10800           ;Refresh
                                3600            ;Retry
                                604800          ;Expire
                                86400           ;Minimum TTL
                        )
                IN      NS      ns1.team.local.
                IN      A       192.168.0.2
localhost       IN      A       127.0.0.1
ns1             IN      A       192.168.0.2
gw              IN      A       192.168.0.1
eagle           IN      A       192.168.0.12
storage         IN      A       192.168.0.13
media           IN      A       192.168.0.14
crow            IN      A       192.168.0.200
HP              IN      A       192.168.0.211
www             IN      CNAME   @

В крайних строках содержаться записи о серверах и устройствах нашей локальной сети, имеющих статические адреса, но вообщем непременно необходимо прописать лишь DNS-сервер. Заблаговременно скажу, что аккуратненько оформлять все не непременно т.к. сервис DHCP все равно все перестроит.
Создаём файл для обратной зоны, назовём его : reverse.bind. Файл употребляется DNS-сервером для преобразования ip-адреса компов локальной сети в доменное имя.
reverse.bind

$TTL86400      ;       1day
0.168.192.in-addr.arpa.INSOA ns1.team.local.admin.team.local.(
                        20110104        ;Serial
                        10800           ;Refresh
                        3600            ;Retry
                        604800          ;Expire
                        3600)          ;Minimum
        IN      NS      ns1.team.local.
1       IN      PTR     gw.team.local.
2       IN      PTR     team.local.
2       IN      PTR     ns1.team.local.
12      IN      PTR     eagle.team.local.
13      IN      PTR     storage.team.local.
14      IN      PTR     media.team.local.
200     IN      PTR     crow.team.local.
211     IN      PTR     HP.team.local.

Последние строчки, так-же содержат данные о серверах и устройствах нашей локальной сети, для которых выделены статические адреса.

7. Правка name.conf.local

Возвращаемся в директорию /etc/bind и правим файл name.conf.local
name.conf.local

        algorithm HMAC-MD5.SIG-ALG.REG.INT;
        secret mdgG4pTKI9sqqXUCAicNcA==;
        typemaster;
        file”/var/lib/bind/forward.bind”;
        allow-update{key DHCP_UPDATER;};
zone”0.168.192.in-addr.arpa”IN{
        typemaster;
        file”/var/lib/bind/reverse.bind”;
        allow-update{key DHCP_UPDATER;};

Вот тут нам и пригодился сделанный ранее секретный ключ
На этом настройка DNS-сервера закончена, можно перезагрузить BIND.

Читайте также  Исчезли все контакты с сим карты. Пропали контакты на телефоне: что делать и как этого избежать
/etc/init.d/bind9 restart

Если при перезагрузки bind9 не ругается — проверяем работу нашего DNS-сервера:

В ответ получаем:

;<<>>DiG9.7.1-P2<<>>ns1
;;->>HEADER<<-opcode:QUERY,status:NXDOMAIN,id:34684
;;flags:qr rd ra;QUERY:1,ANSWER

Настройка DNS на Ubuntu Server 18.04 LTS

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

При изменении сетевой конфигурации, запуске и остановке действий, неким програмкам нужно динамически изменять файл . При одновременном доступе программы мешают друг другу и сохраняют неправильную информацию в файл. Утилита действует как посредник меж програмками, которые предоставляют информацию о сервере имен, и програмками, которые употребляют информацию о сервере имен.

При этом файл заменяется символической ссылкой на и программы употребляют динамически сгенерированный файл. В системе без службы файл поддерживается вручную либо набором скриптов. И эти скрипты могут мешать друг другу при попытках одновременного доступа к файлу.

Всё работало отлично, пока не возникли NetworkManager и Systemd. Система инициализации Systemd имеет собственный свой резолвер , запущенный по умолчанию и требующий отдельной опции. А NetworkManager пробует дружить со всеми — с , с , с более распространёнными DNS-резолверами.

Всё это привело к тому, что сейчас в одной системе порт 53 может слушать несколько различных резолверов, причём для избежания конфликтов и употребляют заместо остальные ip-адреса в loopback-сети:

  • — либо с опциями по умолчанию
  • — либо , запущенный NetworkManager
  • — , запущенный по умолчанию

Настройка службы systemd-resolved

В Ubuntu Server эта служба уже установлена и запущена сходу опосля установки операционной системы. Но ежели это не так, установить ее несложно:

#apt install systemd-resolved

Последующим шагом будет правка файла — находим строчку, которая начинается с :

Читайте также  Как включить ножницы на клавиатуре. Использование приложения «Ножницы» для создания скриншотов

#nano /etc/nsswitch.confpasswd: compat systemd group: compat systemd shadow: compat gshadow: files hosts: files resolve dns networks: files protocols: db files services: db files ethers: db files rpc: db files netgroup: nis

Эта строчка отвечает за последовательность обращений приложения к системным компонентам с целью резолвинга доменного имени. В данном случае поначалу программа заглянет в файл , потом обратиться к бесу , а позже — к DNS серверам.

Осталось сказать ip-адреса DNS-серверов, к которым следует обращаться для резолвинга:

#nano /etc/systemd/resolved.conf[Resolve]# сервера DNS от CloudflareDNS=1.1.1.1 1.0.0.1 #FallbackDNS=#Domains=#LLMNR=no#MulticastDNS=no#DNSSEC=no#Cache=yes#DNSStubListener=yes

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

#ln -svi /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

В файле указан один-единственный сервер :

$cat /run/systemd/resolve/stub-resolv.confnameserver 127.0.0.53 option edns0

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

#ln -svi /run/systemd/resolve/resolv.conf /etc/resolv.conf$cat /run/systemd/resolve/stub-resolv.confnameserver 1.1.1.1 # из файла конфигурации /etc/systemd/resolved.conf nameserver 1.0.0.1 # из файла конфигурации /etc/systemd/resolved.conf nameserver 8.8.8.8 # этот DNS-сервер получен от DHCP-сервера сети# Too many DNS servers configured, the following entries may be ignored. nameserver 8.8.4.4 # этот DNS-сервер получен от DHCP-сервера сети

Как видите, у меня DNS-серверов вышло очень много, так что крайняя запись может быть проигнорирована. Все готово, остается лишь разрешить пуск службы при загрузке системы, ежели это еще не было сделано:

#systemdctl enable systemd-resolved#reboot

Настройка службы resolvconf.service

Служба предоставляет остальным програмкам централизованный интерфейс для прибавления и удаления записей в при изменении сетевой конфигурации, запуске и остановке действий и т.д.

#apt install resolvconf

Опосля установки будет представлять из себя ссылку на .

$cat /etc/resolv.confnameserver 127.

Оставьте комментарий