BIND version 8.x

Сергей Минаков.

Оригинал: Unixoid
Bind 8.x.x.
Введение. Эта статья посвящена BIND версии 8.x.x. Эта версия появилась
относительно недавно. Она имеет совершенно другой конфигурационный
файл, нежели BIND версии 4. В новой версии также появилось масса
новых возможностей, новые RR заниси, улучшеная 'zone-check' процедура, специальные серийные номера, и др.
P.S. Оговорюсь сразу, в этой статье описаны далеко не все возможности BIND 8, а только основные.

Пример named.conf и описание опций:

Будте внимательны - не забывайте ставить ";"!

options { -- Начало ЧАСТИ "Options".
directory "." ;{ -- Рабочий каталог.
named-xfer "/usr/libexec/named-xfer";-- Путь к 'zone-xfer'.
dump-file "named_dump.db";-- Имя Дамп-Файла или имя
с путем из рабочего каталога.
pid-file "/var/run/named.pid";-- Путь к pid-файлу.
memstatistics-file "named.memstats";-- Имя файла со статистикой.
использования памяти.
statistics-file "named.stats"; -- Имя файла со статистикой.
check-names master fail; -- Опция, применяемая в случаях, когда
требуется проверка имен доменов.
В лог-файлах отображается адрес
мастер-сервера, на котором
обнаружена ошибка.
check-names slave warn; -- -- для 'slave' зоны
check-names response ignore; -- -- дополнительная проверка
ответов других серверов.
host-statistics no;-- Статистика обращений по хостам.
deallocate-on-exit no; -- Опция, при которой освобождаются
все объекты при прерывании работы программы.
Это выгодно при неправильном использовании
памяти. Полная отчет о работе будет
находиться в 'memstatistics-file.'
forward-only;-- Эквивалент 'Slave'у.
datasize default; -- Лимитирование сегментов,
выделяемых под данные.
stacksize default; -- Размер СТЕКА.
coresize default;
files unlimited;-- Допустимое количество
обрабатываемых файлов.
recursion yes;-- Опция, разрешающая или
запрещающая рекурсию.
fetch-glue yes;
fake-iquery no;-- Эта опция позволяет подменять
ответы при определенных запросаx.
notify yes;-- Посылка "NOTIFY" сообщения
Вы можете поставить 'yes', когда вы
используете схему 'zone-by-zone', также
эта опция доступна в ЧАСТИ 'zone'.
auth-nxdomain yes;-- Всегда ставьте AA при использовании
NXDOMAIN. Не устанавливайте эту опцию в 'no',
если вы не знаете, что делаете --
старые сервера (старая версия ПО) не любят
этого. :-)
;
multiple-cnames no;-- Если установлено 'yes', тогда
имеется более одного CANME RR. Это
используют в нестандартных ситуациях и
не рекомендуется, но доступно, потому что
предыдущие версии поддерживали и эта опция
использовалась на больших сайтах для
уравновешивания загрузки.
allow-query { any; };
allow-transfer { any; };
transfers-in 10; -- Значение не должно быть
установлено более 20.
transfers-per-ns 2;-- Default значение передач на
каждый NameServer.
transfers-out 0; -- К сожалению, не работает ;-)
max-transfer-time-in 120; -- Максимальное значение
продолжительности сессии 'zone transfer'.
(в минутах)
transfer-format one-answer;-- Опция, указывающая путь исходящего
'zone transfer'. Допустимы два значения:
one-answer - Каждый RR берет свое сообщение.
Этот формат не очень эффективен,
но просто и понятно :-). Все версии BIND до 8.1
генерируют именно этот формат сообщения для
исходящих зон и требует входящих передач.
many-answers - Это означает
что много RR'ов будет положено в каждое
DNS сообщение. Этот формат наиболее эффективен,
но только есть в версии BIND 8. Также выпущена
измененная версия 'named-xfer' для BIND 4.9.5.
Если вы будете использовать ваш DNS сервер с
серверами на которы установленно старое ПО, то
НЕ СОВЕТУЕТСЯ использовать 'many-answers'.
Также как значение может быть установлена
переменная 'server' - при использовании схемы
'host-by-host'.
forward first;
forwarders { }; -- В Default значении ничего
не указывается.
Пример: forwarders { 1.2.3.4; 5.6.7.8; };
topology { localhost; localnets; };-- Опция, описывающая топологию NameServer'ов.
Пример: topology { 10/8; -- Предпочтительная сеть 10.0.0.0 с маской 255.0.0.0 !1.2.3/24; -- Не использовать 1.2.3.0 с маской 255.255.255.0 для всех { 1.2/16; 3/8; }; -- Использовать 1.2.0.0 с маской 255.255.0.0 и 3.0.0.0 с маской 255.0.0.0 - часть 10/8, но меньше. };
listen-on port 53 { any; }; -- Принимать запросы с 53
порта на всех доступных интерфейсах компьютера.
Если порт не указан, то автоматически
будут обрабатываться запросы с 53 порта/udp
Пример: listen-on { 5.6.7.8; }; -- Принимать запросы с 53 порта на интерфейсе с адресом 5.6.7.8
listen-on port 1234 { -- Принимать запросы с порта !1.2.3.4; 1234 на интерфейсе с адресом 1.2.3/24; 123 с маской 255.255.255.0, }; за исключением интерфейса 1.2.3.4
cleaning-interval 60;-- Опция, задающая интервал очищения кэша RR записей. (в минутах)
interface-interval 60;-- Опция, задающая интервал обновления списка новых и удаленных интерфейсов. (в минутах)
statistics-interval 60;-- Опция, задающая интервал обновления файла статистики. (в минутах)
};

zone "your.ru" { -- Начало ЧАСТИ "Zone - Master".
type master; -- Тип зоны. master = primary
file "master.zone.ru"; -- Имя файла, в котором хранится таблица DNS. (Возможно, c путем из рабочего каталога)
check-names fail;
allow-update { none; };
allow-transfer { any; };
allow-query { any; };
also-notify { }; -- Не посылать NOTIFY сообщение перечисленным серверам.
};

zone "not-your.ru" { -- Начало ЧАСТИ "Zone - Slave".
type slave; -- Тип зоны. slave = secondary
file "not-your.ru"; -- Имя файла, в котором хранится таблица DNS. (Возможно, с путем из рабочего каталога)
masters { 1.2.3.4; 5.6.7.8; }; -- Адрес NameServer'а с которого берется информация о Зоне.
transfer-source 10.0.0.53; -- Эта опция устраняет проблему 'MULTIHOMING'
allow-update { none; };
allow-transfer { any; };
allow-query { any; };
also-notify { }; -- Не посылать NOTIFY сообщение перечисленным серверам.
max-transfer-time-in 120; -- Если не установлено, используется значение, заданное в ЧАСТИ "Options" или Default значение.
};

zone "stub.ru" { -- Начало ЧАСТИ "Zone - Stub".
type stub; -- Тип зоны. Stub зона похожа на slave, но скачиваются только NS записи.
file "not-your.ru"; -- Имя файла, в котором хранится таблица DNS. (Возможно, с путем из рабочего коталога)
masters { 1.2.3.4; 5.6.7.8; }; -- Адрес NameServer'а с которого берется информация о Зоне.
check-names warn;
allow-update { none; };
allow-transfer { any; };
allow-query { any; };
also-notify { }; -- Не посылать NOTIFY сообщение перечисленным серверам.
max-transfer-time-in 120; -- Если не установлено, используется значение, заданное в ЧАСТИ "Options" или Default значение.
};

zone "." { -- Начало ЧАСТИ "Zone - Hint".
type hint; -- Тип зоны. Hint - используется как кэш..
file "chahe.db"; -- Имя файла, в котором хранится кэш.
};

acl can_query { !1.2.3/24; any;}; -- Эта опция запрещает обращения компьютеров из сети 1.2.3.0 c маской 255.255.255.0. Машины, не попадающие под действие этого правила, могут свободно использовать NameServer.
acl can_axfr { !1.2.3.4; can_query; }; -- Этой опцией можно разрешить конкретному компьютеру из запрещенной сети работать с NameServer'ом, в данном случае это 1.2.3.4 и все компьютеры описанные в 'can_query'.

zone "non-default-acl.ru" { -- Начало ЧАСТИ "Zone - NON-Default-ACL".
type master;
file "foo";
allow-update { 1.2.3.4; 5.6.7.8; };
allow-transfer { can_axfr; };
allow-query { can_query; };
};

key key2 { -- Начало ЧАСТИ "Key2" (возможны key1..key5..).
algorithm hmac-md5; -- Тип алгоритма криптования.
secret "ereh terces rouy";-- Код.
};

server 1.2.3.4 { -- Начало ЧАСТИ "Server", устанавливает для указанного NameServer'а дополнительные опции.
bogus no;--Еcли 'yes', то не будут приниматься запросы от 1.2.3.4.
transfer-format one-answer;
transfers 0;-- Пока не работает.
keys { key2; };-- Подключение установленных кодов в ЧАСТИ 'Key2"
};
logging { -- Начало ЧАСТИ "Logging" , опции для управления файлами статистики.
channel syslog_errors { syslog user; severity error; };-- Эта опция определяет место, куда будет запинана информация об ошибках. Возможные варианты: critical,error,warning,notice,info,debug1...debug99.
file "file.log"; -- Файл, в который будут записаны сообщения. (необязательный параметр)
};

include "filename"; -- С помощью этого параметра вы сможете подключить к вашему конфигурационному файлу другие.

Сергей Минаков.