- Установка и настройка DNS + DHCP с динамическим обновлением зон в Ubuntu 16.04
- Apr 6, 2017 13:56 · 719 words · 4 minute read dns dhcp
- Lazy Geek -:)
- Configure the DHCP server dynamically update the DNS records on Ubuntu 12.04LTS
- Настройка DNS сервера Ubuntu Server
- Содержание статьи:
- Настройка кеширующего DNS сервера
- Создание зон прямого и обратного просмотра
- Настройка динамического обновления зон DHCP сервером
Установка и настройка DNS + DHCP с динамическим обновлением зон в Ubuntu 16.04
Apr 6, 2017 13:56 · 719 words · 4 minute read dns dhcp
Даже в небольших организациях для упрощения администрирования локальной сети необходимы один или несколько DNS (Domain Name System — система доменных имён) и DHCP (Dynamic Host Configuration Protocol — протокол динамической настройки узла) серверов.
Давайте рассмотрим процесс установки DNS и DHCP серверов, а также разберемся с настройкой динамического обновления DNS-зон в операционной системе Ubuntu 16.04!
Установка DNS-сервера выполняется командой:
DHCP-сервер устанавливаем следующим образом:
Редактируем конфигурационный файл /etc/bind/named.conf.options и приводим его к следующему виду:
Здесь важными являются директивы forwarders (вышестоящие DNS-сервера, на которые будет переадресован запрос при отсутствии информации о хосте на локальном сервере) и listen-on (с каких сетей или IP адресов локальный DNS-сервер будет обслуживать запросы).
Далее создадим файлы зон (прямого и обратного просмотра) и добавить их в конфигурацию DNS-сервера. По умолчанию предлагается создавать файлы зон в каталоге /etc/bind/zones/ , но в будущем это вызовет проблемы с их динамическим обновлением, поэтому мы будем создавать файлы зон в папке /var/lib/bind/ .
Исходные данные для создания зон:
- имя домена — lc ;
- имя DNS-сервера — ns.lc ;
- ip-адрес DNS-сервера — 192.168.0.218 .
Создаем файл зоны прямого просмотра:
Содержимое файла следующее:
Создаем файл зоны обратного просмотра:
Содержимое файла выглядит следующим образом:
Добавляем ссылки на только что созданные зоны в конфигурационный файл /etc/bind/named.conf.local :
Здесь именно благодаря строке allow-update < key rndc-key; >; будет возможно динамическое обновление зон.
Можно просмотреть содержимое файла rndc-key :
Теперь проверим правильность синтаксиса конфигурационных файлов DNS-сервера:
Если все выполнено правильно, то вывод этой команды должен быть пуст.
Перезапускаем DNS-сервер командой:
Далее приступаем к настройке DHCP-сервера, приводим конфигурационный файл /etc/dhcp/dhcpd.conf к следующему виду:
Для применения изменений перезапускаем службу DHCP:
Теперь, при появлении нового компьютера в локальной сети, DHCP-сервер выдаст ему свободный ip-адрес из определенного диапазона и обновит DNS-зоны (при этом в каталоге с зонами также будут созданы два файла с расширением .jnl ).
Если бы мы создавали файлы зон в каталоге по умолчанию ( /etc/bind/zones/ ), то столкнулись бы со следующими ошибками в логах:
На этом все, установка и настройка DNS и DHCP серверов с динамическим обновлением зон в Ubuntu 16.04 закончена.
Lazy Geek -:)
Configure the DHCP server dynamically update the DNS records on Ubuntu 12.04LTS
This tutorial is based on Ubuntu 12.04 LTS, in which I will try to show you that how to configure the DHCP server automatically update the DNS records, when it assigns a new lease to a client on local network. We will use the below network diagram as a base for this tutorial:
Before Starting this tutorial:
Before starting this tutorial, you can check my other tutorials to learn that, how i configure DHCP server and Gateway:
Network Configuration for the Ubuntu Gateway:
Configure the DNS:
Install the DNS (bind9) using this command:
Also edit the hosts settings so that the server will be able to accepts the DNS requests. Here is an example of my server’s host file:
Move to the bind directory:
Next, we need to configure the forwards for bind, I am using Google’s DNS servers as an example:
Now we create a secret key that will be shared between the DHCP server and the DNS:
Show the generated key:
Edit the named.conf.local file in /etc/bind/ directory:
Define the locations of the forward and reverse zone files as well as the secret shared key here:
Move to the /var/lib/bind/ directory:
Create the forward zone file for your doamin:
Replace the tendo.local with your domain name. Here’s an example of my forward zone file:
Every time you make the changes to the zone file, you need to change the serial before reloading the bind.
Next, create the reverse zone file for your doamin:
Here is my reverse zone file, replace the hosts and domain name with your own that match with the forward zone file just created above:
Restart the bind service:
Configure the DHCP server to send updates to the DNS:
Add the secret key that we created on our dns server in the dhcpd.conf file and other option, some of the main configurations are mentioned below:
For given subnet, we need to define the zones and within the zones, we need to tell the DHCP server which key to use to update the DNS server:
Here is a DHCP scope that will be used to assign the IP configuration to the clients:
Restart the dhcp service:
Once again, restart the bind service on DNS server :
Check the log messages on both dns and dhcp servers:
DHCP server successfully add the client to the forward and reverse zone.
DNS server accept the secret key and update it’s forward and reverse zone.
Verification on dhcp client:
Troubleshooting:
I found some really nice troubleshooting steps regarding dhcp and dns server here (Thanks to original author) :
Настройка DNS сервера Ubuntu Server
Содержание статьи:
Настройка кеширующего DNS сервера
Устанавливаем службу DNS сервера Bind9, командой:
При установке сервера Bind9 система может потребовать от вас вписать свое согласие Yes, а не просто нажать кнопку Y.
Генерируем ключ для обновления DNS записей, следующей командой:
Показать этот ключ можно командой:
Отобразится ключ вида вида sWAQagEOVTtRQpCekhNsJQ==, данный ключ понадобится нам позже. Либо скопируйте данный ключ, либо запомните команду отображения ключа.
Ununtu Server: Установка DNS сервера Bind9 и генерация ключа обновления записей
Открываем файл конфигурации Bind9, командой:
Именно в этом файле прописываются внешние DNS сервера, к которым будет обращаться наш локальный сервер.
forwarders — вы можете установить сервера своего провайдера, или DNS сервера компании Google (8.8.8.8 и 8.8.4.4. в некоторых случаях они работают стабильней или снимают ограничения вашего провайдера) .
Так как я настраиваю сервер школы, я буду использовать «семейные» DNS сервера компании Яндекс (об этом сервисе для домашних пользователей, я уже упоминал).
Это будет самым первым уровнем защиты и первым фильтром контента школы.
listen-on — адреса через которые будет обслуживаться наш DNS сервер.
Закомментируем строку dnssec-validation auto.
Перед последней закрывающей скобкой в файле конфигурации Bind9 вставляем следующий текст:
Ununtu Server: Конфигурирование DNS сервера используя Яндекс DNS
Перезапускаем службу DNS, командой:
Далее требуется ввести изменения в системный файл конфигурации resolv.conf, но так как значения этого файла берется из другого, вносим изменения в изначальный файл, командой:
Вносим в него следующие значения, для нашей сети.
domain school.loc
search school.loc
nameserver 127.0.0.1
Ubuntu Server: Настройка DNS сервера, файл resolv.conf
Сохраняем и закрываем файл. Перезагружаем DNS сервер, командой:
Проверяем работу нашего DNS сервера, командой:
После чего повторно вводим эту же команду:
Нас интересует поле Query time (Время запроса) обеих команд, если время выполнения второго запроса уменьшилось, значит наш DNS сервер работает нормально.
Ubuntu Server: Проверка командой dig работы DNS сервиса
Для проверок используйте менее популярные домены, чем mail.ru, ya.ru, google.com.
Перезагрузите сервер (команда reboot) и выполните проверку еще раз (необязательно, но поможет диагностировать на каком этапе настройки появилась ошибка)
Создание зон прямого и обратного просмотра
Указываем зоны прямого и обратного просмотра и прописываем их в файле конфигурации.
Создаем зону прямого просмотра.
Копируем образец файла по адресу /etc/bind/ db.local в наше расположение, одновременно переименовывая его в /var/lib/bind / prime_zone :
и открываем его:
Изменяем файл, приводя к следующему виду, не забывая вставлять свои значения (если название сервера, домена и IP адресация отличается от моего примера):
Ubuntu Server: Файл конфигурации зоны прямого просмотра
Внимание: Linux очень «нежная» ОС, пропущенная или удаленная точка в файле конфигурации, приведет к ошибкам.
Создаем зону обратного просмотра.
Так же копированием и переименованием файла образца, командой:
Приводим файл к виду:
Ubuntu Server: Файл конфигурации зоны обратного просмотра
Внимание: Любой файл зоны, должен оканчиваться пустой строкой.
В файле конфигурации Bind9 указываем зоны просмотра (используемый мною в этом примере ключ, отличается от созданного в начале статьи, ваш отличаться не должен) :
Где:
secret — указываем ключ обновления DNS записей, созданный ранее
zone « school.loc « — название вашего домена с указанием пути до файла конфигурации зоны прямого просмотра
zone « 137.168.192 .in-addr.arpa» — зона обратного просмотра (обратите внимание, адресация указывается «задом наперёд») с указанием пути до файла конфигурации зоны.
Перезапускаем службу Bing9 сервер, командой:
Проверяем работу созданных зон, зоны прямого просмотра (преобразования имен):
Если зона настроена правильно, то будет отображен следующий результат:
Ubuntu Server: Правильная работа зоны прямого просмотра
И проверяем зону обратного просмотра:
Если обратная зона настроена правильно, то будет отображен следующий результат:
Ubuntu Server: Правильная работа зоны обратного просмотра
DNS сервер — настроен.
Дополнительно и полезно:
named-checkzone school.loc /var/lib/bind/ prime_zone — проверка корректности работы зоны прямого просмотра;
named-checkzone 137.168.192 .in-addr.arpa /var/lib/bind/ reverse_zone — проверка корректности работы зоны обратного просмотра;
Поиск проблем в Bind9: После попытки рестарта сервиса командой sudo /etc/init.d/bind9 restart , выполните команду tail /var/log/syslog для просмотра возможных ошибок;
Команды службы Bing:
- sudo service bind9 start — запуск службы
- sudo service bind9 stop — остановка службы
- sudo service bind9 status — статус службы (с выводом имеющихся ошибок)
- sudo service bind9 restart — перезапуск службы
Настройка динамического обновления зон DHCP сервером
Настроим автоматизацию создания прямых и обратных зон DNS для клиентов, с помощью DHCP.
Открываем конфигурационный файл DHCP, командой:
Закомментируем в файле строку:
#ddns-update-style none;
Добавляем в наш конфигурационный файл следующие строки:
ddns-update-style interim;
update-static-leases on;
key DHCP_UPDATER <
algorithm hmac-md5;
secret « c0fLwUnt918/w5F+a1xrqQ== «;
>
zone school.loc . <
primary 127.0.0.1;
key DHCP_UPDATER;
>
zone 137.168.192 .in-addr.arpa. <
primary 127.0.0.1;
key DHCP_UPDATER;
>
Перезапускаем службы DNS и DHCP:
С клиентского ПК с названием teacher проверим работу прямой и обратной зоны, командами nslookup:
Ubuntu Server: Проверка корректной работы зоны прямого и обратного просмотра с клиентского ПК
Если получен отклик, как на скриншоте, то на этом эту часть настройки Ubuntu Server будем считать законченной.
Переходим к следующей части настройки Ubuntu Server — Настройка интернет шлюза на Ubuntu Server.
Большинство «не работает» вызвано невнимательностью! Внимательно проверяйте команды и не допускайте в файлах конфигурации лишних символов.
[nx_heading style=»coloredline» heading_tag=»h4″ size=»24″ align=»left»]От автора:[/nx_heading]
Если проблема решена, один из способов сказать «Спасибо» автору — здесь.
Если же проблему разрешить не удалось и появились дополнительные вопросы, задать их можно на нашем форуме, в специальном разделе.