Всё время хотел сделать себе локальный домен для удобства работы с сайтами, и наконец в прошлые выходные мне это удалось. Поднял на Debian Squeeze bind в котором создал прямую и обратную зоны для домена doomgate.local. Попытку сделать подобное я уже предпринимал несколько раз, и в первые разы всё закончилось правкой файла hosts, но мне уж очень хотелось, избавиться от необходимости редактировать этот файл на разных системах каждый раз, и вот сейчас я расскажу как настроить свою зону в bind.
Сразу же проясню некоторые моменты.
Практически все русскояычные howto скопипщенные с официальной документации дают не рабочую конфигурацию. И если Вы пришли сюда из поисковика и вероятно Вы уже натыкались на одну и ту же пасту, где bind советуют советуют запускать в chroot окружении, а так же опускают вопрос настройки зоны обратного просмотра оставляя этот вопрос не решённым.
Bind очень чувствителен к ошибкам, и малейшие синтаксические ошибки не дадут загрузить файл зоны.
И так, приступим!
Я буду создавать зону прямого просмотра для doomgate.local и зону обратного просмотра 0.168.192.in-addr.arpa, всё это будет происходить на системе Debian Squeeze (так же это должно работать на Ubuntu, CentOS и FreeBSD). Сервер имеет имя dns и в домене должен представляться как dns.doomgate.local
Ставим bind
# aptitude install bind9
Отредактируем /etc/bind/named.conf.options
# vim /etc/bind/named.conf.options
Приведём его в следующий вид:
acl mynetwork {192.168.0.0/24; 127.0.0.1; };
options {
directory «/var/cache/bind»;
auth-nxdomain no;
listen-on-v6 { none; };
allow-query { mynetwork; };
};
Опция acl ограничивает адреса, которые могут запрашивать зоны с нашего сервера. В данном примере это разрешено подсети 192.168.0.0/24.
И сразу же отправляемся редактировать файл /etc/bind/named.conf.local.
# vim /etc/bind/named.conf.local
Добавляем в него файлы наших зон.
zone «doomgate.local» {
type master;
file «/etc/bind/db.doomgate.local»;
};zone «0.168.192.in-addr.arpa» {
type master;
file «/etc/bind/0.168.192.in-addr.arpa.zone»;
};
Зона прямого просмотра
Создадим файл для зоны прямого просмотра.
# vim /etc/bind/db.doomgate.local
Со следующим содержимым:
$TTL 30
$ORIGIN doomgate.local.@ IN SOA dns.doomgate.local. hostmaster.doomgate.local. (
2011100902 ;Serial
1d ;Refresh
1h ;Retry
1w ;Expire
2h ) ;Negative Cache TTL
;
@ IN NS dns.doomgate.local.
@ IN A 192.168.0.20server IN A 192.168.0.2
serverkvm IN A 192.168.0.5
webserver IN A 192.168.0.10
dns IN A 192.168.0.20
avto-diagnostika IN CNAME webserver
pma IN CNAME webserver
project-e1 IN CNAME webserver
Где:
$ORIGIN — оригинальное имя зоны
dns.doomgate.local. — как я уже говорил имя днс-сервера (обязательна точка в конце).
hostmaster.doomgate.local. — email администратора сервера, только вместо символа @ используется точка.
Serial — серийный номер зоны в формате ГГГГММДД и номер текущего изменения за этот день. (Важно, при каждом изменении, нужно редактировать этот номер увеличивая его в большую сторону) Пример: 2011100901.
Refresh — период времени с которым вторичный сервер днс обращается к основному.
Retry — период с которым вторичный сервер будет повторять попытки при неудачном обновлении.
Expire — максимальное время использования данных на вторичном сервере, после которого делается обязательное обновление.
Negative Cache TTL — время актуальности данных в кэше запросов.
Далее идут записи имён хостов с ip-адресами или псевдонимами.
В конце этого файла нужно обязательно оставить пустую строку!
Зона обратного просмотра
Создадим файл для зоны обратного просмотра.
# vim /etc/bind/0.168.192.in-addr.arpa.zone
И запишем туда следующее:
$TTL 30
$ORIGIN 0.168.192.in-addr.arpa.@ IN SOA dns.doomgate.local. hostmaster.doomgate.local. (
2011100907 ;Serial
1d ;Refresh
1h ;Retry
1w ;Expire
2h) ;Negative Cache TTL
;
NS dns.doomgate.local.2 PTR server.doomgate.local.
5 PTR serverkvm.doomgate.lcoal.
10 PTR webserver.doomgate.local.
20 PTR dns.doomgate.local.
В этом файле должны быть только записи типа PTR, никаких IN тут быть не должно. И в конце этого файла так же должна быть пустая строка.
Обновим информацию о зонах
# rndc reload
И проверим файлы зон на наличие ошибок командой:
# named-checkconf -z
Мы должны получить примерно вот такой вывод:
zone doomgate.local/IN: loaded serial 2
zone 0.168.192.in-addr.arpa/IN: loaded serial 1
zone localhost/IN: loaded serial 2
zone 127.in-addr.arpa/IN: loaded serial 1
zone 0.in-addr.arpa/IN: loaded serial 1
zone 255.in-addr.arpa/IN: loaded serial 1
Если никаких ошибок нет, то продолжаем дальше, если же есть, то вероятнее всего Вы допустили ошибку где-то в конфигурационном файле.
Теперь необходимо отредактировать resolv.conf для того, чтобы наш сервер брал настройки сам с себя.
# vim /etc/resolv.conf
Приводим его в следующий вид:
search doomgate.local
domain doomgate.local
nameserver 127.0.0.1
И наконец настало время проверить работу нашего днс-сервера!
Выполним несколько запросов.
Проверим зону прямого просмотра.
# nslookup webserver.doomgate.local
Server: 127.0.0.1
Address: 127.0.0.1#53Name: webserver.doomgate.local
Address: 192.168.0.10
И зону обратного просмотра.
# nslookup 192.168.0.2
Server: 127.0.0.1
Address: 127.0.0.1#532.0.168.192.in-addr.arpa name = server.doomgate.local.
Если у Вас обе эти команды отработали с аналогичным результатом, то поздравляю, Вам удалось настроить bind!
https://antizlo.blogspot.com/2011/10/dns-bind9-debian-squeeze-howto.html
Просмотров: 7558