Установка и настройка DNS в Ubuntu

Установка и настройка DNS в Ubuntu

Для тех, кто не знает, что DNS представляет собой систему доменных имён, которая служит для преобразования имени в IP-адрес ПК и обратно. Таким образом, когда вы вводите адрес веб-страницы в браузере, система доменных имён преобразует его в IP-адрес хостинга, на котором располагается конкретный домен. В этой статье детально разберём, как установить и настроить DNS-сервер Ubuntu. Давайте же начнём. Поехали!

Из нашей статьи вы точно узнаете, как установить и настроить DNS-сервер Ubuntu правильно

Первый этап

Первый этап — установка. Рекомендуется использовать сервер Bind9. Для этого перейдите в терминал и введите:

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

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER

для вывода ключа на экран нужно ввести

Его обязательно нужно сохранить, так как в дальнейшем secret key вам понадобится.

Чтобы воспользоваться уже имеющимся ключом, добавьте в /etc/bind/named.conf запись. Сперва необходимо выполнить:

а после добавить в файл строку:

Настройка Bind9

Теперь перейдём к настройке Bind9. Откройте файл конфигурации, прописав в терминале:

и добавьте туда следующие строки:

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

listen-on — адреса, через которые будет обслуживаться ваш DNS-сервер.

Перезапуск bind9

Далее необходимо перезапустить bind9. Для этого пропишите в терминале:

Теперь укажите зоны прямого и обратного просмотра, а также введите их в конфигурации bind9. Исходные данные следующие:

Доменное имя — dom
IP-адрес сервера — 192.168.0.1
Имя сервера — ns.dom

Чтобы настроить зону прямого просмотра, создайте соответствующий файл и скопируйте его образец:

sudo cp /etc/bind/db.local /var/lib/bind/db.dom

далее отройте командой:

и отредактируйте следующим образом:

$ORIGIN .
$TTL 604800 ; 1 week
dom IN SOA ns.dom. root.ns.dom. (
201605277 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
@ IN NS ns.dom.
@ IN A 192.168.0.1
@ IN AAAA ::1
$ORIGIN dom.
$TTL 604800 ; 1 week
ns IN A 192.168.0.1

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

sudo cp /var/lib/bind/db.dom /var/lib/bind/db.192.dom

открываете его командой:

и также редактируете:

$ORIGIN .
$TTL 604800 ; 1 week
0.168.192.in-addr.arpa IN SOA ns.dom. root.ns.dom. (
2016052655 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
@ IN NS ns.
$ORIGIN 0.168.192.in-addr.arpa.
$TTL 604800 ; 1 week
1 IN PTR ns.dom.

Чтобы настроить зоны в конфигурации bind9, нужно открыть файл конфигурации командой:

а дальше появляется снова два варианта развития событий. Если вы создавали secret key первым способом, пропишите:

key DHCP_UPDATER <
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret «9DxMmNw7J813qviXajG7rQ==»;
>;

// зона прямого просмотра

// зона обратного просмотра

key DHCP_UPDATER — информация о secret key, который вы записывали в самом начале (его необходимо прописывать в кавычках). Если ранее, вы воспользовались вторым способом, введите:

// зона прямого просмотра

// зона обратного просмотра

где key rndc-key — данные ключа, взятые из системы, а zone «dom» — данные о зоне применения системы доменных имён. Остаётся сохранить всё это дело, затем закрыть и перезапустить bind9, введя:

sudo /etc/init.d/bind9 restart

Проверка работы системы доменных имён

Теперь проверьте работу системы доменных имён:

в результате вы должны получить нечто вроде:

Как вы можете убедиться, зона прямого просмотра работает. Теперь удостоверьтесь, что также работает и обратная:

В результате вы должны увидеть:

Server: 127.0.0.1
Address: 127.0.0.1#53
1.0.168.192.in-addr.arpa name = ns.dom.

В итоге вы должны получить имя сервера, введя его IP. Если у вас всё отображается подобным образом, значит, настройка была произведена верно. Если же нет, значит, ранее была допущена ошибка.

Настройка динамического обновления

Чтобы настроить динамическое обновление, откройте /etc/dhcp/dhcpd.conf, выполнив команду:

Строку ddns-update-style none нужно заменить на ddns-update-style interim. Далее добавьте строку update-static-leases on, которая отвечает за создание зон для клиентов со статичным IP. Убедитесь, что в option domain-name содержится название домена «dom». В строке «key» должно быть название вашего ключа (если вы ранее выбирали первый способ, пропишите DHCP_UPDATER, если второй, то rndc-key), содержит ваш секретный ключ. Чтобы посмотреть rndc-key выполните:

в результате должно получиться нечто подобное:

На этом с настройками DHCP всё. Теперь необходимо перезапустить bind9 и dhcp. Для этого пропишите:

sudo service bind9 restart
sudo service isc-dhcp-server restart

Остаётся проверить как всё работает. Запустите клиентскую машину, находящуюся в сети с сервером. После запуска машина получит IP от DHCP, а он, в свою очередь, создаст запись типа client-pc.dom. По запросу «nslookup имя_клиентской_машины», вы должны получить ответ. Перезапустив server, можно будет посмотреть файлы прямого и обратного просмотра. Если на предыдущих этапах вы всё настроили правильно, там вы увидите информацию о новых машинах. Готово. Настройка завершена.

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

Установка и настройка bind на Ubuntu

Для примера, используется Ubuntu Server 16.04 LTS. Инструкция во многом подойдет для дистрибутивов Linux, основанных на Debian.

Подготовка системы

Если в системе настроен брандмауэр, добавляем правило на разрешение входящих пакетов на 53 UDP-порт:

iptables -I INPUT 1 -p udp —dport 53 -j ACCEPT

* данной командой мы вставляем первое правило на разрешение 53 порта по протоколу UDP.

Установка и запуск

Устанавливаем DNS-сервер следующей командой:

apt-get install bind9 dnsutils

Добавляем сервис в автозапуск:

systemctl enable bind9

* или для старых систем, где нет systemd update-rc.d bind9 defaults.

systemctl start bind9

* или service bind9 start.

Проверяем, что сервис работает:

nslookup dmosk.ru 127.0.0.1

Получаем, что-то на подобие:

Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
Name: dmosk.ru
Address: 90.156.242.197

Базовая настройка

Основной конфигурационный файл находится по пути /etc/bind/named.conf. В последних версиях bind в нем ничего не настраивается, а используются подключаемые файлы.

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

И добавляем строку:

* в данном примере будут разрешены запросы для всех клиентов (внутренних и внешних). Вместо any можно прописать конкретные сети или IP-адреса.

Если необходимо настроить сервер только для локальной сети, настройка будет следующей:

* где 192.168.0.0/24 — используемая локальная сеть.

Если необходимо перенаправлять запросы на определенный сервер DNS, добавляем строку:

* в данном примере запросы будут перенаправляться на сервер 77.88.8.8 и если они не будут обработаны — на 8.8.8.8.

systemctl restart bind9

* или service bind9 restart.

На этом базовая настройка закончена. Наш сервер готов принимать и отдавать запросы и работать, как кэширующий dns.

Проверить его работу можно с удаленного компьютера Windows или Linux командой:

nslookup ubuntu.com 192.168.0.15

* где 192.168.0.15 — адрес сервера в локальной сети.

Создание и настройка зон

Если необходимо, чтобы bind разрешал записи для собственного домена, необходимо создать соответствующую зону.

Установка и настройка DNS сервера Ubuntu 14.04.1 LTS

Сегодня продолжим цикл статей по настройке сервера и рассмотрим что же из себя представляет настройка DNS сервера Ubuntu. У нас уже есть сервер на базе ubuntu 14.04.1 LTS, на нем настроен DHCP сервер. Сегодня мы туда добавим еще и службу DNS.

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

И так что мы имеем… Установленная ОС Ubuntu Server 14.04.1 LTS, настроенный DHCP сервер. Из ПО только mc.

Установка и настройка DNS сервера Ubuntu

Для начала нужно установить самые последние обновления системы

После этого установим службу DNS сервера Bind9

после установки службы, она автоматически запуститьсяСледующим шагом, генерируем ключ для обновления DNS записей

выводим его на экран

на экране вы должны увидеть ключ, что то подобно этому:

Key : 4GD8OIb8pZk4vAueACAfUQ==

Обязательно сохраните этот ключ, в последующей настройке он нам понадобится

Настраиваем DNS сервер Bind9

Открываем файл конфигурации

Добавим следующий код:

  • forwaders – вышестоящий dns сервер (сервер гугла), используется если url запроса не найден в нашей базе.
  • listen-on – адреса через которые будет обслуживаться наш DNS сервер.

Сохраняем (Ctrl+O) и закрываем (Ctrl+X) файл.

Перезапустим bind9

Теперь можно протестировать работу нашего DNS сервера

Добавим в фал /etc/resolv.conf строчку с нашим DNS сервером (так как файл /etc/resolv.conf при перезагрузке меняет значения на дефолтные, добавить запись нужно в тот файл из которого будут браться дефолтные значения)

в этот файл пишем следующее:

Сохраняем файл, закрываем его и перезагружаем сервер. После перезагрузки протестируем работу сервера, выполните следующую команду:

в ответ вы получите ответ с временем выполнения запроса (выделено цветом)

Как видите запрос был выполнен за 284 мсек. Теперь еще раз выполним этот же запрос и проверим время запроса

Повторный запрос был выполнен за 7 мсек! Отлично! Кэширование запросов работает. Двигаемся дальше.

Настройка основного DNS сервера

  • Доменное имя – lab.loc
  • IP сервера – 192.168.0.1
  • Имя сервера – srv-01.lab.loc

Нам нужно будет указать две зоны (прямого и обратного просмотра) и прописать их в конфигурации сервера.

Я начну с конца и укажу настройки зон в файле конфигурации. Открываем его

и вставляем следующее:

  • key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ)
  • zone «lab.loc» — информация о зоне использования DNS, указан тип — master, путь к файлу хранения данных зоны, обновления файла разрешено с использованием ключа.
  • zone «0.168.192.in-addr.arpa» — создание зоны обратного просмотра

Теперь создадим сами файлы в которых будут храниться данные зоны lab.loc. Для этого скопируем образец файла прямого просмотра:

и внесем правки как у меня:

Теперь скопируем файл зоны обратного просмотра:

Вносим в него следующее:

Сохраняем, закрываем, перезапускаем Bind9

Сохраняем, закрываем, проверяем работу DNS сервера:

в ответ вы должны увидеть следующее:

Как видите зона прямого просмотра работает, нам показался адрес проверяемого имени. Теперь проверим работу зоны обратного просмотра

В ответ должны получить следующее:

Как видите в ответ мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, проверяйте что сделали не так.

Настройка динамического обновления зон DHCP сервером

Если вы вместе со мной настраивали сервер с самого начала, тогда у вас не должно возникнуть трудностей. Откроем файл /etc/dhcp/dhcpd.conf

Проверяем что опция option domain-name содержит имя домена lab.loc, строку ddns-update-style none; закомментировать. Теперь добавим строчку update-static-leases on; – она отвечает за создание зон для клиентов у которых статичный IP адрес. Для автоматизации этого процесса, добавим следующий код:

где secret это тот самый код который мы делали вначале статьи.

Вот пример моего файла /etc/dhcp/dhcpd.conf:

Больше никакие настройки DHCP не трогаем, перезапускаем bind9 и dhcp

Теперь нужно проверить как все это дело работает “в бою”. Запускаем клиентскую машину, которая находиться в сети с сервером. После включения машина получит IP адрес от DHCP сервера, а DHCP сервер создаст запись вроде klient-pc.lab.loc.

На запрос nslookup yos-pc (yos-pc это имя клиентской машины), мы должны увидеть ответ от сервера

Как видите по скриншоту, работает и прямой и обратный запросы к DNS.

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

Настройка DNS в Ubuntu

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

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

Настройка DNS в Ubuntu через GUI

Раньше, для настройки DNS серверов, которые будут использоваться системой было достаточно внести адреса нужных серверов в файл /etc/resolv.conf. Но сейчас всей конфигурацией сети в Ubuntu управляет NetworkManager, а этот файл теперь представляет собой только ссылку на файл NetworkManager.

Этот способ до сих пор работает, но в нем вы можете настроить DNS на LiveCD, или до перезагрузки. После перезагрузки все настройки собьются и придется все делать заново. Поэтому, чтобы все сохранилось нужно выполнять все действия через интерфейс NetworkManager. Сначала откройте контекстное меню для значка сети на панели и выберите «Изменить подключения»:

Выберите ваше подключение и нажмите «Изменить»:

В открывшемся окне перейдите на вкладку «Параметры IPv4»:

Затем, в поле «Способ настройки» выберите «Автоматически (DHCP, только адрес)»:

Теперь немного ниже появиться поле «Серверы DNS», где вам нужно прописать нужные серверы, можно несколько адресов через запятую. Например, можно указать сервера от Google:

Поле этого нажмите «Сохранить» и «Закрыть». Теперь можете переподключитесь к этому соединению и можете проверять текущий DNS сервер:

Собственно, это все, но есть еще один способ настройки через консоль, если этот не сработал или вы предпочитаете работать из консоли.

Настройка DNS через терминал Ubuntu

В Ubuntu есть унифицированный интерфейс настройки сети, который настраивается через конфигурационный файл /etc/network/interfaces. Сначала смотрим список сетевых интерфейсов:

Откройте файл для редактирования и найдите в нем имя своего сетевого интерфейса, например, auto enp0s3, если такой секции нет, ее нужно добавить:

sudo vi /etc/network/interfaces

auto enp0s3
iface enp0s3 inet dhcp

Затем, добавьте в эту секцию строчку:

Здесь адрес 8.8.8.8 — это адрес вашего DNS сервера. Но эта настройка сработает, только если ваш DHCP клиент не пытается назначить адрес самостоятельно. Чтобы указать DNS адрес на уровне DHCP сервера нужно добавить такую строчку в конфигурационный файл /etc/dhcp/dhclient.conf:

sudo vi /etc/dhcp/dhclient.conf

supersede domain-name-servers 8.8.8.8

Здесь тоже адрес 8.8.8.8 означает адрес DNS сервера. Для верности, вы можете добавить свои адреса DNS серверов в файл /etc/resolvconf/resolv.conf.d/base:

sudo vi /etc/resolvconf/resolv.conf.d/base

Чтобы настройки вступили в силу необходимо перезапустить сеть:

sudo systemctl restart networking

Возможно, даже лучше будет если вы полностью перезагрузите компьютер. Теперь вы можете открыть /etc/resolv.conf и посмотреть применялся ли новый адрес DNS:

Как видите, в моем примере все заработало. Подобно этому выполняется настройка dns linux для любого дистрибутива.

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

Установка и настройка DNS на Ubuntu Server

Последнее изменение: 08.10.2019

Сегодня рассмотрим установку и настройку DNS сервера внутри локальной сети с доменным именем «lan«.

Всё это великолепие будет производиться на локальной машине Ubuntu Server 18.04, хотя действия идентичны и для других дистрибутивов Linux (Debian, Rasbian, Linux Mint и т.д.).

Установка DNS сервера

В качестве DNS сервера будем использовать пакет bind9. Для его установки подключаемся к серверу по ssh или открываем консоль на самом сервере и набираем следующую команду:

После установки пакета bind9, необходимо произвести его настройку.

Настройка DNS сервера bind9

Для начала отредактируем файл named.conf.options

Добавим в него следующий код:

Теперь открываем файл конфигурации зон и вносим информацию о наших зонах.

Сохраняем ctrl+o, закрываем ctrl+x.

Зона прямого просмотра

Теперь самое время создать зону прямого просмотра, для этого создадим копию файл db.local:

Откроем файл db.lan:

и приведем его к следующему виду:

  • Записи вида А — предназначена для ip адресов версии 4
  • Запись вида АААА — предназначена для ip адресов версии 6
  • Запись вида NS — для DNS серверов.

Настройка зоны обратного просмотра DNS

Обратная зона преобразовывает IP адреса машины в доменное имя FQDN. Давайте сделаем копию файла прямого просмотра:

Открываем его на редактирование:

Вносим следующие изменения:

Проверка DNS сервера bind9

Теперь проверим правильность синтаксиса конфигурационных файлов BIND.

Если конфигурационные файлы не содержат ошибок, вывод этой программы будет пуст.

Проверяем работу DNS сервера:

в ответ вы должны увидеть:

Как видите зона прямого просмотра работает, сервер выдал ip адрес проверяемого имени.

Теперь проверим работу зоны обратного просмотра

В ответ должны получить:

Как видим в ответ мы получили имя сервера по его IP адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, то проверяйте что сделали не так.

P.S. Если в ответе у вас ошибка, можите добавьте в файле resolv.conf свой nameserver, это может помочь устранит проблему.

Вносим на первое место наш сервер:

Проверяем версию DNS сервера

Примерный вывод команды:

Вот и всё, установка и настройка сервера DNS на этом закончена.

Если есть вопросы, то пишем в комментариях.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка и настройка 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 закончена.

Установка и настройка DNS-сервера BIND в Linux

BIND – наиболее распространенное open-source приложение, в котором реализованы протоколы DNS, предоставляющие возможность преобразования доменных имен в IP-адреса и наоборот.

Данная статья представляет собой руководство по быстрой настройке DNS-сервера в Linux при помощи BIND. Мы не будем подробно разбирать, что такое система DNS и как она работает, а сосредоточимся на примере настройки своей зоны и файла конфигурации для домена/узла с поддержкой сервисов www и электронной почты.

В нашем примере мы будем использовать следующие параметры:
IP-адрес, на котором будет установлен сервер имен: 172.31.0.122
имя домена/узла: itproffi.ru
авторитативные сервера имен для зоны itproffi.ru: ns1.itproffi.ru (172.31.1.10) и ns2. itproffi.ru (172.31.1.11)
службы www и электронной почты для itproffi.ru будут использовать адрес 172.31.1.10

Установка сервера bind

Установка bind очень проста – нужно воспользоваться менеджером пакетов. В Debian и Ubuntu выполните следующую команду:

В CentOS или Fedora:

Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.

Создание файла зоны DNS

Дальнейшие примеры будут для Ubuntu/Debian, но также подходят и для Centos/RedHat, только директория с настройками зон в CentOS будет находиться в /etc/named/ , а основной файл конфигурации /etc/named.conf . Для начала нам потребуется создать новый файл зоны для домена itproffi.ru. Перейдите в директорию /etc/bind/ . создайте в ней поддиректорию zones/master/ и перейдите в нее, выполнив следующую последовательность команд:

Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:

Рассмотрим ключевые строки этого файла:

  • Запись SOA: авторитативный сервер имен для itproffi.ru – это ns1.itproffi.ru, адрес ответственного за зону DNS администратора – admin@itproffi.ru
  • Записи NS: два сервера имен для зоны itproffi.ru – ns[1,2].itproffi.ru
  • Запись MX: почтовый сервер для itproffi.ru. Число 10 означает уровень приоритета
  • Записи A: A означает «адрес» (address). Другими словами, ns1 в зоне itproffi.ru будет иметь адрес 172.31.1.10
  • Запись CNAME (Canonical Name – каноническое имя): привязывает одно доменное имя к другому (каноническому), например, устанавливает соответствие mail.itproffi.ru и itproffi.ru.

Настройка обратной зоны

На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:

Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.

Настройка файла конфигурации bind

На данный момент у нас должно быть два файла:

Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:

Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.

Замените следующий блок текста в файле named.conf.options:

на блок текста с адресом стабильного DNS-сервера

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

А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение

Если этого не сделать, то при попытке обращения к серверу с другого компьютера вы получите ошибку

Проверка файлов зоны и конфигурации

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

Для проверки файлов конфигурации выполните следующую команду:

С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.

Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:

Проверка обратной зоны

Запуск и перезапуск сервера bind

Теперь мы можем запускать сервер bind:

Если сервер уже был запущен, его можно перезапустить командой restart:

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

Тестирование сервера bind

Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):

dig @172.31.0.122 www.itproffi.ru

Теперь проверим обратную зону:

dig @172.31.0.122 -x 172.31.1.10

Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.

nslookup 172.31.1.10 172.31.0.122

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Установка и настройка DNS в Ubuntu

в ответ вы получите ответ с временем выполнения запроса (выделено цветом)

Как видите запрос был выполнен за 284 мсек. Теперь еще раз выполним этот же запрос и проверим время запроса

Повторный запрос был выполнен за 7 мсек! Отлично! Кэширование запросов работает. Двигаемся дальше.

Настройка основного DNS сервера

  • Доменное имя – lab.loc
  • IP сервера – 192.168.0.1
  • Имя сервера – srv-01.lab.loc

Нам нужно будет указать две зоны (прямого и обратного просмотра) и прописать их в конфигурации сервера.

Я начну с конца и укажу настройки зон в файле конфигурации. Открываем его

и вставляем следующее:

  • key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ)
  • zone «lab.loc» — информация о зоне использования DNS, указан тип — master, путь к файлу хранения данных зоны, обновления файла разрешено с использованием ключа.
  • zone «0.168.192.in-addr.arpa» — создание зоны обратного просмотра

Теперь создадим сами файлы в которых будут храниться данные зоны lab.loc. Для этого скопируем образец файла прямого просмотра:

и внесем правки как у меня:

Теперь скопируем файл зоны обратного просмотра:

Вносим в него следующее:

Сохраняем, закрываем, перезапускаем Bind9

Сохраняем, закрываем, проверяем работу DNS сервера:

в ответ вы должны увидеть следующее: Как видите зона прямого просмотра работает, нам показался адрес проверяемого имени. Теперь проверим работу зоны обратного просмотра

В ответ должны получить следующее:

Как видите в ответ мы получили имя сервера по его адресу. Если у вас в ответ на nslookup так же все корректно отображается, значит вы все сделали правильно! Если нет, проверяйте что сделали не так.

Настройка динамического обновления зон DHCP сервером

Если вы вместе со мной настраивали сервер с самого начала, тогда у вас не должно возникнуть трудностей. Откроем файл /etc/dhcp/dhcpd.conf

Проверяем что опция option domain-name содержит имя домена lab.loc, строку ddns-update-style none; закомментировать. Теперь добавим строчку update-static-leases on; – она отвечает за создание зон для клиентов у которых статичный IP адрес. Для автоматизации этого процесса, добавим следующий код:

где secret это тот самый код который мы делали вначале статьи.

Вот пример моего файла /etc/dhcp/dhcpd.conf:

Больше никакие настройки DHCP не трогаем, перезапускаем bind9 и dhcp

Теперь нужно проверить как все это дело работает “в бою”. Запускаем клиентскую машину, которая находиться в сети с сервером. После включения машина получит IP адрес от DHCP сервера, а DHCP сервер создаст запись вроде klient-pc.lab.loc.

На запрос nslookup yos-pc (yos-pc это имя клиентской машины), мы должны увидеть ответ от сервера

Как видите по скриншоту, работает и прямой и обратный запросы к DNS.

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

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

Свежие записи

  • Подключение старого диска из RA >10.09.2019
  • Копирование большого количества файлов через SSH 05.09.2019
  • Монтирование удалённого каталога по SSH как локальной папки с помощью SSHFS 05.09.2019
  • Удаленное администрирование Linux Ubuntu 14.04 10.04.2019
  • Восстановление баз данных InnoDB после сбоев в MySQL 19.03.2019
  • Решение проблемы с правами доступа MySQL из-за сервиса AppArmor 19.03.2019
  • Инициализация базы данных MySQL, сброс пароля MySQL на Linux Ubuntu 18.04 19.03.2019
  • Отношения в семье 11.03.2019
  • 3DVisio — 3D визуализация и 3D анимация 28.02.2019
  • Быстрые кнопки Youtube 26.02.2019
  • Очистка кеша 1С 19.02.2019
  • Скриншот с помощью Python 14.02.2019
  • MD5 сумма файлов командами Windows из командной строки 13.02.2019
  • Скачиваем сайты целиком — утилита wget 29.01.2019
  • Касино (исп. Casino) 18.10.2018
  • Сокращение журнала регистрации 1С: 8.3 08.09.2018
  • Оптимизация SQL запросов для ускорения сайтов (MySQL) 29.08.2018
  • Настройка DNS в Linux Ubuntu 29.08.2018
  • Как отключить обновления Windows 10 28.07.2018
  • RDP-сервер из Winows 10 / Windows 7 17.05.2018
  • Сентябрь 2019 (3)
  • Апрель 2019 (1)
  • Март 2019 (4)
  • Февраль 2019 (5)
  • Январь 2019 (1)
  • Октябрь 2018 (1)
  • Сентябрь 2018 (1)
  • Август 2018 (2)
  • Июль 2018 (1)
  • Май 2018 (2)
  • Март 2018 (3)
  • Февраль 2018 (4)
  • Январь 2018 (1)
  • Декабрь 2017 (1)
  • Ноябрь 2017 (3)
  • Октябрь 2017 (6)
  • Сентябрь 2017 (4)
  • Июль 2017 (3)
  • Май 2017 (3)
  • Апрель 2017 (5)
  • Март 2017 (2)
  • Январь 2017 (1)
  • Декабрь 2016 (3)
  • Ноябрь 2016 (2)
  • Октябрь 2016 (7)
  • Сентябрь 2016 (12)
  • Август 2016 (2)
  • Июль 2016 (2)
  • Июнь 2016 (4)
  • Май 2016 (2)
  • Февраль 2016 (1)
  • Январь 2016 (8)
  • Декабрь 2015 (2)
  • Ноябрь 2015 (8)
  • Октябрь 2015 (12)
  • Сентябрь 2015 (1)
  • Август 2015 (1)
  • Июль 2015 (14)
  • Июнь 2015 (171)
  • Май 2015 (2)
  • Апрель 2015 (5)
  • Март 2015 (3)
  • 1С (2)
  • 3D (8)
  • 3D Визуализация (3)
  • Ajax (6)
  • Android (13)
  • Apache (13)
  • CSS (1)
  • CSV и т.п.) (1)
  • Delphi (5)
  • DelphiPHP (2)
  • DNS (3)
  • Excel (2)
  • Firebird (3)
  • FTP (2)
  • git и т.п.) (4)
  • Google (8)
  • Hack (2)
  • Html (2)
  • Java (5)
  • Java Script (5)
  • Lazarus (1)
  • Lenovo (4)
  • Linux (70)
  • Mantis (4)
  • Map (Карты) (3)
  • Meta Trader 4 (1)
  • MySQL (19)
  • Nginx (13)
  • PHP (67)
  • Postgresql (7)
  • Python (2)
  • Salsa (Сальса) Касино (1)
  • SEO (24)
  • Terminal (6)
  • Virtualbox (5)
  • VPN (2)
  • Web (9)
  • Windows (12)
  • WordPress (23)
  • Автоматизация предприятия (35)
  • Базы данных (8)
  • Без рубрики (3)
  • Битрикс (1)
  • Брандмауэр (2)
  • Браузеры (1)
  • Заработок в интернет (2)
  • Защита информации (9)
  • Импорт/экспорт (Excel (1)
  • Иностранные языки (1)
  • Интернет-магазины (4)
  • К2 Програми (3)
  • Командная строка Linux (10)
  • Корпорация 2 (14)
  • Наши статьи (63)
  • Обучение (3)
  • Оптимизация (1)
  • Поисковые машины (4)
  • Пользование (1)
  • Почта (2)
  • Психология (1)
  • Резервное копирование (5)
  • Реклама в интернет (9)
  • Ремонт (1)
  • Само-оборона (1)
  • Само-развитие (2)
  • Сервисы (4)
  • Системы контроля версий (svn (3)
  • Социальные сети (5)
  • Тестирование работы (3)
  • Удаленное администрирование (3)
  • Финансирование (2)
  • Хостинг (3)
  • Штрих-кодирование (7)
  • Экономия на лицензиях (2)

Наши проекты

Anything in here will be replaced on browsers that support the canvas element

Установка и настройка DNS в Ubuntu

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

Настройка DNS будет производиться на примере самого популярного в настоящее время программного пакета, позволяющего реализовать DNS — BIND9.

Преимуществом наличия DNS-сервера является возможность иметь в сети ресурсы, имеющие абсолютно любые имена, в том числе — принадлежащие другим Интернет ресурсам.

При работе с DNS можно использовать любые доменные имена в любых зонах (.com, .org, .ru и т.д.). Единственной рекомендацией может быть следующая — не использовать при экспериментах с DNS доменные имена в зоне .local поскольку в этом случае может наблюдаться ряд побочных эффектов в результате чего настраиваемый программный пакет может работать некорректно.

Настройка BIND Ubuntu

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

Прежде всего, устанавливаем для сервера статический IP-адрес

Проверяем актуальное значение IP-адреса

Нужный адрес относится к интерфейсу eth0

Отправляемся в файл, отвечающий за сетевые настройки и меняем способ выдачи адреса с DHCP на static

iface eth0 inet static
address 192.168.11.76
network 255.255.255.0
gateway 192.168.11.21

Данный адрес установлен с учетом того, что он заведомо находится за пределами диапазона адресов, назначаемых DHCP

Чтобы изменения вступили в силу опускаем интерфейс и вновь поднимаем его

Удаление resolvconf в Ubuntu старше 12.04

Для демонстрации используется Ubuntu 16.04, начиная с версии 12.04 данный дистрибутив использует утилиту resolvconf, которая контролирует DNS автоматически. Для рабочих станций данная утилита очень полезна, для серверов — нет.

Видим в файле информацию о том, что он заполняется автоматически и править конфигурацию вручную нельзя. Поскольку нас это не вполне устраивает — удаляем утилиту (на рабочих станциях вносить изменения DNS можно редактируя файлы head, base и tail в каталоге /etc/resolvconf/resolv.conf.d — структура файлов будет рассмотрена в одной из следующих статей).

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

Установка и настройка bind9

Конфигурационные файлы располагаются в каталоге /etc/bind. Основные файлы: named.conf и named.conf.local

Общая форма конфига bind9 представлена в файле db.local

Конфигурации также представлены в named.conf.default-zones
Здесь можно увидеть записи двух типов:

zone «localhost» <
type master;
file «/etc/bind/db.local»;
>;

zone «127.in-addr.arpa» <
type master;
file «/etc/bind/db.127»;
>;

Первая запись характеризует прямое преобразование — доменного имени в IP-адрес, вторая — обратное преобразование — IP-адреса в доменное имя.

Дальнейшие изменения вносим в файл named.conf.local

zone «example.com» <
type master;
file «/etc/bind/example.com.zone»;
>;

$TTL 3600
@ IN SOA localhost localhost (
20170211001 ;серийный номер
3600 ;время обновления
3600 ;повторная попытка запроса обновления от мастера
3600 ;время истечения срока действия
3600 ;кэширование TTL
)

IN NS server01.example.com.
IN A 192.168.11.76
alias IN CNAME server01

При использовании FQDN — в NS записи — (полностью определенного доменного имени) точка в его конце обязательна.

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

Значения времени обновления,повторной попытки запроса обновления от мастера, времени истечения срока действия и кэширования TTL всех указанных параметров можно варьировать, в большинстве случаев используется значение 3600 секунд, в случае большой нагрузки на сервер — при использовании его в публичных местах — значения можно увеличивать для того чтобы уменьшить трафик в сети.

NS запись DNS — запись, определяющая к какому серверу будет происходить запрос при попытке разрешеиня имени или адреса.

А запись DNS — запись согласно которой производится запрос к серверу на наличие файлов сайта.

CNAME запись используется для создания синонимов — при запросе к alias.example.com в данном случае производится обращение к server01.example.com.

В случае если при перезапуске службы ошибок не возникло — конфигурационные файлы составлены корректно

Чтобы проверить корректность работы bind9 заставим сервер обращаться к себе

nameserver 192.168.11.76
domain example.com
search example.com

В выводе присутсвует адрес 192.168.11.76, что означает, что успешно разрешаются как CNAME, так и A записи).

Пинг есть, значит bind работает корректно

Теперь настроим обратное преобразование

Как и ранее идем в named.conf.local; добавляем следующие строки

zone «11.168.192.in-addr.arpa» <
type master;
file «/etc/bind/192.168.11.zone»;
>;

$TTL 3600
@ IN SOA localhost localhost (
20170211001 ;серийный номер
3600 ;время обновления
3600 ;повторная попытка запроса обновления от мастера
3600 ;время истечения срока действия
3600 ;кэширование TTL
)

IN NS server01.example.com.
IN A 192.168.11.76
76 IN PTR server01.example.com.

В PTR записи прописывается только последний октет адреса 192.168.11.76, bind добавляет остальные октеты, если пренебречь этим правилом обратное преобразование происходить не будет.

Настройка bind Ubuntu на этом завершена. Читайте также про DNS записи: CNAME, SOA, PTR . Для работы почты особенно важна SPF запись.

Служба доменных имен , установка dns сервера на Ubuntu

В терминале введите следующую команду для установки dns:

Существует много способов настроить BIND9. Наиболее распространенные конфигурации — это кэширующий сервер имен, первичный мастер и вторичный мастер.

Когда BIND9 настроен как кэширующий сервер, он ищет ответы на запросы имени и запоминает ответ на случай, если запрос придет повторно.

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

В качестве вторичного мастера BIND9 получает данные по зоне (целиком) с другого сервера имен, отвечающего за эту зону.

Файл с именем /etc/bind/db.root описывает корневые сервера имен в мире. Сервера со временем меняются, поэтому файл /etc/bind/db.root должен обслуживаться сейчас и потом. Обычно это происходит в качестве обновления к пакету bind9. Секция zone определяет мастер сервер и она сохранена в файле, определяемой опцией file.

Существует возможность настроить один сервер как кэширующий сервер имен, первичный мастер и вторичный мастер одновременно. Сервер может быть началом авторизации (SOA) для одной зоны, при этом предоставляя вторичный сервис для другой. И при всем этом предоставлять кэширующий сервис в локальной сети (LAN ).

Кэширующий сервер имен

По умолчанию конфигурация настраивается на работу кэширующим сервером. Все что для этого требуется — это добавить IP адреса DNS серверов вашего интернет провайдера. Просто раскомментируйте и исправьте следующее в /etc/bind/named.conf.options:

Смотрите dig для информации по тестированию кэширующего DNS сервера.

linux настройка dns secondary (первичный мастер)

В этом разделе BIND9 будет настроен как dns secondary (первичный мастер) для домена example.com. Просто замените example.com на ваше FQDN (квалифицированное имя домена).

Файл прямой зоны

Теперь используем существующий файл зоны в качестве шаблона для создания файла /etc/bind/db.example.com:

Редактируем новый файл зоны /etc/bind/db.example.com, заменив localhost. на FQDN нашего сервера, оставляя дополнительную «.» в конце. Заменим 127.0.0.1 на IP адрес сервера имен и root.localhost на правильный адрес email, но с «.» вместо символа «@», опять же оставляя «.» на конце. Замените комментарии для указания домена, для которого этот файл сделан.

Создайте A запись для базового домена example.com. Также создайте A запись для ns.example.com — сервера имен в данном примере:

Вы должны увеличивать Serial Number каждый раз, как делаете изменения в файле зоны. Если вы делаете множественные изменения, просто увеличьте Serial на единицу один раз перед перезапуском BIND9.

Как только вы произвели изменения в файле зоны, требуется перегрузить BIND9 для применения изменений:

Файл обратной зоны

Теперь, поскольку зона создана и разрешает имена в IP адреса, требуется создать также обратную зону. Обратная зона позволяет DNS определять имя по IP адресу.

Редактируем /etc/bind/named.conf.local и добавляем следующее:

Теперь создаем файл /etc/bind/db.192:

Далее редактируем /etc/bind/db.192, изменяя в основном те же опции, что и в /etc/bind/db.example.com:

Serial Number в обратной зоне также требуется увеличивать при каждом изменении. Для каждой A записи, которую вы настроите в /etc/bind/db.example.com на другой адрес, вы должны создать запись PTR в /etc/bind/db.192.

После создания файла обратной зоны перегрузите BIND9:

Вторичный мастер

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

Для начала на первичном мастере надо разрешить передачу зоны. Добавьте опцию allow-transfer к определениям прямой и обратной зон в /etc/bind/named.conf.local:

Перезапустим BIND9 на первичном мастере:

Далее, на вторичном мастере установите пакет bind9 так же, как делали на первичном. Затем отредактируем /etc/bind/named.conf.local и добавим следующие определения к прямой и обратной зонам:

Перегружаем BIND9 на вторичном мастере:

В /var/log/syslog вы сможете увидеть нечто похожее на (некоторые строки разделены для соответствия формату документа):

Решение проблем

Этот раздел посвящен способам определения причины проблем, возникающих с DNS и BIND9.

Тестирование

resolv.conf

Первый шаг в тестировании BIND9 это добавление IP адреса сервера имен в список определителей сетевых имен. Первичный сервер имен должен настраиваться, как и любой другой узел сети, с двойной проверкой. Просто отредактируйте /etc/resolv.conf, добавив следующее:

Если вы установили пакет dnsutils, вы можете проверить свою установку используя обзорную утилиту DNS dig:

1. После установки BIND9 примените dig к интерфейсу обратной петли (loopback), чтобы убедиться, что порт 53 прослушивается. Из терминала наберите:

Вы должны увидеть строки вывода, похожие на следующее:

2. Если BIND9 настроен у вас как кэширующий сервер, используйте dig для замера времени при разрешении имени внешнего домена:

Обратите внимание на время в конце вывода результата команды:

После повторного вызова dig должно произойти улучшение:

Это проверит может ли сервер имен разрешить имя ns.example.com в IP адрес. Вывод команды будет напоминать следующее:

named-checkzone

Хороший способ проверить ваши файлы зон — это использовать утилиту named-checkzone, установленную вместе с пакетом bind9. Эта утилита позволяет вам убедиться в корректности настроек до перезапуска BIND9 и применения изменений.

1. Для тестирования нашего файла прямой зоны из примера введите следующее в командной строке:

Если все настроенно верно, вы сможете увидеть вывод, похожий на:

2. Аналогично, для тестирования файла обратной зоны введите следующее:

Вывод должен напоминать следующее:

Журналирование

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

Если опции журналов отсутствуют, по умолчанию применяется следующее:

Этот раздел раскрывает как настроить BIND9 посылать отладочные сообщения, связанные с DNS запросами в отдельный файл.

1. Сначала нам надо настроить канал (channel) для определения в какой файл посылать сообщения. Редактируем /etc/bind/named.conf.local и добавляем следующее:

2. Затем настраиваем категорию (category) для отправки всех DNS запросов в файл:

3. Поскольку сервис named запускается от имени bind, надо создать файл и сменить ему пользователя:

4. Перед тем как сервис named сможет писать в новый файл журнала нужно изменить профиль AppArmor. Сначала редактируем файл /etc/apparmor.d/usr.sbin.named, добавив:

Затем перегружаем профиль:

Дополнительную информацию по AppArmor смотрите в разделе AppArmor.

5. Теперь перегружаем BIND9 для применения изменений:

Теперь вы можете увидеть файл /var/log/query.log, заполненный информацией о запросах. Это простейший пример использования опций журналирования BIND9.

Общие типы записей

Этот раздел покажет некоторые наиболее общие типы записей DNS .

1. A запись: Эта запись указывает IP адрес для сетевого имени (hostname).

2. CNAME запись: Используется для создания псевдонима (alias) на A запись. Вы не можете создавать CNAME запись, указывающую на другую CNAME запись.

3. MX запись: Используется для определения куда должна посылаться электронная почта (email). Должна указывать на A запись, не на CNAME.

4. NS запись: Используется для определения какие сервера поддерживают копии зоны. Должна указывать на A запись, не на CNAME. Ею определяются первичные и вторичные сервера зоны.

Ссылка на основную публикацию