00-tech-book
.pdfСтруктура конфигурационного файла
Структуру конфигурационного можно представить как набор секций. В таблице ниже я расскажу какие секции бывают и для чего они нужны.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
options |
|
|
|
|
|
|
|
|
|
Секция описывает глобальное поведение DNS-сервера, |
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
значения можно переназначить внутри других секций; |
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
logging |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Секция описывает режим журналирования, если на сервере |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
используется syslog то эта секция должна присутствовать; |
|||||||||||||||||||||
|
|
zone |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
Секция описывает зону которую данный DNS-сервер будет |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
поддерживать; |
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
acl |
|
|
|
|
|
|
|
|
Access Control Lists, позволяет описать какую либо группу |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
хостов а далее, при конфигурирование, уже ссылаться на эту |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
группу; |
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
controls |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
Описывает доступ к удаленному управлению DNS-сервером |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
через rndc; |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
include |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Позволяет |
подключить |
дополнительный |
файлы |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
конфигурации; |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
key |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Секция описывает ключи, используемые для аутентификации |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
и контроля операций с Dynamic DNS и удаленного |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
управления; |
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
lwres |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
Секция описывает свойства DNS-сервера когда он запущен |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
как легковесный резолвер; |
|
|
|
|
|
|
|||||||||||||||
|
|
server |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
Здесь описываются опции, которые DNS-сервер будет |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
использовать при взаимодействие с другим сервером; |
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
view |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Позволяет описать поведение сервера для конкретных |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
хостов/сетей; |
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
trusted-keys |
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
Описывает доверенные ключи для домена. |
|
|
|
Ну и базовая структура может выглядеть вот так:
options
{
...
};
logging
{
...
};
acl
{
...
Модуль 13. DNS-сервер. BIND. |
|
181 |
|
|
|
|
|
};
on
};
Настройка
Итак, у нас есть следующее:
Сервер с IP 192.168.146.2 – шлюз во внешние сети и DNS-сервер для двух наших сетей (192.168.146.0/24, 192.168.147.0/24);
Сервер с IP 192.168.146.132 – новый сервер со свежей Linux CentOS 5.2 который мы сделаем как master dns сервер, также этот сервер будет перенаправлять все запросы на которые не сможет сам ответить на DNSсервер провайдера (192.168.146.2);
Сервер с IP 192.168.147.132 – новый сервер со свежей Linux CentOS 5.2 который мы сделаем как slave dns сервер для 192.168.146.132.
Настраивать named рекомендуется в chroot-окружение, это когда для сервиса создана своя рабочая среда в рамках которой он работает. Он нечего не знает о внешней системе и не может туда выбраться, и в случае проблем с безопасностью это никак не повлияет на систему в целом. Для этих целей мы и поставили пакет bind-chroot.
По умолчанию, если не найден файл /var/named/chroot/etc/named.conf то будет использоваться /var/named/chroot/etc/named.caching-nameserver.conf
Я предпочел скопировать шаблон файла named.conf и на его основе сделать свой файл.
# cp /usr/share/doc/bind-9.3.4/sample/etc/named.conf /var/named/chroot/etc/
Ключевые файлы и каталоги пакета BIND в таблице ниже.
|
|
|
|
|
|
|
|
|
|
|
|
/var/named/chroot/ |
Структура файловой системы и файлы которые |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
будут использоваться в работе chrooted-bind, все |
|||||
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
что нужно редактируйте здесь; |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
/usr/sbin/named |
|
Исполняемый файл DNS-сервера; |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
/var/named/chroot/etc/named.conf В нормальных условиях конфигурационный файл named.conf расположен в /etc/ но мы настраиваем DNS-сервер в chroot-окружение и поэтому он будет расположен здесь, чтобы named смог его найти;
|
182 |
|
Модуль 13. DNS-сервер. BIND. |
|
|
|
|
|
/var/named/ |
|
|
|
|
|
|
|
|
Все нужные файлы для работы named |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
расположены здесь и в подкаталогах; |
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
/usr/sbin/rndc |
|
Утилита для управления named; |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
/usr/sbin/named-checkzone |
|
Утилита для проверки корректности файла зоны; |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
/usr/sbin/named-checkconf |
|
|||||||||||||||||||||
|
|
|
Утилита для проверки корректности |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
конфигурационного файла; |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
/etc/rc.d/init.d/named |
|
Скрипт для chkconfig, при установке из |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
репозитория нечего с ним делать не нужно; |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||
/etc/sysconfig/named |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
Здесь можно задать некоторые опции с которыми |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
будет стартовать named; |
|
||||||||||
|
|
|
|
|
||||||||||||||||||
|
/usr/share/doc/bind-9.3.4/ |
|
|
|
|
Документация. |
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Файл /var/named/chroot/etc/named.conf
options
{
directory «/var/named»;
dump-file «data/cache_dump.db»; statistics-file «data/named_stats.txt»; memstatistics-file «data/named_mem_stats.txt»; version «Made in USSR»;
listen-on {localhost; 192.168.146.132; }; allow-transfer{192.168.147.132; }; allow-query{trusted-networks; }; allow-recursion {trusted-networks; }; forwarders {192.168.146.2; };
};
logging
{
channel default_ch {
file «data/named-base.log»; severity info;
print-time yes; print-category yes;
};
channel security_ch {
file «data/named-security.log»; severity info;
print-time yes; print-category yes;
};
category default { default_ch; };
Модуль 13. DNS-сервер. BIND. |
|
183 |
|
|
|
category security { security_ch; };
};
acl «trusted-networks» {localhost; 192.168.146.0/24; 192.168.147.0/24; };
zone «example545.com» IN { type master;
file «example545.com»;
};
zone «168.192.in-addr.arpa» { type master;
file «168.192.rev»;
};
include «/etc/named.rfc1912.zones»;
Файл зоны example545.com
(все файлы зон расположены в /var/named/chroot/var/named)
|
|
|
|
|
|
|
|
|
|
@ |
IN |
SOA ns1.example545.com. support.example545.com. ( |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 ; serial |
|
||||||
|
|
|
|
|
|
|
|
||
|
|
28800 ; refresh |
|||||||
|
|
|
|
|
|
|
|||
|
|
7200 ; retry |
|||||||
|
|
|
|
|
|
|
|||
|
|
604800 ; ex |
pire |
||||||
|
|
|
|
|
|
||||
|
|
86400 ; ttl |
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IN |
NS |
|
ns1.example545.com. |
|||
|
|
|
|
|
|
|
|
|
IN |
NS |
|
ns2.example545.com. |
|
||
|
|
|
|
|
|
|
|
|
IN |
MX |
10 mail.example545.com. |
|
|||
|
|
|
|
|
|
|
|
@ |
IN |
A |
192.168.146.132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
ns1 |
IN |
A |
192.168.146.132 |
|
|
|
|
|
|
|
|
|
|
|
ns2 |
IN |
A |
192.168.147.132 |
|
|
|
|
|
|
|
|
|
|
|
|
IN |
A |
192.168.146.132 |
|
|
|||
|
|
|
|
|
|
|
|
www |
IN |
A |
192.168.146.132 |
|
|
|
Файл обратных зон для нашей сети 192.168.146.0/24 будет таким:
|
@ |
IN |
SOA ns1.example545.com. support.example545.com. ( |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
1 ; serial |
|
||||
|
|
|
|
|
|
|
||
|
|
|
28800 ; refresh |
|||||
|
|
|
|
|
|
|||
|
|
|
7200 ; retry |
|||||
|
|
|
|
|
||||
|
|
|
604800 ; expire |
|||||
|
|
|
|
|
|
|
|
|
|
184 |
|
Модуль 13. DNS-сервер. BIND. |
|
|
|
|
|
|
|
|
86400 ; ttl |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IN |
NS |
|
ns1.example545.com. |
|||
|
|
|
|
|
|
|
|
|
|
|
IN |
NS |
|
ns2.example545.com. |
|
||
|
|
|
|
|
|
|
|
|
|
132.146 IN |
PTR |
|
example545.com. |
|
|||
|
|
|
|
|
|
|
|
|
Если сервер запускаем первый раз то выполняем команду
# service named start
Если он уже работает и обслуживает зоны то будет достаточно перезагрузить файл конфигурации.
# rndc reload
Теперь поговорим про файл зоны.
IN NS ns1.example545.com. - указываем наш NS-сервер для этого домена, нужно указать хотя бы два сервера, IN – означает Internet;
IN MX 10 mail.example545.com. - указываем почтовый сервер для этого домена, куда отправлять почту предназначенную для этого домена;
@ IN A – запись А для нашего домена. @ – ссылка на имя нашего домена, можно было написать “example545.com. IN A 192.168.146.132” а можно вот так.
Далее идут относительные записи А, относительные значит что к этому имени прибавиться еще основная часть. В результате, например, получится mail.example545.com и www.example545.com
Если мы не хотим чтобы к имени что либо добавлялось, нужно явно показать что это имя является FQDN, То есть полностью описанным. Для этого после имени нужно поставить точку. Давайте в нашем файле зоны example545.com уберем точку в строке
|
“IN MX 10 |
mail.example545.com.”, перезагрузим конфигурационный |
||||||
|
|
|
|
|
|
|
|
|
файл командой rndc reload и сделаем запрос к DNS-серверу: |
||||||||
|
|
|
|
|
|
|
|
|
# dig example545.com @ns1.example545.com any |
||||||||
|
|
|
|
|
|
|||
;; ANSWER SECTION: |
||||||||
|
|
... |
|
|
|
|
||
|
|
|
|
|||||
example545.com. |
43200 IN MX 10 mail.example545.com.example545.com. |
|||||||
|
... |
|
|
|
|
Модуль 13. DNS-сервер. BIND. |
|
185 |
|
|
|
Видите, добавилась основная часть имени домена и получилось “mail. example545.com.example545.com.”, что конечно же не правильно.
Ну и попробуем по IP-адресу получить доменное имя:
# nslookup 192.168.146.132
Server: 192.168.146.132
Address: 192.168.146.132#53
132.146.168.192.in-addr.arpa name = example545.com.
Опции конфигурационного файла
Секция options – глобальные конфигурационные опции;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
directory |
|
|
|
|
|
|
|
|
Опция задает каталог где располагаются файлы |
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
необходимые для работы named; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
dump-file |
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Опция задает расположение файла с кэшем DNS- |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сервера; |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
statistics-file |
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Опция задает расположение файла с статистикой; |
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
memstatistics-file |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
Опция задает расположение файла со статистикой по |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
использованию памяти; |
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
version |
|
|
|
|
|
|
|
Здесь указываемзначениепеременнойversion котороебудет |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
отдаваться клиентам в ответ на их запрос версии сервера; |
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
listen-on |
|
|
|
Здесь указываем порты и IP-адреса на которых named |
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
будет принимать входящие запросы; |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
allow-transfer |
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
Здесь указываем список IP-адресов которым разреша- |
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ется передавать зону, указываем здесь slave-сервера; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
allow-query |
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
Здесь указываем сети запросы из которых наш DNS- |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сервер будет обслуживать; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||
|
|
allow-recursion |
|
|
|
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
Здесь указываем сети рекурсивные запросы которых |
||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
наш DNS-сервер будет обслуживать; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
forwarders |
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если наш DNS-сервер не сможет ответить на запрос |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
то он его перенаправит серверам, указанным в этой |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
опции. Обычно, запросы перенаправляют DNS- |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
серверам провайдера, они обслуживают сети в |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
которых вы работаете и всегда помогут. |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
Секция logging – журналирование работы DNS-сервера; |
|||||||||||||||||||||||||||||||||||||||
|
channel |
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Указываем название канала логирования; |
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
file |
|
|
|
|
|
|
|
|
|
Путь к файлу в который будет записываться |
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
информация из этого канала; |
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
|
Модуль 13. DNS-сервер. BIND. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
это уровень важности; |
|
|
|
|
||||
|
|
severity |
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
указывать время в логах или нет; |
|
|
|||||||
|
|
print-time |
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
регистрировать категории или нет; |
|
|
|||||||
|
|
print-category |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
category |
|
Какие категории в какие каналы пишем. |
||||||||||||||||
|
|
Секция zone – определение зоны; |
|
|
|
|
|
|||||||||||||
|
zone |
|
|
|
|
|
|
|
|
|
||||||||||
|
|
Указываем название зоны; |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
Тип зоны, на primary master пишем master, на slave- |
||||||||||||||
type |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
сервере – slave; |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
file |
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
Расположение файла зоны. |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В подключенном файле named.rfc1912.zones находятся служебные зоны, делать с файлом нечего не нужно.
Не забываем, поскольку наш DNS-сервер будет выполняться в chrootокружение то его log-файлы будут расположены в
/var/named/chroot/var/named/data
DNS-сервер готов. Теперь на любом клиенте в доверенных сетях в файл /etc/ resolv.conf прописываем наш DNS-сервер и пользуемся.
# cat /etc/resolv.conf
nameserver 192.168.146.132
Slave-сервер
Slave-сервер настраивается точно также как и master за исключением пары опций в секции zone. Ниже я приведу мою конфигурацию и пояснения.
Ставим нужные пакеты
# yum -y install bind-chroot caching-nameserver
Добавляем в автозагрузку
# chkconfig named on
/var/named/chroot/etc/named.conf
options
{
directory «/var/named»;
dump-file «data/cache_dump.db»; statistics-file «data/named_stats.txt»;
Модуль 13. DNS-сервер. BIND. |
|
187 |
|
|
|
memstatistics-file «data/named_mem_stats.txt»; version «Made in USSR»;
listen-on {localhost; 192.168.147.132; }; allow-transfer{none; }; allow-query{trusted-networks; }; allow-recursion {trusted-networks; }; forwarders {192.168.146.132; };
};
logging
channel default_ch {
file «data/named-base.log»; severity info;
print-time yes; print-category yes;
};
channel security_ch {
file «data/named-security.log»; severity info;
print-time yes; print-category yes;
};
category default { default_ch; }; category security { security_ch; };
};
acl «trusted-networks» {localhost; 192.168.146.0/24; 192.168.147.0/24; };
zone «example545.com» IN { type slave;
file «slaves/example545.com»; masters {192.168.146.132; };
};
include «/etc/named.rfc1912.zones»;
Как видите все почти тоже самое. Трансфер зоны мы делать не будем, потому что в нашей сети больше нет серверов кому ее можно передать, а master-серверу ее передавать бессмысленно, он является primary masterом для зоны. Все запросы на которые не сможем ответить сами, мы переадресуем master-серверу (он если не сможет ответить то переадресует
|
188 |
|
Модуль 13. DNS-сервер. BIND. |
|
|
|
|
на 192.168.146.2). Ну и ключевое:
type slave; - выполнять роль slave-сервера для этой зоны; masters – список master-серверов с которых ее можно получить;
# rndc reload
Посмотрим наш log-файл /var/named/chroot/var/named/data/named-base.log
general: zone example545.com/IN: Transfer started.
xfer-in: transfer of 'example545.com/IN' from 192.168.146.132#53: connected using 192.168.147.132#40241
general: zone example545.com/IN: transferred serial 1
xfer-in: transfer of 'example545.com/IN' from 192.168.146.132#53: end of transfer notify: zone example545.com/IN: sending notifies (serial 1)
Slave-сервер готов.
Неавторитативный ответ
Наш DNS-сервер не поддерживает зону ya.ru поэтому не может дать авторитативный ответ. Он всего лишь сообщает клиенту то, что узнал от других DNS-серверов. Такой ответ будет неавторитативным и будет содержать строку Non-authoritative answer в своем ответе. А узнавать наш DNS-сервер будет у тех кто перечислен в опции forwarders, То есть кому перенаправлять запросы с которыми мы сами не справились.
# nslookup ya.ru
Server: 192.168.146.132
Address: 192.168.146.132#53
Non-authoritative answer:
Name: ya.ru
Address: 213.180.204.8
Авторитативный ответ
В этом примере ответ будет авторитативный - мы обращаемся с запросом к нашему DNS-серверу который обслуживает эту зону.
# nslookup example545.com
Server: 192.168.146.132
Модуль 13. DNS-сервер. BIND. |
|
189 |
|
|
|
Address: 192.168.146.132#53
Name: example545.com
Address: 192.168.146.132
Записи в /etc/resolv.conf
Файл /etc/resolv.conf служит не только для указания NS-серверов. Есть еще пара интересных опций на мой взгляд.
domain – указав домен мы будем производить поиск хостов в этом домене по коротким именам, это удобно. Например “domain example545.com”. Выполнив команду“nslookup server10”мы произведем поиска хоста server10 в домене example545.com, То есть если существует хост server10.example545. com то мы получим положительный ответ.
search – более функциональный механизм, он позволяет задать список доменов в котором мы будем искать свой хост по короткому имени и порядок поиска. Например:
search office.example545.com outsorcers.example545.com
Сначала ищем в office.example545.com и если не находим то переключаемся на поиск в outsorcers.example545.com. Поиск происходит до первого совпадения, если нечего не найдено то возвращается сообщение об ошибке.
Статистика работы
Статистику работы можно посмотреть вот так:
# rndc status number of zones: 7 debug level: 0 xfers running: 0 xfers deferred: 0
soa queries in progress: 0 query logging is OFF recursive clients: 0/1000 tcp clients: 0/100
server is up and running
number of zones – число поддерживаемых зон этим DNS-серверов;
debug level – уровень отладки debug;
|
190 |
|
Модуль 13. DNS-сервер. BIND. |
|
|
|
|