Установка bind9

В качестве авторитарных DNS серверов обычно использую BIND9. Для установки нам понадобится 1 машина в качестве master и как минимум одна в качестве slave.

Установим необходимые пакеты на оба сервера:

apt install bind9 bind9-utils bind9-doc

Открываем конфиг на master сервере:

nano /etc/bind/named.conf.options
options {
    directory "/var/cache/bind";
    allow-transfer { ip slave сервера; };
    also-notify { ip slave сервера; };
    allow-query { any; };
    recursion no;
    dnssec-validation auto;
};

Конфиг на slave сервере:

options {
    directory "/var/cache/bind";
    allow-query { any; };
    recursion no;
    dnssec-validation auto;
};

Перейдем к настройке зон:

nano /etc/bind/named.conf.local

На master:

zone "example.com" {
    type master;
    file "/etc/bind/example.com";
    allow-transfer { ip slave сервера; };
};

На slave:

zone "example.com" {
    type slave;
    masters { ip адрес master; };
    file "/var/cache/bind/example.com";
};

Теперь создадим файл зоны на master сервере:

nano /etc/bind/example.com

В качестве примера:

$TTL 3600
@   IN  SOA ns1.example.com. admin.example.com. (
        2025031201 ; Serial
        3600       ; Refresh
        1800       ; Retry
        604800     ; Expire
        86400 )    ; Minimum TTL
    IN  NS  ns1.example.com.
    IN  NS  ns2.example.com.
ns1 IN  A   192.168.0.1
ns2 IN  A   192.168.0.2
www IN  A   192.168.0.100

Выполняем проверку:

named-checkconf
named-checkzone example.com /etc/bind/example.com

Перезапускаем, активируем и проверяем статус:

systemctl restart bind9
systemctl enable bind9
systemctl status bind9

Если ошибок нет, то ок. Можно еще проверить:

dig example.com @вашинс

На slave:

rndc status
rndc zonestatus example.com