Устанавливаем BIND из портов. На момент написания статьи последняя версия была 9.6.0-P1.
# cd /usr/ports/dns/bind96
# make install clean
Отмечаем опцию «REPLACE_BASE», чтобы заменить базовый BIND
Добавляем в файл /etc/rc.conf следующие строчки:
named_enable=»YES»
В файле named.conf дополняем адреса с которых будут приниматься запросы DNS:
listen-on { 10.10.0.0/16; 127.0.0.1; };
Там же прописываем адреса провайдера:
forwarders { 213.135.97.131; }
/etc/resolv.conf должен выглядить так:
nameserver 127.0.0.1
Перезагружаемся и смотрим логи на наличие ошибок — /var/log/messages. В дальнейшем перезагружать сервер целиком не потребуется. Для рестарта сервиса named применяется одна из команд:
# /etc/rc.d/named restart
# killall -HUP named
Если перезагрузка вызывает ошибку, к примеру такую:
# /etc/rc.d/named restart
Stopping named: rndc failed, trying killall: .
Starting named.
Отключаем файрволл и запускам команду снова. Если команда сработала, то меняем правила. Для PF нужно добавить строчку:
set skip on lo0
В предшествующих версиях BIND для создания реверсной зоны нужно было запускать скрипт /var/named/etc/namedb/make-localhost В версии bind 9.6 такого скрипта уже нет. Имеются два файла localhost-forward.db и localhost-reverse.db. Для создания файла зоны нужно скопировать localhost-forward.db под новым имененем зоны отредактировать:
# cp localhost-forward.db 6mk.lan
Работа с rndc
Включаем возможность работы с утилитой rndc:
# rndc-confgen > /etc/namedb/rndc.conf
копируем строки из rndc.conf в конец файла named.conf и снимаем с них комментарии.
Примеры конфигов
6mk.lan
$TTL 3600 ; 1 hour
6mk.lan. IN SOA ns.6mk.lan. admin.6mk.lan. (
2008010301 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ; Minimum TTL
)
; DNS Servers
IN NS ns.6mk.lan.
IN A 10.10.38.50
; Machine Names
ns IN A 10.10.38.50
; Aliases
www IN CNAME @
38.10.10.in-addr.arpa
; $FreeBSD: src/etc/namedb/master/localhost-reverse.db,v 1.1.8.1 2008/11/25 02:59:29 kensmith Exp $
$TTL 3h
@ SOA ns.6mk.lan. admin.6mk.lan. 42 1d 12h 1w 3h
; Serial, Refresh, Retry, Expire, Neg. cache TTL
IN NS ns.6mk.lan.
50 IN PTR ns.6mk.lan.
50 IN PTR 6mk.lan.
named.conf
options {
// Relative to the chroot directory, if any
directory «/etc/namedb»;
pid-file «/var/run/named/pid»;
dump-file «/var/dump/named_dump.db»;
statistics-file «/var/stats/named.stats»;
listen-on { 127.0.0.1; 10.10.0.0/16; 10.11.0.0/24; };
disable-empty-zone «255.255.255.255.IN-ADDR.ARPA»;
forwarders {
127.0.0.1; 213.135.97.131;
};
};
zone «.» { type hint; file «named.root»; };
zone «6mk.lan» {
type master;
file «master/6mk.lan»;
};
zone «38.10.10.in-addr.arpa» {
type master;
file «master/38.10.10.in-addr.arpa»;
};
// RFC 1912
zone «localhost» { type master; file «master/localhost-forward.db»; };
zone «127.in-addr.arpa» { type master; file «master/localhost-reverse.db»; };
zone «255.in-addr.arpa» { type master; file «master/empty.db»; };
# Use with the following in named.conf, adjusting the allow list as needed:
key «rndc-key» {
algorithm hmac-md5;
secret «zYt7cPSrHnIEwBagJtcIHg==»;
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { «rndc-key»; };
};
# End of named.conf