По умолчанию во FreeBSD используется одна из версий программы BIND (Berkeley Internet Name Domain), являющейся самой распространенной реализацией протокола DNS.
FreeBSD в настоящее время поставляется с сервером DNS BIND9, предоставляющим расширенные настройки безопасности, новую схему расположения файлов конфигурации и автоматические настройки для chroot. chroot-каталогом является /var/named, соответственно в конфигурационных файлах все пути будут относительно этого каталога. Исходя из вышесказаного:
# cd /var/named |
У нас уже есть пример конфигурационного файла. Сохраним его (на всякий случай), и создадим свой:
# mv etc/namedb/named.conf etc/namedb/named.conf.default |
Конфигурирование сервера я начинаю с настройки утилиты управления rndc.
Воспользуемся утилитой rndc-confgen для генерации конфигурационного файла rndc:
# rndc-confgen >> etc/namedb/rndc.conf |
Посмотрим результат:
# cat etc/namedb/rndc.conf # Start of rndc.conf options { # Use with the following in named.conf, adjusting the allow list as needed: |
Берем из полученного файла необходимые данные для named.conf (отмечено, что эти строки необходимо вставить в named.conf). Потом добавляем остальные опции:
# cat etc/namedb/named.conf # rndc controls { // Назначаем access-листы (потом пригодится...) acl "client" { 127.0.0.1; 195.3.159.250/32; }; // Настраиваем логирование. Нужная штука ;) logging { channel general { channel database { channel security { channel config { channel resolver { channel xfer-in { channel xfer-out { channel notify { channel unmatched { channel network { channel update { channel queries { channel dispatch { channel dnssec { channel lame-servers { category default { my-default; }; // теперь пошли опции options { // Указываем рабочую директорию // Прячем имя сервера (повышаем безопасность) // Разрешаем рекурсивные запросы // Указываем путь к pid-файлу. Проверьте на всякий случай путь. // Используется для остановки/перезапуска DNS-сервера BIND // Указываем путь к дампу // Прячем версию BIND (повышаем безопасность) // Чьи запросы будем обрабатывать // Кому разрешаем трансфер наших зон allow-transfer { "slave"; }; // Указывае размер кеша }; // Корневая зона. // Back Resolving для нас loopback // Подключаем дополнительные конфигурационные фaйлы include "/conf/kiev.ua"; // В этот файл больше не ничего не писать. Используйте include . Заканчиваем пустой строкой. |
Разберем конфигурационный файл более детально.
Сначала идут опции для работы утилиты rndc. Потом секция настройки access-листов. Рекомендую использовать именно access-листы, а не прописывать всюду айпишки и сети - удобней будет ;)
Далее идет настройка логов. Даннная секция настроена так, чтобы разные действия писались в разные файлы. Разберетесь что и куда, если будет такая необходимость ;)
Кстати, нужно создать эту самую папку для логов...
# mkdir log |
Далее идет секция опций. Думаю здесь все понятно.
Потом идет описание зон. С корневой зоной проблем не должно возникнуть, поскольку на данный момент используется тип slave, и список TLD-серверов должен подтягиваться непосредственно к нам с корневого ДНС-сервера F.
Рассмотрим файл бек-резолвинга для loopback. В дистрибутиве уже идет готовый файл, но я по привычке создаю свой (тем более IPv6 я пока не использую). Создадим файл etc/namedb/localhost.rev
# touch etc/namedb/localhost.rev |
Приведем localhost.rev к следующему виду:
# cat etc/namedb/localhost.rev $TTL 3600 IN NS muff.kiev.ua.
|
Рассматривать детально каждую опцию не буду. Этой информации достаточно в инете. Обращу внимание только на то, что все имена заканчиваются точкой, указывая что это уже корневой домен; запись admin.muff.kiev.ua - это почтовый адрес администратора домена, только "@" заменена на ".", поскольку "@" в даном случае имеет служебное значение.
Далее прописываю какие еще файлы инклюдить в основной конфиг. Чтобы не путаться, все зоны свожу в дополнительные конфиги в алфавитном порядке. Приведу пример только с одним дополнительным конфигом "kiev.ua" (потом обычно их становится намного больше: com, com.ua, net, net.ua и т.д.).
Создаем каталог для дополнительных конфигурационных файлов и файл конфигурации для доменов вида *.kiev.ua:
# mkdir conf |
Теперь добавим поддержку домена muff.kiev.ua:
# cat conf/kiev.ua zone "muff.kiev.ua" { |
Создадим необходимые каталоги и файл зоны muff.kiev.ua.
# mkdir -p zones/kiev.ua |
Добавим необходимые записи в файл зоны muff.kiev.ua. Должно получиться примерно следующее:
# cat zones/kiev.ua/muff.kiev.ua $TTL 86400
@ IN NS ns.muff.kiev.ua.
@ IN MX 10 mail.muff.kiev.ua.
@ IN A 195.3.159.250 relay2 IN A 193.227.206.57 ns2 IN A 193.227.206.50
|
Добавляем несколько строк для старта BIND в /etc/rc.conf:
# echo '### Domain Name Service' >> /etc/rc.conf |
Поскольку BIND будет работать от имени пользователя bind, сделаем его владельцем каталогов и файлов:
# chown -R bind:wheel /var/named/log |
Запускаем демон сервера доменных имен:
# sh /etc/rc.d/named start |
Проверяем, запустился ли named:
# ps -ax | grep bind 39512 ?? Is 0:00,05 /usr/sbin/named -u bind -c /etc/namedb/named.conf -t /var/named -u bind |
Все в норме, BIND запустился. Теперь проверим, как он будет отрабатывать наши запросы:
# dig A @127.0.0.1 mail.ru
; <<>> DiG 9.4.3-P3 <<>> A @127.0.0.1 mail.ru ;; QUESTION SECTION: ;; ANSWER SECTION: ;; AUTHORITY SECTION: ;; Query time: 162 msec # dig A @127.0.0.1 muff.kiev.ua ; <<>> DiG 9.4.3-P3 <<>> A @127.0.0.1 muff.kiev.ua ;; QUESTION SECTION: ;; ANSWER SECTION: ;; AUTHORITY SECTION: ;; ADDITIONAL SECTION: ;; Query time: 7 msec |
Демон полноценно функционирует. Отдал запрошенные данные домена mail.ru и отдал запрошенные данные для поддерживаемого домена muff.kiev.ua.
Проверям работу утилиты rndc (чтобы просмотреть допустимые ключи и опции - необходимо набрать команду без ключей)
# rndc status number of zones: 15 # rndc reload |
Теперь дело за малым - указать серверу, чтобы он свои dns-запросы обрабатывал самостоятельно. Изменяем опцию nameserver в файле /etc/resolv.conf на адрес loopback-интерфеса сервера:
# cat /etc/resolv.conf domain muff.kiev.ua |
Поздравляю. Теперь у вас есть полноценный DNS-сервер на платформе BIND9.
Примечание
Любой файл зоны должен оканчиваться пустой строкой ! Иначе в логах вы будете видеть подобное:
# tail -f /var/named/log/general 24-Aug-2009 02:08:17.125 general: warning: /zones/kiev.ua/muff.kiev.ua:25: file does not end with newline |
Многоуважаемый подскажите где
Многоуважаемый подскажите где косяк
rndc reload
WARNING: key file (/etc/namedb/rndc.key) exists, but using default configuration file (/etc/namedb/rndc.conf)
Некорректно сконфигурирована
Некорректно сконфигурирована утилита rndc.
Проверяйте корректность файлов rndc.key, rndc.conf и наличие раздела rndc в named.conf (и не забываем, что все пути относительно каталога /var/named)
Там всё в полном порядке.
Там всё в полном порядке. Просто в последнем бинде 9.7 видимо косяк. Сделал вот так
1. Stop named ('service named stop' or '/etc/rc.d/named stop')
2. rm /etc/rndc.conf
3. Start named ('service named start' or '/etc/rc.d/named start')
4. rndc status
Всё стало в шоколаде всё работает. ВАМ ОГРОМНОЕ СПАСИБО ЗА СТАТЬЮ.Хотелось бы что б вы побольше "жевали" для тцпых типо меня.С П А С И Б О !
М-м-м.... А почему
М-м-м.... А почему /etc/rndc.conf? Я же говорил про то, что пути относительны от /var/named.
Соответственно, полный путь к rndc.conf у мну /var/named/etc/namedb/rndc.conf.
Но если все работает - это хорошо :)
Это предупреждение сообщает
Это предупреждение сообщает нам что присутствует фаил /etc/namedb/rndc.key который нужно бы удалить/переназвать, вот и все
Вопрос: Если сначала поднял
Вопрос:
Если сначала поднял бинд по этой статье, а потом добавил измения из статьи ddns+dhcp.
#rndc-key controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { "rndc-key"; };
# };
остается ?
или можно удалить и указать только ключ dhcp-key?
То есть, если необходимость в прописывание двух ключей, если используешь ddns+dhcp, или достаточно одного dhcp-key?
dhcp-key - ключ для работы в
dhcp-key - ключ для работы в связке с DHCP-сервером.
rndc-key - ключ для работы в связке с утилитой rndc (name server control utility)
Ключи работают в паре с разными приложениями. Для каждого приложения свой ключ.
спасибо
спасибо
Пасибо за статью. Вопрос у
Пасибо за статью. Вопрос у меня,не скажете случайно за что отвечает ADDITIONAL SECTION и каким способом можно ей управлять ? До воли противоречивую информацию нахожу,хотелось бы разобраться.
Выводится информация, какие
Выводится информация, какие ДНС-сервера были опрошены - ДНС-имена этих серверов и их IP-адреса сответственно.
ДНС-сервера задаются при создании (либо модификации) домена.
Re: Bind 9 - настройка DNS-сервера
а как быть с такой ситуацией когда доменное имя сайта зарегистрировано в на платном хостинге - и надо его перенести на сей сервер? под сервером я имел в виду тот сервер который стоит например у меня в оффиси (FreeBSD + Rial_IP)
Re: Bind 9 - настройка DNS-сервера
Необходимо изменить нейм-сервера, воспользовавшись предоставляемыми хостером инструментами.
Более подробоно - на форуме.
Re: Bind 9 - настройка DNS-сервера
Доброго вечора.
Підкажіть будьласка де я накосячив? Ключ генерував новий і скрізь перевірив на коректність, а ДНС так і не працює за rndc. Порт теж пересобирав.
rndc reload WARNING: key file (/etc/namedb/rndc.key) exists, but using default configuration file (/etc/namedb/rndc.conf)
rndc: connection to remote host closed
This may indicate that
* the remote server is using an older version of the command protocol,
* this host is not authorized to connect,
* the clocks are not synchronized, or
* the key is invalid.
І можна з вами спілкуватись через Skype, icq?
Re: Bind 9 - настройка DNS-сервера
Доброго дня.
В коментарях дане питання не вирішимо. Задавайте питання на форумі - спробую допомогти.
Re: Bind 9 - настройка DNS-сервера
Проблема з реєстрацією на форумі. На мило не приходить лист з авторизацією
Re: Bind 9 - настройка DNS-сервера
Fix.
Re: Bind 9 - настройка DNS-сервера
Ошибка!
Перед тем как сможете войти, ваш e-mail должен быть проверен.