- Что такое BIND9?
- Что такое DNS?
- Знакомимся с пакетом BIND Utilities
- Информация о пакете
- Зависимости пакет BIND Utilities
- Установка пакета BIND Utilities
- Пояснение команд
- Описание пакета
- Если вам понравилась статья, поделитесь ею с друзьями
- Как работает DNS?
- Настройка BIND9
- Настройка просушиваемых интерфейсов (IP-адресов)
- Создание зон прямого просмотра (домен -> IP)
- Создание зон обратного поиска (IP -> домен)
- Проверка синтаксиса конфигурации BIND
- Применение настроек и проверка
- Установка DNS сервера BIND 9
- Установка BIND9
- Заключение
Что такое BIND9?
BIND является наиболее широко используемым программным обеспечением сервера имен в Интернете. Он поддерживает ряд различных протоколов службы доменных имен, включая BIND4 (оригинальный Berkeley Internet Name Domain, версия 4), BIND8 (исторический преемник BIND4), а также службы DNS для IPv6 посредством двух отдельных реализаций: одна основана на демоне, а другая называется lwres (light-weight resolver).
BIND 9.16.33 — это текущая стабильная версия BIND, доступная для загрузки с дистрибутивов Debian.
Что такое DNS?
Может существовать несколько вторичных DNS-серверов, которые содержат актуальную копию информации, содержащейся на соответствующих главных DNS-серверах. В дополнение к разрешению запросов с использованием зеркалированных данных, вторичные DNS-серверы также обеспечивают отказоустойчивость в случае выхода из строя основного мастера, отвечая на запросы самостоятельно в ожидании ответов от основного мастера.
Запросы обрабатываются рекурсивными DNS-серверами на основе информации в их кэше в сочетании с данными рекурсивного сервера имен, указанными в файле /etc/resolv.conf. Система доменных имен является важнейшим элементом архитектуры Интернета, она необходима для объединения компьютеров в сеть, которую мы сегодня называем «Интернет».
Параметры конфигурации DNS можно редактировать с помощью инструмента «dig» или непосредственно редактируя файлы зон. Редактирование файлов зон не рекомендуется, поскольку ошибка может привести к недоступности веб-сайта, хотя такое случается крайне редко. Если вы не уверены в том, что делаете, то по возможности используйте инструмент dig. Некоторые пакеты BIND или Berkeley Internet Name Domain поставляются с «dnsutils» и «host», которые используются для запроса DNS-серверов и вывода результатов. В большинстве систем UNIX также имеется утилита nslookup, которую можно использовать для аналогичных целей. Однако «dig» обычно более надежен, чем оба этих инструмента.
Знакомимся с пакетом BIND Utilities
BIND Utilities — это не отдельный пакет, он является набором клиентских программ, которые входят в состав пакета BIND-9.8.1-P1. В пакете BIND находятся клиентские программы nslookup, dig и host. Если вы устанавливаете сервер BIND, то эти программы будут установлены автоматически. Этот раздел предназначен для тех пользователей, которым не нужен полноценный сервер BIND, но которым требуются приложения, используемые на клиентской стороне.
Известно, что пакет правильно собирается и работает на платформе LFS-7.0.
Информация о пакете
- Загрузка (HTTP): http://gd.tuwien.ac.at/infosys/servers/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
- Загрузка (FTP): ftp://ftp.isc.org/isc/bind9/9.8.1-P1/bind-9.8.1-P1.tar.gz
- Контрольная сумма MD5: afa41f8203d50bedad65071f9b6f96d7
- Размер загружаемого пакета: 8,1 MB
- Оценочный размер требуемого дискового пространства: 109 MB
- Оценочное время сборки: 0,5 SBU
Зависимости пакет BIND Utilities
Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/bind-utils
Установка пакета BIND Utilities
Установите пакет BIND Utilities с помощью следующих команд:
./configure —prefix=/usr &&
make -C lib/dns &&
make -C lib/isc &&
make -C lib/bind9 &&
make -C lib/isccfg &&
make -C lib/lwres &&
make -C bin/dig
Для этой части пакета набор тестов отсутствует.
Теперь в роли пользователя root выполните:
make -C bin/dig install
Пояснение команд
make -C bin/dig: Эта команда собирает клиентские программы.
Описание пакета
Установленные программы: dig, host и nslookup
Установленные библиотеки: Нет
Установленные директории: Нет
Смотрите описания программ в разделе BIND-9.8.1-P1 главы 19.
Если вам понравилась статья, поделитесь ею с друзьями
Прежде чем мы начнём процесс установки DNS-сервера в Debian, вы должны спросить себя: «Действительно ли мне нужен DNS-сервер?».
Эта статья посвящена только IPv4, поэтому если вы заинтересованы в использовании DNS для IPv6, вам придётся проделать больше работы. Это руководство больше не поможет вам в таких вопросах, как добавление записей AAAA вручную и т.д.
Для проверки шагов в этом руководстве необходима свежая установка сервера Debian. Некоторые из используемых здесь команд могут отличаться для вашего случая, и эти различия будут указаны там, где это необходимо.
В вашей системе уже должны быть настроены пользователь sudo и брандмауэр.
Как работает DNS?
Как вы видите, каждый домен или поддомен имеет свой собственный авторитетный сервер имен, и он отвечает за разрешение запросов только для этого поддомена. Поэтому DNS-сервер должен обладать всей информацией для ответа на любой запрос о конкретном домене. Поэтому если «example.com» не является основным доменом вашего локального DNS-сервера, то он не сможет разрешить запросы для www.example.com без перенаправления их вверх по течению.
По возможности настраивайте разные серверы имен для каждого поддомена, поскольку каждый из них требует отдельного обслуживания и административных процедур. Фактически, именно так DNS был разработан в самом начале, когда протоколы TCP/IP были выпущены в 1983 году до изобретения системы доменных имен. Это было сделано позже, после создания регистрационных служб InterNIC в 1992 году. Поддомены были введены в качестве расширения протокола DNS, и предназначались они только для административных целей.
Когда DNS-сервер получает запрос от клиента, он сначала проверяет кэш, чтобы убедиться, что в нем есть все необходимые записи. Если записей не найдено или они недостаточно свежие, он выполняет следующие рекурсивные запросы:
Если это запрос Internet (IN), то он разрешает имена хостов, начиная с корня домена и работая вниз через каждый родительский домен, пока не достигнет авторитетных серверов для этой зоны. Это называется «начинать сверху», и обычно это делается первым, поскольку серверы имен, отвечающие за ДВУ (.com, .net и т.д.), имеют более высокую скорость соединения с большей пропускной способностью, чем серверы для доменов второго уровня, например, «example». При этом ваш локальный DNS-сервер учитывает, может ли он доверять ответу вышестоящих DNS-серверов. Если у вас нет доступа к файлу /etc/hosts или /etc/resolv.conf, а DNS-серверы, используемые вашим провайдером, кэшируют свои ответы, то есть шанс, что большая часть вашего сетевого трафика регистрируется. Таким образом, это может представлять угрозу безопасности, а если нет, то он будет напрямую запрашивать эти данные у рекурсивных серверов. Это называется «начинать снизу», поскольку серверы имен, отвечающие за домены второго уровня, имеют более низкую скорость соединения и меньшую пропускную способность, чем серверы, отвечающие за домены верхнего уровня.
Весь этот процесс повторяется итеративно до тех пор, пока либо:
- Неавторитетный сервер имен отвечает на запрос IN, сообщая, что он не знает запрашиваемой информации.
- Сервер имен находит авторитетный, по его мнению, ответ на запрос и отправляет его обратно на клиентский компьютер.
- Истекает количество итераций, предварительно настроенное в кэше имен сервера имен.
В этом руководстве мы расскажем вам, как настроить собственный внутренний DNS-сервер в Debian. Для этого мы используем программное обеспечение сервера имен BIND (BIND9).
Настройка BIND9
Теперь, когда BIND9 установлен на вашем сервере, пришло время приступить к его настройке.
Каталог конфигурации для BIND находится в каталоге /etc/bind. В этом каталоге есть несколько важных файлов:
Файл с именем ‘named.conf’ — это основной конфигурационный файл, который содержит множество комментариев для пояснения каждого раздела.
Следующий конфигурационный файл, который мы будем редактировать, находится по адресу /etc/bind/named.conf.local. Этот файл содержит всю вашу сетевую информацию о сервере и зонах, которые вы хотите разрешать локально (с серверов имен).
Файл named.conf.default-zones находится по адресу /etc/bind/named.conf.default-zones. Этот файл содержит информацию о сервере для зон, используемых BIND, когда ему явно не указано использовать другую зону. Другими словами, зоны, которые включены.
Итак, давайте начнем с базовой конфигурации.

Настройка просушиваемых интерфейсов (IP-адресов)
По умолчанию BIND настроен на обслуживание всех доступных интересов, в предыдущих версиях только локального хоста.
Изменим это, отредактировав файл конфигурации named.conf.options
sudo nano /etc/bind/named.conf.options

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

Сохраните и закройте файл, когда закончите. Затем перезапустите демон BIND9 командой ниже:
sudo service bind9 restart
Теперь мы разрешили BIND9 прослушивать только определенный интерфейс.
Создание зон прямого просмотра (домен -> IP)
Теперь мы отредактируем файл «/etc/bind/named.conf.local», чтобы объявить зону прямого поиска:
sudo nano /etc/bind/named.conf.local
Добавьте следующее в конец файла:
Тип «master». Это файл зоны ведущего домена. Параметр типа может быть установлен в «slave», если вы размещаете прямую или обратную зону только для авторизации и не хотите разрешать динамические обновления.
«/etc/bind/db.domaine.com» — это файл, содержащий записи для домена «test.local» с полным путем.
Теперь мы создадим файл для каждой зоны, объявленной выше:
sudo nano /etc/bind/db.test.local
Заполните файл следующим образом
В этом файле замените значения test.local на ваше доменное имя, за которым следует точка (.) Это необходимо, и это НЕ является ошибкой.
Не забудьте сохранить и закрыть файл после завершения работы.
Создание зон обратного поиска (IP -> домен)
Имя обратной зоны состоит из идентификатора сети (обратного), за которым следует «.in-addr.arpa».
Теперь отредактируем файл «/etc/bind/named.conf.local», чтобы объявить обратную зону:
Затем добавьте в файл следующее:
Затем создадим файл для объявленной выше зоны:
Затем заполним файл следующим образом:
Проверка синтаксиса конфигурации BIND
Теперь мы проверим синтаксис конфигурации в каждом файле на наличие ошибок. Для этого у нас будет запрос named со следующей командой:
Если ошибок нет, эта команда вернется в пустую оболочку:
Применение настроек и проверка
Для применения настрок, введите команду
для проверки работы, введите команду nslookup со следующим синтаксисом
nslookup www.test.local 192.168.153.129

Для обратной зоны (PTR) синтаксис аналогичный
nslookup 10.20.30.100 192.168.153.129

Установка DNS сервера BIND 9
Процесс установки довольно прост, но давайте рассмотрим его подробнее. Во-первых, необходимо убедиться, что в системе установлены и обновлены все необходимые пакеты, выполнив следующую команду:
sudo apt-get update && sudo apt-get upgrade -y

Флаг -y будет автоматически отвечать «да» на все подтверждения, которые могут быть заданы.
Команда apt-get update обновит списки пакетов сервера. При использовании команды apt-get upgrade все установленные на сервере пакеты будут обновлены.
Это займет некоторое время в зависимости от скорости вашего сетевого соединения и количества устанавливаемых обновлений.
Установка BIND9
Теперь, когда ваша система обновлена, вы можете приступить к установке DNS-сервера — BIND. Это будет сделано путем установки нескольких новых пакетов:
sudo apt install bind9 bind9utils bind9-doc

Приведенная выше команда установит BIND9 и два вспомогательных пакета, которые содержат необходимые файлы для правильного функционирования DNS-сервера.
BIND9 — это программное обеспечение DNS-сервера.
bind9utils — это утилиты для управления конфигурацией BIND, а также название команды, используемой для управления BIND из командной строки.
bind9-doc — это пакет документации для программного обеспечения BIND.
Проверка установки сервера DNS
После завершения установки вы можете убедиться, что все пакеты были успешно установлены, выполнив следующую команду:
Приведенная выше команда покажет установленную версию BIND и его зависимостей.

BIND запускается автоматически при установке. Вы можете проверить его состояние с помощью команды systemctl, как показано ниже:
sudo systemctl status bind9

Команда выше даст вам более подробное представление о функциях BIND на вашем сервере, таких как активное время, количество зон и т.д.
Если вы захотите запустить, остановить или перезапустить BIND, просто выполните приведенные ниже команды:
По умолчанию сервер BIND будет работать от имени пользователя и группы bind. Это делает его достаточно безопасным, поскольку любые изменения в файлах зон разрешены только для этого пользователя. По умолчанию сервер BIND слушает DNS-запросы на порту 53. При желании вы можете изменить этот порт в файле named.conf. Выполните следующую команду, чтобы узнать, какой порт прослушивает ваш сервер BIND:

Приведенная выше команда показывает, что названный демон в настоящее время запущен и прослушивает порт 53 UDP. Используйте эту информацию, чтобы проверить, правильно ли вы используете номер порта.
Если ваш сервер не использует порт 53, вы можете исправить это, отредактировав /etc/bind/ named.conf.local и изменив номер порта на любой другой. Вы также можете изменить имя файла журнала сервера, отредактировав /etc/bind/ named.conf.default-zones и добавив утверждения логирования в директиве options.
Заключение
DNS — одна из самых важных служб на сервере. Все ее используют. Она нужна всем, и, в конце концов, вы же не хотите, чтобы ваши машины потерялись в сети, потому что не могут найти друг друга. Эта статья содержит руководство по настройке внутреннего DNS-сервера на Debian с использованием программного обеспечения сервера имён BIND (BIND9).

