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 добавляет остальные октеты, если пренебречь этим правилом обратное преобразование происходить не будет.
Настройка bind Ubuntu на этом завершена. Читайте также про DNS записи: CNAME, SOA, PTR . Для работы почты особенно важна SPF запись.