мета-данные страницы
  •  

Это старая версия документа!


Настройка 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

3. Отключение конфликтов с системным resolvconf

Чтобы системный менеджер сетевых настроек не затирал конфигурацию dnsmasq, очистите его настройки и удалите дефолтный хук:

1.Очистите содержимое конфигурационного файла /etc/resolvconf.conf, оставив параметр пустым:

dnsmasq_conf=

Удалите сгенерированный автоматически конфиг и обновите состояние:

rm -f /etc/dnsmasq.conf.d/60-resolvconf
resolvconf -u

4. РАЗВЕТВЛЕНИЕ: Планируется ли Samba Active Directory DC? На этом шаге вам нужно определиться, будет ли в вашей сети развернута Samba DC (Контроллер домена). От этого зависит, как dnsmasq будет обрабатывать локальные имена. Выбирай один из двух вариантов ниже:

ВАРИАНТ 1: Samba DC не планируется(Простой DNS на базе локального файла) Если контроллера домена не будет, dnsmasq сам создаст A и PTR записи на основе системного файла /etc/hosts. Открой /etc/hosts и жестко пропиши туда все машины сети:

<IP_роутера_1>       <имя_роутера_1>.<ваш_домен>
<IP_сервера_1>       <имя_сервера_1>.<ваш_домен>
<IP_клиента_1>       <имя_клиента_1>.<ваш_домен>

ВАРИАНТ 2: Samba AD DC ПЛАНИРУЕТСЯ (Форвардинг зоны на контроллер домена) Если в сети разворачивается контроллер домена, `dnsmasq` не должен сам управлять этой зоной через `/etc/hosts`, так как для работы Active Directory необходимы динамические записи и SRV-службы, создаваемые Самбой. Настраивается перенаправление запросов.

Откройте основной конфиг `/etc/dnsmasq.conf` и укажите перенаправление локальной зоны и обратной зоны на IP-адрес сервера, где поднимается Samba DC:
   dnsmasq.conf
Перенаправлять запросы к доменной зоне на контроллер домена
   server=/<ваш_локальный_домен>/<IP_сервера_Samba_DC>

Перенаправлять запросы обратной зоны (PTR) для вашей подсети (пример для 192.168.0.0/16)
   server=/<обратная_зона_сети_в_формате_arpa>/<IP_сервера_Samba_DC>

Применение настроек и запуск Включите службу в автозагрузку и перезапустите её для применения всех изменений:

systemctl enable dnsmasq
systemctl restart dnsmasq

Настройка клиентов и проверка 1. На всех остальных машинах инфраструктуры (клиенты, другие серверы, роутеры) измените IP-адрес DNS-сервера со внешнего на локальный IP-адрес только что настроенного сервера `dnsmasq`: `<IP_вашего_DNS_сервера>`. 2. Перезагрузите машины для гарантированного обновления сетевых параметров:

<code>
 reboot
</code>

3. После перезагрузки проверьте корректность разрешения имен (прямой и обратный просмотр) с помощью утилит `host`, `dig` или `nslookup`:

 <code>
 host <имя_сервера>.<ваш_домен>
 host <IP_адрес_любой_машины>
</code>

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