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

Содержание

Компьютерный сервис эксперт. Установка и настройка DNS в Ubuntu

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

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

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

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

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

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

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

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

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

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

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

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

ls /sys/class/net/

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

sudo vi /etc/network/interfaces

auto enp0s3
iface enp0s3 inet dhcp

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

dns-nameserver 8.8.8.8

Здесь адрес 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

nameserver 8.8.8.8

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

sudo systemctl restart networking

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

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

Выводы

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

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

В этой статье мы рассмотрим один из вариантов развертывания DNS сервера для локальной сети на базе Ubuntu (у меня 14.04.3 LTS) и bind9. Для большинства других дистрибутивов отличия будут минимальны, для Debian-подобных их не будет совсем.

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

Поскольку в прошлый раз я удалил dnsmasq (а он был как DHCP, так и DNS – сервером, который, кстати, не был должным образом сконфигурирован и не работал), то появилась потребность в DNS, чем я и решил на досуге заняться. Настройка DNS занимает немногим больше времени, но только из-за большего числа конфигурационных файлов.

И так, приступим. Первым делом актуализируем систему (обновим пакеты):

sudo apt-get update && sudo apt-get upgrade -y

Теперь установим DNS сервер bind9:

sudo apt-get install bind9

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

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

Но в моем случае обновлять записи будет только мой же DHCP сервер, так что я генерирую только один ключ:

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

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

Rw——- 1 user user 54 янв. 21 12:17 Kdhcp_updater.+157+55379.key
-rw——- 1 user user 165 янв. 21 12:17 Kdhcp_updater.+157+55379.private

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

tail Kdhcp_updater*.private

Вы увидите примерно такое содержимое, кде значение “Key” и есть требуемый ключ:

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

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

Так же мы укажем серверу, на каких адресах наш DNS будет обслуживать клиентов. Для этого нужно отредактировать файл /etc/bind/named.conf.options:

sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options.dist && sudo nano /etc/bind/named.conf.options

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

forwarders { 212.120.160.130; 8.8.8.8; }; listen-on { 127.0.0.1; 192.168.0.231;

};

Рассмотри эти секции:

  • forwarders – тут указываем вышестоящие серверы имен. Их количество не ограничено, при недоступности одного из них запросы будут пересылаться на следующий в списке. Я указал DNS своего провайдера и Google Public DNS;
  • lisnen-on – адреса локальных интерфейсов, на которые сервер будет принимать DNS-запросы клиентов.

В nano это выглядит примерно так:

Сохраняем конфигурацию. Теперь можно перезапустить DNS службу:

sudo service bind9 restart

Теперь наш сервер работает в качестве кэширующего DNS, что уже позволяет указать его в качестве DNS-сервера любому клиенту в нашей сети. Проверим его работу, для этого сгодится любой компьютер в сети или сам сервер. Я покажу на примере рабочей станции с Windows 7. Нажимаем Win+R, в появившемся окне пишем cmd, запустится командная оболочка windows. Пишем туда следующее:

nslookup – 192.168.0.231

Вы, естественно, пишете IP своего сервера. Запустится консольная утилита диагностики DNS для Windows – nslookup, а в качестве DNS сервера будет использован не системный DNS, а указанный в параметре. Nslookup хорош тем, что отсылает запросы на требуемый сервер минуя DNS-кэш Windows. Первым делом проверим работоспособность прямых DNS запросов:

Затем работоспособность обратных запросов:

В cmd.exe выглядит примерно так:

Если у Вас все точно так же, значит Ваш DNS уже отлично работает в качестве кэширующего сервера. В случае с google.ru мы так же можем видеть, что наш сервер способен разрешать и IPv6.

Теперь нам надо указать своему серверу использовать в качестве DNS самого себя. Делать это он будет по loopback-интерфейсу. Для этого нам надо изменить файл /etc/resolv.conf, но менять его самостоятельно смысла нет, поскольку перезагрузки его всеравно исправит network manager. Поэтому мы будем редактировать /etc/network/interfaces:

sudo nano /etc/network/interfaces

Находим там секцию с интерфейсом локальной сети (у меня это eth0) и добавляем или изменяем следующие строки:

dns-nameservers 127.0.0.1
dns-search ordaupfin.local

*вместо ordaupfin.local Вы указываете свой домен или рабочую группу.

Должно получиться примерно как у меня:

Теперь, если Вы находитесь непосредственно за консолью сервера физически, достаточно перезапустить сервис networking командой:

sudo service networking restart

А если вы подключены к серверу по SSH (как я), то активная сессия не позволит сервису перезапуститься, поэтому сервер придется перезагрузить:

Теперь можно проверить, действительно ли сервер направляет DNS-запросы самому себе, в терминал пишем:

Если в последних строчках пишет SERVER: 127.0.0.1 – значит все настроено правильно. Вот как должен выглядеть выхлоп dig на google.ru:

Если вы выполните dig google.ru повторно, то увидите, что время выполнение запроса существенно сократилось. Это связано с тем, что все последующие запросы по тому же домену сервер будет брать из кэша, не пересылая запрос на вышестоящий сервер.

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

Создаем зону прямого просмотра. Сервер уже содержит типовые файлы настроек, поэтому их нужно лишь скопировать в рабочую директорию и изменить под себя. Я использую свои данные, Вы, само собой, должны подставить свои. Копируем файл конфигурации зоны прямого просмотра и открываем его на редактирование:

sudo cp /etc/bind/db.local /var/lib/bind/db.ordaupfin.local && sudo nano /var/lib/bind/db.ordaupfin.local

Приведем его к такому виду (не забываем указывать свои данные вместо исходных):

; BIND data file for local loopback interface ; $TTL 604800 20150122 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire ; @ IN NS ubunturoute.ordaupfin.local. @ IN A 192.168.0.231 @ IN AAAA::1

ubunturoute IN A 192.168.0.231

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

sudo cp /etc/bind/db.127 /var/lib/bind/db.192 && sudo nano /var/lib/bind/db.192

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

; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA ubunturoute.ordaupfin.local. root.ubunturoute.ordaupfin.local. ( 20150122 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800) ; Negative Cache TTL ; @ IN NS ubunturoute.

231 IN PTR ubunturoute.ordaupfin.local.

Обратите, пожалуйста, внимание на то, что “231”, с которого начинается последняя строка – это последняя секция в IP-адресе моего сервера, В вашем случае, она, скорей всего, будет иной.

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

sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.local.dist && sudo nano /etc/bind/named.conf.local

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

key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret “s5Efp/-/-/-/wQtvg9rR7Q==”;

};

zone “ordaupfin.local” { type master; file “/var/lib/bind/db.ordaupfin.local”;

};

zone “0.168.192.in-addr.arpa” { type master; file “/var/lib/bind/db.192”; allow-update { key DHCP_UPDATER; };

};

  • key DHCP_UPDATER – информация для обновления записей, сюда Вы вписываете сгенерированный ранее свой ключ;
  • zone “ordaupfin.local” – зона прямого просмотра;
  • zone “0.168.192.in-addr.arpa” – зона обратного просмотра.

Выглядеть будет примерно так:

Сохраняем и перезапускаем сервер:

sudo service bind9 restart

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

nslookup ubunturoute.ordaupfin.local

Выхлоп должен быть таким:

Server: 127.0.0.1
Address: 127.0.0.1#53

Name: ubunturoute.ordaupfin.local
Address: 192.168.0.231

Подобным образом проверяем работоспособность зоны обратного просмотра:

nslookup 192.168.0.231

И получаем:

Server: 127.0.0.1
Address: 127.0.0.1#53

231.0.168.192.in-addr.arpa name = ubunturoute.ordaupfin.local.

Если у Вас все точно так, дело почти сделано. Почти, потому что теперь нам надо, чтобы наш DHCP сервер мог обновлять DNS-записи при появлении новых клиентов. Я буду рассматривать настройку на примере установленного у меня isc-dhcp-server. Редактируем /etc/dhcp/dhcpd.conf:

sudo nano /etc/dhcp/dhcpd.conf

И вставляем туда следующее содержимое:

ddns-update-style interim; update-static-leases on; key DHCP_UPDATER { algorithm hmac-md5; secret “s5EfpF53BBE9/-/tvg9rR7Q==”; } zone ordaupfin.local. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER;

}

Вы, конечно, должны подставить свои значения. После этого перезапустим DNS и DHCP сервер. Если сервер запустился без ошибок – все отличено. Если сервер не запускается – внимательно смотрим в конфиги, кроме того в диагностике ошибок Вам очень поможет syslog:

tail -f /var/log/syslog

Спасибо за внимание!

Источник: https://www.tarifan.ru/beeline/kompyuternyi-servis-ekspert-ustanovka-i-nastroika-dns-v-ubuntu/

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

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

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

Таким образом, когда вы вводите адрес веб-страницы в браузере, система доменных имён преобразует его в IP-адрес хостинга, на котором располагается конкретный домен.

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

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

Первый этап

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

sudo apt install bind9

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

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

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

cat Kdhcp_updater.*.private|grep Key

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

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

sudo nano /etc/bind/named.conf,

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

include «/etc/bind/rndc.key»;

Настройка Bind9

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

sudo nano /etc/bind/named.conf.options

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

forwarders {8.8.8.8;8.8.4.4;};listen-on {127.0.0.1;192.168.0.1;

};

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

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

Перезапуск bind9

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

sudo service bind9 restart

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

Доменное имя — domIP-адрес сервера — 192.168.0.1

Имя сервера — ns.dom

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

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

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

sudo nano /var/lib/bind/db.dom

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

$ORIGIN .$TTL 604800     ; 1 weekdom          IN            SOA      ns.dom. root.ns.dom.

(201605277  ; serial604800     ; 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

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

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

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

$ORIGIN .$TTL 604800     ; 1 week0.168.192.in-addr.arpa  IN  SOA    ns.dom. root.ns.dom. (2016052655 ; serial604800     ; 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, нужно открыть файл конфигурации командой:

sudo nano /etc/bind/named.conf.local,

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

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

};

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

zone «dom»{type master;file «/var/lib/bind/db.dom»;allow-update { key DHCP_UPDATER; };

};

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

zone «0.168.192.in-addr.arpa»{type master;file «/var/lib/bind/db.192»;allow-update { key DHCP_UPDATER; };
};

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

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

zone «dom»{type master;file «/var/lib/bind/db.dom»;allow-update { key rndc-key; };

};

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

zone «3.168.192.in-addr.arpa»{type master;file «/var/lib/bind/db.192»;allow-update { key rndc-key; };

};

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

sudo /etc/init.d/bind9 restart

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

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

nslookup ns.dom

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

Server:        127.0.0.1Address:    127.0.0.1#53Name:    ns.dom

Address: 192.168.0.1

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

nslookup 192.168.0.1

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

Server:        127.0.0.1Address:    127.0.0.1#53

1.0.168.192.in-addr.arpa    name = ns.dom.

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

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

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

sudo nano /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 выполните:

cat /etc/bind/rndc.key |grep secret

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

secret «2mu11eRajAdm4KV0x0Pmcg==»;

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

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

Остаётся проверить как всё работает. Запустите клиентскую машину, находящуюся в сети с сервером. После запуска машина получит IP от DHCP, а он, в свою очередь, создаст запись типа client-pc.dom.

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

Если на предыдущих этапах вы всё настроили правильно, там вы увидите информацию о новых машинах. Готово. Настройка завершена.

Итоги

Источник: https://nastroyvse.ru/opersys/lix/kak-ustanovit-dns-server-ubuntu.html

Настройка DNS сервера BIND в DEBIAN-Ubuntu

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

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

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

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

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

Настройка BIND Ubuntu

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

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

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

ip a

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

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

mcedit /etc/network/interfaces

iface eth0 inet static
address 192.168.11.76
network 255.255.255.0
gateway 192.168.11.21

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

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

ifdown eth0 && ifup eth0

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

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

cat /etc/resolv.conf

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

apt-get remove resolvconf

cat /etc/resolv.conf

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

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

Устанавливаем bind9

apt-get install bind9

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

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

cat 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»;
};

mcedit 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.

/etc/init.d/bind9 restart

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

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

mcedit /etc/resolv.conf

nameserver 192.168.11.76
domain example.com
search example.com

Проверяем (о том, как проверять DNS записи для домена)

host alias.example.com

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

ping alias.example.com

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

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

cat named.conf.default-zones

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

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

mcedit 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 добавляет остальные октеты, если пренебречь этим правилом обратное преобразование происходить не будет.

Источник: https://server-gu.ru/bind9-debian-ubuntu/

Установка и настройка DNS сервера Ubuntu | Информационный портал К2®

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

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

sudo apt-get update sudo apt-get upgrade

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

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

Key: 4GD8OIb8pZk4vAueACAfUQ==

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

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

sudo nano /etc/bind/named.conf.options

sudo nano /etc/bind/named.conf.options

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

forwarders { 8.8.8.8; 8.8.4.4; }; listen-on { 127.0.0.1; 192.168.0.1; };

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

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

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

sudo service bind9 restart

sudo service bind9 restart

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

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

sudo nano /etc/resolvconf/resolv.conf.d/tail

sudo nano /etc/resolvconf/resolv.conf.d/tail

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

domain lab.loc search lab.loc nameserver 127.0.0.1

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

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

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

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

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

Исходные данные:

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

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

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

sudo nano /etc/bind/named.conf.local

sudo nano /etc/bind/named.conf.local

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

key DHCP_UPDATER { algorithm HMAC-MD5.SIG-ALG.REG.INT; secret “4GD8OIb8pZk4vAueACAfUQ==”; }; zone “lab.loc” { type master; file “/var/lib/bind/db.lab.loc”; allow-update { key DHCP_UPDATER; }; }; //reverse zone zone “0.168.192.in-addr.arpa” { type master; file “/var/lib/bind/db.192”; allow-update { key DHCP_UPDATER; }; };

algorithm HMAC-MD5.SIG-ALG.REG.INT; secret “4GD8OIb8pZk4vAueACAfUQ==”;         file “/var/lib/bind/db.lab.loc”;        allow-update { key DHCP_UPDATER; };zone “0.168.192.in-addr.arpa” {        file “/var/lib/bind/db.192”;        allow-update { key DHCP_UPDATER; };
  •  key DHCP_UPDATER — информация о ключе, который мы с вами записывали (в кавычки вам нужно вписать свой ключ)
  • zone «lab.loc» — информация о зоне использования DNS, указан тип — master, путь к файлу хранения данных зоны, обновления файла разрешено с использованием ключа.
  • zone «0.168.192.in-addr.arpa» — создание зоны обратного просмотра

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

sudo cp /etc/bind/db.local /var/lib/bind/db.lab.loc

sudo cp /etc/bind/db.local /var/lib/bind/db.lab.loc

откроем его

sudo nano /var/lib/bind/db.lab.loc

sudo nano /var/lib/bind/db.lab.loc

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

; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA srv-01.lab.loc. root.srv-01.lab.loc. ( 20141126 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv-01.lab.loc. @ IN A 192.168.0.1 @ IN AAAA ::1 srv-01 IN A 192.168.0.1

; BIND data file for local loopback interface@       IN      SOA     srv-01.lab.loc. root.srv-01.lab.loc. (                         604800 )       ; Negative Cache TTL

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

sudo cp /etc/bind/db.127 /var/lib/bind/db.192

sudo cp /etc/bind/db.127 /var/lib/bind/db.192

откроем его

sudo nano /var/lib/bind/db.192

sudo nano /var/lib/bind/db.192

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

; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA srv-01.lab.loc. root.srv-01.lab.loc. ( 20141126 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS srv-01. 1 IN PTR srv-01.lab.loc.

; BIND reverse data file for local loopback interface@       IN      SOA     srv-01.lab.loc. root.srv-01.lab.loc. (                         604800 )       ; Negative Cache TTL

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

sudo /etc/init.d/bind9 restart

sudo /etc/init.d/bind9 restart

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

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

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

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

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

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

sudo nano /etc/dhcp/dhcpd.conf

sudo nano /etc/dhcp/dhcpd.conf

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

ddns-update-style interim; update-static-leases on; key DHCP_UPDATER { algorithm hmac-md5; secret “CO0WnumqxGoxqGEDjaR3YA==”; } zone lab.loc. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; }

ddns-update-style interim;secret “CO0WnumqxGoxqGEDjaR3YA==”;zone 0.168.192.in-addr.arpa. {

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

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

default-lease-time 600; max-lease-time 7200; authoritative; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.10 192.168.0.254; option domain-name-servers 192.168.0.1; option domain-name “lab.loc”; option routers 192.168.0.1; option broadcast-address 192.168.0.255; default-lease-time 604800; max-lease-time 604800; } ddns-update-style interim; update-static-leases on; key DHCP_UPDATER { algorithm hmac-md5; secret “LUH8l/F2OtaVrA6eSffJog==”; } zone lab.loc. { primary 127.0.0.1; key DHCP_UPDATER; } zone 0.168.192.in-addr.arpa. { primary 127.0.0.1; key DHCP_UPDATER; } log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {range 192.168.0.10 192.168.0.254;option domain-name-servers 192.168.0.1;option domain-name “lab.loc”;option routers 192.168.0.1;option broadcast-address 192.168.0.255;default-lease-time 604800; max-lease-time 604800; }ddns-update-style interim;secret “LUH8l/F2OtaVrA6eSffJog==”;zone 0.168.192.in-addr.arpa. {

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

sudo /etc/init.d/bind9 restart

sudo /etc/init.d/bind9 restart

sudo /etc/init.d/isc-dhcp-server restart

sudo /etc/init.d/isc-dhcp-server restart

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

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

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

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

Источник: http://faqpc.ru/nastrojka-dns-servera-ubuntu/

Источник: https://corp2.info/ustanovka-i-nastrojka-dns-servera-ubuntu/

Блог Элмора…

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

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

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

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-get install bind9 apt-get install dhcp3-server

apt-get install bind9

apt-get install dhcp3-server

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

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

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

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

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

mdgG4pTKI9sqqXUCAicNcA==

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

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

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

auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.2 #hwaddress ether 00:01:2e:2c:d6:70 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.

1 dns-nameservers 192.168.0.2 # The secondary network interface #auto wlan1 #iface wlan1 inet static # address 192.168.0.12 # #hwaddress ether 00:25:d3:f0:c2:92 # netmask 255.255.255.0 # gateway 192.168.0.

1

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

        address 192.168.0.2

        #hwaddress ether 00:01:2e:2c:d6:70

        netmask 255.255.255.0

        network 192.168.0.0

        broadcast 192.168.0.255

        gateway 192.168.0.1

        dns-nameservers 192.168.0.2

# The secondary network interface

#auto wlan1

#iface wlan1 inet static

#        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 nameserver 127.0.0.1

        domain team.local

        search team.local

        nameserver 127.0.0.1

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

/etc/init.d/networking restart

/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; };

        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 правится далее по тексту.

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

Создаём файлы прямой и обратной зоны для нашей локальной сети.
Файлы наших локальных зон должны лежать в директории: /var/lib/bind.

Если поместить эти файлы в папку /etc/bind, где уже лежат файлы описания корневых зон,то обновление записей для локальных зон производиться не будет, так-как локальная группа [bind] по умолчанию не имеет права на запись в эту директорию.

Итак, в папке /var/lib/bind создаём файл для прямой зоны, назовём его например: forward.bind. Файл используется DNS-сервером для преобразования имени компьютеров локальной сети в ip-адрес.
forward.bind

$TTL 86400 ; 1 day team.local. IN SOA ns1.team.local. admin.team.local. ( 20110103 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ; Minimum TTL ) ; DNS Servers IN NS ns1.team.local. ; MX Records IN A 192.168.0.

2 ; Machine Names 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 ; Aliases www IN CNAME @

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

$TTL 86400      ;       1 day

team.local.    IN      SOA      ns1.team.local. admin.team.local. (

                                20110103        ; Serial

                                10800           ; Refresh

                                3600            ; Retry

                                604800          ; Expire

                                86400           ; Minimum TTL

                        )

; DNS Servers

                IN      NS      ns1.team.local.

; MX Records

                IN      A       192.168.0.2

; Machine Names

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

; Aliases

www             IN      CNAME   @

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

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

bind

$TTL 86400 ; 1 day 0.168.192.in-addr.arpa. IN SOA 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.

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

$TTL 86400      ;       1 day

0.168.192.in-addr.arpa. IN SOA 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

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

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

key DHCP_UPDATER {

        algorithm HMAC-MD5.SIG-ALG.REG.INT;

        secret mdgG4pTKI9sqqXUCAicNcA== ;

};

zone “team.local” IN {

        type master;

        file “/var/lib/bind/forward.bind”;

        allow-update { key DHCP_UPDATER; };

};

zone “0.168.192.in-addr.arpa” IN {

        type master;

        file “/var/lib/bind/reverse.bind”;

        allow-update { key DHCP_UPDATER; };

};

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

/etc/init.d/bind9 restart

/etc/init.d/bind9 restart

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

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

; DiG 9.7.1-P2 ns1 ;; global options: +cmd ;; Got answer: ;; ->>HEADERHEADER

Источник: http://blog.elmor.ru/linux-i-ego-bratya/dnsdhcp-server-na-ubuntu/

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.