мета-данные страницы
Это старая версия документа!
Настройка BIND DNS сервера
Развертывание локального сервера DNS (BIND 9)
Полное руководство по настройке прямых и обратных зон для локальной инфраструктуры.
1. Установка пакетов Установите сам DNS-сервер и утилиты для диагностики сети (например, dig или nslookup):
apt-get update && apt-get install -y dnsmasq bind-utils
2. Глобальные настройки DNS (/etc/dnsmasq.conf.d/99-dns.conf)
Создайте файл конфигурации для основных параметров DNS. Здесь отключается кэширование и задается внешний вышестоящий DNS-сервер:
# Игнорировать системный /etc/resolv.conf, чтобы избежать зацикливания no-resolv # Вышестоящий (upstream) DNS-сервер для внешних запросов (например, Яндекс) server=77.88.8.8 # Слушать запросы на всех доступных сетевых интерфейсах interface=* # Полное отключение кэширования записей (опционально, если нужно по заданию) max-ttl=0 max-cache-ttl=0 cache-size=0
add_location_alt 3. Регистрация локальных зон
Теперь укажем серверу, за какие домены он отвечает. Откройте файл описания локальных зон:
vim local.conf
Добавьте прямую зону (преобразует имена в IP-адреса):
zone "ваш_домен" {
type master;
file "ваш_домен";
};
Добавьте обратную зону (преобразует IP-адреса обратно в имена). Имя обратной зоны строится из первых трёх октетов вашей подсети, записанных задом наперед. Например, для сети 192.168.1.0/24 зона будет называться 1.168.192.in-addr.arpa:
zone "ваша_подсеть_в_обратном_порядке.in-addr.arpa" {
type master;
file "ваш_домен.rev";
};
Создадим файлы самих зон, скопировав стандартные шаблоны:
cp zone/localhost zone/ваш_домен cp zone/127.in-addr.arpa zone/ваш_домен.rev
list_alt 4. Заполнение записей прямой зоны
Откройте созданный файл прямой зоны (vim zone/ваш_домен) и приведите его к следующему виду:
$TTL 1D
; Запись SOA содержит имя главного DNS сервера и email администратора (с точкой вместо @)
@ IN SOA имя_днс_сервера.ваш_домен. root.ваш_домен. (
2026010100 ; Serial (рекомендуется формат ГГГГММДДXX)
12H ; Refresh
1H ; Retry
1W ; Expire
1H ) ; ncache
; Указание Nameserver (NS)
IN NS имя_днс_сервера.ваш_домен.
; A-запись для самого домена
@ IN A IP_адрес_днс_сервера
; Обязательная запись для самого DNS-сервера
имя_днс_сервера IN A IP_адрес_днс_сервера
; ПРИМЕР: Добавление произвольных узлов инфраструктуры
web-server IN A 192.168.1.50
db-server IN A 192.168.1.51
swap_horiz 5. Заполнение записей обратной зоны
Аналогично заполним обратную зону (vim zone/ваш_домен.rev). Здесь вместо A-записей используются PTR-записи (Pointer), которые указывают только последний октет IP-адреса:
$TTL 1D
@ IN SOA имя_днс_сервера.ваш_домен. root.ваш_домен. (
2026010100 ; Serial
12H ; Refresh
1H ; Retry
1W ; Expire
1H ) ; ncache
IN NS имя_днс_сервера.ваш_домен.
; Запись PTR для самого DNS-сервера (левая часть — последний октет IP)
последний_октет_сервера IN PTR имя_днс_сервера.ваш_домен.
; ПРИМЕР: Добавление произвольных узлов инфраструктуры
50 IN PTR web-server.ваш_домен.
51 IN PTR db-server.ваш_домен.
play_circle 6. Права доступа и запуск
Вернитесь в корневую директорию пользователя. Необходимо выдать сервисному аккаунту named права на чтение файлов конфигурации, которые мы только что создали:
cd ~ chown -R :named /var/lib/bind/* chmod -R 777 /var/lib/bind/*
warning
Примечание безопасности: Использование прав 777 является небезопасным для продакшен-систем, так как разрешает всем модифицировать файлы зон. В рамках данной конфигурации это используется исключительно для устранения проблем с доступом на этапе обучения/отладки.
Включаем автозапуск и стартуем сервис BIND:
systemctl enable --now bind
check_circle 7. Тестирование и клиенты
Сначала убедимся, что DNS отвечает локально на самом сервере:
nslookup узел_1 127.0.0.1
Если всё успешно, переходите к настройке клиентских машин:
- На всех узлах сети замените внешний DNS-сервер (например,
8.8.8.8) на IP-адрес вашего нового локального DNS-сервера (IP_адрес_днс_сервера). - Перезагрузите клиентские машины или перезапустите сетевые интерфейсы, чтобы сбросить старый DNS-кэш.
Проверьте связность по доменному имени с любой клиентской машины:
ping узел_1