Создание и настройка первичной зоны в BIND
Прежде, чем приступить к настройке зоны, необходимо установить и предварительно настроить bind (инструкции для CentOS или Ubuntu).
Создание и настройка локальной зоны
Открываем конфигурационный файл bind.
В CentOS / Red Hat:
vi /etc/named.conf
В Ubuntu / Debian:
vi /etc/bind/named.conf.local
И добавляем следующее:
zone "test.local" {
type master;
file "master/test.local";
allow-transfer { 192.168.0.15; };
allow-update { none; };
};
* где test.local — имя зоны, которую будет обслуживать наш DNS-сервер. Это и есть домен, для которого bind будет хранить записи;
Описание опций настройки зоны:
Опция | Описание |
---|---|
type | тип зоны (в нашем случае первичная — значит master). Другие варианты — slave, stub, forward. |
file | Путь к файлу с записями зоны. В данном примере указан относительный путь — то есть файл находится по пути master/test.local, который начинается относительно рабочей директории (по умолчанию — /var/named/). Таким образом, полный путь до файла — /var/named/master/test.local. |
allow-transfer | Список других DNS-серверов (вторичных) для передачи им зоны. В нашем случае, зонные передачи разрешены серверу 192.168.0.15. Можно указывать подсети. |
allow-update | Список хостов, с которых разрешено обновление записей в зоне (для DDNS). Можно указать подсети. |
Чтобы настройки применились, необходимо перезапустить службу.
В CentOS / Red Hat:
systemctl reload named
В Ubuntu / Debian:
systemctl reload bind9
Создание файла зоны и настройка записей
Создаем каталог master (если он отсутствует).
В CentOS / Red Hat:
mkdir /var/named/master
В Ubuntu / Debian:
mkdir /var/cache/bind/master
И создаем файл зоны (в нашем примере test.local).
CentOS / Red Hat:
vi /var/named/master/test.local
Ubuntu / Debian:
vi /var/cache/bind/master/test.local
Приводим его к следующему виду:
$TTL 14400
test.local. IN SOA ns1.test.local. admin.test.local. (
2017082401 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
604800 ; Negative Cache TTL
)
IN NS ns1.test.local.
IN NS ns2.test.local.
IN MX 10 mx.test.local.
IN MX 20 mx2.test.local.
@ IN A 192.168.1.1
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5
www IN CNAME test.local.
Формат записей: <имя узла> <класс (всегда ставится IN)> <тип записи> <значение>.
Немного подробнее:
Параметр | Описание |
---|---|
$TTL | Время актуальности записей в секундах. Необходим, чтобы указать другим DNS-серверам, как долго стоит хранить запись у себя в кэше. Слишком малое значение увеличит нагрузку на сервер, а большое приведет к слишком длительному процессу изменения записи. |
SOA-запись | В данном примере эта запись идет сразу после параметра TTL. Ее стоит описать отдельно. Она хранит общие настройки для зоны.
|
<имя узла> | Собственно доменное имя хоста. Может записываться без домена (как в данном примере) — он будет дописан автоматически. Также может быть записан полностью с доменом — в таком случае необходимо поставить точку на конце, например, mail.test.local. Если не указывается или обозначается знаком собаки (@), запись создается для имени зоны (в данном случае, test.local). |
<класс> | Всегда используется IN (Internet). Указывает на тип сети. |
<тип записи> |
Основные типы записей, использующиеся в DNS:
|
<значение> | Используется IP-адрес, имя узла, текстовая запись. |
Чтобы зона начала работать, перечитываем ее:
rndc reload
Проверка
С другого компьютера вводим команду:
nslookup mail.test.local 192.168.0.15
* где 192.168.0.15 — наш настроенный DNS-сервер.
** сервер должен вернуть IP-адрес для запрошенного узла — а именно 192.168.1.5