Logo
  • ГЛАВНАЯ
  • ОБО МНЕ
  • СЕРТИФИКАТЫ
nocip.ssh@mail.ru
Главная  >  Linux

Настройка DNS сервера bind для локальной сети


Создана 25.03.2026
Отредактирована 27.03.2026
Simple Text

Как правильно выбрать домен для локального использования?

Отличный вопрос! Например, nocip.ru — это реальный домен, и использовать его для локальной сети неправильно и опасно. Давайте разберем, как правильно выбирать доменные имена для локального использования.

Почему нельзя использовать реальные домены локально?

Проблемы с использованием nocip.ru:
  1. Конфликт с глобальным DNS: Если nocip.ru существует в интернете, ваши локальные запросы могут уйти в интернет или вызвать путаницу;
  2. SSL-сертификаты: Браузеры будут пытаться проверить реальные сертификаты;
  3. Утечка запросов: Конфиденциальная информация о вашей сети может утечь наружу;
  4. Непредсказуемое поведение: Некоторые приложения могут работать некорректно.

Правильные варианты для локальных доменов

  • для домашней сети: home.arpa , local.lan , myhome.internal;
  • для малого офиса: office.internal , corp.local , company.private
  • для предприятия с реальным доменом, например для домена nocip.ru: internal.nocip.ru , corp.nocip.ru , lan.nocip.ru
  • для лаборатории/тестов: lab.internal , test.local , dev.private
В нашем примере мы будем использовать домен corp.local , на рисунке 1 представлена локальная сеть для малого офиса, с двумя DNS-серверами (ns1.corp.local и ns2.corp.local).
Рис. 1. Локальная сеть

Итоговая структура

# Текст DNS-серверы: 10.20.20.0/24 ├── ns1 (10.20.20.4) // Основной DNS (master) └── ns2 (10.20.20.5) // Резервный DNS (slave) Сервера: 192.168.20.0/24 └── srv1 (192.168.20.4) // Физический сервер 1 Сервера: 10.40.0.0/24 └── srv2 (10.40.0.4) // Физический сервер 2

Настройка Master-сервера (ns1) — 10.20.20.4

Шаг 1: Установка BIND9

sudo apt update sudo apt install bind9 bind9utils dnsutils -y

  • bind9 — это сам DNS-сервер.
  • bind9utils — содержит полезные утилиты для проверки конфигурации, такие как named-checkconf.
  • dnsutils — предоставляет инструменты для диагностики, например, dig и nslookup, которые необходимы для тестирования.

Файлы конфигурации, которые нужно отредактировать

  1. named.conf.options (основные опции)
  2. named.conf.local (определение зон)
  3. db.corp.local (прямая зона для corp.local)
  4. db.10.40 (обратная зона для подсети 10.40.0.0/24)
  5. db.192.168.20 (обратная зона для подсети 192.168.20.0/24)

Шаг 2: Основные опции

Перейдите в директорию bind и посмотрите, находящиеся в ней файлы

cd /etc/bind/ && ls

Отредактируйте файл named.conf.options и приведите его к виду

sudo nano /etc/bind/named.conf.options

options { directory "/var/cache/bind"; listen-on { any; }; allow-query { 127.0.0.1; 10.20.20.0/24; 10.40.0.0/24; 192.168.20.0/24; // any; такой директивой можно дать доступ всем хостам к локальным DNS-серверам }; allow-recursion { 127.0.0.1; 10.20.20.0/24; 10.40.0.0/24; 192.168.20.0/24; }; forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-validation auto; };

В данном файле добавлены DNS сервера google 8.8.8.8 и 8.8.4.4, если локальный DNS сервер не может сопоставить найти доменное имя у себя, он запрашивает у вышестоящих DNS серверов.
Также были указаны подсети 10.20.20.0/24, 10.40.0.0/24 и 192.168.20.0/24 для доступа с запросами к DNS серверам. Если нужно открыть доступ для всех, то нужно добавить запись any;

Шаг 3: Определение зон

Далее отредактируем файл named.conf.local, этот файл отвечает за определение зон (зона бывает прямая и обратная)

// На ns1.corp.local (10.20.20.4) zone "corp.local" { type master; file "/etc/bind/zones/db.corp.local"; // Файл с записями A, MX, CNAME и т.д. allow-transfer { 10.20.20.5; }; // Разрешаем трансфер на ns2 also-notify { 10.20.20.5; }; // Уведомляем ns2 об изменениях }; zone "20.20.10.in-addr.arpa" { type master; file "/etc/bind/zones/db.10.20.20"; // Файл с PTR-записями для reverse DNS, подсеть 10.20.20/24 allow-transfer { 10.20.20.5; }; also-notify { 10.20.20.5; }; }; zone "40.10.in-addr.arpa" { type master; file "/etc/bind/zones/db.10.40"; // Файл с PTR-записями для reverse DNS, подсеть 10.40.0.0/24 allow-transfer { 10.20.20.5; }; also-notify { 10.20.20.5; }; }; zone "20.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/db.192.168.20"; // Файл с PTR-записями для reverse DNS, подсеть 192.168.20.0/24 allow-transfer { 10.20.20.5; }; also-notify { 10.20.20.5; }; };

Шаг 4: Прямая зона для corp.local

Создайте директорию zones

sudo mkdir -p /etc/bind/zones

Создайте файл db.corp.local

sudo cp db.local /etc/bind/zones/db.corp.local cd zones/

Отредактируйте файл named.corp.local и приведите его к виду

$TTL 3h @ IN SOA ns1.corp.local. admin.corp.local. ( 2 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Negative Cache TTL ; NS record @ IN NS ns1.corp.local. @ IN NS ns2.corp.local. ; DNS servers ns1 IN A 10.20.20.4 ns2 IN A 10.20.20.5 ; Servers srv1 IN A 192.168.20.4 srv2 IN A 10.40.0.4

Шаг 5: Обратные зоны

Создайте файлы для обратных зон и отредактируйте их

admin@ns1:/etc/bind/zones$ sudo cp db.local db.10.20.20

// Обратная зона для DNS (10.20.20.0/24) $TTL 3h @ IN SOA ns1.corp.local. admin.corp.local. ( 2 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Negative Cache TTL IN NS ns1.corp.local. IN NS ns2.corp.local. 4 IN PTR ns1.corp.local. 5 IN PTR ns2.corp.local.

admin@ns1:/etc/bind/zones$ sudo cp db.local db.192.168.20

// Обратная зона для серверов (192.168.20.0/24) $TTL 3h @ IN SOA ns1.corp.local. admin.corp.local. ( 2 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Negative Cache TTL IN NS ns1.corp.local. IN NS ns2.corp.local. 4 IN PTR srv1.corp.local.

admin@ns1:/etc/bind/zones$ sudo cp db.local db.10.40

// Обратная зона для серверов (10.40.0.0/24) $TTL 3h @ IN SOA ns1.corp.local. admin.corp.local. ( 2 ; Serial 3h ; Refresh 1h ; Retry 1w ; Expire 1h ) ; Negative Cache TTL IN NS ns1.corp.local. IN NS ns2.corp.local. 4.0 IN PTR srv2.corp.local.

Шаг 5: Проверка и запуск

# Проверка конфигурации sudo named-checkconf sudo named-checkzone corp.local /etc/bind/zones/db.corp.local sudo named-checkzone 20.20.10.in-addr.arpa /etc/bind/zones/db.10.20.20 sudo named-checkzone 40.10.in-addr.arpa /etc/bind/zones/db.10.40 sudo named-checkzone 20.168.192.in-addr.arpa /etc/bind/zones/db.192.168.20

# Запуск sudo systemctl restart bind9 sudo systemctl enable bind9 sudo systemctl status bind9 --no-pager

Настройка Slave-сервера (ns2) — 10.20.20.5

Шаг 1: Установка BIND9

sudo apt update sudo apt install bind9 bind9utils dnsutils -y

Файлы конфигурации, которые нужно отредактировать

  1. named.conf.options (основные опции)
  2. named.conf.local (определение зон)

Шаг 2: Основные опции

Отредактируйте файл named.conf.options и приведите его к виду

sudo nano /etc/bind/named.conf.options

options { directory "/var/cache/bind"; listen-on { any; }; allow-query { 127.0.0.1; 10.20.20.0/24; 10.40.0.0/24; 192.168.20.0/24; // any; такой директивой можно дать доступ всем хостам к локальным DNS-серверам }; allow-recursion { 127.0.0.1; 10.20.20.0/24; 10.40.0.0/24; 192.168.20.0/24; }; forwarders { 8.8.8.8; 8.8.4.4; }; dnssec-validation auto; };

Шаг 3: Определение зон (Slave)

// На ns2.corp.local (10.20.20.5) zone "corp.local" { type slave; file "/var/lib/bind/db.corp.local"; // Куда сохранять копии masters { 10.20.20.4; }; // Master-сервер }; zone "20.20.10.in-addr.arpa" { type slave; file "/var/lib/bind/db.10.20.20"; masters { 10.20.20.4; }; }; zone "40.10.in-addr.arpa" { type slave; file "/var/lib/bind/db.10.40"; masters { 10.20.20.4; }; }; zone "20.168.192.in-addr.arpa" { type slave; file "/var/lib/bind/db.192.168.20"; masters { 10.20.20.4; }; };

Важно: Slave хранит файлы зон в /var/lib/bind/, а не в /etc/bind/zones/.

Шаг 4:  Настройка прав

# Создаем директорию для кэша (если её нет) sudo mkdir -p /var/lib/bind sudo chown bind:bind /var/lib/bind

Итоговая структура

# Текст Master (ns1) 10.20.20.4 Slave (ns2) 10.20.20.5 ├── named.conf.local ├── named.conf.local │ ├── type master │ ├── type slave │ ├── allow-transfer { ns2 } │ └── masters { ns1 } │ └── also-notify { ns2 } │ └── /etc/bind/zones/ └── /var/lib/bind/ ├── db.corp.local (ручное) ├── db.corp.local (авто) ├── db.10.20.20 (ручное) ├── db.10.20.20 (авто) ├── db.10.40 (ручное) ├── db.10.40 (авто) └── db.192.168.20 (ручное) └── db.192.168.20 (авто)


🔁

Приветствуем всех любителей ретро-игровой индустрии на канале RetraR
Сувенирная и брендированная продукция с персонажами из любимых игр.
RetraR — Компьютерные игры для Nintendo Game Boy
RetraR - Computer games for Nintendo Game Boy 🌌🛸👽👾☄️🤖
RetraR - 任天堂ゲームボーイ用コンピュータゲーム 🎮🕹️👾

RetraR в VK
Канал - RetraR в Telegram
Канал - RetraR в Telegram

Оформить заказ

Нажимая на кнопку, вы даете согласие на обработку персональных данных

Спасибо за заказ

Ваш заказ принят в обработку. 

Мы свяжемся с вами в ближайшее время.