мета-данные страницы
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| bind_guide [2026/06/16 22:12] – [Развертывание локального сервера DNS (BIND 9)] kim1r | bind_guide [2026/06/16 23:36] (текущий) – [Развертывание локального сервера DNS (BIND 9)] kim1r | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== Настройка BIND DNS сервера ====== | ====== Настройка BIND DNS сервера ====== | ||
| - | 1. Установка пакетов | ||
| - | Установите сам DNS-сервер и утилиты для диагностики сети (например, | ||
| - | ```bash | ||
| - | apt-get update && apt-get install -y dnsmasq bind-utils | ||
| - | ``` | ||
| ====== Развертывание локального сервера DNS (BIND 9) ====== | ====== Развертывание локального сервера DNS (BIND 9) ====== | ||
| Полное руководство по настройке прямых и обратных зон для локальной инфраструктуры. | Полное руководство по настройке прямых и обратных зон для локальной инфраструктуры. | ||
| + | **1. Установка пакетов** | ||
| - | < | + | Установите сам DNS-сервер и утилиты для диагностики сети |
| - | cd / | + | |
| - | vim options.conf | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | ===== settings 2. Глобальные настройки (options.conf) ===== | + | |
| - | + | ||
| - | Перейдём в рабочую директорию BIND и приступим к редактированию главного файла настроек: | + | |
| < | < | ||
| - | cd /etc/bind/ | + | apt-get update && apt-get install -y dnsmasq |
| - | vim options.conf | + | |
| </ | </ | ||
| + | **2. Глобальные настройки DNS (/ | ||
| - | + | Создайте файл конфигурации для основных | |
| - | Добавьте или измените следующие | + | |
| < | < | ||
| - | // Слушать | + | # Игнорировать системный / |
| - | listen-on { any; }; | + | no-resolv |
| - | // Разрешить отправку запросов | + | # Вышестоящий (upstream) DNS-сервер для внешних |
| - | allow-query { any; }; | + | server=<любой по желанию ДНС> |
| - | // Если наш сервер не знает домен, переслать запрос вышестоящему серверу | + | # Слушать запросы на всех доступных |
| - | forward first; | + | interface=* |
| - | // IP-адрес вышестоящего DNS (например, | + | # Полное отключение |
| - | forwarders { IP_адрес_пересылки; | + | max-ttl=0 |
| - | + | max-cache-ttl=0 | |
| - | // Отключение | + | cache-size=0 |
| - | dnssec-validation no; | + | |
| - | + | ||
| - | // Частота опроса | + | |
| - | interface-interval 1; | + | |
| - | + | ||
| - | // Отключение кэширования для | + | |
| - | max-cache-ttl 0; | + | |
| - | max-ncache-ttl 0; | + | |
| - | max-cache-size | + | |
| </ | </ | ||
| + | **3. Отключение конфликтов с системным resolvconf** | ||
| + | Чтобы системный менеджер сетевых настроек не затирал конфигурацию dnsmasq, очистите его настройки и удалите дефолтный хук: | ||
| - | + | 1.Очистите содержимое конфигурационного файла / | |
| - | ===== add_location_alt 3. Регистрация локальных зон ===== | + | |
| - | + | ||
| - | Теперь | + | |
| < | < | ||
| - | vim local.conf | + | dnsmasq_conf= |
| </ | </ | ||
| - | Добавьте **прямую зону** (преобразует имена в IP-адреса): | + | Удалите сгенерированный автоматически конфиг и обновите состояние: |
| < | < | ||
| - | zone " | + | rm -f / |
| - | type master; | + | resolvconf -u |
| - | file " | + | |
| - | }; | + | |
| </ | </ | ||
| + | **4. РАЗВЕТВЛЕНИЕ: | ||
| + | На этом шаге вам нужно определиться, | ||
| - | Добавьте **обратную зону** | + | ВАРИАНТ 1: Samba DC не планируется(Простой DNS на базе |
| + | Если контроллера домена не будет, dnsmasq сам создаст A и PTR записи на основе системного файла /etc/hosts. | ||
| + | Открой / | ||
| < | < | ||
| - | zone "ваша_подсеть_в_обратном_порядке.in-addr.arpa" | + | < |
| - | type master; | + | <IP_сервера_1> |
| - | file "ваш_домен.rev"; | + | <IP_клиента_1> |
| - | }; | + | |
| </ | </ | ||
| - | + | ВАРИАНТ 2: Samba AD DC планируется (Форвардинг зоны на контроллер | |
| - | Создадим | + | Если в сети разворачивается контроллер домена, `dnsmasq` не должен |
| < | < | ||
| - | cp zone/localhost zone/ваш_домен | + | Откройте основной конфиг `/etc/dnsmasq.conf` и укажите перенаправление локальной зоны и обратной зоны на IP-адрес сервера, |
| - | cp zone/ | + | |
| - | </code> | + | Перенаправлять запросы к доменной зоне на контроллер домена |
| + | server=/<ваш_локальный_домен>/< | ||
| - | + | Перенаправлять запросы обратной зоны (PTR) для | |
| - | + | server=/< | |
| - | + | ||
| - | ===== list_alt 4. Заполнение записей | + | |
| - | + | ||
| - | Откройте | + | |
| - | + | ||
| - | < | + | |
| - | $TTL 1D | + | |
| - | ; Запись SOA содержит | + | |
| - | @ | + | |
| - | | + | |
| - | 12H ; Refresh | + | |
| - | 1H ; Retry | + | |
| - | 1W ; Expire | + | |
| - | 1H ) ; ncache | + | |
| - | + | ||
| - | ; Указание Nameserver (NS) | + | |
| - | IN NS имя_днс_сервера.ваш_домен. | + | |
| - | + | ||
| - | ; A-запись для самого домена | + | |
| - | @ | + | |
| - | + | ||
| - | ; Обязательная запись для самого DNS-сервера | + | |
| - | имя_днс_сервера IN A IP_адрес_днс_сервера | + | |
| - | + | ||
| - | ; ПРИМЕР: | + | |
| - | web-server | + | |
| - | db-server | + | |
| </ | </ | ||
| - | + | Применение | |
| - | + | Включите службу в автозагрузку и перезапустите её для применения | |
| - | + | ||
| - | ===== swap_horiz 5. Заполнение | + | |
| - | + | ||
| - | Аналогично | + | |
| < | < | ||
| - | $TTL 1D | + | systemctl enable dnsmasq |
| - | @ | + | systemctl restart dnsmasq |
| - | 2026010100 | + | |
| - | 12H ; Refresh | + | |
| - | 1H ; Retry | + | |
| - | 1W ; Expire | + | |
| - | 1H ) ; ncache | + | |
| - | + | ||
| - | IN NS имя_днс_сервера.ваш_домен. | + | |
| - | + | ||
| - | ; Запись PTR для самого DNS-сервера (левая часть — последний октет IP) | + | |
| - | последний_октет_сервера IN PTR | + | |
| - | + | ||
| - | ; ПРИМЕР: | + | |
| - | 50 IN PTR | + | |
| - | 51 IN PTR | + | |
| </ | </ | ||
| - | + | Настройка клиентов и проверка | |
| - | + | 1. На всех остальных машинах инфраструктуры (клиенты, другие серверы, роутеры) измените | |
| - | + | 2. Перезагрузите машины для гарантированного обновления сетевых параметров: | |
| - | ===== play_circle 6. Права доступа и запуск ===== | + | < |
| - | + | reboot | |
| - | Вернитесь в корневую директорию пользователя. Необходимо выдать сервисному аккаунту '' | + | </ |
| - | + | 5. После перезагрузки проверьте корректность разрешения имен (прямой | |
| - | < | + | < |
| - | cd ~ | + | host < |
| - | chown -R :named / | + | host < |
| - | chmod -R 777 / | + | </ |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | warning | + | |
| - | **Примечание | + | |
| - | + | ||
| - | + | ||
| - | Включаем автозапуск и стартуем сервис BIND: | + | |
| - | + | ||
| - | < | + | |
| - | systemctl enable --now bind | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | ===== check_circle 7. Тестирование и клиенты ===== | + | |
| - | + | ||
| - | Сначала убедимся, что DNS отвечает локально на самом сервере: | + | |
| - | + | ||
| - | < | + | |
| - | nslookup узел_1 127.0.0.1 | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | Если всё успешно, | + | |
| - | + | ||
| - | * На всех | + | |
| - | * Перезагрузите клиентские машины или | + | |
| - | + | ||
| - | Проверьте связность по доменному имени с любой | + | |
| - | + | ||
| - | <code> | + | |
| - | ping узел_1 | + | |
| - | </ | + | |
| - | + | ||