Настраиваем отказоустойчивый DNS-сервер на базе BIND 9
DNS-сервер относится к наиболее критичным элементам сетевой инфраструктуры, так как именно на него возлагается задача разрешения доменных имен, без которой трудно представить работу любой сети. Поэтому важно не допускать перебоев в обслуживании клиентов, а справиться с этой задачей нам поможет отказоустойчивая конфигурация из нескольких DNS-серверов. В данной статье мы рассмотрим, как создать собственную инфраструктуру DNS при помощи полнофункционального и открытого DNS-сервера BIND 9.
Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik.
Обновлено: 25.08.2018 Опубликовано: 28.12.2016
программа для настройки собственного DNS-сервера. В основном устанавливается на сервера под управлением UNIX, но имеет также сборку под Windows. Расшифровывается как Berkeley Internet Name Domain.
Инсталляция сервера bind, как правило, выполняется из репозитория Linux (Debian, Ubuntu, CentOS и так далее) или портов (FreeBSD, Gentoo, . ). Также можно скачать пакет для установки с официального сайта. На момент обновления статьи последняя версия была 9.
Лекция 4. bind & function
Настройка сервера выполняется в файле named.conf. В зависимости от операционной системы, могут применяться дополнительные подключаемые конфигурационные файлы. Настройка зон выполняется также в конфигурационном файле named.conf. Пример настроенной первичной зоны:
zone «test.local» type master;
file «master/test.local»;
>;
* type — тип зоны (первичная или вторичная); file — файл, в котором будут храниться записи для зоны.
После внесения изменений в файл конфигурации необходимо перезапустить демон named, например:
systemctl restart named
BIND как DNS система очень популярен и может применяться для реализации многих задач:
- Кэширующий DNS-сервер.
- Локальный сервер имен для обслуживания внутренней сети.
- Сервер имен уровня провайдера для обслуживания клиентов.
- Перенаправление DNS запросов на другие серверы имен (Stub Zone, Forward).
- Общедоступный DNS-сервер (например, серверы от Google 8.8.8.8 и Яндекс — 77.88.8.8).
Прочитайте более подробно о BIND на сайте Википедия
Встречается в статьях
Инструкции:
- Сервер радиовещания на базе Icecast под Windows и Linux
- Как настроить OpenVPN с аутентификацией через LDAP
- Установка и настройка кластера Kubernetes на Linux Ubuntu
- Настройка почтового сервера Postfix для массовой рассылки сообщений
- Настройка сервера облачного хранения файлов Seafile на Linux Ubuntu
Мини-инструкции:
- Создание и работа с пользователями MySQL / MariaDB
- Как пользоваться командой systemctl
- Как установить и настроить bind на CentOS / Rocky Linux
- Как создать и настроить вторичную зону в BIND
- Как настроить HTTP/2 на Windows Server 2016 и выше
- Как создать и настроить локальную зону в BIND
- Получение бесплатного сертификата Lets Encrypt
- Перенаправление портов на роутере Mikrotik
- Как установить и настроить DNS-сервер Bind на Linux Ubuntu
- Настройка защиты DNS ответов от BIND при помощи DNSSEC
- Перенаправление DNS-запросов на Bind с помощью stub зоны
- Как установить и настроить сервер Haproxy на CentOS и Ubuntu
- Проброс USB с помощью сервера usbip на Linux Ubuntu
- Как использовать резервные копии iRedMail для восстановления или переноса сервера
- Настройка проксирования почты с NGINX для IMAP, POP3 и SMTP
- Уменьшение корневого раздела с файловой системой XFS на LVM
- Настройка Autodiscover для автоматического конфигурирования почтовых программ
- Настройка аутентификации Grafana через Active Directory
- Установка и настройка LDAP сервера FreeIPA на Linux CentOS
- Использование ntdsutil для ручного удаления контроллера домена
- Как работать с менеджером пакетов dnf/yum в операционной системе Linux CentOS
- Настройка общей адресной книги в различных почтовых клиентах
- Настройка аутентификации доменных пользователей в Nextcloud
- Настройка Views на сервере Bind для разных ответов в зависимости от сети (Split DNS)
- Примеры настройки сервисов и их установки с помощью ролей в Ansible
- Настройка почтовой системы Postfix + Dovecot с хранением данных в LDAP
- Как установить и работать с Redis на сервере под управлением Linux Ubuntu
- Как установить, настроить и подключиться к MongoDB на Linux Ubuntu
- Как установить Consul Hashicorp на несколько нод CentOS и настоить кластер
- Кластер серверов Hashicorp Vault с доступом через систему обнаружения Consul
- Настройка аутентификации пользователей FreeIPA на сервере OpenVPN
- Шпаргалка по работе с Dnsmasq — установка и примеры настройки
- Как установить и настроить Consul-агента и зарегистрировать на кластере сервис
- Как установить и работать с СУБД InfluxDB на сервер под управлением Linux Ubuntu
- Установка и настройка чат-сервера Zulip на Linux Ubuntu
- Как настроить отказоустойчивого кластер из двух серверов KeyDB
- Установка и настройка кластера Consul Hashicorp на нескольких нодах Linux Ubuntu
- Как обновить версию СУБД PostgreSQL на CentOS
- Настройка отказоустойчивого кластера Postgres + Patroni на Linux CentOS
- Как настроить связку почтовой системы iRedMail с MS Active Directory
- Как с помощью Consul Connect развернуть Service Mesh
- Как установить, настроить и подключиться к MongoDB на CentOS
- Настройка отказоустойчивого кластера Postgres + Patroni на Linux Ubuntu
Вопросы и ответы:
Примеры скриптов:
Источник: www.dmosk.ru
Как работает метод bind? 30 вопросов собеседования JavaScript
Установка и настройка 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 выполните следующую команду:
apt-get install bind9 dnsutils
В CentOS или Fedora:
yum install bind dnsutils
Пакет dnsutils необязателен для запуска сервера bind, но для тестирования конфигурации мы будем пользоваться командой dig из этого пакета.
Создание файла зоны DNS
Дальнейшие примеры будут для Ubuntu/Debian, но также подходят и для Centos/RedHat, только директория с настройками зон в CentOS будет находиться в /etc/named/ , а основной файл конфигурации /etc/named.conf . Для начала нам потребуется создать новый файл зоны для домена itproffi.ru. Перейдите в директорию /etc/bind/ . создайте в ней поддиректорию zones/master/ и перейдите в нее, выполнив следующую последовательность команд:
cd /etc/bind mkdir -p zones/master cd zones/master/
Директория /etc/bind/zones/master будет содержать файл зоны для домена itproffi.ru. При желании можно использовать другую директорию. Файл зоны db.itproffi.ru будет содержать запись DNS, которая поможет серверу имен установить соответствие полного доменного имени IP-адресу. Создайте этот файл со следующим содержимым:
Рассмотрим ключевые строки этого файла:
Настройка обратной зоны
На данном этапе DNS-сервер bind может выдать IP-адрес, связанный с узлом itproffi.ru. Теперь нам нужно научить наш сервер имен обратному процессу, то есть устанавливать соответствие имени IP-адресу. Для этого создадим еще один файл db.172.31.1 со следующим содержимым:
; ; Обратный файл данных BIND для 1.31.172.in-addr.arpa ; $TTL 604800 1.31.172.in-addr.arpa. IN SOA ns1.itproffi.ru. admin.itproffi.ru. ( 1 ; серийный номер 3h ; обновление каждые 3 часа 1h ; повторная попытка через час 1w ; срок годности – 1 неделя 1h ) ; хранение кэша отказов 1 час; 1.31.172.in-addr.arpa. IN NS ns1.itproffi.ru. 1.31.172.in-addr.arpa. IN NS ns2.itproffi.ru. 10.1.31.172.in-addr.arpa.
IN PTR itproffi.ru.
Запись PTR: DNS-запись, используемая для определения соответствия IP-адреса имени узла.
Настройка файла конфигурации bind
На данный момент у нас должно быть два файла:
/etc/bind/zones/master/db.itproffi.ru /etc/bind/zones/master/db.172.31.1
Теперь требуется вставить имена обоих файлов зоны в файл конфигурации bind /etc/bind/named.conf.local . Для этого добавьте в файл следующие строки:
zone «itproffi.ru» < type master; file «/etc/bind/zones/master/db.itproffi.ru»; >; zone «1.31.172.in-addr.arpa» < type master; file «/etc/bind/zones/master/db.172.31.1»; >;
Последний момент перед проверкой конфигурации – внести в файл named.conf.options IP-адрес стабильного DNS-сервера. Он будет использоваться, если локальный DNS-сервер не будет знать ответ на запрос разрешения имени. Часто этот адрес предоставляется интернет-провайдером, но если вы поклонник Google, можно указать адрес 8.8.8.8 или 8.8.4.4.
Замените следующий блок текста в файле named.conf.options:
// forwarders < // 0.0.0.0; // >;
на блок текста с адресом стабильного DNS-сервера
forwarders < 8.8.4.4; >;
Если вы планируйте что к вашему серверу будут подключаться другие компьютеры, то нужно разрешить в опциях внешние подключения. Для этого в основном файле конфигурации, в секции options добавьте или замените следующие правила
listen-on port 53 < any; >; allow-query < any; >;
А лучше, для безопасности вместо any пропишите ваши сети с которых разрешено подключение
listen-on port 53 < 192.168.0.0/24; >; allow-query < 192.168.0.0/24; >;
Если этого не сделать, то при попытке обращения к серверу с другого компьютера вы получите ошибку
Query refused
Проверка файлов зоны и конфигурации
Прежде чем попытаться запустить сервер имен с новой зоной и конфигурацией, можно воспользоваться некоторыми инструментами, чтобы проверить, что конфигурация корректна и не содержит ошибок.
Для проверки файлов конфигурации выполните следующую команду:
named-checkconf
С этой командой работает простое правило: отсутствие результата – это хороший результат. Если команда ничего не возвращает, значит ошибок в ваших файлах конфигурации не обнаружено.
Для проверки файлов зоны DNS можно воспользоваться командой named-checkzone:
named-checkzone itproffi.ru /etc/bind/zones/master/db.itproffi.ru zone itproffi.ru/IN: loaded serial 1 OK
Проверка обратной зоны
named-checkzone 1.31.172.in-addr.arpa /etc/bind/zones/master/db.172.31.1 zone 1.31.172.in-addr.arpa/IN: loaded serial 1 OK
Запуск и перезапуск сервера bind
Теперь мы можем запускать сервер bind:
/etc/init.d/bind9 start
Если сервер уже был запущен, его можно перезапустить командой restart:
/etc/init.d/bind9 restart
Для того что бы перечитать конфигурацию не перезапуская сервер, используйте команду
rndc reload
Тестирование сервера bind
Для тестирования новой конфигурации сервера имен bind нам пригодится команда dig из пакета dnsutils. Эту команду можно запустить на любом компьютере с сетевым доступом к вашему DNS-серверу, но лучше всего начать тестирование с локального узла. В рассматриваемом нами примере IP-адрес сервера имен 172.31.0.122. Сначала проверим прямое разрешение имени (получение IP-адреса по доменному имени):
Теперь проверим обратную зону:
Если вы получили аналогичные результаты, то зона DNS настроена правильно. Вместо команды dig для тестирования можно также использовать команду nslookup.
nslookup itproffi.ru 172.31.0.122
nslookup 172.31.1.10 172.31.0.122
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Похожие записи:
- Firewalld, установка и настройка, зоны, NAT, проброс портов
- Пользователи и группы в linux. Добавление удаление редактирование пользователей
- Команда cat в Linux
- Система контроля версий GIT
Источник: itproffi.ru