Stub и Forward зоны в BIND: перенаправление DNS-запросов
Зоны Stub и Forward перенаправляют DNS-запросы конкретной зоны на определённый DNS-сервер. Разница:
- Forward — только перенаправляет запросы;
- Stub — хранит минимальную информацию о серверах имён (NS) и автоматически её обновляет.
Инструкция для CentOS/Rocky, Ubuntu/Debian.
Разрешение на allow-query
Перед настройкой перенаправления разрешаем внешние запросы (по умолчанию сервер отвечает только локальным).
Ubuntu / Debian / Astra Linux:
vi /etc/bind/named.conf.options
Rocky / CentOS / РЕД ОС:
vi /etc/named.conf
Добавляем:
allow-query { any; };
any — все клиенты. Только для локальной сети:
allow-query { 192.168.0.0/24; };
systemctl reload named || systemctl reload bind
Static-stub
CentOS / Red Hat:
vi /etc/named.conf
Ubuntu / Debian:
vi /etc/bind/named.conf.local
Настраиваем зону:
zone "stub.local" {
type static-stub;
server-addresses { 192.168.0.15; 192.168.0.14; 10.10.10.10; };
};
где stub.local — домен для перенаправления, 192.168.0.15, 192.168.0.14, 10.10.10.10 — адреса DNS-серверов.
systemctl reload named || systemctl reload bind
Forward zone
zone "stub.local" {
type forward;
forwarders { 192.168.0.15; 192.168.0.14; 10.10.10.10; };
};
systemctl reload named || systemctl reload bind
Тонкости и подводные камни
allow-queryобязателен — без него сервер вернётREFUSEDвнешним клиентам.static-stubvsstub—static-stubзадаёт адреса серверов статически; классическийstubиспользует NS-записи из родительской зоны.forward— не рекурсия — forward-зона перенаправляет только запросы конкретной зоны, а не все.forward onlyvsforward first— вnamed.conf.optionsможно управлять поведением: только пересылка или сначала пересылка, потом самостоятельный резолв.- Порядок зон — forward/stub зоны объявляются в
named.conf.local(Ubuntu) илиnamed.conf(RPM). - Проверка —
dig @localhost stub.localиnamed-checkconfдля валидации синтаксиса.
Шпаргалка
# allow-query
vi /etc/bind/named.conf.options
# allow-query { 192.168.0.0/24; };
# static-stub
vi /etc/bind/named.conf.local
# zone "stub.local" { type static-stub; server-addresses { 192.168.0.15; }; };
# forward
# zone "stub.local" { type forward; forwarders { 192.168.0.15; }; };
systemctl reload bind9
named-checkconf
Проверено на: Ubuntu 22.04/24.04/26.04, CentOS/Rocky + BIND 9.18+.
Дата: Сентябрь 2026.