BIND 9 на FreeBSD.

Обновил я систему до 7.2 и тут у меня вылез маленький бок, хотя я мержил все как положено и само собой бекапил конфиги. А в чем прикол, то? Версии BINDA разные. Ну и ладно, дело то поправимое..

Приступим к настройке нашего свежего binda.

В связи с тем что директория /etc/namedb на самом деле симлинк с /var/named, заходим сразу в /var/named:
pin# cd /var/named

смотрим что у нас лежит здесь и если мы еще не правили эти файлы, то на всякий случай делаем бекап с них, и создаем рабочие файлы:

pin# ls
named.conf
named.root

pin# mkdir etc/namedb/backFiles
pin# mv etc/namedb/named.conf etc/namedb/backFiles/named.conf.default
pin# touch etc/namedb/backFiles/named.conf

Первым делом настроем утилиту управления rndc, для этого создадим файл ключа. После чего воспользуемся утилитой rndc-confgen для создания конфигурационного файла rndc:
pin# touch etc/namedb/rndc.key
pin# rndc-confgen >> etc/namedb/rndc.conf

смотрим что получилось:
pin# cat etc/namedb/rndc.conf

# Start of rndc.conf
key «rndc-key» {
algorithm hmac-md5;
secret «JHSlkhv98+43KLJH83A-dw==»;
};
options {
default-key «rndc-key»;
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
# Use with the following in named.conf, adjusting the allow list as needed:
# key «rndc-key» {
# algorithm hmac-md5;
# secret «JHSlkhv98+43KLJH83A-dw==»;
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { «rndc-key»; };
# };
# End of named.conf

В файле все ясно расписано, кукую куда секцию поместить, делаем:

pin# cat etc/namedb/rndc.key
key «rndc-key» {
algorithm hmac-md5;
secret «JHSlkhv98+43KLJH83A-dw==»;
};

pin# cat etc/namedb/named.conf
# rndc
key «rndc-key» {
algorithm hmac-md5;
secret «JHSlkhv98+43KLJH83A-dw==»;
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { «rndc-key»; };
};
# end rndc

Далее, приступаем к конфигурированию etc/namedb/named.conf, в который добавляем алиасы, зоны, трансферы и прочее.. В результате этот файл должен иметь примерно такой вид (не считая уже выше написанного):
pin# cat etc/namedb/named.conf

// Назначаем access-листы (client — клиенты в подсетях, slave — вторичные сервера)
acl «client» { 127.0.0.1; 193.5.46.0/32; 10.10.0.0/16; 192.168.0.0/16 };
acl «slave» { x.x.x.x/x; y.y.y.y/y; };
// Настраиваем логирование.
logging {
channel my-default {
file «/var/log/named»;
print-time yes;
print-category yes;
print-severity yes;
};
/*
Здесь можно более детально описать логирование, вплоть до каждого клиентского запроса, для детализации, используем в консоли pin# man named.conf и смотрим /log — там очень хорошие примеры.
*/
};

// дальше опции binda
options {
// Рабочая директория
directory «/etc/namedb»;
// Прячем имя сервера
hostname «DNS_server»;

// Рекурсивные запросы
recursion yes;
// Путь к pid-файлу, используется для остановки/перезапуска BIND-сервера
pid-file «/var/run/named/pid»;
// Указываем путь к дампу
dump-file «/var/db/dump/named_dump.db»;
// Прячем версию BINDа
version «BIND from dns_server»;
// Какие запросы обрабатывать
allow-query { «client»; };
// Кому разрешаем трансфер зон
allow-transfer { «slave»; };
// Указывае размер кеша
max-cache-size 52428800 ;
};
### END options

// Теперь самое интересное 😉
// Раньше, корневая зона всегда была типом hint, и при этом увеличивалась нагрузка на корневые
// сервера. И поэтому с неких пор рекомендуют сменить ее тип, тем самым ослабляя нагрузку на
// корневые сервера. Поэтому приведем к такому виду.
zone «.» {
type slave;
file «slave/root.slave»;
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
// Back Resolving для нас loopback
zone «0.0.127.in-addr.arpa» {
type master;
file «/etc/namedb/localhost.rev»;
notify no;
};

// Подключаем дополнительные конфигурационные фaйлы, рекомендую для каждой зоны свой,
// упрощая тем самым в дальнейшем отладку и управление зонами.

include «/config/domain.com»;

// Используем include, для добавления конфигов зон

Создадим недостающие директории, если их нет и дадим им соответствующие права:
pin# mkdir /var/log/named
pin# mkdir /var/dump/
pin# chown -R bind:wheel /var/log/named
pin# chown -R bind:wheel /var/dump/

Создаем файл etc/namedb/localhost.rev:

pin# touch etc/namedb/localhost.rev

Приведем его примерно к такому виду:

pin# cat etc/namedb/localhost.rev

$TTL 3600
@ IN SOA domain.com. admin.domain.com. (
2009092800 ; Serial
3600 ; Refresh
600 ; Retry
3600000 ; Expire
3600 ) ; Minimum
IN NS domain.com.
1 IN PTR localhost.domain.com.

Создаем каталог для дополнительных конфигурационных файлов и файл конфигурации для доменов зон *.domain.com:

pin# mkdir config
pin# touch config/domain.com

zone «domain.com» {
type master;
file «master/domain.com»;
allow-query {any ; };
allow-transfer { «slave»; };
};

Создадим необходимые каталоги и файл зоны domain.com

pin# mkdir -p master
pin# touch master/domain.com

Отредактируем файл зоны и приведем примерно к такому виду:

pin# cat master/domain.com

$TTL 86400
@ IN SOA ns.domain.com. admin.ns.domain.com. (
2009092700 ; Serial
14400 ; Refresh
7200 ; Retry
3600000 ; Expire
86400 ) ; Minimum

@ IN NS ns.domain.com.
@ IN NS ns2.domain.com.
@ IN MX 10 mail..domain.com.
@ IN MX 20 m_relay.domain.com.

@ IN A 193.5.46.42
www IN A 193.5.48.17
mail IN A 193.5.46.252
m_relay IN A 77.15.48.13
ns IN A 193.5.46.42
ns2 IN A 77.15.48.13

Добавляем такие строки в /etc/rc.conf, для старта BIND:
pin# echo ‘### Domain Name System’ >> /etc/rc.conf
pin# echo ‘named_enable=»YES»‘ >> /etc/rc.conf
pin# echo ‘named_flags=»-u bind -c /etc/namedb/named.conf»‘ >> /etc/rc.conf
Перепроверим, что бы ничего никуда не уползло 😉
pin# cat /etc/rc.conf
Если все ок:
pin# chown -R bind:wheel /var/named

Стартуем наш BIND:
pin# sh /etc/rc.d/named start

Проверяем наличие демона в фоне:

pin# ps ax | grep bind
762 ?? Ss 1:05.26 /usr/sbin/named -u bind

Висит, теперь проверим как он обрабатывает наши запросы:

pin# dig A @127.0.0.1 mail.ru
pin# dig A @127.0.0.1 domain.com

Ответы есть, и причем положительные, значит все good 🙂

Теперь проверим как работает утилита rndc:
pin# rndc status
number of zones: 22
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is ON
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

pin# rndc reload
server reload successful

В общем, все супер, теперь ткнем носом наш сервер на наш BIND.

pin# cat /etc/resolv.conf
domain domain.com
nameserver 127.0.0.1

Ну вот и все, наслаждаемся работой нашего bind 9 😉

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=87


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

You must be logged in to post a comment.