Как настроить BIND9 первичным DNS-сервером (Primary DNS) на Ubuntu 20.04

NK
Nikolay Krasilnikov
4 мая 2021

Вы можете использовать DNS-сервер по-разному. В этом руководстве мы настроим BIND9 в качестве первичного DNS-сервера для доменного имени. После этого вы сможете указать IP-адреса различных доменных служб, например, почтового сервера, а также доменов третьего уровня. Перед началом работы выполните установку и базовую настройку BIND9.

Создадим зону DNS

Мы будем использовать в качестве примера «domain-name.com». При настройке просто измените его на свое доменное имя, а свои реальные IP-адреса укажите вместо 10.1.1.xxx.

Добавьте информацию о зоне в конфигурацию.

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

Затем добавьте следующие строки.

zone "domain-name.com" {
        type master;
        file "/etc/bind/db.domain-name.com";
        allow-transfer { 10.1.1.10; };
        also-notify { 10.1.1.10; };
};
  • type — master, slave, forward или hint;
  • file — указывает путь к файлу новой зоны;
  • allow-transfer — список DNS-серверов, которым разрешено передавать зону;
  • also-notify — первичный DNS-сервер будет уведомлять эти серверы об изменениях зоны.

Выполните перезапуск службы.

systemctl reload bind9

Конфигурационный файл зоны

Создайте файл зоны из шаблона и откройте его.

sudo cp /etc/bind/db.local /etc/bind/db.domain-name.com
sudo nano /etc/bind/db.domain-name.com

Замените localhost в записи SOA полным доменным именем вашего сервера с указанием «.» в конце. В примере это «ns.domain-name.com.». А root.localhost замените на свой действующий адрес электронной почты администратора с указанием «.» вместо «@» и «.» в конце.
Serial — порядковый номер изменения. Его необходимо увеличивать вручную каждый раз, когда меняется файл зоны. Вторичный сервер отслеживает изменения в зоне с помощью этого параметра.

;
;
;
$TTL    604800
@       IN      SOA     ns.domain-name.com. admin.domain-name.com. (
                              2        ; Serial
                         604800        ; Refresh
                          86400        ; Retry
                        2419200        ; Expire
                         604800 )      ; Negative Cache TTL
;
@       IN      NS      ns.domain-name.com.
@       IN      A       10.1.1.1
ns      IN      A       10.1.1.9
ns2     IN      A       10.1.1.10
mx      IN      A       10.1.1.15

Внизу файла находятся записи DNS. Формат записи: hostname<tab>class<tab>DNS record type<tab>value. Где:

  • hostname — чаще всего это значение является доменным именем третьего уровня, и «domain-name.com» заполняется автоматически. @ или none означает запись для имени зоны (в данном случае domain-name.com). Вы также можете указать полное доменное имя с точкой в конце (например, ns.domain-name.com.);
  • class — IN (Internet) — указывает на тип сети;
  • Наиболее распространенные типы DNS-записей: A, NS, MX, CNAME, TXT. «A» содержит IP-адрес доменного имени, «NS» — IP-адрес DNS-сервера зоны, «MX» — почтовый сервер, «CNAME» — псевдоним, относящийся к значению указанной записи, «TXT» — произвольная запись;
  • value — IP-адрес, имя хоста, текстовая информация.

Перезапустите rndc.

sudo rndc reload

Затем проверьте DNS-сервер. Введите эту команду с любого удаленного компьютера.

nslookup domain-name.com 10.1.1.9

Замените domain-name.com своим полным доменным именем, а 10.1.1.9 — адресом только что настроенного сервера имен. В качестве ответа будет использоваться A-запись DNS вашего домена. В данном примере это 10.1.1.1.

Следующий шагBIND9 — вторичный DNS-сервер.

Остались вопросы? Задайте их нашему эксперту и получите квалифицированную помощь