Установите пакет bind9.
Перейдите в каталог /etc/bind
. Давайте разберемся с содержимым этого каталога.
bind.keys
- этот файл предназначен для ключей, используемых в dnssec. Для нас он пока неинтересенdb.{0,127,255,empty,local}
- эти файлы можно назвать служебной информацией. Они определяют доменную зону локалхоста и дефолтные реверсные зоныdb.root
- тут содержатся адреса корневых DNS-серверов.named.conf
- основной конфигурационный файл. При запуске сервис ищет именно его, если не указано иное. Для удобства файл разбит на несколько частей, которые добавляются в него с помощью инструкции include.named.conf.default-zones
- в этом файле подключаются дефолтные доменные зоны, описанные ранее.named.conf.local
- тут можно описать доменные зоны, которые мы заведем на нашем сервере. Сейчас он нам не нужен, хотя в ходе урока мы до него доберемся.named.conf.options
- тут описываются настройки самого сервера, а не доменных зон.rndc.key
- ключ для утилиты rndc, с помощью которой управляют DNS-сервером. Утилита может жить как на том же сервере, так и на любом другом компьютере. Главное описать параметры подключения к DNS-серверу.zones.rfc1918
- тут описываются обратные зоны для серых подсетей. По умолчанию для них для всех используется empty.db, но при необходимости всегда можно переопределить.Нас сейчас будет интересовать только файл named.conf.options
. Откроем его с помощью текстового редактора:
Некоторые из доступных опций:
listen-on
- позволяет указать интерфейсы на которых DNS-сервер будет слушать запросы. Для работы на всех интерфейсах не указывайте параметр или же задайте «any;» Это может выглдить так:allow-query
- указывает, кому разрешено выполнять запросы. BIND9 по умолчанию разрешает только локальные запросы, поэтому добавьте необходимые IP-адреса или пропишите «any;», чтобы разрешить все запросы. Для удобства вы можете перед блоком options
создать acl
лист:forwarders
- cерверы пересылки содержат IP-адреса DNS-серверов, на которые перенаправляется запрос в случае, если наш сервер не содержит необходимых данных.Расскоментируйте блок forwarders
и добавьте адреса DNS серверов гугла.
Что бы сервер мог отвечать на запросы из любых сетей нужно добавить в блок optinos
запись:
Для проверки конфигурации bind9 есть команда:
Если она не чего не выводит то скорее всего все хорошо.
Перезагрузите dns сервер:
Для проверки работы DNS сервера можно сделать на него запрос с помощью утилиты nslookup
, чтобы обратиться к конретному DNS серверу, а не тому который у вас в настройках сетевого адаптера нужно указать ip DNS сревера после команды:
Вывод будет подобный этому:
Откройте в любом редакторе файл named.conf.local
. Для добавления зоны существует следующий синтаксис:
И так что у нас тут есть:
zone "mpt.xuz"
- собственно имя обслуживаемой зоны.type
- это тип зоны (в нашем случае первичная — значит master). Другие варианты — slave, stub, forward.file
- тут указываеться путь до файла с записями зоны.allow-query {any;};
аналогично подобной записи в named.conf.options.Что еще можно тут указать?
allow-transfer
- Список других DNS-серверов (вторичных) для передачи им зоны. Можно указывать подсети.allow-update
- Список хостов, с которых разрешено обновление записей в зоне (для DDNS). Можно указать подсети.И так давайте передем дальше. Создайте в каталоге /etc/bind
папку master
.
Для конфигурирования зоны в директории /etc/bind
уже есть готовый шаблон:
Создайте на основе этого шаблона файл /etc/bind/master/mpt.xuz.zone
. Для этого можно использовать команду:
Теперь давайте изменим файл следующим образом:
Что нужно знать:
$TTL 604800
- это время актуальности записей в секундах. Необходим, чтобы указать другим DNS-серверам, как долго стоит хранить запись у себя в кэше.SOA-запись
в данном примере эта запись идет сразу после параметра TTL. Ее стоит описать отдельно. Она хранит общие настройки для зоны.Точки в конце доменных имен являються обязательными и указывают на корневой домен. Подробнее можно узнать тут.
Что касаеться самой записи:
В начале вы указываете название обслуживаемой зоны после запись типа ns.название_обслуживаемой_зоны а дальше пользователя который обслуживает зону можно оставить root
по умолчанию.
Как записываються записи которые обслуживает зона:
@; srv
- Собственно доменное имя хоста. Может записываться без домена (как в данном примере) — он будет дописан автоматически. Также может быть записан полностью с доменом — в таком случае необходимо поставить точку на конце, например, mail.test.local. Если не указывается или обозначается знаком собаки (@), запись создается для имени зоны (в данном случае, mpt.xuz.).класс
Всегда используется IN (Internet). Указывает на тип сети.Далее указываеться тип записи.
Ну и конце пишеться значение для записи обычно это: IP-адрес, имя узла или текстовая запись.
Давайте проверим обслуживает ли сервер созданную зону:
Ответ был получен согласно созданным записям.