Настройка DNS-сервера с Bind9 на VPS: пошаговое руководство

ГлавнаяНастройка DNS-сервера с Bind9 на VPS: пошаговое руководство

Содержание

Когда я впервые столкнулась с задачей развернуть свой DNS-сервер на VPS, мне показалось, что это что-то из мира сетевой магии. Но на деле — всё гораздо проще, особенно если выбрать проверенное решение, такое как Bind9. В этой статье я расскажу, как настроить DNS-сервер на Ubuntu с помощью Bind9, на что обратить внимание и как избежать типичных ошибок. Всё проверено на собственном опыте.


Зачем вообще свой DNS-сервер?

Обычно VPS уже работает с DNS от провайдера, но иногда возникает необходимость в собственном DNS-сервере:

  • Вы хотите полную автономность и не зависеть от внешних служб;
  • Нужно развернуть приватную сеть или VPN с внутренними доменами;
  • Есть необходимость управлять зонами DNS вручную (например, при работе с корпоративным доменом);
  • Хотите повысить скорость отклика для локальных клиентов или интегрировать DNS в систему мониторинга и безопасности.

Что такое Bind9 и почему он?

Bind9 — один из самых старых и стабильных DNS-серверов в Linux-среде. Поддерживает:

  • DNSSEC;
  • Зоны прямого и обратного разрешения;
  • IPv6;
  • Slave/Primary архитектуру;
  • Высокую гибкость конфигурации.

Если вам нужно надёжное, хорошо документированное решение — Bind9 для Ubuntu или Debian подойдёт идеально.


Установка Bind9 на Ubuntu VPS

Первым делом подключаемся к нашему серверу по SSH и обновляем систему:

sudo apt update && sudo apt upgrade -y

Теперь устанавливаем Bind9 и утилиты для работы с DNS:

sudo apt install bind9 bind9utils bind9-doc -y

Проверим, что сервис запущен:

sudo systemctl status bind9

Если всё в порядке — переходим к настройке.


Настройка зоны и конфигурация Bind9

Файлы конфигурации хранятся в

/etc/bind
. Главное, что нам нужно:

  1. named.conf.options
  2. named.conf.local
  3. Зональные файлы в
    /var/cache/bind
    или
    /etc/bind/zones

Создаём директорию для зон, если её нет:

sudo mkdir /etc/bind/zones
Пример: настройка прямой зоны

Редактируем

named.conf.local
:

zone "example.local" { type master; file "/etc/bind/zones/db.example.local"; };

Создаём файл зоны:

sudo nano /etc/bind/zones/db.example.local

Пример содержимого:

$TTL 604800 @ IN SOA ns1.example.local. admin.example.local. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.local. ns1 IN A 192.168.1.10 www IN A 192.168.1.20

Проверяем синтаксис:

sudo named-checkzone example.local /etc/bind/zones/db.example.local

И перезапускаем сервис:

sudo systemctl restart bind9

Настройка DNS клиента на Ubuntu

Если вы хотите, чтобы сам сервер использовал локальный DNS, пропишите его в

netplan
или в
/etc/systemd/resolved.conf
, либо напрямую в
/etc/resolv.conf
(хотя он может быть перезаписан):

nameserver 127.0.0.1

Для постоянной настройки используйте:

sudo nano /etc/systemd/resolved.conf

И задайте:

DNS=127.0.0.1 FallbackDNS=1.1.1.1 8.8.8.8

Перезапустите службу:

sudo systemctl restart systemd-resolved

Установка обратной зоны (Reverse DNS)

Если вы хотите настроить PTR-записи, добавьте в

named.conf.local
:

zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/zones/db.192"; };

И создайте файл зоны

db.192
:

$TTL 604800 @ IN SOA ns1.example.local. admin.example.local. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns1.example.local. 10 IN PTR ns1.example.local. 20 IN PTR www.example.local.

Проверка и отладка

После настройки проверьте работу DNS:

dig @127.0.0.1 example.local

или

nslookup www.example.local 127.0.0.1

Проверьте лог ошибок:

sudo journalctl -u bind9

Возможные проблемы

  • “permission denied” при запуске — проверьте права и SELinux (если используете CentOS или AlmaLinux).
  • “zone not loaded” — ошибка в конфигурации зоны или пути к файлу.
  • 127.0.0.1 не отвечает — убедитесь, что
    bind9
    слушает на
    localhost
    , проверьте файл
    named.conf.options
    и настройку интерфейсов.

Так что…

Настроить DNS-сервер на VPS с помощью Bind9 — задача вполне по силам даже для начинающих. Главное — не бояться копаться в конфигурации, проверять всё пошагово и не забывать перезапускать службы после изменений.

Свой DNS-сервер даёт контроль, скорость и независимость — особенно если вы разворачиваете инфраструктуру с несколькими сервисами или хотите повысить устойчивость.


Если вы дошли до этого момента — вы точно готовы управлять своим DNS-сервером!