Настройка DNS сервера Bind9 на Debian 6.0.4

Миниатюра - Настройка Bind9 в DebianПреподаватель по дисциплине «Компьютерные сети» попросила меня с другом показать студентам на практических занятиях, как установить сетевую операционную систему (на примере Debian) и настроить хотя бы парочку часто использованных серверов. В итоге мы с другом рассказали немного работе DNS сервера, и показали пример на основе Bind9.

Эта статья будет о настройке Bind9 и ориентирована она на новичков. Я расскажу как установить DNS сервер и немного его настроить. Может, кому-то из студентов будет интересно почитать. Если заинтересовал – вы знаете что делать.

Я не буду вдаваться в подробности установки Debian, а так же базовые настройки сети и apache2(http сервер). Про установку Debian можно почитать здесь, а про apache2 здесь. Кроме того, мой вариант настройки Bind9 полностью демонстрационный и не включает заботу о безопасности и так далее.

И так, для начала нужно установить сам DNS сервер. Делается это одной командой:

apt-get install bind9

Теперь когда Bind9 установился, перейдем в папку содержащую основные настройки:

cd /etc/bind/

Выведем список файлов командой ls. Нас интересует файл named.conf.local. В нем записываются настройки доменных зон локальной сети. Откроем его для редактирования:

nano named.conf.local

Добавим в конец следующие строки:

zone "vasya.com" {
    type master;
    file "/var/lib/bind/vasya.com";
}

Давайте разберем что это значит. Первая строка означает начало настроек для зоны vasya.com. Вторая строка — тип зоны. Тип master значит, что сервер транслирующий доменную запись является ее создателем. Третья строка определяет файл, в котором будет расположены детальные настройки доменной зоны. Имя файла произвольное, для удобства лучше использовать имя совпадающие с названием доменной зоны. Как видите, все информация о доменной зоне заключена в фигурные скобки, а после каждой настройки ставиться точка с запятой.

Сама по себе зона не заработает, нужно выполнить ее детальную настройку и определить IP которому она принадлежит. Для этого нужно создать файл настроек зоны, который мы указали для нее в файле named.conf.local. Перейдем в папку и создадим нужный файл:

cd /var/lib/bind/
touch vasya.com

Файл создан, открываем его на редактирование:

nano vasya.com

Примечание: для написания этой статьи я поставил apache и bind на одну машину, и назначил ей IP адрес 192.168.1.1, а клиент получил IP адрес 192.168.1.2, при этом в настройках клиента я вставил адрес DNS сервера — 192.168.1.1.

Теперь впишем следующий текст в файл настроек vasya.com, что это все значит, я объясню ниже:

$TTL 1D
@	IN	SOA	localhost.	admin.localhost. (
	2012022901
	12H
	180
	1W
	3H
)
@	IN	NS	localhost.
@	IN	A	192.168.1.1

И так, давайте по порядку. Первая строчка $TTL 1D означает время жизни доменной записи, в нашем случае это один день (1D = 1 day). Вторая строка описывает источник доменной зоны (localhost.) и электронную почту администратора (admin.localhost.). Вы наверно заметили отсутствие знака «@» в адресе электронной почты? Поскольку знак @ используется как макрос, и означает текущую доменную зону то в адресе электронной почты в место него ставиться точка. Еще одна особенность, все DNS имена хостов или адреса электронной почты заканчиваются точкой.

Примечание: в настройках доменной зоны записываются 5 чисел. Первое 10 знаковое — серийный номер, остальные это retry, refresh, expiry и minimum записываются в секундах или в формате времени Bind.

Далее открывается круглая скобка, и идут 5 числовых записей. Первая запись (serial) 2012022901 является серийным номером. Задается он обычно по такому принципу — первые 8 цифр текущая дата (год 2012 месяц 02 день 29), а вторые две просто число. При изменении настроек доменной зоны меняйте и серийный номер. Если изменение происходит несколько раз в день — меняйте последний две цифры, если реже — просто дату. При обновлении сетевые узлы сверяют серийный номер и если он больше — то обновляют все настройки текущей записи.

Следующие число 12H (refresh) отвечает за время, через которое второстепенные DNS сервера будут пытаться обновить доменную запись. Советуется выставлять от 1200 до секунд (если данные часто меняются) до 12 часов (если данные изменяются редко).

Далее идет 180 (retry). Число в секундах, означающие время, которое будет ожидать вторичный сервер, если не удалось получить запись после попытки обновить ее (refresh).

Следующее число 1W (expiry) определяет время, по истечении которого, вторичные DNS сервера перестанут отвечать на запросы по данной записи. Это продлиться до тех пор, пока не удастся ее обновить с мастер-сервера.

И последнее число 3H (minimum) используется для хранения значения TTL по умолчанию для старых версий bind. После этого значения круглая скобка закрывается.

Предпоследняя строчка указывает, какой DNS сервер транслирует доменную зону в текущей сети. А последняя — какому адресу соответствует доменная запись.

Теперь можно сохранить и закрыть файл. Перезапустим Bind, что бы изменения вступили в силу:

/etc/init.d/bind9 restart

Если мы не допустили синтаксических ошибок в конфигурационных файлах, то Bind будет успешно запущен. Теперь проверим:

host vasya.com

Должно ответить примерно вот так:

Результат успешной настройки Bind

Для полной уверенности запустите браузер в клиентской машине и перейдите по адресу http://vasya.com/, вот что вышло у меня:

Результат успешной настройки Bind (страница браузера)

Вот и все, задавайте свои ответы, пишите комментарии и отзывы! Спасибо за внимание.

Комментарии 8

  • привет. странно ни слова про rndc. Странная настройка днс.

    • Ну данная статья ориентированна на очень сильных нубов в подобных вещах. Так что, особо странного ничего нет.

  • host mysite.org

    Host mysite.org not found: 3(NXDOMAIN)

  • Это ошибка такая у меня выскакивает. можете меня добавить в скайп? skype: biv2311

    • Увы, добавить не могу, так как занят обычно. Попробуйте спросить где-нибудь на тематическом форуме. Вы что-то настроили не так, и ваша машина не находит DNS запись.

  • Могли бы помочь разобраться как орканизовать следующую схемку?
    Есть [сайт а] и [сайт b] в интернете. Ко мне по pptp подключается клиент. Нужно чтоб при наборе данных сайтов, клиент попадал на страницу подготовленную локально на сервере [сайт а] и так же [сайт b] потом по сработке скрипта дальнейший ввод клиентом [сайт а] и [сайт b] не заворачивал бы на мой сервер. Получается использование DNS для временной подмены адресов.

    • Не очень разобрался что вы хотите получить.
      Можете описать лучше?

      И да, простите что так поздно ответил. Вот добрался до блога…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *