Install BIND aka dnssec validating resolver. Как установить и настроить ДНС сервер БИНД в качестве ДНССЕК ресолвера под Windows 2000/XP. Примеры файлов named.conf, rndc.conf, master.localhost, localhost.rev
Сначала загрузим самую свежую версию BIND с офф. сайта >>> Если нам нужно установить БИНД для Window NT/2000, то нам следует использовать "BIND 9.3.4-P1 for Window NT/2000/XP/2003" или ниже (BIND8.4.6-REL), а во всех остальных случаях лучше использовать самую свежую версию, в нашем случае на текущий момент это BIND9.9.2-P2.zip
Есть несколько вариантов установки - установка в качестве службы с помощью BINDInstall.exe или ручная установка и запуск БИНД сервера из командной строки.
В первом случае после запуска BINDInstall.exe будет предложено выбрать каталог для установки, по умолчанию C:\WINDOWS\system32\dns, а также имя пользователя из под которого будет запущен сервис, по умолчанию предлагается имя пользователя "named", но можно использовать и системное "NT AUTHORITY\LocalService". После завершения будут созданы директории C:\WINDOWS\system32\dns, C:\WINDOWS\system32\dns\bin и C:\WINDOWS\system32\dns\etc, а также скопированы исполняемые файлы, создана служба/сервис "ISC BIND" и пользователь "named" (если он отсутствует):


Потому как БИНД нам не нужен как сервис и мы не планируем использовать его ежедневно (вполне хватает и Unbound DNS Resolver ака DNSSEC), то мы не будем использовать "BINDInstall.exe", распихуем всё ручками и время от времени будем запускать ДНС сервер БИНД через .bat файл из под текущего пользователя. Распаковываем архив BINDх.х.х.zip и распихуиваем по дирам:
\BIND
\bin
all *.dll и *.exe
\data
\dynamic
\etc
\log
\man
all *.html and *.pdf files
\pid
\zones
CHANGES
COPYRIGHT
FAQ
HISTORY
migration
migration-4to9
OpenSSL-LICENSE
README
readme1st.txt
SHA256Дальнейшие действия нужно выполнять независимо от способа установки...
Если мы хотим юзать утилиты host.exe и dig.exe, а также другие идущие в комплекте с BIND сервером, то в PATH нужно добавить %SystemRoot%\system32\dns\bin или другой полный путь к ..\bin
Следующим шагом будет создание rndc.key и если установка выполнялась с использованием "BINDInstall.exe", то достаточно будет выполнить
C:\WINDOWS\system32\dns\bin>rndc-confgen.exe -a wrote key file "C:\WINDOWS\system32\dns\etc\rndc.key"
Иногда может сохраняться в C:\WINDOWS\system32\etc\rndc.key, а если мы устанавливали БИНД ручками, то нужно выполнить rndc-confgen > ..\etc\rndc.conf, после чего из rndc.conf скопировать в named.conf строки идущие после "# Use with the following in named.conf, adjusting the allow list as needed:" до "# End of named.conf" и снять комментарии. Готовый named.conf выглядит следующим образом:
named.conf
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-md5;
secret "zIbe16BBsJWE759ElgC0mk==";
};
# Откуда разрешено управление BIND сервером
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# Configure BIND options
options {
# "listen-on-v6 port 53 { ::1; };" or "listen-on port 53 { any; };"
# Нефиг слушать внешние интерфейсы
listen-on port 53 { 127.0.0.1; };
# IPv6 нам не нужен
listen-on-v6 { none; };
version none;
hostname none;
server-id none;
allow-query { any; };
recursion yes;
# "empty-zones-enable" or "disable-empty-zone" yes/no
empty-zones-enable yes;
# Путь к корневой директории (без слеша в конце!!!)
# Все остальные пути указываются относительно этого каталога
directory "F:\BIND";
# Если сервер запускается из коммандной строки, тогда
# нужно явно указать месторасположение "pid-file" и "session-keyfile"
pid-file "pid\named.pid";
session-keyfile "pid\session.key";
dump-file "data\cache_dump.db";
statistics-file "data\named_stats.txt";
memstatistics-file "data\named_mem_stats.txt";
# Those are the values you should disable if you don't want DNSSEC enabled
dnssec-enable yes;
# Bv9ARM.ch04.html - Chapter 4. Advanced DNS Features - Configuring Servers
# If dnssec-validation is set to auto, then a default trust anchor
# for the DNS root zone will be used. If it is set to yes, however,
# then at least one trust anchor must be configured with a trusted-keys
# or managed-keys statement in named.conf,
# or DNSSEC validation will not occur. The default setting is yes.
dnssec-validation yes;
# Если не указать, то будет создан в каталоге указанном в "directory ..."
# А если директория будет не доступна, то BIND подвесит ЦП
managed-keys-directory "dynamic";
# Если нужно будет переслать запросы на другой ДНС,
# например ДНС гугля 8.8.8.8 или 8.8.4.4
#forwarders { 8.8.8.8; };
};
# Path to ISC DLV key (named.root.key)
# http://www.isc.org/bind-keys
# Смотреть директиву "dnssec-validation" - "DNSSEC validation" не работает
# если "dnssec-validation yes;" и ключ (тот, что ниже) не указан явно!
# Иначе нужно устанавливать "dnssec-validation auto;"!
include "etc\bind.keys.v9_8";
# Configure Logging
# Отключаем ведение журнала дабы не закакивать его сообщениями
# о не найденом имени хоста, а у нас их всего несколько
# тем более локальный ДНС у нас будет выступать первичным (предпочитаемым)
logging {
channel default_syslog {
null;
#syslog daemon;
#severity info;
};
channel default_stderr {
null;
#file "log\log.txt";
#severity dynamic;
};
channel default_debug {
null;
#file "data\named.run";
#severity dynamic;
};
category default { null; };
#category my_syslog { null; };
#category my_file { null; };
#category xfer-out { my_syslog; my_file; };
#category queries { my_file; };
};
# Файл корневых ДНС серверов, который можно получить по адресам:
# http://www.internic.net/domain/named.root
# or
# ftp://ftp.internic.net/domain/named.cache
# По умолчанию все корневые ДНС "вшиты" в код самого BIND сервера
# и указанную ниже зону zone "." IN { ... }; можно закомментировать.
#zone "." IN {
# type hint;
# file "zones\named.root";
#};
# Файл зоны для "ресолвинга" локального хоста "localhost" в ИП
zone "localhost" IN {
type master;
file "zones\master.localhost";
allow-transfer { 127.0.0.1; };
allow-query { 127.0.0.1; };
};
# localhost reverse map (aka PTR zone)
# Нужна для разрешения ИП 127.0.0.1 в имя хоста, а иначе при запросах
# Can't find server name for address 127.0.0.1: Non-existent domain
zone "0.0.127.in-addr.arpa" IN {
type master;
file "zones\localhost.rev";
notify no;
};Ниже приводиться содержимое master.localhost и localhost.rev:
master.localhost
$TTL 86400 ; 24 hours could have been written as 24h
$ORIGIN localhost.
; line below = localhost 1D IN SOA localhost root.localhost
@ 1D IN SOA @ root (
2002022401 ; serial
3H ; refresh
15 ; retry
1w ; expire
3h ; minimum
)
@ 1D IN NS @
1D IN A 127.0.0.1
localhost.rev
$TTL 86400 ;
; could use $ORIGIN 0.0.127.IN-ADDR.ARPA.
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
3h ; Refresh
15 ; Retry
1w ; Expire
3h ) ; Minimum
IN NS localhost.
1 IN PTR localhost.Осталось запустить named.exe -f -c "F:\BIND\etc\named.conf", указать в настройках TCP/IP наш ДНС 127.0.0.1 в качестве предпочитаемого и проверить работоспособность:
>dig com. SOA +dnssec ; <<>> DiG 9.3.2 <<>> com. SOA +dnssec ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 223 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 14, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096 ;; QUESTION SECTION: ;com. IN SOA ;; ANSWER SECTION: com. 900 IN SOA a.gtld-servers.net. nstld.verisi gn-grs.com. 1364989066 1800 900 604800 86400 com. 900 IN RRSIG SOA 8 1 900 20130410113746 20130 403102746 23975 com. tQnGr5RsXuRbMBvcvFx9tERL76ytCXn/p5/mN0uBdwzndy+FvPNPd1Sc kV uA7z34XjscslV5QiIDdIe68K0lYajK0FR9RaDStVdW5q47HUV/XyV0 Z3Rh4qW6pcDrtkdXZLSn40d9Q 9S6GJ8BVl416B8EMN2agiTtb41e95dA UqE= ;; AUTHORITY SECTION: com. 172800 IN NS k.gtld-servers.net. com. 172800 IN NS g.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. com. 172800 IN NS d.gtld-servers.net. com. 172800 IN NS m.gtld-servers.net. com. 172800 IN NS h.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS e.gtld-servers.net. com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS j.gtld-servers.net. com. 172800 IN NS i.gtld-servers.net. com. 172800 IN NS f.gtld-servers.net. com. 172800 IN NS l.gtld-servers.net. com. 172800 IN RRSIG NS 8 1 172800 20130408041926 201 30401030926 23975 com. AOYql4O2Zi6v013LUQXSo5K0VuzmfSZzb9Qk/UEAlziHoDUVDvhkceQu 8nseo8PKKJZwhmjhRde5mIuVFfTHIb6Hbv+29UnXhBVguD54I4J7lbRE BEMnJIjrJSs84W8uUgiUsZ4 dKuMU0pTXcEonLIfQuUNfltuTifYOOPm+ Mk8= ;; Query time: 218 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Apr 03 14:37:57 2013 ;; MSG SIZE rcvd: 637
Если в результате ";; flags: qr rd ra ad;" видим наличие флага "AD", то значит всё ок и BIND сервер работает ака DNSSEC ресолвер.
Ссылки по теме:
- DNSSEC and BIND | Internet Systems Consortium
- BIND Documentation | Internet Systems Consortium
- Chapter 6. BIND 9 Configuration Reference

